[PATCHv3 3/8] staging: imx-drm: ipuv3-crtc: don't harcode some mode flags.

2013-11-13 Thread Eric BĂ©nard
Hi Fabio,

Le Wed, 13 Nov 2013 01:52:25 -0200,
Fabio Estevam  a ?crit :
> On Tue, Nov 12, 2013 at 2:49 PM, Denis Carikli  wrote:
> > +   if (mode->flags & DRM_MODE_FLAG_DE_HIGH)
> > +   sig_cfg.enable_pol = 1;
> > +   if (mode->flags & DRM_MODE_FLAG_PIXDATA_POSEDGE)
> > +   sig_cfg.clk_pol = 1;
> >
> > -   sig_cfg.enable_pol = 1;
> > -   sig_cfg.clk_pol = 1;
> 
> 
> What are the sig_cfg.enable_pol and sig_cfg.clk_pol values you need
> for your display to operate correctly?

in ipuv3-crtc, line 159 :
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/staging/imx-drm/ipuv3-crtc.c#n159

polarity of the enable signal and the pixel clock are hard coded to 1.

These settings are then used in ipu-di.c to configurer the IPU display
interface :
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/staging/imx-drm/ipu-v3/ipu-di.c#n631
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/staging/imx-drm/ipu-v3/ipu-di.c#n642

This is a problem as the polarity of these signals can vary from one
TFT panel to an other. In our case, we need and active low enable and a
negative edge clock but currently there is no way to configure these
settings in ipuv3-crtc as they are hardcoded to 1 : that's what Denis
is trying to fix.

Eric


[PATCHv3 3/8] staging: imx-drm: ipuv3-crtc: don't harcode some mode flags.

2013-11-13 Thread Fabio Estevam
Hi Denis,

On Tue, Nov 12, 2013 at 2:49 PM, Denis Carikli  wrote:
> This change is needed for making the eukrea-cpuimx51
>   QVGA display work.
>
> Greg Kroah-Hartman 
> Cc: driverdev-devel at linuxdriverproject.org
> Cc: Philipp Zabel 
> Cc: Sascha Hauer 
> Cc: Shawn Guo 
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: David Airlie 
> Cc: dri-devel at lists.freedesktop.org
> Cc: Eric B?nard 
> Signed-off-by: Denis Carikli 
> ---
>  drivers/staging/imx-drm/ipuv3-crtc.c |6 --
>  1 file changed, 4 insertions(+), 2 deletions(-)
> ChangeLog v2->v3:
> - Added some interested people in the Cc list.
> - Ajusted the flags to match the changes in "drm: Add the lacking
>   DRM_MODE_FLAG_* for matching the DISPLAY_FLAGS_*"
> ---
> diff --git a/drivers/staging/imx-drm/ipuv3-crtc.c 
> b/drivers/staging/imx-drm/ipuv3-crtc.c
> index 670a56a..917818c 100644
> --- a/drivers/staging/imx-drm/ipuv3-crtc.c
> +++ b/drivers/staging/imx-drm/ipuv3-crtc.c
> @@ -155,9 +155,11 @@ static int ipu_crtc_mode_set(struct drm_crtc *crtc,
> sig_cfg.Hsync_pol = 1;
> if (mode->flags & DRM_MODE_FLAG_PVSYNC)
> sig_cfg.Vsync_pol = 1;
> +   if (mode->flags & DRM_MODE_FLAG_DE_HIGH)
> +   sig_cfg.enable_pol = 1;
> +   if (mode->flags & DRM_MODE_FLAG_PIXDATA_POSEDGE)
> +   sig_cfg.clk_pol = 1;
>
> -   sig_cfg.enable_pol = 1;
> -   sig_cfg.clk_pol = 1;


What are the sig_cfg.enable_pol and sig_cfg.clk_pol values you need
for your display to operate correctly?


[PATCHv3 3/8] staging: imx-drm: ipuv3-crtc: don't harcode some mode flags.

2013-11-12 Thread Denis Carikli
This change is needed for making the eukrea-cpuimx51
  QVGA display work.

Greg Kroah-Hartman 
Cc: driverdev-devel at linuxdriverproject.org
Cc: Philipp Zabel 
Cc: Sascha Hauer 
Cc: Shawn Guo 
Cc: linux-arm-kernel at lists.infradead.org
Cc: David Airlie 
Cc: dri-devel at lists.freedesktop.org
Cc: Eric B?nard 
Signed-off-by: Denis Carikli 
---
 drivers/staging/imx-drm/ipuv3-crtc.c |6 --
 1 file changed, 4 insertions(+), 2 deletions(-)
ChangeLog v2->v3:
- Added some interested people in the Cc list.
- Ajusted the flags to match the changes in "drm: Add the lacking
  DRM_MODE_FLAG_* for matching the DISPLAY_FLAGS_*"
---
diff --git a/drivers/staging/imx-drm/ipuv3-crtc.c 
b/drivers/staging/imx-drm/ipuv3-crtc.c
index 670a56a..917818c 100644
--- a/drivers/staging/imx-drm/ipuv3-crtc.c
+++ b/drivers/staging/imx-drm/ipuv3-crtc.c
@@ -155,9 +155,11 @@ static int ipu_crtc_mode_set(struct drm_crtc *crtc,
sig_cfg.Hsync_pol = 1;
if (mode->flags & DRM_MODE_FLAG_PVSYNC)
sig_cfg.Vsync_pol = 1;
+   if (mode->flags & DRM_MODE_FLAG_DE_HIGH)
+   sig_cfg.enable_pol = 1;
+   if (mode->flags & DRM_MODE_FLAG_PIXDATA_POSEDGE)
+   sig_cfg.clk_pol = 1;

-   sig_cfg.enable_pol = 1;
-   sig_cfg.clk_pol = 1;
sig_cfg.width = mode->hdisplay;
sig_cfg.height = mode->vdisplay;
sig_cfg.pixel_fmt = out_pixel_fmt;
-- 
1.7.9.5