Commit 991452a2 authored by Antti Palosaari's avatar Antti Palosaari Committed by Mauro Carvalho Chehab

[media] rtl28xxu: generalize streaming control

Move rtl2831u LED from streaming control to power control. It
changes LED behavior slightly but who cares :)
After that same streaming control can be used for both rtl2831u
and rtl2832u.
Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent c01a3595
...@@ -823,43 +823,7 @@ static int rtl28xxu_init(struct dvb_usb_device *d) ...@@ -823,43 +823,7 @@ static int rtl28xxu_init(struct dvb_usb_device *d)
return ret; return ret;
} }
static int rtl2831u_streaming_ctrl(struct dvb_frontend *fe , int onoff) static int rtl28xxu_streaming_ctrl(struct dvb_frontend *fe , int onoff)
{
int ret;
u8 buf[2], gpio;
struct dvb_usb_device *d = fe_to_d(fe);
dev_dbg(&d->udev->dev, "%s: onoff=%d\n", __func__, onoff);
ret = rtl28xx_rd_reg(d, SYS_GPIO_OUT_VAL, &gpio);
if (ret)
goto err;
if (onoff) {
buf[0] = 0x00;
buf[1] = 0x00;
gpio |= 0x04; /* LED on */
} else {
buf[0] = 0x10; /* stall EPA */
buf[1] = 0x02; /* reset EPA */
gpio &= (~0x04); /* LED off */
}
ret = rtl28xx_wr_reg(d, SYS_GPIO_OUT_VAL, gpio);
if (ret)
goto err;
ret = rtl28xx_wr_regs(d, USB_EPA_CTL, buf, 2);
if (ret)
goto err;
return ret;
err:
dev_dbg(&d->udev->dev, "%s: failed=%d\n", __func__, ret);
return ret;
}
static int rtl2832u_streaming_ctrl(struct dvb_frontend *fe , int onoff)
{ {
int ret; int ret;
u8 buf[2]; u8 buf[2];
...@@ -908,11 +872,13 @@ static int rtl2831u_power_ctrl(struct dvb_usb_device *d, int onoff) ...@@ -908,11 +872,13 @@ static int rtl2831u_power_ctrl(struct dvb_usb_device *d, int onoff)
if (onoff) { if (onoff) {
gpio |= 0x01; /* GPIO0 = 1 */ gpio |= 0x01; /* GPIO0 = 1 */
gpio &= (~0x10); /* GPIO4 = 0 */ gpio &= (~0x10); /* GPIO4 = 0 */
gpio |= 0x04; /* GPIO2 = 1, LED on */
sys0 = sys0 & 0x0f; sys0 = sys0 & 0x0f;
sys0 |= 0xe0; sys0 |= 0xe0;
} else { } else {
gpio &= (~0x01); /* GPIO0 = 0 */ gpio &= (~0x01); /* GPIO0 = 0 */
gpio |= 0x10; /* GPIO4 = 1 */ gpio |= 0x10; /* GPIO4 = 1 */
gpio &= (~0x04); /* GPIO2 = 1, LED off */
sys0 = sys0 & (~0xc0); sys0 = sys0 & (~0xc0);
} }
...@@ -1224,7 +1190,7 @@ static const struct dvb_usb_device_properties rtl2831u_props = { ...@@ -1224,7 +1190,7 @@ static const struct dvb_usb_device_properties rtl2831u_props = {
.tuner_attach = rtl2831u_tuner_attach, .tuner_attach = rtl2831u_tuner_attach,
.init = rtl28xxu_init, .init = rtl28xxu_init,
.get_rc_config = rtl2831u_get_rc_config, .get_rc_config = rtl2831u_get_rc_config,
.streaming_ctrl = rtl2831u_streaming_ctrl, .streaming_ctrl = rtl28xxu_streaming_ctrl,
.num_adapters = 1, .num_adapters = 1,
.adapter = { .adapter = {
...@@ -1246,7 +1212,7 @@ static const struct dvb_usb_device_properties rtl2832u_props = { ...@@ -1246,7 +1212,7 @@ static const struct dvb_usb_device_properties rtl2832u_props = {
.tuner_attach = rtl2832u_tuner_attach, .tuner_attach = rtl2832u_tuner_attach,
.init = rtl28xxu_init, .init = rtl28xxu_init,
.get_rc_config = rtl2832u_get_rc_config, .get_rc_config = rtl2832u_get_rc_config,
.streaming_ctrl = rtl2832u_streaming_ctrl, .streaming_ctrl = rtl28xxu_streaming_ctrl,
.num_adapters = 1, .num_adapters = 1,
.adapter = { .adapter = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment