mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-09-22 09:34:56 +02:00
media: em28xx: Fix dual transport stream operation
[ Upstream commita7853c257a] Addresses the following, which introduced a regression itself: Commit509f89652f("media: em28xx: fix a regression with HVR-950") The regression fix breaks dual transport stream support. Currently, when a tuner starts streaming it sets alt mode on the USB interface. The problem is, in a dual tuner model, both tuners share the same USB interface, so when the second tuner becomes active and sets alt mode on the interface it kills streaming on the other port. This patch addresses the regression by only setting alt mode on the USB interface during em28xx_start_streaming, if the device is not a dual tuner model. This allows all older and single tuner devices to explicitly set alt mode during stream startup. Testers report both isoc and bulk DualHD models work correctly with the alt mode set only once, in em28xx_dvb_init. Fixes:509f89652f("media: em28xx: fix a regression with HVR-950") Signed-off-by: Brad Love <brad@nextdimension.cc> Signed-off-by: Michael Ira Krufky <mkrufky@gmail.com> 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>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
088ce054c7
commit
1b210d52ab
@@ -218,7 +218,9 @@ static int em28xx_start_streaming(struct em28xx_dvb *dvb)
|
||||
dvb_alt = dev->dvb_alt_isoc;
|
||||
}
|
||||
|
||||
usb_set_interface(udev, dev->ifnum, dvb_alt);
|
||||
if (!dev->board.has_dual_ts)
|
||||
usb_set_interface(udev, dev->ifnum, dvb_alt);
|
||||
|
||||
rc = em28xx_set_mode(dev, EM28XX_DIGITAL_MODE);
|
||||
if (rc < 0)
|
||||
return rc;
|
||||
|
||||
Reference in New Issue
Block a user