Hi Shuah,
On 1/24/19 9:32 PM, Shuah Khan wrote:
Media Device Allocator API to allows multiple drivers share a media device.
This API solves a very common use-case for media devices where one physical
device (an USB stick) provides both audio and video. When such media device
exposes a standard USB Audio class, a proprietary Video class, two or more
independent drivers will share a single physical USB bridge. In such cases,
it is necessary to coordinate access to the shared resource.
Using this API, drivers can allocate a media device with the shared struct
device as the key. Once the media device is allocated by a driver, other
drivers can get a reference to it. The media device is released when all
the references are released.
- This patch series is tested on 5.0-rc3 and addresses comments on
v9 series from Hans Verkuil.
- v9 was tested on 4.20-rc6.
- Tested sharing resources with kaffeine, vlc, xawtv, tvtime, and
arecord. When analog is streaming, digital and audio user-space
applications detect that the tuner is busy and exit. When digital
is streaming, analog and audio applications detect that the tuner is
busy and exit. When arecord is owns the tuner, digital and analog
detect that the tuner is busy and exit.
I've been doing some testing with my au0828, and I am confused about one
thing, probably because it has been too long ago since I last looked into
this in detail:
Why can't I change the tuner frequency if arecord (and only arecord) is
streaming audio? If arecord is streaming, then it is recording the audio
from the analog TV tuner, right? So changing the analog TV frequency
should be fine.