diff options
Diffstat (limited to 'drivers/media/usb/dvb-usb-v2/it913x.c')
-rw-r--r-- | drivers/media/usb/dvb-usb-v2/it913x.c | 54 |
1 files changed, 35 insertions, 19 deletions
diff --git a/drivers/media/usb/dvb-usb-v2/it913x.c b/drivers/media/usb/dvb-usb-v2/it913x.c index 47204280b8b3..833847995c65 100644 --- a/drivers/media/usb/dvb-usb-v2/it913x.c +++ b/drivers/media/usb/dvb-usb-v2/it913x.c | |||
@@ -308,7 +308,7 @@ static struct i2c_algorithm it913x_i2c_algo = { | |||
308 | }; | 308 | }; |
309 | 309 | ||
310 | /* Callbacks for DVB USB */ | 310 | /* Callbacks for DVB USB */ |
311 | #define IT913X_POLL 250 | 311 | #if IS_ENABLED(CONFIG_RC_CORE) |
312 | static int it913x_rc_query(struct dvb_usb_device *d) | 312 | static int it913x_rc_query(struct dvb_usb_device *d) |
313 | { | 313 | { |
314 | u8 ibuf[4]; | 314 | u8 ibuf[4]; |
@@ -334,6 +334,25 @@ static int it913x_rc_query(struct dvb_usb_device *d) | |||
334 | return ret; | 334 | return ret; |
335 | } | 335 | } |
336 | 336 | ||
337 | static int it913x_get_rc_config(struct dvb_usb_device *d, struct dvb_usb_rc *rc) | ||
338 | { | ||
339 | struct it913x_state *st = d->priv; | ||
340 | |||
341 | if (st->proprietary_ir == false) { | ||
342 | rc->map_name = NULL; | ||
343 | return 0; | ||
344 | } | ||
345 | |||
346 | rc->allowed_protos = RC_BIT_NEC; | ||
347 | rc->query = it913x_rc_query; | ||
348 | rc->interval = 250; | ||
349 | |||
350 | return 0; | ||
351 | } | ||
352 | #else | ||
353 | #define it913x_get_rc_config NULL | ||
354 | #endif | ||
355 | |||
337 | /* Firmware sets raw */ | 356 | /* Firmware sets raw */ |
338 | static const char fw_it9135_v1[] = FW_IT9135_V1; | 357 | static const char fw_it9135_v1[] = FW_IT9135_V1; |
339 | static const char fw_it9135_v2[] = FW_IT9135_V2; | 358 | static const char fw_it9135_v2[] = FW_IT9135_V2; |
@@ -643,7 +662,8 @@ static int it913x_frontend_attach(struct dvb_usb_adapter *adap) | |||
643 | struct it913x_state *st = d->priv; | 662 | struct it913x_state *st = d->priv; |
644 | int ret = 0; | 663 | int ret = 0; |
645 | u8 adap_addr = I2C_BASE_ADDR + (adap->id << 5); | 664 | u8 adap_addr = I2C_BASE_ADDR + (adap->id << 5); |
646 | u16 ep_size = adap->stream.buf_size / 4; | 665 | u16 ep_size = (adap->pid_filtering) ? TS_BUFFER_SIZE_PID / 4 : |
666 | TS_BUFFER_SIZE_MAX / 4; | ||
647 | u8 pkt_size = 0x80; | 667 | u8 pkt_size = 0x80; |
648 | 668 | ||
649 | if (d->udev->speed != USB_SPEED_HIGH) | 669 | if (d->udev->speed != USB_SPEED_HIGH) |
@@ -695,22 +715,6 @@ static int it913x_frontend_attach(struct dvb_usb_adapter *adap) | |||
695 | } | 715 | } |
696 | 716 | ||
697 | /* DVB USB Driver */ | 717 | /* DVB USB Driver */ |
698 | static int it913x_get_rc_config(struct dvb_usb_device *d, struct dvb_usb_rc *rc) | ||
699 | { | ||
700 | struct it913x_state *st = d->priv; | ||
701 | |||
702 | if (st->proprietary_ir == false) { | ||
703 | rc->map_name = NULL; | ||
704 | return 0; | ||
705 | } | ||
706 | |||
707 | rc->allowed_protos = RC_BIT_NEC; | ||
708 | rc->query = it913x_rc_query; | ||
709 | rc->interval = 250; | ||
710 | |||
711 | return 0; | ||
712 | } | ||
713 | |||
714 | static int it913x_get_adapter_count(struct dvb_usb_device *d) | 718 | static int it913x_get_adapter_count(struct dvb_usb_device *d) |
715 | { | 719 | { |
716 | struct it913x_state *st = d->priv; | 720 | struct it913x_state *st = d->priv; |
@@ -779,6 +783,18 @@ static const struct usb_device_id it913x_id_table[] = { | |||
779 | { DVB_USB_DEVICE(USB_VID_ITETECH, USB_PID_ITETECH_IT9135_9006, | 783 | { DVB_USB_DEVICE(USB_VID_ITETECH, USB_PID_ITETECH_IT9135_9006, |
780 | &it913x_properties, "ITE 9135(9006) Generic", | 784 | &it913x_properties, "ITE 9135(9006) Generic", |
781 | RC_MAP_IT913X_V1) }, | 785 | RC_MAP_IT913X_V1) }, |
786 | { DVB_USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_A835B_1835, | ||
787 | &it913x_properties, "Avermedia A835B(1835)", | ||
788 | RC_MAP_IT913X_V2) }, | ||
789 | { DVB_USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_A835B_2835, | ||
790 | &it913x_properties, "Avermedia A835B(2835)", | ||
791 | RC_MAP_IT913X_V2) }, | ||
792 | { DVB_USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_A835B_3835, | ||
793 | &it913x_properties, "Avermedia A835B(3835)", | ||
794 | RC_MAP_IT913X_V2) }, | ||
795 | { DVB_USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_A835B_4835, | ||
796 | &it913x_properties, "Avermedia A835B(4835)", | ||
797 | RC_MAP_IT913X_V2) }, | ||
782 | {} /* Terminating entry */ | 798 | {} /* Terminating entry */ |
783 | }; | 799 | }; |
784 | 800 | ||
@@ -797,7 +813,7 @@ module_usb_driver(it913x_driver); | |||
797 | 813 | ||
798 | MODULE_AUTHOR("Malcolm Priestley <tvboxspy@gmail.com>"); | 814 | MODULE_AUTHOR("Malcolm Priestley <tvboxspy@gmail.com>"); |
799 | MODULE_DESCRIPTION("it913x USB 2 Driver"); | 815 | MODULE_DESCRIPTION("it913x USB 2 Driver"); |
800 | MODULE_VERSION("1.32"); | 816 | MODULE_VERSION("1.33"); |
801 | MODULE_LICENSE("GPL"); | 817 | MODULE_LICENSE("GPL"); |
802 | MODULE_FIRMWARE(FW_IT9135_V1); | 818 | MODULE_FIRMWARE(FW_IT9135_V1); |
803 | MODULE_FIRMWARE(FW_IT9135_V2); | 819 | MODULE_FIRMWARE(FW_IT9135_V2); |