Hei Antti,
On Mon, Mar 16, 2009 at 02:19:30PM +0200, Antti Palosaari wrote:
Heinrich Langos wrote:
That is with dvb_usb_af9015 loaded but with "remote=0" module parameter to disable the remote control input that aparently is done by polling.
remote=0 does not disable polling, it is for selecting correct remote.
Well, setting remote=0 does have an effect (af9015.c):
if (val == AF9015_IR_MODE_DISABLED || val == 0x04) { af9015_properties[i].rc_key_map = NULL; af9015_properties[i].rc_key_map_size = 0;
While every other (valid) value for "remote" assigns a key map at that point and further sets the af9015_config.ir_table. I guess thats has consequences so that even if polling occurrs, it doesn't cause a whole lot of other actions.
You can disable polling by setting proper module param for module dvb-usb.
Where "proper" would be? :-)
(With "remote=2" it goes up by about 50 wakeups per second. OK, AFAIK USB input devices need to be polled. No way around it. But does it have to be at 20ms intervals?)
hmm, It should be 150ms according to the code. No idea why it generates 50 wakeups.
My guess would be that each polling action generates several USB packets which in turn cause several wakeups...
I have no idea why.
Does your vdr let your machine sleep nicely?
Cheers -henrik
On Mon, Mar 16, 2009 at 03:07:21PM +0100, Heinrich Langos wrote:
On Mon, Mar 16, 2009 at 02:19:30PM +0200, Antti Palosaari wrote:
remote=0 does not disable polling, it is for selecting correct remote.
Well, setting remote=0 does have an effect (af9015.c):
if (val == AF9015_IR_MODE_DISABLED || val == 0x04) { af9015_properties[i].rc_key_map = NULL; af9015_properties[i].rc_key_map_size = 0;
Found it in dvb-usb.h:
* @rc_key_map: a hard-wired array of struct dvb_usb_rc_key (NULL to disable * remote control handling).
You can disable polling by setting proper module param for module dvb-usb.
Where "proper" would be? :-)
modprobe dvb_usb disable_rc_polling=1
Anyway .. the effect is the same(dvb-usb-remote.c):
int dvb_usb_remote_init(struct dvb_usb_device *d)
...
if (d->props.rc_key_map == NULL || d->props.rc_query == NULL || dvb_usb_disable_rc_polling) return 0;
Anyway .. the main problem remains.
Is there a tool that would only do some minimal actions on a dvb device?
I would like to help finding the cause for that high idle load.
cheers -henrik