aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/dvb-usb/it913x.c
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@kernellabs.com>2011-09-06 08:31:57 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-09-06 13:21:42 -0400
commit77eed219fed5a913f59329cc846420fdeab0150f (patch)
treeabcbcb0a970fb7b81efb11e229151adce78e166b /drivers/media/dvb/dvb-usb/it913x.c
parent4c66c9205c0788e18eb09d482461aa2f551ee046 (diff)
[media] dvb-usb: refactor MFE code for individual streaming config per frontend
refactor MFE code to allow for individual streaming configuration for each frontend Signed-off-by: Michael Krufky <mkrufky@kernellabs.com> Reviewed-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb/dvb-usb/it913x.c')
-rw-r--r--drivers/media/dvb/dvb-usb/it913x.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/drivers/media/dvb/dvb-usb/it913x.c b/drivers/media/dvb/dvb-usb/it913x.c
index 3900068a292..6d2f281510c 100644
--- a/drivers/media/dvb/dvb-usb/it913x.c
+++ b/drivers/media/dvb/dvb-usb/it913x.c
@@ -436,7 +436,7 @@ static int it913x_name(struct dvb_usb_adapter *adap)
436{ 436{
437 const char *desc = adap->dev->desc->name; 437 const char *desc = adap->dev->desc->name;
438 char *fe_name[] = {"_1", "_2", "_3", "_4"}; 438 char *fe_name[] = {"_1", "_2", "_3", "_4"};
439 char *name = adap->fe[0]->ops.info.name; 439 char *name = adap->fe_adap[0].fe->ops.info.name;
440 440
441 strlcpy(name, desc, 128); 441 strlcpy(name, desc, 128);
442 strlcat(name, fe_name[adap->id], 128); 442 strlcat(name, fe_name[adap->id], 128);
@@ -450,12 +450,12 @@ static int it913x_frontend_attach(struct dvb_usb_adapter *adap)
450 int ret = 0; 450 int ret = 0;
451 u8 adf = it913x_read_reg(udev, IO_MUX_POWER_CLK); 451 u8 adf = it913x_read_reg(udev, IO_MUX_POWER_CLK);
452 u8 adap_addr = I2C_BASE_ADDR + (adap->id << 5); 452 u8 adap_addr = I2C_BASE_ADDR + (adap->id << 5);
453 u16 ep_size = adap->props.stream.u.bulk.buffersize; 453 u16 ep_size = adap->props.fe[0].stream.u.bulk.buffersize;
454 454
455 adap->fe[0] = dvb_attach(it913x_fe_attach, 455 adap->fe_adap[0].fe = dvb_attach(it913x_fe_attach,
456 &adap->dev->i2c_adap, adap_addr, adf, IT9137); 456 &adap->dev->i2c_adap, adap_addr, adf, IT9137);
457 457
458 if (adap->id == 0 && adap->fe[0]) { 458 if (adap->id == 0 && adap->fe_adap[0].fe) {
459 ret = it913x_wr_reg(udev, DEV_0_DMOD, MP2_SW_RST, 0x1); 459 ret = it913x_wr_reg(udev, DEV_0_DMOD, MP2_SW_RST, 0x1);
460 ret = it913x_wr_reg(udev, DEV_0_DMOD, MP2IF2_SW_RST, 0x1); 460 ret = it913x_wr_reg(udev, DEV_0_DMOD, MP2IF2_SW_RST, 0x1);
461 ret = it913x_wr_reg(udev, DEV_0, EP0_TX_EN, 0x0f); 461 ret = it913x_wr_reg(udev, DEV_0, EP0_TX_EN, 0x0f);
@@ -465,7 +465,7 @@ static int it913x_frontend_attach(struct dvb_usb_adapter *adap)
465 ep_size & 0xff); 465 ep_size & 0xff);
466 ret = it913x_wr_reg(udev, DEV_0, EP4_TX_LEN_MSB, ep_size >> 8); 466 ret = it913x_wr_reg(udev, DEV_0, EP4_TX_LEN_MSB, ep_size >> 8);
467 ret = it913x_wr_reg(udev, DEV_0, EP4_MAX_PKT, 0x80); 467 ret = it913x_wr_reg(udev, DEV_0, EP4_MAX_PKT, 0x80);
468 } else if (adap->id == 1 && adap->fe[0]) { 468 } else if (adap->id == 1 && adap->fe_adap[0].fe) {
469 ret = it913x_wr_reg(udev, DEV_0, EP0_TX_EN, 0x6f); 469 ret = it913x_wr_reg(udev, DEV_0, EP0_TX_EN, 0x6f);
470 ret = it913x_wr_reg(udev, DEV_0, EP5_TX_LEN_LSB, 470 ret = it913x_wr_reg(udev, DEV_0, EP5_TX_LEN_LSB,
471 ep_size & 0xff); 471 ep_size & 0xff);
@@ -524,6 +524,8 @@ static struct dvb_usb_device_properties it913x_properties = {
524 .num_adapters = 2, 524 .num_adapters = 2,
525 .adapter = { 525 .adapter = {
526 { 526 {
527 .num_frontends = 1,
528 .fe = {{
527 .caps = DVB_USB_ADAP_HAS_PID_FILTER| 529 .caps = DVB_USB_ADAP_HAS_PID_FILTER|
528 DVB_USB_ADAP_NEED_PID_FILTERING| 530 DVB_USB_ADAP_NEED_PID_FILTERING|
529 DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF, 531 DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF,
@@ -544,8 +546,11 @@ static struct dvb_usb_device_properties it913x_properties = {
544 } 546 }
545 } 547 }
546 } 548 }
549 }},
547 }, 550 },
548 { 551 {
552 .num_frontends = 1,
553 .fe = {{
549 .caps = DVB_USB_ADAP_HAS_PID_FILTER| 554 .caps = DVB_USB_ADAP_HAS_PID_FILTER|
550 DVB_USB_ADAP_NEED_PID_FILTERING| 555 DVB_USB_ADAP_NEED_PID_FILTERING|
551 DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF, 556 DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF,
@@ -566,6 +571,7 @@ static struct dvb_usb_device_properties it913x_properties = {
566 } 571 }
567 } 572 }
568 } 573 }
574 }},
569 } 575 }
570 }, 576 },
571 .identify_state = it913x_identify_state, 577 .identify_state = it913x_identify_state,