Skip to content

Commit

Permalink
drm/i915: handle backlight through chip specific functions
Browse files Browse the repository at this point in the history
The backlight code has grown rather hairy, not least because the
hardware registers and bits have repeatedly been shuffled around. And
this isn't expected to get any easier with new hardware. Make things
easier for our (read: my) poor brains, and split the code up into chip
specific functions.

There should be no functional changes.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
  • Loading branch information
Jani Nikula authored and Daniel Vetter committed Nov 12, 2013
1 parent c91c9f3 commit 7bd688c
Show file tree
Hide file tree
Showing 4 changed files with 447 additions and 208 deletions.
9 changes: 9 additions & 0 deletions drivers/gpu/drm/i915/i915_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -351,6 +351,7 @@ struct drm_i915_error_state {
enum intel_ring_hangcheck_action hangcheck_action[I915_NUM_RINGS];
};

struct intel_connector;
struct intel_crtc_config;
struct intel_crtc;
struct intel_limit;
Expand Down Expand Up @@ -413,6 +414,14 @@ struct drm_i915_display_funcs {
/* render clock increase/decrease */
/* display clock increase/decrease */
/* pll clock increase/decrease */

int (*setup_backlight)(struct intel_connector *connector);
uint32_t (*get_max_backlight)(struct intel_connector *connector);
uint32_t (*get_backlight)(struct intel_connector *connector);
void (*set_backlight)(struct intel_connector *connector,
uint32_t level);
void (*disable_backlight)(struct intel_connector *connector);
void (*enable_backlight)(struct intel_connector *connector);
};

struct intel_uncore_funcs {
Expand Down
2 changes: 2 additions & 0 deletions drivers/gpu/drm/i915/intel_display.c
Original file line number Diff line number Diff line change
Expand Up @@ -10418,6 +10418,8 @@ static void intel_init_display(struct drm_device *dev)
dev_priv->display.queue_flip = intel_gen7_queue_flip;
break;
}

intel_panel_init_backlight_funcs(dev);
}

/*
Expand Down
2 changes: 2 additions & 0 deletions drivers/gpu/drm/i915/intel_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,7 @@ struct intel_panel {
struct {
bool present;
u32 level;
u32 max;
bool enabled;
struct backlight_device *device;
} backlight;
Expand Down Expand Up @@ -817,6 +818,7 @@ int intel_panel_setup_backlight(struct drm_connector *connector);
void intel_panel_enable_backlight(struct intel_connector *connector);
void intel_panel_disable_backlight(struct intel_connector *connector);
void intel_panel_destroy_backlight(struct drm_connector *connector);
void intel_panel_init_backlight_funcs(struct drm_device *dev);
enum drm_connector_status intel_panel_detect(struct drm_device *dev);


Expand Down
Loading

0 comments on commit 7bd688c

Please sign in to comment.