* [PATCH 00/10] (no cover subject)
@ 2024-09-04 11:10 Vikram Sharma
2024-09-04 11:10 ` [PATCH 01/10] media: dt-bindings: media: camss: Add qcom,sc7280-camss binding Vikram Sharma
` (12 more replies)
0 siblings, 13 replies; 33+ messages in thread
From: Vikram Sharma @ 2024-09-04 11:10 UTC (permalink / raw)
To: Robert Foss, Todor Tomov, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Vikram Sharma, Suresh Vankadara,
Trishansh Bhardwaj, stable, Hariram Purushothaman
SC7280 is a Qualcomm SoC. This series adds support to
bring up the CSIPHY, CSID, VFE/RDI interfaces in SC7280.
SC7280 provides
- 3 x VFE, 3 RDI per VFE
- 2 x VFE Lite, 4 RDI per VFE
- 3 x CSID
- 2 x CSID Lite
- 5 x CSI PHY
The changes are verified on SC7280 qcs6490-rb3gen2-vision board,
the base dts for qcs6490-rb3gen2 is:
https://lore.kernel.org/all/20231103184655.23555-1-quic_kbajaj@quicinc.com/
V1 for this series: https://lore.kernel.org/linux-arm-msm/20240629-camss_first_post_linux_next-v1-0-bc798edabc3a@quicinc.com/
Changes in V2:
1) Improved indentation/formatting.
2) Removed _src clocks and misleading code comments.
3) Added name fields for power domains and csid register offset in DTSI.
4) Dropped minItems field from YAML file.
5) Listed changes in alphabetical order.
6) Updated description and commit text to reflect changes
7) Changed the compatible string from imx412 to imx577.
8) Added board-specific enablement changes in the newly created vision
board DTSI file.
9) Fixed bug encountered during testing.
10) Moved logically independent changes to a new/seprate patch.
11) Removed cci0 as no sensor is on this port and MCLK2, which was a
copy-paste error from the RB5 board reference.
12) Added power rails, referencing the RB5 board.
13) Discarded Patch 5/6 completely (not required).
14) Removed unused enums.
To: Robert Foss <rfoss@kernel.org>
To: Todor Tomov <todor.too@gmail.com>
To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
To: Mauro Carvalho Chehab <mchehab@kernel.org>
To: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzk+dt@kernel.org>
To: Conor Dooley <conor+dt@kernel.org>
To: Kapatrala Syed <akapatra@quicinc.com>
To: Hariram Purushothaman <hariramp@quicinc.com>
To: Bjorn Andersson <andersson@kernel.org>
To: Konrad Dybcio <konradybcio@kernel.org>
To: Hans Verkuil <hverkuil-cisco@xs4all.nl>
To: cros-qcom-dts-watchers@chromium.org
To: Catalin Marinas <catalin.marinas@arm.com>
To: Will Deacon <will@kernel.org>
Cc: linux-arm-msm@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Test-by: Vikram Sharma <quic_vikramsa@quicinc.com>
Signed-off-by: Vikram Sharma <quic_vikramsa@quicinc.com>
---
Suresh Vankadara (1):
media: qcom: camss: Add support for camss driver on SC7280
Vikram Sharma (9):
media: dt-bindings: media: camss: Add qcom,sc7280-camss binding
media: dt-bindings: media: qcs6490-rb3gen2-vision-mezzanine: Add dt bindings
media: qcom: camss: Fix potential crash if domain attach fails
media: qcom: camss: Sort CAMSS version enums and compatible strings
media: qcom: camss: Add camss_link_entities_v2
arm64: dts: qcom: sc7280: Add support for camss
arm64: dts: qcom: qcs6490-rb3gen2-vision-mezzanine: Enable IMX577 sensor
arm64: dts: qcom: sc7280: Add default and suspend states for GPIO
arm64: defconfig: Enable camcc driver for SC7280
Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
.../bindings/media/qcom,sc7280-camss.yaml | 441 +++++++++++++++++++++
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../dts/qcom/qcs6490-rb3gen2-vision-mezzanine.dts | 61 +++
arch/arm64/boot/dts/qcom/sc7280.dtsi | 208 ++++++++++
arch/arm64/configs/defconfig | 1 +
drivers/media/platform/qcom/camss/camss-csid.c | 1 -
.../platform/qcom/camss/camss-csiphy-3ph-1-0.c | 13 +-
drivers/media/platform/qcom/camss/camss-csiphy.c | 5 +
drivers/media/platform/qcom/camss/camss-csiphy.h | 1 +
drivers/media/platform/qcom/camss/camss-vfe.c | 8 +-
drivers/media/platform/qcom/camss/camss.c | 400 ++++++++++++++++++-
drivers/media/platform/qcom/camss/camss.h | 1 +
13 files changed, 1131 insertions(+), 11 deletions(-)
---
base-commit: fdadd93817f124fd0ea6ef251d4a1068b7feceba
change-id: 20240904-camss_on_sc7280_rb3gen2_vision_v2_patches-15c195fb3f12
Best regards,
--
Vikram Sharma <quic_vikramsa@quicinc.com>
^ permalink raw reply [flat|nested] 33+ messages in thread
* [PATCH 01/10] media: dt-bindings: media: camss: Add qcom,sc7280-camss binding
2024-09-04 11:10 [PATCH 00/10] (no cover subject) Vikram Sharma
@ 2024-09-04 11:10 ` Vikram Sharma
2024-09-04 11:28 ` Krzysztof Kozlowski
2024-09-05 6:47 ` Krzysztof Kozlowski
2024-09-04 11:10 ` [PATCH 02/10] media: dt-bindings: media: qcs6490-rb3gen2-vision-mezzanine: Add dt bindings Vikram Sharma
` (11 subsequent siblings)
12 siblings, 2 replies; 33+ messages in thread
From: Vikram Sharma @ 2024-09-04 11:10 UTC (permalink / raw)
To: Robert Foss, Todor Tomov, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Vikram Sharma, Suresh Vankadara,
Trishansh Bhardwaj
Add bindings for qcom,sc7280-camss to support the camera subsystem
on the SC7280 platform.
Signed-off-by: Suresh Vankadara <quic_svankada@quicinc.com>
Signed-off-by: Trishansh Bhardwaj <quic_tbhardwa@quicinc.com>
Signed-off-by: Vikram Sharma <quic_vikramsa@quicinc.com>
---
.../bindings/media/qcom,sc7280-camss.yaml | 441 +++++++++++++++++++++
1 file changed, 441 insertions(+)
diff --git a/Documentation/devicetree/bindings/media/qcom,sc7280-camss.yaml b/Documentation/devicetree/bindings/media/qcom,sc7280-camss.yaml
new file mode 100644
index 000000000000..dee244e621c8
--- /dev/null
+++ b/Documentation/devicetree/bindings/media/qcom,sc7280-camss.yaml
@@ -0,0 +1,441 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+
+---
+$id: http://devicetree.org/schemas/media/qcom,sc7280-camss.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SC7280 CAMSS ISP
+
+maintainers:
+ - Azam Sadiq Pasha Kapatrala Syed <akapatra@quicinc.com>
+ - Hariram Purushothaman <hariramp@quicinc.com>
+
+description:
+ The CAMSS IP is a CSI decoder and ISP present on Qualcomm platforms.
+
+properties:
+ compatible:
+ const: qcom,sc7280-camss
+
+ clocks:
+ maxItems: 33
+
+ clock-names:
+ items:
+ - const: camnoc_axi
+ - const: cpas_ahb
+ - const: csi0
+ - const: csi1
+ - const: csi2
+ - const: csi3
+ - const: csi4
+ - const: csiphy0
+ - const: csiphy0_timer
+ - const: csiphy1
+ - const: csiphy1_timer
+ - const: csiphy2
+ - const: csiphy2_timer
+ - const: csiphy3
+ - const: csiphy3_timer
+ - const: csiphy4
+ - const: csiphy4_timer
+ - const: gcc_camera_ahb
+ - const: gcc_camera_axi
+ - const: soc_ahb
+ - const: vfe0_axi
+ - const: vfe0
+ - const: vfe0_cphy_rx
+ - const: vfe1_axi
+ - const: vfe1
+ - const: vfe1_cphy_rx
+ - const: vfe2_axi
+ - const: vfe2
+ - const: vfe2_cphy_rx
+ - const: vfe0_lite
+ - const: vfe0_lite_cphy_rx
+ - const: vfe1_lite
+ - const: vfe1_lite_cphy_rx
+
+ interconnects:
+ maxItems: 2
+
+ interconnect-names:
+ items:
+ - const: ahb
+ - const: hf_0
+
+ interrupts:
+ maxItems: 15
+
+ interrupt-names:
+ items:
+ - const: csid0
+ - const: csid1
+ - const: csid2
+ - const: csid_lite0
+ - const: csid_lite1
+ - const: csiphy0
+ - const: csiphy1
+ - const: csiphy2
+ - const: csiphy3
+ - const: csiphy4
+ - const: vfe0
+ - const: vfe1
+ - const: vfe2
+ - const: vfe_lite0
+ - const: vfe_lite1
+
+ iommus:
+ maxItems: 1
+
+ power-domains:
+ items:
+ - description: IFE0 GDSC - Image Front End, Global Distributed Switch Controller.
+ - description: IFE1 GDSC - Image Front End, Global Distributed Switch Controller.
+ - description: IFE2 GDSC - Image Front End, Global Distributed Switch Controller.
+ - description: Titan GDSC - Titan ISP Block, Global Distributed Switch Controller.
+
+ power-domains-names:
+ items:
+ - const: ife0
+ - const: ife1
+ - const: ife2
+ - const: top
+
+ ports:
+ $ref: /schemas/graph.yaml#/properties/ports
+
+ description:
+ CSI input ports.
+
+ properties:
+ port@0:
+ $ref: /schemas/graph.yaml#/$defs/port-base
+ unevaluatedProperties: false
+ description:
+ Input port for receiving CSI data.
+
+ properties:
+ endpoint:
+ $ref: video-interfaces.yaml#
+ unevaluatedProperties: false
+
+ properties:
+ data-lanes:
+ minItems: 1
+ maxItems: 4
+
+ required:
+ - data-lanes
+
+ port@1:
+ $ref: /schemas/graph.yaml#/$defs/port-base
+ unevaluatedProperties: false
+ description:
+ Input port for receiving CSI data.
+
+ properties:
+ endpoint:
+ $ref: video-interfaces.yaml#
+ unevaluatedProperties: false
+
+ properties:
+ data-lanes:
+ minItems: 1
+ maxItems: 4
+
+ required:
+ - data-lanes
+
+ port@2:
+ $ref: /schemas/graph.yaml#/$defs/port-base
+ unevaluatedProperties: false
+ description:
+ Input port for receiving CSI data.
+
+ properties:
+ endpoint:
+ $ref: video-interfaces.yaml#
+ unevaluatedProperties: false
+
+ properties:
+ data-lanes:
+ minItems: 1
+ maxItems: 4
+
+ required:
+ - data-lanes
+
+ port@3:
+ $ref: /schemas/graph.yaml#/$defs/port-base
+ unevaluatedProperties: false
+ description:
+ Input port for receiving CSI data.
+
+ properties:
+ endpoint:
+ $ref: video-interfaces.yaml#
+ unevaluatedProperties: false
+
+ properties:
+ data-lanes:
+ minItems: 1
+ maxItems: 4
+
+ required:
+ - data-lanes
+
+ port@4:
+ $ref: /schemas/graph.yaml#/$defs/port-base
+ unevaluatedProperties: false
+ description:
+ Input port for receiving CSI data.
+
+ properties:
+ endpoint:
+ $ref: video-interfaces.yaml#
+ unevaluatedProperties: false
+
+ properties:
+ data-lanes:
+ minItems: 1
+ maxItems: 4
+
+ required:
+ - data-lanes
+
+ port@5:
+ $ref: /schemas/graph.yaml#/$defs/port-base
+ unevaluatedProperties: false
+ description:
+ Input port for receiving CSI data.
+
+ properties:
+ endpoint:
+ $ref: video-interfaces.yaml#
+ unevaluatedProperties: false
+
+ properties:
+ data-lanes:
+ minItems: 1
+ maxItems: 4
+
+ required:
+ - data-lanes
+
+ reg:
+ maxItems: 15
+
+ reg-names:
+ items:
+ - const: csid0
+ - const: csid1
+ - const: csid2
+ - const: csid_lite0
+ - const: csid_lite1
+ - const: csiphy0
+ - const: csiphy1
+ - const: csiphy2
+ - const: csiphy3
+ - const: csiphy4
+ - const: vfe0
+ - const: vfe1
+ - const: vfe2
+ - const: vfe_lite0
+ - const: vfe_lite1
+
+ vdda-phy-supply:
+ description:
+ Phandle to a regulator supply to PHY core block.
+
+ vdda-pll-supply:
+ description:
+ Phandle to 1.8V regulator supply to PHY refclk pll block.
+
+required:
+ - clock-names
+ - clocks
+ - compatible
+ - interconnects
+ - interconnect-names
+ - interrupts
+ - interrupt-names
+ - iommus
+ - power-domains
+ - power-domains-names
+ - reg
+ - reg-names
+ - vdda-phy-supply
+ - vdda-pll-supply
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/qcom,camcc-sc7280.h>
+ #include <dt-bindings/clock/qcom,gcc-sc7280.h>
+ #include <dt-bindings/interconnect/qcom,sc7280.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/power/qcom-rpmpd.h>
+
+ soc {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ camss: camss@acaf000 {
+ compatible = "qcom,sc7280-camss";
+
+ clocks = <&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
+ <&clock_camcc CAM_CC_CPAS_AHB_CLK>,
+ <&clock_camcc CAM_CC_IFE_0_CSID_CLK>,
+ <&clock_camcc CAM_CC_IFE_1_CSID_CLK>,
+ <&clock_camcc CAM_CC_IFE_2_CSID_CLK>,
+ <&clock_camcc CAM_CC_IFE_LITE_0_CSID_CLK>,
+ <&clock_camcc CAM_CC_IFE_LITE_1_CSID_CLK>,
+ <&clock_camcc CAM_CC_CSIPHY0_CLK>,
+ <&clock_camcc CAM_CC_CSI0PHYTIMER_CLK>,
+ <&clock_camcc CAM_CC_CSIPHY1_CLK>,
+ <&clock_camcc CAM_CC_CSI1PHYTIMER_CLK>,
+ <&clock_camcc CAM_CC_CSIPHY2_CLK>,
+ <&clock_camcc CAM_CC_CSI2PHYTIMER_CLK>,
+ <&clock_camcc CAM_CC_CSIPHY3_CLK>,
+ <&clock_camcc CAM_CC_CSI3PHYTIMER_CLK>,
+ <&clock_camcc CAM_CC_CSIPHY4_CLK>,
+ <&clock_camcc CAM_CC_CSI4PHYTIMER_CLK>,
+ <&gcc GCC_CAMERA_AHB_CLK>,
+ <&gcc GCC_CAMERA_HF_AXI_CLK>,
+ <&clock_camcc CAM_CC_CPAS_AHB_CLK>,
+ <&clock_camcc CAM_CC_IFE_0_AXI_CLK>,
+ <&clock_camcc CAM_CC_IFE_0_CLK>,
+ <&clock_camcc CAM_CC_IFE_0_CPHY_RX_CLK>,
+ <&clock_camcc CAM_CC_IFE_1_AXI_CLK>,
+ <&clock_camcc CAM_CC_IFE_1_CLK>,
+ <&clock_camcc CAM_CC_IFE_1_CPHY_RX_CLK>,
+ <&clock_camcc CAM_CC_IFE_2_AXI_CLK>,
+ <&clock_camcc CAM_CC_IFE_2_CLK>,
+ <&clock_camcc CAM_CC_IFE_2_CPHY_RX_CLK>,
+ <&clock_camcc CAM_CC_IFE_LITE_0_CLK>,
+ <&clock_camcc CAM_CC_IFE_LITE_0_CPHY_RX_CLK>,
+ <&clock_camcc CAM_CC_IFE_LITE_1_CLK>,
+ <&clock_camcc CAM_CC_IFE_LITE_1_CPHY_RX_CLK>;
+
+ clock-names = "camnoc_axi",
+ "cpas_ahb",
+ "csi0",
+ "csi1",
+ "csi2",
+ "csi3",
+ "csi4",
+ "csiphy0",
+ "csiphy0_timer",
+ "csiphy1",
+ "csiphy1_timer",
+ "csiphy2",
+ "csiphy2_timer",
+ "csiphy3",
+ "csiphy3_timer",
+ "csiphy4",
+ "csiphy4_timer",
+ "gcc_camera_ahb",
+ "gcc_camera_axi",
+ "soc_ahb",
+ "vfe0_axi",
+ "vfe0",
+ "vfe0_cphy_rx",
+ "vfe1_axi",
+ "vfe1",
+ "vfe1_cphy_rx",
+ "vfe2_axi",
+ "vfe2",
+ "vfe2_cphy_rx",
+ "vfe0_lite",
+ "vfe0_lite_cphy_rx",
+ "vfe1_lite",
+ "vfe1_lite_cphy_rx";
+
+ interconnects = <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_CAMERA_CFG 0>,
+ <&mmss_noc MASTER_CAMNOC_HF 0 &mc_virt SLAVE_EBI1 0>;
+ interconnect-names = "ahb", "hf_0";
+
+ interrupts = <GIC_SPI 464 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 466 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 640 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 468 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 359 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 477 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 478 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 479 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 448 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 122 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 465 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 467 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 641 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 469 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 360 IRQ_TYPE_EDGE_RISING>;
+
+ interrupt-names = "csid0",
+ "csid1",
+ "csid2",
+ "csid_lite0",
+ "csid_lite1",
+ "csiphy0",
+ "csiphy1",
+ "csiphy2",
+ "csiphy3",
+ "csiphy4",
+ "vfe0",
+ "vfe1",
+ "vfe2",
+ "vfe_lite0",
+ "vfe_lite1";
+
+ iommus = <&apps_smmu 0x800 0x4e0>;
+
+ power-domains = <&camcc CAM_CC_IFE_0_GDSC>,
+ <&camcc CAM_CC_IFE_1_GDSC>,
+ <&camcc CAM_CC_IFE_2_GDSC>,
+ <&camcc CAM_CC_TITAN_TOP_GDSC>;
+ power-domains-names = "ife0", "ife1", "ife2", "top";
+
+ reg = <0x0 0x0acb3000 0x0 0x1000>,
+ <0x0 0x0acba000 0x0 0x1000>,
+ <0x0 0x0acc1000 0x0 0x1000>,
+ <0x0 0x0acc8000 0x0 0x1000>,
+ <0x0 0x0accf000 0x0 0x1000>,
+ <0x0 0x0ace0000 0x0 0x2000>,
+ <0x0 0x0ace2000 0x0 0x2000>,
+ <0x0 0x0ace4000 0x0 0x2000>,
+ <0x0 0x0ace6000 0x0 0x2000>,
+ <0x0 0x0ace8000 0x0 0x2000>,
+ <0x0 0x0acaf000 0x0 0x4000>,
+ <0x0 0x0acb6000 0x0 0x4000>,
+ <0x0 0x0acbd000 0x0 0x4000>,
+ <0x0 0x0acc4000 0x0 0x4000>,
+ <0x0 0x0accb000 0x0 0x4000>;
+
+ reg-names = "csid0",
+ "csid1",
+ "csid2",
+ "csid_lite0",
+ "csid_lite1",
+ "csiphy0",
+ "csiphy1",
+ "csiphy2",
+ "csiphy3",
+ "csiphy4",
+ "vfe0",
+ "vfe1",
+ "vfe2",
+ "vfe_lite0",
+ "vfe_lite1";
+
+ vdda-phy-supply = <&vreg_l10c_0p88>;
+ vdda-pll-supply = <&vreg_l6b_1p2>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ };
+ };
+ };
--
2.25.1
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 02/10] media: dt-bindings: media: qcs6490-rb3gen2-vision-mezzanine: Add dt bindings
2024-09-04 11:10 [PATCH 00/10] (no cover subject) Vikram Sharma
2024-09-04 11:10 ` [PATCH 01/10] media: dt-bindings: media: camss: Add qcom,sc7280-camss binding Vikram Sharma
@ 2024-09-04 11:10 ` Vikram Sharma
2024-09-04 11:29 ` Krzysztof Kozlowski
2024-09-04 11:10 ` [PATCH 03/10] media: qcom: camss: Fix potential crash if domain attach fails Vikram Sharma
` (10 subsequent siblings)
12 siblings, 1 reply; 33+ messages in thread
From: Vikram Sharma @ 2024-09-04 11:10 UTC (permalink / raw)
To: Robert Foss, Todor Tomov, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Vikram Sharma
Add bindings for qcs6490-rb3gen2-vision-mezzanine.
Signed-off-by: Vikram Sharma <quic_vikramsa@quicinc.com>
---
Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index 5cb54d69af0b..b2261dcdfc2c 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -390,6 +390,7 @@ properties:
- fairphone,fp5
- qcom,qcm6490-idp
- qcom,qcs6490-rb3gen2
+ - qcom,qcs6490-rb3gen2-vision-mezzanine
- shift,otter
- const: qcom,qcm6490
--
2.25.1
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 03/10] media: qcom: camss: Fix potential crash if domain attach fails
2024-09-04 11:10 [PATCH 00/10] (no cover subject) Vikram Sharma
2024-09-04 11:10 ` [PATCH 01/10] media: dt-bindings: media: camss: Add qcom,sc7280-camss binding Vikram Sharma
2024-09-04 11:10 ` [PATCH 02/10] media: dt-bindings: media: qcs6490-rb3gen2-vision-mezzanine: Add dt bindings Vikram Sharma
@ 2024-09-04 11:10 ` Vikram Sharma
2024-09-05 12:13 ` Konrad Dybcio
2024-09-04 11:10 ` [PATCH 04/10] media: qcom: camss: Sort CAMSS version enums and compatible strings Vikram Sharma
` (9 subsequent siblings)
12 siblings, 1 reply; 33+ messages in thread
From: Vikram Sharma @ 2024-09-04 11:10 UTC (permalink / raw)
To: Robert Foss, Todor Tomov, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Vikram Sharma, stable
Fix a potential crash in camss by ensuring detach is skipped if attach
is unsuccessful.
Fixes: d89751c61279 ("media: qcom: camss: Add support for named power-domains")
CC: stable@vger.kernel.org
Signed-off-by: Vikram Sharma <quic_vikramsa@quicinc.com>
---
drivers/media/platform/qcom/camss/camss.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c
index d64985ca6e88..447b89d07e8a 100644
--- a/drivers/media/platform/qcom/camss/camss.c
+++ b/drivers/media/platform/qcom/camss/camss.c
@@ -2132,7 +2132,7 @@ static int camss_configure_pd(struct camss *camss)
camss->res->pd_name);
if (IS_ERR(camss->genpd)) {
ret = PTR_ERR(camss->genpd);
- goto fail_pm;
+ goto fail_pm_attach;
}
}
@@ -2149,7 +2149,7 @@ static int camss_configure_pd(struct camss *camss)
ret = -ENODEV;
else
ret = PTR_ERR(camss->genpd);
- goto fail_pm;
+ goto fail_pm_attach;
}
camss->genpd_link = device_link_add(camss->dev, camss->genpd,
DL_FLAG_STATELESS | DL_FLAG_PM_RUNTIME |
@@ -2164,6 +2164,7 @@ static int camss_configure_pd(struct camss *camss)
fail_pm:
dev_pm_domain_detach(camss->genpd, true);
+fail_pm_attach:
return ret;
}
--
2.25.1
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 04/10] media: qcom: camss: Sort CAMSS version enums and compatible strings
2024-09-04 11:10 [PATCH 00/10] (no cover subject) Vikram Sharma
` (2 preceding siblings ...)
2024-09-04 11:10 ` [PATCH 03/10] media: qcom: camss: Fix potential crash if domain attach fails Vikram Sharma
@ 2024-09-04 11:10 ` Vikram Sharma
2024-09-04 14:44 ` Bryan O'Donoghue
2024-09-04 11:10 ` [PATCH 05/10] media: qcom: camss: Add support for camss driver on SC7280 Vikram Sharma
` (8 subsequent siblings)
12 siblings, 1 reply; 33+ messages in thread
From: Vikram Sharma @ 2024-09-04 11:10 UTC (permalink / raw)
To: Robert Foss, Todor Tomov, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Vikram Sharma, Suresh Vankadara,
Trishansh Bhardwaj
Sort CAMSS version enums and compatible strings alphanumerically.
Signed-off-by: Suresh Vankadara <quic_svankada@quicinc.com>
Signed-off-by: Trishansh Bhardwaj <quic_tbhardwa@quicinc.com>
Signed-off-by: Vikram Sharma <quic_vikramsa@quicinc.com>
---
drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c | 10 +++++-----
drivers/media/platform/qcom/camss/camss-vfe.c | 6 +++---
drivers/media/platform/qcom/camss/camss.c | 2 +-
3 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c b/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c
index df7e93a5a4f6..7d2490c9de01 100644
--- a/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c
+++ b/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c
@@ -505,10 +505,6 @@ static void csiphy_gen2_config_lanes(struct csiphy_device *csiphy,
u32 val;
switch (csiphy->camss->res->version) {
- case CAMSS_845:
- r = &lane_regs_sdm845[0][0];
- array_size = ARRAY_SIZE(lane_regs_sdm845[0]);
- break;
case CAMSS_8250:
r = &lane_regs_sm8250[0][0];
array_size = ARRAY_SIZE(lane_regs_sm8250[0]);
@@ -517,6 +513,10 @@ static void csiphy_gen2_config_lanes(struct csiphy_device *csiphy,
r = &lane_regs_sc8280xp[0][0];
array_size = ARRAY_SIZE(lane_regs_sc8280xp[0]);
break;
+ case CAMSS_845:
+ r = &lane_regs_sdm845[0][0];
+ array_size = ARRAY_SIZE(lane_regs_sdm845[0]);
+ break;
default:
WARN(1, "unknown cspi version\n");
return;
@@ -557,9 +557,9 @@ static bool csiphy_is_gen2(u32 version)
bool ret = false;
switch (version) {
- case CAMSS_845:
case CAMSS_8250:
case CAMSS_8280XP:
+ case CAMSS_845:
ret = true;
break;
}
diff --git a/drivers/media/platform/qcom/camss/camss-vfe.c b/drivers/media/platform/qcom/camss/camss-vfe.c
index 83c5a36d071f..ffcb1e2ec417 100644
--- a/drivers/media/platform/qcom/camss/camss-vfe.c
+++ b/drivers/media/platform/qcom/camss/camss-vfe.c
@@ -333,11 +333,11 @@ static u32 vfe_src_pad_code(struct vfe_line *line, u32 sink_code,
return sink_code;
}
break;
- case CAMSS_8x96:
case CAMSS_660:
- case CAMSS_845:
+ case CAMSS_8x96:
case CAMSS_8250:
case CAMSS_8280XP:
+ case CAMSS_845:
switch (sink_code) {
case MEDIA_BUS_FMT_YUYV8_1X16:
{
@@ -1692,9 +1692,9 @@ static int vfe_bpl_align(struct vfe_device *vfe)
int ret = 8;
switch (vfe->camss->res->version) {
- case CAMSS_845:
case CAMSS_8250:
case CAMSS_8280XP:
+ case CAMSS_845:
ret = 16;
break;
default:
diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c
index 447b89d07e8a..30b36d36f0b2 100644
--- a/drivers/media/platform/qcom/camss/camss.c
+++ b/drivers/media/platform/qcom/camss/camss.c
@@ -2448,10 +2448,10 @@ static const struct camss_resources sc8280xp_resources = {
static const struct of_device_id camss_dt_match[] = {
{ .compatible = "qcom,msm8916-camss", .data = &msm8916_resources },
{ .compatible = "qcom,msm8996-camss", .data = &msm8996_resources },
+ { .compatible = "qcom,sc8280xp-camss", .data = &sc8280xp_resources },
{ .compatible = "qcom,sdm660-camss", .data = &sdm660_resources },
{ .compatible = "qcom,sdm845-camss", .data = &sdm845_resources },
{ .compatible = "qcom,sm8250-camss", .data = &sm8250_resources },
- { .compatible = "qcom,sc8280xp-camss", .data = &sc8280xp_resources },
{ }
};
--
2.25.1
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 05/10] media: qcom: camss: Add support for camss driver on SC7280
2024-09-04 11:10 [PATCH 00/10] (no cover subject) Vikram Sharma
` (3 preceding siblings ...)
2024-09-04 11:10 ` [PATCH 04/10] media: qcom: camss: Sort CAMSS version enums and compatible strings Vikram Sharma
@ 2024-09-04 11:10 ` Vikram Sharma
2024-09-04 11:10 ` [PATCH 06/10] media: qcom: camss: Add camss_link_entities_v2 Vikram Sharma
` (7 subsequent siblings)
12 siblings, 0 replies; 33+ messages in thread
From: Vikram Sharma @ 2024-09-04 11:10 UTC (permalink / raw)
To: Robert Foss, Todor Tomov, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Vikram Sharma, Suresh Vankadara,
Trishansh Bhardwaj
From: Suresh Vankadara <quic_svankada@quicinc.com>
Add support for the camss driver on the SC7280 SoC.
Signed-off-by: Suresh Vankadara <quic_svankada@quicinc.com>
Signed-off-by: Trishansh Bhardwaj <quic_tbhardwa@quicinc.com>
Signed-off-by: Vikram Sharma <quic_vikramsa@quicinc.com>
---
drivers/media/platform/qcom/camss/camss-csid.c | 1 -
.../platform/qcom/camss/camss-csiphy-3ph-1-0.c | 5 +
drivers/media/platform/qcom/camss/camss-csiphy.c | 5 +
drivers/media/platform/qcom/camss/camss-csiphy.h | 1 +
drivers/media/platform/qcom/camss/camss-vfe.c | 2 +
drivers/media/platform/qcom/camss/camss.c | 342 +++++++++++++++++++++
drivers/media/platform/qcom/camss/camss.h | 1 +
7 files changed, 356 insertions(+), 1 deletion(-)
diff --git a/drivers/media/platform/qcom/camss/camss-csid.c b/drivers/media/platform/qcom/camss/camss-csid.c
index 858db5d4ca75..8d3dc26e2af4 100644
--- a/drivers/media/platform/qcom/camss/camss-csid.c
+++ b/drivers/media/platform/qcom/camss/camss-csid.c
@@ -1028,7 +1028,6 @@ int msm_csid_subdev_init(struct camss *camss, struct csid_device *csid,
csid->res->hw_ops->subdev_init(csid);
/* Memory */
-
if (camss->res->version == CAMSS_8250) {
/* for titan 480, CSID registers are inside the VFE region,
* between the VFE "top" and "bus" registers. this requires
diff --git a/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c b/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c
index 7d2490c9de01..f341f7b7fd8a 100644
--- a/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c
+++ b/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c
@@ -505,6 +505,10 @@ static void csiphy_gen2_config_lanes(struct csiphy_device *csiphy,
u32 val;
switch (csiphy->camss->res->version) {
+ case CAMSS_7280:
+ r = &lane_regs_sm8250[0][0];
+ array_size = ARRAY_SIZE(lane_regs_sm8250[0]);
+ break;
case CAMSS_8250:
r = &lane_regs_sm8250[0][0];
array_size = ARRAY_SIZE(lane_regs_sm8250[0]);
@@ -557,6 +561,7 @@ static bool csiphy_is_gen2(u32 version)
bool ret = false;
switch (version) {
+ case CAMSS_7280:
case CAMSS_8250:
case CAMSS_8280XP:
case CAMSS_845:
diff --git a/drivers/media/platform/qcom/camss/camss-csiphy.c b/drivers/media/platform/qcom/camss/camss-csiphy.c
index 2f7361dfd461..b3525ad81ffd 100644
--- a/drivers/media/platform/qcom/camss/camss-csiphy.c
+++ b/drivers/media/platform/qcom/camss/camss-csiphy.c
@@ -108,6 +108,11 @@ const struct csiphy_formats csiphy_formats_sdm845 = {
.formats = formats_sdm845
};
+const struct csiphy_formats csiphy_formats_sc7280 = {
+ .nformats = ARRAY_SIZE(formats_sdm845),
+ .formats = formats_sdm845
+};
+
/*
* csiphy_get_bpp - map media bus format to bits per pixel
* @formats: supported media bus formats array
diff --git a/drivers/media/platform/qcom/camss/camss-csiphy.h b/drivers/media/platform/qcom/camss/camss-csiphy.h
index 47f0b6b09eba..9295f2fc6745 100644
--- a/drivers/media/platform/qcom/camss/camss-csiphy.h
+++ b/drivers/media/platform/qcom/camss/camss-csiphy.h
@@ -110,6 +110,7 @@ void msm_csiphy_unregister_entity(struct csiphy_device *csiphy);
extern const struct csiphy_formats csiphy_formats_8x16;
extern const struct csiphy_formats csiphy_formats_8x96;
extern const struct csiphy_formats csiphy_formats_sdm845;
+extern const struct csiphy_formats csiphy_formats_sc7280;
extern const struct csiphy_hw_ops csiphy_ops_2ph_1_0;
extern const struct csiphy_hw_ops csiphy_ops_3ph_1_0;
diff --git a/drivers/media/platform/qcom/camss/camss-vfe.c b/drivers/media/platform/qcom/camss/camss-vfe.c
index ffcb1e2ec417..61f6815a3756 100644
--- a/drivers/media/platform/qcom/camss/camss-vfe.c
+++ b/drivers/media/platform/qcom/camss/camss-vfe.c
@@ -334,6 +334,7 @@ static u32 vfe_src_pad_code(struct vfe_line *line, u32 sink_code,
}
break;
case CAMSS_660:
+ case CAMSS_7280:
case CAMSS_8x96:
case CAMSS_8250:
case CAMSS_8280XP:
@@ -1692,6 +1693,7 @@ static int vfe_bpl_align(struct vfe_device *vfe)
int ret = 8;
switch (vfe->camss->res->version) {
+ case CAMSS_7280:
case CAMSS_8250:
case CAMSS_8280XP:
case CAMSS_845:
diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c
index 30b36d36f0b2..5e7235001239 100644
--- a/drivers/media/platform/qcom/camss/camss.c
+++ b/drivers/media/platform/qcom/camss/camss.c
@@ -1480,6 +1480,333 @@ static const struct resources_icc icc_res_sc8280xp[] = {
},
};
+static const struct camss_subdev_resources csiphy_res_7280[] = {
+ /* CSIPHY0 */
+ {
+ .regulators = {},
+ .clock = { "csiphy0", "csiphy0_timer"},
+ .clock_rate = {
+ { 300000000 },
+ { 300000000 }
+ },
+ .reg = { "csiphy0" },
+ .interrupt = { "csiphy0" },
+ .csiphy = {
+ .hw_ops = &csiphy_ops_3ph_1_0,
+ .formats = &csiphy_formats_sc7280
+ }
+ },
+ /* CSIPHY1 */
+ {
+ .regulators = {},
+ .clock = { "csiphy1", "csiphy1_timer"},
+ .clock_rate = {
+ { 300000000 },
+ { 300000000 }
+ },
+ .reg = { "csiphy1" },
+ .interrupt = { "csiphy1" },
+ .csiphy = {
+ .hw_ops = &csiphy_ops_3ph_1_0,
+ .formats = &csiphy_formats_sc7280
+ }
+ },
+ /* CSIPHY2 */
+ {
+ .regulators = {},
+ .clock = { "csiphy2", "csiphy2_timer"},
+ .clock_rate = {
+ { 300000000 },
+ { 300000000 }
+ },
+ .reg = { "csiphy2" },
+ .interrupt = { "csiphy2" },
+ .csiphy = {
+ .hw_ops = &csiphy_ops_3ph_1_0,
+ .formats = &csiphy_formats_sc7280
+ }
+ },
+ /* CSIPHY3 */
+ {
+ .regulators = {},
+ .clock = { "csiphy3", "csiphy3_timer"},
+ .clock_rate = {
+ { 300000000 },
+ { 300000000 }
+ },
+ .reg = { "csiphy3" },
+ .interrupt = { "csiphy3" },
+ .csiphy = {
+ .hw_ops = &csiphy_ops_3ph_1_0,
+ .formats = &csiphy_formats_sc7280
+ }
+ },
+ /* CSIPHY4 */
+ {
+ .regulators = {},
+ .clock = { "csiphy4", "csiphy4_timer"},
+ .clock_rate = {
+ { 300000000 },
+ { 300000000 }
+ },
+ .reg = { "csiphy4" },
+ .interrupt = { "csiphy4" },
+ .csiphy = {
+ .hw_ops = &csiphy_ops_3ph_1_0,
+ .formats = &csiphy_formats_sc7280
+ }
+ },
+};
+
+static const struct camss_subdev_resources csid_res_7280[] = {
+ /* CSID0 */
+ {
+ .regulators = { "vdda-phy", "vdda-pll" },
+
+ .clock = { "csi0", "vfe0_cphy_rx", "vfe0", "soc_ahb"},
+ .clock_rate = {
+ { 300000000, 0, 380000000, 0},
+ { 400000000, 0, 510000000, 0},
+ { 400000000, 0, 637000000, 0},
+ { 400000000, 0, 760000000, 0}
+ },
+
+ .reg = { "csid0" },
+ .interrupt = { "csid0" },
+ .csid = {
+ .is_lite = false,
+ .hw_ops = &csid_ops_gen2,
+ .parent_dev_ops = &vfe_parent_dev_ops,
+ .formats = &csid_formats_gen2
+ }
+ },
+ /* CSID1 */
+ {
+ .regulators = { "vdda-phy", "vdda-pll" },
+
+ .clock = { "csi1", "vfe1_cphy_rx", "vfe1", "soc_ahb"},
+ .clock_rate = {
+ { 300000000, 0, 380000000, 0},
+ { 400000000, 0, 510000000, 0},
+ { 400000000, 0, 637000000, 0},
+ { 400000000, 0, 760000000, 0}
+ },
+
+ .reg = { "csid1" },
+ .interrupt = { "csid1" },
+ .csid = {
+ .is_lite = false,
+ .hw_ops = &csid_ops_gen2,
+ .parent_dev_ops = &vfe_parent_dev_ops,
+ .formats = &csid_formats_gen2
+ }
+ },
+ /* CSID2 */
+ {
+ .regulators = { "vdda-phy", "vdda-pll" },
+
+ .clock = { "csi2", "vfe2_cphy_rx", "vfe2", "soc_ahb"},
+ .clock_rate = {
+ { 300000000, 0, 380000000, 0},
+ { 400000000, 0, 510000000, 0},
+ { 400000000, 0, 637000000, 0},
+ { 400000000, 0, 760000000, 0}
+ },
+
+ .reg = { "csid2" },
+ .interrupt = { "csid2" },
+ .csid = {
+ .is_lite = false,
+ .hw_ops = &csid_ops_gen2,
+ .parent_dev_ops = &vfe_parent_dev_ops,
+ .formats = &csid_formats_gen2
+ }
+ },
+ /* CSID3 */
+ {
+ .regulators = { "vdda-phy", "vdda-pll" },
+
+ .clock = { "csi3", "vfe0_lite_cphy_rx", "vfe0_lite", "soc_ahb"},
+ .clock_rate = {
+ { 300000000, 0, 320000000, 0},
+ { 400000000, 0, 400000000, 0},
+ { 400000000, 0, 480000000, 0},
+ { 400000000, 0, 600000000, 0}
+ },
+
+ .reg = { "csid_lite0" },
+ .interrupt = { "csid_lite0" },
+ .csid = {
+ .is_lite = true,
+ .hw_ops = &csid_ops_gen2,
+ .parent_dev_ops = &vfe_parent_dev_ops,
+ .formats = &csid_formats_gen2
+ }
+ },
+ /* CSID4 */
+ {
+ .regulators = { "vdda-phy", "vdda-pll" },
+
+ .clock = { "csi3", "vfe0_lite_cphy_rx", "vfe0_lite", "soc_ahb"},
+ .clock_rate = {
+ { 300000000, 0, 320000000, 0},
+ { 400000000, 0, 400000000, 0},
+ { 400000000, 0, 480000000, 0},
+ { 400000000, 0, 600000000, 0}
+ },
+
+ .reg = { "csid_lite1" },
+ .interrupt = { "csid_lite1" },
+ .csid = {
+ .is_lite = true,
+ .hw_ops = &csid_ops_gen2,
+ .parent_dev_ops = &vfe_parent_dev_ops,
+ .formats = &csid_formats_gen2
+ }
+ },
+};
+
+static const struct camss_subdev_resources vfe_res_7280[] = {
+ /* VFE0 */
+ {
+ .regulators = {},
+
+ .clock = { "vfe0", "vfe0_axi", "soc_ahb",
+ "cpas_ahb", "camnoc_axi",
+ "gcc_camera_axi"},
+ .clock_rate = {
+ { 380000000, 0, 80000000, 0, 150000000, 0},
+ { 510000000, 0, 80000000, 0, 240000000, 0},
+ { 637000000, 0, 80000000, 0, 320000000, 0},
+ { 760000000, 0, 80000000, 0, 400000000, 0},
+ { 760000000, 0, 80000000, 0, 480000000, 0},
+ },
+
+ .reg = { "vfe0" },
+ .interrupt = { "vfe0" },
+ .vfe = {
+ .line_num = 3,
+ .is_lite = false,
+ .has_pd = true,
+ .pd_name = "ife0",
+ .hw_ops = &vfe_ops_170,
+ .formats_rdi = &vfe_formats_rdi_845,
+ .formats_pix = &vfe_formats_pix_845
+ }
+ },
+ /* VFE1 */
+ {
+ .regulators = {},
+
+ .clock = { "vfe1", "vfe1_axi", "soc_ahb",
+ "cpas_ahb", "camnoc_axi",
+ "gcc_camera_axi"},
+ .clock_rate = {
+ { 380000000, 0, 80000000, 0, 150000000, 0},
+ { 510000000, 0, 80000000, 0, 240000000, 0},
+ { 637000000, 0, 80000000, 0, 320000000, 0},
+ { 760000000, 0, 80000000, 0, 400000000, 0},
+ { 760000000, 0, 80000000, 0, 480000000, 0},
+ },
+
+ .reg = { "vfe1" },
+ .interrupt = { "vfe1" },
+ .vfe = {
+ .line_num = 3,
+ .is_lite = false,
+ .has_pd = true,
+ .pd_name = "ife1",
+ .hw_ops = &vfe_ops_170,
+ .formats_rdi = &vfe_formats_rdi_845,
+ .formats_pix = &vfe_formats_pix_845
+ }
+ },
+ /* VFE2 */
+ {
+ .regulators = {},
+
+ .clock = { "vfe2", "vfe2_axi", "soc_ahb",
+ "cpas_ahb", "camnoc_axi",
+ "gcc_camera_axi"},
+ .clock_rate = {
+ { 380000000, 0, 80000000, 0, 150000000, 0},
+ { 510000000, 0, 80000000, 0, 240000000, 0},
+ { 637000000, 0, 80000000, 0, 320000000, 0},
+ { 760000000, 0, 80000000, 0, 400000000, 0},
+ { 760000000, 0, 80000000, 0, 480000000, 0},
+ },
+
+ .reg = { "vfe2" },
+ .interrupt = { "vfe2" },
+ .vfe = {
+ .line_num = 3,
+ .is_lite = false,
+ .hw_ops = &vfe_ops_170,
+ .has_pd = true,
+ .pd_name = "ife2",
+ .formats_rdi = &vfe_formats_rdi_845,
+ .formats_pix = &vfe_formats_pix_845
+ }
+ },
+ /* VFE3 (lite) */
+ {
+ .clock = { "vfe0_lite", "soc_ahb", "cpas_ahb",
+ "camnoc_axi", "gcc_camera_axi"},
+ .clock_rate = {
+ { 320000000, 80000000, 0, 150000000, 0},
+ { 400000000, 80000000, 0, 240000000, 0},
+ { 480000000, 80000000, 0, 320000000, 0},
+ { 600000000, 80000000, 0, 400000000, 0},
+ },
+
+ .regulators = {},
+ .reg = { "vfe_lite0" },
+ .interrupt = { "vfe_lite0" },
+ .vfe = {
+ .line_num = 4,
+ .is_lite = true,
+ .hw_ops = &vfe_ops_170,
+ .formats_rdi = &vfe_formats_rdi_845,
+ .formats_pix = &vfe_formats_pix_845
+ }
+ },
+ /* VFE4 (lite) */
+ {
+ .clock = { "vfe1_lite", "soc_ahb", "cpas_ahb",
+ "camnoc_axi", "gcc_camera_axi"},
+ .clock_rate = {
+ { 320000000, 80000000, 0, 150000000, 0},
+ { 400000000, 80000000, 0, 240000000, 0},
+ { 480000000, 80000000, 0, 320000000, 0},
+ { 600000000, 80000000, 0, 400000000, 0},
+ },
+
+ .regulators = {},
+ .reg = { "vfe_lite1" },
+ .interrupt = { "vfe_lite1" },
+ .vfe = {
+ .line_num = 4,
+ .is_lite = true,
+ .hw_ops = &vfe_ops_170,
+ .formats_rdi = &vfe_formats_rdi_845,
+ .formats_pix = &vfe_formats_pix_845
+ }
+ },
+};
+
+static const struct resources_icc icc_res_sc7280[] = {
+ {
+ .name = "ahb",
+ .icc_bw_tbl.avg = 38400,
+ .icc_bw_tbl.peak = 76800,
+ },
+ {
+ .name = "hf_0",
+ .icc_bw_tbl.avg = 2097152,
+ .icc_bw_tbl.peak = 2097152,
+ },
+};
+
/*
* camss_add_clock_margin - Add margin to clock frequency rate
* @rate: Clock frequency rate
@@ -2445,9 +2772,24 @@ static const struct camss_resources sc8280xp_resources = {
.link_entities = camss_link_entities
};
+static const struct camss_resources sc7280_resources = {
+ .version = CAMSS_7280,
+ .pd_name = "top",
+ .csiphy_res = csiphy_res_7280,
+ .csid_res = csid_res_7280,
+ .vfe_res = vfe_res_7280,
+ .icc_res = icc_res_sc7280,
+ .icc_path_num = ARRAY_SIZE(icc_res_sc7280),
+ .csiphy_num = ARRAY_SIZE(csiphy_res_7280),
+ .csid_num = ARRAY_SIZE(csid_res_7280),
+ .vfe_num = ARRAY_SIZE(vfe_res_7280),
+ .link_entities = camss_link_entities
+};
+
static const struct of_device_id camss_dt_match[] = {
{ .compatible = "qcom,msm8916-camss", .data = &msm8916_resources },
{ .compatible = "qcom,msm8996-camss", .data = &msm8996_resources },
+ { .compatible = "qcom,sc7280-camss", .data = &sc7280_resources },
{ .compatible = "qcom,sc8280xp-camss", .data = &sc8280xp_resources },
{ .compatible = "qcom,sdm660-camss", .data = &sdm660_resources },
{ .compatible = "qcom,sdm845-camss", .data = &sdm845_resources },
diff --git a/drivers/media/platform/qcom/camss/camss.h b/drivers/media/platform/qcom/camss/camss.h
index 73c47c07fc30..16e527f8b831 100644
--- a/drivers/media/platform/qcom/camss/camss.h
+++ b/drivers/media/platform/qcom/camss/camss.h
@@ -76,6 +76,7 @@ enum camss_version {
CAMSS_8x16,
CAMSS_8x96,
CAMSS_660,
+ CAMSS_7280,
CAMSS_845,
CAMSS_8250,
CAMSS_8280XP,
--
2.25.1
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 06/10] media: qcom: camss: Add camss_link_entities_v2
2024-09-04 11:10 [PATCH 00/10] (no cover subject) Vikram Sharma
` (4 preceding siblings ...)
2024-09-04 11:10 ` [PATCH 05/10] media: qcom: camss: Add support for camss driver on SC7280 Vikram Sharma
@ 2024-09-04 11:10 ` Vikram Sharma
2024-09-04 14:50 ` Bryan O'Donoghue
2024-09-04 11:10 ` [PATCH 07/10] arm64: dts: qcom: sc7280: Add support for camss Vikram Sharma
` (6 subsequent siblings)
12 siblings, 1 reply; 33+ messages in thread
From: Vikram Sharma @ 2024-09-04 11:10 UTC (permalink / raw)
To: Robert Foss, Todor Tomov, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Vikram Sharma, Suresh Vankadara,
Trishansh Bhardwaj
Add camss_link_entities_v2, derived from the camss_link_entities
function, to handle linking for targets without ISPIF.
camss_link_entities -> Targets with ispif.
camss_link_entities_v2 -> Targets without ispif.
Signed-off-by: Suresh Vankadara <quic_svankada@quicinc.com>
Signed-off-by: Trishansh Bhardwaj <quic_tbhardwa@quicinc.com>
Signed-off-by: Vikram Sharma <quic_vikramsa@quicinc.com>
---
drivers/media/platform/qcom/camss/camss.c | 53 ++++++++++++++++++++++++++++++-
1 file changed, 52 insertions(+), 1 deletion(-)
diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c
index 5e7235001239..516434686a27 100644
--- a/drivers/media/platform/qcom/camss/camss.c
+++ b/drivers/media/platform/qcom/camss/camss.c
@@ -2154,6 +2154,57 @@ static int camss_init_subdevices(struct camss *camss)
return 0;
}
+/*
+ * camss_link_entities_v2 - Register subdev nodes and create links
+ * @camss: CAMSS device
+ *
+ * Return 0 on success or a negative error code on failure
+ */
+static int camss_link_entities_v2(struct camss *camss)
+{
+ int i, j;
+ int ret;
+
+ for (i = 0; i < camss->res->csiphy_num; i++) {
+ for (j = 0; j < camss->res->csid_num; j++) {
+ ret = media_create_pad_link(&camss->csiphy[i].subdev.entity,
+ MSM_CSIPHY_PAD_SRC,
+ &camss->csid[j].subdev.entity,
+ MSM_CSID_PAD_SINK,
+ 0);
+ if (ret < 0) {
+ dev_err(camss->dev,
+ "Failed to link %s->%s entities: %d\n",
+ camss->csiphy[i].subdev.entity.name,
+ camss->csid[j].subdev.entity.name,
+ ret);
+ return ret;
+ }
+ }
+ }
+
+ for (i = 0; i < camss->res->csid_num; i++)
+ for (j = 0; j < camss->vfe[i].res->line_num; j++) {
+ struct v4l2_subdev *csid = &camss->csid[i].subdev;
+ struct v4l2_subdev *vfe = &camss->vfe[i].line[j].subdev;
+
+ ret = media_create_pad_link(&csid->entity,
+ MSM_CSID_PAD_FIRST_SRC + j,
+ &vfe->entity,
+ MSM_VFE_PAD_SINK,
+ 0);
+ if (ret < 0) {
+ dev_err(camss->dev,
+ "Failed to link %s->%s entities: %d\n",
+ csid->entity.name,
+ vfe->entity.name,
+ ret);
+ return ret;
+ }
+ }
+ return 0;
+}
+
/*
* camss_link_entities - Register subdev nodes and create links
* @camss: CAMSS device
@@ -2769,7 +2820,7 @@ static const struct camss_resources sc8280xp_resources = {
.csiphy_num = ARRAY_SIZE(csiphy_res_sc8280xp),
.csid_num = ARRAY_SIZE(csid_res_sc8280xp),
.vfe_num = ARRAY_SIZE(vfe_res_sc8280xp),
- .link_entities = camss_link_entities
+ .link_entities = camss_link_entities_v2
};
static const struct camss_resources sc7280_resources = {
--
2.25.1
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 07/10] arm64: dts: qcom: sc7280: Add support for camss
2024-09-04 11:10 [PATCH 00/10] (no cover subject) Vikram Sharma
` (5 preceding siblings ...)
2024-09-04 11:10 ` [PATCH 06/10] media: qcom: camss: Add camss_link_entities_v2 Vikram Sharma
@ 2024-09-04 11:10 ` Vikram Sharma
2024-09-04 11:31 ` Krzysztof Kozlowski
2024-09-04 11:10 ` [PATCH 08/10] arm64: dts: qcom: qcs6490-rb3gen2-vision-mezzanine: Enable IMX577 sensor Vikram Sharma
` (5 subsequent siblings)
12 siblings, 1 reply; 33+ messages in thread
From: Vikram Sharma @ 2024-09-04 11:10 UTC (permalink / raw)
To: Robert Foss, Todor Tomov, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Vikram Sharma, Suresh Vankadara,
Trishansh Bhardwaj
Add changes to support the camera subsystem on the SC7280.
Signed-off-by: Suresh Vankadara <quic_svankada@quicinc.com>
Signed-off-by: Trishansh Bhardwaj <quic_tbhardwa@quicinc.com>
Signed-off-by: Vikram Sharma <quic_vikramsa@quicinc.com>
---
arch/arm64/boot/dts/qcom/sc7280.dtsi | 175 +++++++++++++++++++++++++++++++++++
1 file changed, 175 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
index 3d8410683402..109aafe967f8 100644
--- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
@@ -4419,6 +4419,181 @@ cci1_i2c1: i2c-bus@1 {
};
};
+ camss: camss@acaf000 {
+ compatible = "qcom,sc7280-camss";
+
+ clocks = <&camcc CAM_CC_CAMNOC_AXI_CLK>,
+ <&camcc CAM_CC_CPAS_AHB_CLK>,
+ <&camcc CAM_CC_IFE_0_CSID_CLK>,
+ <&camcc CAM_CC_IFE_1_CSID_CLK>,
+ <&camcc CAM_CC_IFE_2_CSID_CLK>,
+ <&camcc CAM_CC_IFE_LITE_0_CSID_CLK>,
+ <&camcc CAM_CC_IFE_LITE_1_CSID_CLK>,
+ <&camcc CAM_CC_CSIPHY0_CLK>,
+ <&camcc CAM_CC_CSI0PHYTIMER_CLK>,
+ <&camcc CAM_CC_CSIPHY1_CLK>,
+ <&camcc CAM_CC_CSI1PHYTIMER_CLK>,
+ <&camcc CAM_CC_CSIPHY2_CLK>,
+ <&camcc CAM_CC_CSI2PHYTIMER_CLK>,
+ <&camcc CAM_CC_CSIPHY3_CLK>,
+ <&camcc CAM_CC_CSI3PHYTIMER_CLK>,
+ <&camcc CAM_CC_CSIPHY4_CLK>,
+ <&camcc CAM_CC_CSI4PHYTIMER_CLK>,
+ <&gcc GCC_CAMERA_AHB_CLK>,
+ <&gcc GCC_CAMERA_HF_AXI_CLK>,
+ <&camcc CAM_CC_CPAS_AHB_CLK>,
+ <&camcc CAM_CC_IFE_0_AXI_CLK>,
+ <&camcc CAM_CC_IFE_0_CLK>,
+ <&camcc CAM_CC_IFE_0_CPHY_RX_CLK>,
+ <&camcc CAM_CC_IFE_1_AXI_CLK>,
+ <&camcc CAM_CC_IFE_1_CLK>,
+ <&camcc CAM_CC_IFE_1_CPHY_RX_CLK>,
+ <&camcc CAM_CC_IFE_2_AXI_CLK>,
+ <&camcc CAM_CC_IFE_2_CLK>,
+ <&camcc CAM_CC_IFE_2_CPHY_RX_CLK>,
+ <&camcc CAM_CC_IFE_LITE_0_CLK>,
+ <&camcc CAM_CC_IFE_LITE_0_CPHY_RX_CLK>,
+ <&camcc CAM_CC_IFE_LITE_1_CLK>,
+ <&camcc CAM_CC_IFE_LITE_1_CPHY_RX_CLK>;
+
+ clock-names = "camnoc_axi",
+ "cpas_ahb",
+ "csi0",
+ "csi1",
+ "csi2",
+ "csi3",
+ "csi4",
+ "csiphy0",
+ "csiphy0_timer",
+ "csiphy1",
+ "csiphy1_timer",
+ "csiphy2",
+ "csiphy2_timer",
+ "csiphy3",
+ "csiphy3_timer",
+ "csiphy4",
+ "csiphy4_timer",
+ "gcc_camera_ahb",
+ "gcc_camera_axi",
+ "soc_ahb",
+ "vfe0_axi",
+ "vfe0",
+ "vfe0_cphy_rx",
+ "vfe1_axi",
+ "vfe1",
+ "vfe1_cphy_rx",
+ "vfe2_axi",
+ "vfe2",
+ "vfe2_cphy_rx",
+ "vfe0_lite",
+ "vfe0_lite_cphy_rx",
+ "vfe1_lite",
+ "vfe1_lite_cphy_rx";
+
+ interconnect-names = "ahb", "hf_0";
+ interconnects = <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_CAMERA_CFG 0>,
+ <&mmss_noc MASTER_CAMNOC_HF 0 &mc_virt SLAVE_EBI1 0>;
+
+ interrupts = <GIC_SPI 464 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 466 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 640 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 468 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 359 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 477 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 478 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 479 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 448 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 122 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 465 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 467 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 641 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 469 IRQ_TYPE_EDGE_RISING>,
+ <GIC_SPI 360 IRQ_TYPE_EDGE_RISING>;
+
+ interrupt-names = "csid0",
+ "csid1",
+ "csid2",
+ "csid_lite0",
+ "csid_lite1",
+ "csiphy0",
+ "csiphy1",
+ "csiphy2",
+ "csiphy3",
+ "csiphy4",
+ "vfe0",
+ "vfe1",
+ "vfe2",
+ "vfe_lite0",
+ "vfe_lite1";
+
+ iommus = <&apps_smmu 0x800 0x4e0>;
+
+ power-domains = <&camcc CAM_CC_IFE_0_GDSC>,
+ <&camcc CAM_CC_IFE_1_GDSC>,
+ <&camcc CAM_CC_IFE_2_GDSC>,
+ <&camcc CAM_CC_TITAN_TOP_GDSC>;
+ power-domains-names = "ife0", "ife1", "ife2", "top";
+
+ reg = <0x0 0x0acb3000 0x0 0x1000>,
+ <0x0 0x0acba000 0x0 0x1000>,
+ <0x0 0x0acc1000 0x0 0x1000>,
+ <0x0 0x0acc8000 0x0 0x1000>,
+ <0x0 0x0accf000 0x0 0x1000>,
+ <0x0 0x0ace0000 0x0 0x2000>,
+ <0x0 0x0ace2000 0x0 0x2000>,
+ <0x0 0x0ace4000 0x0 0x2000>,
+ <0x0 0x0ace6000 0x0 0x2000>,
+ <0x0 0x0ace8000 0x0 0x2000>,
+ <0x0 0x0acaf000 0x0 0x4000>,
+ <0x0 0x0acb6000 0x0 0x4000>,
+ <0x0 0x0acbd000 0x0 0x4000>,
+ <0x0 0x0acc4000 0x0 0x4000>,
+ <0x0 0x0accb000 0x0 0x4000>;
+
+ reg-names = "csid0",
+ "csid1",
+ "csid2",
+ "csid_lite0",
+ "csid_lite1",
+ "csiphy0",
+ "csiphy1",
+ "csiphy2",
+ "csiphy3",
+ "csiphy4",
+ "vfe0",
+ "vfe1",
+ "vfe2",
+ "vfe_lite0",
+ "vfe_lite1";
+
+ status = "disabled";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ };
+
+ port@1 {
+ reg = <1>;
+ };
+
+ port@2 {
+ reg = <2>;
+ };
+
+ port@3 {
+ reg = <3>;
+ };
+
+ port@4 {
+ reg = <4>;
+ };
+ };
+ };
+
camcc: clock-controller@ad00000 {
compatible = "qcom,sc7280-camcc";
reg = <0 0x0ad00000 0 0x10000>;
--
2.25.1
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 08/10] arm64: dts: qcom: qcs6490-rb3gen2-vision-mezzanine: Enable IMX577 sensor
2024-09-04 11:10 [PATCH 00/10] (no cover subject) Vikram Sharma
` (6 preceding siblings ...)
2024-09-04 11:10 ` [PATCH 07/10] arm64: dts: qcom: sc7280: Add support for camss Vikram Sharma
@ 2024-09-04 11:10 ` Vikram Sharma
2024-09-04 11:32 ` Krzysztof Kozlowski
2024-09-04 11:10 ` [PATCH 09/10] arm64: dts: qcom: sc7280: Add default and suspend states for GPIO Vikram Sharma
` (4 subsequent siblings)
12 siblings, 1 reply; 33+ messages in thread
From: Vikram Sharma @ 2024-09-04 11:10 UTC (permalink / raw)
To: Robert Foss, Todor Tomov, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Vikram Sharma, Hariram Purushothaman
Enable the IMX577 camera sensor for the qcs6490-rb3gen2-vision-mezzanine
board.
Signed-off-by: Hariram Purushothaman <quic_hariramp@quicinc.com>
Signed-off-by: Vikram Sharma <quic_vikramsa@quicinc.com>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../dts/qcom/qcs6490-rb3gen2-vision-mezzanine.dts | 61 ++++++++++++++++++++++
2 files changed, 62 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index ae002c7cf126..49ec82e0e28e 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -111,6 +111,7 @@ dtb-$(CONFIG_ARCH_QCOM) += qcm6490-shift-otter.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-4000.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2.dtb
+dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2-vision-mezzanine.dtb
dtb-$(CONFIG_ARCH_QCOM) += qcs8550-aim300-aiot.dtb
dtb-$(CONFIG_ARCH_QCOM) += qdu1000-idp.dtb
dtb-$(CONFIG_ARCH_QCOM) += qrb2210-rb1.dtb
diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-vision-mezzanine.dts b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-vision-mezzanine.dts
new file mode 100644
index 000000000000..04b5fe80d38d
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-vision-mezzanine.dts
@@ -0,0 +1,61 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+/dts-v1/;
+
+#include "qcs6490-rb3gen2.dts"
+
+&camcc {
+ status = "okay";
+};
+
+&camss {
+ vdda-phy-supply = <&vreg_l10c_0p88>;
+ vdda-pll-supply = <&vreg_l6b_1p2>;
+ status = "okay";
+
+ ports {
+ /* The port index denotes CSIPHY id i.e. csiphy3 */
+ port@3 {
+ reg = <3>;
+ csiphy3_ep: endpoint {
+ clock-lanes = <7>;
+ data-lanes = <0 1 2 3>;
+ remote-endpoint = <&imx577_ep>;
+ };
+ };
+ };
+};
+
+&cci1 {
+ status = "okay";
+};
+
+&cci1_i2c1 {
+ camera@1a {
+ compatible = "sony,imx577";
+ reg = <0x1a>;
+
+ reset-gpios = <&tlmm 78 GPIO_ACTIVE_LOW>;
+ pinctrl-names = "default", "suspend";
+ pinctrl-0 = <&cam2_default>;
+ pinctrl-1 = <&cam2_suspend>;
+
+ clocks = <&camcc CAM_CC_MCLK3_CLK>;
+ assigned-clocks = <&camcc CAM_CC_MCLK3_CLK>;
+ assigned-clock-rates = <24000000>;
+
+ dovdd-supply = <&vreg_l18b_1p8>;
+
+ port {
+ imx577_ep: endpoint {
+ clock-lanes = <7>;
+ link-frequencies = /bits/ 64 <600000000>;
+ data-lanes = <0 1 2 3>;
+ remote-endpoint = <&csiphy3_ep>;
+ };
+ };
+ };
+};
--
2.25.1
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 09/10] arm64: dts: qcom: sc7280: Add default and suspend states for GPIO
2024-09-04 11:10 [PATCH 00/10] (no cover subject) Vikram Sharma
` (7 preceding siblings ...)
2024-09-04 11:10 ` [PATCH 08/10] arm64: dts: qcom: qcs6490-rb3gen2-vision-mezzanine: Enable IMX577 sensor Vikram Sharma
@ 2024-09-04 11:10 ` Vikram Sharma
2024-09-04 11:33 ` Krzysztof Kozlowski
2024-09-04 11:10 ` [PATCH 10/10] arm64: defconfig: Enable camcc driver for SC7280 Vikram Sharma
` (3 subsequent siblings)
12 siblings, 1 reply; 33+ messages in thread
From: Vikram Sharma @ 2024-09-04 11:10 UTC (permalink / raw)
To: Robert Foss, Todor Tomov, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Vikram Sharma, Hariram Purushothaman,
Trishansh Bhardwaj
Add default and suspend states for GPIO 67 and 78 on the SC7280.
Signed-off-by: Hariram Purushothaman <quic_hariramp@quicinc.com>
Signed-off-by: Trishansh Bhardwaj <quic_tbhardwa@quicinc.com>
Signed-off-by: Vikram Sharma <quic_vikramsa@quicinc.com>
---
arch/arm64/boot/dts/qcom/sc7280.dtsi | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi
index 109aafe967f8..8788ae9f57ee 100644
--- a/arch/arm64/boot/dts/qcom/sc7280.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi
@@ -5164,6 +5164,39 @@ cci3_sleep: cci3-sleep-state {
bias-pull-down;
};
+ cam2_default: cam2-default {
+ rst {
+ pins = "gpio78";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ mclk {
+ pins = "gpio67";
+ function = "cam_mclk";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ };
+
+ cam2_suspend: cam2-suspend {
+ rst {
+ pins = "gpio78";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ output-low;
+ };
+
+ mclk {
+ pins = "gpio67";
+ function = "cam_mclk";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+ };
+
dp_hot_plug_det: dp-hot-plug-det-state {
pins = "gpio47";
function = "dp_hot";
--
2.25.1
^ permalink raw reply related [flat|nested] 33+ messages in thread
* [PATCH 10/10] arm64: defconfig: Enable camcc driver for SC7280
2024-09-04 11:10 [PATCH 00/10] (no cover subject) Vikram Sharma
` (8 preceding siblings ...)
2024-09-04 11:10 ` [PATCH 09/10] arm64: dts: qcom: sc7280: Add default and suspend states for GPIO Vikram Sharma
@ 2024-09-04 11:10 ` Vikram Sharma
2024-09-04 11:33 ` Krzysztof Kozlowski
2024-09-04 11:21 ` [PATCH 00/10] (no cover subject) Bryan O'Donoghue
` (2 subsequent siblings)
12 siblings, 1 reply; 33+ messages in thread
From: Vikram Sharma @ 2024-09-04 11:10 UTC (permalink / raw)
To: Robert Foss, Todor Tomov, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Vikram Sharma
Enable the camera clock driver for SC7280.
Signed-off-by: Vikram Sharma <quic_vikramsa@quicinc.com>
---
arch/arm64/configs/defconfig | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index f064c7c91dbb..c54097a00daf 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -1322,6 +1322,7 @@ CONFIG_QCM_DISPCC_2290=m
CONFIG_QCS_GCC_404=y
CONFIG_QDU_GCC_1000=y
CONFIG_SC_CAMCC_8280XP=m
+CONFIG_SC_CAMCC_7280=m
CONFIG_SC_DISPCC_7280=m
CONFIG_SC_DISPCC_8280XP=m
CONFIG_SA_GCC_8775P=y
--
2.25.1
^ permalink raw reply related [flat|nested] 33+ messages in thread
* Re: [PATCH 00/10] (no cover subject)
2024-09-04 11:10 [PATCH 00/10] (no cover subject) Vikram Sharma
` (9 preceding siblings ...)
2024-09-04 11:10 ` [PATCH 10/10] arm64: defconfig: Enable camcc driver for SC7280 Vikram Sharma
@ 2024-09-04 11:21 ` Bryan O'Donoghue
2024-09-04 11:22 ` Bryan O'Donoghue
2024-09-04 13:36 ` Rob Herring (Arm)
2024-09-30 10:52 ` Luca Weiss
12 siblings, 1 reply; 33+ messages in thread
From: Bryan O'Donoghue @ 2024-09-04 11:21 UTC (permalink / raw)
To: Vikram Sharma, Robert Foss, Todor Tomov, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Kapatrala Syed,
Hariram Purushothaman, Bjorn Andersson, Konrad Dybcio,
Hans Verkuil, cros-qcom-dts-watchers, Catalin Marinas,
Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Suresh Vankadara, Trishansh Bhardwaj, stable,
Hariram Purushothaman
On 04/09/2024 12:10, Vikram Sharma wrote:
> SC7280 is a Qualcomm SoC. This series adds support to
> bring up the CSIPHY, CSID, VFE/RDI interfaces in SC7280.
>
> SC7280 provides
Please RESEND with a subject !
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 00/10] (no cover subject)
2024-09-04 11:21 ` [PATCH 00/10] (no cover subject) Bryan O'Donoghue
@ 2024-09-04 11:22 ` Bryan O'Donoghue
0 siblings, 0 replies; 33+ messages in thread
From: Bryan O'Donoghue @ 2024-09-04 11:22 UTC (permalink / raw)
To: Vikram Sharma, Robert Foss, Todor Tomov, Mauro Carvalho Chehab,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Kapatrala Syed,
Hariram Purushothaman, Bjorn Andersson, Konrad Dybcio,
Hans Verkuil, cros-qcom-dts-watchers, Catalin Marinas,
Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Suresh Vankadara, Trishansh Bhardwaj, stable,
Hariram Purushothaman
On 04/09/2024 12:21, Bryan O'Donoghue wrote:
> On 04/09/2024 12:10, Vikram Sharma wrote:
>> SC7280 is a Qualcomm SoC. This series adds support to
>> bring up the CSIPHY, CSID, VFE/RDI interfaces in SC7280.
>>
>> SC7280 provides
>
> Please RESEND with a subject !
>
And don't forget to include the V number V3 ? perhaps.
---
bod
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 01/10] media: dt-bindings: media: camss: Add qcom,sc7280-camss binding
2024-09-04 11:10 ` [PATCH 01/10] media: dt-bindings: media: camss: Add qcom,sc7280-camss binding Vikram Sharma
@ 2024-09-04 11:28 ` Krzysztof Kozlowski
2024-09-05 6:47 ` Krzysztof Kozlowski
1 sibling, 0 replies; 33+ messages in thread
From: Krzysztof Kozlowski @ 2024-09-04 11:28 UTC (permalink / raw)
To: Vikram Sharma, Robert Foss, Todor Tomov, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Suresh Vankadara, Trishansh Bhardwaj
On 04/09/2024 13:10, Vikram Sharma wrote:
> Add bindings for qcom,sc7280-camss to support the camera subsystem
> on the SC7280 platform.
>
> Signed-off-by: Suresh Vankadara <quic_svankada@quicinc.com>
> Signed-off-by: Trishansh Bhardwaj <quic_tbhardwa@quicinc.com>
> Signed-off-by: Vikram Sharma <quic_vikramsa@quicinc.com>
> ---
> .../bindings/media/qcom,sc7280-camss.yaml | 441 +++++++++++++++++++++
> 1 file changed, 441 insertions(+)
Why do you send the same patch? No versioning, no changelog. Please
implement feedback from previous submissions, then send new version.
Everything is explained in submitting-patches document.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 02/10] media: dt-bindings: media: qcs6490-rb3gen2-vision-mezzanine: Add dt bindings
2024-09-04 11:10 ` [PATCH 02/10] media: dt-bindings: media: qcs6490-rb3gen2-vision-mezzanine: Add dt bindings Vikram Sharma
@ 2024-09-04 11:29 ` Krzysztof Kozlowski
0 siblings, 0 replies; 33+ messages in thread
From: Krzysztof Kozlowski @ 2024-09-04 11:29 UTC (permalink / raw)
To: Vikram Sharma, Robert Foss, Todor Tomov, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel
On 04/09/2024 13:10, Vikram Sharma wrote:
> Add bindings for qcs6490-rb3gen2-vision-mezzanine.
This we see from the diff. Explain what is this. What are the differences.
Subject: drop duplicated, second media.
A nit, subject: drop second/last, redundant "bindings". The
"dt-bindings" prefix is already stating that these are bindings.
See also:
https://elixir.bootlin.com/linux/v6.7-rc8/source/Documentation/devicetree/bindings/submitting-patches.rst#L18
Please use subject prefixes matching the subsystem. You can get them for
example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory
your patch is touching. For bindings, the preferred subjects are
explained here:
https://www.kernel.org/doc/html/latest/devicetree/bindings/submitting-patches.html#i-for-patch-submitters
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 07/10] arm64: dts: qcom: sc7280: Add support for camss
2024-09-04 11:10 ` [PATCH 07/10] arm64: dts: qcom: sc7280: Add support for camss Vikram Sharma
@ 2024-09-04 11:31 ` Krzysztof Kozlowski
0 siblings, 0 replies; 33+ messages in thread
From: Krzysztof Kozlowski @ 2024-09-04 11:31 UTC (permalink / raw)
To: Vikram Sharma, Robert Foss, Todor Tomov, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Suresh Vankadara, Trishansh Bhardwaj
On 04/09/2024 13:10, Vikram Sharma wrote:
> Add changes to support the camera subsystem on the SC7280.
>
> Signed-off-by: Suresh Vankadara <quic_svankada@quicinc.com>
> Signed-off-by: Trishansh Bhardwaj <quic_tbhardwa@quicinc.com>
> Signed-off-by: Vikram Sharma <quic_vikramsa@quicinc.com>
> ---
> arch/arm64/boot/dts/qcom/sc7280.dtsi | 175 +++++++++++++++++++++++++++++++++++
> 1 file changed, 175 insertions(+)
>
This does not follow DTS coding style.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 08/10] arm64: dts: qcom: qcs6490-rb3gen2-vision-mezzanine: Enable IMX577 sensor
2024-09-04 11:10 ` [PATCH 08/10] arm64: dts: qcom: qcs6490-rb3gen2-vision-mezzanine: Enable IMX577 sensor Vikram Sharma
@ 2024-09-04 11:32 ` Krzysztof Kozlowski
0 siblings, 0 replies; 33+ messages in thread
From: Krzysztof Kozlowski @ 2024-09-04 11:32 UTC (permalink / raw)
To: Vikram Sharma, Robert Foss, Todor Tomov, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Hariram Purushothaman
On 04/09/2024 13:10, Vikram Sharma wrote:
> Enable the IMX577 camera sensor for the qcs6490-rb3gen2-vision-mezzanine
> board.
Explain what hardware are you adding here.
>
> Signed-off-by: Hariram Purushothaman <quic_hariramp@quicinc.com>
> Signed-off-by: Vikram Sharma <quic_vikramsa@quicinc.com>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> .../dts/qcom/qcs6490-rb3gen2-vision-mezzanine.dts | 61 ++++++++++++++++++++++
> 2 files changed, 62 insertions(+)
Different boards need different compatibles. OTOH, mezzanine is addon,
not a board, so I would expect overlay. This is confusing.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 10/10] arm64: defconfig: Enable camcc driver for SC7280
2024-09-04 11:10 ` [PATCH 10/10] arm64: defconfig: Enable camcc driver for SC7280 Vikram Sharma
@ 2024-09-04 11:33 ` Krzysztof Kozlowski
0 siblings, 0 replies; 33+ messages in thread
From: Krzysztof Kozlowski @ 2024-09-04 11:33 UTC (permalink / raw)
To: Vikram Sharma, Robert Foss, Todor Tomov, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel
On 04/09/2024 13:10, Vikram Sharma wrote:
> Enable the camera clock driver for SC7280.
What is SC7280? Why this should be enabled? Your commit msg must explain
to these questions.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 09/10] arm64: dts: qcom: sc7280: Add default and suspend states for GPIO
2024-09-04 11:10 ` [PATCH 09/10] arm64: dts: qcom: sc7280: Add default and suspend states for GPIO Vikram Sharma
@ 2024-09-04 11:33 ` Krzysztof Kozlowski
0 siblings, 0 replies; 33+ messages in thread
From: Krzysztof Kozlowski @ 2024-09-04 11:33 UTC (permalink / raw)
To: Vikram Sharma, Robert Foss, Todor Tomov, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Hariram Purushothaman, Trishansh Bhardwaj
On 04/09/2024 13:10, Vikram Sharma wrote:
> Add default and suspend states for GPIO 67 and 78 on the SC7280.
>
> Signed-off-by: Hariram Purushothaman <quic_hariramp@quicinc.com>
> Signed-off-by: Trishansh Bhardwaj <quic_tbhardwa@quicinc.com>
> Signed-off-by: Vikram Sharma <quic_vikramsa@quicinc.com>
> ---
Please stop sending the same buggy patches.
You received comment that this is broken and what you must fix. You keep
sending the same patches over and over and expect different feedback.
NAK.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 00/10] (no cover subject)
2024-09-04 11:10 [PATCH 00/10] (no cover subject) Vikram Sharma
` (10 preceding siblings ...)
2024-09-04 11:21 ` [PATCH 00/10] (no cover subject) Bryan O'Donoghue
@ 2024-09-04 13:36 ` Rob Herring (Arm)
2024-09-30 10:52 ` Luca Weiss
12 siblings, 0 replies; 33+ messages in thread
From: Rob Herring (Arm) @ 2024-09-04 13:36 UTC (permalink / raw)
To: Vikram Sharma
Cc: devicetree, Robert Foss, linux-media, stable, linux-arm-kernel,
cros-qcom-dts-watchers, linux-kernel, Konrad Dybcio,
linux-arm-msm, Todor Tomov, Hariram Purushothaman, Kapatrala Syed,
Trishansh Bhardwaj, Hariram Purushothaman, Will Deacon,
Bryan O'Donoghue, Bjorn Andersson, Conor Dooley,
Mauro Carvalho Chehab, Catalin Marinas, Suresh Vankadara,
Hans Verkuil, Krzysztof Kozlowski
On Wed, 04 Sep 2024 16:40:06 +0530, Vikram Sharma wrote:
> SC7280 is a Qualcomm SoC. This series adds support to
> bring up the CSIPHY, CSID, VFE/RDI interfaces in SC7280.
>
> SC7280 provides
>
> - 3 x VFE, 3 RDI per VFE
> - 2 x VFE Lite, 4 RDI per VFE
> - 3 x CSID
> - 2 x CSID Lite
> - 5 x CSI PHY
>
> The changes are verified on SC7280 qcs6490-rb3gen2-vision board,
> the base dts for qcs6490-rb3gen2 is:
> https://lore.kernel.org/all/20231103184655.23555-1-quic_kbajaj@quicinc.com/
>
> V1 for this series: https://lore.kernel.org/linux-arm-msm/20240629-camss_first_post_linux_next-v1-0-bc798edabc3a@quicinc.com/
>
> Changes in V2:
> 1) Improved indentation/formatting.
> 2) Removed _src clocks and misleading code comments.
> 3) Added name fields for power domains and csid register offset in DTSI.
> 4) Dropped minItems field from YAML file.
> 5) Listed changes in alphabetical order.
> 6) Updated description and commit text to reflect changes
> 7) Changed the compatible string from imx412 to imx577.
> 8) Added board-specific enablement changes in the newly created vision
> board DTSI file.
> 9) Fixed bug encountered during testing.
> 10) Moved logically independent changes to a new/seprate patch.
> 11) Removed cci0 as no sensor is on this port and MCLK2, which was a
> copy-paste error from the RB5 board reference.
> 12) Added power rails, referencing the RB5 board.
> 13) Discarded Patch 5/6 completely (not required).
> 14) Removed unused enums.
>
> To: Robert Foss <rfoss@kernel.org>
> To: Todor Tomov <todor.too@gmail.com>
> To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> To: Mauro Carvalho Chehab <mchehab@kernel.org>
> To: Rob Herring <robh@kernel.org>
> To: Krzysztof Kozlowski <krzk+dt@kernel.org>
> To: Conor Dooley <conor+dt@kernel.org>
> To: Kapatrala Syed <akapatra@quicinc.com>
> To: Hariram Purushothaman <hariramp@quicinc.com>
> To: Bjorn Andersson <andersson@kernel.org>
> To: Konrad Dybcio <konradybcio@kernel.org>
> To: Hans Verkuil <hverkuil-cisco@xs4all.nl>
> To: cros-qcom-dts-watchers@chromium.org
> To: Catalin Marinas <catalin.marinas@arm.com>
> To: Will Deacon <will@kernel.org>
> Cc: linux-arm-msm@vger.kernel.org
> Cc: linux-media@vger.kernel.org
> Cc: devicetree@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Cc: linux-arm-kernel@lists.infradead.org
>
> Test-by: Vikram Sharma <quic_vikramsa@quicinc.com>
> Signed-off-by: Vikram Sharma <quic_vikramsa@quicinc.com>
> ---
> Suresh Vankadara (1):
> media: qcom: camss: Add support for camss driver on SC7280
>
> Vikram Sharma (9):
> media: dt-bindings: media: camss: Add qcom,sc7280-camss binding
> media: dt-bindings: media: qcs6490-rb3gen2-vision-mezzanine: Add dt bindings
> media: qcom: camss: Fix potential crash if domain attach fails
> media: qcom: camss: Sort CAMSS version enums and compatible strings
> media: qcom: camss: Add camss_link_entities_v2
> arm64: dts: qcom: sc7280: Add support for camss
> arm64: dts: qcom: qcs6490-rb3gen2-vision-mezzanine: Enable IMX577 sensor
> arm64: dts: qcom: sc7280: Add default and suspend states for GPIO
> arm64: defconfig: Enable camcc driver for SC7280
>
> Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
> .../bindings/media/qcom,sc7280-camss.yaml | 441 +++++++++++++++++++++
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> .../dts/qcom/qcs6490-rb3gen2-vision-mezzanine.dts | 61 +++
> arch/arm64/boot/dts/qcom/sc7280.dtsi | 208 ++++++++++
> arch/arm64/configs/defconfig | 1 +
> drivers/media/platform/qcom/camss/camss-csid.c | 1 -
> .../platform/qcom/camss/camss-csiphy-3ph-1-0.c | 13 +-
> drivers/media/platform/qcom/camss/camss-csiphy.c | 5 +
> drivers/media/platform/qcom/camss/camss-csiphy.h | 1 +
> drivers/media/platform/qcom/camss/camss-vfe.c | 8 +-
> drivers/media/platform/qcom/camss/camss.c | 400 ++++++++++++++++++-
> drivers/media/platform/qcom/camss/camss.h | 1 +
> 13 files changed, 1131 insertions(+), 11 deletions(-)
> ---
> base-commit: fdadd93817f124fd0ea6ef251d4a1068b7feceba
> change-id: 20240904-camss_on_sc7280_rb3gen2_vision_v2_patches-15c195fb3f12
>
> Best regards,
> --
> Vikram Sharma <quic_vikramsa@quicinc.com>
>
>
>
My bot found new DTB warnings on the .dts files added or changed in this
series.
Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.
If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:
pip3 install dtschema --upgrade
New warnings running 'make CHECK_DTBS=y qcom/qcs6490-rb3gen2-vision-mezzanine.dtb' for 20240904-camss_on_sc7280_rb3gen2_vision_v2_patches-v1-0-b18ddcd7d9df@quicinc.com:
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-vision-mezzanine.dtb: pcie@1c08000: interrupts: [[0, 307, 4], [0, 308, 4], [0, 309, 4], [0, 312, 4], [0, 313, 4], [0, 314, 4], [0, 374, 4], [0, 375, 4]] is too long
from schema $id: http://devicetree.org/schemas/pci/qcom,pcie-sc7280.yaml#
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-vision-mezzanine.dtb: pcie@1c08000: interrupt-names:0: 'msi' was expected
from schema $id: http://devicetree.org/schemas/pci/qcom,pcie-sc7280.yaml#
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-vision-mezzanine.dtb: pcie@1c08000: interrupt-names: ['msi0', 'msi1', 'msi2', 'msi3', 'msi4', 'msi5', 'msi6', 'msi7'] is too long
from schema $id: http://devicetree.org/schemas/pci/qcom,pcie-sc7280.yaml#
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-vision-mezzanine.dtb: usb@8cf8800: interrupt-names: ['pwr_event', 'hs_phy_irq', 'dp_hs_phy_irq', 'dm_hs_phy_irq'] is too short
from schema $id: http://devicetree.org/schemas/usb/qcom,dwc3.yaml#
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-vision-mezzanine.dtb: video-codec@aa00000: iommus: [[66, 8576, 32]] is too short
from schema $id: http://devicetree.org/schemas/media/qcom,sc7280-venus.yaml#
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-vision-mezzanine.dtb: pinctrl@f100000: Unevaluated properties are not allowed ('cam2-default', 'cam2-suspend' were unexpected)
from schema $id: http://devicetree.org/schemas/pinctrl/qcom,sc7280-pinctrl.yaml#
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 04/10] media: qcom: camss: Sort CAMSS version enums and compatible strings
2024-09-04 11:10 ` [PATCH 04/10] media: qcom: camss: Sort CAMSS version enums and compatible strings Vikram Sharma
@ 2024-09-04 14:44 ` Bryan O'Donoghue
0 siblings, 0 replies; 33+ messages in thread
From: Bryan O'Donoghue @ 2024-09-04 14:44 UTC (permalink / raw)
To: Vikram Sharma, Robert Foss, Todor Tomov, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Suresh Vankadara, Trishansh Bhardwaj
On 04/09/2024 12:10, Vikram Sharma wrote:
> Sort CAMSS version enums and compatible strings alphanumerically.
>
> Signed-off-by: Suresh Vankadara <quic_svankada@quicinc.com>
> Signed-off-by: Trishansh Bhardwaj <quic_tbhardwa@quicinc.com>
> Signed-off-by: Vikram Sharma <quic_vikramsa@quicinc.com>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 06/10] media: qcom: camss: Add camss_link_entities_v2
2024-09-04 11:10 ` [PATCH 06/10] media: qcom: camss: Add camss_link_entities_v2 Vikram Sharma
@ 2024-09-04 14:50 ` Bryan O'Donoghue
0 siblings, 0 replies; 33+ messages in thread
From: Bryan O'Donoghue @ 2024-09-04 14:50 UTC (permalink / raw)
To: Vikram Sharma, Robert Foss, Todor Tomov, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Suresh Vankadara, Trishansh Bhardwaj
On 04/09/2024 12:10, Vikram Sharma wrote:
> Add camss_link_entities_v2, derived from the camss_link_entities
> function, to handle linking for targets without ISPIF.
>
> camss_link_entities -> Targets with ispif.
> camss_link_entities_v2 -> Targets without ispif.
>
> Signed-off-by: Suresh Vankadara <quic_svankada@quicinc.com>
> Signed-off-by: Trishansh Bhardwaj <quic_tbhardwa@quicinc.com>
> Signed-off-by: Vikram Sharma <quic_vikramsa@quicinc.com>
> ---
> drivers/media/platform/qcom/camss/camss.c | 53 ++++++++++++++++++++++++++++++-
> 1 file changed, 52 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c
> index 5e7235001239..516434686a27 100644
> --- a/drivers/media/platform/qcom/camss/camss.c
> +++ b/drivers/media/platform/qcom/camss/camss.c
> @@ -2154,6 +2154,57 @@ static int camss_init_subdevices(struct camss *camss)
> return 0;
> }
>
> +/*
> + * camss_link_entities_v2 - Register subdev nodes and create links
> + * @camss: CAMSS device
> + *
> + * Return 0 on success or a negative error code on failure
> + */
> +static int camss_link_entities_v2(struct camss *camss)
> +{
> + int i, j;
> + int ret;
> +
> + for (i = 0; i < camss->res->csiphy_num; i++) {
> + for (j = 0; j < camss->res->csid_num; j++) {
> + ret = media_create_pad_link(&camss->csiphy[i].subdev.entity,
> + MSM_CSIPHY_PAD_SRC,
> + &camss->csid[j].subdev.entity,
> + MSM_CSID_PAD_SINK,
> + 0);
> + if (ret < 0) {
> + dev_err(camss->dev,
> + "Failed to link %s->%s entities: %d\n",
> + camss->csiphy[i].subdev.entity.name,
> + camss->csid[j].subdev.entity.name,
> + ret);
> + return ret;
> + }
> + }
> + }
Please reduce the above loop down into a common call that both
camss_link_entities_ispif()[1] and camss_link_entities() can call.
Because => functional decomposition and code reuse instead of code
replication.
> + for (i = 0; i < camss->res->csid_num; i++)
> + for (j = 0; j < camss->vfe[i].res->line_num; j++) {
> + struct v4l2_subdev *csid = &camss->csid[i].subdev;
> + struct v4l2_subdev *vfe = &camss->vfe[i].line[j].subdev;
> +
> + ret = media_create_pad_link(&csid->entity,
> + MSM_CSID_PAD_FIRST_SRC + j,
> + &vfe->entity,
> + MSM_VFE_PAD_SINK,
> + 0);
> + if (ret < 0) {
> + dev_err(camss->dev,
> + "Failed to link %s->%s entities: %d\n",
> + csid->entity.name,
> + vfe->entity.name,
> + ret);
> + return ret;
> + }
> + }
> + return 0;
> +}
Having a tidy function for every non ispif SoC seems like nice code,
approve.
However the corollary is the ispif version of the code should then drop the
if (camss->ispif) {
//do stuff
} else {
// do other stuff
}
i.e. your function pointer now determines if ispif is true so you can
drop the dead code on the else path in camss_link_entities_ispif()
> +
> /*
> * camss_link_entities - Register subdev nodes and create links
> * @camss: CAMSS device
> @@ -2769,7 +2820,7 @@ static const struct camss_resources sc8280xp_resources = {
> .csiphy_num = ARRAY_SIZE(csiphy_res_sc8280xp),
> .csid_num = ARRAY_SIZE(csid_res_sc8280xp),
> .vfe_num = ARRAY_SIZE(vfe_res_sc8280xp),
> - .link_entities = camss_link_entities
> + .link_entities = camss_link_entities_v2
> };
>
> static const struct camss_resources sc7280_resources = {
>
This change isn't correct.
There are six upstream camss entires
grep camss arch/arm64/boot/dts/qcom/*.dtsi | grep compat | wc -l
6
Only three of which have ispif
grep -m1 "ispif" arch/arm64/boot/dts/qcom/*.dtsi | wc -l
3
=> You've missed 2/3 of the SoCs the change should apply to - 845 and 8250.
[1] I also think the legacy function should be called
camss_link_entities_ispif() with the default being camss_link_entities();
1. Please change the name of the existing function to
camss_link_entities_ispif() to reflect its function and dependency.
2. Functionally decompose the top part of the loop into some common
method that both camss_link_entities_ispif() and
camss_link_entities() can call.
Because functionally decomposed and reused code is better code.
3. You need to make sure you hook the right set of SoCs with the
default and legacy versions of the function
-> msm8916/msm8996/sdm630 .link_entites = camss_link_entities_ispif()
-> sdm845/sc7280/sc8280xp .link_entities = camss_link_entities()
---
bod
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 01/10] media: dt-bindings: media: camss: Add qcom,sc7280-camss binding
2024-09-04 11:10 ` [PATCH 01/10] media: dt-bindings: media: camss: Add qcom,sc7280-camss binding Vikram Sharma
2024-09-04 11:28 ` Krzysztof Kozlowski
@ 2024-09-05 6:47 ` Krzysztof Kozlowski
1 sibling, 0 replies; 33+ messages in thread
From: Krzysztof Kozlowski @ 2024-09-05 6:47 UTC (permalink / raw)
To: Vikram Sharma
Cc: Robert Foss, Todor Tomov, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon,
linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Suresh Vankadara, Trishansh Bhardwaj
On Wed, Sep 04, 2024 at 04:40:07PM +0530, Vikram Sharma wrote:
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/qcom,camcc-sc7280.h>
> + #include <dt-bindings/clock/qcom,gcc-sc7280.h>
> + #include <dt-bindings/interconnect/qcom,sc7280.h>
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> + #include <dt-bindings/power/qcom-rpmpd.h>
> +
> + soc {
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + camss: camss@acaf000 {
> + compatible = "qcom,sc7280-camss";
> +
Alignment, indentation and properties order is completely wrong here.
But maybe because you keep sending the same and expect different
review?
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 03/10] media: qcom: camss: Fix potential crash if domain attach fails
2024-09-04 11:10 ` [PATCH 03/10] media: qcom: camss: Fix potential crash if domain attach fails Vikram Sharma
@ 2024-09-05 12:13 ` Konrad Dybcio
0 siblings, 0 replies; 33+ messages in thread
From: Konrad Dybcio @ 2024-09-05 12:13 UTC (permalink / raw)
To: Vikram Sharma, Robert Foss, Todor Tomov, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, stable
On 4.09.2024 1:10 PM, Vikram Sharma wrote:
> Fix a potential crash in camss by ensuring detach is skipped if attach
> is unsuccessful.
>
> Fixes: d89751c61279 ("media: qcom: camss: Add support for named power-domains")
> CC: stable@vger.kernel.org
> Signed-off-by: Vikram Sharma <quic_vikramsa@quicinc.com>
> ---
> drivers/media/platform/qcom/camss/camss.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c
> index d64985ca6e88..447b89d07e8a 100644
> --- a/drivers/media/platform/qcom/camss/camss.c
> +++ b/drivers/media/platform/qcom/camss/camss.c
> @@ -2132,7 +2132,7 @@ static int camss_configure_pd(struct camss *camss)
> camss->res->pd_name);
> if (IS_ERR(camss->genpd)) {
> ret = PTR_ERR(camss->genpd);
> - goto fail_pm;
> + goto fail_pm_attach;
> }
> }
>
> @@ -2149,7 +2149,7 @@ static int camss_configure_pd(struct camss *camss)
> ret = -ENODEV;
> else
> ret = PTR_ERR(camss->genpd);
> - goto fail_pm;
> + goto fail_pm_attach;
> }
> camss->genpd_link = device_link_add(camss->dev, camss->genpd,
> DL_FLAG_STATELESS | DL_FLAG_PM_RUNTIME |
> @@ -2164,6 +2164,7 @@ static int camss_configure_pd(struct camss *camss)
> fail_pm:
> dev_pm_domain_detach(camss->genpd, true);
>
> +fail_pm_attach:
> return ret;
What's the point, just call return directly where you added the goto
Konrad
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 00/10] (no cover subject)
2024-09-04 11:10 [PATCH 00/10] (no cover subject) Vikram Sharma
` (11 preceding siblings ...)
2024-09-04 13:36 ` Rob Herring (Arm)
@ 2024-09-30 10:52 ` Luca Weiss
2024-09-30 11:54 ` Bryan O'Donoghue
12 siblings, 1 reply; 33+ messages in thread
From: Luca Weiss @ 2024-09-30 10:52 UTC (permalink / raw)
To: Vikram Sharma, Robert Foss, Todor Tomov, Bryan O'Donoghue,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Suresh Vankadara, Trishansh Bhardwaj, stable,
Hariram Purushothaman
On Wed Sep 4, 2024 at 1:10 PM CEST, Vikram Sharma wrote:
> SC7280 is a Qualcomm SoC. This series adds support to
> bring up the CSIPHY, CSID, VFE/RDI interfaces in SC7280.
>
> SC7280 provides
>
> - 3 x VFE, 3 RDI per VFE
> - 2 x VFE Lite, 4 RDI per VFE
> - 3 x CSID
> - 2 x CSID Lite
> - 5 x CSI PHY
Hi Vikram,
I tried this on my QCM6490 Fairphone 5 smartphone.
Unfortunately I couldn't get e.g. CSID test pattern out of camss. I've
tested this patchset on v6.11.
These commands did work on an older sc7280 camss patchset (which was
never sent to the lists). Can you please take a look?
v4l2-ctl -d /dev/v4l-subdev5 -c test_pattern=1
media-ctl -d /dev/media0 -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
media-ctl -d /dev/media0 -V '"msm_csid0":1[fmt:UYVY8_2X8/1920x1080 field:none],"msm_vfe0_rdi0":0[fmt:UYVY8_2X8/1920x1080 field:none]'
gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=1 ! 'video/x-raw,format=UYVY,width=1920,height=1080' ! jpegenc ! filesink location=image01.jpg
The last command just hangs instead of producing a picture in
image01.jpg. Can you please check if this works for you on your board?
Regards
Luca
>
> The changes are verified on SC7280 qcs6490-rb3gen2-vision board,
> the base dts for qcs6490-rb3gen2 is:
> https://lore.kernel.org/all/20231103184655.23555-1-quic_kbajaj@quicinc.com/
>
> V1 for this series: https://lore.kernel.org/linux-arm-msm/20240629-camss_first_post_linux_next-v1-0-bc798edabc3a@quicinc.com/
>
> Changes in V2:
> 1) Improved indentation/formatting.
> 2) Removed _src clocks and misleading code comments.
> 3) Added name fields for power domains and csid register offset in DTSI.
> 4) Dropped minItems field from YAML file.
> 5) Listed changes in alphabetical order.
> 6) Updated description and commit text to reflect changes
> 7) Changed the compatible string from imx412 to imx577.
> 8) Added board-specific enablement changes in the newly created vision
> board DTSI file.
> 9) Fixed bug encountered during testing.
> 10) Moved logically independent changes to a new/seprate patch.
> 11) Removed cci0 as no sensor is on this port and MCLK2, which was a
> copy-paste error from the RB5 board reference.
> 12) Added power rails, referencing the RB5 board.
> 13) Discarded Patch 5/6 completely (not required).
> 14) Removed unused enums.
>
> To: Robert Foss <rfoss@kernel.org>
> To: Todor Tomov <todor.too@gmail.com>
> To: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
> To: Mauro Carvalho Chehab <mchehab@kernel.org>
> To: Rob Herring <robh@kernel.org>
> To: Krzysztof Kozlowski <krzk+dt@kernel.org>
> To: Conor Dooley <conor+dt@kernel.org>
> To: Kapatrala Syed <akapatra@quicinc.com>
> To: Hariram Purushothaman <hariramp@quicinc.com>
> To: Bjorn Andersson <andersson@kernel.org>
> To: Konrad Dybcio <konradybcio@kernel.org>
> To: Hans Verkuil <hverkuil-cisco@xs4all.nl>
> To: cros-qcom-dts-watchers@chromium.org
> To: Catalin Marinas <catalin.marinas@arm.com>
> To: Will Deacon <will@kernel.org>
> Cc: linux-arm-msm@vger.kernel.org
> Cc: linux-media@vger.kernel.org
> Cc: devicetree@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Cc: linux-arm-kernel@lists.infradead.org
>
> Test-by: Vikram Sharma <quic_vikramsa@quicinc.com>
> Signed-off-by: Vikram Sharma <quic_vikramsa@quicinc.com>
> ---
> Suresh Vankadara (1):
> media: qcom: camss: Add support for camss driver on SC7280
>
> Vikram Sharma (9):
> media: dt-bindings: media: camss: Add qcom,sc7280-camss binding
> media: dt-bindings: media: qcs6490-rb3gen2-vision-mezzanine: Add dt bindings
> media: qcom: camss: Fix potential crash if domain attach fails
> media: qcom: camss: Sort CAMSS version enums and compatible strings
> media: qcom: camss: Add camss_link_entities_v2
> arm64: dts: qcom: sc7280: Add support for camss
> arm64: dts: qcom: qcs6490-rb3gen2-vision-mezzanine: Enable IMX577 sensor
> arm64: dts: qcom: sc7280: Add default and suspend states for GPIO
> arm64: defconfig: Enable camcc driver for SC7280
>
> Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
> .../bindings/media/qcom,sc7280-camss.yaml | 441 +++++++++++++++++++++
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> .../dts/qcom/qcs6490-rb3gen2-vision-mezzanine.dts | 61 +++
> arch/arm64/boot/dts/qcom/sc7280.dtsi | 208 ++++++++++
> arch/arm64/configs/defconfig | 1 +
> drivers/media/platform/qcom/camss/camss-csid.c | 1 -
> .../platform/qcom/camss/camss-csiphy-3ph-1-0.c | 13 +-
> drivers/media/platform/qcom/camss/camss-csiphy.c | 5 +
> drivers/media/platform/qcom/camss/camss-csiphy.h | 1 +
> drivers/media/platform/qcom/camss/camss-vfe.c | 8 +-
> drivers/media/platform/qcom/camss/camss.c | 400 ++++++++++++++++++-
> drivers/media/platform/qcom/camss/camss.h | 1 +
> 13 files changed, 1131 insertions(+), 11 deletions(-)
> ---
> base-commit: fdadd93817f124fd0ea6ef251d4a1068b7feceba
> change-id: 20240904-camss_on_sc7280_rb3gen2_vision_v2_patches-15c195fb3f12
>
> Best regards,
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 00/10] (no cover subject)
2024-09-30 10:52 ` Luca Weiss
@ 2024-09-30 11:54 ` Bryan O'Donoghue
2024-10-01 8:24 ` Luca Weiss
0 siblings, 1 reply; 33+ messages in thread
From: Bryan O'Donoghue @ 2024-09-30 11:54 UTC (permalink / raw)
To: Luca Weiss, Vikram Sharma, Robert Foss, Todor Tomov,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Suresh Vankadara, Trishansh Bhardwaj, stable,
Hariram Purushothaman
On 30/09/2024 11:52, Luca Weiss wrote:
> On Wed Sep 4, 2024 at 1:10 PM CEST, Vikram Sharma wrote:
>> SC7280 is a Qualcomm SoC. This series adds support to
>> bring up the CSIPHY, CSID, VFE/RDI interfaces in SC7280.
>>
>> SC7280 provides
>>
>> - 3 x VFE, 3 RDI per VFE
>> - 2 x VFE Lite, 4 RDI per VFE
>> - 3 x CSID
>> - 2 x CSID Lite
>> - 5 x CSI PHY
>
> Hi Vikram,
>
> I tried this on my QCM6490 Fairphone 5 smartphone.
>
> Unfortunately I couldn't get e.g. CSID test pattern out of camss. I've
> tested this patchset on v6.11.
>
> These commands did work on an older sc7280 camss patchset (which was
> never sent to the lists). Can you please take a look?
>
> v4l2-ctl -d /dev/v4l-subdev5 -c test_pattern=1
> media-ctl -d /dev/media0 -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
> media-ctl -d /dev/media0 -V '"msm_csid0":1[fmt:UYVY8_2X8/1920x1080 field:none],"msm_vfe0_rdi0":0[fmt:UYVY8_2X8/1920x1080 field:none]'
> gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=1 ! 'video/x-raw,format=UYVY,width=1920,height=1080' ! jpegenc ! filesink location=image01.jpg
Here's what I have for rb5
# CSID0 TPG RB5
media-ctl --reset
yavta --no-query -w '0x009f0903 2' /dev/v4l-subdev6
yavta --list /dev/v4l-subdev6
media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
media-ctl -d /dev/media0 -p
Maybe on FP5 ...
media-ctl --reset
yavta --no-query -w '0x009f0903 2' /dev/v4l-subdev5
yavta --list /dev/v4l-subdev5
media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
media-ctl -d /dev/media0 -p
?
---
bod
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 00/10] (no cover subject)
2024-09-30 11:54 ` Bryan O'Donoghue
@ 2024-10-01 8:24 ` Luca Weiss
2024-10-01 8:51 ` Vikram Sharma
2024-10-01 9:30 ` Bryan O'Donoghue
0 siblings, 2 replies; 33+ messages in thread
From: Luca Weiss @ 2024-10-01 8:24 UTC (permalink / raw)
To: Bryan O'Donoghue, Vikram Sharma, Robert Foss, Todor Tomov,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Suresh Vankadara, Trishansh Bhardwaj, stable,
Hariram Purushothaman
On Mon Sep 30, 2024 at 1:54 PM CEST, Bryan O'Donoghue wrote:
> On 30/09/2024 11:52, Luca Weiss wrote:
> > On Wed Sep 4, 2024 at 1:10 PM CEST, Vikram Sharma wrote:
> >> SC7280 is a Qualcomm SoC. This series adds support to
> >> bring up the CSIPHY, CSID, VFE/RDI interfaces in SC7280.
> >>
> >> SC7280 provides
> >>
> >> - 3 x VFE, 3 RDI per VFE
> >> - 2 x VFE Lite, 4 RDI per VFE
> >> - 3 x CSID
> >> - 2 x CSID Lite
> >> - 5 x CSI PHY
> >
> > Hi Vikram,
> >
> > I tried this on my QCM6490 Fairphone 5 smartphone.
> >
> > Unfortunately I couldn't get e.g. CSID test pattern out of camss. I've
> > tested this patchset on v6.11.
> >
> > These commands did work on an older sc7280 camss patchset (which was
> > never sent to the lists). Can you please take a look?
> >
> > v4l2-ctl -d /dev/v4l-subdev5 -c test_pattern=1
> > media-ctl -d /dev/media0 -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
> > media-ctl -d /dev/media0 -V '"msm_csid0":1[fmt:UYVY8_2X8/1920x1080 field:none],"msm_vfe0_rdi0":0[fmt:UYVY8_2X8/1920x1080 field:none]'
> > gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=1 ! 'video/x-raw,format=UYVY,width=1920,height=1080' ! jpegenc ! filesink location=image01.jpg
>
> Here's what I have for rb5
>
> # CSID0 TPG RB5
> media-ctl --reset
> yavta --no-query -w '0x009f0903 2' /dev/v4l-subdev6
> yavta --list /dev/v4l-subdev6
> media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
> media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
> media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
> media-ctl -d /dev/media0 -p
>
> Maybe on FP5 ...
>
> media-ctl --reset
> yavta --no-query -w '0x009f0903 2' /dev/v4l-subdev5
> yavta --list /dev/v4l-subdev5
> media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
> media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
> media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
> media-ctl -d /dev/media0 -p
Hi Bryan!
These commands are to set up the pipeline, and what then to grab an
image from it?
I tried this, but it also just hangs:
$ yavta -B capture-mplane --capture=3 -n 3 -f SRGGB10P -s 4056x3040 /dev/video0 --file=foo-#.bin
Device /dev/video0 opened.
Device `Qualcomm Camera Subsystem' on `platform:acb3000.camss' (driver 'qcom-camss') supports video, capture, with mplanes.
Video format set: SRGGB10P (41415270) 4056x3040 field none, 1 planes:
* Stride 5072, buffer size 15418880
Video format: SRGGB10P (41415270) 4056x3040 field none, 1 planes:
* Stride 5072, buffer size 15418880
3 buffers requested.
length: 1 offset: 3326519176 timestamp type/source: mono/EoF
Buffer 0/0 mapped at address 0xffffa0c00000.
length: 1 offset: 3326519176 timestamp type/source: mono/EoF
Buffer 1/0 mapped at address 0xffff9fc08000.
length: 1 offset: 3326519176 timestamp type/source: mono/EoF
Buffer 2/0 mapped at address 0xffff9ec10000.
Regards
Luca
>
> ?
>
> ---
> bod
^ permalink raw reply [flat|nested] 33+ messages in thread
* RE: [PATCH 00/10] (no cover subject)
2024-10-01 8:24 ` Luca Weiss
@ 2024-10-01 8:51 ` Vikram Sharma
2024-10-01 9:30 ` Bryan O'Donoghue
1 sibling, 0 replies; 33+ messages in thread
From: Vikram Sharma @ 2024-10-01 8:51 UTC (permalink / raw)
To: Luca Weiss, bryan.odonoghue@linaro.org, Vikram Sharma (QUIC),
Robert Foss, Todor Tomov, Mauro Carvalho Chehab, Rob Herring,
Krzysztof Kozlowski, Conor Dooley,
Azam Sadiq Pasha Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers@chromium.org, Catalin Marinas, Will Deacon
Cc: linux-arm-msm@vger.kernel.org, linux-media@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, Suresh Vankadara (QUIC),
Trishansh Bhardwaj (QUIC), stable@vger.kernel.org,
Hariram Purushothaman (QUIC)
> On Mon Sep 30, 2024 at 1:54 PM CEST, Bryan O'Donoghue wrote:
>>> On 30/09/2024 11:52, Weiss wrote:
>> > On Wed Sep 4, 2024 at 1:10 PM CEST, Vikram Sharma wrote:
>> >> SC7280 is a Qualcomm SoC. This series adds support to bring up the
>> >> CSIPHY, CSID, VFE/RDI interfaces in SC7280.
>> >>
>> >> SC7280 provides
>> >>
>> >> - 3 x VFE, 3 RDI per VFE
>> >> - 2 x VFE Lite, 4 RDI per VFE
>> >> - 3 x CSID
>> >> - 2 x CSID Lite
>> >> - 5 x CSI PHY
>> >
>> > Hi Vikram,
>> >
>> > I tried this on my QCM6490 Fairphone 5 smartphone.
>> >
>> > Unfortunately I couldn't get e.g. CSID test pattern out of camss.
>> > I've tested this patchset on v6.11.
>> >
>> > These commands did work on an older sc7280 camss patchset (which was
>> > never sent to the lists). Can you please take a look?
>> >
>> > v4l2-ctl -d /dev/v4l-subdev5 -c test_pattern=1 media-ctl -d
>> > /dev/media0 -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
>> > media-ctl -d /dev/media0 -V '"msm_csid0":1[fmt:UYVY8_2X8/1920x1080 field:none],"msm_vfe0_rdi0":0[fmt:UYVY8_2X8/1920x1080 field:none]'
>> > gst-launch-1.0 v4l2src device=/dev/video0 num-buffers=1 !
>> > 'video/x-raw,format=UYVY,width=1920,height=1080' ! jpegenc !
>> > filesink location=image01.jpg
>>
>> Here's what I have for rb5
>>
>> # CSID0 TPG RB5
>> media-ctl --reset
>> yavta --no-query -w '0x009f0903 2' /dev/v4l-subdev6 yavta --list
>> /dev/v4l-subdev6 media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
>> media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
>> media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
>> media-ctl -d /dev/media0 -p
>>
>> Maybe on FP5 ...
>>
>> media-ctl --reset
>> yavta --no-query -w '0x009f0903 2' /dev/v4l-subdev5 yavta --list
>> /dev/v4l-subdev5 media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
>> media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
>> media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
>> media-ctl -d /dev/media0 -p
>Hi Bryan!
>
>These commands are to set up the pipeline, and what then to grab an image from it?
>
>I tried this, but it also just hangs:
>
>$ yavta -B capture-mplane --capture=3 -n 3 -f SRGGB10P -s 4056x3040 /dev/video0 --file=foo-#.bin Device /dev/video0 opened.
>Device `Qualcomm Camera Subsystem' on `platform:acb3000.camss' (driver 'qcom-camss') supports video, capture, with mplanes.
>Video format set: SRGGB10P (41415270) 4056x3040 field none, 1 planes:
> * Stride 5072, buffer size 15418880
>Video format: SRGGB10P (41415270) 4056x3040 field none, 1 planes:
> * Stride 5072, buffer size 15418880
>3 buffers requested.
>length: 1 offset: 3326519176 timestamp type/source: mono/EoF Buffer 0/0 mapped at address 0xffffa0c00000.
>length: 1 offset: 3326519176 timestamp type/source: mono/EoF Buffer 1/0 mapped at address 0xffff9fc08000.
>length: 1 offset: 3326519176 timestamp type/source: mono/EoF Buffer 2/0 mapped at address 0xffff9ec10000.
>
>Regards
>Luca
Hi Luca,
We will try to reproduce this internally and get back.
Thanks,
Vikram
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 00/10] (no cover subject)
2024-10-01 8:24 ` Luca Weiss
2024-10-01 8:51 ` Vikram Sharma
@ 2024-10-01 9:30 ` Bryan O'Donoghue
2024-10-01 11:39 ` Luca Weiss
1 sibling, 1 reply; 33+ messages in thread
From: Bryan O'Donoghue @ 2024-10-01 9:30 UTC (permalink / raw)
To: Luca Weiss, Vikram Sharma, Robert Foss, Todor Tomov,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Suresh Vankadara, Trishansh Bhardwaj, stable,
Hariram Purushothaman
On 01/10/2024 09:24, Luca Weiss wrote:
>> media-ctl --reset
>> yavta --no-query -w '0x009f0903 2' /dev/v4l-subdev5
>> yavta --list /dev/v4l-subdev5
>> media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
>> media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
>> media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
>> media-ctl -d /dev/media0 -p
> Hi Bryan!
>
> These commands are to set up the pipeline, and what then to grab an
> image from it?
>
> I tried this, but it also just hangs:
>
> $ yavta -B capture-mplane --capture=3 -n 3 -f SRGGB10P -s 4056x3040 /dev/video0 --file=foo-#.bin
> Device /dev/video0 opened.
> Device `Qualcomm Camera Subsystem' on `platform:acb3000.camss' (driver 'qcom-camss') supports video, capture, with mplanes.
> Video format set: SRGGB10P (41415270) 4056x3040 field none, 1 planes:
> * Stride 5072, buffer size 15418880
> Video format: SRGGB10P (41415270) 4056x3040 field none, 1 planes:
> * Stride 5072, buffer size 15418880
> 3 buffers requested.
> length: 1 offset: 3326519176 timestamp type/source: mono/EoF
> Buffer 0/0 mapped at address 0xffffa0c00000.
> length: 1 offset: 3326519176 timestamp type/source: mono/EoF
> Buffer 1/0 mapped at address 0xffff9fc08000.
> length: 1 offset: 3326519176 timestamp type/source: mono/EoF
> Buffer 2/0 mapped at address 0xffff9ec10000.
No there's no CSIPHY in that case, it should be the TPG inside of CSID0
@ /dev/v4l-subdev5 which generates the data.
Just for verification purposes do a `media-ctl -d /dev/media0 -p` and
confirm that /dev/v4l-subdev5 == csid0
Rewrite the above as
export csid0=v4l-subdevX
media-ctl --reset
yavta --no-query -w '0x009f0903 2' /dev/$csid0
yavta --list /dev/$csid0
media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
media-ctl -d /dev/media0 -p
basically you have to make sure you've set the TPG on the correct subdev..
Something like in media-ctl subdev4 in my case.
- entity 13: msm_csid0 (5 pads, 36 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev4
=>
export csid0=v4l-subdev4
media-ctl --reset
yavta --no-query -w '0x009f0903 2' /dev/$csid0
yavta --list /dev/$csid0
media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
media-ctl -d /dev/media0 -p
---
bod
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 00/10] (no cover subject)
2024-10-01 9:30 ` Bryan O'Donoghue
@ 2024-10-01 11:39 ` Luca Weiss
2024-10-01 12:49 ` Bryan O'Donoghue
0 siblings, 1 reply; 33+ messages in thread
From: Luca Weiss @ 2024-10-01 11:39 UTC (permalink / raw)
To: Bryan O'Donoghue, Vikram Sharma, Robert Foss, Todor Tomov,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Suresh Vankadara, Trishansh Bhardwaj, stable,
Hariram Purushothaman
On Tue Oct 1, 2024 at 11:30 AM CEST, Bryan O'Donoghue wrote:
> On 01/10/2024 09:24, Luca Weiss wrote:
> >> media-ctl --reset
> >> yavta --no-query -w '0x009f0903 2' /dev/v4l-subdev5
> >> yavta --list /dev/v4l-subdev5
> >> media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
> >> media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
> >> media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
> >> media-ctl -d /dev/media0 -p
> > Hi Bryan!
> >
> > These commands are to set up the pipeline, and what then to grab an
> > image from it?
> >
> > I tried this, but it also just hangs:
> >
> > $ yavta -B capture-mplane --capture=3 -n 3 -f SRGGB10P -s 4056x3040 /dev/video0 --file=foo-#.bin
> > Device /dev/video0 opened.
> > Device `Qualcomm Camera Subsystem' on `platform:acb3000.camss' (driver 'qcom-camss') supports video, capture, with mplanes.
> > Video format set: SRGGB10P (41415270) 4056x3040 field none, 1 planes:
> > * Stride 5072, buffer size 15418880
> > Video format: SRGGB10P (41415270) 4056x3040 field none, 1 planes:
> > * Stride 5072, buffer size 15418880
> > 3 buffers requested.
> > length: 1 offset: 3326519176 timestamp type/source: mono/EoF
> > Buffer 0/0 mapped at address 0xffffa0c00000.
> > length: 1 offset: 3326519176 timestamp type/source: mono/EoF
> > Buffer 1/0 mapped at address 0xffff9fc08000.
> > length: 1 offset: 3326519176 timestamp type/source: mono/EoF
> > Buffer 2/0 mapped at address 0xffff9ec10000.
>
> No there's no CSIPHY in that case, it should be the TPG inside of CSID0
> @ /dev/v4l-subdev5 which generates the data.
I understand the lack of csiphy involvement here, but how's this
relevant to reading data from /dev/video0? That's the vfe which gets
hooked up with the media-ctl commands to my understanding?
And v4l-subdev5 is msm_csid0 on my device.
>
> Just for verification purposes do a `media-ctl -d /dev/media0 -p` and
> confirm that /dev/v4l-subdev5 == csid0
>
> Rewrite the above as
>
> export csid0=v4l-subdevX
>
> media-ctl --reset
> yavta --no-query -w '0x009f0903 2' /dev/$csid0
> yavta --list /dev/$csid0
> media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
> media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
> media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
> media-ctl -d /dev/media0 -p
>
> basically you have to make sure you've set the TPG on the correct subdev..
>
> Something like in media-ctl subdev4 in my case.
>
> - entity 13: msm_csid0 (5 pads, 36 links, 0 routes)
> type V4L2 subdev subtype Unknown flags 0
> device node name /dev/v4l-subdev4
>
Sure, here's the output from the commands:
fairphone-fp5:~$ export csid0=v4l-subdev5
fairphone-fp5:~$ media-ctl --reset
fairphone-fp5:~$ yavta --no-query -w '0x009f0903 2' /dev/$csid0
Device /dev/v4l-subdev5 opened.
Control 0x009f0903 set to 2, is 2
fairphone-fp5:~$ yavta --list /dev/$csid0
Device /dev/v4l-subdev5 opened.
--- Image Processing Controls (class 0x009f0001) ---
control 0x009f0903 `Test Pattern' min 0 max 9 step 1 default 0 current 2
0: Disabled
1: Incrementing
2: Alternating 0x55/0xAA (*)
3: All Zeros 0x00
4: All Ones 0xFF
5: Pseudo-random Data
6: User Specified
7: Complex pattern
8: Color box
9: Color bars
1 control found.
Unable to get format: Not a tty (25).
fairphone-fp5:~$ media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
fairphone-fp5:~$ media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
fairphone-fp5:~$ media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
fairphone-fp5:~$ media-ctl -d /dev/media0 -p
Media controller API version 6.11.0
Media device information
------------------------
driver qcom-camss
model Qualcomm Camera Subsystem
serial
bus info platform:acb3000.camss
hw revision 0x0
driver version 6.11.0
Device topology
- entity 1: msm_csiphy0 (2 pads, 5 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev0
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_csid0":0 []
-> "msm_csid1":0 []
-> "msm_csid2":0 []
-> "msm_csid3":0 []
-> "msm_csid4":0 []
- entity 4: msm_csiphy1 (2 pads, 5 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev1
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_csid0":0 []
-> "msm_csid1":0 []
-> "msm_csid2":0 []
-> "msm_csid3":0 []
-> "msm_csid4":0 []
- entity 7: msm_csiphy2 (2 pads, 5 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev2
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_csid0":0 []
-> "msm_csid1":0 []
-> "msm_csid2":0 []
-> "msm_csid3":0 []
-> "msm_csid4":0 []
- entity 10: msm_csiphy3 (2 pads, 5 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev3
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_csid0":0 []
-> "msm_csid1":0 []
-> "msm_csid2":0 []
-> "msm_csid3":0 []
-> "msm_csid4":0 []
- entity 13: msm_csiphy4 (2 pads, 5 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev4
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_csid0":0 []
-> "msm_csid1":0 []
-> "msm_csid2":0 []
-> "msm_csid3":0 []
-> "msm_csid4":0 []
- entity 16: msm_csid0 (5 pads, 22 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev5
pad0: Sink
[stream:0 fmt:SRGGB10_1X10/4056x3040 field:none colorspace:srgb]
<- "msm_csiphy0":1 []
<- "msm_csiphy1":1 []
<- "msm_csiphy2":1 []
<- "msm_csiphy3":1 []
<- "msm_csiphy4":1 []
pad1: Source
[stream:0 fmt:SRGGB10_1X10/4056x3040 field:none colorspace:srgb]
-> "msm_vfe0_rdi0":0 [ENABLED]
-> "msm_vfe1_rdi0":0 []
-> "msm_vfe2_rdi0":0 []
-> "msm_vfe3_rdi0":0 []
-> "msm_vfe4_rdi0":0 []
pad2: Source
[stream:0 fmt:SRGGB10_1X10/4056x3040 field:none colorspace:srgb]
-> "msm_vfe0_rdi1":0 []
-> "msm_vfe1_rdi1":0 []
-> "msm_vfe2_rdi1":0 []
-> "msm_vfe3_rdi1":0 []
-> "msm_vfe4_rdi1":0 []
pad3: Source
[stream:0 fmt:SRGGB10_1X10/4056x3040 field:none colorspace:srgb]
-> "msm_vfe0_rdi2":0 []
-> "msm_vfe1_rdi2":0 []
-> "msm_vfe2_rdi2":0 []
-> "msm_vfe3_rdi2":0 []
-> "msm_vfe4_rdi2":0 []
pad4: Source
[stream:0 fmt:SRGGB10_1X10/4056x3040 field:none colorspace:srgb]
-> "msm_vfe3_pix":0 []
-> "msm_vfe4_pix":0 []
- entity 22: msm_csid1 (5 pads, 22 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev6
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
<- "msm_csiphy0":1 []
<- "msm_csiphy1":1 []
<- "msm_csiphy2":1 []
<- "msm_csiphy3":1 []
<- "msm_csiphy4":1 []
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe0_rdi0":0 []
-> "msm_vfe1_rdi0":0 []
-> "msm_vfe2_rdi0":0 []
-> "msm_vfe3_rdi0":0 []
-> "msm_vfe4_rdi0":0 []
pad2: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe0_rdi1":0 []
-> "msm_vfe1_rdi1":0 []
-> "msm_vfe2_rdi1":0 []
-> "msm_vfe3_rdi1":0 []
-> "msm_vfe4_rdi1":0 []
pad3: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe0_rdi2":0 []
-> "msm_vfe1_rdi2":0 []
-> "msm_vfe2_rdi2":0 []
-> "msm_vfe3_rdi2":0 []
-> "msm_vfe4_rdi2":0 []
pad4: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe3_pix":0 []
-> "msm_vfe4_pix":0 []
- entity 28: msm_csid2 (5 pads, 22 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev7
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
<- "msm_csiphy0":1 []
<- "msm_csiphy1":1 []
<- "msm_csiphy2":1 []
<- "msm_csiphy3":1 []
<- "msm_csiphy4":1 []
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe0_rdi0":0 []
-> "msm_vfe1_rdi0":0 []
-> "msm_vfe2_rdi0":0 []
-> "msm_vfe3_rdi0":0 []
-> "msm_vfe4_rdi0":0 []
pad2: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe0_rdi1":0 []
-> "msm_vfe1_rdi1":0 []
-> "msm_vfe2_rdi1":0 []
-> "msm_vfe3_rdi1":0 []
-> "msm_vfe4_rdi1":0 []
pad3: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe0_rdi2":0 []
-> "msm_vfe1_rdi2":0 []
-> "msm_vfe2_rdi2":0 []
-> "msm_vfe3_rdi2":0 []
-> "msm_vfe4_rdi2":0 []
pad4: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe3_pix":0 []
-> "msm_vfe4_pix":0 []
- entity 34: msm_csid3 (5 pads, 22 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev8
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
<- "msm_csiphy0":1 []
<- "msm_csiphy1":1 []
<- "msm_csiphy2":1 []
<- "msm_csiphy3":1 []
<- "msm_csiphy4":1 []
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe0_rdi0":0 []
-> "msm_vfe1_rdi0":0 []
-> "msm_vfe2_rdi0":0 []
-> "msm_vfe3_rdi0":0 []
-> "msm_vfe4_rdi0":0 []
pad2: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe0_rdi1":0 []
-> "msm_vfe1_rdi1":0 []
-> "msm_vfe2_rdi1":0 []
-> "msm_vfe3_rdi1":0 []
-> "msm_vfe4_rdi1":0 []
pad3: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe0_rdi2":0 []
-> "msm_vfe1_rdi2":0 []
-> "msm_vfe2_rdi2":0 []
-> "msm_vfe3_rdi2":0 []
-> "msm_vfe4_rdi2":0 []
pad4: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe3_pix":0 []
-> "msm_vfe4_pix":0 []
- entity 40: msm_csid4 (5 pads, 22 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev9
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
<- "msm_csiphy0":1 []
<- "msm_csiphy1":1 []
<- "msm_csiphy2":1 []
<- "msm_csiphy3":1 []
<- "msm_csiphy4":1 []
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe0_rdi0":0 []
-> "msm_vfe1_rdi0":0 []
-> "msm_vfe2_rdi0":0 []
-> "msm_vfe3_rdi0":0 []
-> "msm_vfe4_rdi0":0 []
pad2: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe0_rdi1":0 []
-> "msm_vfe1_rdi1":0 []
-> "msm_vfe2_rdi1":0 []
-> "msm_vfe3_rdi1":0 []
-> "msm_vfe4_rdi1":0 []
pad3: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe0_rdi2":0 []
-> "msm_vfe1_rdi2":0 []
-> "msm_vfe2_rdi2":0 []
-> "msm_vfe3_rdi2":0 []
-> "msm_vfe4_rdi2":0 []
pad4: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe3_pix":0 []
-> "msm_vfe4_pix":0 []
- entity 46: msm_vfe0_rdi0 (2 pads, 6 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev10
pad0: Sink
[stream:0 fmt:SRGGB10_1X10/4056x3040 field:none colorspace:srgb]
<- "msm_csid0":1 [ENABLED]
<- "msm_csid1":1 []
<- "msm_csid2":1 []
<- "msm_csid3":1 []
<- "msm_csid4":1 []
pad1: Source
[stream:0 fmt:SRGGB10_1X10/4056x3040 field:none colorspace:srgb]
-> "msm_vfe0_video0":0 [ENABLED,IMMUTABLE]
- entity 49: msm_vfe0_video0 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video0
pad0: Sink
<- "msm_vfe0_rdi0":1 [ENABLED,IMMUTABLE]
- entity 55: msm_vfe0_rdi1 (2 pads, 6 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev11
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
<- "msm_csid0":2 []
<- "msm_csid1":2 []
<- "msm_csid2":2 []
<- "msm_csid3":2 []
<- "msm_csid4":2 []
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe0_video1":0 [ENABLED,IMMUTABLE]
- entity 58: msm_vfe0_video1 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video1
pad0: Sink
<- "msm_vfe0_rdi1":1 [ENABLED,IMMUTABLE]
- entity 64: msm_vfe0_rdi2 (2 pads, 6 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev12
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
<- "msm_csid0":3 []
<- "msm_csid1":3 []
<- "msm_csid2":3 []
<- "msm_csid3":3 []
<- "msm_csid4":3 []
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe0_video2":0 [ENABLED,IMMUTABLE]
- entity 67: msm_vfe0_video2 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video2
pad0: Sink
<- "msm_vfe0_rdi2":1 [ENABLED,IMMUTABLE]
- entity 73: msm_vfe1_rdi0 (2 pads, 6 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev13
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
<- "msm_csid0":1 []
<- "msm_csid1":1 []
<- "msm_csid2":1 []
<- "msm_csid3":1 []
<- "msm_csid4":1 []
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe1_video0":0 [ENABLED,IMMUTABLE]
- entity 76: msm_vfe1_video0 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video3
pad0: Sink
<- "msm_vfe1_rdi0":1 [ENABLED,IMMUTABLE]
- entity 82: msm_vfe1_rdi1 (2 pads, 6 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev14
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
<- "msm_csid0":2 []
<- "msm_csid1":2 []
<- "msm_csid2":2 []
<- "msm_csid3":2 []
<- "msm_csid4":2 []
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe1_video1":0 [ENABLED,IMMUTABLE]
- entity 85: msm_vfe1_video1 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video4
pad0: Sink
<- "msm_vfe1_rdi1":1 [ENABLED,IMMUTABLE]
- entity 91: msm_vfe1_rdi2 (2 pads, 6 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev15
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
<- "msm_csid0":3 []
<- "msm_csid1":3 []
<- "msm_csid2":3 []
<- "msm_csid3":3 []
<- "msm_csid4":3 []
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe1_video2":0 [ENABLED,IMMUTABLE]
- entity 94: msm_vfe1_video2 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video5
pad0: Sink
<- "msm_vfe1_rdi2":1 [ENABLED,IMMUTABLE]
- entity 100: msm_vfe2_rdi0 (2 pads, 6 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev16
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
<- "msm_csid0":1 []
<- "msm_csid1":1 []
<- "msm_csid2":1 []
<- "msm_csid3":1 []
<- "msm_csid4":1 []
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe2_video0":0 [ENABLED,IMMUTABLE]
- entity 103: msm_vfe2_video0 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video6
pad0: Sink
<- "msm_vfe2_rdi0":1 [ENABLED,IMMUTABLE]
- entity 109: msm_vfe2_rdi1 (2 pads, 6 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev17
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
<- "msm_csid0":2 []
<- "msm_csid1":2 []
<- "msm_csid2":2 []
<- "msm_csid3":2 []
<- "msm_csid4":2 []
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe2_video1":0 [ENABLED,IMMUTABLE]
- entity 112: msm_vfe2_video1 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video7
pad0: Sink
<- "msm_vfe2_rdi1":1 [ENABLED,IMMUTABLE]
- entity 118: msm_vfe2_rdi2 (2 pads, 6 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev18
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
<- "msm_csid0":3 []
<- "msm_csid1":3 []
<- "msm_csid2":3 []
<- "msm_csid3":3 []
<- "msm_csid4":3 []
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe2_video2":0 [ENABLED,IMMUTABLE]
- entity 121: msm_vfe2_video2 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video8
pad0: Sink
<- "msm_vfe2_rdi2":1 [ENABLED,IMMUTABLE]
- entity 127: msm_vfe3_rdi0 (2 pads, 6 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev19
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
<- "msm_csid0":1 []
<- "msm_csid1":1 []
<- "msm_csid2":1 []
<- "msm_csid3":1 []
<- "msm_csid4":1 []
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe3_video0":0 [ENABLED,IMMUTABLE]
- entity 130: msm_vfe3_video0 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video9
pad0: Sink
<- "msm_vfe3_rdi0":1 [ENABLED,IMMUTABLE]
- entity 136: msm_vfe3_rdi1 (2 pads, 6 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev20
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
<- "msm_csid0":2 []
<- "msm_csid1":2 []
<- "msm_csid2":2 []
<- "msm_csid3":2 []
<- "msm_csid4":2 []
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe3_video1":0 [ENABLED,IMMUTABLE]
- entity 139: msm_vfe3_video1 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video10
pad0: Sink
<- "msm_vfe3_rdi1":1 [ENABLED,IMMUTABLE]
- entity 145: msm_vfe3_rdi2 (2 pads, 6 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev21
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
<- "msm_csid0":3 []
<- "msm_csid1":3 []
<- "msm_csid2":3 []
<- "msm_csid3":3 []
<- "msm_csid4":3 []
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe3_video2":0 [ENABLED,IMMUTABLE]
- entity 148: msm_vfe3_video2 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video11
pad0: Sink
<- "msm_vfe3_rdi2":1 [ENABLED,IMMUTABLE]
- entity 154: msm_vfe3_pix (2 pads, 6 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev22
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb
compose.bounds:(0,0)/1920x1080
compose:(0,0)/1920x1080]
<- "msm_csid0":4 []
<- "msm_csid1":4 []
<- "msm_csid2":4 []
<- "msm_csid3":4 []
<- "msm_csid4":4 []
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb
crop.bounds:(0,0)/1920x1080
crop:(0,0)/1920x1080]
-> "msm_vfe3_video3":0 [ENABLED,IMMUTABLE]
- entity 157: msm_vfe3_video3 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video12
pad0: Sink
<- "msm_vfe3_pix":1 [ENABLED,IMMUTABLE]
- entity 163: msm_vfe4_rdi0 (2 pads, 6 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev23
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
<- "msm_csid0":1 []
<- "msm_csid1":1 []
<- "msm_csid2":1 []
<- "msm_csid3":1 []
<- "msm_csid4":1 []
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe4_video0":0 [ENABLED,IMMUTABLE]
- entity 166: msm_vfe4_video0 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video13
pad0: Sink
<- "msm_vfe4_rdi0":1 [ENABLED,IMMUTABLE]
- entity 172: msm_vfe4_rdi1 (2 pads, 6 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev24
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
<- "msm_csid0":2 []
<- "msm_csid1":2 []
<- "msm_csid2":2 []
<- "msm_csid3":2 []
<- "msm_csid4":2 []
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe4_video1":0 [ENABLED,IMMUTABLE]
- entity 175: msm_vfe4_video1 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video14
pad0: Sink
<- "msm_vfe4_rdi1":1 [ENABLED,IMMUTABLE]
- entity 181: msm_vfe4_rdi2 (2 pads, 6 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev25
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
<- "msm_csid0":3 []
<- "msm_csid1":3 []
<- "msm_csid2":3 []
<- "msm_csid3":3 []
<- "msm_csid4":3 []
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb]
-> "msm_vfe4_video2":0 [ENABLED,IMMUTABLE]
- entity 184: msm_vfe4_video2 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video15
pad0: Sink
<- "msm_vfe4_rdi2":1 [ENABLED,IMMUTABLE]
- entity 190: msm_vfe4_pix (2 pads, 6 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
device node name /dev/v4l-subdev26
pad0: Sink
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb
compose.bounds:(0,0)/1920x1080
compose:(0,0)/1920x1080]
<- "msm_csid0":4 []
<- "msm_csid1":4 []
<- "msm_csid2":4 []
<- "msm_csid3":4 []
<- "msm_csid4":4 []
pad1: Source
[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb
crop.bounds:(0,0)/1920x1080
crop:(0,0)/1920x1080]
-> "msm_vfe4_video3":0 [ENABLED,IMMUTABLE]
- entity 193: msm_vfe4_video3 (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video16
pad0: Sink
<- "msm_vfe4_pix":1 [ENABLED,IMMUTABLE]
> =>
>
> export csid0=v4l-subdev4
>
> media-ctl --reset
> yavta --no-query -w '0x009f0903 2' /dev/$csid0
> yavta --list /dev/$csid0
> media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
> media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
> media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
> media-ctl -d /dev/media0 -p
>
>
> ---
> bod
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 00/10] (no cover subject)
2024-10-01 11:39 ` Luca Weiss
@ 2024-10-01 12:49 ` Bryan O'Donoghue
2024-10-01 14:22 ` Luca Weiss
0 siblings, 1 reply; 33+ messages in thread
From: Bryan O'Donoghue @ 2024-10-01 12:49 UTC (permalink / raw)
To: Luca Weiss, Vikram Sharma, Robert Foss, Todor Tomov,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Suresh Vankadara, Trishansh Bhardwaj, stable,
Hariram Purushothaman
On 01/10/2024 12:39, Luca Weiss wrote:
> And v4l-subdev5 is msm_csid0 on my device.
<snip>
>
> - entity 16: msm_csid0 (5 pads, 22 links, 0 routes)
> type V4L2 subdev subtype Unknown flags 0
> device node name /dev/v4l-subdev5
> pad0: Sink
> [stream:0 fmt:SRGGB10_1X10/4056x3040 field:none colorspace:srgb]
> <- "msm_csiphy0":1 []
> <- "msm_csiphy1":1 []
> <- "msm_csiphy2":1 []
> <- "msm_csiphy3":1 []
> <- "msm_csiphy4":1 []
> pad1: Source
> [stream:0 fmt:SRGGB10_1X10/4056x3040 field:none colorspace:srgb]
> -> "msm_vfe0_rdi0":0 [ENABLED]
> -> "msm_vfe1_rdi0":0 []
> -> "msm_vfe2_rdi0":0 []
> -> "msm_vfe3_rdi0":0 []
> -> "msm_vfe4_rdi0":0 []
<snip>
media-ctl --reset
yavta --no-query -w '0x009f0903 2' /dev/v4l-subdev5
yavta --list /dev/v4l-subdev5
media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
media-ctl -d /dev/media0 -p
That command list and this
yavta -B capture-mplane -c -I -n 5 -f SRGGB10P -s 4056x3040 -F /dev/video0
should work.
I have to test Vladimir's two patches. I'll verify rb5 TPG while I'm at
it, perhaps the error is not sdm670 specific.
That said last time I tested it, it worked and no changes have gone in,
in the meantime.
---
bod
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 00/10] (no cover subject)
2024-10-01 12:49 ` Bryan O'Donoghue
@ 2024-10-01 14:22 ` Luca Weiss
2024-10-01 14:58 ` Bryan O'Donoghue
0 siblings, 1 reply; 33+ messages in thread
From: Luca Weiss @ 2024-10-01 14:22 UTC (permalink / raw)
To: Bryan O'Donoghue, Vikram Sharma, Robert Foss, Todor Tomov,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon,
Matti Lehtimäki
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Suresh Vankadara, Trishansh Bhardwaj, stable,
Hariram Purushothaman
On Tue Oct 1, 2024 at 2:49 PM CEST, Bryan O'Donoghue wrote:
> On 01/10/2024 12:39, Luca Weiss wrote:
>
> > And v4l-subdev5 is msm_csid0 on my device.
>
> <snip>
>
> >
> > - entity 16: msm_csid0 (5 pads, 22 links, 0 routes)
> > type V4L2 subdev subtype Unknown flags 0
> > device node name /dev/v4l-subdev5
> > pad0: Sink
> > [stream:0 fmt:SRGGB10_1X10/4056x3040 field:none colorspace:srgb]
> > <- "msm_csiphy0":1 []
> > <- "msm_csiphy1":1 []
> > <- "msm_csiphy2":1 []
> > <- "msm_csiphy3":1 []
> > <- "msm_csiphy4":1 []
> > pad1: Source
> > [stream:0 fmt:SRGGB10_1X10/4056x3040 field:none colorspace:srgb]
> > -> "msm_vfe0_rdi0":0 [ENABLED]
> > -> "msm_vfe1_rdi0":0 []
> > -> "msm_vfe2_rdi0":0 []
> > -> "msm_vfe3_rdi0":0 []
> > -> "msm_vfe4_rdi0":0 []
>
> <snip>
>
> media-ctl --reset
> yavta --no-query -w '0x009f0903 2' /dev/v4l-subdev5
> yavta --list /dev/v4l-subdev5
> media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]'
> media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]'
> media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]'
> media-ctl -d /dev/media0 -p
>
> That command list and this
>
> yavta -B capture-mplane -c -I -n 5 -f SRGGB10P -s 4056x3040 -F /dev/video0
>
> should work.
Yeah, unfortunately this is still hanging... Let's also see what Vikram
sees on their board.
fairphone-fp5:~$ yavta -B capture-mplane -c -I -n 5 -f SRGGB10P -s 4056x3040 -F /dev/video0
Device /dev/video0 opened.
Device `Qualcomm Camera Subsystem' on `platform:acb3000.camss' (driver 'qcom-camss') supports video, capture, with mplanes.
Video format set: SRGGB10P (41415270) 4056x3040 field none, 1 planes:
* Stride 5072, buffer size 15418880
Video format: SRGGB10P (41415270) 4056x3040 field none, 1 planes:
* Stride 5072, buffer size 15418880
5 buffers requested.
length: 1 offset: 3442938648 timestamp type/source: mono/EoF
Buffer 0/0 mapped at address 0xffff85e00000.
length: 1 offset: 3442938648 timestamp type/source: mono/EoF
Buffer 1/0 mapped at address 0xffff84e08000.
length: 1 offset: 3442938648 timestamp type/source: mono/EoF
Buffer 2/0 mapped at address 0xffff83e10000.
length: 1 offset: 3442938648 timestamp type/source: mono/EoF
Buffer 3/0 mapped at address 0xffff82e18000.
length: 1 offset: 3442938648 timestamp type/source: mono/EoF
Buffer 4/0 mapped at address 0xffff81e20000.
> I have to test Vladimir's two patches. I'll verify rb5 TPG while I'm at
> it, perhaps the error is not sdm670 specific.
FWIW this is not sdm670 but sc7280/qcm6490 here :) But I didn't follow
the sdm670 thread so maybe you mean something there.
>
> That said last time I tested it, it worked and no changes have gone in,
> in the meantime.
I also had the test pattern working on a 6.8-based kernel on this device
with camss patches from Matti Lehtimäki.
Regards
Luca
>
> ---
> bod
^ permalink raw reply [flat|nested] 33+ messages in thread
* Re: [PATCH 00/10] (no cover subject)
2024-10-01 14:22 ` Luca Weiss
@ 2024-10-01 14:58 ` Bryan O'Donoghue
0 siblings, 0 replies; 33+ messages in thread
From: Bryan O'Donoghue @ 2024-10-01 14:58 UTC (permalink / raw)
To: Luca Weiss, Vikram Sharma, Robert Foss, Todor Tomov,
Mauro Carvalho Chehab, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Kapatrala Syed, Hariram Purushothaman,
Bjorn Andersson, Konrad Dybcio, Hans Verkuil,
cros-qcom-dts-watchers, Catalin Marinas, Will Deacon,
Matti Lehtimäki
Cc: linux-arm-msm, linux-media, devicetree, linux-kernel,
linux-arm-kernel, Suresh Vankadara, Trishansh Bhardwaj, stable,
Hariram Purushothaman
On 01/10/2024 15:22, Luca Weiss wrote:
>> I have to test Vladimir's two patches. I'll verify rb5 TPG while I'm at
>> it, perhaps the error is not sdm670 specific.
> FWIW this is not sdm670 but sc7280/qcm6490 here 🙂 But I didn't follow
> the sdm670 thread so maybe you mean something there.
Yes I sc7280/sm8250.
Freudian slip, when you type one thing but you mean your mother.
---
bod
^ permalink raw reply [flat|nested] 33+ messages in thread
end of thread, other threads:[~2024-10-01 14:58 UTC | newest]
Thread overview: 33+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-04 11:10 [PATCH 00/10] (no cover subject) Vikram Sharma
2024-09-04 11:10 ` [PATCH 01/10] media: dt-bindings: media: camss: Add qcom,sc7280-camss binding Vikram Sharma
2024-09-04 11:28 ` Krzysztof Kozlowski
2024-09-05 6:47 ` Krzysztof Kozlowski
2024-09-04 11:10 ` [PATCH 02/10] media: dt-bindings: media: qcs6490-rb3gen2-vision-mezzanine: Add dt bindings Vikram Sharma
2024-09-04 11:29 ` Krzysztof Kozlowski
2024-09-04 11:10 ` [PATCH 03/10] media: qcom: camss: Fix potential crash if domain attach fails Vikram Sharma
2024-09-05 12:13 ` Konrad Dybcio
2024-09-04 11:10 ` [PATCH 04/10] media: qcom: camss: Sort CAMSS version enums and compatible strings Vikram Sharma
2024-09-04 14:44 ` Bryan O'Donoghue
2024-09-04 11:10 ` [PATCH 05/10] media: qcom: camss: Add support for camss driver on SC7280 Vikram Sharma
2024-09-04 11:10 ` [PATCH 06/10] media: qcom: camss: Add camss_link_entities_v2 Vikram Sharma
2024-09-04 14:50 ` Bryan O'Donoghue
2024-09-04 11:10 ` [PATCH 07/10] arm64: dts: qcom: sc7280: Add support for camss Vikram Sharma
2024-09-04 11:31 ` Krzysztof Kozlowski
2024-09-04 11:10 ` [PATCH 08/10] arm64: dts: qcom: qcs6490-rb3gen2-vision-mezzanine: Enable IMX577 sensor Vikram Sharma
2024-09-04 11:32 ` Krzysztof Kozlowski
2024-09-04 11:10 ` [PATCH 09/10] arm64: dts: qcom: sc7280: Add default and suspend states for GPIO Vikram Sharma
2024-09-04 11:33 ` Krzysztof Kozlowski
2024-09-04 11:10 ` [PATCH 10/10] arm64: defconfig: Enable camcc driver for SC7280 Vikram Sharma
2024-09-04 11:33 ` Krzysztof Kozlowski
2024-09-04 11:21 ` [PATCH 00/10] (no cover subject) Bryan O'Donoghue
2024-09-04 11:22 ` Bryan O'Donoghue
2024-09-04 13:36 ` Rob Herring (Arm)
2024-09-30 10:52 ` Luca Weiss
2024-09-30 11:54 ` Bryan O'Donoghue
2024-10-01 8:24 ` Luca Weiss
2024-10-01 8:51 ` Vikram Sharma
2024-10-01 9:30 ` Bryan O'Donoghue
2024-10-01 11:39 ` Luca Weiss
2024-10-01 12:49 ` Bryan O'Donoghue
2024-10-01 14:22 ` Luca Weiss
2024-10-01 14:58 ` Bryan O'Donoghue
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).