[Intel-gfx] [RFC 00/10] i915 init-time configuration (v2)

Bob Paauwe bob.j.paauwe at intel.com
Mon Apr 13 13:51:01 PDT 2015


Background:

This capability is targeted at deeply embedded appliance like devices
that make use of Intel integrated graphics.  There are a few use cases
that are not currently supported by the i915 driver.  For example,
they may not be running user space code that is capable of querying and
setting the various DRM properties and would like them set during the
driver initialization. Also they may be using a custom firmware bootloader
that does not include any graphics initialization or VBT information.

This level of initialization configuration has been available in
the Intel EMGD kernel driver and a similar level of configurability will
be expected as designs transition to the i915 driver.

This patch set provides a framework that makes use of ACPI property
tables containing configuration information.  It also includes some
examples on how this may be applied to various aspects of the i915
driver initialization.

V2 removes the support for replacing the internal workaround list and
the support for overriding the VBT values.  Instead there are
patches to configure the specific items that the EMGD kernel driver
currently allows customers to override. There are also patches to
make the values of those items available via debugfs.  I've also
removed the code that embeds an ACPI property table into the driver
as the ACPICA code doesn't really support loading and unloading a 
table like this and would fail after a couple of driver load/unload
cycles.

Series description:

Patch 1 is the framework.  It loads the ACPI property table and builds
some lists containing the configuration found in that table. There
are functions for looking up and applying the configuration.

Patch 2 checks for a CRTC bits-per-color configuration and uses
that if EDID does not provide the value.

Patch 3 replaces the attach_property function with a call to a
configuration function that can override the default property value
with one from the configuration table.

Patch 4 is an example of using the configuration to specify a
default value for the DP panel fitter property.

Patch 5 allows the configuration table to override the DP max link
rate value.

Patch 6 allows the configuration table to override the eDP panel
power sequence delay values.

Patch 7 allows the configuration table to override the eDP
backlight max (inverter frequency) and level (duty cycle) values.

Patch 8 adds the eDP panel power sequence values to the debugfs
output (i915_display_info)

Patch 9 adds the eDP backlight values to the debugfs output
(i915_display_info)

Patch 10 is an example ACPI property table to give some context
to the above code.  It can be compiled and placed in
/lib/firmware/drm_i915.aml for testing the code.

Bob Paauwe (10):
  drm/i915/config: Initial framework
  drm/i915/config: Add init-time configuration of bits per color.
  drm/i915/config: Add init-time configuration of general connector
    properties.
  drm/i915/config: Add init-time configuration of dp panel fitter
    property.
  drm/i915/config: Add init-time configuration of DP max link rate.
  drm/i915/config: Add init-time configuration of eDP PPS delays.
  drm/i915/config: Add init-time configuration of eDP backlight
    settings.
  drm/i915: Add PPS delay values to debugfs.
  drm/i915: Add backlight max and level to debugfs output.
  drm/i915/config: An example/test ACPI property table.

 drivers/gpu/drm/i915/Makefile            |   3 +-
 drivers/gpu/drm/i915/i915-properties.asl | 167 +++++++++
 drivers/gpu/drm/i915/i915_debugfs.c      |  18 +-
 drivers/gpu/drm/i915/i915_dma.c          |   4 +
 drivers/gpu/drm/i915/i915_drv.h          |  17 +
 drivers/gpu/drm/i915/i915_params.c       |   6 +
 drivers/gpu/drm/i915/intel_config.c      | 558 +++++++++++++++++++++++++++++++
 drivers/gpu/drm/i915/intel_display.c     |  14 +
 drivers/gpu/drm/i915/intel_dp.c          |  36 +-
 drivers/gpu/drm/i915/intel_drv.h         |  27 ++
 drivers/gpu/drm/i915/intel_modes.c       |   4 +-
 drivers/gpu/drm/i915/intel_panel.c       |   8 +
 12 files changed, 852 insertions(+), 10 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/i915-properties.asl
 create mode 100644 drivers/gpu/drm/i915/intel_config.c

-- 
2.1.0



More information about the Intel-gfx mailing list