diff options
author | Michael Krufky <mkrufky@kernellabs.com> | 2011-09-06 08:31:57 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-09-06 13:21:42 -0400 |
commit | 77eed219fed5a913f59329cc846420fdeab0150f (patch) | |
tree | abcbcb0a970fb7b81efb11e229151adce78e166b /drivers/media/dvb/dvb-usb/it913x.c | |
parent | 4c66c9205c0788e18eb09d482461aa2f551ee046 (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.c | 16 |
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, |