Devicetree
 help / color / mirror / Atom feed
From: Depeng Shao <quic_depengs@quicinc.com>
To: <rfoss@kernel.org>, <todor.too@gmail.com>,
	<bryan.odonoghue@linaro.org>, <mchehab@kernel.org>,
	<robh@kernel.org>, <krzk+dt@kernel.org>, <conor+dt@kernel.org>,
	<vladimir.zapolskiy@linaro.org>
Cc: <quic_eberman@quicinc.com>, <quic_depengs@quicinc.com>,
	<linux-media@vger.kernel.org>, <linux-arm-msm@vger.kernel.org>,
	<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<kernel@quicinc.com>
Subject: [PATCH 09/16] media: qcom: camss: Add callback API for RUP update and buf done
Date: Wed, 11 Dec 2024 19:37:31 +0530	[thread overview]
Message-ID: <20241211140738.3835588-10-quic_depengs@quicinc.com> (raw)
In-Reply-To: <20241211140738.3835588-1-quic_depengs@quicinc.com>

The RUP registers and buf done irq are moved from the IFE to CSID register
block on recent CAMSS implementations. Add callbacks structure to wrapper
the location change with minimum logic disruption.

Signed-off-by: Depeng Shao <quic_depengs@quicinc.com>
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 .../media/platform/qcom/camss/camss-csid.h    |  9 ++++++++
 drivers/media/platform/qcom/camss/camss.c     | 22 +++++++++++++++++++
 drivers/media/platform/qcom/camss/camss.h     |  3 +++
 3 files changed, 34 insertions(+)

