[問題] notification status問題
目前剛知道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亮暗關係
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.166.112.50
推
01/25 11:34, , 1F
01/25 11:34, 1F
→
01/25 11:35, , 2F
01/25 11:35, 2F
目前印出來的log確認是對的 backlight的亮暗也的確會使x的值改變
目前想請問因為notifier call back的地方需要update led的狀態
應該是這樣問
linux 內有那種每幾秒執行一次的function嗎
若我將online.intval中的條件設為y
然後根據x y 分出四種狀況 每幾秒執行一次這樣可以嗎?
※ 編輯: tanker 來自: 111.81.208.22 (01/27 23:44)
推
01/28 23:31, , 3F
01/28 23:31, 3F
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章