- Dec 20, 2024
-
-
Add an entry for the iris video decoder accelerator driver. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Signed-off-by:
Vikash Garodia <quic_vgarodia@quicinc.com> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
Initialize the platform data and enable probing the video of the SM8250 SoC. Add a kernel parameter to select between the venus and iris for platforms supported by both drivers, like for example: SM8250. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
Based on the design of the state machine, add checks whether the transition from one sub-state to another is allowed. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Signed-off-by:
Vedang Nagar <quic_vnagar@quicinc.com> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
Implement power scaling including a specific vpu2 and vpu3 calculation for clock and bus bandwidth, which depends on the hardware configuration, codec format, resolution and frame rate. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Signed-off-by:
Vedang Nagar <quic_vnagar@quicinc.com> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
Based on the hardware capabilities, add a check during start_streaming and queue_setup, whether the video session is supported by the hardware. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Signed-off-by:
Vedang Nagar <quic_vnagar@quicinc.com> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
Handle the V4L2_DEC_CMD_STOP by initiating a drain sequence on the firmware. Process and decode all OUTPUT buffers, that are queued by the client, before the VIDIOC_DECODER_CMD() was issued and mark the last buffer with the V4L2_BUF_FLAG_LAST flag. The decoder is stopped, after processing the last buffer. Resume the decoder when one of these operations are issued by the client: - V4L2_DEC_CMD_START - pair of VIDIOC_STREAMOFF() and VIDIOC_STREAMON() on the CAPTURE queue - pair of VIDIOC_STREAMOFF() and VIDIOC_STREAMON() on the OUTPUT queue Add the handling to resume decoding when client issues V4L2_DEC_CMD_START to resume decoding after a source change is detected. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
The decoder is stopped after it completes the dynamic resolution change sequence. Handle VIDIOC_STREAMOFF() and VIDIOC_STREAMON() on the CAPTURE queue to resume the decoding process. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
Handle the response sent by the firmware, when a source change is detected. Read the subscribed parameter to get the changed values. Raise the source change event to the client and update the instance sub-state. Mark the last buffer from before the source change with the V4L2_BUF_FLAG_LAST flag and return to the client. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Reviewed-by:
Hans Verkuil <hverkuil@xs4all.nl> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
Implement the vb2 ops for the buf queue. These are the different buffer attributes: BUF_ATTR_DEFERRED - buffer queued by the client but not submitted to firmware. BUF_ATTR_PENDING_RELEASE - buffers requested to be released from the firmware. BUF_ATTR_QUEUED - buffers submitted to the firmware. BUF_ATTR_DEQUEUED - buffers received from the firmware. BUF_ATTR_BUFFER_DONE - buffers sent back to vb2. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Reviewed-by:
Hans Verkuil <hverkuil@xs4all.nl> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
Implement the functions for creating, queueing, releasing and destroying the buffers for internal usage. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
For hfi_gen2, subscribe different bitstream parameters on to firmware, to get notified of a change in any of the subscribed parameters. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Signed-off-by:
Vedang Nagar <quic_vnagar@quicinc.com> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
During the stream on operation, set some mandatory properties on the firmware to start a session. Set all v4l2 properties, which are set by the client, on to firmware, which is prepared with the dependency graph. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Signed-off-by:
Vedang Nagar <quic_vnagar@quicinc.com> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
During the stream on operation, send HFI_CMD_START on the capture and output planes to start processing on the respective planes. During the stream off operation, send HFI_CMD_STOP to the firmware, which is a synchronous command. After the response is received by the firmware, the session is closed on the firmware. Introduce different states for the instance and state transitions. IRIS_INST_INIT - video instance is opened. IRIS_INST_INPUT_STREAMING - stream on is completed on output plane. IRIS_INST_OUTPUT_STREAMING - stream on is completed on capture plane. IRIS_INST_STREAMING - stream on is completed on both output and capture planes. IRIS_INST_DEINIT - video instance is closed. IRIS_INST_ERROR - error state | v ------------- +---------| INIT |--------- + | ------------- | | ^ ^ | | / \ | | / \ | | v v | | ----------- ----------- | | | INPUT | | OUTPUT | | |---| STREAMING| |STREAMING|---| | ----------- ----------- | | ^ ^ | | \ / | | \ / | | v v | | ------------- | |--------| STREAMING |-----------| | ------------- | | | | | | | | v | | ----------- | +-------->| DEINIT |<----------+ | ----------- | | | | | | | | v | | ---------- | +-------->| ERROR |<-----------+ ----------. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Reviewed-by:
Hans Verkuil <hverkuil@xs4all.nl> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
Implement the query_cap ioctl with the necessary hooks. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Signed-off-by:
Vedang Nagar <quic_vnagar@quicinc.com> Reviewed-by:
Hans Verkuil <hverkuil@xs4all.nl> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
Initialize the control handler by reading the platform specific firmware capabilities. Capabilities are features, which are supported by a specific platform (SOC). Each capability is defined with a min, max, range and default value and a corresponding HFI. Implement s_ctrl and g_volatile_ctrl ctrl ops. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Co-developed-by:
Vedang Nagar <quic_vnagar@quicinc.com> Signed-off-by:
Vedang Nagar <quic_vnagar@quicinc.com> Reviewed-by:
Hans Verkuil <hverkuil@xs4all.nl> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
Implement the subscribe_event and unsubscribe_event ioctls with the necessary hooks. Signed-off-by:
Vedang Nagar <quic_vnagar@quicinc.com> Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Reviewed-by:
Hans Verkuil <hverkuil@xs4all.nl> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
Implement the enum_fmt and enum_framesizes ioctls with the necessary hooks. Signed-off-by:
Vedang Nagar <quic_vnagar@quicinc.com> Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Reviewed-by:
Hans Verkuil <hverkuil@xs4all.nl> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
Implement the g_selection ioctl in the driver with the necessary hooks. Signed-off-by:
Vedang Nagar <quic_vnagar@quicinc.com> Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Reviewed-by:
Hans Verkuil <hverkuil@xs4all.nl> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
Implement the s_fmt, g_fmt and try_fmt ioctl ops with the necessary hooks. Signed-off-by:
Vedang Nagar <quic_vnagar@quicinc.com> Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Reviewed-by:
Hans Verkuil <hverkuil@xs4all.nl> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
Implement the reqbuf IOCTL op and the vb2_queue_setup vb2 op in the driver with the necessary hooks. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Reviewed-by:
Hans Verkuil <hverkuil@xs4all.nl> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
Implement runtime power management for iris, including a platform specific power on/off sequence. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
The Host firmware interface (HFI) is a well defined set of interfaces for the communication between the host driver and the firmware. The commands and responses are exchanged in form of packets. One or multiple packets are grouped under the packet header. Each packet has a packet type which describes the specific HFI and the payload, which holds the corresponding value for that HFI. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
Set the memory regions on the firmware and implement the boot sequence. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
Load/unload the firmware into/from memory via the MDT loader. The firmware is loaded as part of the core initialization and unloaded as part of core de-initialization. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
Introduce a core state management for iris driver with the necessary queues needed for the host firmware communication. There are 3 types of queues: Command queue - driver to write any command to the firmware. Message queue - firmware to send any response to the driver. Debug queue - for the firmware to write debug messages. Initialize and configure the shared queues during probe. Different states of the core: IRIS_CORE_DEINIT - default state IRIS_CORE_INIT - core state with core initialized. FW loaded and HW brought out of reset, shared queues established between host driver and firmware. IRIS_CORE_ERROR - error state ----------- | V ----------- | DEINIT | ----------- ^ / \ / \ / \ / \ v v ----------- ----------. | INIT |-->| ERROR | ----------- ----------. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
Implement open, close and poll ops. Open: Configure the vb2 queue and v4l2 file handler. Allocate a video instance and add the instance to core instance list. Close: Free the instance and remove it from core instance list. Poll: Wait for an event on vb2 src and vb2 dst queues. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Reviewed-by:
Bryan O'Donoghue <bryan.odonoghue@linaro.org> Reviewed-by:
Hans Verkuil <hverkuil@xs4all.nl> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
In preparation for adding H264 decode functionality, add the probe and remove functions and platform data to initialize iris resources, which are clocks, interconnects, power domains, reset clocks, and clock frequencies used for the iris hardware. Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Reviewed-by:
Bryan O'Donoghue <bryan.odonoghue@linaro.org> Reviewed-by:
Hans Verkuil <hverkuil@xs4all.nl> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
Introduce support for the new Qualcomm video acceleration hardware i.e. iris, used for video stream decoding and encoding on QCOM SM8550 SoC. Cc: devicetree@vger.kernel.org Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Reviewed-by:
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Sebastian Fricke <sebastian.fricke@collabora.com>
-
- Dec 19, 2024
-
-
Ricardo Ribalda authored
If the user sets the nodrop parameter, print a deprecation warning once. Hopefully they will come to the mailing list if it is an ABI change. Now that we have a callback, take this chance to parse the parameter as a boolean. We still say to userspace that it is a uint to avoid ABI changes. Signed-off-by:
Ricardo Ribalda <ribalda@chromium.org> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by:
Hans de Goede <hdegoede@redhat.com> Link: https://lore.kernel.org/r/20241218-uvc-deprecate-v2-4-ab814139e983@chromium.org Signed-off-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by:
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
-
Ricardo Ribalda authored
Right now the parameter value is read during video_registration and cannot be changed afterwards, despite its permissions 0644, that makes the user believe that the value can be written. The parameter only affects the behaviour of uvc_queue_buffer_complete(), with only one check per buffer. We can read the value directly from uvc_queue_buffer_complete() and therefore allowing changing it with sysfs on the fly. Signed-off-by:
Ricardo Ribalda <ribalda@chromium.org> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by:
Hans de Goede <hdegoede@redhat.com> Link: https://lore.kernel.org/r/20241218-uvc-deprecate-v2-3-ab814139e983@chromium.org Signed-off-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by:
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
-
Ricardo Ribalda authored
The module param `nodrop` defines what to do with frames that contain an error: drop them or sending them to userspace. The default in the rest of the media subsystem is to return buffers with an error to userspace with V4L2_BUF_FLAG_ERROR set in v4l2_buffer.flags. In UVC we drop buffers with errors by default. Change the default behaviour of uvcvideo to match the rest of the drivers and maybe get rid of the module parameter in the future. Suggested-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by:
Ricardo Ribalda <ribalda@chromium.org> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by:
Hans de Goede <hdegoede@redhat.com> Link: https://lore.kernel.org/r/20241218-uvc-deprecate-v2-2-ab814139e983@chromium.org Signed-off-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by:
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
-
Ricardo Ribalda authored
Now we return VB2_BUF_STATE_DONE for valid and invalid frames. Propagate the correct value, so the user can know if the frame is valid or not via struct v4l2_buffer->flags. Reported-by:
Hans de Goede <hdegoede@redhat.com> Closes: https://lore.kernel.org/linux-media/84b0f212-cd88-46bb-8e6f-b94ec3eccba6@redhat.com Fixes: 6998b6fb ("[media] uvcvideo: Use videobuf2-vmalloc") Signed-off-by:
Ricardo Ribalda <ribalda@chromium.org> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by:
Hans de Goede <hdegoede@redhat.com> Link: https://lore.kernel.org/r/20241218-uvc-deprecate-v2-1-ab814139e983@chromium.org Signed-off-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by:
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
-
Ricardo Ribalda authored
Asynchronous controls trigger an event when they have completed their operation. This can make that the control cached value does not match the value in the device. Let's flush the cache to be on the safe side. Signed-off-by:
Ricardo Ribalda <ribalda@chromium.org> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Link: https://lore.kernel.org/r/20241203-uvc-fix-async-v6-5-26c867231118@chromium.org Signed-off-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by:
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
-
Ricardo Ribalda authored
Make it explicit that the function is always called with ctrl_mutex being held. Suggested-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by:
Hans de Goede <hdegoede@redhat.com> Signed-off-by:
Ricardo Ribalda <ribalda@chromium.org> Link: https://lore.kernel.org/r/20241203-uvc-fix-async-v6-4-26c867231118@chromium.org Signed-off-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by:
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
-
Ricardo Ribalda authored
When an async control is written, we copy a pointer to the file handle that started the operation. That pointer will be used when the device is done. Which could be anytime in the future. If the user closes that file descriptor, its structure will be freed, and there will be one dangling pointer per pending async control, that the driver will try to use. Clean all the dangling pointers during release(). To avoid adding a performance penalty in the most common case (no async operation), a counter has been introduced with some logic to make sure that it is properly handled. Cc: stable@vger.kernel.org Fixes: e5225c82 ("media: uvcvideo: Send a control event when a Control Change interrupt arrives") Reviewed-by:
Hans de Goede <hdegoede@redhat.com> Signed-off-by:
Ricardo Ribalda <ribalda@chromium.org> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Link: https://lore.kernel.org/r/20241203-uvc-fix-async-v6-3-26c867231118@chromium.org Signed-off-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by:
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
-
Ricardo Ribalda authored
ctrl->handle will only be different than NULL for controls that have mappings. This is because that assignment is only done inside uvc_ctrl_set() for mapped controls. Cc: stable@vger.kernel.org Fixes: e5225c82 ("media: uvcvideo: Send a control event when a Control Change interrupt arrives") Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by:
Hans de Goede <hdegoede@redhat.com> Signed-off-by:
Ricardo Ribalda <ribalda@chromium.org> Link: https://lore.kernel.org/r/20241203-uvc-fix-async-v6-2-26c867231118@chromium.org Signed-off-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by:
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
-
Ricardo Ribalda authored
Now we keep a reference to the active fh for any call to uvc_ctrl_set, regardless if it is an actual set or if it is a just a try or if the device refused the operation. We should only keep the file handle if the device actually accepted applying the operation. Cc: stable@vger.kernel.org Fixes: e5225c82 ("media: uvcvideo: Send a control event when a Control Change interrupt arrives") Suggested-by:
Hans de Goede <hdegoede@redhat.com> Reviewed-by:
Hans de Goede <hdegoede@redhat.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by:
Ricardo Ribalda <ribalda@chromium.org> Link: https://lore.kernel.org/r/20241203-uvc-fix-async-v6-1-26c867231118@chromium.org Signed-off-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by:
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
-
Laurent Pinchart authored
The USB video class driver is missing a few F: entries for files related to the driver that have been added to the kernel over the years. Add them. Signed-off-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by:
Hans de Goede <hdegoede@redhat.com> Signed-off-by:
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
-
Benoit Sevens authored
The ftype value does not change in the while loop so we can check it before entering the while loop. Refactoring the frame parsing code into a dedicated uvc_parse_frame function makes this more readable. Signed-off-by:
Benoit Sevens <bsevens@google.com> Link: https://lore.kernel.org/r/20241107142204.1182969-3-bsevens@google.com Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by:
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
-
Ricardo Ribalda authored
The *_vid_cap and *_vid_out helpers seem to be identical: - Remove all the cap/out duplicated code. - Remove s/g_parm helpers - Reorder uvc_ioctl_ops And now that we are at it, fix a comment for uvc_acquire_privileges() Reviewed-by:
Hans de Goede <hdegoede@redhat.com> Signed-off-by:
Ricardo Ribalda <ribalda@chromium.org> Link: https://lore.kernel.org/r/20241202-uvc-dup-cap-out-v3-1-d40b11bb74b7@chromium.org Signed-off-by:
Hans de Goede <hdegoede@redhat.com> Reviewed-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by:
Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by:
Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
-