diff options
author | Sean Young <sean@mess.org> | 2013-07-08 16:33:08 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2013-07-30 15:50:30 -0400 |
commit | 6026ce07dca045a9edf4fb651a805b4574186d80 (patch) | |
tree | 369fce5bb8d51ec64e8d71485b03554ff89ed2a2 | |
parent | fde4796825de84c5114500e6a09ea8b346b93c6b (diff) |
[media] redrat3: errors on unplug
In an usb disconnect handler, the urbs have already been cancelled so the
attempt to disable the IR receiver just results in errors:
[ 899.638862] redrat3 7-2:1.0: redrat3_send_cmd: Error sending rr3 cmd res -110, data 0
[ 899.638870] redrat3 7-2:1.0: redrat3_disable_detector: detector status: 251, should be 0
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
-rw-r--r-- | drivers/media/rc/redrat3.c | 27 |
1 files changed, 0 insertions, 27 deletions
diff --git a/drivers/media/rc/redrat3.c b/drivers/media/rc/redrat3.c index 12167a6b5472..37494433dc9f 100644 --- a/drivers/media/rc/redrat3.c +++ b/drivers/media/rc/redrat3.c | |||
@@ -206,8 +206,6 @@ struct redrat3_dev { | |||
206 | struct timer_list rx_timeout; | 206 | struct timer_list rx_timeout; |
207 | u32 hw_timeout; | 207 | u32 hw_timeout; |
208 | 208 | ||
209 | /* is the detector enabled*/ | ||
210 | bool det_enabled; | ||
211 | /* Is the device currently transmitting?*/ | 209 | /* Is the device currently transmitting?*/ |
212 | bool transmitting; | 210 | bool transmitting; |
213 | 211 | ||
@@ -472,32 +470,11 @@ static int redrat3_enable_detector(struct redrat3_dev *rr3) | |||
472 | return -EIO; | 470 | return -EIO; |
473 | } | 471 | } |
474 | 472 | ||
475 | rr3->det_enabled = true; | ||
476 | redrat3_issue_async(rr3); | 473 | redrat3_issue_async(rr3); |
477 | 474 | ||
478 | return 0; | 475 | return 0; |
479 | } | 476 | } |
480 | 477 | ||
481 | /* Disables the rr3 long range detector */ | ||
482 | static void redrat3_disable_detector(struct redrat3_dev *rr3) | ||
483 | { | ||
484 | struct device *dev = rr3->dev; | ||
485 | u8 ret; | ||
486 | |||
487 | rr3_ftr(dev, "Entering %s\n", __func__); | ||
488 | |||
489 | ret = redrat3_send_cmd(RR3_RC_DET_DISABLE, rr3); | ||
490 | if (ret != 0) | ||
491 | dev_err(dev, "%s: failure!\n", __func__); | ||
492 | |||
493 | ret = redrat3_send_cmd(RR3_RC_DET_STATUS, rr3); | ||
494 | if (ret != 0) | ||
495 | dev_warn(dev, "%s: detector status: %d, should be 0\n", | ||
496 | __func__, ret); | ||
497 | |||
498 | rr3->det_enabled = false; | ||
499 | } | ||
500 | |||
501 | static inline void redrat3_delete(struct redrat3_dev *rr3, | 478 | static inline void redrat3_delete(struct redrat3_dev *rr3, |
502 | struct usb_device *udev) | 479 | struct usb_device *udev) |
503 | { | 480 | { |
@@ -788,7 +765,6 @@ static int redrat3_transmit_ir(struct rc_dev *rcdev, unsigned *txbuf, | |||
788 | count = min_t(unsigned, count, RR3_MAX_SIG_SIZE - RR3_TX_TRAILER_LEN); | 765 | count = min_t(unsigned, count, RR3_MAX_SIG_SIZE - RR3_TX_TRAILER_LEN); |
789 | 766 | ||
790 | /* rr3 will disable rc detector on transmit */ | 767 | /* rr3 will disable rc detector on transmit */ |
791 | rr3->det_enabled = false; | ||
792 | rr3->transmitting = true; | 768 | rr3->transmitting = true; |
793 | 769 | ||
794 | sample_lens = kzalloc(sizeof(int) * RR3_DRIVER_MAXLENS, GFP_KERNEL); | 770 | sample_lens = kzalloc(sizeof(int) * RR3_DRIVER_MAXLENS, GFP_KERNEL); |
@@ -868,7 +844,6 @@ out: | |||
868 | 844 | ||
869 | rr3->transmitting = false; | 845 | rr3->transmitting = false; |
870 | /* rr3 re-enables rc detector because it was enabled before */ | 846 | /* rr3 re-enables rc detector because it was enabled before */ |
871 | rr3->det_enabled = true; | ||
872 | 847 | ||
873 | return ret; | 848 | return ret; |
874 | } | 849 | } |
@@ -1048,8 +1023,6 @@ static void redrat3_dev_disconnect(struct usb_interface *intf) | |||
1048 | if (!rr3) | 1023 | if (!rr3) |
1049 | return; | 1024 | return; |
1050 | 1025 | ||
1051 | redrat3_disable_detector(rr3); | ||
1052 | |||
1053 | usb_set_intfdata(intf, NULL); | 1026 | usb_set_intfdata(intf, NULL); |
1054 | rc_unregister_device(rr3->rc); | 1027 | rc_unregister_device(rr3->rc); |
1055 | del_timer_sync(&rr3->rx_timeout); | 1028 | del_timer_sync(&rr3->rx_timeout); |