On Mon, 29 Sep 2014 16:44:18 +0200 Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx> wrote: > From: Boris BREZILLON <boris.brezillon@xxxxxxxxxxxxxxxxxx> > > The Atmel HLCDC (HLCD Controller) IP available on some Atmel SoCs (i.e. > at91sam9n12, at91sam9x5 family or sama5d3 family) provides a display > controller device. > > This display controller supports at least one primary plane and might > provide several overlays and an hardware cursor depending on the IP > version. > > At the moment, this driver only implements an RGB connector to interface > with LCD panels, but support for other kind of external devices might be > added later. > > Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx> > Reviewed-by: Rob Clark <robdclark@xxxxxxxxx> > Tested-by: Anthony Harivel <anthony.harivel@xxxxxxxxxx> > Tested-by: Ludovic Desroches <ludovic.desroches@xxxxxxxxx> > --- > drivers/gpu/drm/Kconfig | 2 + > drivers/gpu/drm/Makefile | 1 + > drivers/gpu/drm/atmel-hlcdc/Kconfig | 13 + > drivers/gpu/drm/atmel-hlcdc/Makefile | 7 + > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 392 +++++++++++ > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 527 ++++++++++++++ > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h | 216 ++++++ > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_layer.c | 659 ++++++++++++++++++ > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_layer.h | 403 +++++++++++ > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c | 443 ++++++++++++ > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 833 +++++++++++++++++++++++ > 11 files changed, 3496 insertions(+) > create mode 100644 drivers/gpu/drm/atmel-hlcdc/Kconfig > create mode 100644 drivers/gpu/drm/atmel-hlcdc/Makefile > create mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c > create mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c > create mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h > create mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_layer.c > create mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_layer.h > create mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c > create mode 100644 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c > > diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig > index b066bb3..2d97f7e 100644 > --- a/drivers/gpu/drm/Kconfig > +++ b/drivers/gpu/drm/Kconfig > @@ -185,6 +185,8 @@ source "drivers/gpu/drm/cirrus/Kconfig" > [...] > + > +int atmel_hlcdc_crtc_mode_valid(struct drm_crtc *c, > + struct drm_display_mode *mode) > +{ > + struct videomode vm; > + > + vm.vfront_porch = mode->vsync_start - mode->vdisplay; > + vm.vback_porch = mode->vtotal - mode->vsync_end; > + vm.vsync_len = mode->vsync_end - mode->vsync_start; > + vm.hfront_porch = mode->hsync_start - mode->hdisplay; > + vm.hback_porch = mode->htotal - mode->hsync_end; > + vm.hsync_len = mode->hsync_end - mode->hsync_start; > + > + if (vm.hsync_len > 0x40 || vm.hsync_len < 1) > + return MODE_HSYNC; > + > + if (vm.vsync_len > 0x40 || vm.vsync_len < 1) > + return MODE_VSYNC; > + > + if (vm.vfront_porch > 0x40 || vm.hfront_porch < 1 || > + vm.vback_porch > 0x40 || vm.vback_porch < 0 || > + mode->hdisplay > 2048 || mode->hdisplay < 1) > + return MODE_H_ILLEGAL; > + > + if (vm.hfront_porch > 0x200 || vm.hfront_porch < 1 || > + vm.hback_porch > 0x200 || vm.hback_porch < 1 || > + mode->hdisplay > 2048 || mode->hdisplay < 1) > + return MODE_V_ILLEGAL; > + > + return MODE_OK; > +} > + I forgot to squash the commit removing this function which a vestige from one of my attempt to provide a common mode_valid function that can be called from the connector mode_valid function. -- Boris Brezillon, Free Electrons Embedded Linux and Kernel engineering http://free-electrons.com -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html