mbox series

[v2,0/8] Move camss version related defs in to resources

Message ID 20240319173935.481-1-quic_grosikop@quicinc.com
Headers show
Series Move camss version related defs in to resources | expand

Message

Gjorgji Rosikopulos March 19, 2024, 5:39 p.m. UTC
The different resources required for different camss soc versions are
split in to two groups:

1. Camss device related. In this group are all resources described
in the device tree, clocks, regulators etc.

2. Sub-device specific resources. In the initialization
of the each sub-device, the version of camss is passed.
Based on this version the sub-device adds: hw layer support,
per pad formats, number of dma's etc.

The code for "1" group lives in camss.c. However the "2" group
is spread across all sub-device implementations including video device.

This kind of separation is not very convenient when adding new camss soc
version. The reason is that you need to add support in all sub-device
implementations.

There were some improvements in this direction where some of the
hw version related definitions were moved in to the "1". One
example is attaching of the hw operations.

This series aim to improve the things more and add additional definitions
in to the "1".

What is included:

- Remove all format definitions from camss video. The will be passed
  by the parent sub-device

- Make camss generic format definition mapping, containing mbus to
  v4l2 mapping, mbus bpp and other required fields used by the
  sub-device and video node.

- Add per sub-device type union in the resources, different
  sub-devices are using different resources, as an example: is_lite flag.

- Move camss link operation in to the resources. Currently one
  function supports different topologies depending of the number
  of devices. As hw version support increases this is not good
  way of supporting different topologies.

- Add parent device ops in to the resources. This resolves
  inter-dependencies of vfe and csid. Csid requests the clocks
  regulators etc from parent device instead calling directly vfe
  functions.

- Some cleanups in csid code for split the configuration of
  RX and testgen and RDI.

Changes in V2:
- Rebased on top of sc8280xp v6.
- The change "Designate lite subdevices in resources" was dropped,
  it was already merged in previous series.

Atanas Filipov (1):
  media: qcom: camss: Decompose register and link operations

Milen Mitkov (2):
  media: qcom: camss: Split testgen, RDI and RX for CSID 170
  media: qcom: camss: Decouple VFE from CSID

Radoslav Tsvetkov (5):
  media: qcom: camss: Add per sub-device type resources
  media: qcom: camss: Attach formats to VFE resources
  media: qcom: camss: Attach formats to CSID resources
  media: qcom: camss: Attach formats to CSIPHY resources
  media: qcom: camss: Move format related functions

 drivers/media/platform/qcom/camss/Makefile    |   1 +
 .../platform/qcom/camss/camss-csid-4-1.c      | 132 +---
 .../platform/qcom/camss/camss-csid-4-7.c      | 160 +---
 .../platform/qcom/camss/camss-csid-gen2.c     | 410 ++++------
 .../media/platform/qcom/camss/camss-csid.c    | 512 ++++++++++++-
 .../media/platform/qcom/camss/camss-csid.h    |  32 +-
 .../media/platform/qcom/camss/camss-csiphy.c  |  74 +-
 .../media/platform/qcom/camss/camss-csiphy.h  |  23 +-
 .../media/platform/qcom/camss/camss-format.c  |  98 +++
 .../media/platform/qcom/camss/camss-format.h  |  67 ++
 .../media/platform/qcom/camss/camss-vfe-17x.c |  10 +-
 .../media/platform/qcom/camss/camss-vfe-4-1.c |   4 +-
 .../media/platform/qcom/camss/camss-vfe-4-7.c |   6 +-
 .../media/platform/qcom/camss/camss-vfe-4-8.c |   6 +-
 .../platform/qcom/camss/camss-vfe-gen1.c      |   8 +-
 drivers/media/platform/qcom/camss/camss-vfe.c | 483 +++++++-----
 drivers/media/platform/qcom/camss/camss-vfe.h |  22 +-
 .../media/platform/qcom/camss/camss-video.c   | 295 +-------
 .../media/platform/qcom/camss/camss-video.h   |   5 +-
 drivers/media/platform/qcom/camss/camss.c     | 709 +++++++++++++-----
 drivers/media/platform/qcom/camss/camss.h     |  28 +-
 21 files changed, 1747 insertions(+), 1338 deletions(-)
 create mode 100644 drivers/media/platform/qcom/camss/camss-format.c
 create mode 100644 drivers/media/platform/qcom/camss/camss-format.h

Comments

Bryan O'Donoghue April 1, 2024, 10:30 p.m. UTC | #1
On 19/03/2024 17:39, Gjorgji Rosikopulos wrote:
> +		.csid = {
> +			.hw_ops = &csid_ops_gen2
> +		}

Thanks for rebasing

rb3, rb5 and db410c all went well with my testing but x13s showed a few 
missing resource entries - which I fixed and then it worked fine on x13s 
too.

https://git.codelinaro.org/bryan.odonoghue/kernel/-/tree/sc8280xp-6.9-rc1-camss-resource-change-verification?ref_type=heads

Could you guys make a pass through these resource structs again - 
especially for sc8280xp, sdm660 and 8996 and make sure there's nothing 
else missing.

---
bod
Bryan O'Donoghue April 1, 2024, 10:35 p.m. UTC | #2
On 19/03/2024 17:39, Gjorgji Rosikopulos wrote:
> The different resources required for different camss soc versions are
> split in to two groups:

General series comment =>

You need to add your Signed-off-by: Gjorgji Rosikopulos 
<quic_grosikop@quicinc.com>

for each of the patches you are submitting.

Perhaps yourself or some of the other people in the series deserve to 
have Co-developed-by for some of the patches too ?

I really like the reduction of code and the definition in one-place of 
things so definitely the right direction.

I won't do a deeper dive into the code until V3 but for reference here 
are the branches I verified db410c, rb3, rb5 and x13s with.

x13s:
https://git.codelinaro.org/bryan.odonoghue/kernel/-/tree/sc8280xp-6.9-rc1-camss-resource-change-verification?ref_type=heads

db410c/rb3/rb5:
https://git.codelinaro.org/bryan.odonoghue/kernel/-/tree/linux-stable-v6.7.9-camss-rb5-20240319173935.481-1-quic_grosikop@quicinc.com?ref_type=heads

---
bod
Gjorgji Rosikopulos April 3, 2024, 9:54 a.m. UTC | #3
Hi Bryan,

On 4/2/2024 1:35 AM, Bryan O'Donoghue wrote:
> On 19/03/2024 17:39, Gjorgji Rosikopulos wrote:
>> The different resources required for different camss soc versions are
>> split in to two groups:
> 
> General series comment =>
> 
> You need to add your Signed-off-by: Gjorgji Rosikopulos
> <quic_grosikop@quicinc.com>
> 
> for each of the patches you are submitting.

Agree that is missing i will do that for the next-patchset

> 
> Perhaps yourself or some of the other people in the series deserve to
> have Co-developed-by for some of the patches too ?

I agree as well i will double check if some people are missing.

> 
> I really like the reduction of code and the definition in one-place of
> things so definitely the right direction.
> 
> I won't do a deeper dive into the code until V3 but for reference here
> are the branches I verified db410c, rb3, rb5 and x13s with.
> 
> x13s:
> https://git.codelinaro.org/bryan.odonoghue/kernel/-/tree/sc8280xp-6.9-rc1-camss-resource-change-verification?ref_type=heads
> 
> db410c/rb3/rb5:
> https://git.codelinaro.org/bryan.odonoghue/kernel/-/tree/linux-stable-v6.7.9-camss-rb5-20240319173935.481-1-quic_grosikop@quicinc.com?ref_type=heads

Thanks, i will get your changes for x13's as commented in previous
review and submit new patch-set.

~Gjorgji

> 
> ---
> bod