[PATCH v6 0/6] media: qcom: camss: Add sc8280xp support

From: Bryan O'Donoghue
Date: Thu Feb 22 2024 - 12:17:40 EST


V6:
- Add of camss.yaml passes on linux-stable/master as at
commit: ff93872a9c61 ("clk: qcom: camcc-sc8280xp: Add sc8280xp CAMCC")

- Fixed IFE/VFE comment discongruity - Konrad

- Per my explaination I don't propose to change IFE/VFE naming since
they are the same thing.

SFE blocks should be named SFE though, not IFE/VFE

- Referring to Konrad's other comments on IFE/VFE naming
https://lore.kernel.org/all/9a13471b-fc39-4081-8905-9d0d7c28b501@xxxxxxxxxx/#t

The next two changes I intend not covered in this SoC series

a) Completing the conversion to named power-domains
b) Camera NOC => OPPs for the camera NoC

Not covered in this series though.

Link to v5: https://lore.kernel.org/r/20231110-b4-camss-sc8280xp-v5-0-7f4947cc59c8@xxxxxxxxxx
Link to tree: https://git.codelinaro.org/bryan.odonoghue/kernel/-/tree/b4/camss-sc8280xp-v6
Bootable: https://git.codelinaro.org/bryan.odonoghue/kernel/-/tree/sc8280xp-v6.8-rc4-camss?ref_type=heads

V5:
- Fixes the lower case 0x0c to 0x0C not sure how Konrad even saw this.
- Drops frequency table to just individual frequencies not full array of
opps - Konrad

- As explained doesn't change the finding of frequencies.
Current array size will ensure testing if (freq[x]) succeeds though I
do agree this should be changed up.

Plan to restructure struct params for specificity to VFE, CSID and will
incorporate this change then.
Link: https://lore.kernel.org/all/e80d4026-a525-48ef-b53a-f1276dd316e6@xxxxxxxxxx

- Reset sequence

Right now the reset works. I agree qcom's downstream has more stuff in
it. I've logged a task to evaluate expansion of the reset and to test
across multiple platforms.

For now not required for this drop.

- _src clocks

One assumes the reason at some stage in time we didn't have SET_PARENT in
our CAMCC which meant setting _src clocks was necessary. In any case it
ought not to be necessary now.

Removing the _src from existing platforms should be trivial however we
might find that as a result some of the CAMCC drivers need to be updated.

That obviously is a separate series.

Link to v4: https://lore.kernel.org/r/20231109-b4-camss-sc8280xp-v4-0-58a58bc200f9@xxxxxxxxxx
Link to tree: https://git.codelinaro.org/bryan.odonoghue/kernel/-/tree/b4/camss-sc8280xp-v5

V4:
- Drops all _src clocks and _SRC indexes in series.
True enough the CAMCC driver has all of the appropriate SET_PARENT flags
so there's no need to represent _src clocks. - Konrad

- I've opted not to split C-PHY and D-PHY init sequences up unless/until
we have a C-PHY init sequence upstream. - bod/Konrad

- b4 trailes --update -> + Konrad's Acks

Link to v3: https://lore.kernel.org/r/20231105-b4-camss-sc8280xp-v3-0-4b3c372ff0f4@xxxxxxxxxx
Link to tree: https://git.codelinaro.org/bryan.odonoghue/kernel/-/tree/b4/camss-sc8280xp-v4

V3:
- Strip pointer to dependencies from yaml patch
I was hoping the robot would understand the links but it doesn't -
Krzysztof

Link to v2: https://lore.kernel.org/r/20231103-b4-camss-sc8280xp-v2-0-b7af4d253a20@xxxxxxxxxx

b4 base:
https://git.codelinaro.org/bryan.odonoghue/kernel/-/tree/b4/camss-sc8280xp-v3

V2:
- Rebase to capture is_lite flag from named power-domain series
- Amends commit log of final patch to give more detail on rename - Konrad
- Opted not to change switch() statements with returns. - bod/Konrad

