- Jan 31, 2025
-
-
Taniya Das authored
The video plls are on MxC rail and needs to be configured before being used for functional use case, so update the pll configs as part of the pll structure. Signed-off-by:
Taniya Das <quic_tdas@quicinc.com>
-
Taniya Das authored
During boot-up, there is a possibility that the PLL configuration might be missed even after invoking pll_configure() from the clock controller probe. This is often due to the PLL being connected to rail or rails that are in an OFF state and current clock controller also cannot vote on multiple rails. As a result, the PLL may be enabled with suboptimal settings, leading to functional issues. The PLL configuration, now part of clk_alpha_pll, can be reused to reconfigure the PLL to a known good state before scaling for frequency. The 'clk_alpha_pll_reconfigure()' can be updated to support more PLLs in future. Signed-off-by:
Taniya Das <quic_tdas@quicinc.com>
-
Taniya Das authored
Integrate the PLL configuration into clk_alpha_pll to facilitate future reuse as needed. This is particularly useful when the PLL requires reconfiguration. Signed-off-by:
Taniya Das <quic_tdas@quicinc.com>
-
Dikshita Agarwal authored
Add an entry for iris video decoder accelerator driver. 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:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Dikshita Agarwal authored
Initialize the platform data and enable video driver probe of SM8250 SoC. Add a kernel param to select between venus and iris drivers for platforms supported by both drivers, for ex: SM8250. Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Vedang Nagar authored
Based on state machine design, add allow checks to transition from one sub-state to another sub-states. 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:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Vedang Nagar authored
Implement power scaling including vpu2 and vpu3 specific calculation for clock and bus bandwidth which depends on hardware configuration, codec format, resolution and frame rate. 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:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Vedang Nagar authored
Based on the hardware capabilities, add check to restrict whether the video session is supported or not by the hardware during start_streaming and queue_setup. 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:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Dikshita Agarwal authored
handle the V4L2_DEC_CMD_STOP by initiating drain sequence to firmware. Process and decode all OUTPUT buffers queued by the client before the VIDIOC_DECODER_CMD() was issued and mark the last buffer with V4L2_BUF_FLAG_LAST flag. Decoder is stopped after processing the last buffer. Resume the decoder when one of below are issued by 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 source change is detected. Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Dikshita Agarwal authored
The decoder is stopped after it completes the dynamic resolution change sequence. Handle VIDIOC_STREAMOFF() and VIDIOC_STREAMON() on the CAPTURE queue by client to resume the decoding process. Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Dikshita Agarwal authored
Handle the response sent by firmware, when source change is detected by firmware. Read the parameter subscribed to firmware for source change to detect the parameter with changed value. Raise the source change event to 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 client. 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:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Dikshita Agarwal authored
Implement vb2 ops for buf queue. Below are the different buffer attributes: BUF_ATTR_DEFERRED - buffer queued by client but not submitted to firmware. BUF_ATTR_PENDING_RELEASE - buffers requested to be released from firmware. BUF_ATTR_QUEUED - buffers submitted to firmware. BUF_ATTR_DEQUEUED - buffers received from firmware. BUF_ATTR_BUFFER_DONE - buffers sent back to vb2. 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:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Dikshita Agarwal authored
Implement functions for creating, queueing, releasing and destroying buffers for internal usage. Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Vedang Nagar authored
For hfi_gen2, subscribe for different bitstream parameters to firmware, to get notified for change in any of the subscribed parameters. 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:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Vedang Nagar authored
During stream on, set some mandatory properties to firmware to start a session. Set all v4l2 properties set by client, to firmware prepared with the dependency graph. 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:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Dikshita Agarwal authored
In stream on, send HFI_CMD_START on capture and output planes to start the processing on respective planes. During stream off, send HFI_CMD_STOP to firmware which is a synchronous command. After the response is received from firmware, the session is closed on firmware. Introduce different states for 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 |<-----------+ ----------. 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:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Vedang Nagar authored
Implement query_cap ioctl with necessary hooks. 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:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Dikshita Agarwal authored
Initialize ctrl handler by reading platform specific firmware capabilities. Capabilities are features supported by a specific platform (SOC). Each capability is defined with min, max, range, default value and corresponding HFI. Implement s_ctrl and g_volatile_ctrl ctrl ops. 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:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Vedang Nagar authored
Implement subscribe_event and unsubscribe_event iocts with necessary hooks. 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:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Vedang Nagar authored
Implement enum_fmt and enum_framesizes ioctls with necessary hooks. 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:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Vedang Nagar authored
Implement g_selection ioctl in the driver with necessary hooks. 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:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Vedang Nagar authored
Implement s_fmt, g_fmt and try_fmt ioctl ops with necessary hooks. 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:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Dikshita Agarwal authored
Implement reqbuf IOCTL op and vb2_queue_setup vb2 op in the driver with necessary hooks. 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:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Dikshita Agarwal authored
Implement runtime power management for iris including platform specific power on/off sequence. Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Dikshita Agarwal authored
Host firmware interface (HFI) is well defined set of interfaces for communication between host driver and firmware. The commands and responses are exchanged in form of packets. One or multiple packets are grouped under packet header. Each packet has packet type which describes the specific HFI and payload which holds the corresponding value for that HFI. Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Dikshita Agarwal authored
Set memory region to firmware and implement boot sequence. Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Dikshita Agarwal authored
Load/unload firmware in memory via mdt loader. Firmware is loaded as part of core initialization and unloaded as part of core de-initialization. Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Dikshita Agarwal authored
Introduce core state management for iris driver with necessary queues needed for host firmware communication. There are 3 types of queues: Command queue - driver to write any command to firmware. Message queue - firmware to send any response to driver. Debug queue - firmware to write debug messages. Initialize and configire shared queues during probe. Different states for 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 | ----------- ----------. Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell Reviewed-by:
Stefan Schmidt <stefan.schmidt@linaro.org> Signed-off-by:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Dikshita Agarwal authored
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. 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:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Dikshita Agarwal authored
In preparation of adding H264 decode functionality, add probe and remove functions and platform data to initialize iris resources, which are clocks, interconnects, power domains, reset clocks, and clock frequencies used for iris hardware. 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:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Dikshita Agarwal authored
Introduce support for Qualcomm new video acceleration hardware i.e. iris, used for video stream decoding and encoding on QCOM SM8550 SoC. Cc: devicetree@vger.kernel.org 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:
Dikshita Agarwal <quic_dikshita@quicinc.com> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD
-
Stephan Gerhold authored
-
Stephan Gerhold authored
-
Stephan Gerhold authored
Add the IRIS video codec to accelerate video decoding/encoding. Copied mostly from sm8550.dtsi, the only difference is a slightly lower frequency for the Turbo L1 level in the OPP table. TODO: Add separate qcom,x1e80100-iris compatible. Signed-off-by:
Stephan Gerhold <stephan.gerhold@linaro.org>
-
Stephan Gerhold authored
Add the missing video resets that are needed for the IRIS video codec. Copied from gcc-sm8550.c. Signed-off-by:
Stephan Gerhold <stephan.gerhold@linaro.org>
-
Stephan Gerhold authored
Add the missing video resets that are needed for the IRIS video codec. Signed-off-by:
Stephan Gerhold <stephan.gerhold@linaro.org>
-
Stephan Gerhold authored
Enable the Qualcomm SM8550 videocc to allow controlling the clocks needed for the IRIS video codec. Signed-off-by:
Stephan Gerhold <stephan.gerhold@linaro.org>
-
Stephan Gerhold authored
Add the video clock controller for X1E80100, similar to sm8550.dtsi. It provides the needed clocks/power domains for the IRIS video codec. Signed-off-by:
Stephan Gerhold <stephan.gerhold@linaro.org>
-
Stephan Gerhold authored
X1E80100 videocc is identical to the one in SM8550, aside from slightly different recommended PLL frequencies. Add the separate frequency tables for that and apply them if the qcom,x1e80100-videocc compatible is used. Signed-off-by:
Stephan Gerhold <stephan.gerhold@linaro.org>
-
Stephan Gerhold authored
X1E80100 videocc is largely identical to SM8550, aside from slightly different recommended PLL frequencies. Add a separate qcom,x1e80100-videocc compatible to the existing schema used for SM8550. Signed-off-by:
Stephan Gerhold <stephan.gerhold@linaro.org>
-