lkml.org 
[lkml]   [2018]   [Sep]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.18 106/158] media: em28xx: explicitly disable TS packet filter
    Date
    4.18-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Robert Schlabbach <Robert.Schlabbach@gmx.net>

    [ Upstream commit 157eb9a0b75e97ad390c6e50c7381b0a0e02fe97 ]

    The em28xx driver never touched the EM2874 register bits that control
    the transport stream packet filters, leaving them at whatever default
    the firmware has set. E.g. the Pinnacle 290e disables them by default,
    while the Hauppauge WinTV dualHD enables discarding NULL packets by
    default.

    However, some applications require NULL packets, e.g. to determine the
    load in DOCSIS segments, so discarding NULL packets is undesired for
    such applications.

    This patch simply extends the bit mask when starting or stopping the
    transport stream packet capture, so that the filter bits are cleared.
    It has been verified that this makes the Hauppauge WinTV dualHD pass
    an unfiltered DVB-C stream including NULL packets, which it didn't
    before.

    Signed-off-by: Robert Schlabbach <Robert.Schlabbach@gmx.net>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/media/usb/em28xx/em28xx-core.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/drivers/media/usb/em28xx/em28xx-core.c
    +++ b/drivers/media/usb/em28xx/em28xx-core.c
    @@ -655,12 +655,12 @@ int em28xx_capture_start(struct em28xx *
    rc = em28xx_write_reg_bits(dev,
    EM2874_R5F_TS_ENABLE,
    start ? EM2874_TS1_CAPTURE_ENABLE : 0x00,
    - EM2874_TS1_CAPTURE_ENABLE);
    + EM2874_TS1_CAPTURE_ENABLE | EM2874_TS1_FILTER_ENABLE | EM2874_TS1_NULL_DISCARD);
    else
    rc = em28xx_write_reg_bits(dev,
    EM2874_R5F_TS_ENABLE,
    start ? EM2874_TS2_CAPTURE_ENABLE : 0x00,
    - EM2874_TS2_CAPTURE_ENABLE);
    + EM2874_TS2_CAPTURE_ENABLE | EM2874_TS2_FILTER_ENABLE | EM2874_TS2_NULL_DISCARD);
    } else {
    /* FIXME: which is the best order? */
    /* video registers are sampled by VREF */

    \
     
     \ /
      Last update: 2018-09-18 01:18    [W:4.045 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site