Message ID | 20250208225143.2868279-3-quic_vikramsa@quicinc.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | media: qcom: camss: Add sc7280 support | expand |
On 08/02/2025 23:51, Vikram Sharma wrote: > The Vision Mezzanine for the Qualcomm RB3 Gen 2 ships with an imx577 > camera sensor. Enable IMX577 on the vision mezzanine. > > An example media-ctl pipeline for the imx577 is: > > media-ctl --reset > media-ctl -V '"imx577 '17-001a'":0[fmt:SRGGB10/4056x3040 field:none]' AFAIU, camss does not support SRGGB10, but only SRGGB10P. Based on tests reported on IRC I think this might not have been tested correctly. Best regards, Krzysztof
On 03/03/25 18:13:20, Krzysztof Kozlowski wrote: > On 08/02/2025 23:51, Vikram Sharma wrote: > > The Vision Mezzanine for the Qualcomm RB3 Gen 2 ships with an imx577 > > camera sensor. Enable IMX577 on the vision mezzanine. > > > > An example media-ctl pipeline for the imx577 is: > > > > media-ctl --reset > > media-ctl -V '"imx577 '17-001a'":0[fmt:SRGGB10/4056x3040 field:none]' > > AFAIU, camss does not support SRGGB10, but only SRGGB10P. > > Based on tests reported on IRC I think this might not have been tested > correctly. I acquired SRGGB10P (10 bit packed) frames from the camera despite the pipeline being set to SRGGB10 (16 bit) samples. so something does not add up. > > Best regards, > Krzysztof
On 04/03/2025 09:36, Jorge Ramirez wrote: > On 03/03/25 18:13:20, Krzysztof Kozlowski wrote: >> On 08/02/2025 23:51, Vikram Sharma wrote: >>> The Vision Mezzanine for the Qualcomm RB3 Gen 2 ships with an imx577 >>> camera sensor. Enable IMX577 on the vision mezzanine. >>> >>> An example media-ctl pipeline for the imx577 is: >>> >>> media-ctl --reset >>> media-ctl -V '"imx577 '17-001a'":0[fmt:SRGGB10/4056x3040 field:none]' >> >> AFAIU, camss does not support SRGGB10, but only SRGGB10P. >> >> Based on tests reported on IRC I think this might not have been tested >> correctly. > > I acquired SRGGB10P (10 bit packed) frames from the camera despite the > pipeline being set to SRGGB10 (16 bit) samples. > > so something does not add up. Then the commands are actually correct, just the camss or media behave here a bit unexpected? Best regards, Krzysztof
On 04/03/25 09:40:21, Krzysztof Kozlowski wrote: > On 04/03/2025 09:36, Jorge Ramirez wrote: > > On 03/03/25 18:13:20, Krzysztof Kozlowski wrote: > >> On 08/02/2025 23:51, Vikram Sharma wrote: > >>> The Vision Mezzanine for the Qualcomm RB3 Gen 2 ships with an imx577 > >>> camera sensor. Enable IMX577 on the vision mezzanine. > >>> > >>> An example media-ctl pipeline for the imx577 is: > >>> > >>> media-ctl --reset > >>> media-ctl -V '"imx577 '17-001a'":0[fmt:SRGGB10/4056x3040 field:none]' > >> > >> AFAIU, camss does not support SRGGB10, but only SRGGB10P. > >> > >> Based on tests reported on IRC I think this might not have been tested > >> correctly. > > > > I acquired SRGGB10P (10 bit packed) frames from the camera despite the > > pipeline being set to SRGGB10 (16 bit) samples. > > > > so something does not add up. > > Then the commands are actually correct, just the camss or media behave > here a bit unexpected? > setting the pipeline (CSI) as SRGGB10 (16 bit samples) as per below media-ctl --reset media-ctl -v -V '"imx577 '19-001a'":0[fmt:SRGGB10/4056x3040 field:none]' media-ctl -V '"msm_csiphy3":0[fmt:SRGGB10/4056x3040]' media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]' media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]' media-ctl -l '"msm_csiphy3":1->"msm_csid0":0[1]' media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]' allows to capture SRGGB10P samples (frames-xxxx.bin files contain 10 bit samples for the size) ==> yavta -B capture-mplane -c -I -n 5 -f SRGGB10P -s 4056x3040 -F /dev/video0 shouldnt the CSI need to be set to SRGGB10P instead? > Best regards, > Krzysztof
On 04/03/2025 08:51, Jorge Ramirez wrote: > On 04/03/25 09:40:21, Krzysztof Kozlowski wrote: >> On 04/03/2025 09:36, Jorge Ramirez wrote: >>> On 03/03/25 18:13:20, Krzysztof Kozlowski wrote: >>>> On 08/02/2025 23:51, Vikram Sharma wrote: >>>>> The Vision Mezzanine for the Qualcomm RB3 Gen 2 ships with an imx577 >>>>> camera sensor. Enable IMX577 on the vision mezzanine. >>>>> >>>>> An example media-ctl pipeline for the imx577 is: >>>>> >>>>> media-ctl --reset >>>>> media-ctl -V '"imx577 '17-001a'":0[fmt:SRGGB10/4056x3040 field:none]' >>>> >>>> AFAIU, camss does not support SRGGB10, but only SRGGB10P. >>>> >>>> Based on tests reported on IRC I think this might not have been tested >>>> correctly. >>> >>> I acquired SRGGB10P (10 bit packed) frames from the camera despite the >>> pipeline being set to SRGGB10 (16 bit) samples. >>> >>> so something does not add up. >> >> Then the commands are actually correct, just the camss or media behave >> here a bit unexpected? >> > > setting the pipeline (CSI) as SRGGB10 (16 bit samples) as per below > > media-ctl --reset > media-ctl -v -V '"imx577 '19-001a'":0[fmt:SRGGB10/4056x3040 field:none]' > media-ctl -V '"msm_csiphy3":0[fmt:SRGGB10/4056x3040]' > media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]' > media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]' > media-ctl -l '"msm_csiphy3":1->"msm_csid0":0[1]' > media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]' > > allows to capture SRGGB10P samples (frames-xxxx.bin files contain 10 bit samples for the size) > > ==> yavta -B capture-mplane -c -I -n 5 -f SRGGB10P -s 4056x3040 -F /dev/video0 > > > shouldnt the CSI need to be set to SRGGB10P instead? > > >> Best regards, >> Krzysztof > No an internal media bus format MEDIA_BUS_FMT_THING is used See 87889f1b7ea40d2544b49c62092e6ef2792dced7 5480b0c67f120a6c293cc5eff72fa1d6a74de504 3c1dfb5a69cf836f513a2a49113ee946a4b9d95d Yavta is specifying a v4l2 pixel format SRGGB10P which then gets translated into a media bus format MEDIA_BUS_FMT_SRGGB10_1X10. I'm not sure what the historical reasons for that are, probably good ones. --- bod
On 3/4/2025 3:17 PM, Bryan O'Donoghue wrote: > On 04/03/2025 08:51, Jorge Ramirez wrote: >> On 04/03/25 09:40:21, Krzysztof Kozlowski wrote: >>> On 04/03/2025 09:36, Jorge Ramirez wrote: >>>> On 03/03/25 18:13:20, Krzysztof Kozlowski wrote: >>>>> On 08/02/2025 23:51, Vikram Sharma wrote: >>>>>> The Vision Mezzanine for the Qualcomm RB3 Gen 2 ships with an imx577 >>>>>> camera sensor. Enable IMX577 on the vision mezzanine. >>>>>> >>>>>> An example media-ctl pipeline for the imx577 is: >>>>>> >>>>>> media-ctl --reset >>>>>> media-ctl -V '"imx577 '17-001a'":0[fmt:SRGGB10/4056x3040 >>>>>> field:none]' >>>>> >>>>> AFAIU, camss does not support SRGGB10, but only SRGGB10P. >>>>> >>>>> Based on tests reported on IRC I think this might not have been >>>>> tested >>>>> correctly. Hi everyone, Thank you for your comments and discussion on this thread. I can confirm that I have verified this implementation using the same steps mentioned in the commit text. Here is the sample output. 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.isp' (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: 3791353960 timestamp type/source: mono/EoF Buffer 0/0 mapped at address 0xffff7eb7b000. length: 1 offset: 3791353960 timestamp type/source: mono/EoF Buffer 1/0 mapped at address 0xffff7dcc6000. length: 1 offset: 3791353960 timestamp type/source: mono/EoF Buffer 2/0 mapped at address 0xffff7ce11000. length: 1 offset: 3791353960 timestamp type/source: mono/EoF Buffer 3/0 mapped at address 0xffff7bf5c000. length: 1 offset: 3791353960 timestamp type/source: mono/EoF Buffer 4/0 mapped at address 0xffff7b0a7000. 0 (0) [-] none 0 15418880 B 114.742722 114.744108 20.839 fps ts mono/EoF 1 (1) [-] none 1 15418880 B 114.775069 114.775932 30.915 fps ts mono/EoF 2 (2) [-] none 2 15418880 B 114.808401 114.886861 30.001 fps ts mono/EoF 3 (3) [-] none 3 15418880 B 114.841923 114.899629 29.831 fps ts mono/EoF 4 (4) [-] none 4 15418880 B 114.875247 114.949205 30.008 fps ts mono/EoF 5 (0) [-] none 5 15418880 B 114.908511 114.963073 30.063 fps ts mono/EoF 6 (1) [-] none 6 15418880 B 114.941727 114.997570 30.106 fps ts mono/EoF 7 (2) [-] none 7 15418880 B 114.975066 115.011758 29.995 fps ts mono/EoF 8 (3) [-] none 8 15418880 B 115.008486 115.047468 29.922 fps ts mono/EoF 9 (4) [-] none 9 15418880 B 115.041750 115.060305 30.063 fps ts mono/EoF 10 (0) [-] none 10 15418880 B 115.075060 115.106941 30.021 fps ts mono/EoF ... Best Regards, Vikram >>>> >>>> I acquired SRGGB10P (10 bit packed) frames from the camera despite the >>>> pipeline being set to SRGGB10 (16 bit) samples. >>>> >>>> so something does not add up. >>> >>> Then the commands are actually correct, just the camss or media behave >>> here a bit unexpected? >>> >> >> setting the pipeline (CSI) as SRGGB10 (16 bit samples) as per below >> >> media-ctl --reset >> media-ctl -v -V '"imx577 '19-001a'":0[fmt:SRGGB10/4056x3040 field:none]' >> media-ctl -V '"msm_csiphy3":0[fmt:SRGGB10/4056x3040]' >> media-ctl -V '"msm_csid0":0[fmt:SRGGB10/4056x3040]' >> media-ctl -V '"msm_vfe0_rdi0":0[fmt:SRGGB10/4056x3040]' >> media-ctl -l '"msm_csiphy3":1->"msm_csid0":0[1]' >> media-ctl -l '"msm_csid0":1->"msm_vfe0_rdi0":0[1]' >> >> allows to capture SRGGB10P samples (frames-xxxx.bin files contain 10 >> bit samples for the size) >> >> ==> yavta -B capture-mplane -c -I -n 5 -f SRGGB10P -s 4056x3040 -F >> /dev/video0 >> >> >> shouldnt the CSI need to be set to SRGGB10P instead? >> >> >>> Best regards, >>> Krzysztof >> > > No an internal media bus format MEDIA_BUS_FMT_THING is used > > See > > 87889f1b7ea40d2544b49c62092e6ef2792dced7 > 5480b0c67f120a6c293cc5eff72fa1d6a74de504 > 3c1dfb5a69cf836f513a2a49113ee946a4b9d95d > > Yavta is specifying a v4l2 pixel format SRGGB10P which then gets > translated into a media bus format MEDIA_BUS_FMT_SRGGB10_1X10. > > I'm not sure what the historical reasons for that are, probably good > ones. > > --- > bod
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile index 140b0b2abfb5..213d941b1b79 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -116,6 +116,10 @@ dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-1000.dtb dtb-$(CONFIG_ARCH_QCOM) += qcs404-evb-4000.dtb dtb-$(CONFIG_ARCH_QCOM) += qcs615-ride.dtb dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2.dtb + +qcs6490-rb3gen2-vision-mezzanine-dtbs := qcs6490-rb3gen2.dtb qcs6490-rb3gen2-vision-mezzanine.dtbo + +dtb-$(CONFIG_ARCH_QCOM) += qcs6490-rb3gen2-vision-mezzanine.dtb dtb-$(CONFIG_ARCH_QCOM) += qcs8300-ride.dtb dtb-$(CONFIG_ARCH_QCOM) += qcs8550-aim300-aiot.dtb dtb-$(CONFIG_ARCH_QCOM) += qcs9100-ride.dtb diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-vision-mezzanine.dtso b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-vision-mezzanine.dtso new file mode 100644 index 000000000000..b9e4a5214f70 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-vision-mezzanine.dtso @@ -0,0 +1,89 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2024-2025 Qualcomm Innovation Center, Inc. All rights reserved. + */ + +/* + * Camera Sensor overlay on top of rb3gen2 core kit. + */ + +/dts-v1/; +/plugin/; + +#include <dt-bindings/clock/qcom,camcc-sc7280.h> +#include <dt-bindings/gpio/gpio.h> + +&camss { + vdda-phy-supply = <&vreg_l10c_0p88>; + vdda-pll-supply = <&vreg_l6b_1p2>; + + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + /* 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 { + #address-cells = <1>; + #size-cells = <0>; + + 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>; + avdd-supply = <&vph_pwr>; + dvdd-supply = <&vph_pwr>; + + port { + imx577_ep: endpoint { + link-frequencies = /bits/ 64 <600000000>; + data-lanes = <1 2 3 4>; + remote-endpoint = <&csiphy3_ep>; + }; + }; + }; +}; + +&tlmm { + cam2_default: cam2-default-state { + pins = "gpio67"; + function = "cam_mclk"; + drive-strength = <2>; + bias-disable; + }; + + cam2_suspend: cam2-suspend-state { + pins = "gpio67"; + function = "cam_mclk"; + drive-strength = <2>; + bias-pull-down; + }; +};