On 01/28/2016 09:07 AM, One Thousand Gnomes wrote:
On Thu, 28 Jan 2016 13:53:04 -0200
Mauro Carvalho Chehab [off-list ref] wrote:
quoted
Em Wed, 6 Jan 2016 13:27:04 -0700
Shuah Khan [off-list ref] escreveu:
quoted
Checking for tuner availability from frontend thread start
disrupts video stream. Change to check for tuner and start
pipeline from frontend open instead and stop pipeline from
frontend release.
That's wrong, as DVB can be opened on read-only mode, where
it won't be changing anything.
Correct. Please check the code. Tuner availability check is
done when the device is opened in Write mode in the following
conditional.
if ((file->f_flags & O_ACCMODE) != O_RDONLY) {
quoted
Also, I don't think POSIX allows to return an error like EBUSY
on open:
http://pubs.opengroup.org/onlinepubs/9699919799/functions/open.html
It doesn't document all the errors you may return. Quite a lot of
kernel drivers return EBUSY when they are "single open" things.
POSIX documents certain cases that *must* error and what the error code
is. It documents certain possible failures and what their error code is.
Beyond that it's up to you.
Returning EBUSY clearly indicates the reason why the device
can't be opened in this case.
thanks,
-- Shuah
--
Shuah Khan
Sr. Linux Kernel Developer
Open Source Innovation Group
Samsung Research America (Silicon Valley)
shuahkh-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org | (970) 217-8978