[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: cover close



濱嶋です。

>> NetBSD 的には、func キーが 1 キーでコマンドモディファイアキーに
>> なっていて、func+スペースで、KS_Cmd_BacklightToggle というコマンド
>> が出されるようになっています。
>> このコマンドが出されると、カーネル内で PWCTL_LCDLIGHT というポート
>> が on/off されます。
>> 
>> カバー(フタ)を閉めるとバックライトが消えるというようにはできてい
>> ません。
> 
> sys/dev/hpc/btnmgr.c でカバーのイベントが来たときに
> POWERCONTROL_LCDLIGHTのhookを呼び出すという方法では何かまずいことがあ
> るのでしょうか?
> 具体的には以下のようなコードなのですが。

ごめんなさい、うそです。
カバーのボタンがONになったらLCDのライトをOFFなので、msgを反転させなけ
ればいけません。

> diff -u /sys/dev/hpc/btnmgr.c btnmgr.c
> --- /sys/dev/hpc/btnmgr.c	Sat Oct 26 18:35:22 2002
> +++ btnmgr.c	Mon Dec  9 13:23:02 2002
> @@ -237,6 +237,9 @@
> 		config_hook_call(CONFIG_HOOK_PMEVENT, 
> 		    CONFIG_HOOK_PMEVENT_SUSPENDREQ, NULL);
>  
> +	if (id == CONFIG_HOOK_BUTTONEVENT_COVER)
> +		config_hook_call(CONFIG_HOOK_POWERCONTROL, 
> +		    CONFIG_HOOK_POWERCONTROL_LCDLIGHT, msg);
>  
> 	return (0);
>  }

以下のコードでMC/R450のLCDが消えるようになりました。vrc4172pwmで制御し
ている他の機種でも消えると思います。

	else if (id == CONFIG_HOOK_BUTTONEVENT_COVER)
		config_hook_call(CONFIG_HOOK_POWERCONTROL, 
		    CONFIG_HOOK_POWERCONTROL_LCDLIGHT, (void*)(msg ? 0: 1));

LCDLIGHTがGPIOに接続されている機種(NEC_MCR_3XX,NEC_MCR_500,NEC_MCCS)等
ではどうなのでしょうか?
問題ないならcommitしてしまおうと思います。