[PATCH v6 0/4] drm/omapdrm: gamma table support + drm_crtc_enable_color_mgmt()

Jyri Sarha jsarha at ti.com
Tue Jun 7 12:09:13 UTC 2016


Implements gamma tables for OMAP4, OMAP5, and dra7xx SoCs and adds a
workaround for errata that may break LCD1 channel if gamma tables
are in use.

Also adds new drm_crtc_enable_color_mgmt() as suggested[1] by Daniel
Vetter and get rid of the old drm_helper_crtc_enable_color_mgmt(). I
have not tested the change to i915 driver, only compiled it, but
functionally it should be exactly the same.

[1] http://www.spinics.net/lists/dri-devel/msg108092.html

Changes from v5 to v6
- Rebased on top of Tomi's 4.8/omapdrm branch
  (git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux.git 4.8/omapdrm)
- "drm: drm_helper_crtc_enable_color_mgmt() => drm_crtc_enable_color_mgmt()"
  - No change
- "drm/omapdrm: Add gamma table support to DSS dispc"
  - Don't crash to gamma table with lenght < 2
  - Deal with input table size > output table size, in interpolation code
- "drm/omapdrm: Workaround for errata i734 (LCD1 Gamma) in DSS dispc"
  - No change
- "drm/omapdrm: Implement gamma_lut atomic crtc properties"
  - Add "omap_crtc_atomic_check()"
  - Restore default gamma table if the gamma_lut property is removed

Changes from v4 to v5
- No code changes
- Reorder the patches so that color_mgmt-patch comes first
- Fix some typos from commit descriptions
- Squash:
    "drm: Add drm_crtc_enable_color_mgmt()",
    "drm/i915: Use drm_crtc_enable_color_mgmt()", and
    "drm: Remove obsolete drm_helper_crtc_enable_color_mgmt()"
  to: "drm: drm_helper_crtc_enable_color_mgmt() => drm_crtc_enable_color_mgmt()"
- Squash:
    "drm/omapdrm: Use drm_crtc_enable_color_mgmt() to enable gamma properties"
  into: "drm/omapdrm: Implement gamma_lut atomic crtc properties"

Changes from v3 to v4
- "drm/omapdrm: Add gamma table support to DSS dispc"
  - use interpolation code in dispc_mgr_set_gamma() to produce default lut
  - restore default lut table if NULL is given as gamma lut table
- "drm/omapdrm: Implement gamma_lut atomic crtc property"
  - attach gamma_lut_property and gamma_lut_size_property to crtc if
    gamma tables are supported
  - restore default table if gamma lut property is deleted
- Adds:
  - drm: Add drm_crtc_enable_color_mgmt()
  - drm/omapdrm: Use drm_crtc_enable_color_mgmt() to enable gamma properties
  - drm/i915: Use drm_crtc_enable_color_mgmt()
  - drm: Remove obsolete drm_helper_crtc_enable_color_mgmt()

Changes from v2 to v3
- "drm/omapdrm: Add gamma table support to DSS dispc"
  - fix dispc_init_gamma_tables() to always return an int
  - omap54xx_dispc_feats initializes .has_gamma_table not .has_gamma_tables
- "drm/omapdrm: Work-a-round for errata i734 (LCD1 Gamma) in DSS dispc"
  - work-a-round -> workaround
  - Do not mention LOADMODE in description
  - dma_alloc_writecombine returns NULL on error
  - fix last wrong instrance of LCD output gating register
  - improve comment for framedone busy wait
  - add {} around busy loop's while statement

Changes from v1 to v2
- Drop "drm/omapdrm: omap_modeset_init: Separate crtc id and plane id indexing"
- "drm/omapdrm: Add gamma table support to DSS dispc"
 - Address Tomi's comments here: https://patchwork.kernel.org/patch/9128629/
- "drm/omapdrm: Work-a-round for errata i734 (LCD1 Gamma) in DSS dispc"
 - Address Tomi's comments here: https://patchwork.kernel.org/patch/9128633/

Jyri Sarha (4):
  drm: drm_helper_crtc_enable_color_mgmt() =>
    drm_crtc_enable_color_mgmt()
  drm/omapdrm: Add gamma table support to DSS dispc
  drm/omapdrm: Workaround for errata i734 (LCD1 Gamma) in DSS dispc
  drm/omapdrm: Implement gamma_lut atomic crtc properties

 drivers/gpu/drm/drm_crtc.c            |  45 ++++
 drivers/gpu/drm/drm_crtc_helper.c     |  33 ---
 drivers/gpu/drm/i915/intel_color.c    |   3 +-
 drivers/gpu/drm/omapdrm/dss/dispc.c   | 377 ++++++++++++++++++++++++++++++++--
 drivers/gpu/drm/omapdrm/dss/dispc.h   |   5 +
 drivers/gpu/drm/omapdrm/dss/hdmi4.c   |   3 -
 drivers/gpu/drm/omapdrm/dss/hdmi5.c   |   3 -
 drivers/gpu/drm/omapdrm/dss/omapdss.h |   5 +
 drivers/gpu/drm/omapdrm/omap_crtc.c   |  56 +++++
 include/drm/drm_crtc.h                |   5 +-
 include/drm/drm_crtc_helper.h         |   3 -
 11 files changed, 478 insertions(+), 60 deletions(-)

-- 
1.9.1



More information about the dri-devel mailing list