• Robert Schlabbach's avatar
    media: dvb-core: Enhance shared multi-frontend support · e704b44b
    Robert Schlabbach authored
    Drivers for devices with multiple frontends which cannot be used
    concurrently due to hardware limitations which enforce that restriction
    by setting the mfe_shared field to 1 exhibit rather unfriendly behavior
    towards applications: The unavailable frontend devices cannot be opened
    at all, not even for read-only access to query information. Even worse,
    any open call is blocked for 5 seconds by default.
    
    Allow drivers for such devices to behave like regular busy frontend
    devices instead, i.e. still allowing concurrent read access to the
    unavailable frontend and denying concurrent write access with -EBUSY
    without delay.
    
    This patch does not alter the behavior of any existing driver to avoid
    regressions. Driver developers who wish to take advantage of this must
    ensure their driver can handle all read-only accesses to the unavailable
    frontend, and indicate the capability by setting the mfe_shared field to
    2 instead of 1.
    
    Add a check to dvb-usb-init.c when automatically setting the mfe_shared
    field that when a driver has already set the field to 2, it is not
    overwritten.
    
    Document the additional capability in the code comment about mfe_shared.
    
    Link: https://lore.kernel.org/linux-media/trinity-22c77578-26b0-4867-9ff7-2668e5d22c64-1642799929896@3c-app-gmx-bap04Signed-off-by: default avatarRobert Schlabbach <robert_s@gmx.net>
    Tested-by: default avatarRobert Schlabbach <robert_s@gmx.net>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
    e704b44b
dvbdev.h 14.4 KB