.../bindings/media/qcom,msm8939-camss.yaml | 269 +++++++++++++++++++++ arch/arm64/boot/dts/qcom/msm8939-pm8916.dtsi | 4 + arch/arm64/boot/dts/qcom/msm8939.dtsi | 152 ++++++++++++ drivers/media/platform/qcom/camss/Makefile | 1 + drivers/media/platform/qcom/camss/camss-csiphy.c | 1 + drivers/media/platform/qcom/camss/camss-ispif.c | 8 +- drivers/media/platform/qcom/camss/camss-vfe-4-1.c | 11 + drivers/media/platform/qcom/camss/camss-vfe-vbif.c | 37 +++ drivers/media/platform/qcom/camss/camss-vfe-vbif.h | 19 ++ drivers/media/platform/qcom/camss/camss-vfe.c | 10 + drivers/media/platform/qcom/camss/camss-vfe.h | 3 + drivers/media/platform/qcom/camss/camss.c | 157 ++++++++++++ drivers/media/platform/qcom/camss/camss.h | 1 + 13 files changed, 671 insertions(+), 2 deletions(-)
This series adds CAMSS support for MSM8939.
It's mostly identical to MSM8916, except for some clocks
and an additional CSI.
To fix black stripes across sensor output, and garbage in
CSID TPG output, 2 VFE VBIF register settings are needed.
So the 1st patch adds helper functions to do just that.
Patch 1: adds helper for VFE VBIF settings
Patch 2: adds CAMSS_8x39 version in CAMSS driver
Patch 3: documents qcom,msm8939-camss DT bindings
Patch 4: adds camss and cci in msm8939.dtsi
Signed-off-by: Vincent Knecht <vincent.knecht@mailoo.org>
---
Vincent Knecht (4):
media: qcom: camss: vfe: Add VBIF setting support
media: qcom: camss: Add support for MSM8939
media: dt-bindings: Add qcom,msm8939-camss
arm64: dts: qcom: msm8939: Add camss and cci
.../bindings/media/qcom,msm8939-camss.yaml | 269 +++++++++++++++++++++
arch/arm64/boot/dts/qcom/msm8939-pm8916.dtsi | 4 +
arch/arm64/boot/dts/qcom/msm8939.dtsi | 152 ++++++++++++
drivers/media/platform/qcom/camss/Makefile | 1 +
drivers/media/platform/qcom/camss/camss-csiphy.c | 1 +
drivers/media/platform/qcom/camss/camss-ispif.c | 8 +-
drivers/media/platform/qcom/camss/camss-vfe-4-1.c | 11 +
drivers/media/platform/qcom/camss/camss-vfe-vbif.c | 37 +++
drivers/media/platform/qcom/camss/camss-vfe-vbif.h | 19 ++
drivers/media/platform/qcom/camss/camss-vfe.c | 10 +
drivers/media/platform/qcom/camss/camss-vfe.h | 3 +
drivers/media/platform/qcom/camss/camss.c | 157 ++++++++++++
drivers/media/platform/qcom/camss/camss.h | 1 +
13 files changed, 671 insertions(+), 2 deletions(-)
---
base-commit: 8566fc3b96539e3235909d6bdda198e1282beaed
change-id: 20250517-camss-8x39-vbif-975ff5819198
Best regards,
--
Vincent Knecht <vincent.knecht@mailoo.org>
On Tue, 20 May 2025 20:39:05 +0200, Vincent Knecht wrote: > This series adds CAMSS support for MSM8939. > It's mostly identical to MSM8916, except for some clocks > and an additional CSI. > > To fix black stripes across sensor output, and garbage in > CSID TPG output, 2 VFE VBIF register settings are needed. > So the 1st patch adds helper functions to do just that. > > Patch 1: adds helper for VFE VBIF settings > Patch 2: adds CAMSS_8x39 version in CAMSS driver > Patch 3: documents qcom,msm8939-camss DT bindings > Patch 4: adds camss and cci in msm8939.dtsi > > Signed-off-by: Vincent Knecht <vincent.knecht@mailoo.org> > --- > Vincent Knecht (4): > media: qcom: camss: vfe: Add VBIF setting support > media: qcom: camss: Add support for MSM8939 > media: dt-bindings: Add qcom,msm8939-camss > arm64: dts: qcom: msm8939: Add camss and cci > > .../bindings/media/qcom,msm8939-camss.yaml | 269 +++++++++++++++++++++ > arch/arm64/boot/dts/qcom/msm8939-pm8916.dtsi | 4 + > arch/arm64/boot/dts/qcom/msm8939.dtsi | 152 ++++++++++++ > drivers/media/platform/qcom/camss/Makefile | 1 + > drivers/media/platform/qcom/camss/camss-csiphy.c | 1 + > drivers/media/platform/qcom/camss/camss-ispif.c | 8 +- > drivers/media/platform/qcom/camss/camss-vfe-4-1.c | 11 + > drivers/media/platform/qcom/camss/camss-vfe-vbif.c | 37 +++ > drivers/media/platform/qcom/camss/camss-vfe-vbif.h | 19 ++ > drivers/media/platform/qcom/camss/camss-vfe.c | 10 + > drivers/media/platform/qcom/camss/camss-vfe.h | 3 + > drivers/media/platform/qcom/camss/camss.c | 157 ++++++++++++ > drivers/media/platform/qcom/camss/camss.h | 1 + > 13 files changed, 671 insertions(+), 2 deletions(-) > --- > base-commit: 8566fc3b96539e3235909d6bdda198e1282beaed > change-id: 20250517-camss-8x39-vbif-975ff5819198 > > Best regards, > -- > Vincent Knecht <vincent.knecht@mailoo.org> > > > 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 This patch series was applied (using b4) to base: Base: using specified base-commit 8566fc3b96539e3235909d6bdda198e1282beaed If this is not the correct base, please add 'base-commit' tag (or use b4 which does this automatically) New warnings running 'make CHECK_DTBS=y for arch/arm64/boot/dts/qcom/' for 20250520-camss-8x39-vbif-v1-0-a12cd6006af9@mailoo.org: arch/arm64/boot/dts/qcom/msm8939-wingtech-wt82918.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:0: 'camss_top_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-wingtech-wt82918.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:1: 'cci_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-wingtech-wt82918.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:2: 'cci' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-wingtech-wt82918.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:3: 'camss_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-wingtech-wt82918.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names: ['ispif_ahb', 'camss_top_ahb', 'cci_ahb', 'cci', 'camss_ahb'] is too long from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-wingtech-wt82918.dtb: cci@1b0c000 (qcom,msm8916-cci): clocks: [[31, 86], [31, 96], [31, 71], [31, 72], [31, 95]] is too long from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-huawei-kiwi.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:0: 'camss_top_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-huawei-kiwi.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:1: 'cci_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-huawei-kiwi.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:2: 'cci' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-huawei-kiwi.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:3: 'camss_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-huawei-kiwi.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names: ['ispif_ahb', 'camss_top_ahb', 'cci_ahb', 'cci', 'camss_ahb'] is too long from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-huawei-kiwi.dtb: cci@1b0c000 (qcom,msm8916-cci): clocks: [[31, 86], [31, 96], [31, 71], [31, 72], [31, 95]] is too long from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-wingtech-wt82918hd.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:0: 'camss_top_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-wingtech-wt82918hd.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:1: 'cci_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-wingtech-wt82918hd.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:2: 'cci' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-wingtech-wt82918hd.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:3: 'camss_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-wingtech-wt82918hd.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names: ['ispif_ahb', 'camss_top_ahb', 'cci_ahb', 'cci', 'camss_ahb'] is too long from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-wingtech-wt82918hd.dtb: cci@1b0c000 (qcom,msm8916-cci): clocks: [[31, 86], [31, 96], [31, 71], [31, 72], [31, 95]] is too long from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/apq8039-t2.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:0: 'camss_top_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/apq8039-t2.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:1: 'cci_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/apq8039-t2.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:2: 'cci' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/apq8039-t2.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:3: 'camss_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/apq8039-t2.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names: ['ispif_ahb', 'camss_top_ahb', 'cci_ahb', 'cci', 'camss_ahb'] is too long from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/apq8039-t2.dtb: cci@1b0c000 (qcom,msm8916-cci): clocks: [[31, 86], [31, 96], [31, 71], [31, 72], [31, 95]] is too long from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-sony-xperia-kanuti-tulip.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:0: 'camss_top_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-sony-xperia-kanuti-tulip.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:1: 'cci_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-sony-xperia-kanuti-tulip.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:2: 'cci' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-sony-xperia-kanuti-tulip.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:3: 'camss_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-sony-xperia-kanuti-tulip.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names: ['ispif_ahb', 'camss_top_ahb', 'cci_ahb', 'cci', 'camss_ahb'] is too long from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-sony-xperia-kanuti-tulip.dtb: cci@1b0c000 (qcom,msm8916-cci): clocks: [[31, 86], [31, 96], [31, 71], [31, 72], [31, 95]] is too long from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8929-wingtech-wt82918hd.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:0: 'camss_top_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8929-wingtech-wt82918hd.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:1: 'cci_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8929-wingtech-wt82918hd.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:2: 'cci' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8929-wingtech-wt82918hd.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:3: 'camss_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8929-wingtech-wt82918hd.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names: ['ispif_ahb', 'camss_top_ahb', 'cci_ahb', 'cci', 'camss_ahb'] is too long from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8929-wingtech-wt82918hd.dtb: cci@1b0c000 (qcom,msm8916-cci): clocks: [[31, 86], [31, 96], [31, 71], [31, 72], [31, 95]] is too long from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-samsung-a7.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:0: 'camss_top_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-samsung-a7.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:1: 'cci_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-samsung-a7.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:2: 'cci' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-samsung-a7.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:3: 'camss_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-samsung-a7.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names: ['ispif_ahb', 'camss_top_ahb', 'cci_ahb', 'cci', 'camss_ahb'] is too long from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-samsung-a7.dtb: cci@1b0c000 (qcom,msm8916-cci): clocks: [[31, 86], [31, 96], [31, 71], [31, 72], [31, 95]] is too long from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-longcheer-l9100.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:0: 'camss_top_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-longcheer-l9100.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:1: 'cci_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-longcheer-l9100.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:2: 'cci' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-longcheer-l9100.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names:3: 'camss_ahb' was expected from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-longcheer-l9100.dtb: cci@1b0c000 (qcom,msm8916-cci): clock-names: ['ispif_ahb', 'camss_top_ahb', 'cci_ahb', 'cci', 'camss_ahb'] is too long from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml# arch/arm64/boot/dts/qcom/msm8939-longcheer-l9100.dtb: cci@1b0c000 (qcom,msm8916-cci): clocks: [[31, 86], [31, 96], [31, 71], [31, 72], [31, 95]] is too long from schema $id: http://devicetree.org/schemas/i2c/qcom,i2c-cci.yaml#
© 2016 - 2025 Red Hat, Inc.