Re: [PATCH 08/16] media: qcom: camss: csid: Make TPG optional

From: Depeng Shao
Date: Wed Dec 11 2024 - 08:09:32 EST


Hi Vladimir,


---
  .../media/platform/qcom/camss/camss-csid.c    | 33 ++++++++++++-------
  1 file changed, 21 insertions(+), 12 deletions(-)

diff --git a/drivers/media/platform/qcom/camss/camss-csid.c b/drivers/ media/platform/qcom/camss/camss-csid.c
index 6cf8e434dc05..2cb8c37982f8 100644
--- a/drivers/media/platform/qcom/camss/camss-csid.c
+++ b/drivers/media/platform/qcom/camss/camss-csid.c
@@ -838,7 +838,7 @@ static void csid_try_format(struct csid_device *csid,
          break;
      case MSM_CSID_PAD_SRC:
-        if (csid->testgen_mode->cur.val == 0) {
+        if (!csid->testgen_mode || csid->testgen_mode->cur.val == 0) {
              /* Test generator is disabled, */
              /* keep pad formats in sync */
              u32 code = fmt->code;
@@ -1042,6 +1042,7 @@ static int csid_init_formats(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
  static int csid_set_test_pattern(struct csid_device *csid, s32 value)
  {
      struct csid_testgen_config *tg = &csid->testgen;
+    const struct csid_hw_ops *hw_ops = csid->res->hw_ops;
      /* If CSID is linked to CSIPHY, do not allow to enable test generator */
      if (value && media_pad_remote_pad_first(&csid- >pads[MSM_CSID_PAD_SINK]))
@@ -1049,7 +1050,10 @@ static int csid_set_test_pattern(struct csid_device *csid, s32 value)
      tg->enabled = !!value;
-    return csid->res->hw_ops->configure_testgen_pattern(csid, value);
+    if (hw_ops->configure_testgen_pattern)
+        return -EOPNOTSUPP;
+    else
+        return hw_ops->configure_testgen_pattern(csid, value);

Last time I reported about the regression here, it is announced as fixed in the
changelog, but I see it is not, unfortunately.


Sorry, I just picked Bryan's standalone change, then forget your comments. Will update it in new version. Will set the tpg mode as CSID_PAYLOAD_MODE_DISABLED in configure_testgen_pattern interface.


Thanks,
Depeng