[問題] notification status問題

作者: tanker (早起精神好)   2014-01-25 01:13:14
目前剛知道notifier 可以register 當status有變動時可以給註冊者知道
目前想結合backlight開關與usb插著led開啟的關係
我先定義全域變數
int x;
static int fb_notifier_callback(struct notifier_block *self,
unsigned long event, void *data)
{
struct fb_event *evdata = data;
int *blank;
if (evdata && evdata->data ) {
if (event == FB_EVENT_BLANK) {
blank = evdata->data;
{
if (*blank == FB_BLANK_POWERDOWN )
x=0;
else if (*blank == FB_BLANK_UNBLANK )
x=1;
else
x=0;
}
}
}
return 0;
}
static void power_supply_update_gen_leds(struct power_supply *psy)
{
union power_supply_propval online;
if (psy->get_property(psy, POWER_SUPPLY_PROP_ONLINE, &online))
return;
dev_dbg(psy->dev, "%s %d\n", __func__, online.intval);
if (online.intval)
{
if (x==1)
{
led_trigger_event(psy->online_trig, LED_FULL);
}
else if (x==0)
{
led_trigger_event(psy->online_trig, LED_OFF);
}
}
else
led_trigger_event(psy->online_trig, LED_OFF);
}
但執行時發現notifier會使x的值改變一次 若backlight亮了則x=1 LED會亮
但backlight關了之後(blank == FB_BLANK_POWERDOWN) 卻不會使LED燈暗掉
想請問我的問題出在哪裡呢 目前是希望根據usb-online和backlight的兩個關係同時決定
LED亮暗關係
謝謝
作者: mike0226 (米斯特麥克)   2014-01-25 11:34:00
建議印些log,先確認LED_OFF LED是否會暗, 再來是確認從POWER_SUPPLY_PROP_ONLINE (sysfs) 得到的值是多少
作者: alongalone (沿著孤單的路)   2014-01-28 23:31:00
http://ppt.cc/v3c2 timer routine ?

Links booklink

Contact Us: admin [ a t ] ucptt.com