- Dec 13, 2023
-
-
Right now we never release the power-domains properly on the error path. Add a routine to be reused for this purpose and appropriate jumps in probe() to run that routine where necessary. Fixes: 2f6f8af6 ("media: camss: Refactor VFE power domain toggling") Cc: stable@vger.kernel.org Signed-off-by:
Bryan O'Donoghue <bryan.odonoghue@linaro.org> Signed-off-by:
Hans Verkuil <hverkuil-cisco@xs4all.nl>
-
Previously the jump label err_cleanup was used higher in the probe() function to release the async notifier however the async notifier registration was moved later in the code rendering the previous four jumps redundant. Rename the label from err_cleanup to err_v4l2_device_unregister to capture what the jump does. Fixes: 51397a4ec75d ("media: qcom: Initialise V4L2 async notifier later") Signed-off-by:
Bryan O'Donoghue <bryan.odonoghue@linaro.org> Signed-off-by:
Hans Verkuil <hverkuil-cisco@xs4all.nl> [hverkuil: fix old name in commit log: err_v4l2_device_register -> err_v4l2_device_unregister]
-
Updated GPIOS and i2c bus that is used for the Sightline implementation of the LT9611uxc on the MIPI-DSI port. Signed-off-by:
Patrick Whewell <patrick.whewell@sightlineapplications.com>
-
William Gray authored
-
William Gray authored
-
William Gray authored
-
William Gray authored
-
William Gray authored
-
William Gray authored
-
William Gray authored
-
William Gray authored
-
William Gray authored
-
William Gray authored
-
William Gray authored
-
William Gray authored
-
William Gray authored
-
William Gray authored
-
William Gray authored
-
The firmware path for some of the resources is still the old format. This fixes the path to address the firmware correctly using the new .mbn format. Signed-off-by:
Patrick Whewell <patrick.whewell@sightlineapplications.com>
-
William Gray authored
-
William Gray authored
-
William Gray authored
-
William Gray authored
-
William Gray authored
-
William Gray authored
-
William Gray authored
This fixes the misconfigured sleep_clk issue.
-
William Gray authored
Signed-off-by:
William Breathitt Gray <william.gray@linaro.org>
-
William Gray authored
Signed-off-by:
William Breathitt Gray <william.gray@linaro.org>
-
William Gray authored
Signed-off-by:
William Breathitt Gray <william.gray@linaro.org>
-
William Gray authored
Signed-off-by:
William Breathitt Gray <william.gray@linaro.org>
-
William Gray authored
Signed-off-by:
William Breathitt Gray <william.gray@linaro.org>
-
William Gray authored
Signed-off-by:
William Breathitt Gray <william.gray@linaro.org>
-
Signed-off-by:
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
-
Increase the drive amplitude setting of the USB PHY as per documentation. A similar value is used for the 5nm part QMP_PHY_INIT_CFG(QSERDES_V5_5NM_TX_LANE_MODE_2, 0xc2) Replicate for 7nm Signed-off-by:
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
-
The flag provided by the USB role-switch logic allow_userspace_control allows user-space to trigger a role-switch. Several other USB controller drivers already enable this feature. Let's switch it on for the dwc3 core now also. Signed-off-by:
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
-
Signed-off-by:
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
-
From sdm845 onwards CAMSS ships with Qtimer registers embedded in various parts of the CAMSS IP blocks. The Qtimer registers are free-running timers which do not stop in suspend. The Qualcomm camx stack makes use of these timers by 1. Taking an initial snapshot of the get_monotonic_boottime64() 2. On every write-master complete taking a snapshot of the Qtimer value associated with CSI SOF. 3. Appending the difference between the current CSI SOF Qtimer and the previous frame CSI SOF Qtimer to the initial boottime. In this way the free-running Qtimer is appended to a fixed boottime value. The main advantage to this method of timestamping is we can use the hardware stuffed CSI SOF Qtimer value, which is latched on the falling clock of the CSI SOF bus state. The main disadvantage is the initial latency snapshotting boottime64() above introduces a permanent skew into the delivered values. A similar algorithm has been implemented here as given above, though simpler than in the Qualcomm original in that we don't convert to a timespec inside of the driver. The new flag V4L2_BUF_FLAG_TIMESTAMP_BOOTTIME informs user-space to do a clock_gettime(CLOCK_BOOTTIME, &ts); to resolve the given buffer timestamp to a timespec. Signed-off-by:
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
-
Qtimer is a free-running timer value that does not halt in system suspend. The Qtimer values are specific to a given Virtual Channel - VC - stream so, we need to offset based on the passed VC index. In upstream CAMSS we use a fixed mapping for the Raw Data Interface - RDI to VCs, hence VC0 => RDI0, VC1 => RDI1. We convert from the returned Qtimer value to nanoseconds so that the calling routine doesn't have to know or care what the clock-rate of the Qtimer is. In the case of CSID-Gen2, that Qtimer rate is 19.2MHz. For the RDI Qtimer values are available for CURRENT_SOF, CURRENT_EOF and PREV_SOF, PREV_EOF with SOF and EOF representing the MIPI CSI bus-states Start-Of-Frame and End-Of-Frame. The reference Qualcomm Camx code only interacts with CURRENT_SOF so this implementation follows suit. Signed-off-by:
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
-
Timestamp registers inside of the CSID block are available at different offsets from the CSID base depending on whether the CSID is lite or not. Signed-off-by:
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
-
Some versions of CAMSS hardware are capable of timestamping the SOF and EOF CSI bus protocol states in a CSID register. The timer used for this value can be aligned to a kernel CLOCK_BOOTTIME counter. Provide an indirection to the CSID driver to allow the CSID driver to return a ktime_get_ns() value. We will subsequently allow some CSID drivers to return an SOF aligned BOOTTIME value when it can be supported. Signed-off-by:
Bryan O'Donoghue <bryan.odonoghue@linaro.org>
-