[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202411050934200431623@163.com>
Date: Tue, 5 Nov 2024 09:35:53 +0800
From: "ccc194101@....com" <ccc194101@....com>
To: "Mauro Carvalho Chehab" <mchehab+huawei@...nel.org>
Cc: laurent.pinchart <laurent.pinchart@...asonboard.com>,
mchehab <mchehab@...nel.org>,
linux-media <linux-media@...r.kernel.org>,
linux-kernel <linux-kernel@...r.kernel.org>,
stable <stable@...r.kernel.org>
Subject: Re: Re: [PATCH] media: uvcvideo:Create input device for all uvc devices with status endpoints.
hi Mauro:
> It sounds to me that this is an application bug, not a Kernel one.
> What applications have such bug?
??? This is a testing application produced by a third-party company, and the modification is mainly aimed at improving compatibility.
??? And retaining nodes has no harm and is more suitable for application scenarios.
--------------
ccc194101@....com
>Em Mon,? 4 Nov 2024 10:39:47 +0800
>chenchangcheng <ccc194101@....com> escreveu:
>
>> Some applications need to check if there is an input device on the camera
>> before proceeding to the next step. When there is no input device,
>> the application will report an error.
>
>Nack.
>
>It is not mandatory for V4L2 devices to create input devices.
>
>It sounds to me that this is an application bug, not a Kernel one.
>What applications have such bug?
>
>> Create input device for all uvc devices with status endpoints.
>> and only when bTriggerSupport and bTriggerUsage are one are
>> allowed to report camera button.
>
>Please fix the application instead.
>
>>
>> Fixes: 3bc22dc66a4f ("media: uvcvideo: Only create input devs if hw supports it")
>
>Regards,
>Mauro
>
>> Signed-off-by: chenchangcheng <ccc194101@....com>
>> ---
>>? drivers/media/usb/uvc/uvc_status.c | 13 ++++++-------
>>? 1 file changed, 6 insertions(+), 7 deletions(-)
>>
>> diff --git a/drivers/media/usb/uvc/uvc_status.c b/drivers/media/usb/uvc/uvc_status.c
>> index a78a88c710e2..177640c6a813 100644
>> --- a/drivers/media/usb/uvc/uvc_status.c
>> +++ b/drivers/media/usb/uvc/uvc_status.c
>> @@ -44,9 +44,6 @@ static int uvc_input_init(struct uvc_device *dev)
>>? struct input_dev *input;
>>? int ret;
>>?
>> - if (!uvc_input_has_button(dev))
>> - return 0;
>> -
>
>
>>? input = input_allocate_device();
>>? if (input == NULL)
>>? return -ENOMEM;
>> @@ -110,10 +107,12 @@ static void uvc_event_streaming(struct uvc_device *dev,
>>? if (len <= offsetof(struct uvc_status, streaming))
>>? return;
>>?
>> - uvc_dbg(dev, STATUS, "Button (intf %u) %s len %d\n",
>> - status->bOriginator,
>> - status->streaming.button ? "pressed" : "released", len);
>> - uvc_input_report_key(dev, KEY_CAMERA, status->streaming.button);
>> + if (uvc_input_has_button(dev)) {
>> + uvc_dbg(dev, STATUS, "Button (intf %u) %s len %d\n",
>> + status->bOriginator,
>> + status->streaming.button ? "pressed" : "released", len);
>> + uvc_input_report_key(dev, KEY_CAMERA, status->streaming.button);
>> + }
>>? } else {
>>? uvc_dbg(dev, STATUS, "Stream %u error event %02x len %d\n",
>>? status->bOriginator, status->bEvent, len);
>
>
>
>Thanks,
>Mauro
Powered by blists - more mailing lists