Re: [PATCH 04/13] media: qcom: camss: csiphy: Add an init callback to CSI PHY devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 7/9/24 19:06, Depeng Shao wrote:
From: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx>

Add a nop callback to CSIPHY devices. Later patches will enumerate with
enabling code.

Please avoid references to "patches" in the commit messages, it'll be
changes.

I took a look at the next changes, and in my opinion the selected names
.init / csiphy_init() / csiphy->res->hw_ops->init(csiphy) are confusing,
since there is no intention for real hardware initialization, which is
presumed by "hw_ops->init()", I see only routines to get some offsets
and populate allocated memory with some values... Not closely a hw_ops.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx>
Signed-off-by: Depeng Shao <quic_depengs@xxxxxxxxxxx>
Reviewed-by: Elliot Berman <quic_eberman@xxxxxxxxxxx>
---
  drivers/media/platform/qcom/camss/camss-csiphy-2ph-1-0.c | 6 ++++++
  drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c | 6 ++++++
  drivers/media/platform/qcom/camss/camss-csiphy.c         | 4 ++++
  drivers/media/platform/qcom/camss/camss-csiphy.h         | 1 +
  4 files changed, 17 insertions(+)

diff --git a/drivers/media/platform/qcom/camss/camss-csiphy-2ph-1-0.c b/drivers/media/platform/qcom/camss/camss-csiphy-2ph-1-0.c
index cd4a8c369234..9d67e7fa6366 100644
--- a/drivers/media/platform/qcom/camss/camss-csiphy-2ph-1-0.c
+++ b/drivers/media/platform/qcom/camss/camss-csiphy-2ph-1-0.c
@@ -180,6 +180,11 @@ static irqreturn_t csiphy_isr(int irq, void *dev)
  	return IRQ_HANDLED;
  }
+static int csiphy_init(struct csiphy_device *csiphy)
+{
+	return 0;
+}
+
  const struct csiphy_hw_ops csiphy_ops_2ph_1_0 = {
  	.get_lane_mask = csiphy_get_lane_mask,
  	.hw_version_read = csiphy_hw_version_read,
@@ -187,4 +192,5 @@ const struct csiphy_hw_ops csiphy_ops_2ph_1_0 = {
  	.lanes_enable = csiphy_lanes_enable,
  	.lanes_disable = csiphy_lanes_disable,
  	.isr = csiphy_isr,
+	.init = csiphy_init,
  };
diff --git a/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c b/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c
index bc4834ee2dcc..b60c32a195df 100644
--- a/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c
+++ b/drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c
@@ -581,6 +581,11 @@ static void csiphy_lanes_disable(struct csiphy_device *csiphy,
  			  CSIPHY_3PH_CMN_CSI_COMMON_CTRLn(6));
  }
+static int csiphy_init(struct csiphy_device *csiphy)
+{
+	return 0;
+}
+
  const struct csiphy_hw_ops csiphy_ops_3ph_1_0 = {
  	.get_lane_mask = csiphy_get_lane_mask,
  	.hw_version_read = csiphy_hw_version_read,
@@ -588,4 +593,5 @@ const struct csiphy_hw_ops csiphy_ops_3ph_1_0 = {
  	.lanes_enable = csiphy_lanes_enable,
  	.lanes_disable = csiphy_lanes_disable,
  	.isr = csiphy_isr,
+	.init = csiphy_init,
  };
diff --git a/drivers/media/platform/qcom/camss/camss-csiphy.c b/drivers/media/platform/qcom/camss/camss-csiphy.c
index 2f7361dfd461..ea5c7078ec8e 100644
--- a/drivers/media/platform/qcom/camss/camss-csiphy.c
+++ b/drivers/media/platform/qcom/camss/camss-csiphy.c
@@ -576,6 +576,10 @@ int msm_csiphy_subdev_init(struct camss *camss,
  	csiphy->cfg.combo_mode = 0;
  	csiphy->res = &res->csiphy;
+ ret = csiphy->res->hw_ops->init(csiphy);

Here.

+	if (ret)
+		return ret;
+
  	/* Memory */
csiphy->base = devm_platform_ioremap_resource_byname(pdev, res->reg[0]);
diff --git a/drivers/media/platform/qcom/camss/camss-csiphy.h b/drivers/media/platform/qcom/camss/camss-csiphy.h
index 47f0b6b09eba..bdf9a9c8bacc 100644
--- a/drivers/media/platform/qcom/camss/camss-csiphy.h
+++ b/drivers/media/platform/qcom/camss/camss-csiphy.h
@@ -71,6 +71,7 @@ struct csiphy_hw_ops {
  	void (*lanes_disable)(struct csiphy_device *csiphy,
  			      struct csiphy_config *cfg);
  	irqreturn_t (*isr)(int irq, void *dev);
+	int (*init)(struct csiphy_device *csiphy);
  };
struct csiphy_subdev_resources {

--
Best wishes,
Vladimir




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux