OpenCloudOS-Kernel/drivers/gpu/drm/i915/display
Hans de Goede b694131102 drm/i915: DSI: select correct PWM controller to use based on the VBT
At least Bay Trail (BYT) and Cherry Trail (CHT) devices can use 1 of 2
different PWM controllers for controlling the LCD's backlight brightness.
Either the one integrated into the PMIC or the one integrated into the
SoC (the 1st LPSS PWM controller).

So far in the LPSS code on BYT we have skipped registering the LPSS PWM
controller "pwm_backlight" lookup entry when a Crystal Cove PMIC is
present, assuming that in this case the PMIC PWM controller will be used.

On CHT we have been relying on only 1 of the 2 PWM controllers being
enabled in the DSDT at the same time; and always registered the lookup.

So far this has been working, but the correct way to determine which PWM
controller needs to be used is by checking a bit in the VBT table and
recently I've learned about 2 different BYT devices:
Point of View MOBII TAB-P800W
Acer Switch 10 SW5-012

Which use a Crystal Cove PMIC, yet the LCD is connected to the SoC/LPSS
PWM controller (and the VBT correctly indicates this), so here our old
heuristics fail.

This commit fixes using the wrong PWM controller on these devices by
calling pwm_get() for the right PWM controller based on the
VBT dsi.config.pwm_blc bit.

Note this is part of a series which contains 2 other patches which renames
the PWM lookup for the 1st SoC/LPSS PWM from "pwm_backlight" to
"pwm_pmic_backlight" and the PWM lookup for the Crystal Cove PMIC PWM
from "pwm_backlight" to "pwm_pmic_backlight".

