Hi
we are using TI BQ27210 <http://www.ti.com/product/BQ27210> in our project for Battery voltage monitoring purpose.we are using the default driver bq27x00_battery .c provided with Android JB4.3.we are able to read the entries from the battery driver through sysfs properly.But these details are not getting posted to the Android User space properly we are seeing that power_supply_changed is not triggering the UEventThread' run function which is waiting on this event. in file frameworks/base/core/java/android/os/UEventObserver.java i.e /******************************************************************* private static final class UEventThread extends Thread { ................... while (true) { Log.d(TAG, "***************nativeWaitForNextEvent()"); String message = nativeWaitForNextEvent(); Log.d(TAG, "***************got event from ---- nativeWaitForNextEvent()"); if (message != null) { if (DEBUG) { Log.d(TAG, message); } Log.d(TAG, "***************send event!"); sendEvent(message); } } } **************************************************************************************** And below is our driver code which triggers power_supply changed function.This is being called every 120 seconds properly static void bq27x00_update(struct bq27x00_device_info *di) { .....................some code here......................... /* Ignore current_now which is a snapshot of the current battery state * and is likely to be different even between two consecutive reads */ if (memcmp(&di->cache, &cache, sizeof(cache) - sizeof(int)) != 0) { di->cache = cache; printk(KERN_ERR "BQ27x00 power_supply_changed\n"); power_supply_changed(&di->bat); } di->last_update = jiffies; } We are stuck.Please guide us in right direction.I found a clue in this direction that is I see a error value returned for the function call kobject_uevent as -2 (temp1 = -2) in below code.I dont know how to go ahead. static void power_supply_changed_work(struct work_struct *work) { unsigned long flags; int temp1; struct power_supply *psy = container_of(work, struct power_supply, changed_work); dev_dbg(psy->dev, "%s changed flag = %d\n ", __func__,psy->changed); spin_lock_irqsave(&psy->changed_lock, flags); if (psy->changed) { psy->changed = false; spin_unlock_irqrestore(&psy->changed_lock, flags); class_for_each_device(power_supply_class, NULL, psy, __power_supply_changed_work); power_supply_update_leds(psy); temp1 = kobject_uevent(&psy->dev->kobj, KOBJ_CHANGE); dev_dbg(psy->dev,"temp 1 = %d",temp1); spin_lock_irqsave(&psy->changed_lock, flags); } if (!psy->changed) wake_unlock(&psy->work_wake_lock); spin_unlock_irqrestore(&psy->changed_lock, flags); } Regards Anand -- -- unsubscribe: [email protected] website: http://groups.google.com/group/android-porting --- You received this message because you are subscribed to the Google Groups "android-porting" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
