Patchwork [Natty,pull-request] DRM driver for OMAP 3

login
register
mail settings
Submitter Ricardo Salveti de Araujo
Date April 7, 2011, 10:14 p.m.
Message ID <BANLkTim0cwdFw+zh+AoXkepqBYrSiRd9Kg@mail.gmail.com>
Download mbox
Permalink /patch/90239/
State New
Headers show

Pull-request

git://kernel.ubuntu.com/rsalveti/ubuntu-natty.git omap3-drm

Comments

Ricardo Salveti de Araujo - April 7, 2011, 10:14 p.m.
Please pull to include the new DRM driver for OMAP 3. This driver
supports the framebuffer driver, exports hooks for the PVR driver and
also probe and parse the monitor EDID, trying to set the best
resolution available.

With this driver I'm able to get resolutions up to 1400x900@60-32bit,
as it can't go higher because of the pixel clock limitation.

The following patches touches mostly just omap related files, and the
ones that are more generic are also only related with platform
devices.

BugLink: https://bugs.launchpad.net/bugs/753071

The following changes since commit 3be40f15181ec49ac96235f746ec651b38015862:

  staging: rts_pstor: set lun_mode in a different place (2011-04-07
14:43:01 -0600)

are available in the git repository at:
  git://kernel.ubuntu.com/rsalveti/ubuntu-natty.git omap3-drm

Jeff McGee (1):
      drm: Call platform register/unregister for platform drivers.

Ricardo Salveti de Araujo (5):
      drm/omap: add common scaled modes
      OMAP2: DSS2: Adding i2c_bus_num to panel_generic_dpi_data to
probe the eeprom
      OMAP: DSS2: add get_edid and is_detected support
      drm/omap: adding MODULE_ALIAS
      UBUNTU: [Config] enable CONFIG_DRM_OMAP=m and
CONFIG_OMAP2_DSS_USE_DSI_PLL=y for omap

Rob Clark (10):
      OMAP: DSS2: Expose API to get edid
      OMAP: DSS2: Add default get/check timings functions
      OMAP: DSS2: Add is_detected() driver API
      OMAP: DSS2: Add hotplug notify events
      OMAP: DSS2: Add missing color formats
      drm: psuedocolor support for ARGB modes
      drm: platform multi-device support
      fbops support for framebuffers with alpha channel
      Adding omap_gpu drm display driver
      omap2+: fix number of omap_vout resources

Sebastien Jan (1):
      OMAP4: DSS: add generic notifier mechanism

Sumit Semwal (1):
      OMAP2, 3: DSS2: Create new file display.c for central dss driver
registration.

 arch/arm/mach-omap2/Makefile                       |    3 +
 arch/arm/mach-omap2/board-3430sdp.c                |    1 +
 arch/arm/mach-omap2/board-am3517evm.c              |    2 +
 arch/arm/mach-omap2/board-cm-t35.c                 |    2 +
 arch/arm/mach-omap2/board-devkit8000.c             |    2 +
 arch/arm/mach-omap2/board-igep0020.c               |    1 +
 arch/arm/mach-omap2/board-omap3beagle.c            |    1 +
 arch/arm/mach-omap2/board-omap3evm.c               |    1 +
 arch/arm/mach-omap2/board-omap3stalker.c           |    2 +
 arch/arm/mach-omap2/devices.c                      |   27 +-
 arch/arm/mach-omap2/display.c                      |   45 ++
 arch/arm/plat-omap/include/plat/display.h          |   50 ++
 .../arm/plat-omap/include/plat/panel-generic-dpi.h |    2 +
 debian.master/config/amd64/config.common.amd64     |    5 +
 debian.master/config/armel/config.flavour.omap     |    5 +
 .../config/armel/config.flavour.versatile          |    5 +
 debian.master/config/config.common.ubuntu          |    9 +-
 debian.master/config/i386/config.common.i386       |    5 +
 debian.master/config/powerpc/config.common.powerpc |    5 +
 debian.master/config/ppc64/config.common.ppc64     |    5 +
 drivers/gpu/drm/Kconfig                            |   24 +
 drivers/gpu/drm/Makefile                           |    1 +
 drivers/gpu/drm/drm_drv.c                          |   11 +-
 drivers/gpu/drm/drm_fb_helper.c                    |    5 +
 drivers/gpu/drm/drm_info.c                         |    4 +-
 drivers/gpu/drm/drm_ioctl.c                        |    5 +-
 drivers/gpu/drm/drm_pci.c                          |   17 +
 drivers/gpu/drm/drm_platform.c                     |    7 +-
 drivers/gpu/drm/omap/Makefile                      |    8 +
 drivers/gpu/drm/omap/omap_connector.c              |  504 +++++++++++++
 drivers/gpu/drm/omap/omap_crtc.c                   |  277 +++++++
 drivers/gpu/drm/omap/omap_encoder.c                |  198 +++++
 drivers/gpu/drm/omap/omap_fb.c                     |  368 ++++++++++
 drivers/gpu/drm/omap/omap_fbdev.c                  |  298 ++++++++
 drivers/gpu/drm/omap/omap_gpu.c                    |  752 ++++++++++++++++++++
 drivers/gpu/drm/omap/omap_gpu_priv.h               |   80 ++
 drivers/video/cfbfillrect.c                        |    2 +-
 drivers/video/cfbimgblt.c                          |    5 +-
 drivers/video/fb_draw.h                            |   14 +
 drivers/video/omap2/displays/panel-generic-dpi.c   |   99 +++
 drivers/video/omap2/dss/core.c                     |    9 +
 drivers/video/omap2/dss/display.c                  |   75 ++
 drivers/video/omap2/dss/dss_features.c             |    6 +-
 drivers/video/omap2/omapfb/Kconfig                 |    4 +-
 drivers/video/sysfillrect.c                        |    2 +-
 drivers/video/sysimgblt.c                          |    6 +-
 include/drm/drmP.h                                 |    4 +-
 include/linux/Kbuild                               |    1 +
 include/linux/omap_gpu.h                           |   84 +++
 49 files changed, 3016 insertions(+), 32 deletions(-)
 create mode 100644 arch/arm/mach-omap2/display.c
 create mode 100644 drivers/gpu/drm/omap/Makefile
 create mode 100644 drivers/gpu/drm/omap/omap_connector.c
 create mode 100644 drivers/gpu/drm/omap/omap_crtc.c
 create mode 100644 drivers/gpu/drm/omap/omap_encoder.c
 create mode 100644 drivers/gpu/drm/omap/omap_fb.c
 create mode 100644 drivers/gpu/drm/omap/omap_fbdev.c
 create mode 100644 drivers/gpu/drm/omap/omap_gpu.c
 create mode 100644 drivers/gpu/drm/omap/omap_gpu_priv.h
 create mode 100644 include/linux/omap_gpu.h
