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-v...
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,
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; }
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;
} camss->genpd_link = device_link_add(camss->dev, camss->genpd, DL_FLAG_STATELESS | DL_FLAG_PM_RUNTIME |goto fail_pm_attach;
@@ -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
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
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-v...
Changes in V2:
- Improved indentation/formatting.
- Removed _src clocks and misleading code comments.
- Added name fields for power domains and csid register offset in DTSI.
- Dropped minItems field from YAML file.
- Listed changes in alphabetical order.
- Updated description and commit text to reflect changes
- Changed the compatible string from imx412 to imx577.
- Added board-specific enablement changes in the newly created vision board DTSI file.
- Fixed bug encountered during testing.
- Moved logically independent changes to a new/seprate patch.
- Removed cci0 as no sensor is on this port and MCLK2, which was a copy-paste error from the RB5 board reference.
- Added power rails, referencing the RB5 board.
- Discarded Patch 5/6 completely (not required).
- 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#
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-v...
Changes in V2:
- Improved indentation/formatting.
- Removed _src clocks and misleading code comments.
- Added name fields for power domains and csid register offset in DTSI.
- Dropped minItems field from YAML file.
- Listed changes in alphabetical order.
- Updated description and commit text to reflect changes
- Changed the compatible string from imx412 to imx577.
- Added board-specific enablement changes in the newly created vision board DTSI file.
- Fixed bug encountered during testing.
- Moved logically independent changes to a new/seprate patch.
- Removed cci0 as no sensor is on this port and MCLK2, which was a copy-paste error from the RB5 board reference.
- Added power rails, referencing the RB5 board.
- Discarded Patch 5/6 completely (not required).
- 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,
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
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
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
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
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
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
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
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
linux-stable-mirror@lists.linaro.org