Message ID | 1448763016-10527-3-git-send-email-benjamin@southpole.se (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Moikka! I did some testing and I cannot see reason to force hw pid filter for that device. I assume you somehow think it does not work without filtering, but I think it does. I tested streaming with mn88472 demod DVB-C and DVB-T2 modes without stream errors. DVB-T2 (live) datarate 45Mbps and DVB-C (modulator) datarate 50Mbps. Maximum DVB-T2 (8MHz) datarate is 50Mbps - in a real life it is bit less. DVB-C 1fff 19870.47 p/s 29184.8 Kbps 207966 KB TOT 34313.26 p/s 50397.6 Kbps 359127 KB DVB-T2 1fff 2589.99 p/s 3804.0 Kbps 21400 KB TOT 30346.18 p/s 44570.9 Kbps 250745 KB So point me the reason hw PID filters need to be forced. regards Antti On 11/29/2015 04:10 AM, Benjamin Larsson wrote: > Signed-off-by: Benjamin Larsson <benjamin@southpole.se> > --- > drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 35 ++++++++++++++++++++++++++++++++- > 1 file changed, 34 insertions(+), 1 deletion(-) > > diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c > index 5a503a6..74201ec 100644 > --- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c > +++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c > @@ -1848,6 +1848,39 @@ static const struct dvb_usb_device_properties rtl28xxu_props = { > }, > }; > > +static const struct dvb_usb_device_properties rtl28xxp_props = { > + .driver_name = KBUILD_MODNAME, > + .owner = THIS_MODULE, > + .adapter_nr = adapter_nr, > + .size_of_priv = sizeof(struct rtl28xxu_dev), > + > + .identify_state = rtl28xxu_identify_state, > + .power_ctrl = rtl28xxu_power_ctrl, > + .frontend_ctrl = rtl28xxu_frontend_ctrl, > + .i2c_algo = &rtl28xxu_i2c_algo, > + .read_config = rtl28xxu_read_config, > + .frontend_attach = rtl28xxu_frontend_attach, > + .frontend_detach = rtl28xxu_frontend_detach, > + .tuner_attach = rtl28xxu_tuner_attach, > + .tuner_detach = rtl28xxu_tuner_detach, > + .init = rtl28xxu_init, > + > + .get_rc_config = rtl28xxu_get_rc_config, > + .num_adapters = 1, > + .adapter = { > + { > + .caps = DVB_USB_ADAP_NEED_PID_FILTERING | > + DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF, > + > + .pid_filter_count = 32, > + .pid_filter_ctrl = rtl28xxu_pid_filter_ctrl, > + .pid_filter = rtl28xxu_pid_filter, > + > + .stream = DVB_USB_STREAM_BULK(0x81, 6, 8 * 512), > + }, > + }, > +}; > + > static const struct usb_device_id rtl28xxu_id_table[] = { > /* RTL2831U devices: */ > { DVB_USB_DEVICE(USB_VID_REALTEK, USB_PID_REALTEK_RTL2831U, > @@ -1919,7 +1952,7 @@ static const struct usb_device_id rtl28xxu_id_table[] = { > > /* RTL2832P devices: */ > { DVB_USB_DEVICE(USB_VID_HANFTEK, 0x0131, > - &rtl28xxu_props, "Astrometa DVB-T2", NULL) }, > + &rtl28xxp_props, "Astrometa DVB-T2", NULL) }, > { DVB_USB_DEVICE(0x5654, 0xca42, > &rtl28xxu_props, "GoTView MasterHD 3", NULL) }, > { } >
On 12/20/2015 04:36 AM, Antti Palosaari wrote: > Moikka! > I did some testing and I cannot see reason to force hw pid filter for > that device. I assume you somehow think it does not work without > filtering, but I think it does. > [... proof that I was wrong ...] > > So point me the reason hw PID filters need to be forced. The only reason would be that I suspected that high rates would not be possible over the bridge and that this was the default mode for the binary driver but as you proved that the bridge is able to support the rate this patch can be nacked. > > regards > Antti MvH Benjamin Larsson -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c index 5a503a6..74201ec 100644 --- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c +++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c @@ -1848,6 +1848,39 @@ static const struct dvb_usb_device_properties rtl28xxu_props = { }, }; +static const struct dvb_usb_device_properties rtl28xxp_props = { + .driver_name = KBUILD_MODNAME, + .owner = THIS_MODULE, + .adapter_nr = adapter_nr, + .size_of_priv = sizeof(struct rtl28xxu_dev), + + .identify_state = rtl28xxu_identify_state, + .power_ctrl = rtl28xxu_power_ctrl, + .frontend_ctrl = rtl28xxu_frontend_ctrl, + .i2c_algo = &rtl28xxu_i2c_algo, + .read_config = rtl28xxu_read_config, + .frontend_attach = rtl28xxu_frontend_attach, + .frontend_detach = rtl28xxu_frontend_detach, + .tuner_attach = rtl28xxu_tuner_attach, + .tuner_detach = rtl28xxu_tuner_detach, + .init = rtl28xxu_init, + + .get_rc_config = rtl28xxu_get_rc_config, + .num_adapters = 1, + .adapter = { + { + .caps = DVB_USB_ADAP_NEED_PID_FILTERING | + DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF, + + .pid_filter_count = 32, + .pid_filter_ctrl = rtl28xxu_pid_filter_ctrl, + .pid_filter = rtl28xxu_pid_filter, + + .stream = DVB_USB_STREAM_BULK(0x81, 6, 8 * 512), + }, + }, +}; + static const struct usb_device_id rtl28xxu_id_table[] = { /* RTL2831U devices: */ { DVB_USB_DEVICE(USB_VID_REALTEK, USB_PID_REALTEK_RTL2831U, @@ -1919,7 +1952,7 @@ static const struct usb_device_id rtl28xxu_id_table[] = { /* RTL2832P devices: */ { DVB_USB_DEVICE(USB_VID_HANFTEK, 0x0131, - &rtl28xxu_props, "Astrometa DVB-T2", NULL) }, + &rtl28xxp_props, "Astrometa DVB-T2", NULL) }, { DVB_USB_DEVICE(0x5654, 0xca42, &rtl28xxu_props, "GoTView MasterHD 3", NULL) }, { }
Signed-off-by: Benjamin Larsson <benjamin@southpole.se> --- drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 35 ++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-)