Tim Gardner - April 8, 2011, 1:15 p.m.
On 04/07/2011 04:14 PM, Ricardo Salveti wrote:
> Please pull to include the new DRM driver for OMAP 3. This driver
> supports the framebuffer driver, exports hooks for the PVR driver and
> also probe and parse the monitor EDID, trying to set the best
> resolution available.
>
> With this driver I'm able to get resolutions up to 1400x900@60-32bit,
> as it can't go higher because of the pixel clock limitation.
>
> The following patches touches mostly just omap related files, and the
> ones that are more generic are also only related with platform
> devices.
>
> BugLink: https://bugs.launchpad.net/bugs/753071
>
> The following changes since commit 3be40f15181ec49ac96235f746ec651b38015862:
>
>    staging: rts_pstor: set lun_mode in a different place (2011-04-07
> 14:43:01 -0600)
>
> are available in the git repository at:
>    git://kernel.ubuntu.com/rsalveti/ubuntu-natty.git omap3-drm
>
> Jeff McGee (1):
>        drm: Call platform register/unregister for platform drivers.
>
> Ricardo Salveti de Araujo (5):
>        drm/omap: add common scaled modes
>        OMAP2: DSS2: Adding i2c_bus_num to panel_generic_dpi_data to
> probe the eeprom
>        OMAP: DSS2: add get_edid and is_detected support
>        drm/omap: adding MODULE_ALIAS
>        UBUNTU: [Config] enable CONFIG_DRM_OMAP=m and
> CONFIG_OMAP2_DSS_USE_DSI_PLL=y for omap
>
> Rob Clark (10):
>        OMAP: DSS2: Expose API to get edid
>        OMAP: DSS2: Add default get/check timings functions
>        OMAP: DSS2: Add is_detected() driver API
>        OMAP: DSS2: Add hotplug notify events
>        OMAP: DSS2: Add missing color formats
>        drm: psuedocolor support for ARGB modes
>        drm: platform multi-device support
>        fbops support for framebuffers with alpha channel
>        Adding omap_gpu drm display driver
>        omap2+: fix number of omap_vout resources
>
> Sebastien Jan (1):
>        OMAP4: DSS: add generic notifier mechanism
>
> Sumit Semwal (1):
>        OMAP2, 3: DSS2: Create new file display.c for central dss driver
> registration.
>
>   arch/arm/mach-omap2/Makefile                       |    3 +
>   arch/arm/mach-omap2/board-3430sdp.c                |    1 +
>   arch/arm/mach-omap2/board-am3517evm.c              |    2 +
>   arch/arm/mach-omap2/board-cm-t35.c                 |    2 +
>   arch/arm/mach-omap2/board-devkit8000.c             |    2 +
>   arch/arm/mach-omap2/board-igep0020.c               |    1 +
>   arch/arm/mach-omap2/board-omap3beagle.c            |    1 +
>   arch/arm/mach-omap2/board-omap3evm.c               |    1 +
>   arch/arm/mach-omap2/board-omap3stalker.c           |    2 +
>   arch/arm/mach-omap2/devices.c                      |   27 +-
>   arch/arm/mach-omap2/display.c                      |   45 ++
>   arch/arm/plat-omap/include/plat/display.h          |   50 ++
>   .../arm/plat-omap/include/plat/panel-generic-dpi.h |    2 +
>   debian.master/config/amd64/config.common.amd64     |    5 +
>   debian.master/config/armel/config.flavour.omap     |    5 +
>   .../config/armel/config.flavour.versatile          |    5 +
>   debian.master/config/config.common.ubuntu          |    9 +-
>   debian.master/config/i386/config.common.i386       |    5 +
>   debian.master/config/powerpc/config.common.powerpc |    5 +
>   debian.master/config/ppc64/config.common.ppc64     |    5 +
>   drivers/gpu/drm/Kconfig                            |   24 +
>   drivers/gpu/drm/Makefile                           |    1 +
>   drivers/gpu/drm/drm_drv.c                          |   11 +-
>   drivers/gpu/drm/drm_fb_helper.c                    |    5 +
>   drivers/gpu/drm/drm_info.c                         |    4 +-
>   drivers/gpu/drm/drm_ioctl.c                        |    5 +-
>   drivers/gpu/drm/drm_pci.c                          |   17 +
>   drivers/gpu/drm/drm_platform.c                     |    7 +-
>   drivers/gpu/drm/omap/Makefile                      |    8 +
>   drivers/gpu/drm/omap/omap_connector.c              |  504 +++++++++++++
>   drivers/gpu/drm/omap/omap_crtc.c                   |  277 +++++++
>   drivers/gpu/drm/omap/omap_encoder.c                |  198 +++++
>   drivers/gpu/drm/omap/omap_fb.c                     |  368 ++++++++++
>   drivers/gpu/drm/omap/omap_fbdev.c                  |  298 ++++++++
>   drivers/gpu/drm/omap/omap_gpu.c                    |  752 ++++++++++++++++++++
>   drivers/gpu/drm/omap/omap_gpu_priv.h               |   80 ++
>   drivers/video/cfbfillrect.c                        |    2 +-
>   drivers/video/cfbimgblt.c                          |    5 +-
>   drivers/video/fb_draw.h                            |   14 +
>   drivers/video/omap2/displays/panel-generic-dpi.c   |   99 +++
>   drivers/video/omap2/dss/core.c                     |    9 +
>   drivers/video/omap2/dss/display.c                  |   75 ++
>   drivers/video/omap2/dss/dss_features.c             |    6 +-
>   drivers/video/omap2/omapfb/Kconfig                 |    4 +-
>   drivers/video/sysfillrect.c                        |    2 +-
>   drivers/video/sysimgblt.c                          |    6 +-
>   include/drm/drmP.h                                 |    4 +-
>   include/linux/Kbuild                               |    1 +
>   include/linux/omap_gpu.h                           |   84 +++
>   49 files changed, 3016 insertions(+), 32 deletions(-)
>   create mode 100644 arch/arm/mach-omap2/display.c
>   create mode 100644 drivers/gpu/drm/omap/Makefile
>   create mode 100644 drivers/gpu/drm/omap/omap_connector.c
>   create mode 100644 drivers/gpu/drm/omap/omap_crtc.c
>   create mode 100644 drivers/gpu/drm/omap/omap_encoder.c
>   create mode 100644 drivers/gpu/drm/omap/omap_fb.c
>   create mode 100644 drivers/gpu/drm/omap/omap_fbdev.c
>   create mode 100644 drivers/gpu/drm/omap/omap_gpu.c
>   create mode 100644 drivers/gpu/drm/omap/omap_gpu_priv.h
>   create mode 100644 include/linux/omap_gpu.h
>

