From 0de2f930856f8c59011b77a40e78330a7ae808ea Mon Sep 17 00:00:00 2001 From: Sean Young Date: Wed, 24 Oct 2012 17:22:40 -0300 Subject: [PATCH] --- yaml --- r: 343927 b: refs/heads/master c: e5eda7faea23c28836f17487962c6539fd3b3e27 h: refs/heads/master i: 343925: 07175b3f700c7a33cd82abda5f19dde59c0a8222 343923: d6ba3b3aa177b95ac673e7d0c34ed2781ed2585d 343919: fcd06425f40253866a802e58c32157ad35602d3a v: v3 --- [refs] | 2 +- trunk/drivers/media/rc/winbond-cir.c | 15 +++++---------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index 338ba3c20079..e9d215d6a097 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 293d31ed32e491fa8124f8faf3ab6c9bbc425234 +refs/heads/master: e5eda7faea23c28836f17487962c6539fd3b3e27 diff --git a/trunk/drivers/media/rc/winbond-cir.c b/trunk/drivers/media/rc/winbond-cir.c index 45d2fff764bc..16ba38e8183f 100644 --- a/trunk/drivers/media/rc/winbond-cir.c +++ b/trunk/drivers/media/rc/winbond-cir.c @@ -207,7 +207,6 @@ struct wbcir_data { /* RX state */ enum wbcir_rxstate rxstate; struct led_trigger *rxtrigger; - struct ir_raw_event rxev; /* TX state */ enum wbcir_txstate txstate; @@ -339,9 +338,12 @@ wbcir_idle_rx(struct rc_dev *dev, bool idle) led_trigger_event(data->rxtrigger, LED_FULL); } - if (idle && data->rxstate != WBCIR_RXSTATE_INACTIVE) + if (idle && data->rxstate != WBCIR_RXSTATE_INACTIVE) { + data->rxstate = WBCIR_RXSTATE_INACTIVE; + led_trigger_event(data->rxtrigger, LED_OFF); /* Tell hardware to go idle by setting RXINACTIVE */ outb(WBCIR_RX_DISABLE, data->sbase + WBCIR_REG_SP3_ASCR); + } } static void @@ -360,12 +362,6 @@ wbcir_irq_rx(struct wbcir_data *data, struct pnp_dev *device) ir_raw_event_store_with_filter(data->dev, &rawir); } - /* Check if we should go idle */ - if (data->dev->idle) { - led_trigger_event(data->rxtrigger, LED_OFF); - data->rxstate = WBCIR_RXSTATE_INACTIVE; - } - ir_raw_event_handle(data->dev); } @@ -915,9 +911,8 @@ wbcir_init_hw(struct wbcir_data *data) /* Clear RX state */ data->rxstate = WBCIR_RXSTATE_INACTIVE; - data->rxev.duration = 0; ir_raw_event_reset(data->dev); - ir_raw_event_handle(data->dev); + ir_raw_event_set_idle(data->dev, true); /* Clear TX state */ if (data->txstate == WBCIR_TXSTATE_ACTIVE) {