All of lore.kernel.org
 help / color / mirror / Atom feed
From: Javier Martinez Canillas <javierm@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: Javier Martinez Canillas <javierm@redhat.com>,
	Daniel Vetter <daniel@ffwll.ch>, David Airlie <airlied@gmail.com>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	dri-devel@lists.freedesktop.org
Subject: [PATCH 01/14] drm/mipi-dsi: Add a mipi_dsi_dcs_write_seq() macro
Date: Wed, 28 Dec 2022 02:47:44 +0100	[thread overview]
Message-ID: <20221228014757.3170486-2-javierm@redhat.com> (raw)
In-Reply-To: <20221228014757.3170486-1-javierm@redhat.com>

Many panel drivers define dsi_dcs_write_seq() and dsi_generic_write_seq()
macros to send DCS commands and generic write packets respectively, with
the payload specified as a list of parameters instead of using arrays.

There's already a macro for the former, introduced by commit 2a9e9daf75231
("drm/mipi-dsi: Introduce mipi_dsi_dcs_write_seq macro") so drivers can be
changed to use that. But there isn't one yet for the latter, let's add it.

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
---

 include/drm/drm_mipi_dsi.h | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/include/drm/drm_mipi_dsi.h b/include/drm/drm_mipi_dsi.h
index 20b21b577dea..c7c458131ba1 100644
--- a/include/drm/drm_mipi_dsi.h
+++ b/include/drm/drm_mipi_dsi.h
@@ -297,6 +297,22 @@ int mipi_dsi_dcs_set_display_brightness(struct mipi_dsi_device *dsi,
 int mipi_dsi_dcs_get_display_brightness(struct mipi_dsi_device *dsi,
 					u16 *brightness);
 
+/**
+ * mipi_dsi_generic_write - transmit data using a generic write packet
+ * @dsi: DSI peripheral device
+ * @seq: buffer containing the payload
+ */
+#define mipi_dsi_generic_write_seq(dsi, seq...) do {				\
+		static const u8 d[] = { seq };					\
+		struct device *dev = &dsi->dev;	\
+		int ret;						\
+		ret = mipi_dsi_generic_write(dsi, d, ARRAY_SIZE(d));	\
+		if (ret < 0) {						\
+			dev_err_ratelimited(dev, "transmit data failed: %d\n", ret); \
+			return ret;						\
+		}						\
+	} while (0)
+
 /**
  * mipi_dsi_dcs_write_seq - transmit a DCS command with payload
  * @dsi: DSI peripheral device
-- 
2.38.1


WARNING: multiple messages have this Message-ID (diff)
From: Javier Martinez Canillas <javierm@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: Thomas Zimmermann <tzimmermann@suse.de>,
	Javier Martinez Canillas <javierm@redhat.com>,
	dri-devel@lists.freedesktop.org
Subject: [PATCH 01/14] drm/mipi-dsi: Add a mipi_dsi_dcs_write_seq() macro
Date: Wed, 28 Dec 2022 02:47:44 +0100	[thread overview]
Message-ID: <20221228014757.3170486-2-javierm@redhat.com> (raw)
In-Reply-To: <20221228014757.3170486-1-javierm@redhat.com>

Many panel drivers define dsi_dcs_write_seq() and dsi_generic_write_seq()
macros to send DCS commands and generic write packets respectively, with
the payload specified as a list of parameters instead of using arrays.

There's already a macro for the former, introduced by commit 2a9e9daf75231
("drm/mipi-dsi: Introduce mipi_dsi_dcs_write_seq macro") so drivers can be
changed to use that. But there isn't one yet for the latter, let's add it.

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
---

 include/drm/drm_mipi_dsi.h | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/include/drm/drm_mipi_dsi.h b/include/drm/drm_mipi_dsi.h
index 20b21b577dea..c7c458131ba1 100644
--- a/include/drm/drm_mipi_dsi.h
+++ b/include/drm/drm_mipi_dsi.h
@@ -297,6 +297,22 @@ int mipi_dsi_dcs_set_display_brightness(struct mipi_dsi_device *dsi,
 int mipi_dsi_dcs_get_display_brightness(struct mipi_dsi_device *dsi,
 					u16 *brightness);
 
+/**
+ * mipi_dsi_generic_write - transmit data using a generic write packet
+ * @dsi: DSI peripheral device
+ * @seq: buffer containing the payload
+ */
+#define mipi_dsi_generic_write_seq(dsi, seq...) do {				\
+		static const u8 d[] = { seq };					\
+		struct device *dev = &dsi->dev;	\
+		int ret;						\
+		ret = mipi_dsi_generic_write(dsi, d, ARRAY_SIZE(d));	\
+		if (ret < 0) {						\
+			dev_err_ratelimited(dev, "transmit data failed: %d\n", ret); \
+			return ret;						\
+		}						\
+	} while (0)
+
 /**
  * mipi_dsi_dcs_write_seq - transmit a DCS command with payload
  * @dsi: DSI peripheral device
-- 
2.38.1


  reply	other threads:[~2022-12-28  1:49 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-28  1:47 [PATCH 00/14] drm/panel: Make panel drivers use existing DSI write macros Javier Martinez Canillas
2022-12-28  1:47 ` Javier Martinez Canillas
2022-12-28  1:47 ` Javier Martinez Canillas [this message]
2022-12-28  1:47   ` [PATCH 01/14] drm/mipi-dsi: Add a mipi_dsi_dcs_write_seq() macro Javier Martinez Canillas
2022-12-29 15:36   ` kernel test robot
2022-12-29 15:36     ` kernel test robot
2023-01-02 18:39   ` Sam Ravnborg
2023-01-02 18:39     ` Sam Ravnborg
2023-01-02 18:59     ` Javier Martinez Canillas
2023-01-02 18:59       ` Javier Martinez Canillas
2023-01-02 19:02       ` Sam Ravnborg
2023-01-02 19:02         ` Sam Ravnborg
2022-12-28  1:47 ` [PATCH 02/14] drm/panel-asus-z00t-tm5p5-n35596: Drop custom DSI write macros Javier Martinez Canillas
2022-12-28  1:47   ` Javier Martinez Canillas
2022-12-28  1:47 ` [PATCH 03/14] drm/panel-sitronix-st7703: " Javier Martinez Canillas
2022-12-28  1:47   ` Javier Martinez Canillas
2022-12-28 12:01   ` Guido Günther
2022-12-28 12:01     ` Guido Günther
2022-12-29 14:30     ` Javier Martinez Canillas
2022-12-29 14:30       ` Javier Martinez Canillas
2023-01-02 18:42   ` Sam Ravnborg
2023-01-02 18:42     ` Sam Ravnborg
2022-12-28  1:47 ` [PATCH 04/14] drm/panel-leadtek-ltk050h3146w: Drop custom DSI write macro Javier Martinez Canillas
2022-12-28  1:47   ` Javier Martinez Canillas
2023-01-02 18:43   ` Sam Ravnborg
2023-01-02 18:43     ` Sam Ravnborg
2022-12-28  1:47 ` [PATCH 05/14] drm/panel-elida-kd35t133: " Javier Martinez Canillas
2022-12-28  1:47   ` Javier Martinez Canillas
2023-01-02 18:44   ` Sam Ravnborg
2023-01-02 18:44     ` Sam Ravnborg
2022-12-28  1:47 ` [PATCH 06/14] drm/panel-boe-bf060y8m-aj0: " Javier Martinez Canillas
2022-12-28  1:47   ` Javier Martinez Canillas
2023-01-02 18:45   ` Sam Ravnborg
2023-01-02 18:45     ` Sam Ravnborg
2022-12-28  1:47 ` [PATCH 07/14] drm/panel-novatek-nt35950: " Javier Martinez Canillas
2022-12-28  1:47   ` Javier Martinez Canillas
2023-01-02 18:55   ` Sam Ravnborg
2023-01-02 18:55     ` Sam Ravnborg
2022-12-28  1:47 ` [PATCH 08/14] drm/panel-jdi-fhd-r63452: Drop custom DSI write macros Javier Martinez Canillas
2022-12-28  1:47   ` Javier Martinez Canillas
2023-01-02 18:46   ` Sam Ravnborg
2023-01-02 18:46     ` Sam Ravnborg
2022-12-28  1:47 ` [PATCH 09/14] drm/panel-samsung-s6e88a0-ams452ef01: Drop custom DSI write macro Javier Martinez Canillas
2022-12-28  1:47   ` Javier Martinez Canillas
2023-01-02 18:48   ` Sam Ravnborg
2023-01-02 18:48     ` Sam Ravnborg
2022-12-28  1:47 ` [PATCH 10/14] drm/panel-samsung-sofef00: " Javier Martinez Canillas
2022-12-28  1:47   ` Javier Martinez Canillas
2023-01-02 18:56   ` Sam Ravnborg
2023-01-02 18:56     ` Sam Ravnborg
2022-12-28  1:47 ` [PATCH 11/14] drm/panel-sharp-ls060t1sx01: " Javier Martinez Canillas
2022-12-28  1:47   ` Javier Martinez Canillas
2023-01-02 18:50   ` Sam Ravnborg
2023-01-02 18:50     ` Sam Ravnborg
2022-12-28  1:47 ` [PATCH 12/14] drm/panel-mantix-mlaf057we51: " Javier Martinez Canillas
2022-12-28  1:47   ` Javier Martinez Canillas
2023-01-02 18:56   ` Sam Ravnborg
2023-01-02 18:56     ` Sam Ravnborg
2022-12-28  1:47 ` [PATCH 13/14] drm/panel-sony-tulip-truly-nt35521: " Javier Martinez Canillas
2022-12-28  1:47   ` Javier Martinez Canillas
2023-01-02 18:51   ` Sam Ravnborg
2023-01-02 18:51     ` Sam Ravnborg
2022-12-28  1:47 ` [PATCH 14/14] drm/panel-xinpeng-xpp055c272: " Javier Martinez Canillas
2022-12-28  1:47   ` Javier Martinez Canillas
2023-01-02 18:53   ` Sam Ravnborg
2023-01-02 18:53     ` Sam Ravnborg
2023-01-02 19:08     ` Javier Martinez Canillas
2023-01-02 19:08       ` Javier Martinez Canillas
2023-01-02 19:00 ` [PATCH 00/14] drm/panel: Make panel drivers use existing DSI write macros Sam Ravnborg
2023-01-02 19:00   ` Sam Ravnborg
2023-01-02 19:13   ` Javier Martinez Canillas
2023-01-02 19:13     ` Javier Martinez Canillas

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=20221228014757.3170486-2-javierm@redhat.com \
    --to=javierm@redhat.com \
    --cc=airlied@gmail.com \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mripard@kernel.org \
    --cc=tzimmermann@suse.de \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.