This looks like a maintenance nightmare. Its great that you guys have 
the display issues worked out, but its bad that none of this is 
upstream. There is no way I'm gonna accept this on the eve of the kernel 
freeze.

rtg
Ricardo Salveti de Araujo - April 8, 2011, 2:28 p.m.
On Fri, Apr 8, 2011 at 10:15 AM, Tim Gardner <tim.gardner@canonical.com> wrote:
> This looks like a maintenance nightmare. Its great that you guys have the
> display issues worked out, but its bad that none of this is upstream. There
> is no way I'm gonna accept this on the eve of the kernel freeze.

True, not all is upstream yet, as we kind of just finished the driver.

These are the status of the patches:

Upstream already:
Sumit Semwal (1):
     OMAP2, 3: DSS2: Create new file display.c for central dss driver
registration.

Not yet upstream, but included and used at the ti-omap4 branch for
Maverick and Natty:
Jeff McGee (1):
     drm: Call platform register/unregister for platform drivers.

Also used at the ti-omap4 branch:
Sebastien Jan (1):
     OMAP4: DSS: add generic notifier mechanism

New patches, but will also be applied and used at the ti-omap4 branch:
Ricardo Salveti de Araujo (5):
     drm/omap: add common scaled modes
     OMAP2: DSS2: Adding i2c_bus_num to panel_generic_dpi_data to
