linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Martin Kaiser <martin@kaiser.cx>
To: linux-fbdev@vger.kernel.org
Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Sascha Hauer <kernel@pengutronix.de>,
	linux-kernel@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	devicetree@vger.kernel.org, Martin Kaiser <martin@kaiser.cx>
Subject: [PATCH 1/2 v3 resend] video: fbdev: imxfb: support AUS mode
Date: Fri, 21 Apr 2017 09:45:52 +0200	[thread overview]
Message-ID: <1492760753-8374-1-git-send-email-martin@kaiser.cx> (raw)
In-Reply-To: <1488193030-13064-1-git-send-email-martin@kaiser.cx>

Some displays require setting AUS mode in the LDCD AUS Mode Control
Register to work with the imxfb driver. Like the value of the Panel
Configuration Register, the AUS mode setting depends on the display
mode.

Allow setting AUS mode from the device tree by adding a boolean
property. Make this property optional to keep the DT ABI stable.
AUS mode can be set only on imx21 and compatible chipsets.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
---
re-sending v3, rebased against current linux-next
it seems this got lost along the way, there was a bit of confusion
whether to split this in two patches or not

v3:
   use a boolean DT property instead of the register value
   separate patches for DT binding and code changes

v2:
   re-sending DT bindings and code changes as one patch

 drivers/video/fbdev/imxfb.c               | 17 +++++++++++++++++
 include/linux/platform_data/video-imxfb.h |  1 +
 2 files changed, 18 insertions(+)

diff --git a/drivers/video/fbdev/imxfb.c b/drivers/video/fbdev/imxfb.c
index 1b0faad..463fbf2 100644
--- a/drivers/video/fbdev/imxfb.c
+++ b/drivers/video/fbdev/imxfb.c
@@ -117,6 +117,9 @@
 
 #define IMXFB_LSCR1_DEFAULT 0x00120300
 
+#define LCDC_LAUSCR	0x80
+#define LAUSCR_AUS_MODE	(1<<31)
+
 /* Used fb-mode. Can be set on kernel command line, therefore file-static. */
 static const char *fb_mode;
 
@@ -158,6 +161,7 @@ struct imxfb_info {
 	dma_addr_t		dbar2;
 
 	u_int			pcr;
+	u_int			lauscr;
 	u_int			pwmr;
 	u_int			lscr1;
 	u_int			dmacr;
@@ -422,6 +426,11 @@ static int imxfb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
 	pcr |= imxfb_mode->pcr & ~(0x3f | (7 << 25));
 
 	fbi->pcr = pcr;
+	/*
+	 * The LCDC AUS Mode Control Register does not exist on imx1.
+	 */
+	if (!is_imx1_fb(fbi) && imxfb_mode->aus_mode)
+		fbi->lauscr = LAUSCR_AUS_MODE;
 
 	/*
 	 * Copy the RGB parameters for this display
@@ -638,6 +647,9 @@ static int imxfb_activate_var(struct fb_var_screeninfo *var, struct fb_info *inf
 	if (fbi->dmacr)
 		writel(fbi->dmacr, fbi->regs + LCDC_DMACR);
 
+	if (fbi->lauscr)
+		writel(fbi->lauscr, fbi->regs + LCDC_LAUSCR);
+
 	return 0;
 }
 
@@ -734,6 +746,11 @@ static int imxfb_of_read_mode(struct device *dev, struct device_node *np,
 	imxfb_mode->bpp = bpp;
 	imxfb_mode->pcr = pcr;
 
+	/*
+	 * fsl,aus_mode is optional
+	 */
+	imxfb_mode->aus_mode = of_property_read_bool(np, "fsl,aus_mode");
+
 	return 0;
 }
 
diff --git a/include/linux/platform_data/video-imxfb.h b/include/linux/platform_data/video-imxfb.h
index a5c0a71..cf9348b 100644
--- a/include/linux/platform_data/video-imxfb.h
+++ b/include/linux/platform_data/video-imxfb.h
@@ -50,6 +50,7 @@
 struct imx_fb_videomode {
 	struct fb_videomode mode;
 	u32 pcr;
+	bool aus_mode;
 	unsigned char	bpp;
 };
 
-- 
2.1.4

  parent reply	other threads:[~2017-04-21  7:46 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-27 10:56 [PATCH 1/2] video: fbdev: imxfb: support AUS mode Martin Kaiser
2017-02-27 10:56 ` [PATCH 2/2] dt-bindings: display: imx: entry for LAUSCR Martin Kaiser
2017-03-02 16:13   ` Rob Herring
2017-03-04  8:52     ` Martin Kaiser
2017-02-27 20:36 ` [PATCH 1/2] video: fbdev: imxfb: support AUS mode Uwe Kleine-König
2017-02-27 22:33   ` Martin Kaiser
2017-02-28 11:45     ` Bartlomiej Zolnierkiewicz
2017-02-28 20:04 ` [PATCH v2] " Martin Kaiser
2017-03-03  6:21   ` Rob Herring
2017-03-03  8:53     ` Bartlomiej Zolnierkiewicz
2017-03-04  8:38       ` Martin Kaiser
2017-03-08 18:22 ` [PATCH 1/2 v3] " Martin Kaiser
2017-03-08 18:22   ` [PATCH 2/2 v3] dt-bindings: display: imx: entry for " Martin Kaiser
2017-03-15 20:24     ` Rob Herring
2017-04-21  7:45 ` Martin Kaiser [this message]
2017-04-21  7:45   ` [PATCH 2/2 v3 resend] " Martin Kaiser
2017-04-21  9:33   ` [PATCH 1/2 v3 resend] video: fbdev: imxfb: support " Bartlomiej Zolnierkiewicz
2017-04-21 10:31     ` Martin Kaiser
2017-04-21 10:29 ` [PATCH 1/2 v4] " Martin Kaiser
2017-04-21 10:29   ` [PATCH 2/2] dt-bindings: display: imx: entry for " Martin Kaiser
2017-04-21 12:29   ` [PATCH 2/2 v4] " Martin Kaiser
2017-04-21 14:50     ` Bartlomiej Zolnierkiewicz
2017-04-21 14:49   ` [PATCH 1/2 v4] video: fbdev: imxfb: support " Bartlomiej Zolnierkiewicz

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=1492760753-8374-1-git-send-email-martin@kaiser.cx \
    --to=martin@kaiser.cx \
    --cc=b.zolnierkie@samsung.com \
    --cc=devicetree@vger.kernel.org \
    --cc=kernel@pengutronix.de \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=robh+dt@kernel.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;
as well as URLs for NNTP newsgroup(s).