+.. Copyright 2020 DisplayLink (UK) Ltd.
+
===================
Userland interfaces
===================
visible to user-space and accessible beyond open-file boundaries, they
cannot support render nodes.
+Device Hot-Unplug
+=================
+
+.. note::
+ The following is the plan. Implementation is not there yet
+ (2020 May).
+
+Graphics devices (display and/or render) may be connected via USB (e.g.
+display adapters or docking stations) or Thunderbolt (e.g. eGPU). An end
+user is able to hot-unplug this kind of devices while they are being
+used, and expects that the very least the machine does not crash. Any
+damage from hot-unplugging a DRM device needs to be limited as much as
+possible and userspace must be given the chance to handle it if it wants
+to. Ideally, unplugging a DRM device still lets a desktop continue to
+run, but that is going to need explicit support throughout the whole
+graphics stack: from kernel and userspace drivers, through display
+servers, via window system protocols, and in applications and libraries.
+
+Other scenarios that should lead to the same are: unrecoverable GPU
+crash, PCI device disappearing off the bus, or forced unbind of a driver
+from the physical device.
+
+In other words, from userspace perspective everything needs to keep on
+working more or less, until userspace stops using the disappeared DRM
+device and closes it completely. Userspace will learn of the device
+disappearance from the device removed uevent, ioctls returning ENODEV
+(or driver-specific ioctls returning driver-specific things), or open()
+returning ENXIO.
+
+Only after userspace has closed all relevant DRM device and dmabuf file
+descriptors and removed all mmaps, the DRM driver can tear down its
+instance for the device that no longer exists. If the same physical
+device somehow comes back in the mean time, it shall be a new DRM
+device.
+
+Similar to PIDs, chardev minor numbers are not recycled immediately. A
+new DRM device always picks the next free minor number compared to the
+previous one allocated, and wraps around when minor numbers are
+exhausted.
+
+The goal raises at least the following requirements for the kernel and
+drivers.
+
+Requirements for KMS UAPI
+-------------------------
+
+- KMS connectors must change their status to disconnected.
+
+- Legacy modesets and pageflips, and atomic commits, both real and
+ TEST_ONLY, and any other ioctls either fail with ENODEV or fake
+ success.
+
+- Pending non-blocking KMS operations deliver the DRM events userspace
+ is expecting. This applies also to ioctls that faked success.
+
+- open() on a device node whose underlying device has disappeared will
+ fail with ENXIO.
+
+- Attempting to create a DRM lease on a disappeared DRM device will
+ fail with ENODEV. Existing DRM leases remain and work as listed
+ above.
+
+Requirements for Render and Cross-Device UAPI
+---------------------------------------------
+
+- All GPU jobs that can no longer run must have their fences
+ force-signalled to avoid inflicting hangs on userspace.
+ The associated error code is ENODEV.
+
+- Some userspace APIs already define what should happen when the device
+ disappears (OpenGL, GL ES: `GL_KHR_robustness`_; `Vulkan`_:
+ VK_ERROR_DEVICE_LOST; etc.). DRM drivers are free to implement this
+ behaviour the way they see best, e.g. returning failures in
+ driver-specific ioctls and handling those in userspace drivers, or
+ rely on uevents, and so on.
+
+- dmabuf which point to memory that has disappeared will either fail to
+ import with ENODEV or continue to be successfully imported if it would
+ have succeeded before the disappearance. See also about memory maps
+ below for already imported dmabufs.
+
+- Attempting to import a dmabuf to a disappeared device will either fail
+ with ENODEV or succeed if it would have succeeded without the
+ disappearance.
+
+- open() on a device node whose underlying device has disappeared will
+ fail with ENXIO.
+
+.. _GL_KHR_robustness: https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_robustness.txt
+.. _Vulkan: https://www.khronos.org/vulkan/
+
+Requirements for Memory Maps
+----------------------------
+
+Memory maps have further requirements that apply to both existing maps
+and maps created after the device has disappeared. If the underlying
+memory disappears, the map is created or modified such that reads and
+writes will still complete successfully but the result is undefined.
+This applies to both userspace mmap()'d memory and memory pointed to by
+dmabuf which might be mapped to other devices (cross-device dmabuf
+imports).
+
+Raising SIGBUS is not an option, because userspace cannot realistically
+handle it. Signal handlers are global, which makes them extremely
+difficult to use correctly from libraries like those that Mesa produces.
+Signal handlers are not composable, you can't have different handlers
+for GPU1 and GPU2 from different vendors, and a third handler for
+mmapped regular files. Threads cause additional pain with signal
+handling as well.
+
.. _drm_driver_ioctl:
IOCTL Support on Device Nodes
EPERM/EACCES:
Returned for an operation that is valid, but needs more privileges.
E.g. root-only or much more common, DRM master-only operations return
- this when when called by unpriviledged clients. There's no clear
+ this when called by unpriviledged clients. There's no clear
difference between EACCES and EPERM.
ENODEV:
- The device is not (yet) present or fully initialized.
+ The device is not present anymore or is not yet fully initialized.
EOPNOTSUPP:
Feature (like PRIME, modesetting, GEM) is not supported by the driver.
S: Odd Fixes
- F: Documentation/networking/device_drivers/3com/vortex.rst
+ F: Documentation/networking/device_drivers/ethernet/3com/vortex.rst
F: drivers/net/ethernet/3com/3c59x.c
3CR990 NETWORK DRIVER
S: Supported
- F: Documentation/networking/device_drivers/amazon/ena.rst
+ F: Documentation/networking/device_drivers/ethernet/amazon/ena.rst
F: drivers/net/ethernet/amazon/
AMAZON RDMA EFA DRIVER
AMD CRYPTOGRAPHIC COPROCESSOR (CCP) DRIVER
S: Supported
F: drivers/crypto/ccp/
F: include/linux/ccp.h
+ AMD CRYPTOGRAPHIC COPROCESSOR (CCP) DRIVER - SEV SUPPORT
+ S: Supported
+ F: drivers/crypto/ccp/sev*
+ F: include/uapi/linux/psp-sev.h
+
AMD DISPLAY CORE
S: Supported
W: http://ez.analog.com/community/linux-device-drivers
F: drivers/media/i2c/adv7180.c
+ F: Documentation/devicetree/bindings/media/i2c/adv7180.yaml
ANALOG DEVICES INC ADV748X DRIVER
S: Supported
T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
S: Supported
W: https://www.marvell.com/
Q: http://patchwork.ozlabs.org/project/netdev/list/
- F: Documentation/networking/device_drivers/aquantia/atlantic.rst
+ F: Documentation/networking/device_drivers/ethernet/aquantia/atlantic.rst
F: drivers/net/ethernet/aquantia/atlantic/
AQUANTIA ETHERNET DRIVER PTP SUBSYSTEM
S: Maintained
- F: devicetree/bindings/watchdog/arm-smc-wdt.yaml
+ F: Documentation/devicetree/bindings/watchdog/arm-smc-wdt.yaml
F: drivers/watchdog/arm_smc_wdt.c
ARM SMMU DRIVERS
S: Maintained
F: Documentation/devicetree/bindings/iommu/arm,smmu*
- F: drivers/iommu/arm-smmu*
+ F: drivers/iommu/arm/
F: drivers/iommu/io-pgtable-arm-v7s.c
F: drivers/iommu/io-pgtable-arm.c
F: drivers/pinctrl/actions/*
F: drivers/soc/actions/
F: include/dt-bindings/power/owl-*
+ F: include/dt-bindings/reset/actions,*
F: include/linux/soc/actions/
N: owl
ARM/Amlogic Meson SoC support
S: Maintained
S: Maintained
F: arch/arm/boot/dts/alpine*
F: arch/arm/mach-alpine/
- F: arch/arm64/boot/dts/al/
+ F: arch/arm64/boot/dts/amazon/
F: drivers/*/*alpine*
ARM/ARTPEC MACHINE SUPPORT
F: include/linux/irqchip/irq-ixp4xx.h
F: include/linux/platform_data/timer-ixp4xx.h
+ ARM/INTEL KEEMBAY ARCHITECTURE
+ S: Maintained
+ F: Documentation/devicetree/bindings/arm/intel,keembay.yaml
+ F: arch/arm64/boot/dts/intel/keembay-evm.dts
+ F: arch/arm64/boot/dts/intel/keembay-soc.dtsi
+
ARM/INTEL RESEARCH IMOTE/STARGATE 2 MACHINE SUPPORT
N: at91
N: atmel
+ ARM/Microchip Sparx5 SoC support
+ S: Supported
+ F: arch/arm64/boot/dts/microchip/
+ N: sparx5
+
ARM/MIOA701 MACHINE SUPPORT
S: Maintained
F: arch/arm/mach-pxa/mioa701.c
+ ARM/MStar/Sigmastar Armv7 SoC support
+ S: Maintained
+ W: http://linux-chenxing.org/
+ F: Documentation/devicetree/bindings/arm/mstar/*
+ F: arch/arm/boot/dts/infinity*.dtsi
+ F: arch/arm/boot/dts/mercury*.dtsi
+ F: arch/arm/boot/dts/mstar-v7.dtsi
+ F: arch/arm/mach-mstar/
+
ARM/NEC MOBILEPRO 900/c MACHINE SUPPORT
S: Maintained
F: drivers/phy/qualcomm/
F: drivers/power/*/msm*
F: drivers/reset/reset-qcom-*
- F: drivers/scsi/ufs/ufs-qcom.*
+ F: drivers/scsi/ufs/ufs-qcom*
F: drivers/spi/spi-geni-qcom.c
F: drivers/spi/spi-qcom-qspi.c
F: drivers/spi/spi-qup.c
S: Maintained
- F: Documentation/crypto/asymmetric-keys.txt
+ F: Documentation/crypto/asymmetric-keys.rst
F: crypto/asymmetric_keys/
F: include/crypto/pkcs7.h
F: include/crypto/public_key.h
S: Odd fixes
W: http://sourceforge.net/projects/xscaleiop
- F: Documentation/crypto/async-tx-api.txt
+ F: Documentation/crypto/async-tx-api.rst
F: crypto/async_tx/
F: drivers/dma/
F: include/linux/async_tx.h
F: drivers/net/wireless/ath/*
ATHEROS ATH5K WIRELESS DRIVER
- M: Jiri Slaby <jirislaby@gmail.com>
+ M: Jiri Slaby <jirislaby@kernel.org>
S: Supported
W: http://www.broadcom.com
N: cros_ec
N: cros-ec
+ CHRONTEL CH7322 CEC DRIVER
+ S: Maintained
+ T: git git://linuxtv.org/media_tree.git
+ F: Documentation/devicetree/bindings/media/i2c/chrontel,ch7322.yaml
+ F: drivers/media/cec/i2c/ch7322.c
+
CIRRUS LOGIC AUDIO CODEC DRIVERS
S: Maintained
F: drivers/connector/
+ CONSOLE SUBSYSTEM
+ S: Supported
+ F: drivers/video/console/
+ F: include/linux/console*
+
CONTROL GROUP (CGROUP)
F: Documentation/hwmon/coretemp.rst
F: drivers/hwmon/coretemp.c
+ CORSAIR-CPRO HARDWARE MONITOR DRIVER
+ S: Maintained
+ F: drivers/hwmon/corsair-cpro.c
+
COSA/SRP SYNC SERIAL DRIVER
S: Maintained
DAVICOM FAST ETHERNET (DMFE) NETWORK DRIVER
S: Orphan
- F: Documentation/networking/device_drivers/dec/dmfe.rst
+ F: Documentation/networking/device_drivers/ethernet/dec/dmfe.rst
F: drivers/net/ethernet/dec/tulip/dmfe.c
DC390/AM53C974 SCSI driver
F: Documentation/devicetree/bindings/media/i2c/dongwoon,dw9714.txt
F: drivers/media/i2c/dw9714.c
+ DONGWOON DW9768 LENS VOICE COIL DRIVER
+ S: Maintained
+ T: git git://linuxtv.org/media_tree.git
+ F: Documentation/devicetree/bindings/media/i2c/dongwoon,dw9768.yaml
+ F: drivers/media/i2c/dw9768.c
+
DONGWOON DW9807 LENS VOICE COIL DRIVER
S: Maintained
- F: Documentation/networking/device_drivers/freescale/dpaa2/ethernet-driver.rst
- F: Documentation/networking/device_drivers/freescale/dpaa2/mac-phy-support.rst
+ F: Documentation/networking/device_drivers/ethernet/freescale/dpaa2/ethernet-driver.rst
+ F: Documentation/networking/device_drivers/ethernet/freescale/dpaa2/mac-phy-support.rst
F: drivers/net/ethernet/freescale/dpaa2/Kconfig
F: drivers/net/ethernet/freescale/dpaa2/Makefile
F: drivers/net/ethernet/freescale/dpaa2/dpaa2-eth*
F: drivers/gpu/drm/mga/
F: include/uapi/drm/mga_drm.h
-DRM DRIVER FOR MGA G200 SERVER GRAPHICS CHIPS
+DRM DRIVER FOR MGA G200 GRAPHICS CHIPS
S: Odd Fixes
F: drivers/gpu/drm/mgag200/
DRM DRIVERS FOR HISILICON
-M: Rongrong Zou <zourongrong@gmail.com>
+M: Tian Tao <tiantao6@hisilicon.com>
S: Maintained
F: drivers/usb/gadget/udc/fsl*
+ FREESCALE USB PHY DRIVER
+ S: Maintained
+ F: drivers/usb/phy/phy-fsl-usb*
+
FREEVXFS FILESYSTEM
S: Maintained
F: include/uapi/linux/futex.h
F: kernel/futex.c
F: tools/perf/bench/futex*
- F: Documentation/locking/*futex*
+ F: tools/testing/selftests/futex/
GATEWORKS SYSTEM CONTROLLER (GSC) DRIVER
S: Supported
- F: Documentation/networking/device_drivers/google/gve.rst
+ F: Documentation/networking/device_drivers/ethernet/google/gve.rst
F: drivers/net/ethernet/google
GPD POCKET FAN DRIVER
S: Supported
- F: Documentation/networking/hinic.rst
+ F: Documentation/networking/device_drivers/ethernet/huawei/hinic.rst
F: drivers/net/ethernet/huawei/hinic/
HUGETLB FILESYSTEM
T: git git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git
F: Documentation/ABI/stable/sysfs-bus-vmbus
F: Documentation/ABI/testing/debugfs-hyperv
- F: Documentation/networking/device_drivers/microsoft/netvsc.rst
+ F: Documentation/networking/device_drivers/ethernet/microsoft/netvsc.rst
F: arch/x86/hyperv
F: arch/x86/include/asm/hyperv-tlfs.h
F: arch/x86/include/asm/mshyperv.h
F: drivers/input/misc/ideapad_slidebar.c
IDT VersaClock 5 CLOCK DRIVER
S: Maintained
+ F: Documentation/devicetree/bindings/clock/idt,versaclock5.yaml
F: drivers/clk/clk-versaclock5.c
IEEE 802.15.4 SUBSYSTEM
S: Maintained
F: drivers/platform/x86/intel_atomisp2_pm.c
+ INTEL ATOMISP2 LED DRIVER
+ S: Maintained
+ F: drivers/platform/x86/intel_atomisp2_led.c
+
INTEL BROXTON PMC DRIVER
Q: http://patchwork.ozlabs.org/project/intel-wired-lan/list/
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-queue.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git
- F: Documentation/networking/device_drivers/intel/e100.rst
- F: Documentation/networking/device_drivers/intel/e1000.rst
- F: Documentation/networking/device_drivers/intel/e1000e.rst
- F: Documentation/networking/device_drivers/intel/fm10k.rst
- F: Documentation/networking/device_drivers/intel/i40e.rst
- F: Documentation/networking/device_drivers/intel/iavf.rst
- F: Documentation/networking/device_drivers/intel/ice.rst
- F: Documentation/networking/device_drivers/intel/igb.rst
- F: Documentation/networking/device_drivers/intel/igbvf.rst
- F: Documentation/networking/device_drivers/intel/ixgb.rst
- F: Documentation/networking/device_drivers/intel/ixgbe.rst
- F: Documentation/networking/device_drivers/intel/ixgbevf.rst
+ F: Documentation/networking/device_drivers/ethernet/intel/
F: drivers/net/ethernet/intel/
F: drivers/net/ethernet/intel/*/
F: include/linux/avf/virtchnl.h
S: Supported
F: Documentation/driver-api/mei/*
- F: drivers/misc/mei/*
+ F: drivers/misc/mei/
F: drivers/watchdog/mei_wdt.c
F: include/linux/mei_cl_bus.h
F: include/uapi/linux/mei.h
S: Maintained
- F: Documentation/networking/device_drivers/intel/ipw2100.rst
- F: Documentation/networking/device_drivers/intel/ipw2200.rst
+ F: Documentation/networking/device_drivers/wifi/intel/ipw2100.rst
+ F: Documentation/networking/device_drivers/wifi/intel/ipw2200.rst
F: drivers/net/wireless/intel/ipw2x00/
INTEL PSTATE DRIVER
F: include/linux/interconnect-provider.h
F: include/linux/interconnect.h
+ INVENSENSE ICM-426xx IMU DRIVER
+ S: Maintained
+ W https://invensense.tdk.com/
+ F: Documentation/devicetree/bindings/iio/imu/invensense,icm42600.yaml
+ F: drivers/iio/imu/inv_icm42600/
+
INVENSENSE MPU-3050 GYROSCOPE DRIVER
F: include/linux/iommu.h
F: include/linux/iova.h
F: include/linux/of_iommu.h
+ F: include/uapi/linux/iommu.h
IO_URING
F: include/kvm/arm_*
KERNEL VIRTUAL MACHINE FOR MIPS (KVM/mips)
- S: Orphan
+ S: Maintained
F: arch/mips/include/asm/kvm*
F: arch/mips/include/uapi/asm/kvm*
F: arch/mips/kvm/
F: include/linux/kgdb.h
F: kernel/debug/
+ KHADAS MCU MFD DRIVER
+ S: Maintained
+ F: Documentation/devicetree/bindings/mfd/khadas,mcu.yaml
+ F: drivers/mfd/khadas-mcu.c
+ F: include/linux/mfd/khadas-mcu.h
+ F: drivers/thermal/khadas_mcu_fan.c
+
KMEMLEAK
S: Maintained
S: Maintained
- F: Documentation/kprobes.txt
+ F: Documentation/trace/kprobes.rst
F: include/asm-generic/kprobes.h
F: include/linux/kprobes.h
F: kernel/kprobes.c
F: scripts/leaking_addresses.pl
LED SUBSYSTEM
S: Maintained
- T: git git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds.git
T: git git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds.git
F: Documentation/devicetree/bindings/leds/
F: drivers/leds/
S: Supported
F: Documentation/atomic_t.txt
F: Documentation/core-api/atomic_ops.rst
F: Documentation/core-api/refcount-vs-atomic.rst
+ F: Documentation/litmus-tests/
F: Documentation/memory-barriers.txt
F: tools/memory-model/
S: Supported
- F: Documentation/networking/device_drivers/marvell/octeontx2.rst
+ F: Documentation/networking/device_drivers/ethernet/marvell/octeontx2.rst
F: drivers/net/ethernet/marvell/octeontx2/af/
MARVELL SOC MMC/SD/SDIO CONTROLLER DRIVER
F: drivers/hwmon/max6697.c
F: include/linux/platform_data/max6697.h
+ MAX9286 QUAD GMSL DESERIALIZER DRIVER
+ S: Maintained
+ F: Documentation/devicetree/bindings/media/i2c/maxim,max9286.yaml
+ F: drivers/media/i2c/max9286.c
+
MAX9860 MONO AUDIO VOICE CODEC DRIVER
S: Supported
T: git git://linuxtv.org/media_tree.git
- F: Documentation/devicetree/bindings/media/renesas,fcp.txt
+ F: Documentation/devicetree/bindings/media/renesas,fcp.yaml
F: drivers/media/platform/rcar-fcp.c
F: include/media/rcar-fcp.h
S: Supported
T: git git://linuxtv.org/media_tree.git
- F: Documentation/devicetree/bindings/media/renesas,fdp1.txt
+ F: Documentation/devicetree/bindings/media/renesas,fdp1.yaml
F: drivers/media/platform/rcar_fdp1.c
MEDIA DRIVERS FOR RENESAS - VIN
S: Supported
T: git git://linuxtv.org/media_tree.git
- F: Documentation/devicetree/bindings/media/renesas,vsp1.txt
+ F: Documentation/devicetree/bindings/media/renesas,vsp1.yaml
F: drivers/media/platform/vsp1/
MEDIA DRIVERS FOR ST STV0910 DEMODULATOR ICs
S: Supported
W: http://www.mellanox.com
Q: http://patchwork.ozlabs.org/project/netdev/list/
- F: Documentation/networking/device_drivers/mellanox/
+ F: Documentation/networking/device_drivers/ethernet/mellanox/
F: drivers/net/ethernet/mellanox/mlx5/core/
F: include/linux/mlx5/
F: include/linux/memblock.h
F: mm/memblock.c
+ MEMORY CONTROLLER DRIVERS
+ S: Maintained
+ T: git git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl.git
+ F: Documentation/devicetree/bindings/memory-controllers/
+ F: drivers/memory/
+
+ MEMORY FREQUENCY SCALING DRIVERS FOR NVIDIA TEGRA
+ T: git git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/linux.git
+ S: Maintained
+ F: drivers/devfreq/tegra20-devfreq.c
+ F: drivers/devfreq/tegra30-devfreq.c
+
MEMORY MANAGEMENT
T: git git://git.monstr.eu/linux-2.6-microblaze.git
F: arch/microblaze/
+ MICROCHIP AT91 DMA DRIVERS
+ S: Supported
+ F: Documentation/devicetree/bindings/dma/atmel-dma.txt
+ F: drivers/dma/at_hdmac.c
+ F: drivers/dma/at_hdmac_regs.h
+ F: drivers/dma/at_xdmac.c
+ F: include/dt-bindings/dma/at91.h
+ F: include/linux/platform_data/dma-atmel.h
+
MICROCHIP AT91 SERIAL DRIVER
S: Maintained
S: Supported
F: sound/soc/atmel
- MICROCHIP DMA DRIVER
- S: Supported
- F: Documentation/devicetree/bindings/dma/atmel-dma.txt
- F: drivers/dma/at_hdmac.c
- F: drivers/dma/at_hdmac_regs.h
- F: include/dt-bindings/dma/at91.h
- F: include/linux/platform_data/dma-atmel.h
-
MICROCHIP ECC DRIVER
F: drivers/pwm/pwm-atmel.c
MICROCHIP SAMA5D2-COMPATIBLE ADC DRIVER
S: Supported
S: Supported
F: drivers/usb/gadget/udc/atmel_usba_udc.*
- MICROCHIP XDMA DRIVER
- M: Ludovic Desroches <ludovic.desroches@microchip.com>
- L: dmaengine@vger.kernel.org
+ MICROCHIP WILC1000 WIFI DRIVER
+ M: Ajay Singh <ajay.kathat@microchip.com>
+ L: linux-wireless@vger.kernel.org
S: Supported
- F: drivers/dma/at_xdmac.c
+ F: drivers/net/wireless/microchip/wilc1000/
MICROSEMI MIPS SOCS
F: drivers/clk/imgtec/clk-boston.c
F: include/dt-bindings/clock/boston-clock.h
+ MIPS CORE DRIVERS
+ S: Supported
+ F: drivers/bus/mips_cdmm.c
+ F: drivers/clocksource/mips-gic-timer.c
+ F: drivers/cpuidle/cpuidle-cps.c
+ F: drivers/irqchip/irq-mips-cpu.c
+ F: drivers/irqchip/irq-mips-gic.c
+
MIPS GENERIC PLATFORM
F: include/uapi/linux/meye.h
MOXA SMARTIO/INDUSTIO/INTELLIO SERIAL CARD
- M: Jiri Slaby <jirislaby@gmail.com>
+ M: Jiri Slaby <jirislaby@kernel.org>
S: Maintained
F: Documentation/driver-api/serial/moxa-smartio.rst
F: drivers/tty/mxser.*
S: Supported
- F: Documentation/networking/device_drivers/neterion/s2io.rst
- F: Documentation/networking/device_drivers/neterion/vxge.rst
+ F: Documentation/networking/device_drivers/ethernet/neterion/s2io.rst
+ F: Documentation/networking/device_drivers/ethernet/neterion/vxge.rst
F: drivers/net/ethernet/neterion/
NETFILTER
F: net/netrom/
NETRONOME ETHERNET DRIVERS
S: Maintained
F: drivers/net/ethernet/netronome/
NVMEM FRAMEWORK
S: Maintained
+ T: git git://git.kernel.org/pub/scm/linux/kernel/git/srini/nvmem.git
F: Documentation/ABI/stable/sysfs-bus-nvmem
F: Documentation/devicetree/bindings/nvmem/
F: drivers/nvmem/
S: Maintained
+ F: Documentation/ABI/testing/sysfs-bus-optee-devices
F: drivers/tee/optee/
OP-TEE RANDOM NUMBER GENERATOR (RNG) DRIVER
F: Documentation/devicetree/bindings/pci/designware-pcie.txt
F: drivers/pci/controller/dwc/*designware*
- PCI DRIVER FOR TI DRA7XX
+ PCI DRIVER FOR TI DRA7XX/J721E
S: Supported
F: Documentation/devicetree/bindings/pci/ti-pci.txt
+ F: drivers/pci/controller/cadence/pci-j721e.c
F: drivers/pci/controller/dwc/pci-dra7xx.c
PCI DRIVER FOR TI KEYSTONE
PCI ENHANCED ERROR HANDLING (EEH) FOR POWERPC
S: Supported
S: Supported
- F: Documentation/networking/device_drivers/pensando/ionic.rst
+ F: Documentation/networking/device_drivers/ethernet/pensando/ionic.rst
F: drivers/net/ethernet/pensando/
PER-CPU MEMORY ALLOCATOR
F: include/linux/perf_event.h
F: include/uapi/linux/perf_event.h
F: kernel/events/*
+ F: tools/lib/perf/
F: tools/perf/
PERFORMANCE EVENTS SUBSYSTEM ARM64 PMU EVENTS
F: include/linux/pktcdvd.h
F: include/uapi/linux/pktcdvd.h
- PKUNITY SOC DRIVERS
- S: Maintained
- W: http://mprc.pku.edu.cn/~guanxuetao/linux
- T: git git://github.com/gxt/linux.git
- F: drivers/i2c/busses/i2c-puv3.c
- F: drivers/input/serio/i8042-unicore32io.h
- F: drivers/rtc/rtc-puv3.c
- F: drivers/video/fbdev/fb-puv3.c
-
PLANTOWER PMS7003 AIR POLLUTION SENSOR DRIVER
S: Maintained
F: Documentation/devicetree/bindings/iio/chemical/plantower,pms7003.yaml
F: drivers/iio/chemical/pms7003.c
+ PLDMFW LIBRARY
+ S: Maintained
+ F: Documentation/driver-api/pldmfw/
+ F: include/linux/pldmfw.h
+ F: lib/pldmfw/
+
PLX DMA DRIVER
S: Maintained
S: Supported
- F: Documentation/networking/device_drivers/qlogic/LICENSE.qla3xxx
+ F: Documentation/networking/device_drivers/ethernet/qlogic/LICENSE.qla3xxx
F: drivers/net/ethernet/qlogic/qla3xxx.*
QLOGIC QLA4XXX iSCSI DRIVER
S: Maintained
F: Documentation/devicetree/bindings/misc/fsl,qoriq-mc.txt
- F: Documentation/networking/device_drivers/freescale/dpaa2/overview.rst
+ F: Documentation/networking/device_drivers/ethernet/freescale/dpaa2/overview.rst
F: drivers/bus/fsl-mc/
QT1010 MEDIA DRIVER
S: Maintained
- F: Documentation/networking/device_drivers/qualcomm/rmnet.rst
+ F: Documentation/networking/device_drivers/cellular/qualcomm/rmnet.rst
F: drivers/net/ethernet/qualcomm/rmnet/
F: include/linux/if_rmnet.h
QUALCOMM TSENS THERMAL DRIVER
- M: Amit Kucheria <amit.kucheria@linaro.org>
+ M: Amit Kucheria <amitk@kernel.org>
S: Maintained
S: Orphan
F: drivers/net/wireless/ray*
+ RC-CORE / LIRC FRAMEWORK
+ S: Maintained
+ W: http://linuxtv.org
+ T: git git://linuxtv.org/media_tree.git
+ F: Documentation/driver-api/media/rc-core.rst
+ F: Documentation/userspace-api/media/rc/
+ F: drivers/media/rc/
+ F: include/media/rc-map.h
+ F: include/media/rc-core.h
+ F: include/uapi/linux/lirc.h
+
RCMM REMOTE CONTROLS DECODER
S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
F: tools/testing/selftests/rcutorture
+ RDACM20 Camera Sensor
+ S: Maintained
+ F: Documentation/devicetree/bindings/media/i2c/imi,rdacm2x-gmsl.yaml
+ F: drivers/media/i2c/rdacm20.c
+ F: drivers/media/i2c/max9271.c
+ F: drivers/media/i2c/max9271.h
+
RDC R-321X SoC
S: Maintained
F: Documentation/RCU/
F: include/linux/rcu*
F: kernel/rcu/
- X: Documentation/RCU/torture.txt
+ X: Documentation/RCU/torture.rst
X: include/linux/srcu*.h
X: kernel/rcu/srcu*.c
T: git git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc.git rproc-next
F: Documentation/ABI/testing/sysfs-class-remoteproc
F: Documentation/devicetree/bindings/remoteproc/
- F: Documentation/remoteproc.txt
+ F: Documentation/staging/remoteproc.rst
F: drivers/remoteproc/
F: include/linux/remoteproc.h
F: include/linux/remoteproc/
S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc.git rpmsg-next
F: Documentation/ABI/testing/sysfs-bus-rpmsg
- F: Documentation/rpmsg.txt
+ F: Documentation/staging/rpmsg.rst
F: drivers/rpmsg/
F: include/linux/rpmsg.h
F: include/linux/rpmsg/
S: Odd Fixes
F: drivers/tty/serial/rp2.*
+ ROHM BD99954 CHARGER IC
+ S: Supported
+ F: drivers/power/supply/bd99954-charger.c
+ F: drivers/power/supply/bd99954-charger.h
+
ROHM BH1750 AMBIENT LIGHT SENSOR DRIVER
S: Maintained
F: drivers/regulator/bd9571mwv-regulator.c
F: include/linux/mfd/bd9571mwv.h
+ ROHM POWER MANAGEMENT IC DEVICE DRIVERS
+ S: Supported
+ F: Documentation/devicetree/bindings/mfd/rohm,bd70528-pmic.txt
+ F: Documentation/devicetree/bindings/regulator/rohm,bd70528-regulator.txt
+ F: drivers/clk/clk-bd718x7.c
+ F: drivers/gpio/gpio-bd70528.c
+ F: drivers/gpio/gpio-bd71828.c
+ F: drivers/mfd/rohm-bd70528.c
+ F: drivers/mfd/rohm-bd71828.c
+ F: drivers/mfd/rohm-bd718x7.c
+ F: drivers/power/supply/bd70528-charger.c
+ F: drivers/regulator/bd70528-regulator.c
+ F: drivers/regulator/bd71828-regulator.c
+ F: drivers/regulator/bd718x7-regulator.c
+ F: drivers/regulator/rohm-regulator.c
+ F: drivers/rtc/rtc-bd70528.c
+ F: drivers/watchdog/bd70528_wdt.c
+ F: include/linux/mfd/rohm-bd70528.h
+ F: include/linux/mfd/rohm-bd71828.h
+ F: include/linux/mfd/rohm-bd718x7.h
+ F: include/linux/mfd/rohm-generic.h
+ F: include/linux/mfd/rohm-shared.h
+
ROSE NETWORK LAYER
F: include/linux/mmc/sdhci*
SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) MICROCHIP DRIVER
- M: Ludovic Desroches <ludovic.desroches@microchip.com>
+ M: Eugen Hristev <eugen.hristev@microchip.com>
S: Supported
F: drivers/mmc/host/sdhci-of-at91.c
F: security/selinux/
SENSABLE PHANTOM
- M: Jiri Slaby <jirislaby@gmail.com>
+ M: Jiri Slaby <jirislaby@kernel.org>
S: Maintained
F: drivers/misc/phantom.c
F: include/uapi/linux/phantom.h
+ SENSIRION SCD30 CARBON DIOXIDE SENSOR DRIVER
+ S: Maintained
+ F: Documentation/devicetree/bindings/iio/chemical/sensirion,scd30.yaml
+ F: drivers/iio/chemical/scd30.h
+ F: drivers/iio/chemical/scd30_core.c
+ F: drivers/iio/chemical/scd30_i2c.c
+ F: drivers/iio/chemical/scd30_serial.c
+
SENSIRION SPS30 AIR POLLUTION SENSOR DRIVER
S: Maintained
F: drivers/net/phy/sfp*
F: include/linux/phylink.h
F: include/linux/sfp.h
- K: phylink
+ K: phylink\.h|struct\s+phylink|\.phylink|>phylink_|phylink_(autoneg|clear|connect|create|destroy|disconnect|ethtool|helper|mac|mii|of|set|start|stop|test|validate)
SGI GRU DRIVER
S: Maintained
F: drivers/net/ethernet/smsc/smsc9420.*
- SOC-CAMERA V4L2 SUBSYSTEM
- S: Orphan
- T: git git://linuxtv.org/media_tree.git
- F: drivers/staging/media/soc_camera/
- F: include/media/soc_camera.h
-
SOCIONEXT (SNI) AVE NETWORK DRIVER
SOUNDWIRE SUBSYSTEM
- M: Sanyog Kale <sanyog.r.kale@intel.com>
+ M: Bard Liao <yung-chuan.liao@linux.intel.com>
S: Supported
F: Documentation/driver-api/soundwire/
B: https://bugzilla.kernel.org/enter_bug.cgi?component=Sparse&product=Tools
F: include/linux/compiler.h
+ SPEAKUP CONSOLE SPEECH DRIVER
+ S: Odd Fixes
+ W: http://www.linux-speakup.org/
+ F: drivers/accessibility/speakup/
+
SPEAR CLOCK FRAMEWORK SUPPORT
S: Supported
- F: Documentation/networking/device_drivers/toshiba/spider_net.rst
+ F: Documentation/networking/device_drivers/ethernet/toshiba/spider_net.rst
F: drivers/net/ethernet/toshiba/spider_net*
SPMI SUBSYSTEM
S: Maintained
F: drivers/staging/sm750fb/
- STAGING - SPEAKUP CONSOLE SPEECH DRIVER
- S: Odd Fixes
- W: http://www.linux-speakup.org/
- F: drivers/staging/speakup/
-
STAGING - VIA VT665X DRIVERS
S: Odd Fixes
F: drivers/staging/vt665?/
- STAGING - WILC1000 WIFI DRIVER
- S: Supported
- F: drivers/staging/wilc1000/
-
STAGING SUBSYSTEM
S: Supported
W: http://www.stlinux.com
- F: Documentation/networking/device_drivers/stmicro/
+ F: Documentation/networking/device_drivers/ethernet/stmicro/
F: drivers/net/ethernet/stmicro/stmmac/
SUN3/3X
S: Maintained
- F: Documentation/tee.txt
+ F: Documentation/staging/tee.rst
F: drivers/tee/
F: include/linux/tee_drv.h
F: include/uapi/linux/tee.h
TEGRA IOMMU DRIVERS
S: Supported
+ F: drivers/iommu/arm/arm-smmu/arm-smmu-nvidia.c
F: drivers/iommu/tegra*
TEGRA KBC DRIVER
S: Maintained
+ F: Documentation/devicetree/bindings/arm/keystone/ti,k3-sci-common.yaml
F: Documentation/devicetree/bindings/arm/keystone/ti,sci.txt
F: Documentation/devicetree/bindings/clock/ti,sci-clk.txt
F: Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.txt
THERMAL
S: Supported
Q: https://patchwork.kernel.org/project/linux-pm/list/
F: drivers/thermal/cpuidle_cooling.c
F: include/linux/cpu_cooling.h
+ THERMAL/POWER_ALLOCATOR
+ S: Maintained
+ F: Documentation/driver-api/thermal/power_allocator.rst
+ F: drivers/thermal/gov_power_allocator.c
+ F: include/trace/events/thermal_power_allocator.h
+
THINKPAD ACPI EXTRAS DRIVER
S: Maintained
W: http://sourceforge.net/projects/tlan/
- F: Documentation/networking/device_drivers/ti/tlan.rst
+ F: Documentation/networking/device_drivers/ethernet/ti/tlan.rst
F: drivers/net/ethernet/ti/tlan.*
TM6000 VIDEO4LINUX DRIVER
S: Supported
T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
- F: Documentation/RCU/torture.txt
+ F: Documentation/RCU/torture.rst
F: kernel/locking/locktorture.c
F: kernel/rcu/rcuperf.c
F: kernel/rcu/rcutorture.c
TTY LAYER
S: Supported
T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git
F: Documentation/driver-api/serial/
S: Supported
F: fs/unicode/
- UNICORE32 ARCHITECTURE
- S: Maintained
- W: http://mprc.pku.edu.cn/~guanxuetao/linux
- T: git git://github.com/gxt/linux.git
- F: arch/unicore32/
-
UNIFDEF
S: Maintained
F: drivers/dma/xilinx/xilinx_dpdma.c
F: include/dt-bindings/dma/xlnx-zynqmp-dpdma.h
+ XILINX ZYNQMP PSGTR PHY DRIVER
+ S: Supported
+ T: git https://github.com/Xilinx/linux-xlnx.git
+ F: Documentation/devicetree/bindings/phy/xlnx,zynqmp-psgtr.yaml
+ F: drivers/phy/xilinx/phy-zynqmp.c
+
XILLYBUS DRIVER
S: Maintained
W: http://yaina.de/jreuter/
W: http://www.qsl.net/dl1bke/
- F: Documentation/networking/z8530drv.rst
+ F: Documentation/networking/device_drivers/hamradio/z8530drv.rst
F: drivers/net/hamradio/*scc.c
F: drivers/net/hamradio/z8530.h