Acked-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20191216202906.1662893-4-hdegoede@redhat.com
2019-12-17 11:24:48 +01:00
..
Makefile drm/i915: use upstream version of header tests 2019-07-30 12:11:57 +03:00
dvo_ch7xxx.c drm/i915: rename intel_drv.h to display/intel_display_types.h 2019-08-07 12:43:50 +03:00
dvo_ch7017.c drm/i915: rename intel_drv.h to display/intel_display_types.h 2019-08-07 12:43:50 +03:00
dvo_ivch.c drm/i915: rename intel_drv.h to display/intel_display_types.h 2019-08-07 12:43:50 +03:00
dvo_ns2501.c drm/i915: rename intel_drv.h to display/intel_display_types.h 2019-08-07 12:43:50 +03:00
dvo_sil164.c drm/i915: rename intel_drv.h to display/intel_display_types.h 2019-08-07 12:43:50 +03:00
dvo_tfp410.c drm/i915: rename intel_drv.h to display/intel_display_types.h 2019-08-07 12:43:50 +03:00
icl_dsi.c drm/i915/dsi: add support for DSC 2019-12-11 08:20:06 +02:00
intel_acpi.c
intel_acpi.h
intel_atomic.c drm/i915: Preload LUTs if the hw isn't currently using them 2019-11-11 11:44:43 +02:00
intel_atomic.h drm/i915: Complete crtc hw/uapi split, v6. 2019-11-01 14:51:21 +01:00
intel_atomic_plane.c drm/i915: Remove special case slave handling during hw programming, v3. 2019-11-01 14:51:21 +01:00
intel_atomic_plane.h drm/i915: Remove special case slave handling during hw programming, v3. 2019-11-01 14:51:21 +01:00
intel_audio.c drm/i915: Perform automated conversions for crtc uapi/hw split, base -> uapi. 2019-11-01 14:51:21 +01:00
intel_audio.h
intel_bios.c drm/i915/bios: remove extra debug messages 2019-12-13 14:36:06 -08:00
intel_bios.h drm/i915/bios: add support for querying DSC details for encoder 2019-12-11 07:39:47 +02:00
intel_bw.c drm/i915: Support more QGV points 2019-11-26 18:27:37 +02:00
intel_bw.h drm/i915/bw: make intel_atomic_get_bw_state() static 2019-08-07 12:01:46 +03:00
intel_cdclk.c drm/i915/ehl: Update voltage level checks 2019-11-18 21:07:04 -08:00
intel_cdclk.h drm/i915: Extract intel_modeset_calc_cdclk() 2019-09-16 14:51:09 +03:00
intel_color.c drm/i915: Preload LUTs if the hw isn't currently using them 2019-11-11 11:44:43 +02:00
intel_color.h drm/i915/display: Add func to compare hw/sw gamma lut 2019-09-04 11:55:30 +03:00
intel_combo_phy.c drm/i915: rename intel_drv.h to display/intel_display_types.h 2019-08-07 12:43:50 +03:00
intel_combo_phy.h drm/i915/gen11: Convert combo PHY logic to use new 'enum phy' namespace 2019-07-10 18:22:34 -07:00
intel_connector.c drm/i915/dp: Attach colorspace property 2019-10-15 16:24:59 +03:00
intel_connector.h
intel_crt.c drm/i915: Perform automated conversions for crtc uapi/hw split, base -> uapi. 2019-11-01 14:51:21 +01:00
intel_crt.h
intel_ddi.c drm/i915/dsc: add basic hardware state readout support 2019-12-11 08:16:16 +02:00
intel_ddi.h drm/i915/dp: Add support of BT.2020 Colorimetry to DP MSA 2019-10-15 16:24:59 +03:00
intel_display.c drm/i915/dsi: fix pipe D readout for DSI transcoders 2019-12-13 15:05:37 -08:00
intel_display.h drm/i915: Pass cpu transcoder to assert_pipe() 2019-12-11 17:24:06 +02:00
intel_display_power.c drm/i915/icl: Cleanup combo PHY aux power well handlers 2019-12-13 12:06:34 -08:00
intel_display_power.h drm/i915/tgl: Switch between dc3co and dc5 based on display idleness 2019-10-08 11:05:28 +03:00
intel_display_types.h drm/i915: Preload LUTs if the hw isn't currently using them 2019-11-11 11:44:43 +02:00
intel_dp.c drm/i915/dsc: make DSC source support helper generic 2019-12-11 08:16:05 +02:00
intel_dp.h drm/i915/dp: Program an Infoframe SDP Header and DB for HDR Static Metadata 2019-10-15 16:24:59 +03:00
intel_dp_aux_backlight.c drm/i915: rename intel_drv.h to display/intel_display_types.h 2019-08-07 12:43:50 +03:00
intel_dp_aux_backlight.h
intel_dp_link_training.c drm/i915: rename intel_drv.h to display/intel_display_types.h 2019-08-07 12:43:50 +03:00
intel_dp_link_training.h
intel_dp_mst.c drm/i915/display/tgl: Fix the order of the step to turn transcoder clock off 2019-12-06 15:19:37 -08:00
intel_dp_mst.h drm/i915/mst: un-inline intel_dp_mst_encoder_active_links() 2019-08-07 12:01:51 +03:00
intel_dpio_phy.c drm/i915: Perform automated conversions for crtc uapi/hw split, base -> uapi. 2019-11-01 14:51:21 +01:00
intel_dpio_phy.h
intel_dpll_mgr.c drm/i915: Perform automated conversions for crtc uapi/hw split, base -> uapi. 2019-11-01 14:51:21 +01:00
intel_dpll_mgr.h drm/i915: Describe structure member in documentation 2019-10-25 12:06:26 +01:00
intel_dsb.c drm/i915/dsb: fix cmd_buf being wrongly set 2019-12-02 10:06:25 -08:00
intel_dsb.h drm/i915/dsb: remove atomic operations 2019-11-18 13:27:09 -08:00
intel_dsi.c drm/i915: Don't advertise modes that exceed the max plane size 2019-09-19 20:28:57 +03:00
intel_dsi.h drm/i915: rename intel_drv.h to display/intel_display_types.h 2019-08-07 12:43:50 +03:00
intel_dsi_dcs_backlight.c drm/i915: rename intel_drv.h to display/intel_display_types.h 2019-08-07 12:43:50 +03:00
intel_dsi_dcs_backlight.h
intel_dsi_vbt.c drm/i915: rename intel_drv.h to display/intel_display_types.h 2019-08-07 12:43:50 +03:00
intel_dvo.c drm/i915: Perform automated conversions for crtc uapi/hw split, base -> uapi. 2019-11-01 14:51:21 +01:00
intel_dvo.h
intel_dvo_dev.h
intel_fbc.c drm/i915/fbc: Reallocate cfb if we need more of it 2019-12-09 16:10:59 +02:00
intel_fbc.h drm/i915/fbc: Wait for vblank after FBC disable on glk+ 2019-12-09 16:10:58 +02:00
intel_fbdev.c drm/i915/fbdev: Restore physical addresses for fb_mmap() 2019-11-14 12:16:13 +00:00
intel_fbdev.h
intel_fifo_underrun.c drm/i915: rename intel_drv.h to display/intel_display_types.h 2019-08-07 12:43:50 +03:00
intel_fifo_underrun.h
intel_frontbuffer.c drm/i915: Coordinate i915_active with its own mutex 2019-10-04 15:39:12 +01:00
intel_frontbuffer.h drm/i915: Extract intel_frontbuffer active tracking 2019-08-16 09:51:11 +01:00
intel_gmbus.c drm/i915: introduce INTEL_DISPLAY_ENABLED() 2019-09-16 10:20:05 +03:00
intel_gmbus.h drm/i915: Move gmbus definitions out of i915_reg.h 2019-08-16 21:52:49 +01:00
intel_hdcp.c drm/i915/hdcp: Nuke intel_hdcp_transcoder_config() 2019-12-09 17:49:39 +02:00
intel_hdcp.h drm/i915/hdcp: Nuke intel_hdcp_transcoder_config() 2019-12-09 17:49:39 +02:00
intel_hdmi.c drm/i915/hdcp: Nuke intel_hdcp_transcoder_config() 2019-12-09 17:49:39 +02:00
intel_hdmi.h drm: Move port definition back to i915 header 2019-08-30 14:08:26 +05:30
intel_hotplug.c drm/i915: Prefer encoder->name over port_name() 2019-09-02 18:43:28 +03:00
intel_hotplug.h drm: Move port definition back to i915 header 2019-08-30 14:08:26 +05:30
intel_lpe_audio.c drm/i915: add INTEL_NUM_PIPES() and use it 2019-09-11 22:33:20 +03:00
intel_lpe_audio.h
intel_lspcon.c drm/i915: Perform automated conversions for crtc uapi/hw split, base -> hw. 2019-11-01 14:51:20 +01:00
intel_lspcon.h
intel_lvds.c drm/i915: Perform automated conversions for crtc uapi/hw split, base -> uapi. 2019-11-01 14:51:21 +01:00
intel_lvds.h
intel_opregion.c drm/i915: opregion: set opregion chpd value to indicate the driver handles hotplug 2019-12-16 21:38:05 +01:00
intel_opregion.h
intel_overlay.c drm/i915: Avoid calling i915_gem_object_unbind holding object lock 2019-12-07 19:27:36 +00:00
intel_overlay.h
intel_panel.c drm/i915: DSI: select correct PWM controller to use based on the VBT 2019-12-17 11:24:48 +01:00
intel_panel.h
intel_pipe_crc.c drm/i915: Perform automated conversions for crtc uapi/hw split, base -> uapi. 2019-11-01 14:51:21 +01:00
intel_pipe_crc.h
intel_psr.c drm/i915/psr: Check if sink PSR capability changed 2019-12-02 12:06:15 -08:00
intel_psr.h drm/i915: Do not unmask PSR interruption in IRQ postinstall 2019-08-22 13:09:24 -07:00
intel_quirks.c drm/i915: rename intel_drv.h to display/intel_display_types.h 2019-08-07 12:43:50 +03:00
intel_quirks.h
intel_sdvo.c drm/i915: Drop redundant aspec ratio prop value initialization 2019-11-14 19:49:19 +02:00
intel_sdvo.h drm: Move port definition back to i915 header 2019-08-30 14:08:26 +05:30
intel_sdvo_regs.h
intel_sprite.c drm/i915: fix accidental static variable use 2019-11-18 13:06:22 +02:00
intel_sprite.h drm/i915: Allow planes to declare their minimum acceptable cdclk 2019-10-24 21:22:25 +03:00
intel_tc.c drm/i915/tc: Update DP_MODE programming 2019-09-27 10:40:17 -07:00
intel_tc.h drm/i915/tc: Update DP_MODE programming 2019-09-27 10:40:17 -07:00
intel_tv.c drm/i915: Perform automated conversions for crtc uapi/hw split, base -> uapi. 2019-11-01 14:51:21 +01:00
intel_tv.h
intel_vbt_defs.h drm/i915/bios: parse compression parameters block 2019-12-11 07:39:41 +02:00
intel_vdsc.c drm/i915/dsc: add basic hardware state readout support 2019-12-11 08:16:16 +02:00
intel_vdsc.h drm/i915/dsc: add basic hardware state readout support 2019-12-11 08:16:16 +02:00
intel_vga.c drm/i915/vga: rename intel_vga_msr_write() to intel_vga_reset_io_mem() 2019-10-06 11:24:53 +03:00
intel_vga.h drm/i915/vga: rename intel_vga_msr_write() to intel_vga_reset_io_mem() 2019-10-06 11:24:53 +03:00
vlv_dsi.c drm/i915: Perform automated conversions for crtc uapi/hw split, base -> uapi. 2019-11-01 14:51:21 +01:00
vlv_dsi_pll.c drm/i915: Wrappers for display register waits 2019-08-16 22:19:05 +01:00