Requires CAMCC for sc8280xp which applies to qcom/clk-for-6.7:
https://lore.kernel.org/linux-arm-msm/20231026105345.3376-1-bryan.odonoghue@xxxxxxxxxx/
b4 shazam 20231026105345.3376-1-bryan.odonoghue@xxxxxxxxxx

Requires the named power-domain patches which apply to media-tree/*:
https://lore.kernel.org/linux-arm-msm/20231103-b4-camss-named-power-domains-v4-0-33a905359dbc@xxxxxxxxxx/
b4 shazam e700133b-58f7-4a4d-8e5c-0d04441b789b@xxxxxxxxxx

Link to v1:
https://lore.kernel.org/r/20231102-b4-camss-sc8280xp-v1-0-9996f4bcb8f4@xxxxxxxxxx

b4 base:
https://git.codelinaro.org/bryan.odonoghue/kernel/-/tree/b4/camss-sc8280xp-v2

V1:
sc8280xp is the SoC found in the Lenovo X13s. This series adds support to
bring up the CSIPHY, CSID, VFE/RDI interfaces.

A number of precursor patches make this series smaller overall than
previous series.

sc8280xp provides

- 4 x VFE, 4 RDI per VFE
- 4 x VFE Lite, 4 RDI per VFE
- 4 x CSID
- 4 x CSID Lite
- 4 x CSI PHY

I've taken the yaml from a dtsi series and included it here since 1) I sent
the yaml to the wrong person and 2) it already has RB from Krzysztof.

Requires CAMCC for sc8280xp which applies to qcom/clk-for-6.7:
https://lore.kernel.org/linux-arm-msm/20231026105345.3376-1-bryan.odonoghue@xxxxxxxxxx/
b4 shazam 20231026105345.3376-1-bryan.odonoghue@xxxxxxxxxx

Requires the named power-domain patches which apply to media-tree/* :
https://lore.kernel.org/linux-arm-msm/20231101-b4-camss-named-power-domains-v3-5-bbdf5f22462a@xxxxxxxxxx/
b4 shazam 20231101-b4-camss-named-power-domains-v3-5-bbdf5f22462a@xxxxxxxxxx

To use the camera on x13s with say Google Hangouts or Microsoft Teams you
will need to

1. Run Firefox
2. Update about:config to enable pipewire
3. Use this WIP version of libcamera
https://gitlab.freedesktop.org/camera/libcamera-softisp

A working bootable tree can be found here:
Link: https://git.codelinaro.org/bryan.odonoghue/kernel/-/tree/lenovo-x13s-linux-6.5.y

b4 base:
https://git.codelinaro.org/bryan.odonoghue/kernel/-/tree/b4/camss-sc8280xp

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx>
---
Bryan O'Donoghue (6):
media: dt-bindings: media: camss: Add qcom,sc8280xp-camss binding
media: qcom: camss: csiphy-3ph: Add Gen2 v1.1 two-phase MIPI CSI-2 DPHY init
media: qcom: camss: Add CAMSS_SC8280XP enum
media: qcom: camss: Add sc8280xp resources
media: qcom: camss: Add sc8280xp support
media: qcom: camss: vfe-17x: Rename camss-vfe-170 to camss-vfe-17x

.../bindings/media/qcom,sc8280xp-camss.yaml | 512 +++++++++++++++++++++
drivers/media/platform/qcom/camss/Makefile | 2 +-
.../platform/qcom/camss/camss-csiphy-3ph-1-0.c | 108 ++++-
drivers/media/platform/qcom/camss/camss-csiphy.c | 1 +
.../camss/{camss-vfe-170.c => camss-vfe-17x.c} | 0
drivers/media/platform/qcom/camss/camss-vfe.c | 25 +-
drivers/media/platform/qcom/camss/camss-video.c | 1 +
drivers/media/platform/qcom/camss/camss.c | 307 ++++++++++++
drivers/media/platform/qcom/camss/camss.h | 1 +
9 files changed, 948 insertions(+), 9 deletions(-)
---
base-commit: e31185ce00a96232308300008db193416ceb9769
change-id: 20231101-b4-camss-sc8280xp-0e1b91eb21bf

Best regards,
--
Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx>