Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1628010 > unrolled thread

[PATCH 1/2 v3 resend] video: fbdev: imxfb: support AUS mode

Started byMartin Kaiser <martin@kaiser.cx>
First post2017-04-21 09:50 +0200
Last post2017-04-21 12:40 +0200
Articles 4 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH 1/2 v3 resend] video: fbdev: imxfb: support AUS mode Martin Kaiser <martin@kaiser.cx> - 2017-04-21 09:50 +0200
    [PATCH 2/2 v3 resend] dt-bindings: display: imx: entry for AUS mode Martin Kaiser <martin@kaiser.cx> - 2017-04-21 09:50 +0200
    Re: [PATCH 1/2 v3 resend] video: fbdev: imxfb: support AUS mode Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> - 2017-04-21 11:40 +0200
      Re: [PATCH 1/2 v3 resend] video: fbdev: imxfb: support AUS mode Martin Kaiser <martin@kaiser.cx> - 2017-04-21 12:40 +0200

#1628010 — [PATCH 1/2 v3 resend] video: fbdev: imxfb: support AUS mode

FromMartin Kaiser <martin@kaiser.cx>
Date2017-04-21 09:50 +0200
Subject[PATCH 1/2 v3 resend] video: fbdev: imxfb: support AUS mode
Message-ID<tyBui-35R-7@gated-at.bofh.it>
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

[toc] | [next] | [standalone]


#1628012 — [PATCH 2/2 v3 resend] dt-bindings: display: imx: entry for AUS mode

FromMartin Kaiser <martin@kaiser.cx>
Date2017-04-21 09:50 +0200
Subject[PATCH 2/2 v3 resend] dt-bindings: display: imx: entry for AUS mode
Message-ID<tyBui-35R-19@gated-at.bofh.it>
In reply to#1628010
Allow setting the AUS mode for a display from the device tree.
Use an optional boolean property. AUS mode can be set only on imx21
and compatible chipsets.

Signed-off-by: Martin Kaiser <martin@kaiser.cx>
Acked-by: Rob Herring <robh@kernel.org>
---
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

 Documentation/devicetree/bindings/display/imx/fsl,imx-fb.txt | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/display/imx/fsl,imx-fb.txt b/Documentation/devicetree/bindings/display/imx/fsl,imx-fb.txt
index 7a5c0e2..cacae0e 100644
--- a/Documentation/devicetree/bindings/display/imx/fsl,imx-fb.txt
+++ b/Documentation/devicetree/bindings/display/imx/fsl,imx-fb.txt
@@ -13,6 +13,8 @@ Required nodes:
 	Additional, the display node has to define properties:
 	- bits-per-pixel: Bits per pixel
 	- fsl,pcr: LCDC PCR value
+	A display node may optionally define
+	- fsl,aus_mode: boolean to enable AUS mode (only for imx21)
 
 Optional properties:
 - lcd-supply: Regulator for LCD supply voltage.
-- 
2.1.4

[toc] | [prev] | [next] | [standalone]


#1628085

FromBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Date2017-04-21 11:40 +0200
Message-ID<tyDcK-492-19@gated-at.bofh.it>
In reply to#1628010
Hi,

On Friday, April 21, 2017 09:45:52 AM Martin Kaiser wrote:
> 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

It hadn't been lost, I've been waiting on v4, please see:

https://lkml.org/lkml/2017/3/15/709

[ Rob has requested rename of the property to "fsl,aus-mode". ]

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

[toc] | [prev] | [next] | [standalone]


#1628115

FromMartin Kaiser <martin@kaiser.cx>
Date2017-04-21 12:40 +0200
Message-ID<tyE8N-4Ha-7@gated-at.bofh.it>
In reply to#1628085
Thus wrote Bartlomiej Zolnierkiewicz (b.zolnierkie@samsung.com):

> It hadn't been lost, I've been waiting on v4, please see:

> https://lkml.org/lkml/2017/3/15/709

> [ Rob has requested rename of the property to "fsl,aus-mode". ]

Sorry, I didn't notice that Rob wanted me to rename the property. I just
sent out v4.

Thanks,
Martin

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web