linux_dsm_epyc7002/drivers
Nikola Cornij ec5b356c58 drm/amd/display: Map ODM memory correctly when doing ODM combine
[why]
Up to 4 ODM memory pieces are required per ODM combine and cannot
overlap, i.e. each ODM "session" has to use its own memory pieces.
The ODM-memory mapping is currently broken for generic case.

The maximum number of memory pieces is ASIC-dependent, but it's always
big enough to satisfy maximum number of ODM combines. Memory pieces
are mapped as a bit-map, i.e. one memory piece corresponds to one bit.
The OPTC doing ODM needs to select memory pieces by setting the
corresponding bits, making sure there's no overlap with other OPTC
instances that might be doing ODM.

The current mapping works only for OPTC instance indexes smaller than
3. For instance indexes 3 and up it practically maps no ODM memory,
causing black, gray or white screen in display configs that include
ODM on OPTC instance 3 or up.

[how]
Statically map two unique ODM memory pieces for each OPTC instance
and piece them together when programming ODM combine mode.

Signed-off-by: Nikola Cornij <nikola.cornij@amd.com>
Reviewed-by: Jun Lei <Jun.Lei@amd.com>
Acked-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2019-12-18 16:09:09 -05:00
..
accessibility
acpi ACPI: PM: Avoid attaching ACPI PM domain to certain devices 2019-12-10 00:22:18 +01:00
amba
android binder: fix incorrect calculation for num_valid 2019-12-14 09:10:47 +01:00
ata
atm
auxdisplay drm-misc-next for v5.6: 2019-12-17 13:57:54 +01:00
base Merge branch 'remove-ksys-mount-dup' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux 2019-12-15 11:36:12 -08:00
bcma
block xen: branch for v5.5-rc2 2019-12-15 12:24:44 -08:00
bluetooth
bus
cdrom
char
clk
clocksource
connector
counter
cpufreq
cpuidle cpuidle: Drop unnecessary type cast in cpuidle_poll_time() 2019-12-12 17:56:08 +01:00
crypto
dax
dca
devfreq PM / devfreq: Use PM QoS for sysfs min/max_freq 2019-12-09 12:19:16 +09:00
dio
dma
dma-buf drm-misc-next for v5.6: 2019-12-17 13:57:54 +01:00
edac
eisa
extcon
firewire
firmware treewide: Use sizeof_field() macro 2019-12-09 10:36:44 -08:00
fpga
fsi
gnss
gpio
gpu drm/amd/display: Map ODM memory correctly when doing ODM combine 2019-12-18 16:09:09 -05:00
greybus
hid drm-misc-next for v5.6: 2019-12-17 13:57:54 +01:00
hsi
hv
hwmon
hwspinlock
hwtracing
i2c i2c: remove i2c_new_dummy() API 2019-12-10 23:15:09 +01:00
i3c
ide
idle
iio First set of fixes for IIO in the 5.5 cycle. 2019-12-09 09:27:52 +01:00
infiniband Pull request for 5.5-rc2 2019-12-15 14:58:13 -08:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2019-12-07 18:33:01 -08:00
interconnect interconnect: qcom: msm8974: Walk the list safely on node removal 2019-12-12 10:28:54 +01:00
iommu
ipack
irqchip
isdn
leds
lightnvm
macintosh
mailbox
mcb
md for-linus-20191212 2019-12-13 14:27:19 -08:00
media drm-misc-next for v5.6: 2019-12-17 13:57:54 +01:00
memory
memstick
message
mfd
misc drm-misc-next for v5.6: 2019-12-17 13:57:54 +01:00
mmc
mtd
mux
net treewide: Use sizeof_field() macro 2019-12-09 10:36:44 -08:00
nfc
ntb Add Hygon Device ID to the AMD NTB device driver 2019-12-07 18:38:17 -08:00
nubus
nvdimm
nvme for-linus-20191212 2019-12-13 14:27:19 -08:00
nvmem
of of/platform: Unconditionally pause/resume sync state during kernel init 2019-12-12 18:39:52 -06:00
opp
oprofile
parisc
parport
pci PCI: rockchip: Fix IO outbound ATU register number 2019-12-12 15:25:37 -06:00
pcmcia
perf
phy
pinctrl
platform
pnp
power
powercap
pps
ps3
ptp
pwm
rapidio
ras
regulator
remoteproc
reset
rpmsg
rtc
s390 treewide: Use sizeof_field() macro 2019-12-09 10:36:44 -08:00
sbus
scsi SCSI fixes on 20191214 2019-12-14 12:51:57 -08:00
sfi
sh
siox
slimbus
soc
soundwire
spi
spmi
ssb
staging drm-misc-next for v5.6: 2019-12-17 13:57:54 +01:00
target treewide: Use sizeof_field() macro 2019-12-09 10:36:44 -08:00
tc
tee drm-misc-next for v5.6: 2019-12-17 13:57:54 +01:00
thermal
thunderbolt
tty
uio
usb USB driver fixes for 5.5-rc2 2019-12-14 12:40:39 -08:00
vfio VFIO updates for v5.5-rc1 2019-12-07 14:51:04 -08:00
vhost Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-12-08 13:28:11 -08:00
video drm-misc-next for v5.6: 2019-12-17 13:57:54 +01:00
virt
virtio virtio_balloon: divide/multiply instead of shifts 2019-12-11 08:14:07 -05:00
visorbus
vlynq
vme
w1
watchdog
xen drm-misc-next for v5.6: 2019-12-17 13:57:54 +01:00
zorro
Kconfig
Makefile