dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: dri-devel@lists.freedesktop.org
Cc: Marek Vasut <marex@denx.de>,
	linux-imx@nxp.com, kernel@pengutronix.de, robert.chiras@nxp.com,
	leonard.crestez@nxp.com
Subject: [PATCH v2 05/22] drm: mxsfb: Clarify format and bus width configuration
Date: Sat, 30 May 2020 06:09:58 +0300	[thread overview]
Message-ID: <20200530031015.15492-6-laurent.pinchart@ideasonboard.com> (raw)
In-Reply-To: <20200530031015.15492-1-laurent.pinchart@ideasonboard.com>

Replace the convoluted way to set the format and bus width through
difficult to read macros with more explicit ones. Also remove the
outdated comment related to the limitations on bus width setting as it
doesn't apply anymore (the bus width can be specified through the
display_info bus format).

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Stefan Agner <stefan@agner.ch>
---
 drivers/gpu/drm/mxsfb/mxsfb_crtc.c | 17 +++++------------
 drivers/gpu/drm/mxsfb/mxsfb_regs.h | 17 ++++++++---------
 2 files changed, 13 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/mxsfb/mxsfb_crtc.c b/drivers/gpu/drm/mxsfb/mxsfb_crtc.c
index b69ace8bf526..8b6339316929 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_crtc.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_crtc.c
@@ -52,13 +52,6 @@ static int mxsfb_set_pixel_fmt(struct mxsfb_drm_private *mxsfb)
 
 	ctrl = CTRL_BYPASS_COUNT | CTRL_MASTER;
 
-	/*
-	 * WARNING: The bus width, CTRL_SET_BUS_WIDTH(), is configured to
-	 * match the selected mode here. This differs from the original
-	 * MXSFB driver, which had the option to configure the bus width
-	 * to arbitrary value. This limitation should not pose an issue.
-	 */
-
 	/* CTRL1 contains IRQ config and status bits, preserve those. */
 	ctrl1 = readl(mxsfb->base + LCDC_CTRL1);
 	ctrl1 &= CTRL1_CUR_FRAME_DONE_IRQ_EN | CTRL1_CUR_FRAME_DONE_IRQ;
