On 4/2/19 1:38 AM, Hans Verkuil wrote:
On 4/2/19 2:40 AM, 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.
The primary focus for testing The patch series is making sure media device is released when both drivers release the media device with a series of unbind/binds on both drivers.
- both au0828 and snd-usb-aduio as built-in
- both au0828 and snd-usb-aduio as modules
- au0828 as module and snd-usb-aduio as built-in
- au0828 as built-in and snd-usb-aduio as module
Test results can be found at:
https://docs.google.com/document/d/1RMF8Rwj7xHJEoOx6_K2f-REgZJ63BMeAVEf-CV-0...
Phew, after posting v2 of my patch "au0828: stop video streaming only when last user stops" everything now works as it should, including the issue with two VBI streams you found.
Awesome. Thanks for taking care of this. Looks good. I tested the patch and sent Tested-by for it.
Should I take the selftest patch or will you take that yourself?
Please take this through your pull request. Bundling the test with the feature will help promote use of this test :)
Please pick up the null pointer dereference fix in bind path when unbind happens while bind is in progress.
Let me know so I can make the pull request for this. It's been a long journey since the first post on April 9th, 2014: "[RFC PATCH 0/2] managed token devres interfaces".
Please send the pull request.
Almost exactly five years of work!
Amazing. We ended up with a far better solution than the the first patch series ! Thanks to everybody that helped me with reviews and testing.
thanks, -- Shuah