aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/usb/dvb-usb-v2/it913x.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/usb/dvb-usb-v2/it913x.c')
-rw-r--r--drivers/media/usb/dvb-usb-v2/it913x.c54
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)
312static int it913x_rc_query(struct dvb_usb_device *d) 312static 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
337static 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 */
338static const char fw_it9135_v1[] = FW_IT9135_V1; 357static const char fw_it9135_v1[] = FW_IT9135_V1;
339static const char fw_it9135_v2[] = FW_IT9135_V2; 358static 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 */
698static 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
714static int it913x_get_adapter_count(struct dvb_usb_device *d) 718static 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
798MODULE_AUTHOR("Malcolm Priestley <tvboxspy@gmail.com>"); 814MODULE_AUTHOR("Malcolm Priestley <tvboxspy@gmail.com>");
799MODULE_DESCRIPTION("it913x USB 2 Driver"); 815MODULE_DESCRIPTION("it913x USB 2 Driver");
800MODULE_VERSION("1.32"); 816MODULE_VERSION("1.33");
801MODULE_LICENSE("GPL"); 817MODULE_LICENSE("GPL");
802MODULE_FIRMWARE(FW_IT9135_V1); 818MODULE_FIRMWARE(FW_IT9135_V1);
803MODULE_FIRMWARE(FW_IT9135_V2); 819MODULE_FIRMWARE(FW_IT9135_V2);