linux-IllusionX/drivers
Javier Martinez Canillas 83bf7cd6e0
drivers/firmware: skip simpledrm if nvidia-drm.modeset=1 is set
The Nvidia proprietary driver has some bugs that leads to issues if used
with the simpledrm driver. The most noticeable is that does not register
an emulated fbdev device.

It just relies on a fbdev to be registered by another driver, that could
be that could be attached to the framebuffer console. On UEFI machines,
this is the efifb driver.

This means that disabling the efifb driver will cause virtual consoles to
not be present in the system when using the Nvidia driver. Legacy BIOS is
not affected just because fbcon is not used there, but instead vgacon.

Unless a VGA mode is specified using the vga= kernel command line option,
in that case the vesafb driver is used instead and its fbdev attached to
the fbcon.

This is a problem because with CONFIG_SYSFB_SIMPLEFB=y, the sysfb platform
code attempts to register a "simple-framebuffer" platform device (that is
matched against simpledrm) and only registers either an "efi-framebuffer"
or "vesa-framebuffer" if this fails to be registered due the video modes
not being compatible.

The Nvidia driver relying on another driver to register the fbdev is quite
fragile, since it can't really assume those will stick around. For example
there are patches posted to remove the EFI and VESA platform devices once
a real DRM or fbdev driver probes.

But in any case, moving to a simpledrm + emulated fbdev only breaks this
assumption and causes users to not have VT if the Nvidia driver is used.

So to prevent this, let's add a workaround and make the sysfb to skip the
"simple-framebuffer" registration when nvidia-drm.modeset=1 option is set.

This is quite horrible, but honestly I can't think of any other approach.

