[PATCH 00/72] staging imx-drm new features and fixes

Steve Longerbeam slongerbeam at gmail.com
Fri Oct 31 15:53:43 PDT 2014

Hi, this affects only Freescale imx IPU and imx-drm staging drivers,
except for two patches that affect drm core (patch 53 and 63, see below).

New features for imx-drm staging driver:

- Support for multi-display (HDMI and LVDS).
- Support for global alpha and color-key properties for overlay plane.
- Support for gamma correction.
- The imx-drm crtc devices moved to device tree.
- Support for defining custom display interface pixel mappings in the
  device tree.
- Implements encoder DPMS for LVDS.
- YUV planar pixel formats supported for DRM framebuffers.
- DDC support added for LVDS.
- Page flip handling moved to imx plane driver and implemented with
  IPU double-buffering.
- Support page-flip in the overlay plane (patch 53 affects drm core).
- Add support for parsing pixel clock edge select (patch 63 affects drm core).
- Add LVDS connection detect via drm_probe_ddc().
- Implement crtc mode_set_base using plane page-flip.

Fixed issues:

- HDMI and LVDS now use different PLL clock roots (part of multi-display
- Use counter added to IPU DC enable/disable (part of multi-display
- Fixed some HDMI timing issues.
- Wider range of supported DI pixel clocks generated (all EDID modes
  reported from HDMI displays now work).
- Fix separate primary plane objects.
- HDMI must select DI pre clock as DI clock parent during encoder prepare
  (LVDS may have switched DI clock to LDB parent, part of multi-display
- Assign correct DMFC burst size.
- Resolve some DI synchronous display error cases.

George G. Davis (1):
  ARM: dts: imx6qdl-sabreauto: Add HDMI device

Jiada Wang (1):
  gpu: ipu-v3: fix HDMI timing issues

Steve Longerbeam (70):
  ARM: dts: imx6qdl-sabrelite: Add HDMI device
  ARM: dts: imx6qdl: Create imx-drm crtc nodes
  ARM: i.MX6: use pll2_pfd0_352m as clock root of ipu_di
  ARM: i.MX6: select pll3_usb_otg for ldb_di for rev 1.0 chip
  gpu: ipu-cpmem: Add ipu_cpmem_set_uv_offset()
  gpu: ipu-v3: Add ipu_dp_set_chroma_key()
  gpu: ipu-v3: Add ipu_dp_set_gamma_correction()
  gpu: ipu-v3: Add support for dynamic DC interface pixel maps
  gpu: ipu-v3: Add ipu_dc_uninit_sync()
  gpu: ipu-v3: Pass struct ipu_dc to enable/disable
  gpu: ipu-v3: Add ipu_dp_uninit_channel()
  gpu: ipu-v3: Pass struct ipu_dp to enable/disable
  gpu: ipu-v3: Implement use counter for ipu_dc_enable(),
  gpu: ipu-v3: Add DMFC/DP/DC/DI module enable/disable debug
  gpu: ipu-v3: Add ipu_di_uninit_sync_panel()
  gpu: ipu-v3: Split out DI clock enable/disable
  gpu: ipu-v3: Protect more CM reg access with IPU lock
  gpu: ipu-v3: Move DI waveform counter enable/disable to ipu-di
  gpu: ipu-v3: Update DP sync SRM always in ipu_dp_enable_channel()
  gpu: ipu-v3: Fix indent/ws in ipu-dmfc
  gpu: ipu-v3: Allow burstsize of 20 in ipu_dmfc_setup_channel()
  gpu: ipu-v3: Remove ipu_dmfc_init_channel()
  gpu: ipu-v3: Consolidate mutex lock in ipu_dmfc_alloc_bandwidth()
  gpu: ipu-v3: Enumerate the DC channel names
  gpu: ipu-di: Move ipu pointer init
  gpu: ipu-di: Add and improve debug/error messages
  gpu: ipu-v3: Change signal names in struct ipu_di_signal_cfg
  gpu: ipu-v3: Remove IPU client registration
  gpu: ipu-di: Set rate of DI pre clock
  gpu: ipu-v3: Add RGB666 interface pixel map
  gpu: ipu-cpmem: Pass drm fourcc to ipu_cpmem_set_yuv_*
  gpu: ipu-v3: Add ipu_drm_fourcc_is_planar()
  gpu: ipu-v3: Add IDMA channel linking support
  gpu: ipu-cpmem: Support YVU422
  gpu: ipu-cpmem: Add ipu_cpmem_get_burstsize()
  imx-drm: Crtcs moved to device tree
  imx-drm: hdmi: optimize i2c write wait
  imx-drm: parallel-display: Support RGB666 pixel fmt
  imx-drm: imx-ldb: Add debug to connector/encoder entry points
  imx-drm: imx-ldb: Implement imx_ldb_encoder_dpms()
  imx-drm: parallel-display: Fix typo when setting mode type
  imx-drm: ipuv3-plane: Fix planar formats
  imx-drm: ipuv3-plane: Allow YUV space for background plane
  imx-drm: ipuv3-plane: Add more supported pixel formats
  imx-drm: ipuv3-plane: Implement global alpha and colorkey properties
  imx-drm: hdmi: rework irq request/free
  imx-drm: imx-ldb: Add DDC support
  imx-drm: Fix separate primary plane objects
  imx-drm: Move page flip handling to plane driver
  imx-drm: Reset ipu unit pointers to NULL on errors
  drm: implement page flipping support for planes
  imx-drm: ipuv3-plane: Assign page_flip method to drm_plane_funcs
  imx-drm: Implement DRM gamma set
  imx-drm: Implement custom ioctl to set gamma
  imx-drm: Add support for interface pixel maps
  imx-drm: parallel-display: Add interface-pix-map DT property
  imx-drm: hdmi: set DI clock source to DI pre clock
  imx-drm: ipuv3-crtc: Set the crtc device name
  imx-drm: hdmi: Save ipu/di mux for later iomux setup
  imx-drm: ipuv3-plane: Assign correct dmfc burst size
  drm_modes: videomode: add pos/neg pixel clock polarity flag
  imx-drm: ipuv3-crtc: Use DRM mode flags to configure pixel clock
  imx-drm: imx-ldb: Add all defined of video modes
  imx-drm: parallel-display: Add all defined of video modes
  imx-drm: ipuv3-crtc: Disable fb on crtc unbind
  imx-drm: imx-ldb: Use DDC probe as connection detect
  imx-drm: ipuv3-crtc: Implement mode_set_base
  imx-drm: Cancel pending page flip events at preclose
  imx-drm: ipuv3-crtc: Disable overlay plane during crtc disable
  imx-drm: ipuv3-plane: Enable 8 burst locking

 .../bindings/staging/imx-drm/fsl-imx-drm.txt       |   43 +-
 arch/arm/boot/dts/imx6dl.dtsi                      |   10 +-
 arch/arm/boot/dts/imx6q.dtsi                       |  128 +++--
 arch/arm/boot/dts/imx6qdl-sabreauto.dtsi           |    5 +
 arch/arm/boot/dts/imx6qdl-sabrelite.dtsi           |   19 +
 arch/arm/boot/dts/imx6qdl.dtsi                     |  125 ++---
 arch/arm/mach-imx/clk-imx6q.c                      |   11 +-
 drivers/gpu/drm/drm_crtc.c                         |  241 +++++----
 drivers/gpu/drm/drm_ioctl.c                        |    1 +
 drivers/gpu/drm/drm_modes.c                        |    4 +
 drivers/gpu/ipu-v3/ipu-common.c                    |  303 +++++++-----
 drivers/gpu/ipu-v3/ipu-cpmem.c                     |   99 ++--
 drivers/gpu/ipu-v3/ipu-dc.c                        |  305 ++++++++----
 drivers/gpu/ipu-v3/ipu-di.c                        |  300 +++++++++---
 drivers/gpu/ipu-v3/ipu-dmfc.c                      |   94 ++--
 drivers/gpu/ipu-v3/ipu-dp.c                        |  214 ++++++--
 drivers/gpu/ipu-v3/ipu-prv.h                       |    1 +
 drivers/staging/imx-drm/imx-drm-core.c             |  190 +++++---
 drivers/staging/imx-drm/imx-drm.h                  |   26 +-
 drivers/staging/imx-drm/imx-hdmi.c                 |   77 ++-
 drivers/staging/imx-drm/imx-ldb.c                  |  268 ++++++----
 drivers/staging/imx-drm/imx-tve.c                  |    5 +-
 drivers/staging/imx-drm/ipuv3-crtc.c               |  515 ++++++++++++++------
 drivers/staging/imx-drm/ipuv3-plane.c              |  399 +++++++++++++--
 drivers/staging/imx-drm/ipuv3-plane.h              |   35 +-
 drivers/staging/imx-drm/parallel-display.c         |   78 ++-
 include/drm/drm_crtc.h                             |   11 +
 include/uapi/drm/drm.h                             |    1 +
 include/uapi/drm/drm_mode.h                        |   12 +
 include/uapi/drm/imx_drm.h                         |   30 ++
 include/video/imx-ipu-v3.h                         |   86 +++-
 31 files changed, 2557 insertions(+), 1079 deletions(-)
 create mode 100644 include/uapi/drm/imx_drm.h


More information about the dri-devel mailing list