* [PATCH 1/5] rtl28xxu: stream did not start after stop on USB3.0
@ 2012-08-21 23:56 Antti Palosaari
2012-08-21 23:56 ` [PATCH 2/5] rtl28xxu: fix rtl2832u module reload fails bug Antti Palosaari
` (4 more replies)
0 siblings, 5 replies; 8+ messages in thread
From: Antti Palosaari @ 2012-08-21 23:56 UTC (permalink / raw)
To: linux-media; +Cc: Antti Palosaari
Stream did not start anymore after stream was stopped once.
Following error can be seen, xhci_hcd
WARN Set TR Deq Ptr cmd failed due to incorrect slot or ep state.
usb_clear_halt for streaming endpoint helps.
Signed-off-by: Antti Palosaari <crope@iki.fi>
---
drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
index d2b1505..1ccb99b 100644
--- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
+++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
@@ -834,6 +834,7 @@ static int rtl28xxu_streaming_ctrl(struct dvb_frontend *fe , int onoff)
if (onoff) {
buf[0] = 0x00;
buf[1] = 0x00;
+ usb_clear_halt(d->udev, usb_rcvbulkpipe(d->udev, 0x81));
} else {
buf[0] = 0x10; /* stall EPA */
buf[1] = 0x02; /* reset EPA */
--
1.7.11.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/5] rtl28xxu: fix rtl2832u module reload fails bug
2012-08-21 23:56 [PATCH 1/5] rtl28xxu: stream did not start after stop on USB3.0 Antti Palosaari
@ 2012-08-21 23:56 ` Antti Palosaari
2012-09-01 13:54 ` poma
2012-08-21 23:56 ` [PATCH 3/5] rtl2832: implement .get_frontend() Antti Palosaari
` (3 subsequent siblings)
4 siblings, 1 reply; 8+ messages in thread
From: Antti Palosaari @ 2012-08-21 23:56 UTC (permalink / raw)
To: linux-media; +Cc: Antti Palosaari, Thomas Mair
This is workaround / partial fix.
rtl2832u_power_ctrl() and rtl2832u_frontend_attach() needs to
be go through carefully and fix properly. There is clearly
some logical errors when handling power-management ang GPIOs...
Signed-off-by: Antti Palosaari <crope@iki.fi>
Cc: Thomas Mair <thomas.mair86@googlemail.com>
---
drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
index 1ccb99b..c246c50 100644
--- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
+++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
@@ -946,17 +946,6 @@ static int rtl2832u_power_ctrl(struct dvb_usb_device *d, int onoff)
if (ret)
goto err;
- /* demod HW reset */
- ret = rtl28xx_rd_reg(d, SYS_DEMOD_CTL, &val);
- if (ret)
- goto err;
- /* bit 5 to 0 */
- val &= 0xdf;
-
- ret = rtl28xx_wr_reg(d, SYS_DEMOD_CTL, val);
- if (ret)
- goto err;
-
ret = rtl28xx_rd_reg(d, SYS_DEMOD_CTL, &val);
if (ret)
goto err;
--
1.7.11.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/5] rtl2832: implement .get_frontend()
2012-08-21 23:56 [PATCH 1/5] rtl28xxu: stream did not start after stop on USB3.0 Antti Palosaari
2012-08-21 23:56 ` [PATCH 2/5] rtl28xxu: fix rtl2832u module reload fails bug Antti Palosaari
@ 2012-08-21 23:56 ` Antti Palosaari
2012-08-21 23:56 ` [PATCH 4/5] rtl2832: implement .read_snr() Antti Palosaari
` (2 subsequent siblings)
4 siblings, 0 replies; 8+ messages in thread
From: Antti Palosaari @ 2012-08-21 23:56 UTC (permalink / raw)
To: linux-media; +Cc: Antti Palosaari, Thomas Mair
Copied from rtl2830.
Cc: Thomas Mair <thomas.mair86@googlemail.com>
Signed-off-by: Antti Palosaari <crope@iki.fi>
---
drivers/media/dvb-frontends/rtl2832.c | 113 ++++++++++++++++++++++++++++++++++
1 file changed, 113 insertions(+)
diff --git a/drivers/media/dvb-frontends/rtl2832.c b/drivers/media/dvb-frontends/rtl2832.c
index 18e1ae3..6e28444 100644
--- a/drivers/media/dvb-frontends/rtl2832.c
+++ b/drivers/media/dvb-frontends/rtl2832.c
@@ -636,6 +636,118 @@ err:
return ret;
}
+static int rtl2832_get_frontend(struct dvb_frontend *fe)
+{
+ struct rtl2832_priv *priv = fe->demodulator_priv;
+ struct dtv_frontend_properties *c = &fe->dtv_property_cache;
+ int ret;
+ u8 buf[3];
+
+ if (priv->sleeping)
+ return 0;
+
+ ret = rtl2832_rd_regs(priv, 0x3c, 3, buf, 2);
+ if (ret)
+ goto err;
+
+ ret = rtl2832_rd_reg(priv, 0x51, 3, &buf[2]);
+ if (ret)
+ goto err;
+
+ dbg("%s: TPS=%*ph", __func__, 3, buf);
+
+ switch ((buf[0] >> 2) & 3) {
+ case 0:
+ c->modulation = QPSK;
+ break;
+ case 1:
+ c->modulation = QAM_16;
+ break;
+ case 2:
+ c->modulation = QAM_64;
+ break;
+ }
+
+ switch ((buf[2] >> 2) & 1) {
+ case 0:
+ c->transmission_mode = TRANSMISSION_MODE_2K;
+ break;
+ case 1:
+ c->transmission_mode = TRANSMISSION_MODE_8K;
+ }
+
+ switch ((buf[2] >> 0) & 3) {
+ case 0:
+ c->guard_interval = GUARD_INTERVAL_1_32;
+ break;
+ case 1:
+ c->guard_interval = GUARD_INTERVAL_1_16;
+ break;
+ case 2:
+ c->guard_interval = GUARD_INTERVAL_1_8;
+ break;
+ case 3:
+ c->guard_interval = GUARD_INTERVAL_1_4;
+ break;
+ }
+
+ switch ((buf[0] >> 4) & 7) {
+ case 0:
+ c->hierarchy = HIERARCHY_NONE;
+ break;
+ case 1:
+ c->hierarchy = HIERARCHY_1;
+ break;
+ case 2:
+ c->hierarchy = HIERARCHY_2;
+ break;
+ case 3:
+ c->hierarchy = HIERARCHY_4;
+ break;
+ }
+
+ switch ((buf[1] >> 3) & 7) {
+ case 0:
+ c->code_rate_HP = FEC_1_2;
+ break;
+ case 1:
+ c->code_rate_HP = FEC_2_3;
+ break;
+ case 2:
+ c->code_rate_HP = FEC_3_4;
+ break;
+ case 3:
+ c->code_rate_HP = FEC_5_6;
+ break;
+ case 4:
+ c->code_rate_HP = FEC_7_8;
+ break;
+ }
+
+ switch ((buf[1] >> 0) & 7) {
+ case 0:
+ c->code_rate_LP = FEC_1_2;
+ break;
+ case 1:
+ c->code_rate_LP = FEC_2_3;
+ break;
+ case 2:
+ c->code_rate_LP = FEC_3_4;
+ break;
+ case 3:
+ c->code_rate_LP = FEC_5_6;
+ break;
+ case 4:
+ c->code_rate_LP = FEC_7_8;
+ break;
+ }
+
+ return 0;
+err:
+ dbg("%s: failed=%d", __func__, ret);
+ return ret;
+}
+
static int rtl2832_read_status(struct dvb_frontend *fe, fe_status_t *status)
{
struct rtl2832_priv *priv = fe->demodulator_priv;
@@ -749,6 +861,7 @@ static struct dvb_frontend_ops rtl2832_ops = {
.get_tune_settings = rtl2832_get_tune_settings,
.set_frontend = rtl2832_set_frontend,
+ .get_frontend = rtl2832_get_frontend,
.read_status = rtl2832_read_status,
.i2c_gate_ctrl = rtl2832_i2c_gate_ctrl,
--
1.7.11.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 4/5] rtl2832: implement .read_snr()
2012-08-21 23:56 [PATCH 1/5] rtl28xxu: stream did not start after stop on USB3.0 Antti Palosaari
2012-08-21 23:56 ` [PATCH 2/5] rtl28xxu: fix rtl2832u module reload fails bug Antti Palosaari
2012-08-21 23:56 ` [PATCH 3/5] rtl2832: implement .get_frontend() Antti Palosaari
@ 2012-08-21 23:56 ` Antti Palosaari
2012-08-21 23:56 ` [PATCH 5/5] rtl2832: implement .read_ber() Antti Palosaari
2012-09-01 13:33 ` [PATCH 1/5] rtl28xxu: stream did not start after stop on USB3.0 poma
4 siblings, 0 replies; 8+ messages in thread
From: Antti Palosaari @ 2012-08-21 23:56 UTC (permalink / raw)
To: linux-media; +Cc: Antti Palosaari, Thomas Mair
Based rtl2830 implementation.
Cc: Thomas Mair <thomas.mair86@googlemail.com>
Signed-off-by: Antti Palosaari <crope@iki.fi>
---
drivers/media/dvb-frontends/rtl2832.c | 52 +++++++++++++++++++++++++++++++++--
1 file changed, 49 insertions(+), 3 deletions(-)
diff --git a/drivers/media/dvb-frontends/rtl2832.c b/drivers/media/dvb-frontends/rtl2832.c
index 6e28444..dad8ab5 100644
--- a/drivers/media/dvb-frontends/rtl2832.c
+++ b/drivers/media/dvb-frontends/rtl2832.c
@@ -19,6 +19,7 @@
*/
#include "rtl2832_priv.h"
+#include "dvb_math.h"
#include <linux/bitops.h>
int rtl2832_debug;
@@ -355,7 +356,6 @@ err:
}
-
static int rtl2832_i2c_gate_ctrl(struct dvb_frontend *fe, int enable)
{
int ret;
@@ -379,8 +379,6 @@ err:
return ret;
}
-
-
static int rtl2832_init(struct dvb_frontend *fe)
{
struct rtl2832_priv *priv = fe->demodulator_priv;
@@ -780,6 +778,52 @@ err:
return ret;
}
+static int rtl2832_read_snr(struct dvb_frontend *fe, u16 *snr)
+{
+ struct rtl2832_priv *priv = fe->demodulator_priv;
+ int ret, hierarchy, constellation;
+ u8 buf[2], tmp;
+ u16 tmp16;
+#define CONSTELLATION_NUM 3
+#define HIERARCHY_NUM 4
+ static const u32 snr_constant[CONSTELLATION_NUM][HIERARCHY_NUM] = {
+ { 85387325, 85387325, 85387325, 85387325 },
+ { 86676178, 86676178, 87167949, 87795660 },
+ { 87659938, 87659938, 87885178, 88241743 },
+ };
+
+ /* reports SNR in resolution of 0.1 dB */
+
+ ret = rtl2832_rd_reg(priv, 0x3c, 3, &tmp);
+ if (ret)
+ goto err;
+
+ constellation = (tmp >> 2) & 0x03; /* [3:2] */
+ if (constellation > CONSTELLATION_NUM - 1)
+ goto err;
+
+ hierarchy = (tmp >> 4) & 0x07; /* [6:4] */
+ if (hierarchy > HIERARCHY_NUM - 1)
+ goto err;
+
+ ret = rtl2832_rd_regs(priv, 0x0c, 4, buf, 2);
+ if (ret)
+ goto err;
+
+ tmp16 = buf[0] << 8 | buf[1];
+
+ if (tmp16)
+ *snr = (snr_constant[constellation][hierarchy] -
+ intlog10(tmp16)) / ((1 << 24) / 100);
+ else
+ *snr = 0;
+
+ return 0;
+err:
+ dbg("%s: failed=%d", __func__, ret);
+ return ret;
+}
+
static struct dvb_frontend_ops rtl2832_ops;
static void rtl2832_release(struct dvb_frontend *fe)
@@ -864,6 +908,8 @@ static struct dvb_frontend_ops rtl2832_ops = {
.get_frontend = rtl2832_get_frontend,
.read_status = rtl2832_read_status,
+ .read_snr = rtl2832_read_snr,
+
.i2c_gate_ctrl = rtl2832_i2c_gate_ctrl,
};
--
1.7.11.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 5/5] rtl2832: implement .read_ber()
2012-08-21 23:56 [PATCH 1/5] rtl28xxu: stream did not start after stop on USB3.0 Antti Palosaari
` (2 preceding siblings ...)
2012-08-21 23:56 ` [PATCH 4/5] rtl2832: implement .read_snr() Antti Palosaari
@ 2012-08-21 23:56 ` Antti Palosaari
2012-09-01 13:33 ` [PATCH 1/5] rtl28xxu: stream did not start after stop on USB3.0 poma
4 siblings, 0 replies; 8+ messages in thread
From: Antti Palosaari @ 2012-08-21 23:56 UTC (permalink / raw)
To: linux-media; +Cc: Antti Palosaari, Thomas Mair
Implementation taken from rtl2830.
Cc: Thomas Mair <thomas.mair86@googlemail.com>
Signed-off-by: Antti Palosaari <crope@iki.fi>
---
drivers/media/dvb-frontends/rtl2832.c | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/drivers/media/dvb-frontends/rtl2832.c b/drivers/media/dvb-frontends/rtl2832.c
index dad8ab5..4d40b4f 100644
--- a/drivers/media/dvb-frontends/rtl2832.c
+++ b/drivers/media/dvb-frontends/rtl2832.c
@@ -824,6 +824,24 @@ err:
return ret;
}
+static int rtl2832_read_ber(struct dvb_frontend *fe, u32 *ber)
+{
+ struct rtl2832_priv *priv = fe->demodulator_priv;
+ int ret;
+ u8 buf[2];
+
+ ret = rtl2832_rd_regs(priv, 0x4e, 3, buf, 2);
+ if (ret)
+ goto err;
+
+ *ber = buf[0] << 8 | buf[1];
+
+ return 0;
+err:
+ dbg("%s: failed=%d", __func__, ret);
+ return ret;
+}
+
static struct dvb_frontend_ops rtl2832_ops;
static void rtl2832_release(struct dvb_frontend *fe)
@@ -909,6 +927,7 @@ static struct dvb_frontend_ops rtl2832_ops = {
.read_status = rtl2832_read_status,
.read_snr = rtl2832_read_snr,
+ .read_ber = rtl2832_read_ber,
.i2c_gate_ctrl = rtl2832_i2c_gate_ctrl,
};
--
1.7.11.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/5] rtl28xxu: stream did not start after stop on USB3.0
2012-08-21 23:56 [PATCH 1/5] rtl28xxu: stream did not start after stop on USB3.0 Antti Palosaari
` (3 preceding siblings ...)
2012-08-21 23:56 ` [PATCH 5/5] rtl2832: implement .read_ber() Antti Palosaari
@ 2012-09-01 13:33 ` poma
2012-09-01 13:50 ` Antti Palosaari
4 siblings, 1 reply; 8+ messages in thread
From: poma @ 2012-09-01 13:33 UTC (permalink / raw)
To: Antti Palosaari; +Cc: linux-media
On 08/22/2012 01:56 AM, Antti Palosaari wrote:
> Stream did not start anymore after stream was stopped once.
>
> Following error can be seen, xhci_hcd
> WARN Set TR Deq Ptr cmd failed due to incorrect slot or ep state.
>
> usb_clear_halt for streaming endpoint helps.
>
> Signed-off-by: Antti Palosaari <crope@iki.fi>
> ---
> drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
> index d2b1505..1ccb99b 100644
> --- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
> +++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
> @@ -834,6 +834,7 @@ static int rtl28xxu_streaming_ctrl(struct dvb_frontend *fe , int onoff)
> if (onoff) {
> buf[0] = 0x00;
> buf[1] = 0x00;
> + usb_clear_halt(d->udev, usb_rcvbulkpipe(d->udev, 0x81));
> } else {
> buf[0] = 0x10; /* stall EPA */
> buf[1] = 0x02; /* reset EPA */
>
After every soft/warm [re]boot only after first scandvb:
------------[ cut here ]------------
WARNING: at drivers/usb/host/ehci-hcd.c:1226
ehci_endpoint_reset+0x111/0x120()
Hardware name: M720-US3
clear_halt for a busy endpoint
Modules linked in: fc0012(O) rtl2832(O) dvb_usb_rtl28xxu(O) rtl2830(O)
dvb_usbv2(O) dvb_core(O) nvidia(PO) tvaudio(O) tda7432(O) msp3400(O)
tuner_simple(O) tuner_types(O) wm8775(O) snd_hda_codec_realtek
tda9887(O) tda8290(O) tuner(O) cx25840(O) snd_hda_intel snd_bt87x
bttv(O) ivtv(O) snd_hda_codec snd_hwdep tveeprom(O) cx2341x(O)
btcx_risc(O) snd_pcm snd_page_alloc snd_timer snd soundcore ppdev
videobuf_dma_sg(O) videobuf_core(O) v4l2_common(O) parport_serial
parport_pc parport videodev(O) edac_core media(O) i2c_nforce2 rc_core(O)
i2c_algo_bit microcode i2c_core edac_mce_amd vhost_net tun macvtap
macvlan kvm_amd kvm uinput binfmt_misc raid1 r8169 ata_generic pata_acpi
mii usb_storage skge pata_amd wmi sunrpc be2iscsi bnx2i cnic uio cxgb4i
cxgb4 cxgb3i cxgb3 mdio libcxgbi libiscsi_tcp qla4xxx iscsi_boot_sysfs
libiscsi scsi_transport_iscsi [last unloaded: scsi_wait_scan]
Pid: 1170, comm: scandvb Tainted: P O 3.5.2-3.fc17.x86_64 #1
Call Trace:
[<ffffffff810584bf>] warn_slowpath_common+0x7f/0xc0
[<ffffffff810585b6>] warn_slowpath_fmt+0x46/0x50
[<ffffffff81444a31>] ehci_endpoint_reset+0x111/0x120
[<ffffffff8142c135>] usb_hcd_reset_endpoint+0x25/0x70
[<ffffffff8142d468>] usb_reset_endpoint+0x28/0x40
[<ffffffff8142e06e>] usb_clear_halt+0x6e/0x80
[<ffffffffa0f2baed>] rtl28xxu_streaming_ctrl+0xad/0x110 [dvb_usb_rtl28xxu]
[<ffffffffa0f50375>] dvb_usb_start_feed+0x235/0x440 [dvb_usbv2]
[<ffffffff8115ca5d>] ? __vmalloc_node_range+0x17d/0x240
[<ffffffffa0f111b9>] ? dvb_dmxdev_filter_start+0x2c9/0x3e0 [dvb_core]
[<ffffffffa0f12b00>] dmx_section_feed_start_filtering+0xe0/0x180 [dvb_core]
[<ffffffffa0f110fe>] dvb_dmxdev_filter_start+0x20e/0x3e0 [dvb_core]
[<ffffffffa0f11945>] dvb_demux_do_ioctl+0x405/0x640 [dvb_core]
[<ffffffffa0f11540>] ? dvb_dvr_do_ioctl+0x130/0x130 [dvb_core]
[<ffffffffa0f0fa36>] dvb_usercopy+0x86/0x1d0 [dvb_core]
[<ffffffff811976d1>] ? do_filp_open+0x41/0xa0
[<ffffffffa0f0ffa5>] dvb_demux_ioctl+0x15/0x20 [dvb_core]
[<ffffffff811996c9>] do_vfs_ioctl+0x99/0x580
[<ffffffff812793da>] ? inode_has_perm.isra.31.constprop.61+0x2a/0x30
[<ffffffff8127a9b7>] ? file_has_perm+0x97/0xb0
[<ffffffff81199c49>] sys_ioctl+0x99/0xa0
[<ffffffff81614969>] system_call_fastpath+0x16/0x1b
---[ end trace cce2913a24da6585 ]---
media_build
commit 420335f564c32517a791ecea3909af233925634d
Cheers,
poma
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/5] rtl28xxu: stream did not start after stop on USB3.0
2012-09-01 13:33 ` [PATCH 1/5] rtl28xxu: stream did not start after stop on USB3.0 poma
@ 2012-09-01 13:50 ` Antti Palosaari
0 siblings, 0 replies; 8+ messages in thread
From: Antti Palosaari @ 2012-09-01 13:50 UTC (permalink / raw)
To: poma; +Cc: linux-media
On 09/01/2012 04:33 PM, poma wrote:
> On 08/22/2012 01:56 AM, Antti Palosaari wrote:
>> Stream did not start anymore after stream was stopped once.
>>
>> Following error can be seen, xhci_hcd
>> WARN Set TR Deq Ptr cmd failed due to incorrect slot or ep state.
>>
>> usb_clear_halt for streaming endpoint helps.
>>
>> Signed-off-by: Antti Palosaari <crope@iki.fi>
>> ---
>> drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
>> index d2b1505..1ccb99b 100644
>> --- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
>> +++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
>> @@ -834,6 +834,7 @@ static int rtl28xxu_streaming_ctrl(struct dvb_frontend *fe , int onoff)
>> if (onoff) {
>> buf[0] = 0x00;
>> buf[1] = 0x00;
>> + usb_clear_halt(d->udev, usb_rcvbulkpipe(d->udev, 0x81));
>> } else {
>> buf[0] = 0x10; /* stall EPA */
>> buf[1] = 0x02; /* reset EPA */
>>
>
> After every soft/warm [re]boot only after first scandvb:
> ------------[ cut here ]------------
> WARNING: at drivers/usb/host/ehci-hcd.c:1226
> ehci_endpoint_reset+0x111/0x120()
> Hardware name: M720-US3
> clear_halt for a busy endpoint
> Modules linked in: fc0012(O) rtl2832(O) dvb_usb_rtl28xxu(O) rtl2830(O)
> dvb_usbv2(O) dvb_core(O) nvidia(PO) tvaudio(O) tda7432(O) msp3400(O)
> tuner_simple(O) tuner_types(O) wm8775(O) snd_hda_codec_realtek
> tda9887(O) tda8290(O) tuner(O) cx25840(O) snd_hda_intel snd_bt87x
> bttv(O) ivtv(O) snd_hda_codec snd_hwdep tveeprom(O) cx2341x(O)
> btcx_risc(O) snd_pcm snd_page_alloc snd_timer snd soundcore ppdev
> videobuf_dma_sg(O) videobuf_core(O) v4l2_common(O) parport_serial
> parport_pc parport videodev(O) edac_core media(O) i2c_nforce2 rc_core(O)
> i2c_algo_bit microcode i2c_core edac_mce_amd vhost_net tun macvtap
> macvlan kvm_amd kvm uinput binfmt_misc raid1 r8169 ata_generic pata_acpi
> mii usb_storage skge pata_amd wmi sunrpc be2iscsi bnx2i cnic uio cxgb4i
> cxgb4 cxgb3i cxgb3 mdio libcxgbi libiscsi_tcp qla4xxx iscsi_boot_sysfs
> libiscsi scsi_transport_iscsi [last unloaded: scsi_wait_scan]
> Pid: 1170, comm: scandvb Tainted: P O 3.5.2-3.fc17.x86_64 #1
> Call Trace:
> [<ffffffff810584bf>] warn_slowpath_common+0x7f/0xc0
> [<ffffffff810585b6>] warn_slowpath_fmt+0x46/0x50
> [<ffffffff81444a31>] ehci_endpoint_reset+0x111/0x120
> [<ffffffff8142c135>] usb_hcd_reset_endpoint+0x25/0x70
> [<ffffffff8142d468>] usb_reset_endpoint+0x28/0x40
> [<ffffffff8142e06e>] usb_clear_halt+0x6e/0x80
> [<ffffffffa0f2baed>] rtl28xxu_streaming_ctrl+0xad/0x110 [dvb_usb_rtl28xxu]
> [<ffffffffa0f50375>] dvb_usb_start_feed+0x235/0x440 [dvb_usbv2]
> [<ffffffff8115ca5d>] ? __vmalloc_node_range+0x17d/0x240
> [<ffffffffa0f111b9>] ? dvb_dmxdev_filter_start+0x2c9/0x3e0 [dvb_core]
> [<ffffffffa0f12b00>] dmx_section_feed_start_filtering+0xe0/0x180 [dvb_core]
> [<ffffffffa0f110fe>] dvb_dmxdev_filter_start+0x20e/0x3e0 [dvb_core]
> [<ffffffffa0f11945>] dvb_demux_do_ioctl+0x405/0x640 [dvb_core]
> [<ffffffffa0f11540>] ? dvb_dvr_do_ioctl+0x130/0x130 [dvb_core]
> [<ffffffffa0f0fa36>] dvb_usercopy+0x86/0x1d0 [dvb_core]
> [<ffffffff811976d1>] ? do_filp_open+0x41/0xa0
> [<ffffffffa0f0ffa5>] dvb_demux_ioctl+0x15/0x20 [dvb_core]
> [<ffffffff811996c9>] do_vfs_ioctl+0x99/0x580
> [<ffffffff812793da>] ? inode_has_perm.isra.31.constprop.61+0x2a/0x30
> [<ffffffff8127a9b7>] ? file_has_perm+0x97/0xb0
> [<ffffffff81199c49>] sys_ioctl+0x99/0xa0
> [<ffffffff81614969>] system_call_fastpath+0x16/0x1b
> ---[ end trace cce2913a24da6585 ]---
>
> media_build
> commit 420335f564c32517a791ecea3909af233925634d
That is already fixed, but I haven't sent patch yet. Currently last patch:
http://git.linuxtv.org/anttip/media_tree.git/shortlog/refs/heads/for_v3.7-10
Mabbe I will sent that fix out to mailing list right now.
regards
Antti
--
http://palosaari.fi/
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/5] rtl28xxu: fix rtl2832u module reload fails bug
2012-08-21 23:56 ` [PATCH 2/5] rtl28xxu: fix rtl2832u module reload fails bug Antti Palosaari
@ 2012-09-01 13:54 ` poma
0 siblings, 0 replies; 8+ messages in thread
From: poma @ 2012-09-01 13:54 UTC (permalink / raw)
To: Antti Palosaari
Cc: linux-media, Thomas Mair, David Basden, Zdenek Styblik,
Mauro Carvalho Chehab
On 08/22/2012 01:56 AM, Antti Palosaari wrote:
> This is workaround / partial fix.
>
> rtl2832u_power_ctrl() and rtl2832u_frontend_attach() needs to
> be go through carefully and fix properly. There is clearly
> some logical errors when handling power-management ang GPIOs...
>
> Signed-off-by: Antti Palosaari <crope@iki.fi>
> Cc: Thomas Mair <thomas.mair86@googlemail.com>
> ---
> drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 11 -----------
> 1 file changed, 11 deletions(-)
>
> diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
> index 1ccb99b..c246c50 100644
> --- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
> +++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
> @@ -946,17 +946,6 @@ static int rtl2832u_power_ctrl(struct dvb_usb_device *d, int onoff)
> if (ret)
> goto err;
>
> - /* demod HW reset */
> - ret = rtl28xx_rd_reg(d, SYS_DEMOD_CTL, &val);
> - if (ret)
> - goto err;
> - /* bit 5 to 0 */
> - val &= 0xdf;
> -
> - ret = rtl28xx_wr_reg(d, SYS_DEMOD_CTL, val);
> - if (ret)
> - goto err;
> -
> ret = rtl28xx_rd_reg(d, SYS_DEMOD_CTL, &val);
> if (ret)
> goto err;
>
Test: PASSED!
Working zapping on every hard/cold boot, soft/warm [re]boot and every
module(dvb_usb_rtl28xxu) [re]load.
Outside the box thinking!
Antti, thank you very much!
media_build
commit 420335f564c32517a791ecea3909af233925634d
1f4d:b803 G-Tek Electronics Group Lifeview LV5TDLX DVB-T [RTL2832U]
Cheers,
poma
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2012-09-01 13:54 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-08-21 23:56 [PATCH 1/5] rtl28xxu: stream did not start after stop on USB3.0 Antti Palosaari
2012-08-21 23:56 ` [PATCH 2/5] rtl28xxu: fix rtl2832u module reload fails bug Antti Palosaari
2012-09-01 13:54 ` poma
2012-08-21 23:56 ` [PATCH 3/5] rtl2832: implement .get_frontend() Antti Palosaari
2012-08-21 23:56 ` [PATCH 4/5] rtl2832: implement .read_snr() Antti Palosaari
2012-08-21 23:56 ` [PATCH 5/5] rtl2832: implement .read_ber() Antti Palosaari
2012-09-01 13:33 ` [PATCH 1/5] rtl28xxu: stream did not start after stop on USB3.0 poma
2012-09-01 13:50 ` Antti Palosaari
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.