For this to work, the CONFIG_FB_EFI and CONFIG_FB_VESA config options must
be enabled besides CONFIG_DRM_SIMPLEDRM.

Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
Cherry-picked-for: https://bugs.archlinux.org/task/73720
2024-08-29 18:46:00 +02:00
..
accel
accessibility Char/Misc bugfix for 6.10-rc1 2024-05-24 08:43:25 -07:00
acpi ACPI: video: Add backlight=native quirk for Dell OptiPlex 7760 AIO 2024-08-29 17:36:07 +02:00
amba
android binder: fix hang of unregistered readers 2024-08-03 09:00:44 +02:00
ata ata: pata_macio: Fix DMA table overflow 2024-08-29 17:36:08 +02:00
atm atm: idt77252: prevent use after free in dequeue_rx() 2024-08-29 17:35:47 +02:00
auxdisplay auxdisplay: ht16k33: Drop reference after LED registration 2024-08-03 09:01:04 +02:00
base driver core: Fix uevent_show() vs driver detach race 2024-08-14 15:34:29 +02:00
bcma
block ublk: fix UBLK_CMD_DEL_DEV_ASYNC handling 2024-08-03 09:01:08 +02:00
bluetooth Bluetooth: HCI: Invert LE State quirk to be opt-out rather then opt-in 2024-08-29 17:35:55 +02:00
bus bus: mhi: ep: Do not allocate memory for MHI objects from DMA zone 2024-08-03 09:00:54 +02:00
cache
cdrom
cdx
char char: xillybus: Check USB endpoints when probing device 2024-08-29 17:35:35 +02:00
clk clk: samsung: fix getting Exynos4 fin_pll rate from external clocks 2024-08-03 09:00:47 +02:00
clocksource clocksource/drivers/sh_cmt: Address race condition for clock events 2024-08-14 15:34:07 +02:00
comedi
connector
counter counter: ti-eqep: enable clock at probe 2024-06-22 13:48:11 +09:00
cpufreq cpufreq: amd-pstate: auto-load pstate driver by default 2024-08-14 15:34:07 +02:00
cpuidle
crypto crypto: ccp - Fix null pointer dereference in __sev_snp_shutdown_locked 2024-08-03 09:00:55 +02:00
cxl cxl: documentation: add missing files to cxl driver-api 2024-06-25 14:45:27 -07:00
dax
dca
devfreq
dio
dma dmaengine: ti: k3-udma: Fix BCHAN count with UHC and HC channels 2024-08-03 09:00:59 +02:00
dma-buf Merge remote-tracking branch 'drm/drm-fixes' into drm-misc-fixes 2024-05-28 22:21:34 +02:00
dpll
edac EDAC, i10nm: make skx_common.o a separate module 2024-08-03 08:59:09 +02:00
eisa
extcon
firewire firewire: core: record card index in bus_reset_handle tracepoints event 2024-06-15 14:59:26 +09:00
firmware drivers/firmware: skip simpledrm if nvidia-drm.modeset=1 is set 2024-08-29 18:46:00 +02:00
fpga
fsi
gnss
gpio gpio: mlxbf3: Support shutdown() function 2024-08-29 17:35:51 +02:00
gpu drm/amdgpu/vcn: not pause dpg for unified queue 2024-08-29 17:36:13 +02:00
greybus
hid HID: wacom: Defer calculation of resolution until resolution_code is known 2024-08-29 17:36:08 +02:00
hsi
hte
hv Drivers: hv: Cosmetic changes for hv.c and balloon.c 2024-06-06 06:03:29 +00:00
hwmon hwmon: corsair-psu: add USB id of HX1200i Series 2023 psu 2024-08-14 15:34:05 +02:00
hwspinlock
hwtracing coresight: Fix ref leak when of_coresight_parse_endpoint() fails 2024-08-03 09:00:09 +02:00
i2c i2c: qcom-geni: Add missing geni_icc_disable in geni_i2c_runtime_resume 2024-08-29 17:35:39 +02:00
i3c i3c: mipi-i3c-hci: Fix number of DAT/DCT entries for HCI versions < 1.1 2024-08-03 09:01:08 +02:00
idle
iio iio: adc: adi-axi-adc: don't allow concurrent enable/disable calls 2024-08-03 09:00:08 +02:00
infiniband RDMA/iwcm: Fix a use-after-free related to destroying CM IDs 2024-08-03 09:00:55 +02:00
input Input: MT - limit max slots 2024-08-29 17:36:13 +02:00
interconnect interconnect: qcom: qcm2290: Fix mas_snoc_bimc RPM master ID 2024-08-03 09:00:11 +02:00
iommu iommufd/device: Fix hwpt at err_unresv in iommufd_device_do_replace() 2024-08-29 17:36:08 +02:00
ipack
irqchip irqchip/riscv-aplic: Retrigger MSI interrupt on source configuration 2024-08-14 15:34:32 +02:00
isdn mISDN: Fix a use after free in hfcmulti_tx() 2024-08-03 09:01:04 +02:00
leds leds: mt6360: Fix memory leak in mt6360_init_isnk_properties() 2024-08-03 09:00:39 +02:00
macintosh macintosh/therm_windtunnel: fix module unload. 2024-08-03 09:00:17 +02:00
mailbox mailbox: mtk-cmdq: Move devm_mbox_controller_register() after devm_pm_runtime_enable() 2024-08-03 09:00:28 +02:00
mcb
md dm suspend: return -ERESTARTSYS instead of -EINTR 2024-08-29 17:35:54 +02:00
media media: Revert "media: dvb-usb: Fix unexpected infinite loop in dvb_usb_read_remote_control()" 2024-08-19 06:05:40 +02:00
memory memory: fsl_ifc: Make FSL_IFC config visible and selectable 2024-08-03 08:59:20 +02:00
memstick
message
mfd mfd: omap-usb-tll: Use struct_size to allocate tll 2024-08-03 09:00:03 +02:00
misc Revert "misc: fastrpc: Restrict untrusted app to attach to privileged PD" 2024-08-29 17:35:34 +02:00
mmc mmc: dw_mmc: allow biu and ciu clocks to defer 2024-08-29 17:36:10 +02:00
most
mtd ubi: eba: properly rollback inside self_check_eba 2024-08-03 09:00:47 +02:00
mux
net cxgb4: add forgotten u64 ivlan cast before shift 2024-08-29 17:36:09 +02:00
nfc nfc/nci: Add the inconsistency check between the input data length and count 2024-05-29 13:08:31 +01:00
ntb
nubus
nvdimm virtio: features, fixes, cleanups 2024-05-23 12:04:36 -07:00
nvme nvme: move stopping keep-alive into nvme_uninit_ctrl() 2024-08-29 17:36:06 +02:00
nvmem nvmem: rockchip-otp: set add_legacy_fixed_of_cells config option 2024-08-03 09:00:15 +02:00
of of/irq: Disable "interrupt-map" parsing for PASEMI Nemo 2024-07-08 15:42:20 -06:00
opp OPP: ti: Fix ti_opp_supply_probe wrong return values 2024-08-03 08:59:20 +02:00
parisc
parport dev/parport: fix the array out-of-bounds risk 2024-08-03 09:00:45 +02:00
pci PCI: pciehp: Retain Power Indicator bits for userspace indicators 2024-08-11 12:57:59 +02:00
pcmcia
peci
perf perf: riscv: Fix selecting counters in legacy mode 2024-08-11 12:57:56 +02:00
phy phy: zynqmp: Enable reference clock correctly 2024-08-03 09:00:59 +02:00
pinctrl pinctrl: renesas: r8a779g0: Fix TPU suffixes 2024-08-03 09:00:24 +02:00
platform platform/x86: ISST: Fix return value on last invalid resource 2024-08-29 17:36:07 +02:00
pmdomain pmdomain: imx: wait SSAR when i.MX93 power domain on 2024-08-29 17:36:10 +02:00
pnp PNP: Hide pnp_bus_type from the non-PNP code 2024-05-28 21:53:51 +02:00
power power: supply: axp288_charger: Round constant_charge_voltage writes down 2024-08-14 15:34:33 +02:00
powercap
pps
ps3
ptp ptp: fix integer overflow in max_vclocks_store 2024-06-18 13:26:44 -07:00
pwm pwm: atmel-tcb: Fix race condition and convert to guards 2024-08-03 08:59:14 +02:00
rapidio
ras RAS/AMD/ATL: Use system settings for MI300 DRAM to normalized address translation 2024-06-16 11:22:57 +02:00
regulator regulator: axp20x: AXP717: fix LDO supply rails and off-by-ones 2024-06-12 21:30:43 +01:00
remoteproc remoteproc: imx_rproc: Fix refcount mistake in imx_rproc_addr_init 2024-08-03 09:00:56 +02:00
reset reset: hisilicon: hi6220: add missing MODULE_DESCRIPTION() macro 2024-06-21 13:49:25 +02:00
rpmsg virtio: features, fixes, cleanups 2024-05-23 12:04:36 -07:00
rtc rtc: abx80x: Fix return value of nvmem callback on read 2024-08-03 09:00:54 +02:00
s390 s390/ap: Refine AP bus bindings complete processing 2024-08-29 17:36:07 +02:00
sbus
scsi scsi: mpi3mr: Avoid IOMMU page faults on REPORT ZONES 2024-08-14 15:34:28 +02:00
sh
siox
slimbus
soc soc: qcom: icc-bwmon: Allow for interrupts to be shared across instances 2024-08-14 15:34:08 +02:00
soundwire soundwire: fix usages of device_get_named_child_node() 2024-06-03 17:35:24 +05:30
spi spi: spi-cadence-quadspi: Fix OSPI NOR failures during system resume 2024-08-29 17:36:03 +02:00
spmi spmi: pmic-arb: Pass the correct of_node to irq_domain_add_tree 2024-08-14 15:34:31 +02:00
ssb
staging media: atomisp: Fix streaming no longer working on BYT / ISP2400 devices 2024-08-29 17:35:40 +02:00
target
tc
tee Fix optee missing-field-initializers warning 2024-06-27 17:10:38 +02:00
thermal thermal: of: Fix OF node leak in of_thermal_zone_find() error paths 2024-08-29 17:36:11 +02:00
thunderbolt thunderbolt: Mark XDomain as unplugged when router is removed 2024-08-29 17:35:36 +02:00
tty Revert "serial: 8250_omap: Set the console genpd always on if no console suspend" 2024-08-29 17:35:34 +02:00
ufs scsi: ufs: core: Fix hba->last_dme_cmd_tstamp timestamp updating logic 2024-08-14 15:34:28 +02:00
uio
usb xhci: Fix Panther point NULL pointer deref at full-speed re-enumeration 2024-08-29 17:35:36 +02:00
vdpa
vfio vfio/pci: Init the count variable in collecting hot-reset devices 2024-07-10 08:47:46 -06:00
vhost vhost-vdpa: switch to use vmf_insert_pfn() in the fault handler 2024-08-14 15:34:29 +02:00
video fbdev: vesafb: Detect VGA compatibility from screen info's VESA attributes 2024-08-03 09:00:43 +02:00
virt
virtio virtio: features, fixes, cleanups 2024-05-23 12:04:36 -07:00
w1
watchdog watchdog: rzg2l_wdt: Check return status of pm_runtime_put() 2024-08-03 09:01:00 +02:00
xen xen: privcmd: Switch from mutex to spinlock for irqfds 2024-08-14 15:34:08 +02:00
zorro
Kconfig
Makefile