diff options
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_panel.c')
| -rw-r--r-- | drivers/gpu/drm/i915/display/intel_panel.c | 19 | 
1 files changed, 18 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c index 1640726bfbf6..42aa04bac261 100644 --- a/drivers/gpu/drm/i915/display/intel_panel.c +++ b/drivers/gpu/drm/i915/display/intel_panel.c @@ -31,6 +31,8 @@  #include <linux/kernel.h>  #include <linux/pwm.h> +#include <drm/drm_edid.h> +  #include "i915_reg.h"  #include "intel_backlight.h"  #include "intel_connector.h" @@ -661,10 +663,22 @@ intel_panel_mode_valid(struct intel_connector *connector,  	return MODE_OK;  } -int intel_panel_init(struct intel_connector *connector) +void intel_panel_init_alloc(struct intel_connector *connector) +{ +	struct intel_panel *panel = &connector->panel; + +	connector->panel.vbt.panel_type = -1; +	connector->panel.vbt.backlight.controller = -1; +	INIT_LIST_HEAD(&panel->fixed_modes); +} + +int intel_panel_init(struct intel_connector *connector, +		     const struct drm_edid *fixed_edid)  {  	struct intel_panel *panel = &connector->panel; +	panel->fixed_edid = fixed_edid; +  	intel_backlight_init_funcs(panel);  	if (!has_drrs_modes(connector)) @@ -683,6 +697,9 @@ void intel_panel_fini(struct intel_connector *connector)  	struct intel_panel *panel = &connector->panel;  	struct drm_display_mode *fixed_mode, *next; +	if (!IS_ERR_OR_NULL(panel->fixed_edid)) +		drm_edid_free(panel->fixed_edid); +  	intel_backlight_destroy(panel);  	intel_bios_fini_panel(panel);  |