diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2022-09-02 14:56:09 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2022-09-02 14:56:09 -0700 | 
| commit | 1e8e515edd6dbe15b86003d846fee005c12c0685 (patch) | |
| tree | 0898632ee36df43d573be5bd840216ef9c927d87 /drivers/gpu/drm/i915/display/intel_backlight.c | |
| parent | 0b3acd1cc0222953035d18176b1e4aa06624fd6e (diff) | |
| parent | bfe632f6d0a1371784dd9a11fa5a9aa2dbf53bf1 (diff) | |
Merge tag 'drm-fixes-2022-09-02' of git://anongit.freedesktop.org/drm/drm
Pull drm fixes from Dave Airlie:
 "Regular fixes pull. One core dma-buf fix, then two weeks of i915
  fixes, a lot of amdgpu fixes mostly for new IP, and a bunch of msm
  fixes, mostly modesetting ones.
  Nothing seems too bad at this point.
  dma-buf/dma-resv:
   - Fence-handling fix
  i915:
   - GVT fixes including fix for a CommetLake regression in mmio table
     and misc doc and typo fixes
   - Fix CCS handling
   - Fix for guc requests after reset
   - Display DSI related fixes
   - Display backlight related fixes
   - Fix for a null pointer dereference
   - HDMI related quirk for ECS Liva Q2 with GLK graphics
   - Skip wm/ddb readout for disabled pipes
  amdgpu:
   - FRU error message fix
   - MES 11 updates
   - DCN 3.2.x fixes
   - DCN 3.1.4 fixes
   - Fix possible use after free in CS IOCTL
   - SMU 13.0.x fixes
   - Fix iolink reporting on devices with direct connections to CPU
   - GFX10 tap delay firmware fixes
  msm:
   - Fix for inconsistent indenting in msm_dsi_dphy_timing_calc_v3().
   - Fix to make eDP the first connector in the connected list.
   - Fix to populate intf_cfg correctly before calling reset_intf_cfg().
   - Specify the correct number of DSI regulators for SDM660.
   - Specify the correct number of DSI regulators for MSM8996.
   - Fix for removing DP_RECOVERED_CLOCK_OUT_EN bit for tps4 link training
   - Fix probe-deferral crash in gpu devfreq
   - Fix gpu debugfs deadlock"
* tag 'drm-fixes-2022-09-02' of git://anongit.freedesktop.org/drm/drm: (51 commits)
  drm/amd/amdgpu: skip ucode loading if ucode_size == 0
  drm/amdgpu: only init tap_delay ucode when it's included in ucode binary
  drm/amd/display: Fix black flash when switching from ODM2to1 to ODMBypass
  drm/amd/display: Fix check for stream and plane
  drm/amd/display: Re-initialize viewport after pipe merge
  drm/amd/display: Use correct plane for CAB cursor size allocation
  drm/amdgpu: ensure no PCIe peer access for CPU XGMI iolinks
  drm/amd/pm: bump SMU 13.0.0 driver_if header version
  drm/amd/pm: use vbios carried pptable for all SMU13.0.7 SKUs
  drm/amd/pm: use vbios carried pptable for those supported SKUs
  drm/amd/display: fix wrong register access
  drm/amd/display: use actual cursor size instead of max for CAB allocation
  drm/amd/display: disable display fresh from MALL on an edge case for DCN321
  drm/amd/display: Fix CAB cursor size allocation for DCN32/321
  drm/amd/display: Missing HPO instance added
  drm/amd/display: set dig fifo read start level to 7 before dig fifo reset
  drm/amdgpu: Fix use-after-free in amdgpu_cs_ioctl
  drm/amd/display: Fix OTG H timing reset for dcn314
  drm/amd/display: Fix DCN32 DPSTREAMCLK_CNTL programming
  drm/amdgpu: Update mes_v11_api_def.h
  ...
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_backlight.c')
| -rw-r--r-- | drivers/gpu/drm/i915/display/intel_backlight.c | 37 | 
1 files changed, 20 insertions, 17 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_backlight.c b/drivers/gpu/drm/i915/display/intel_backlight.c index 110fc98ec280..f5e1d692976e 100644 --- a/drivers/gpu/drm/i915/display/intel_backlight.c +++ b/drivers/gpu/drm/i915/display/intel_backlight.c @@ -16,6 +16,7 @@  #include "intel_dsi_dcs_backlight.h"  #include "intel_panel.h"  #include "intel_pci_config.h" +#include "intel_pps.h"  /**   * scale - scale values from one range to another @@ -971,26 +972,24 @@ int intel_backlight_device_register(struct intel_connector *connector)  	if (!name)  		return -ENOMEM; -	bd = backlight_device_register(name, connector->base.kdev, connector, -				       &intel_backlight_device_ops, &props); - -	/* -	 * Using the same name independent of the drm device or connector -	 * prevents registration of multiple backlight devices in the -	 * driver. However, we need to use the default name for backward -	 * compatibility. Use unique names for subsequent backlight devices as a -	 * fallback when the default name already exists. -	 */ -	if (IS_ERR(bd) && PTR_ERR(bd) == -EEXIST) { +	bd = backlight_device_get_by_name(name); +	if (bd) { +		put_device(&bd->dev); +		/* +		 * Using the same name independent of the drm device or connector +		 * prevents registration of multiple backlight devices in the +		 * driver. However, we need to use the default name for backward +		 * compatibility. Use unique names for subsequent backlight devices as a +		 * fallback when the default name already exists. +		 */  		kfree(name);  		name = kasprintf(GFP_KERNEL, "card%d-%s-backlight",  				 i915->drm.primary->index, connector->base.name);  		if (!name)  			return -ENOMEM; - -		bd = backlight_device_register(name, connector->base.kdev, connector, -					       &intel_backlight_device_ops, &props);  	} +	bd = backlight_device_register(name, connector->base.kdev, connector, +				       &intel_backlight_device_ops, &props);  	if (IS_ERR(bd)) {  		drm_err(&i915->drm, @@ -1773,9 +1772,13 @@ void intel_backlight_init_funcs(struct intel_panel *panel)  		panel->backlight.pwm_funcs = &i9xx_pwm_funcs;  	} -	if (connector->base.connector_type == DRM_MODE_CONNECTOR_eDP && -	    intel_dp_aux_init_backlight_funcs(connector) == 0) -		return; +	if (connector->base.connector_type == DRM_MODE_CONNECTOR_eDP) { +		if (intel_dp_aux_init_backlight_funcs(connector) == 0) +			return; + +		if (!(dev_priv->quirks & QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK)) +			connector->panel.backlight.power = intel_pps_backlight_power; +	}  	/* We're using a standard PWM backlight interface */  	panel->backlight.funcs = &pwm_bl_funcs;  | 