diff --git a/drivers/media/platform/qcom/camss/camss-csid.h b/drivers/media/platform/qcom/camss/camss-csid.h
index f52209b96583..1369e7ea7219 100644
--- a/drivers/media/platform/qcom/camss/camss-csid.h
+++ b/drivers/media/platform/qcom/camss/camss-csid.h
@@ -152,6 +152,14 @@ struct csid_hw_ops {
 	 * @csid: CSID device
 	 */
 	void (*subdev_init)(struct csid_device *csid);
+
+	/*
+	 * reg_update - receive message from other sub device
+	 * @csid: CSID device
+	 * @port_id: Port id
+	 * @is_clear: Indicate if it is clearing reg update or setting reg update
+	 */
+	void (*reg_update)(struct csid_device *csid, int port_id, bool is_clear);
 };
 
 struct csid_subdev_resources {
@@ -168,6 +176,7 @@ struct csid_device {
 	struct media_pad pads[MSM_CSID_PADS_NUM];
 	void __iomem *base;
 	u32 irq;
+	u32 reg_update;
 	char irq_name[30];
 	struct camss_clock *clock;
 	int nclocks;
diff --git a/drivers/media/platform/qcom/camss/camss.c b/drivers/media/platform/qcom/camss/camss.c
index 9fb31f4c18ad..e24084ff88de 100644
--- a/drivers/media/platform/qcom/camss/camss.c
+++ b/drivers/media/platform/qcom/camss/camss.c
@@ -2087,6 +2087,28 @@ static int camss_link_entities(struct camss *camss)
 	return 0;
 }
 
+void camss_reg_update(struct camss *camss, int hw_id, int port_id, bool is_clear)
+{
+	struct csid_device *csid;
+
+	if (hw_id < camss->res->csid_num) {
+		csid = &camss->csid[hw_id];
+
+		csid->res->hw_ops->reg_update(csid, port_id, is_clear);
+	}
+}
+
+void camss_buf_done(struct camss *camss, int hw_id, int port_id)
+{
+	struct vfe_device *vfe;
+
+	if (hw_id < camss->res->vfe_num) {
+		vfe = &camss->vfe[hw_id];
+
+		vfe->res->hw_ops->vfe_buf_done(vfe, port_id);
+	}
+}
+
 /*
  * camss_register_entities - Register subdev nodes and create links
  * @camss: CAMSS device
diff --git a/drivers/media/platform/qcom/camss/camss.h b/drivers/media/platform/qcom/camss/camss.h
index 9da7f48f5dd7..6dceff8ce319 100644
--- a/drivers/media/platform/qcom/camss/camss.h
+++ b/drivers/media/platform/qcom/camss/camss.h
@@ -161,5 +161,8 @@ void camss_pm_domain_off(struct camss *camss, int id);
 int camss_vfe_get(struct camss *camss, int id);
 void camss_vfe_put(struct camss *camss, int id);
 void camss_delete(struct camss *camss);
+void camss_buf_done(struct camss *camss, int hw_id, int port_id);
+void camss_reg_update(struct camss *camss, int hw_id,
+		      int port_id, bool is_clear);
 
 #endif /* QC_MSM_CAMSS_H */
-- 
2.34.1


  parent reply	other threads:[~2024-12-11 14:09 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-11 14:07 [PATCH v6 00/16] media: qcom: camss: Add sm8550 support Depeng Shao
2024-12-11 14:07 ` [PATCH 01/16] media: qcom: camss: csiphy-3ph: Fix trivial indentation fault in defines Depeng Shao
2024-12-11 14:07 ` [PATCH 02/16] media: qcom: camss: csiphy-3ph: Remove redundant PHY init sequence control loop Depeng Shao
2024-12-11 15:38   ` Bryan O'Donoghue
2024-12-12  9:31     ` Depeng Shao
2024-12-11 14:07 ` [PATCH 03/16] media: qcom: camss: csiphy-3ph: Rename struct Depeng Shao
2024-12-11 14:07 ` [PATCH 04/16] media: qcom: camss: csiphy: Add an init callback to CSI PHY devices Depeng Shao
2024-12-11 14:07 ` [PATCH 05/16] media: qcom: camss: csiphy-3ph: Move CSIPHY variables to data field inside csiphy struct Depeng Shao
2024-12-11 14:07 ` [PATCH 06/16] media: qcom: camss: csiphy-3ph: Use an offset variable to find common control regs Depeng Shao
2024-12-11 14:07 ` [PATCH 07/16] media: qcom: camss: csid: Move common code into csid core Depeng Shao
2024-12-11 14:07 ` [PATCH 08/16] media: qcom: camss: vfe: Move common code into vfe core Depeng Shao
2024-12-12  1:06   ` Vladimir Zapolskiy
2024-12-12  1:35     ` Bryan O'Donoghue
2024-12-12  7:57       ` Vladimir Zapolskiy
2024-12-23 11:55         ` Depeng Shao
2024-12-11 14:07 ` Depeng Shao [this message]
2024-12-12  1:09   ` [PATCH 09/16] media: qcom: camss: Add callback API for RUP update and buf done Vladimir Zapolskiy
2024-12-12  1:32     ` Bryan O'Donoghue
2024-12-12  7:42       ` Vladimir Zapolskiy
2024-12-12  9:41     ` Depeng Shao
2024-12-11 14:07 ` [PATCH 10/16] media: qcom: camss: Add default case in vfe_src_pad_code Depeng Shao
2024-12-11 14:07 ` [PATCH 11/16] media: qcom: camss: csid: Add v4l2 ctrl if TPG mode isn't disabled Depeng Shao
2024-12-11 15:44   ` Bryan O'Donoghue
2024-12-23 13:09     ` Depeng Shao
2024-12-11 21:55   ` Bryan O'Donoghue
2024-12-11 14:07 ` [PATCH 12/16] dt-bindings: media: camss: Add qcom,sm8550-camss binding Depeng Shao
2024-12-11 15:17   ` Bryan O'Donoghue
2024-12-12 13:39     ` Depeng Shao
2024-12-12 14:04       ` Bryan O'Donoghue
2024-12-11 14:07 ` [PATCH 13/16] media: qcom: camss: Add sm8550 compatible Depeng Shao
2024-12-11 14:07 ` [PATCH 14/16] media: qcom: camss: csiphy-3ph: Add Gen2 v2.1.2 two-phase MIPI CSI-2 DPHY support Depeng Shao
2024-12-11 21:51   ` Bryan O'Donoghue
2024-12-11 14:07 ` [PATCH 15/16] media: qcom: camss: Add CSID 780 support Depeng Shao
2024-12-11 21:57   ` Bryan O'Donoghue
2024-12-12 11:28     ` Depeng Shao
2024-12-12 12:41       ` Bryan O'Donoghue
2024-12-11 14:07 ` [PATCH 16/16] media: qcom: camss: Add support for VFE 780 Depeng Shao
2024-12-11 15:36 ` [PATCH v6 00/16] media: qcom: camss: Add sm8550 support Bryan O'Donoghue
2024-12-11 16:03   ` Bryan O'Donoghue
2024-12-12 11:06     ` Depeng Shao
  -- strict thread matches above, loose matches on Subject: below --
2024-12-25 13:35 [PATCH v7 " Depeng Shao
2024-12-25 13:35 ` [PATCH 09/16] media: qcom: camss: Add callback API for RUP update and buf done Depeng Shao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20241211140738.3835588-10-quic_depengs@quicinc.com \
    --to=quic_depengs@quicinc.com \
    --cc=bryan.odonoghue@linaro.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=kernel@quicinc.com \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=quic_eberman@quicinc.com \
    --cc=rfoss@kernel.org \
    --cc=robh@kernel.org \
    --cc=todor.too@gmail.com \
    --cc=vladimir.zapolskiy@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox