[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20231103-b4-camss-named-power-domains-v4-0-33a905359dbc@linaro.org>
Date: Fri, 03 Nov 2023 12:28:57 +0000
From: Bryan O'Donoghue <bryan.odonoghue@...aro.org>
To: hverkuil-cisco@...all.nl, laurent.pinchart@...asonboard.com,
Robert Foss <rfoss@...nel.org>,
Todor Tomov <todor.too@...il.com>,
Bryan O'Donoghue <bryan.odonoghue@...aro.org>,
Andy Gross <agross@...nel.org>,
Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konrad.dybcio@...aro.org>,
Mauro Carvalho Chehab <mchehab@...nel.org>,
matti.lehtimaki@...il.com, quic_grosikop@...cinc.com
Cc: linux-media@...r.kernel.org, linux-arm-msm@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: [PATCH v4 0/7] media: qcom: camss: Introduce support for named
power-domains
V4:
- Updates camss_configure_pd() to use has_pd to determine if
a VFE has a pd instead of comparing to vfe_num
- Brings in is_lite fixes from Matti
The determination of IS_LITE() has been a running sore in this code for
some time.
Named power domains remove magic index dependencies.
Similarly adding an "is_lite" flag to our resources removes the last
of the magic indexing sins, so this is an opportune series to add it in.
Link: https://git.codelinaro.org/bryan.odonoghue/kernel/-/tree/b4/b4-camss-named-power-domains-v4
sm8250-testable: https://git.codelinaro.org/bryan.odonoghue/kernel/-/tree/b4/b4-camss-named-power-domains-v4+sm8250
Link: https://lore.kernel.org/r/20231101-b4-camss-named-power-domains-v3-0-bbdf5f22462a@linaro.org
V3:
- Includes bugfix reported on IRC
genpd_link and genpd should be checked for NULL on the cleanup path.
Matti Lehtimäki
- Retains NULL check before dev_pm_domain_attach_by_name()
I experimented with the suggested drop but of_property_match_string()
chokes
Link: https://lore.kernel.org/lkml/883ce8a7-80e1-4065-a957-424d0b4a6535@linaro.org/T/#m10e5a43d0245f13eca177ef2f65b24259c641030
Konrad
- Fixes spelling caught by codespell - Konrad
Link: https://git.codelinaro.org/bryan.odonoghue/kernel/-/tree/b4/b4-camss-named-power-domains-v3
sm8250-testable: https://git.codelinaro.org/bryan.odonoghue/kernel/-/tree/b4/b4-camss-named-power-domains-v3+sm8250
V2:
- Incorporates Konrad's suggestion re: removing 'id'
- Adds RB - Konrad
- Adds in a flag to indicate if a VFE has a power domain.
As I rebased this series I realised we had some magic indexing for VFE v
VFE Lite, which isn't the root cause of my bug bear in this series but is
the same sin - inferring functionality from indexing.
Once we transition fully to named pds we won't need a 'has_pd' to flag
which VFEs need power-domain attachment and which don't.
That transition will require populating all upstream dtsi with pd-names
and then deprecating the old way.
has_pd is a far better choice than inferring from indexes so, I've added.
Link: https://git.codelinaro.org/bryan.odonoghue/kernel/-/commits/aa45a2b58aa1e187a2698a65164d694251f08fa1
V1:
At the moment the Qcom CAMSS driver relies on the declaration order of
power-domains within the dtsi to determine which power-domain relates to a
VFE and which power-domain relates to the top-level (top) CAMSS
power-domain.
VFE power-domains must be declared prior to the top power-domain. The top
power-domain must be declared last. Early SoCs have just one top
power-domain with later SoCs introducing VFE specific power-domains.
Differentiating between the number of power-domains results in lots of code
which is brittle and which we can mostly get rid of with named
power-domains.
The reliance on declaration ordering is in-effect magic number indexing.
This series introduces named power-domains for CAMSS and refactors some of
the code in CAMSS to support the new named power-domains. We continue to
support the legacy indexing model with an intention to remove after a
reasonable transition period.
New SoC additions should use named power-domains from now on.
Tested on x13s, rb5, db410c
Link: https://git.codelinaro.org/bryan.odonoghue/kernel/-/tree/linux-next-23-10-23-camss-named-power-domains
Bryan O'Donoghue (5):
media: qcom: camss: Flag which VFEs require a power-domain
media: qcom: camss: Convert to per-VFE pointer for power-domain
linkages
media: qcom: camss: Use common VFE pm_domain_on/pm_domain_off where
applicable
media: qcom: camss: Move VFE power-domain specifics into vfe.c
media: qcom: camss: Add support for named power-domains
.../media/platform/qcom/camss/camss-vfe-170.c | 36 --------
.../media/platform/qcom/camss/camss-vfe-4-1.c | 8 +-
.../media/platform/qcom/camss/camss-vfe-4-7.c | 36 --------
.../media/platform/qcom/camss/camss-vfe-4-8.c | 31 -------
.../media/platform/qcom/camss/camss-vfe-480.c | 36 --------
drivers/media/platform/qcom/camss/camss-vfe.c | 77 ++++++++++++++++
drivers/media/platform/qcom/camss/camss-vfe.h | 16 ++++
drivers/media/platform/qcom/camss/camss.c | 87 ++++++++++++-------
drivers/media/platform/qcom/camss/camss.h | 7 +-
9 files changed, 156 insertions(+), 178 deletions(-)
--
2.42.0
---
Bryan O'Donoghue (5):
media: qcom: camss: Flag which VFEs require a power-domain
media: qcom: camss: Convert to per-VFE pointer for power-domain linkages
media: qcom: camss: Use common VFE pm_domain_on/pm_domain_off where applicable
media: qcom: camss: Move VFE power-domain specifics into vfe.c
media: qcom: camss: Add support for named power-domains
Matti Lehtimäki (2):
media: qcom: camss: Flag VFE-lites to support more VFEs
media: qcom: camss: Flag CSID-lites to support more CSIDs
.../media/platform/qcom/camss/camss-csid-gen2.c | 31 +++---
drivers/media/platform/qcom/camss/camss-csid.c | 5 +
drivers/media/platform/qcom/camss/camss-csid.h | 7 ++
drivers/media/platform/qcom/camss/camss-vfe-170.c | 36 -------
drivers/media/platform/qcom/camss/camss-vfe-4-1.c | 8 +-
drivers/media/platform/qcom/camss/camss-vfe-4-7.c | 36 -------
drivers/media/platform/qcom/camss/camss-vfe-4-8.c | 31 ------
drivers/media/platform/qcom/camss/camss-vfe-480.c | 69 +++---------
drivers/media/platform/qcom/camss/camss-vfe.c | 84 +++++++++++++++
drivers/media/platform/qcom/camss/camss-vfe.h | 26 +++++
drivers/media/platform/qcom/camss/camss.c | 117 +++++++++++++--------
drivers/media/platform/qcom/camss/camss.h | 10 +-
12 files changed, 237 insertions(+), 223 deletions(-)
---
base-commit: 48016737a9af47328dd321df4dd3479ed5e2041d
change-id: 20231031-b4-camss-named-power-domains-cc2ac2722543
Best regards,
--
Bryan O'Donoghue <bryan.odonoghue@...aro.org>
Powered by blists - more mailing lists