@@ -66,12 +59,12 @@ static int mxsfb_set_pixel_fmt(struct mxsfb_drm_private *mxsfb)
 	switch (format) {
 	case DRM_FORMAT_RGB565:
 		dev_dbg(drm->dev, "Setting up RGB565 mode\n");
-		ctrl |= CTRL_SET_WORD_LENGTH(0);
+		ctrl |= CTRL_WORD_LENGTH_16;
 		ctrl1 |= CTRL1_SET_BYTE_PACKAGING(0xf);
 		break;
 	case DRM_FORMAT_XRGB8888:
 		dev_dbg(drm->dev, "Setting up XRGB8888 mode\n");
-		ctrl |= CTRL_SET_WORD_LENGTH(3);
+		ctrl |= CTRL_WORD_LENGTH_24;
 		/* Do not use packed pixels = one pixel per word instead. */
 		ctrl1 |= CTRL1_SET_BYTE_PACKAGING(0x7);
 		break;
@@ -104,13 +97,13 @@ static void mxsfb_set_bus_fmt(struct mxsfb_drm_private *mxsfb)
 	reg &= ~CTRL_BUS_WIDTH_MASK;
 	switch (bus_format) {
 	case MEDIA_BUS_FMT_RGB565_1X16:
-		reg |= CTRL_SET_BUS_WIDTH(STMLCDIF_16BIT);
+		reg |= CTRL_BUS_WIDTH_16;
 		break;
 	case MEDIA_BUS_FMT_RGB666_1X18:
-		reg |= CTRL_SET_BUS_WIDTH(STMLCDIF_18BIT);
+		reg |= CTRL_BUS_WIDTH_18;
 		break;
 	case MEDIA_BUS_FMT_RGB888_1X24:
-		reg |= CTRL_SET_BUS_WIDTH(STMLCDIF_24BIT);
+		reg |= CTRL_BUS_WIDTH_24;
 		break;
 	default:
 		dev_err(drm->dev, "Unknown media bus format %d\n", bus_format);
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_regs.h b/drivers/gpu/drm/mxsfb/mxsfb_regs.h
index 78e6cb754712..8ebb52bb1b46 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_regs.h
+++ b/drivers/gpu/drm/mxsfb/mxsfb_regs.h
@@ -34,11 +34,15 @@
 #define CTRL_VSYNC_MODE			BIT(18)
 #define CTRL_DOTCLK_MODE		BIT(17)
 #define CTRL_DATA_SELECT		BIT(16)
-#define CTRL_SET_BUS_WIDTH(x)		(((x) & 0x3) << 10)
-#define CTRL_GET_BUS_WIDTH(x)		(((x) >> 10) & 0x3)
+#define CTRL_BUS_WIDTH_16		(0 << 10)
+#define CTRL_BUS_WIDTH_8		(1 << 10)
+#define CTRL_BUS_WIDTH_18		(2 << 10)
+#define CTRL_BUS_WIDTH_24		(3 << 10)
 #define CTRL_BUS_WIDTH_MASK		(0x3 << 10)
-#define CTRL_SET_WORD_LENGTH(x)		(((x) & 0x3) << 8)
-#define CTRL_GET_WORD_LENGTH(x)		(((x) >> 8) & 0x3)
+#define CTRL_WORD_LENGTH_16		(0 << 8)
+#define CTRL_WORD_LENGTH_8		(1 << 8)
+#define CTRL_WORD_LENGTH_18		(2 << 8)
+#define CTRL_WORD_LENGTH_24		(3 << 8)
 #define CTRL_MASTER			BIT(5)
 #define CTRL_DF16			BIT(3)
 #define CTRL_DF18			BIT(2)
@@ -91,9 +95,4 @@
 #define MXSFB_MAX_XRES			0xffff
 #define MXSFB_MAX_YRES			0xffff
 
-#define STMLCDIF_8BIT  1 /* pixel data bus to the display is of 8 bit width */
-#define STMLCDIF_16BIT 0 /* pixel data bus to the display is of 16 bit width */
-#define STMLCDIF_18BIT 2 /* pixel data bus to the display is of 18 bit width */
-#define STMLCDIF_24BIT 3 /* pixel data bus to the display is of 24 bit width */
-
 #endif /* __MXSFB_REGS_H__ */
-- 
Regards,

Laurent Pinchart

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  parent reply	other threads:[~2020-05-30  3:10 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-30  3:09 [PATCH v2 00/22] drm: mxsfb: Add i.MX7 support Laurent Pinchart
2020-05-30  3:09 ` [PATCH v2 01/22] drm: mxsfb: Remove fbdev leftovers Laurent Pinchart
2020-05-30  3:09 ` [PATCH v2 02/22] drm: mxsfb: Use drm_panel_bridge Laurent Pinchart
2020-06-17 15:25   ` Stefan Agner
2020-05-30  3:09 ` [PATCH v2 03/22] drm: mxsfb: Use BIT() macro to define register bitfields Laurent Pinchart
2020-05-30  3:09 ` [PATCH v2 04/22] drm: mxsfb: Remove unused macros from mxsfb_regs.h Laurent Pinchart
2020-05-30  3:09 ` Laurent Pinchart [this message]
2020-05-30  3:09 ` [PATCH v2 06/22] drm: mxsfb: Pass mxsfb_drm_private pointer to mxsfb_reset_block() Laurent Pinchart
2020-05-30  3:10 ` [PATCH v2 07/22] drm: mxsfb: Use LCDC_CTRL register name explicitly Laurent Pinchart
2020-05-30  3:10 ` [PATCH v2 08/22] drm: mxsfb: Remove register definitions from mxsfb_crtc.c Laurent Pinchart
2020-05-30  3:10 ` [PATCH v2 09/22] drm: mxsfb: Remove unneeded includes Laurent Pinchart
2020-05-30  3:10 ` [PATCH v2 10/22] drm: mxsfb: Rename mxsfb_crtc.c to mxsfb_kms.c Laurent Pinchart
2020-05-30  3:10 ` [PATCH v2 11/22] drm: mxsfb: Stop using DRM simple display pipeline helper Laurent Pinchart
2020-06-11 19:33   ` Stefan Agner
2020-06-16  1:50     ` Laurent Pinchart
2020-07-09 10:25       ` Stefan Agner
2020-07-17  2:06         ` Laurent Pinchart
2020-07-26 18:28           ` Laurent Pinchart
2020-07-27  7:57             ` Stefan Agner
2020-05-30  3:10 ` [PATCH v2 12/22] drm: mxsfb: Move vblank event arm to CRTC .atomic_flush() Laurent Pinchart
2020-05-30  3:10 ` [PATCH v2 13/22] drm: mxsfb: Don't touch AXI clock in IRQ context Laurent Pinchart
2020-05-30  3:10 ` [PATCH v2 14/22] drm: mxsfb: Enable vblank handling Laurent Pinchart
2020-06-11 18:35   ` Stefan Agner
2020-05-30  3:10 ` [PATCH v2 15/22] drm: mxsfb: Remove mxsfb_devdata unused fields Laurent Pinchart
2020-05-30  3:10 ` [PATCH v2 16/22] drm: mxsfb: Add i.MX7 and i.MX8M to the list of supported SoCs in Kconfig Laurent Pinchart
2020-06-11 18:37   ` Stefan Agner
2020-05-30  3:10 ` [PATCH v2 17/22] drm: mxsfb: Update internal IP version number for i.MX6SX Laurent Pinchart
2020-05-30  3:10 ` [PATCH v2 18/22] drm: mxsfb: Drop non-OF support Laurent Pinchart
2020-05-30  3:10 ` [PATCH v2 19/22] drm: mxsfb: Turn mxsfb_set_pixel_fmt() into a void function Laurent Pinchart
2020-05-30  3:10 ` [PATCH v2 20/22] drm: mxsfb: Merge mxsfb_set_pixel_fmt() and mxsfb_set_bus_fmt() Laurent Pinchart
2020-06-05 14:58   ` Emil Velikov
2020-06-06 23:01     ` Laurent Pinchart
2020-06-15 19:31       ` Emil Velikov
2020-05-30  3:10 ` [PATCH v2 21/22] drm: mxsfb: Remove unnecessary spaces after tab Laurent Pinchart
2020-06-11 19:11   ` Stefan Agner
2020-05-30  3:10 ` [PATCH v2 22/22] drm: mxsfb: Support the alpha plane Laurent Pinchart
2020-05-31 16:54   ` Emil Velikov
2020-06-02 22:42     ` Laurent Pinchart
2020-06-05 14:07       ` Emil Velikov
2020-06-17 16:08   ` Stefan Agner

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=20200530031015.15492-6-laurent.pinchart@ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=kernel@pengutronix.de \
    --cc=leonard.crestez@nxp.com \
    --cc=linux-imx@nxp.com \
    --cc=marex@denx.de \
    --cc=robert.chiras@nxp.com \
    /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;
as well as URLs for NNTP newsgroup(s).