linux/drivers
Melissa Wen f616ecec0f drm/amd/display: don't ignore alpha property on pre-multiplied mode
commit e4f1541caf60fcbe5a59e9d25805c0b5865e546a upstream.

"Pre-multiplied" is the default pixel blend mode for KMS/DRM, as
documented in supported_modes of drm_plane_create_blend_mode_property():
https://cgit.freedesktop.org/drm/drm-misc/tree/drivers/gpu/drm/drm_blend.c

In this mode, both 'pixel alpha' and 'plane alpha' participate in the
calculation, as described by the pixel blend mode formula in KMS/DRM
documentation:

out.rgb = plane_alpha * fg.rgb +
          (1 - (plane_alpha * fg.alpha)) * bg.rgb

Considering the blend config mechanisms we have in the driver so far,
the alpha mode that better fits this blend mode is the
_PER_PIXEL_ALPHA_COMBINED_GLOBAL_GAIN, where the value for global_gain
is the plane alpha (global_alpha).

With this change, alpha property stops to be ignored. It also addresses
Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1734

v2:
 * keep the 8-bit value for global_alpha_value (Nicholas)
 * correct the logical ordering for combined global gain (Nicholas)
 * apply to dcn10 too (Nicholas)

Signed-off-by: Melissa Wen <mwen@igalia.com>
Tested-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Tested-by: Simon Ser <contact@emersion.fr>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-04-20 09:19:39 +02:00
..
accessibility
acpi ACPI: processor idle: Check for architectural support for LPI 2022-04-15 14:18:41 +02:00
amba ARM: 9120/1: Revert "amba: make use of -1 IRQs warn" 2021-11-06 13:59:45 +01:00
android binder: fix handling of error during copy 2022-01-27 09:19:38 +01:00
ata ata: libata-core: Disable READ LOG DMA EXT for Samsung 840 EVOs 2022-04-20 09:19:37 +02:00
atm atm: eni: Add check for dma_map_single 2022-03-23 09:12:07 +01:00
auxdisplay auxdisplay: ht16k33: Fix frame buffer device blanking 2021-11-17 09:48:45 +01:00
base PM: core: keep irq flags in device_pm_check_callbacks() 2022-04-15 14:18:23 +02:00
bcma bcma: Fix memory leak for internally-handled cores 2021-09-15 09:47:37 +02:00
block drbd: Fix five use after free bugs in get_initial_state 2022-04-15 14:18:38 +02:00
bluetooth Bluetooth: btmtksdio: Fix kernel oops in btmtksdio_interrupt 2022-04-15 14:18:16 +02:00
bus bus: ti-sysc: Use CLKDM_NOAUTO for dra7 dcan1 for errata i893 2021-10-13 10:08:19 +02:00
cdrom cdrom: gdrom: initialize global variable at init time 2021-05-26 12:05:19 +02:00
char virtio_console: eliminate anonymous module_init & module_exit 2022-04-15 14:18:36 +02:00
clk clk: Enforce that disjoints limits are invalid 2022-04-15 14:18:35 +02:00
clocksource clocksource: acpi_pm: fix return value of __setup handler 2022-04-15 14:18:05 +02:00
connector
counter counter: 104-quad-8: Return error when invalid mode during ceiling_write 2021-09-15 09:47:34 +02:00
cpufreq cpufreq: Fix initialization of min and max frequency QoS requests 2022-01-27 09:19:44 +01:00
cpuidle cpuidle: Fix kobject memory leaks in error paths 2021-11-17 09:48:36 +01:00
crypto crypto: ccp - ccp_dmaengine_unregister release dma channels 2022-04-15 14:18:05 +02:00
dax dax: make sure inodes are flushed before destroy cache 2022-04-15 14:18:12 +02:00
dca
devfreq PM / devfreq: Use more accurate returned new_freq as resume_freq 2021-05-14 09:44:20 +02:00
dio
dma dmaengine: Revert "dmaengine: shdma: Fix runtime PM imbalance on error" 2022-04-15 14:18:40 +02:00
dma-buf udmabuf: validate ubuf->pagecount 2022-04-15 14:18:10 +02:00
edac EDAC: Fix calculation of returned address and next offset in edac_align_ptr() 2022-02-23 11:59:59 +01:00
eisa
extcon extcon: intel-mrfld: Sync hardware and software state on init 2021-07-19 08:53:16 +02:00
firewire firewire: nosy: Fix a use-after-free bug in nosy_ioctl() 2021-04-07 14:47:43 +02:00
firmware firmware: google: Properly state IOMEM dependency 2022-04-15 14:18:20 +02:00
fpga fpga: machxo2-spi: Fix missing error code in machxo2_write_complete() 2021-09-30 10:09:23 +02:00
fsi fsi/sbefifo: Fix reset timeout 2021-07-14 16:53:42 +02:00
gnss
gpio gpiolib: acpi: use correct format characters 2022-04-20 09:19:35 +02:00
gpu drm/amd/display: don't ignore alpha property on pre-multiplied mode 2022-04-20 09:19:39 +02:00
greybus greybus: svc: fix an error handling bug in gb_svc_hello() 2022-04-15 14:17:58 +02:00
hid HID: i2c-hid: fix GET/SET_REPORT for unnumbered reports 2022-04-15 14:18:12 +02:00
hsi HSI: core: Fix return freed object in hsi_new_client 2022-01-27 09:19:41 +01:00
hv Drivers: hv: vmbus: Prevent load re-ordering when reading ring buffer 2022-04-20 09:19:36 +02:00
hwmon hwmon: (pmbus) Add Vin unit off handling 2022-04-15 14:18:05 +02:00
hwspinlock
hwtracing coresight: Fix TRCCONFIGR.QE sysfs interface 2022-04-15 14:17:57 +02:00
i2c i2c: mux: demux-pinctrl: do not deactivate a master that is not active 2022-04-15 14:18:16 +02:00
i3c Revert "i3c master: fix missing destroy_workqueue() on error in i3c_master_register" 2021-05-14 09:44:15 +02:00
ide
idle
iio iio: adc: Add check for devm_request_threaded_irq 2022-04-15 14:18:18 +02:00
infiniband IB/rdmavt: add lock to call to rvt_error_qp to prevent a race condition 2022-04-15 14:18:37 +02:00
input Revert "Input: clear BTN_RIGHT/MIDDLE on buttonpads" 2022-04-15 14:18:00 +02:00
interconnect interconnect: core: fix error return code of icc_link_destroy() 2021-04-16 11:46:37 +02:00
iommu iommu/arm-smmu-v3: fix event handling soft lockup 2022-04-15 14:18:33 +02:00
ipack ipack: ipoctal: fix module reference leak 2021-10-06 15:42:36 +02:00
irqchip irqchip/gic-v3: Fix GICR_CTLR.RWP polling 2022-04-15 14:18:40 +02:00
isdn mISDN: change function names to avoid conflicts 2022-01-11 15:23:33 +01:00
leds leds: trigger: audio: Add an activate callback to ensure the initial brightness is set 2021-09-15 09:47:33 +02:00
lightnvm
macintosh
mailbox mailbox: tegra-hsp: Flush whole channel 2022-04-15 14:18:01 +02:00
mcb mcb: fix error handling in mcb_alloc_bus() 2021-09-30 10:09:22 +02:00
md dm ioctl: prevent potential spectre v1 gadget 2022-04-15 14:18:33 +02:00
media media: hdpvr: initialize dev->worker at hdpvr_register_videodev 2022-04-15 14:18:25 +02:00
memory memory: atmel-ebi: Fix missing of_node_put in atmel_ebi_probe 2022-04-20 09:19:34 +02:00
memstick memstick: jmb38x_ms: use appropriate free function in jmb38x_ms_alloc_host() 2021-11-17 09:48:37 +01:00
message
mfd mfd: asic3: Add missing iounmap() on error asic3_mfd_probe 2022-04-15 14:18:17 +02:00
misc kgdbts: fix return value of __setup handler 2022-04-15 14:18:20 +02:00
mmc mmc: mmci: stm32: correctly check all elements of sg list 2022-04-15 14:18:40 +02:00
mtd ubi: fastmap: Return error code if memory allocation fails in add_aeb() 2022-04-15 14:18:30 +02:00
mux
net ath9k: Fix usage of driver-private space in tx_info 2022-04-20 09:19:38 +02:00
nfc nfc: st21nfca: Fix potential buffer overflows in EVT_TRANSACTION 2022-03-28 08:46:43 +02:00
ntb NTB: perf: Fix an error code in perf_setup_inbuf() 2021-09-22 12:26:44 +02:00
nubus
nvdimm libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind 2021-10-06 15:42:38 +02:00
nvme nvme-rdma: fix possible use-after-free in transport error_recovery work 2022-02-23 11:59:56 +01:00
nvmem nvmem: Fix shift-out-of-bound (UBSAN) with byte size cells 2021-10-20 11:40:14 +02:00
of of: base: Improve argument length mismatch error 2022-01-27 09:19:51 +01:00
opp opp: Fix return in _opp_add_static_v2() 2021-11-17 09:48:44 +01:00
oprofile
parisc parisc: Fix CPU affinity for Lasi, WAX and Dino chips 2022-04-15 14:18:36 +02:00
parport parport: remove non-zero check on count 2021-09-22 12:26:36 +02:00
pci PCI: pciehp: Add Qualcomm quirk for Command Completed erratum 2022-04-15 14:18:33 +02:00
pcmcia pcmcia: fix setting of kthread task states 2022-01-27 09:19:37 +01:00
perf perf/imx_ddr: Fix undefined behavior due to shift overflowing the constant 2022-04-20 09:19:38 +02:00
phy phy: dphy: Correct lpx parameter and its derivatives(ta_{get,go,sure}) 2022-04-15 14:18:18 +02:00
pinctrl pinctrl: nuvoton: npcm7xx: Use %zu printk format for ARRAY_SIZE() 2022-04-15 14:18:29 +02:00
platform platform/x86: ISST: Fix possible circular locking dependency detected 2022-02-23 11:59:55 +01:00
pnp
power power: supply: axp288-charger: Set Vhold to 4.4V 2022-04-15 14:18:33 +02:00
powercap
pps
ps3
ptp ptp: replace snprintf with sysfs_emit 2022-04-15 14:18:32 +02:00
pwm pwm: lpc18xx-sct: Initialize driver data and hardware before pwmchip_add() 2022-04-15 14:18:17 +02:00
rapidio rapidio: handle create_workqueue() failure 2021-05-26 12:05:17 +02:00
ras RAS/CEC: Correct ce_add_elem()'s returned values 2021-04-14 08:24:18 +02:00
regulator regulator: wm8994: Add an off-on delay for WM8994 variant 2022-04-20 09:19:37 +02:00
remoteproc remoteproc: qcom_wcnss: Add missing of_node_put() in wcnss_alloc_memory_region 2022-04-15 14:18:19 +02:00
reset reset: socfpga: add empty driver allowing consumers to probe 2021-11-17 09:48:20 +01:00
rpmsg rpmsg: char: Fix race between the release of rpmsg_eptdev and cdev 2022-02-01 17:24:36 +01:00
rtc rtc: wm8350: Handle error for wm8350_register_irq 2022-04-15 14:18:31 +02:00
s390 scsi: zfcp: Fix failed recovery on gone remote port with non-NPIV FCP devices 2022-02-01 17:24:33 +01:00
sbus
scsi scsi: megaraid_sas: Target with invalid LUN ID is deleted during scan 2022-04-20 09:19:37 +02:00
sfi
sh maple: fix wrong return value of maple_bus_init(). 2021-11-26 10:47:17 +01:00
siox
slimbus slimbus: ngd: reset dma setup during runtime pm 2021-08-26 08:36:21 -04:00
soc soc: ti: wkup_m3_ipc: Fix IRQ check in wkup_m3_ipc_probe 2022-04-15 14:18:07 +02:00
soundwire soundwire: stream: Fix test for DP prepare complete 2021-07-14 16:53:45 +02:00
spi spi: bcm-qspi: fix MSPI only access with bcm_qspi_exec_mem_op() 2022-04-15 14:18:38 +02:00
spmi
ssb ssb: Fix error return code in ssb_bus_scan() 2021-07-14 16:53:29 +02:00
staging staging: mt7621-dts: fix LEDs and pinctrl on GB-PC1 devicetree 2022-04-15 14:18:19 +02:00
target scsi: target: tcmu: Fix possible page UAF 2022-04-20 09:19:36 +02:00
tc
tee optee: use driver internal tee_context for some rpc 2022-03-02 11:41:04 +01:00
thermal thermal: int340x: Increase bitmap size 2022-04-15 14:18:02 +02:00
thunderbolt thunderbolt: dma_port: Fix NVM read buffer bounds and offset issue 2021-06-03 08:59:03 +02:00
tty serial: samsung_tty: do not unlock port->lock for uart_write_wakeup() 2022-04-15 14:18:36 +02:00
uio uio_hv_generic: Fix a memory leak in error handling paths 2021-05-26 12:05:17 +02:00
usb usb: dwc3: omap: fix "unbalanced disables for smps10_out1" on omap5evm 2022-04-15 14:18:34 +02:00
vfio vfio: Use config not menuconfig for VFIO_NOIOMMU 2021-09-22 12:26:23 +02:00
vhost tuntap: add sanity checks about msg_controllen in sendmsg 2022-04-15 14:18:34 +02:00
video video: fbdev: sm712fb: Fix crash in smtcfb_write() 2022-04-15 14:18:25 +02:00
virt
virtio virtio: acknowledge all features before access 2022-03-16 13:21:48 +01:00
visorbus visorbus: fix error return code in visorchipset_init() 2021-07-14 16:53:42 +02:00
vlynq
vme
w1 w1: w1_therm: fixes w1_seq for ds28ea00 sensors 2022-04-15 14:18:35 +02:00
watchdog ar7: fix kernel builds for compiler test 2021-11-17 09:48:46 +01:00
xen xen/gnttab: fix gnttab_end_foreign_access() without page specified 2022-03-11 11:22:39 +01:00
zorro
Kconfig
Makefile