linux/drivers/gpu/drm
Lyude Paul 6eca310e89 drm/nouveau/kms/nv50-: Add basic DPCD backlight support for nouveau
This adds support for controlling panel backlights over eDP using VESA's
standard backlight control interface. Luckily, Nvidia was cool enough to
never come up with their own proprietary backlight control interface (at
least, not any that I or the laptop manufacturers I've talked to are aware
of), so this should work for any laptop panels which support the VESA
backlight control interface.

Note that we don't yet provide the panel backlight frequency to the DRM DP
backlight helpers. This should be fine for the time being, since it's not
required to get basic backlight controls working.

For reference: there's some mentions of PWM backlight values in
nouveau_reg.h, but I'm not sure these are the values we would want to use.
If we figure out how to get this information in the future, we'll have the
benefit of more granular backlight control.

Signed-off-by: Lyude Paul <lyude@redhat.com>
Reviewed-by: Ben Skeggs <bskeggs@redhat.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Dave Airlie <airlied@gmail.com>
Cc: greg.depoire@gmail.com
Link: https://patchwork.freedesktop.org/patch/msgid/20210514181504.565252-10-lyude@redhat.com
2021-06-09 13:35:56 -04:00
..
amd drm/ttm, drm/amdgpu: Allow the driver some control over swapping 2021-06-07 16:07:09 +02:00
arm drm/arm/malidp: Always list modifiers 2021-05-06 11:43:46 +02:00
armada drm/aperture: Convert drivers to aperture interfaces 2021-04-14 09:00:04 +02:00
aspeed drm/gem: Move drm_gem_fb_prepare_fb() to GEM atomic helpers 2021-02-23 08:54:22 +01:00
ast drm/ast: Remove reference to struct drm_device.pdev 2021-04-29 21:19:10 +02:00
atmel-hlcdc drm: Use state helper instead of the plane state pointer 2021-02-25 08:05:28 +01:00
bochs drm/bochs: Add screen blanking support 2021-04-27 14:14:12 +02:00
bridge drm/bridge: ti-sn65dsi83: Fix sparse warnings 2021-06-09 10:52:37 +02:00
etnaviv dma-buf: drop the _rcu postfix on function names v3 2021-06-06 11:19:51 +02:00
exynos drm/exynos/exynos_drm_ipp: Fix documentation for 'exynos_drm_ipp_get_{caps,res}_ioctl()' 2021-06-03 13:33:01 +02:00
fsl-dcu drm: Use state helper instead of the plane state pointer 2021-02-25 08:05:28 +01:00
gma500 drm/gma500: update comment of psb_spank() 2021-05-06 14:25:44 +02:00
gud drm/gud: cleanup coding style a bit 2021-04-27 13:13:19 +02:00
hisilicon drm/hisilicon/kirin: Use the correct HiSilicon copyright 2021-05-26 21:19:28 +02:00
hyperv drm/hyperv: Handle feature change message from device 2021-06-07 08:04:10 -07:00
i2c
i810 drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
i915 drm/dp: Extract i915's eDP backlight code into DRM helpers 2021-06-09 13:35:22 -04:00
imx drm/imx: fixes, dma-fence annotation, and color encoding/range plane properties 2021-05-20 10:54:31 +10:00
ingenic drm/ingenic: Add option to alloc cached GEM buffers 2021-05-25 11:42:53 +01:00
kmb drm: fix semicolon.cocci warnings 2021-05-12 11:31:28 +02:00
lib
lima drm for 5.13-rc1 2021-04-28 10:01:40 -07:00
mcde drm/mcde: Remove redundant error printing in mcde_dsi_probe() 2021-05-22 01:58:27 +02:00
mediatek drm/mediatek/mtk_disp_rdma: Strip and demote non-conformant kernel-doc header 2021-06-03 13:28:57 +02:00
meson drm/meson: dw-hdmi: disable DW-HDMI CEC sub-driver 2021-04-20 17:22:44 +02:00
mga drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
mgag200 drm/format-helper: Pass destination pitch to drm_fb_memcpy_dstclip() 2021-05-01 12:45:03 +02:00
msm dma-buf: drop the _rcu postfix on function names v3 2021-06-06 11:19:51 +02:00
mxsfb drm/mxsfb: Don't select DRM_KMS_FB_HELPER 2021-04-26 12:42:57 +02:00
nouveau drm/nouveau/kms/nv50-: Add basic DPCD backlight support for nouveau 2021-06-09 13:35:56 -04:00
omapdrm Merge drm/drm-fixes into drm-next 2021-04-13 23:15:09 +02:00
panel drm/panel: add rotation support for Elida KD35T133 panels 2021-06-03 15:05:39 +02:00
panfrost dma-buf: drop the _rcu postfix on function names v3 2021-06-06 11:19:51 +02:00
pl111 drm/pl111: Actually fix CONFIG_VEXPRESS_CONFIG depends 2021-06-04 15:02:26 +02:00
qxl drm: qxl: ensure surf.data is ininitialized 2021-06-09 08:52:07 +02:00
r128 drm: fix leaked dma handles after removing drm_pci_free 2021-05-26 21:18:13 +02:00
radeon dma-buf: drop the _rcu postfix on function names v3 2021-06-06 11:19:51 +02:00
rcar-du Merge drm/drm-fixes into drm-next 2021-04-13 23:15:09 +02:00
rockchip drm/rockchip: vop: add PX30 version info 2021-05-28 20:30:35 +02:00
savage drm/savage: Remove references to struct drm_device.pdev 2021-05-03 19:48:30 +02:00
scheduler drm/sched: Avoid data corruptions 2021-05-19 23:50:28 -04:00
selftests
shmobile
sis drm/sis: Remove references to struct drm_device.pdev 2021-05-03 19:48:33 +02:00
sti drm/sti/sti_hqvdp: Fix incorrectly named function 'sti_hqvdp_vtg_cb()' 2021-06-03 13:29:32 +02:00
stm drm/stm: Remove usage of drm_display_mode_to_videomode() 2021-06-08 18:49:36 +02:00
sun4i drm/sun4i: de3: Be explicit about supported modifiers 2021-06-07 13:33:46 +02:00
tdfx
tegra Merge drm/drm-next into drm-misc-next 2021-05-11 15:59:18 +02:00
tidss drm: Use state helper instead of the plane state pointer 2021-02-25 08:05:28 +01:00
tilcdc drm/tilcdc: fix pixel clock setting warning message 2021-03-24 12:05:28 +02:00
tiny drm/simpledrm: Use %p4cc to print 4CC format 2021-05-27 08:34:30 +02:00
ttm drm/ttm: nuke VM_MIXEDMAP on BO mappings v3 2021-06-08 11:47:51 +02:00
tve200 drm/gem: Move drm_gem_fb_prepare_fb() to GEM atomic helpers 2021-02-23 08:54:22 +01:00
udl drm-misc-next for 5.13: 2021-03-16 17:08:46 +10:00
v3d Revert "drm/scheduler: Job timeout handler returns status (v3)" 2021-02-10 15:26:00 +01:00
vboxvideo drm/vboxvideo/modesetting: Provide function names for prototype headers 2021-06-03 13:33:18 +02:00
vc4 drm/vc4: hdmi: Convert to gpiod 2021-06-07 13:33:46 +02:00
vgem dma-buf: drop the _rcu postfix on function names v3 2021-06-06 11:19:51 +02:00
via drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
virtio dma-buf: drop the _rcu postfix on function names v3 2021-06-06 11:19:51 +02:00
vkms drm/vkms: add overlay support 2021-04-29 18:53:05 -03:00
vmwgfx drm/vmwgfx: use ttm_bo_move_null() when there is nothing to move 2021-06-09 09:10:22 +02:00
xen Merge drm/drm-fixes into drm-next 2021-04-13 23:15:09 +02:00
xlnx drm/dp: Pass drm_dp_aux to drm_dp*_link_train_channel_eq_delay() 2021-04-27 18:43:42 -04:00
zte drm/zte: Don't select DRM_KMS_FB_HELPER 2021-04-26 12:43:04 +02:00
Kconfig drm/hyperv: Add DRM driver for hyperv synthetic video device 2021-06-07 08:04:10 -07:00
Makefile drm/hyperv: Add DRM driver for hyperv synthetic video device 2021-06-07 08:04:10 -07:00
drm_agpsupport.c drm: Include <asm/agp.h> iff CONFIG_AGP is set 2021-05-11 14:13:33 +02:00
drm_aperture.c drm/aperture: Fix missing unlock on error in devm_aperture_acquire() 2021-05-13 15:06:32 +02:00
drm_atomic.c Merge drm/drm-next into drm-misc-next 2021-04-26 14:03:09 +02:00
drm_atomic_helper.c drm: drm_atomic_helper.c: Correct comments format 2021-04-12 17:57:14 +02:00
drm_atomic_state_helper.c
drm_atomic_uapi.c drm: drm_atomic_uapi.c: Use tabs for code indents 2021-04-22 10:46:00 +02:00
drm_auth.c drm: drm_auth.c: Adjust end of block comment 2021-04-22 10:26:35 +02:00
drm_blend.c drm: drm_blend.c: Use tabs for code indents 2021-04-22 10:46:35 +02:00
drm_bridge.c drm/bridge: Fix the stop condition of drm_bridge_chain_pre_enable() 2021-04-20 08:56:44 -07:00
drm_bridge_connector.c
drm_bufs.c drm: fix leaked dma handles after removing drm_pci_free 2021-05-26 21:18:13 +02:00
drm_cache.c drm: Add a prefetching memcpy_from_wc 2021-06-07 16:07:08 +02:00
drm_client.c
drm_client_modeset.c drm: replace drm_modeset_lock_all() in drm_client_modeset_dpms_legacy() 2021-02-09 17:16:57 +01:00
drm_color_mgmt.c
drm_connector.c drm/connector: Add a helper to attach the colorspace property 2021-05-07 17:14:59 +02:00
drm_context.c drm: correct function name drm_legacy_ctxbitmap_flush() 2021-05-16 22:01:14 +02:00
drm_crtc.c drm: Switch to %p4cc format modifier 2021-02-17 12:52:59 +01:00
drm_crtc_helper.c
drm_crtc_helper_internal.h
drm_crtc_internal.h
drm_damage_helper.c
drm_debugfs.c
drm_debugfs_crc.c
drm_displayid.c drm/displayid: rename displayid_hdr to displayid_header 2021-03-31 15:42:39 +03:00
drm_dma.c drm: remove usage of drm_pci_alloc/free 2021-04-26 18:19:15 +02:00
drm_dp_aux_dev.c drm/dp: Add backpointer to drm_device in drm_dp_aux 2021-04-27 18:43:42 -04:00
drm_dp_cec.c
drm_dp_dual_mode_helper.c drm/dp_dual_mode: Convert drm_dp_dual_mode_helper.c to using drm_err/drm_dbg_kms() 2021-04-27 18:43:45 -04:00
drm_dp_helper.c drm/dp: Extract i915's eDP backlight code into DRM helpers 2021-06-09 13:35:22 -04:00
drm_dp_mst_topology.c drm/dp_mst: Use kHz as link rate units when settig source max link caps at init 2021-05-27 15:30:59 -04:00
drm_dp_mst_topology_internal.h
drm_drv.c drm: Add a prefetching memcpy_from_wc 2021-06-07 16:07:08 +02:00
drm_dsc.c
drm_dumb_buffers.c
drm_edid.c drm/edid: use the new displayid iterator for tile info 2021-03-31 15:42:02 +03:00
drm_edid_load.c
drm_encoder.c
drm_encoder_slave.c
drm_fb_cma_helper.c drm: Add and export function drm_fb_cma_sync_non_coherent 2021-05-25 11:42:09 +01:00
drm_fb_helper.c drm/fb-helper: improve DRM fbdev emulation device names 2021-05-26 21:22:38 +02:00
drm_file.c drm/drm_file.c: Define drm_send_event_helper() as 'static' 2021-04-27 14:23:12 +02:00
drm_flip_work.c
drm_format_helper.c drm/format-helper: Add blitter functions 2021-05-01 12:45:03 +02:00
drm_fourcc.c drm: Remove drm_get_format_name() 2021-05-27 08:34:50 +02:00
drm_framebuffer.c drm: Switch to %p4cc format modifier 2021-02-17 12:52:59 +01:00
drm_gem.c dma-buf: drop the _rcu postfix on function names v3 2021-06-06 11:19:51 +02:00
drm_gem_atomic_helper.c dma-buf: rename dma_resv_get_excl_rcu to _unlocked 2021-06-06 11:19:30 +02:00
drm_gem_cma_helper.c drm: Fix misleading documentation of drm_gem_cma_create() 2021-06-01 17:27:20 +01:00
drm_gem_framebuffer_helper.c drm: log errors in drm_gem_fb_init_with_funcs 2021-05-18 19:48:18 +02:00
drm_gem_shmem_helper.c drm/shmem-helpers: vunmap: Don't put pages for dma-buf 2021-03-11 11:11:33 +01:00
drm_gem_ttm_helper.c drm/ttm: rename bo->mem and make it a pointer 2021-06-02 11:07:25 +02:00
drm_gem_vram_helper.c drm/ttm: flip the switch for driver allocated resources v2 2021-06-04 15:16:46 +02:00
drm_hashtab.c
drm_hdcp.c
drm_internal.h drm: Mark IRQ_BUSID ioctl as legacy 2021-05-17 21:19:48 +02:00
drm_ioc32.c drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
drm_ioctl.c drm: Mark IRQ_BUSID ioctl as legacy 2021-05-17 21:19:48 +02:00
drm_irq.c
drm_kms_helper_common.c
drm_lease.c drm: Don't include drm_legacy.h in drm_lease.c 2021-05-17 21:19:22 +02:00
drm_legacy.h drm: Mark IRQ_BUSID ioctl as legacy 2021-05-17 21:19:48 +02:00
drm_legacy_misc.c drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
drm_lock.c
drm_managed.c
drm_memory.c drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
drm_mipi_dbi.c drm: Switch to %p4cc format modifier 2021-02-17 12:52:59 +01:00
drm_mipi_dsi.c
drm_mm.c
drm_mode_config.c
drm_mode_object.c
drm_modes.c Merge drm/drm-next into drm-misc-next 2021-05-11 15:59:18 +02:00
drm_modeset_helper.c
drm_modeset_lock.c
drm_of.c
drm_panel.c
drm_panel_orientation_quirks.c
drm_pci.c drm: Mark IRQ_BUSID ioctl as legacy 2021-05-17 21:19:48 +02:00
drm_plane.c drm/modifiers: Enforce consistency between the cap an IN_FORMATS 2021-05-12 11:31:29 +02:00
drm_plane_helper.c
drm_prime.c
drm_print.c
drm_probe_helper.c drm/probe-helper: Check epoch counter in output_poll_execute() 2021-03-16 12:45:52 +01:00
drm_property.c drm: Few typo fixes 2021-03-18 14:22:50 +01:00
drm_rect.c
drm_scatter.c
drm_scdc_helper.c
drm_self_refresh_helper.c
drm_simple_kms_helper.c drm/atomic: Pass the full state to planes atomic disable and update 2021-02-25 08:05:28 +01:00
drm_syncobj.c drm/syncobj: use newly allocated stub fences 2021-04-08 12:21:13 +02:00
drm_sysfs.c drm/sysfs: Convert sysfs sprintf/snprintf family to sysfs_emit 2021-03-23 07:41:39 -04:00
drm_trace.h
drm_trace_points.c
drm_vblank.c drm/vblank: Do not store a new vblank timestamp in drm_vblank_restore() 2021-04-01 20:29:17 +03:00
drm_vblank_work.c
drm_vm.c drm: Mark AGP implementation and ioctls as legacy 2021-05-10 15:46:58 +02:00
drm_vma_manager.c
drm_writeback.c