probe the eeprom
     OMAP: DSS2: add get_edid and is_detected support
     drm/omap: adding MODULE_ALIAS
     UBUNTU: [Config] enable CONFIG_DRM_OMAP=m and
CONFIG_OMAP2_DSS_USE_DSI_PLL=y for omap

Rob Clark (10):
     OMAP: DSS2: Expose API to get edid
     OMAP: DSS2: Add default get/check timings functions
     OMAP: DSS2: Add is_detected() driver API
     OMAP: DSS2: Add hotplug notify events
     OMAP: DSS2: Add missing color formats
     drm: psuedocolor support for ARGB modes
     drm: platform multi-device support
     fbops support for framebuffers with alpha channel
     Adding omap_gpu drm display driver
     omap2+: fix number of omap_vout resources

The good thing is that the generic changes are quite simple and most
contained for OMAP. The DRM driver itself is quite simple, basically
linking the DSS2 subsystem with DRM, and using the DRM functions to
implement the framebuffer driver.

As the user can still fix the resolution by setting it up at the
kernel command line (as we're currently using at the images), there's
no bad side effect of having and using this new driver besides getting
a new functionality.

I understand if we can't include this for natty, but don't really
think it's going to be a maintenance nightmare.

Thanks,
Tim Gardner - April 8, 2011, 3:10 p.m.
On 04/08/2011 08:28 AM, Ricardo Salveti wrote:
> On Fri, Apr 8, 2011 at 10:15 AM, Tim Gardner<tim.gardner@canonical.com>  wrote:
>> This looks like a maintenance nightmare. Its great that you guys have the
>> display issues worked out, but its bad that none of this is upstream. There
>> is no way I'm gonna accept this on the eve of the kernel freeze.
>
> True, not all is upstream yet, as we kind of just finished the driver.
>
> These are the status of the patches:
>
> Upstream already:
> Sumit Semwal (1):
>       OMAP2, 3: DSS2: Create new file display.c for central dss driver
> registration.
>
> Not yet upstream, but included and used at the ti-omap4 branch for
> Maverick and Natty:
> Jeff McGee (1):
>       drm: Call platform register/unregister for platform drivers.
>
> Also used at the ti-omap4 branch:
> Sebastien Jan (1):
>       OMAP4: DSS: add generic notifier mechanism
>
> New patches, but will also be applied and used at the ti-omap4 branch:
> Ricardo Salveti de Araujo (5):
>       drm/omap: add common scaled modes
>       OMAP2: DSS2: Adding i2c_bus_num to panel_generic_dpi_data to
> probe the eeprom
>       OMAP: DSS2: add get_edid and is_detected support
>       drm/omap: adding MODULE_ALIAS
>       UBUNTU: [Config] enable CONFIG_DRM_OMAP=m and
> CONFIG_OMAP2_DSS_USE_DSI_PLL=y for omap
>
> Rob Clark (10):
>       OMAP: DSS2: Expose API to get edid
>       OMAP: DSS2: Add default get/check timings functions
>       OMAP: DSS2: Add is_detected() driver API
>       OMAP: DSS2: Add hotplug notify events
>       OMAP: DSS2: Add missing color formats
>       drm: psuedocolor support for ARGB modes
>       drm: platform multi-device support
>       fbops support for framebuffers with alpha channel
>       Adding omap_gpu drm display driver
>       omap2+: fix number of omap_vout resources
>
> The good thing is that the generic changes are quite simple and most
> contained for OMAP. The DRM driver itself is quite simple, basically
> linking the DSS2 subsystem with DRM, and using the DRM functions to
> implement the framebuffer driver.
>
> As the user can still fix the resolution by setting it up at the
> kernel command line (as we're currently using at the images), there's
> no bad side effect of having and using this new driver besides getting
> a new functionality.
>
> I understand if we can't include this for natty, but don't really
> think it's going to be a maintenance nightmare.
>
> Thanks,

The fact that most of these patches are simple or are in use on the 
ti-omap4 branch isn't relevant. The points that are important to the 
distro kernel are a) this is a new feature and we are past feature 
freeze, b) all but one of these patches diddle in existing source in 
such a way so as to guarantee conflicts with future stable updates.

I'm quite open to experimentation in the ti-omap4 branch, but not in the 
main distro kernel.

rtg