diff options
author | Sean Young <sean@mess.org> | 2012-08-13 13:59:47 +0200 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-08-13 21:19:12 +0200 |
commit | b83bfd1b0127b0963fcac39280280e365e7e04d8 (patch) | |
tree | 3a7d76ffb8844af1ce9ffb5299d6f2726699c3e5 /drivers/media/rc/iguanair.c | |
parent | [media] rc: Add support for the TechnoTrend USB IR Receiver (diff) | |
download | linux-b83bfd1b0127b0963fcac39280280e365e7e04d8.tar.xz linux-b83bfd1b0127b0963fcac39280280e365e7e04d8.zip |
[media] rc: do not wake up rc thread unless there is something to do
The TechnoTrend USB IR Receiver sends 125 ISO URBs per second, even when
there is no IR activity. Reduce the number of wake ups from the other
drivers too.
This saves about 0.25ms/s on a 2.4GHz Core 2 according to powertop.
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/rc/iguanair.c')
-rw-r--r-- | drivers/media/rc/iguanair.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/media/rc/iguanair.c b/drivers/media/rc/iguanair.c index 6a09c2e53753..66ba23738601 100644 --- a/drivers/media/rc/iguanair.c +++ b/drivers/media/rc/iguanair.c @@ -134,6 +134,7 @@ static void process_ir_data(struct iguanair *ir, unsigned len) } else if (len >= 7) { DEFINE_IR_RAW_EVENT(rawir); unsigned i; + bool event = false; init_ir_raw_event(&rawir); @@ -147,10 +148,12 @@ static void process_ir_data(struct iguanair *ir, unsigned len) RX_RESOLUTION; } - ir_raw_event_store_with_filter(ir->rc, &rawir); + if (ir_raw_event_store_with_filter(ir->rc, &rawir)) + event = true; } - ir_raw_event_handle(ir->rc); + if (event) + ir_raw_event_handle(ir->rc); } } |