diff mbox

it913x: [BUG] fix correct endpoint size when pid filter on.

Message ID 1352410221.17913.23.camel@Route3278 (mailing list archive)
State New, archived
Headers show

Commit Message

Malcolm Priestley Nov. 8, 2012, 9:30 p.m. UTC
On Thu, 2012-11-08 at 22:18 +0200, Antti Palosaari wrote:
> On 11/08/2012 07:48 PM, Malcolm Priestley wrote:
> >
> > On 07/11/12 23:43, Antti Palosaari wrote:
> >> Malcolm,
> >> Have you newer tested it with USB1.1 port? Stream is totally broken.
> >>
> > Hi Antti
> >
> > Hmm, yes it is a bit choppy on dvb-usb-v2.
> >
> > I will have a look at it.
> 
> Fedora's stock 3.6.5-1.fc17.x86_64 is even more worse - no picture at 
> all when using vlc. Clearly visible difference is pid filter count. 
> dvb-usb says 5 filters whilst dvb-usb-v2 says 32 pid filters.
> 
> dvb_usb_v2: will use the device's hardware PID filter (table count: 32)
> dvb-usb: will use the device's hardware PID filter (table count: 5).
> 
> 
I kept the count as the hardware default with dvb-usb-v2, with 5, users
can still run in to trouble with Video PIDs.

I have traced it to an incorrect endpoint size when the PID filter
is enabled. It also affected USB 2.0 with the filter on.


Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
---
 drivers/media/usb/dvb-usb-v2/it913x.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Antti Palosaari Nov. 9, 2012, 2:19 p.m. UTC | #1
On 11/08/2012 11:30 PM, Malcolm Priestley wrote:
> On Thu, 2012-11-08 at 22:18 +0200, Antti Palosaari wrote:
>> On 11/08/2012 07:48 PM, Malcolm Priestley wrote:
>>>
>>> On 07/11/12 23:43, Antti Palosaari wrote:
>>>> Malcolm,
>>>> Have you newer tested it with USB1.1 port? Stream is totally broken.
>>>>
>>> Hi Antti
>>>
>>> Hmm, yes it is a bit choppy on dvb-usb-v2.
>>>
>>> I will have a look at it.
>>
>> Fedora's stock 3.6.5-1.fc17.x86_64 is even more worse - no picture at
>> all when using vlc. Clearly visible difference is pid filter count.
>> dvb-usb says 5 filters whilst dvb-usb-v2 says 32 pid filters.
>>
>> dvb_usb_v2: will use the device's hardware PID filter (table count: 32)
>> dvb-usb: will use the device's hardware PID filter (table count: 5).
>>
>>
> I kept the count as the hardware default with dvb-usb-v2, with 5, users
> can still run in to trouble with Video PIDs.
>
> I have traced it to an incorrect endpoint size when the PID filter
> is enabled. It also affected USB 2.0 with the filter on.


Bug fixed. Lets add proper tags. Happy weekend!

Reported-by: Antti Palosaari <crope@iki.fi>
Tested-by: Antti Palosaari <crope@iki.fi>

>
>
> Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
> ---
>   drivers/media/usb/dvb-usb-v2/it913x.c |    3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/usb/dvb-usb-v2/it913x.c b/drivers/media/usb/dvb-usb-v2/it913x.c
> index 695f910..29300e3 100644
> --- a/drivers/media/usb/dvb-usb-v2/it913x.c
> +++ b/drivers/media/usb/dvb-usb-v2/it913x.c
> @@ -643,7 +643,8 @@ static int it913x_frontend_attach(struct dvb_usb_adapter *adap)
>   	struct it913x_state *st = d->priv;
>   	int ret = 0;
>   	u8 adap_addr = I2C_BASE_ADDR + (adap->id << 5);
> -	u16 ep_size = adap->stream.buf_size / 4;
> +	u16 ep_size = (adap->pid_filtering) ? TS_BUFFER_SIZE_PID / 4 :
> +		TS_BUFFER_SIZE_MAX / 4;
>   	u8 pkt_size = 0x80;
>
>   	if (d->udev->speed != USB_SPEED_HIGH)
>
diff mbox

Patch

diff --git a/drivers/media/usb/dvb-usb-v2/it913x.c b/drivers/media/usb/dvb-usb-v2/it913x.c
index 695f910..29300e3 100644
--- a/drivers/media/usb/dvb-usb-v2/it913x.c
+++ b/drivers/media/usb/dvb-usb-v2/it913x.c
@@ -643,7 +643,8 @@  static int it913x_frontend_attach(struct dvb_usb_adapter *adap)
 	struct it913x_state *st = d->priv;
 	int ret = 0;
 	u8 adap_addr = I2C_BASE_ADDR + (adap->id << 5);
-	u16 ep_size = adap->stream.buf_size / 4;
+	u16 ep_size = (adap->pid_filtering) ? TS_BUFFER_SIZE_PID / 4 :
+		TS_BUFFER_SIZE_MAX / 4;
 	u8 pkt_size = 0x80;
 
 	if (d->udev->speed != USB_SPEED_HIGH)