mod_devicetable.h: Split into per subsystem headers
Subsystems (571)
v3 cover mod_devicetable.h: Split into per subsystem headers
Hello,
v2 is available at
https://lore.kernel.org/lkml/[email protected]
.
Changes since then:
- rebased to v7.2-rc1
- rename the directory containing the new per device-id headers from "mod_device_id" to "device-id".
- Adding Acks received
- ASoC patch (formerly patch #3) dropped as it was already merged as commit 83d53eca7e55 ("ASoC: rockchip: rockchip_sai: #include <linux/platform_device.h> explicitly") in v7.2-rc1.
This series survived an allmodconfig build on alpha, arc, arm64, loongarch, m68k, mips, powerpc, riscv, s390, sh, sparc, and x86_64. (Well, some failures, but I see these also on vanilla v7.2-rc1.)
There are a few headers left that include <linux/mod_devicetable.h>, but these can be addressed in the next dev cycle without much impact as all the much included headers are covered here.
I will apply this series to
https://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux.git device-id-rework
which is included in next to expose it to the build bots and testers (in the hope that there won't occur much merge conflict with v7.3 material). I will add review tags and address (the hopefully very few) build issues that might pop up. My plan is to let Linus merge it end of the week for -rc2.
Best regards
Uwe
Uwe Kleine-König (The Capable Hub) (16):
mod_devicetable.h: Split into per subsystem headers
media: ti: vpe: #include <linux/platform_device.h> explicitly
driver: core: Include headers for acpi_device_id and of_device_id for
struct device_driver
driver core: platform: Include header for struct platform_device_id
usb: serial: Include <linux/usb.h> in <linux/usb/serial.h> platform/x86: msi-ec: Ensure dmi_system_id is defined
of: Explicitly include <linux/types.h> and <linux/err.h>
i2c: Let i2c-core.h include <linux/i2c.h>
platform/x86: x86-android-tablets: Add include defining struct
dmi_system_id
platform/x86: int3472: Add include defining struct dmi_system_id
usb: dwc2: Add include defining struct pci_device_id
ALSA: hda/core: Add include defining struct hda_device_id
LoongArch: KVM: Add include defining struct cpu_feature
media: em28xx: Add include for struct usb_device_id Replace <linux/mod_devicetable.h> by more specific
<linux/device-id/*.h> (headers)
Replace <linux/mod_devicetable.h> by more specific
<linux/device-id/*.h> (c files)arch/arm/mach-omap2/board-generic.c | 1 - arch/loongarch/kvm/main.c | 1 + arch/mips/include/asm/cdmm.h | 2 +- arch/mips/lantiq/xway/dcdc.c | 1 - arch/mips/lantiq/xway/gptu.c | 1 - arch/mips/lantiq/xway/vmmc.c | 1 - arch/mips/pci/pci-rt2880.c | 1 - arch/mips/ralink/timer.c | 1 - arch/parisc/include/asm/hardware.h | 4 +- arch/parisc/include/asm/parisc-device.h | 1 + .../powerpc/platforms/83xx/mcu_mpc8349emitx.c | 1 - arch/powerpc/platforms/86xx/common.c | 1 - arch/powerpc/sysdev/fsl_lbc.c | 1 - arch/powerpc/sysdev/fsl_pmc.c | 1 - arch/s390/include/asm/ccwdev.h | 2 +- arch/sh/drivers/platform_early.c | 2 +- arch/sparc/crypto/crop_devid.c | 2 +- arch/sparc/kernel/of_device_32.c | 1 - arch/sparc/kernel/of_device_64.c | 1 - arch/sparc/kernel/of_device_common.c | 1 - arch/x86/include/asm/cpu_device_id.h | 5 +- arch/x86/kvm/svm/svm.c | 1 - arch/x86/kvm/vmx/vmx.c | 1 - drivers/accel/ethosu/ethosu_drv.c | 1 - drivers/accel/qaic/qaic_timesync.c | 1 - drivers/accel/qaic/sahara.c | 1 - drivers/ata/ahci_platform.c | 1 - drivers/ata/ahci_sunxi.c | 1 - drivers/ata/pata_buddha.c | 1 - drivers/ata/pata_ep93xx.c | 1 - drivers/ata/pata_imx.c | 1 - drivers/auxdisplay/arm-charlcd.c | 1 - drivers/auxdisplay/hd44780.c | 1 - drivers/auxdisplay/lcd2s.c | 1 - drivers/auxdisplay/max6959.c | 1 - drivers/auxdisplay/seg-led-gpio.c | 1 - drivers/block/floppy.c | 2 +- drivers/bluetooth/hci_h5.c | 1 - drivers/bluetooth/hci_qca.c | 1 - drivers/bus/mhi/ep/main.c | 1 - drivers/bus/mhi/host/init.c | 1 - drivers/cache/hisi_soc_hha.c | 1 - drivers/cdx/controller/cdx_controller.c | 1 - drivers/char/hw_random/airoha-trng.c | 1 - drivers/char/hw_random/atmel-rng.c | 1 - drivers/char/hw_random/ba431-rng.c | 1 - drivers/char/hw_random/bcm74110-rng.c | 1 - drivers/char/hw_random/exynos-trng.c | 1 - drivers/char/hw_random/histb-rng.c | 1 - drivers/char/hw_random/imx-rngc.c | 1 - drivers/char/hw_random/ingenic-trng.c | 1 - drivers/char/hw_random/iproc-rng200.c | 1 - drivers/char/hw_random/pasemi-rng.c | 1 - drivers/char/hw_random/pic32-rng.c | 1 - drivers/char/hw_random/powernv-rng.c | 1 - drivers/char/hw_random/xgene-rng.c | 1 - drivers/char/hw_random/xilinx-trng.c | 1 - drivers/char/hw_random/xiphera-trng.c | 1 - drivers/clk/aspeed/clk-ast2600.c | 1 - drivers/clk/aspeed/clk-ast2700.c | 1 - drivers/clk/clk-axi-clkgen.c | 1 - drivers/clk/clk-bm1880.c | 1 - drivers/clk/clk-cdce706.c | 1 - drivers/clk/clk-eyeq.c | 1 - drivers/clk/clk-renesas-pcie.c | 1 - drivers/clk/clk-si521xx.c | 1 - drivers/clk/clk-versaclock5.c | 1 - drivers/clk/imx/clk-imx8mp-audiomix.c | 1 - drivers/clk/mediatek/clk-mt2701-g3d.c | 1 - drivers/clk/mediatek/clk-mt2701.c | 1 - drivers/clk/mediatek/clk-mt2712.c | 1 - drivers/clk/mediatek/clk-mt6765.c | 1 - drivers/clk/mediatek/clk-mt6779-aud.c | 1 - drivers/clk/mediatek/clk-mt7622-eth.c | 1 - drivers/clk/mediatek/clk-mt7622-hif.c | 1 - drivers/clk/mediatek/clk-mt7622.c | 1 - drivers/clk/mediatek/clk-mt7629-hif.c | 1 - drivers/clk/mediatek/clk-mt7981-apmixed.c | 1 - drivers/clk/mediatek/clk-mt7981-eth.c | 1 - drivers/clk/mediatek/clk-mt7981-infracfg.c | 1 - drivers/clk/mediatek/clk-mt7981-topckgen.c | 1 - drivers/clk/mediatek/clk-mt7986-apmixed.c | 1 - drivers/clk/mediatek/clk-mt7986-eth.c | 1 - drivers/clk/mediatek/clk-mt7986-infracfg.c | 1 - drivers/clk/mediatek/clk-mt7986-topckgen.c | 1 - drivers/clk/mediatek/clk-mt8167-aud.c | 1 - drivers/clk/mediatek/clk-mt8167-img.c | 1 - drivers/clk/mediatek/clk-mt8167-mfgcfg.c | 1 - drivers/clk/mediatek/clk-mt8167-mm.c | 1 - drivers/clk/mediatek/clk-mt8167-vdec.c | 1 - drivers/clk/mediatek/clk-mt8173-mm.c | 1 - drivers/clk/mediatek/clk-mt8183.c | 1 - .../clk/mediatek/clk-mt8188-adsp_audio26m.c | 1 - drivers/clk/mediatek/clk-mt8188-apmixedsys.c | 1 - .../clk/mediatek/clk-mt8188-imp_iic_wrap.c | 1 - drivers/clk/mediatek/clk-mt8188-topckgen.c | 1 - drivers/clk/mediatek/clk-mt8188-vdo0.c | 1 - drivers/clk/mediatek/clk-mt8188-vdo1.c | 1 - drivers/clk/mediatek/clk-mt8188-venc.c | 1 - drivers/clk/mediatek/clk-mt8188-wpe.c | 1 - drivers/clk/mediatek/clk-mt8192-cam.c | 1 - drivers/clk/mediatek/clk-mt8192-img.c | 1 - .../clk/mediatek/clk-mt8192-imp_iic_wrap.c | 1 - drivers/clk/mediatek/clk-mt8192-ipe.c | 1 - drivers/clk/mediatek/clk-mt8192-mdp.c | 1 - drivers/clk/mediatek/clk-mt8192-mfg.c | 1 - drivers/clk/mediatek/clk-mt8192-msdc.c | 1 - drivers/clk/mediatek/clk-mt8192-scp_adsp.c | 1 - drivers/clk/mediatek/clk-mt8192-vdec.c | 1 - drivers/clk/mediatek/clk-mt8192-venc.c | 1 - drivers/clk/mediatek/clk-mt8192.c | 1 - drivers/clk/mediatek/clk-mt8195-apmixedsys.c | 1 - drivers/clk/mediatek/clk-mt8195-topckgen.c | 1 - drivers/clk/mediatek/clk-mt8365.c | 1 - drivers/clk/mediatek/clk-mt8516-aud.c | 1 - drivers/clk/meson/a1-peripherals.c | 1 - drivers/clk/meson/a1-pll.c | 1 - drivers/clk/meson/axg.c | 1 - drivers/clk/meson/gxbb.c | 1 - drivers/clk/qcom/cambistmclkcc-kaanapali.c | 1 - drivers/clk/qcom/cambistmclkcc-sm8750.c | 1 - drivers/clk/qcom/camcc-kaanapali.c | 1 - drivers/clk/qcom/camcc-milos.c | 1 - drivers/clk/qcom/camcc-qcs615.c | 1 - drivers/clk/qcom/camcc-sa8775p.c | 1 - drivers/clk/qcom/camcc-sc7180.c | 1 - drivers/clk/qcom/camcc-sc7280.c | 1 - drivers/clk/qcom/camcc-sc8180x.c | 1 - drivers/clk/qcom/camcc-sc8280xp.c | 1 - drivers/clk/qcom/camcc-sdm845.c | 1 - drivers/clk/qcom/camcc-sm4450.c | 1 - drivers/clk/qcom/camcc-sm6350.c | 1 - drivers/clk/qcom/camcc-sm7150.c | 1 - drivers/clk/qcom/camcc-sm8150.c | 1 - drivers/clk/qcom/camcc-sm8250.c | 1 - drivers/clk/qcom/camcc-sm8450.c | 1 - drivers/clk/qcom/camcc-sm8550.c | 1 - drivers/clk/qcom/camcc-sm8650.c | 1 - drivers/clk/qcom/camcc-sm8750.c | 1 - drivers/clk/qcom/camcc-x1e80100.c | 1 - drivers/clk/qcom/camcc-x1p42100.c | 1 - drivers/clk/qcom/dispcc-eliza.c | 1 - drivers/clk/qcom/dispcc-glymur.c | 1 - drivers/clk/qcom/dispcc-kaanapali.c | 1 - drivers/clk/qcom/dispcc-milos.c | 1 - drivers/clk/qcom/dispcc-qcm2290.c | 1 - drivers/clk/qcom/dispcc-qcs615.c | 1 - drivers/clk/qcom/dispcc-sc7180.c | 1 - drivers/clk/qcom/dispcc-sc7280.c | 1 - drivers/clk/qcom/dispcc-sc8280xp.c | 1 - drivers/clk/qcom/dispcc-sdm845.c | 1 - drivers/clk/qcom/dispcc-sm4450.c | 1 - drivers/clk/qcom/dispcc-sm6115.c | 1 - drivers/clk/qcom/dispcc-sm6125.c | 1 - drivers/clk/qcom/dispcc-sm6350.c | 1 - drivers/clk/qcom/dispcc-sm6375.c | 1 - drivers/clk/qcom/dispcc-sm7150.c | 1 - drivers/clk/qcom/dispcc-sm8250.c | 1 - drivers/clk/qcom/dispcc-sm8450.c | 1 - drivers/clk/qcom/dispcc-sm8550.c | 1 - drivers/clk/qcom/dispcc-sm8750.c | 1 - drivers/clk/qcom/dispcc-x1e80100.c | 1 - drivers/clk/qcom/dispcc0-sa8775p.c | 1 - drivers/clk/qcom/dispcc1-sa8775p.c | 1 - drivers/clk/qcom/ecpricc-qdu1000.c | 1 - drivers/clk/qcom/gcc-eliza.c | 1 - drivers/clk/qcom/gcc-glymur.c | 1 - drivers/clk/qcom/gcc-hawi.c | 1 - drivers/clk/qcom/gcc-ipq5018.c | 1 - drivers/clk/qcom/gcc-ipq5332.c | 1 - drivers/clk/qcom/gcc-kaanapali.c | 1 - drivers/clk/qcom/gcc-milos.c | 1 - drivers/clk/qcom/gcc-nord.c | 1 - drivers/clk/qcom/gcc-qcs615.c | 1 - drivers/clk/qcom/gcc-qcs8300.c | 1 - drivers/clk/qcom/gcc-sa8775p.c | 1 - drivers/clk/qcom/gcc-sdx75.c | 1 - drivers/clk/qcom/gcc-sm4450.c | 1 - drivers/clk/qcom/gcc-sm7150.c | 1 - drivers/clk/qcom/gcc-sm8650.c | 1 - drivers/clk/qcom/gcc-sm8750.c | 1 - drivers/clk/qcom/gcc-x1e80100.c | 1 - drivers/clk/qcom/gpucc-glymur.c | 1 - drivers/clk/qcom/gpucc-kaanapali.c | 1 - drivers/clk/qcom/gpucc-milos.c | 1 - drivers/clk/qcom/gpucc-msm8998.c | 1 - drivers/clk/qcom/gpucc-qcm2290.c | 1 - drivers/clk/qcom/gpucc-qcs615.c | 1 - drivers/clk/qcom/gpucc-sa8775p.c | 1 - drivers/clk/qcom/gpucc-sar2130p.c | 1 - drivers/clk/qcom/gpucc-sc7180.c | 1 - drivers/clk/qcom/gpucc-sc7280.c | 1 - drivers/clk/qcom/gpucc-sc8280xp.c | 1 - drivers/clk/qcom/gpucc-sdm660.c | 1 - drivers/clk/qcom/gpucc-sdm845.c | 1 - drivers/clk/qcom/gpucc-sm4450.c | 1 - drivers/clk/qcom/gpucc-sm6115.c | 1 - drivers/clk/qcom/gpucc-sm6125.c | 1 - drivers/clk/qcom/gpucc-sm6350.c | 1 - drivers/clk/qcom/gpucc-sm6375.c | 1 - drivers/clk/qcom/gpucc-sm8150.c | 1 - drivers/clk/qcom/gpucc-sm8250.c | 1 - drivers/clk/qcom/gpucc-sm8350.c | 1 - drivers/clk/qcom/gpucc-sm8450.c | 1 - drivers/clk/qcom/gpucc-sm8550.c | 1 - drivers/clk/qcom/gpucc-sm8650.c | 1 - drivers/clk/qcom/gpucc-sm8750.c | 1 - drivers/clk/qcom/gpucc-x1e80100.c | 1 - drivers/clk/qcom/gpucc-x1p42100.c | 1 - drivers/clk/qcom/gxclkctl-kaanapali.c | 1 - drivers/clk/qcom/ipq-cmn-pll.c | 1 - drivers/clk/qcom/lpasscc-sc8280xp.c | 1 - drivers/clk/qcom/lpasscc-sm6115.c | 1 - drivers/clk/qcom/mmcc-apq8084.c | 1 - drivers/clk/qcom/mmcc-msm8960.c | 1 - drivers/clk/qcom/mmcc-msm8974.c | 1 - drivers/clk/qcom/mmcc-msm8994.c | 1 - drivers/clk/qcom/mmcc-msm8996.c | 1 - drivers/clk/qcom/mmcc-msm8998.c | 1 - drivers/clk/qcom/mmcc-sdm660.c | 1 - drivers/clk/qcom/negcc-nord.c | 1 - drivers/clk/qcom/nwgcc-nord.c | 1 - drivers/clk/qcom/segcc-nord.c | 1 - drivers/clk/qcom/tcsrcc-eliza.c | 1 - drivers/clk/qcom/tcsrcc-glymur.c | 1 - drivers/clk/qcom/tcsrcc-hawi.c | 1 - drivers/clk/qcom/tcsrcc-nord.c | 1 - drivers/clk/qcom/tcsrcc-sm8650.c | 1 - drivers/clk/qcom/tcsrcc-sm8750.c | 1 - drivers/clk/qcom/tcsrcc-x1e80100.c | 1 - drivers/clk/qcom/videocc-glymur.c | 1 - drivers/clk/qcom/videocc-kaanapali.c | 1 - drivers/clk/qcom/videocc-milos.c | 1 - drivers/clk/qcom/videocc-qcs615.c | 1 - drivers/clk/qcom/videocc-sa8775p.c | 1 - drivers/clk/qcom/videocc-sm7150.c | 1 - drivers/clk/qcom/videocc-sm8450.c | 1 - drivers/clk/qcom/videocc-sm8550.c | 1 - drivers/clk/qcom/videocc-sm8750.c | 1 - drivers/clk/qcom/videocc-x1p42100.c | 1 - drivers/clk/renesas/clk-vbattb.c | 1 - drivers/clk/renesas/renesas-cpg-mssr.c | 1 - drivers/clk/renesas/rzg2l-cpg.c | 1 - drivers/clk/renesas/rzv2h-cpg.c | 1 - drivers/clk/samsung/clk-exynos-audss.c | 1 - drivers/clk/samsung/clk-exynos-clkout.c | 1 - drivers/clk/samsung/clk-exynos2200.c | 1 - drivers/clk/samsung/clk-exynos3250.c | 1 - drivers/clk/samsung/clk-exynos4.c | 1 - drivers/clk/samsung/clk-exynos4412-isp.c | 1 - drivers/clk/samsung/clk-exynos5-subcmu.c | 1 - drivers/clk/samsung/clk-exynos5250.c | 1 - drivers/clk/samsung/clk-exynos5420.c | 1 - drivers/clk/samsung/clk-exynos5433.c | 1 - drivers/clk/samsung/clk-exynos7870.c | 1 - drivers/clk/samsung/clk-exynos7885.c | 1 - drivers/clk/samsung/clk-exynos850.c | 1 - drivers/clk/samsung/clk-exynos8895.c | 1 - drivers/clk/samsung/clk-exynos990.c | 1 - drivers/clk/samsung/clk-exynosautov9.c | 1 - drivers/clk/samsung/clk-exynosautov920.c | 1 - drivers/clk/samsung/clk-fsd.c | 1 - drivers/clk/samsung/clk-gs101.c | 1 - drivers/clk/samsung/clk-s5pv210-audss.c | 1 - drivers/clk/samsung/clk.c | 1 - drivers/clk/sprd/ums512-clk.c | 1 - .../clk/starfive/clk-starfive-jh7100-audio.c | 1 - drivers/clk/starfive/clk-starfive-jh7100.c | 1 - drivers/clk/tegra/clk-device.c | 1 - drivers/clk/xilinx/xlnx_vcu.c | 1 - drivers/counter/interrupt-cnt.c | 1 - drivers/counter/stm32-lptimer-cnt.c | 1 - drivers/counter/stm32-timer-cnt.c | 1 - drivers/counter/ti-ecap-capture.c | 1 - drivers/counter/ti-eqep.c | 1 - drivers/cpufreq/amd_freq_sensitivity.c | 1 - drivers/cpufreq/armada-37xx-cpufreq.c | 1 - drivers/crypto/atmel-aes.c | 1 - drivers/crypto/atmel-sha.c | 1 - drivers/crypto/atmel-tdes.c | 1 - drivers/crypto/hifn_795x.c | 1 - drivers/crypto/img-hash.c | 1 - .../intel/keembay/keembay-ocs-hcu-core.c | 1 - drivers/crypto/qce/core.c | 1 - drivers/crypto/starfive/jh7110-cryp.c | 1 - drivers/crypto/talitos.c | 1 - drivers/crypto/tegra/tegra-se-main.c | 1 - drivers/crypto/ti/dthev2-common.c | 1 - drivers/crypto/xilinx/zynqmp-aes-gcm.c | 1 - drivers/devfreq/hisi_uncore_freq.c | 1 - drivers/devfreq/imx8m-ddrc.c | 1 - drivers/dma/amd/qdma/qdma.c | 1 - drivers/dma/ep93xx_dma.c | 1 - drivers/dma/qcom/hidma.c | 1 - drivers/dma/sf-pdma/sf-pdma.c | 1 - drivers/dma/xgene-dma.c | 1 - drivers/dma/xilinx/xdma.c | 1 - drivers/dpll/zl3073x/dpll.c | 1 - drivers/edac/fsl_ddr_edac.c | 1 - drivers/edac/mpc85xx_edac.c | 1 - drivers/edac/pnd2_edac.c | 1 - drivers/edac/sb_edac.c | 1 - drivers/extcon/extcon-intel-cht-wc.c | 1 - drivers/extcon/extcon-intel-mrfld.c | 1 - drivers/extcon/extcon-max14526.c | 1 - drivers/extcon/extcon-max3355.c | 1 - drivers/extcon/extcon-qcom-spmi-misc.c | 1 - drivers/extcon/extcon-usb-gpio.c | 1 - drivers/firewire/core-device.c | 1 - drivers/firewire/net.c | 1 - drivers/firewire/sbp2.c | 1 - drivers/firmware/google/cbmem.c | 2 +- drivers/firmware/google/coreboot_table.c | 2 +- .../firmware/google/framebuffer-coreboot.c | 2 +- drivers/firmware/google/memconsole-coreboot.c | 2 +- drivers/firmware/google/vpd.c | 2 +- drivers/firmware/qemu_fw_cfg.c | 1 - drivers/fpga/altera-freeze-bridge.c | 1 - drivers/fpga/altera-pr-ip-core-plat.c | 1 - drivers/fpga/ice40-spi.c | 1 - drivers/fpga/intel-m10-bmc-sec-update.c | 1 - drivers/fpga/lattice-sysconfig-spi.c | 1 - drivers/fpga/xilinx-selectmap.c | 1 - drivers/fpga/xilinx-spi.c | 1 - drivers/fsi/fsi-master-i2cr.c | 1 - drivers/fsi/fsi-scom.c | 2 +- drivers/fsi/i2cr-scom.c | 1 - drivers/gpib/eastwood/fluke_gpib.c | 1 - drivers/gpio/gpio-74xx-mmio.c | 1 - drivers/gpio/gpio-adnp.c | 1 - drivers/gpio/gpio-aggregator.c | 1 - drivers/gpio/gpio-altera-a10sr.c | 2 +- drivers/gpio/gpio-altera.c | 1 - drivers/gpio/gpio-ath79.c | 1 - drivers/gpio/gpio-bcm-kona.c | 1 - drivers/gpio/gpio-by-pinctrl.c | 1 - drivers/gpio/gpio-cros-ec.c | 1 - drivers/gpio/gpio-dwapb.c | 1 - drivers/gpio/gpio-en7523.c | 1 - drivers/gpio/gpio-ge.c | 1 - drivers/gpio/gpio-graniterapids.c | 1 - drivers/gpio/gpio-hisi.c | 1 - drivers/gpio/gpio-idt3243x.c | 1 - drivers/gpio/gpio-latch.c | 1 - drivers/gpio/gpio-line-mux.c | 1 - drivers/gpio/gpio-ltc4283.c | 1 - drivers/gpio/gpio-max7360.c | 1 - drivers/gpio/gpio-max77759.c | 1 - drivers/gpio/gpio-mb86s7x.c | 1 - drivers/gpio/gpio-mlxbf2.c | 1 - drivers/gpio/gpio-mmio.c | 1 - drivers/gpio/gpio-mockup.c | 1 - drivers/gpio/gpio-mpc8xxx.c | 1 - drivers/gpio/gpio-mpfs.c | 1 - drivers/gpio/gpio-nomadik.c | 1 - drivers/gpio/gpio-pca953x.c | 1 - drivers/gpio/gpio-pcf857x.c | 1 - drivers/gpio/gpio-qixis-fpga.c | 1 - drivers/gpio/gpio-realtek-otto.c | 1 - drivers/gpio/gpio-shared-proxy.c | 1 - drivers/gpio/gpio-sim.c | 1 - drivers/gpio/gpio-sl28cpld.c | 1 - drivers/gpio/gpio-sloppy-logic-analyzer.c | 1 - drivers/gpio/gpio-sprd.c | 1 - drivers/gpio/gpio-tn48m.c | 1 - drivers/gpio/gpio-virtuser.c | 1 - drivers/gpio/gpio-wcd934x.c | 1 - drivers/gpio/gpio-xgene-sb.c | 1 - drivers/gpio/gpio-xra1403.c | 1 - drivers/gpio/gpio-zevio.c | 1 - drivers/gpu/drm/aspeed/aspeed_gfx_drv.c | 1 - drivers/gpu/drm/bridge/imx/imx8mp-hdmi-tx.c | 1 - drivers/gpu/drm/bridge/inno-hdmi.c | 1 - drivers/gpu/drm/bridge/ssd2825.c | 1 - drivers/gpu/drm/bridge/tc358762.c | 2 +- drivers/gpu/drm/bridge/tc358764.c | 2 +- drivers/gpu/drm/bridge/th1520-dw-hdmi.c | 1 - drivers/gpu/drm/drm_panel_backlight_quirks.c | 1 - drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 1 - drivers/gpu/drm/exynos/exynos_drm_gsc.c | 1 - drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c | 1 - drivers/gpu/drm/imagination/pvr_drv.c | 1 - drivers/gpu/drm/imx/dc/dc-cf.c | 1 - drivers/gpu/drm/imx/dc/dc-de.c | 1 - drivers/gpu/drm/imx/dc/dc-drv.c | 1 - drivers/gpu/drm/imx/dc/dc-ed.c | 1 - drivers/gpu/drm/imx/dc/dc-fg.c | 1 - drivers/gpu/drm/imx/dc/dc-fl.c | 1 - drivers/gpu/drm/imx/dc/dc-fw.c | 1 - drivers/gpu/drm/imx/dc/dc-lb.c | 1 - drivers/gpu/drm/imx/dc/dc-pe.c | 1 - drivers/gpu/drm/imx/dc/dc-tc.c | 1 - drivers/gpu/drm/imx/lcdc/imx-lcdc.c | 1 - drivers/gpu/drm/mediatek/mtk_cec.c | 1 - drivers/gpu/drm/mediatek/mtk_mdp_rdma.c | 1 - drivers/gpu/drm/meson/meson_dw_mipi_dsi.c | 1 - drivers/gpu/drm/mxsfb/mxsfb_drv.c | 1 - drivers/gpu/drm/panel/panel-arm-versatile.c | 1 - drivers/gpu/drm/panel/panel-auo-a030jtn01.c | 1 - drivers/gpu/drm/panel/panel-boe-td4320.c | 2 +- .../gpu/drm/panel/panel-feixin-k101-im2ba02.c | 2 +- .../drm/panel/panel-feiyang-fy07024di26a30d.c | 2 +- drivers/gpu/drm/panel/panel-himax-hx83112b.c | 1 - drivers/gpu/drm/panel/panel-himax-hx83121a.c | 1 - drivers/gpu/drm/panel/panel-himax-hx8394.c | 1 - drivers/gpu/drm/panel/panel-hydis-hv101hd1.c | 2 +- drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 1 - .../gpu/drm/panel/panel-ilitek-ili9806e-dsi.c | 1 - drivers/gpu/drm/panel/panel-lg-ld070wx3.c | 2 +- drivers/gpu/drm/panel/panel-motorola-mot.c | 2 +- drivers/gpu/drm/panel/panel-novatek-nt35532.c | 2 +- drivers/gpu/drm/panel/panel-novatek-nt37801.c | 1 - .../gpu/drm/panel/panel-orisetech-otm8009a.c | 1 - drivers/gpu/drm/panel/panel-raydium-rm67200.c | 2 +- drivers/gpu/drm/panel/panel-raydium-rm68200.c | 2 +- drivers/gpu/drm/panel/panel-renesas-r61307.c | 2 +- drivers/gpu/drm/panel/panel-renesas-r69328.c | 2 +- .../gpu/drm/panel/panel-samsung-ltl106hl02.c | 2 +- drivers/gpu/drm/panel/panel-samsung-s6d16d0.c | 2 +- .../gpu/drm/panel/panel-samsung-s6e63j0x03.c | 1 - .../gpu/drm/panel/panel-samsung-s6e63m0-dsi.c | 2 +- .../panel/panel-samsung-s6e88a0-ams427ap24.c | 1 - .../drm/panel/panel-samsung-s6e8fc0-m1906f9.c | 1 - drivers/gpu/drm/panel/panel-sitronix-st7703.c | 1 - drivers/gpu/drm/panel/panel-summit.c | 1 - .../gpu/drm/panel/panel-visionox-rm69299.c | 1 - .../gpu/drm/panel/panel-visionox-rm692e5.c | 1 - .../gpu/drm/renesas/rcar-du/rcar_dw_hdmi.c | 1 - .../gpu/drm/rockchip/dw-mipi-dsi2-rockchip.c | 1 - drivers/gpu/drm/rockchip/inno_hdmi-rockchip.c | 1 - drivers/gpu/drm/rockchip/rockchip_vop2_reg.c | 1 - drivers/gpu/drm/rockchip/rockchip_vop_reg.c | 1 - drivers/gpu/drm/sprd/sprd_drm.c | 1 - drivers/gpu/drm/sti/sti_hda.c | 1 - drivers/gpu/drm/stm/drv.c | 1 - drivers/gpu/drm/stm/dw_mipi_dsi-stm.c | 1 - drivers/gpu/drm/sun4i/sun6i_drc.c | 1 - drivers/gpu/drm/tilcdc/tilcdc_drv.c | 1 - drivers/gpu/drm/tiny/sharp-memory.c | 1 - drivers/gpu/drm/vc4/vc4_dpi.c | 1 - drivers/gpu/drm/vc4/vc4_txp.c | 1 - drivers/hid/i2c-hid/i2c-hid-dmi-quirks.c | 1 - drivers/hid/intel-ish-hid/ishtp/bus.h | 2 +- drivers/hsi/controllers/omap_ssi_port.c | 1 - drivers/hte/hte-tegra194-test.c | 1 - drivers/hwmon/adcxx.c | 1 - drivers/hwmon/adt7410.c | 1 - drivers/hwmon/adt7462.c | 1 - drivers/hwmon/adt7475.c | 1 - drivers/hwmon/as370-hwmon.c | 1 - drivers/hwmon/axi-fan-control.c | 1 - drivers/hwmon/cros_ec_hwmon.c | 1 - drivers/hwmon/gxp-fan-ctrl.c | 1 - drivers/hwmon/iio_hwmon.c | 1 - drivers/hwmon/intel-m10-bmc-hwmon.c | 1 - drivers/hwmon/jc42.c | 1 - drivers/hwmon/lan966x-hwmon.c | 1 - drivers/hwmon/lm70.c | 1 - drivers/hwmon/lm75.c | 1 - drivers/hwmon/ltc2947-core.c | 1 - drivers/hwmon/ltc4282.c | 1 - drivers/hwmon/ltc4283.c | 1 - drivers/hwmon/ltq-cputemp.c | 1 - drivers/hwmon/max197.c | 1 - drivers/hwmon/mc13783-adc.c | 1 - drivers/hwmon/mr75203.c | 1 - drivers/hwmon/ntc_thermistor.c | 1 - drivers/hwmon/occ/p9_sbe.c | 1 - drivers/hwmon/pmbus/adp1050.c | 1 - drivers/hwmon/pmbus/e50sn12051.c | 1 - drivers/hwmon/pmbus/lt3074.c | 1 - drivers/hwmon/pmbus/max17616.c | 1 - drivers/hwmon/pmbus/max20830.c | 1 - drivers/hwmon/pmbus/mp2975.c | 1 - drivers/hwmon/pmbus/stef48h28.c | 1 - drivers/hwmon/pwm-fan.c | 1 - drivers/hwmon/sch5627.c | 1 - drivers/hwmon/sch5636.c | 1 - drivers/hwmon/sl28cpld-hwmon.c | 1 - drivers/hwmon/smpro-hwmon.c | 1 - drivers/hwmon/sparx5-temp.c | 1 - drivers/hwmon/tmp102.c | 1 - drivers/hwmon/tmp108.c | 1 - drivers/hwtracing/coresight/ultrasoc-smb.c | 1 - drivers/i2c/busses/i2c-amd-asf-plat.c | 1 - drivers/i2c/busses/i2c-gxp.c | 1 - drivers/i2c/busses/i2c-hisi.c | 1 - drivers/i2c/busses/i2c-rtl9300.c | 1 - drivers/i2c/busses/i2c-rzv2m.c | 1 - drivers/i2c/i2c-core.h | 1 + drivers/iio/accel/adxl313_i2c.c | 1 - drivers/iio/accel/adxl313_spi.c | 1 - drivers/iio/accel/adxl355_core.c | 1 - drivers/iio/accel/adxl355_i2c.c | 1 - drivers/iio/accel/adxl355_spi.c | 1 - drivers/iio/accel/adxl367.c | 1 - drivers/iio/accel/adxl367_i2c.c | 1 - drivers/iio/accel/adxl367_spi.c | 1 - drivers/iio/accel/adxl372_i2c.c | 1 - drivers/iio/accel/adxl372_spi.c | 1 - drivers/iio/accel/adxl380_i2c.c | 1 - drivers/iio/accel/adxl380_spi.c | 1 - drivers/iio/accel/bma180.c | 1 - drivers/iio/accel/bma220_core.c | 1 - drivers/iio/accel/bma220_i2c.c | 1 - drivers/iio/accel/bma220_spi.c | 1 - drivers/iio/accel/bma400_i2c.c | 1 - drivers/iio/accel/bma400_spi.c | 1 - drivers/iio/accel/bmc150-accel-i2c.c | 1 - drivers/iio/accel/bmc150-accel-spi.c | 1 - drivers/iio/accel/bmi088-accel-i2c.c | 1 - drivers/iio/accel/dmard06.c | 1 - drivers/iio/accel/fxls8962af-core.c | 1 - drivers/iio/accel/fxls8962af-i2c.c | 1 - drivers/iio/accel/fxls8962af-spi.c | 1 - drivers/iio/accel/hid-sensor-accel-3d.c | 1 - drivers/iio/accel/kxcjk-1013.c | 1 - drivers/iio/accel/kxsd9-i2c.c | 1 - drivers/iio/accel/kxsd9-spi.c | 1 - drivers/iio/accel/mma7660.c | 1 - drivers/iio/accel/mma8452.c | 1 - drivers/iio/accel/mma9551.c | 1 - drivers/iio/accel/mma9553.c | 1 - drivers/iio/accel/msa311.c | 1 - drivers/iio/accel/mxc4005.c | 1 - drivers/iio/accel/mxc6255.c | 1 - drivers/iio/accel/st_accel_i2c.c | 1 - drivers/iio/accel/st_accel_spi.c | 1 - drivers/iio/accel/stk8ba50.c | 1 - drivers/iio/adc/88pm886-gpadc.c | 1 - drivers/iio/adc/ad4000.c | 1 - drivers/iio/adc/ad4080.c | 1 - drivers/iio/adc/ad4134.c | 1 - drivers/iio/adc/ad4691.c | 1 - drivers/iio/adc/ad4851.c | 1 - drivers/iio/adc/ad7124.c | 1 - drivers/iio/adc/ad7173.c | 1 - drivers/iio/adc/ad7191.c | 1 - drivers/iio/adc/ad7192.c | 1 - drivers/iio/adc/ad7280a.c | 1 - drivers/iio/adc/ad7292.c | 1 - drivers/iio/adc/ad7298.c | 1 - drivers/iio/adc/ad7405.c | 1 - drivers/iio/adc/ad7606_par.c | 1 - drivers/iio/adc/ad7625.c | 1 - drivers/iio/adc/ad7779.c | 1 - drivers/iio/adc/adi-axi-adc.c | 1 - drivers/iio/adc/at91-sama5d2_adc.c | 1 - drivers/iio/adc/axp20x_adc.c | 1 - drivers/iio/adc/bcm_iproc_adc.c | 1 - drivers/iio/adc/berlin2-adc.c | 1 - drivers/iio/adc/cpcap-adc.c | 1 - drivers/iio/adc/envelope-detector.c | 1 - drivers/iio/adc/fsl-imx25-gcq.c | 1 - drivers/iio/adc/hi8435.c | 1 - drivers/iio/adc/hx711.c | 1 - drivers/iio/adc/imx7d_adc.c | 1 - drivers/iio/adc/imx8qxp-adc.c | 1 - drivers/iio/adc/imx93_adc.c | 1 - drivers/iio/adc/ingenic-adc.c | 1 - drivers/iio/adc/intel_dc_ti_adc.c | 1 - drivers/iio/adc/intel_mrfld_adc.c | 1 - drivers/iio/adc/lpc18xx_adc.c | 1 - drivers/iio/adc/lpc32xx_adc.c | 1 - drivers/iio/adc/ltc2496.c | 1 - drivers/iio/adc/ltc2497.c | 1 - drivers/iio/adc/max1027.c | 1 - drivers/iio/adc/max11100.c | 1 - drivers/iio/adc/max1118.c | 1 - drivers/iio/adc/max1363.c | 1 - drivers/iio/adc/max14001.c | 1 - drivers/iio/adc/max34408.c | 1 - drivers/iio/adc/max77541-adc.c | 1 - drivers/iio/adc/max9611.c | 1 - drivers/iio/adc/mcp320x.c | 1 - drivers/iio/adc/mcp3422.c | 1 - drivers/iio/adc/mcp3911.c | 1 - drivers/iio/adc/mp2629_adc.c | 1 - drivers/iio/adc/mt6359-auxadc.c | 1 - drivers/iio/adc/mt6360-adc.c | 1 - drivers/iio/adc/mt6370-adc.c | 1 - drivers/iio/adc/mt6577_auxadc.c | 1 - drivers/iio/adc/nau7802.c | 1 - drivers/iio/adc/nct7201.c | 1 - drivers/iio/adc/npcm_adc.c | 1 - drivers/iio/adc/nxp-sar-adc.c | 1 - drivers/iio/adc/qcom-pm8xxx-xoadc.c | 1 - drivers/iio/adc/qcom-spmi-adc5-gen3.c | 1 - drivers/iio/adc/qcom-spmi-adc5.c | 1 - drivers/iio/adc/qcom-spmi-rradc.c | 1 - drivers/iio/adc/qcom-spmi-vadc.c | 1 - drivers/iio/adc/rohm-bd79112.c | 1 - drivers/iio/adc/rohm-bd79124.c | 1 - drivers/iio/adc/rtq6056.c | 1 - drivers/iio/adc/rzg2l_adc.c | 1 - drivers/iio/adc/rzn1-adc.c | 1 - drivers/iio/adc/rzt2h_adc.c | 1 - drivers/iio/adc/sd_adc_modulator.c | 1 - drivers/iio/adc/sophgo-cv1800b-adc.c | 1 - drivers/iio/adc/spear_adc.c | 1 - drivers/iio/adc/stm32-adc.c | 1 - drivers/iio/adc/sun20i-gpadc-iio.c | 1 - drivers/iio/adc/ti-adc081c.c | 1 - drivers/iio/adc/ti-adc0832.c | 1 - drivers/iio/adc/ti-adc084s021.c | 1 - drivers/iio/adc/ti-adc108s102.c | 1 - drivers/iio/adc/ti-adc128s052.c | 1 - drivers/iio/adc/ti-adc161s626.c | 1 - drivers/iio/adc/ti-ads1018.c | 1 - drivers/iio/adc/ti-ads124s08.c | 1 - drivers/iio/adc/ti-ads131m02.c | 1 - drivers/iio/adc/ti-ads8688.c | 1 - drivers/iio/adc/ti-tlc4541.c | 1 - drivers/iio/adc/twl4030-madc.c | 1 - drivers/iio/adc/twl6030-gpadc.c | 1 - drivers/iio/adc/vf610_adc.c | 1 - drivers/iio/adc/xilinx-ams.c | 1 - drivers/iio/adc/xilinx-xadc-core.c | 1 - drivers/iio/addac/ad74413r.c | 1 - drivers/iio/afe/iio-rescale.c | 1 - drivers/iio/amplifiers/ad8366.c | 1 - drivers/iio/amplifiers/adl8113.c | 1 - drivers/iio/amplifiers/hmc425a.c | 1 - drivers/iio/cdc/ad7150.c | 1 - drivers/iio/chemical/ams-iaq-core.c | 1 - drivers/iio/chemical/atlas-ezo-sensor.c | 1 - drivers/iio/chemical/atlas-sensor.c | 1 - drivers/iio/chemical/bme680_spi.c | 1 - drivers/iio/chemical/mhz19b.c | 1 - drivers/iio/chemical/pms7003.c | 1 - drivers/iio/chemical/scd30_i2c.c | 1 - drivers/iio/chemical/scd30_serial.c | 1 - drivers/iio/chemical/sgp30.c | 1 - drivers/iio/chemical/sps30_i2c.c | 1 - drivers/iio/chemical/sps30_serial.c | 1 - drivers/iio/chemical/sunrise_co2.c | 1 - drivers/iio/chemical/vz89x.c | 1 - .../cros_ec_sensors/cros_ec_lid_angle.c | 1 - .../common/cros_ec_sensors/cros_ec_sensors.c | 1 - drivers/iio/common/ssp_sensors/ssp_dev.c | 1 - drivers/iio/dac/ad3530r.c | 1 - drivers/iio/dac/ad3552r-hs.c | 1 - drivers/iio/dac/ad5446-i2c.c | 1 - drivers/iio/dac/ad5446-spi.c | 1 - drivers/iio/dac/ad5592r.c | 1 - drivers/iio/dac/ad5593r.c | 1 - drivers/iio/dac/ad5686-spi.c | 1 - drivers/iio/dac/ad5696-i2c.c | 1 - drivers/iio/dac/ad5706r.c | 1 - drivers/iio/dac/ad5758.c | 1 - drivers/iio/dac/ad7293.c | 1 - drivers/iio/dac/ad7303.c | 1 - drivers/iio/dac/ad8460.c | 1 - drivers/iio/dac/ad9739a.c | 1 - drivers/iio/dac/adi-axi-dac.c | 1 - drivers/iio/dac/dpot-dac.c | 1 - drivers/iio/dac/lpc18xx_dac.c | 1 - drivers/iio/dac/ltc2664.c | 1 - drivers/iio/dac/ltc2688.c | 1 - drivers/iio/dac/max22007.c | 1 - drivers/iio/dac/max5522.c | 1 - drivers/iio/dac/mcp4725.c | 1 - drivers/iio/dac/mcp4728.c | 1 - drivers/iio/dac/mcp47feb02.c | 1 - drivers/iio/dac/mcp4821.c | 1 - drivers/iio/dac/stm32-dac-core.c | 1 - drivers/iio/dac/stm32-dac.c | 1 - drivers/iio/dac/ti-dac082s085.c | 1 - drivers/iio/dac/ti-dac5571.c | 1 - drivers/iio/dac/vf610_dac.c | 1 - drivers/iio/filter/admv8818.c | 1 - drivers/iio/frequency/adf4350.c | 1 - drivers/iio/frequency/admfm2000.c | 1 - drivers/iio/frequency/admv1013.c | 1 - drivers/iio/frequency/admv1014.c | 1 - drivers/iio/frequency/adrf6780.c | 1 - drivers/iio/gyro/bmg160_i2c.c | 1 - drivers/iio/gyro/fxas21002c_i2c.c | 1 - drivers/iio/gyro/fxas21002c_spi.c | 1 - drivers/iio/gyro/hid-sensor-gyro-3d.c | 1 - drivers/iio/gyro/st_gyro_i2c.c | 1 - drivers/iio/gyro/st_gyro_spi.c | 1 - drivers/iio/health/max30102.c | 1 - drivers/iio/humidity/dht11.c | 1 - drivers/iio/humidity/ens210.c | 1 - drivers/iio/humidity/hdc100x.c | 1 - drivers/iio/humidity/hid-sensor-humidity.c | 1 - drivers/iio/humidity/hts221_i2c.c | 1 - drivers/iio/humidity/htu21.c | 1 - drivers/iio/humidity/si7020.c | 1 - drivers/iio/imu/adis16475.c | 1 - drivers/iio/imu/adis16480.c | 1 - drivers/iio/imu/adis16550.c | 1 - drivers/iio/imu/bmi160/bmi160_i2c.c | 1 - drivers/iio/imu/bmi160/bmi160_spi.c | 1 - drivers/iio/imu/bmi270/bmi270_i2c.c | 1 - drivers/iio/imu/bmi270/bmi270_spi.c | 1 - drivers/iio/imu/bmi323/bmi323_i2c.c | 1 - drivers/iio/imu/bmi323/bmi323_spi.c | 1 - drivers/iio/imu/bno055/bno055_i2c.c | 1 - drivers/iio/imu/bno055/bno055_ser_core.c | 1 - drivers/iio/imu/fxos8700_i2c.c | 1 - drivers/iio/imu/fxos8700_spi.c | 1 - .../iio/imu/inv_icm42600/inv_icm42600_i2c.c | 1 - .../iio/imu/inv_icm42600/inv_icm42600_spi.c | 1 - .../iio/imu/inv_icm45600/inv_icm45600_i2c.c | 1 - .../iio/imu/inv_icm45600/inv_icm45600_i3c.c | 1 - .../iio/imu/inv_icm45600/inv_icm45600_spi.c | 1 - drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c | 1 - drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c | 1 - drivers/iio/imu/kmx61.c | 1 - drivers/iio/imu/smi330/smi330_i2c.c | 1 - drivers/iio/imu/smi330/smi330_spi.c | 1 - drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i3c.c | 1 - drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_i2c.c | 1 - drivers/iio/imu/st_lsm9ds0/st_lsm9ds0_spi.c | 1 - drivers/iio/light/al3000a.c | 1 - drivers/iio/light/al3010.c | 1 - drivers/iio/light/al3320a.c | 1 - drivers/iio/light/apds9999.c | 1 - drivers/iio/light/bh1780.c | 1 - drivers/iio/light/cm32181.c | 1 - drivers/iio/light/cm3232.c | 1 - drivers/iio/light/cm3605.c | 1 - drivers/iio/light/cros_ec_light_prox.c | 1 - drivers/iio/light/gp2ap020a00f.c | 1 - drivers/iio/light/hid-sensor-als.c | 1 - drivers/iio/light/hid-sensor-prox.c | 1 - drivers/iio/light/isl29018.c | 1 - drivers/iio/light/jsa1212.c | 1 - drivers/iio/light/ltr501.c | 1 - drivers/iio/light/ltrf216a.c | 1 - drivers/iio/light/max44000.c | 1 - drivers/iio/light/opt3001.c | 1 - drivers/iio/light/rpr0521.c | 1 - drivers/iio/light/si1133.c | 1 - drivers/iio/light/st_uvis25_i2c.c | 1 - drivers/iio/light/st_uvis25_spi.c | 1 - drivers/iio/light/stk3310.c | 1 - drivers/iio/light/tsl2563.c | 1 - drivers/iio/light/us5182d.c | 1 - drivers/iio/light/veml3328.c | 1 - drivers/iio/light/veml6046x00.c | 1 - drivers/iio/light/vl6180.c | 1 - drivers/iio/magnetometer/ak8974.c | 1 - drivers/iio/magnetometer/ak8975.c | 1 - drivers/iio/magnetometer/bmc150_magn_i2c.c | 1 - drivers/iio/magnetometer/bmc150_magn_spi.c | 1 - drivers/iio/magnetometer/hid-sensor-magn-3d.c | 1 - drivers/iio/magnetometer/mmc35240.c | 1 - drivers/iio/magnetometer/mmc5633.c | 1 - drivers/iio/magnetometer/mmc5983.c | 1 - drivers/iio/magnetometer/si7210.c | 1 - drivers/iio/magnetometer/st_magn_i2c.c | 1 - drivers/iio/magnetometer/st_magn_spi.c | 1 - drivers/iio/magnetometer/tlv493d.c | 1 - drivers/iio/magnetometer/yamaha-yas530.c | 1 - drivers/iio/multiplexer/iio-mux.c | 1 - drivers/iio/orientation/hid-sensor-incl-3d.c | 1 - drivers/iio/orientation/hid-sensor-rotation.c | 1 - .../position/hid-sensor-custom-intel-hinge.c | 1 - drivers/iio/potentiometer/ad5272.c | 1 - drivers/iio/potentiometer/ds1803.c | 1 - drivers/iio/potentiometer/max5432.c | 1 - drivers/iio/potentiometer/max5481.c | 1 - drivers/iio/potentiometer/max5487.c | 1 - drivers/iio/potentiometer/mcp4018.c | 1 - drivers/iio/potentiometer/mcp41010.c | 1 - drivers/iio/potentiometer/mcp4131.c | 1 - drivers/iio/potentiometer/mcp4531.c | 1 - drivers/iio/potentiostat/lmp91000.c | 1 - drivers/iio/pressure/abp2030pa_i2c.c | 1 - drivers/iio/pressure/abp2030pa_spi.c | 1 - drivers/iio/pressure/adp810.c | 1 - drivers/iio/pressure/cros_ec_baro.c | 1 - drivers/iio/pressure/hid-sensor-press.c | 1 - drivers/iio/pressure/hp206c.c | 1 - drivers/iio/pressure/hsc030pa.c | 1 - drivers/iio/pressure/hsc030pa_i2c.c | 1 - drivers/iio/pressure/hsc030pa_spi.c | 1 - drivers/iio/pressure/icp10100.c | 1 - drivers/iio/pressure/mprls0025pa.c | 1 - drivers/iio/pressure/mprls0025pa_i2c.c | 1 - drivers/iio/pressure/mprls0025pa_spi.c | 1 - drivers/iio/pressure/ms5611_i2c.c | 1 - drivers/iio/pressure/ms5611_spi.c | 1 - drivers/iio/pressure/ms5637.c | 1 - drivers/iio/pressure/sdp500.c | 1 - drivers/iio/pressure/st_pressure_i2c.c | 1 - drivers/iio/pressure/st_pressure_spi.c | 1 - drivers/iio/pressure/zpa2326_i2c.c | 1 - drivers/iio/pressure/zpa2326_spi.c | 1 - drivers/iio/proximity/as3935.c | 1 - .../iio/proximity/cros_ec_mkbp_proximity.c | 1 - drivers/iio/proximity/d3323aa.c | 1 - drivers/iio/proximity/hx9023s.c | 1 - drivers/iio/proximity/isl29501.c | 1 - drivers/iio/proximity/mb1232.c | 1 - drivers/iio/proximity/ping.c | 1 - .../iio/proximity/pulsedlight-lidar-lite-v2.c | 1 - drivers/iio/proximity/srf04.c | 1 - drivers/iio/proximity/sx9310.c | 1 - drivers/iio/proximity/sx9324.c | 1 - drivers/iio/proximity/sx9360.c | 1 - drivers/iio/proximity/vl53l1x-i2c.c | 1 - drivers/iio/resolver/ad2s1200.c | 1 - .../iio/temperature/hid-sensor-temperature.c | 1 - drivers/iio/temperature/ltc2983.c | 1 - drivers/iio/temperature/max31856.c | 1 - drivers/iio/temperature/max31865.c | 1 - drivers/iio/temperature/maxim_thermocouple.c | 1 - drivers/iio/temperature/mcp9600.c | 1 - drivers/iio/temperature/mlx90614.c | 1 - drivers/iio/temperature/mlx90632.c | 1 - drivers/iio/temperature/mlx90635.c | 1 - drivers/iio/temperature/tmp006.c | 1 - drivers/iio/temperature/tmp007.c | 1 - drivers/iio/temperature/tsys01.c | 1 - drivers/iio/trigger/stm32-lptimer-trigger.c | 1 - drivers/iio/trigger/stm32-timer-trigger.c | 1 - drivers/input/keyboard/adp5585-keys.c | 1 - drivers/input/keyboard/adp5588-keys.c | 1 - drivers/input/keyboard/charlieplex_keypad.c | 1 - drivers/input/keyboard/clps711x-keypad.c | 1 - drivers/input/keyboard/ep93xx_keypad.c | 1 - drivers/input/keyboard/max7360-keypad.c | 1 - drivers/input/keyboard/pinephone-keyboard.c | 1 - drivers/input/misc/ariel-pwrbutton.c | 1 - drivers/input/misc/da9063_onkey.c | 1 - drivers/input/misc/gpio_decoder.c | 1 - drivers/input/misc/iqs269a.c | 1 - drivers/input/misc/iqs626a.c | 1 - drivers/input/misc/iqs7222.c | 1 - drivers/input/misc/mma8450.c | 1 - drivers/input/misc/rt5120-pwrkey.c | 1 - drivers/input/misc/sc27xx-vibra.c | 1 - drivers/input/misc/twl4030-pwrbutton.c | 1 - drivers/input/serio/sun4i-ps2.c | 1 - drivers/input/touchscreen/cyttsp5.c | 1 - drivers/input/touchscreen/himax_hx852x.c | 1 - drivers/input/touchscreen/hynitron_cstxxx.c | 1 - drivers/input/touchscreen/ili210x.c | 1 - drivers/input/touchscreen/iqs5xx.c | 1 - drivers/input/touchscreen/msg2638.c | 1 - .../input/touchscreen/resistive-adc-touch.c | 1 - drivers/input/touchscreen/tsc2007_core.c | 1 - drivers/interconnect/mediatek/mt8183.c | 1 - drivers/interconnect/mediatek/mt8195.c | 1 - drivers/interconnect/mediatek/mt8196.c | 1 - drivers/interconnect/qcom/msm8909.c | 1 - drivers/interconnect/qcom/msm8937.c | 1 - drivers/interconnect/qcom/msm8939.c | 1 - drivers/interconnect/qcom/msm8953.c | 1 - drivers/interconnect/qcom/msm8976.c | 1 - drivers/interconnect/qcom/msm8996.c | 1 - drivers/interconnect/qcom/qcm2290.c | 1 - drivers/interconnect/qcom/qcs404.c | 1 - drivers/interconnect/qcom/qdu1000.c | 1 - drivers/interconnect/qcom/sa8775p.c | 1 - drivers/interconnect/qcom/sc7180.c | 1 - drivers/interconnect/qcom/sc7280.c | 1 - drivers/interconnect/qcom/sc8180x.c | 1 - drivers/interconnect/qcom/sc8280xp.c | 1 - drivers/interconnect/qcom/sdm660.c | 1 - drivers/interconnect/qcom/sdm670.c | 1 - drivers/interconnect/qcom/sdm845.c | 1 - drivers/interconnect/qcom/sdx55.c | 1 - drivers/interconnect/qcom/sdx65.c | 1 - drivers/interconnect/qcom/shikra.c | 1 - drivers/interconnect/qcom/sm6115.c | 1 - drivers/interconnect/qcom/sm6350.c | 1 - drivers/interconnect/qcom/sm7150.c | 1 - drivers/interconnect/qcom/sm8150.c | 1 - drivers/interconnect/qcom/sm8250.c | 1 - drivers/interconnect/qcom/sm8350.c | 1 - drivers/interconnect/qcom/sm8450.c | 1 - drivers/interconnect/qcom/sm8550.c | 1 - .../iommu/arm/arm-smmu/arm-smmu-qcom-debug.c | 1 - drivers/irqchip/irq-imx-intmux.c | 1 - drivers/irqchip/irq-lan966x-oic.c | 1 - drivers/irqchip/irq-sl28cpld.c | 1 - drivers/irqchip/irq-stm32mp-exti.c | 1 - drivers/leds/flash/leds-rt8515.c | 1 - drivers/leds/leds-aw200xx.c | 1 - drivers/leds/leds-bd2606mvv.c | 1 - drivers/leds/leds-cht-wcove.c | 1 - drivers/leds/leds-cr0014114.c | 1 - drivers/leds/leds-cros_ec.c | 1 - drivers/leds/leds-el15203000.c | 1 - drivers/leds/leds-gpio.c | 1 - drivers/leds/leds-is31fl319x.c | 1 - drivers/leds/leds-lm36274.c | 1 - drivers/leds/leds-lm3692x.c | 1 - drivers/leds/leds-lm3697.c | 1 - drivers/leds/leds-lp50xx.c | 1 - drivers/leds/leds-lt3593.c | 1 - drivers/leds/leds-max5970.c | 1 - drivers/leds/leds-mlxcpld.c | 1 - drivers/leds/leds-nic78bx.c | 1 - drivers/leds/leds-pca995x.c | 1 - drivers/leds/leds-regulator.c | 1 - drivers/leds/leds-spi-byte.c | 1 - drivers/leds/leds-sun50i-a100.c | 1 - drivers/leds/rgb/leds-group-multicolor.c | 1 - drivers/leds/rgb/leds-mt6370-rgb.c | 1 - drivers/leds/rgb/leds-pwm-multicolor.c | 1 - drivers/mailbox/mailbox-mpfs.c | 1 - drivers/mailbox/platform_mhu.c | 1 - .../media/cec/platform/cros-ec/cros-ec-cec.c | 1 - drivers/media/firewire/firedtv-fw.c | 1 - drivers/media/i2c/adv7180.c | 1 - drivers/media/i2c/cvs/core.c | 1 - drivers/media/i2c/gc0308.c | 1 - drivers/media/i2c/gc05a2.c | 1 - drivers/media/i2c/gc08a3.c | 1 - drivers/media/i2c/lm3560.c | 1 - drivers/media/i2c/mt9m114.c | 1 - drivers/media/i2c/mt9p031.c | 1 - drivers/media/i2c/mt9v032.c | 1 - drivers/media/i2c/ov2680.c | 1 - drivers/media/i2c/ov5640.c | 1 - drivers/media/i2c/ov5670.c | 1 - drivers/media/i2c/ov5675.c | 1 - drivers/media/i2c/ov64a40.c | 1 - drivers/media/i2c/ov7251.c | 1 - drivers/media/i2c/ov7670.c | 1 - drivers/media/i2c/ov8865.c | 1 - drivers/media/i2c/t4ka3.c | 1 - drivers/media/i2c/tvp514x.c | 1 - drivers/media/i2c/video-i2c.c | 1 - .../platform/arm/mali-c55/mali-c55-core.c | 1 - .../platform/chips-media/coda/imx-vdoa.c | 1 - .../platform/mediatek/jpeg/mtk_jpeg_enc_hw.c | 1 - .../platform/microchip/microchip-csi2dc.c | 1 - drivers/media/platform/qcom/venus/vdec.c | 1 - drivers/media/platform/qcom/venus/venc.c | 1 - drivers/media/platform/renesas/rcar-fcp.c | 1 - .../platform/renesas/rzg2l-cru/rzg2l-core.c | 1 - drivers/media/platform/st/sti/hva/hva-v4l2.c | 1 - .../media/platform/sunxi/sun8i-di/sun8i-di.c | 1 - .../sunxi/sun8i-rotate/sun8i_rotate.c | 1 - drivers/media/platform/ti/vpe/vip.c | 1 + drivers/media/rc/ir-spi.c | 1 - drivers/media/usb/em28xx/em28xx.h | 1 + drivers/memory/stm32_omm.c | 1 - drivers/memory/tegra/tegra186-emc.c | 1 - drivers/memory/tegra/tegra186.c | 1 - drivers/memory/tegra/tegra210-emc-core.c | 1 - drivers/mfd/adp5585.c | 1 - drivers/mfd/atmel-hlcdc.c | 1 - drivers/mfd/atmel-smc.c | 1 - drivers/mfd/cros_ec_dev.c | 1 - drivers/mfd/cs42l43-i2c.c | 1 - drivers/mfd/cs42l43-sdw.c | 1 - drivers/mfd/hi655x-pmic.c | 1 - drivers/mfd/intel-lpss-acpi.c | 1 - drivers/mfd/intel-lpss-pci.c | 1 - drivers/mfd/intel_soc_pmic_bxtwc.c | 1 - drivers/mfd/intel_soc_pmic_crc.c | 1 - drivers/mfd/kempld-core.c | 1 - drivers/mfd/lochnagar-i2c.c | 1 - drivers/mfd/lp873x.c | 2 +- drivers/mfd/lp87565.c | 1 - drivers/mfd/max14577.c | 1 - drivers/mfd/max7360.c | 1 - drivers/mfd/max77759.c | 1 - drivers/mfd/max77843.c | 1 - drivers/mfd/mc13xxx-spi.c | 1 - drivers/mfd/motorola-cpcap.c | 1 - drivers/mfd/ocelot-spi.c | 1 - drivers/mfd/rt5033.c | 3 +- drivers/mfd/rt5120.c | 1 - drivers/mfd/rz-mtu3.c | 1 - drivers/mfd/sec-acpm.c | 1 - drivers/mfd/sec-i2c.c | 1 - drivers/mfd/simple-mfd-i2c.c | 1 - drivers/mfd/tps6594-i2c.c | 1 - drivers/mfd/tps6594-spi.c | 1 - drivers/mfd/upboard-fpga.c | 1 - drivers/mfd/wm831x-core.c | 2 +- drivers/misc/eeprom/at24.c | 1 - drivers/misc/eeprom/ee1004.c | 1 - drivers/misc/eeprom/eeprom_93xx46.c | 1 - drivers/misc/eeprom/idt_89hpesx.c | 1 - drivers/misc/hisi_hikey_usb.c | 1 - drivers/misc/pvpanic/pvpanic-mmio.c | 1 - drivers/misc/pvpanic/pvpanic.c | 1 - drivers/misc/smpro-errmon.c | 1 - drivers/misc/smpro-misc.c | 1 - drivers/mmc/host/litex_mmc.c | 1 - drivers/mmc/host/owl-mmc.c | 1 - drivers/mmc/host/renesas_sdhi_internal_dmac.c | 1 - drivers/mmc/host/renesas_sdhi_sys_dmac.c | 1 - drivers/mmc/host/sdhci-npcm.c | 1 - drivers/mmc/host/sdhci-of-ma35d1.c | 1 - drivers/mmc/host/sh_mmcif.c | 1 - drivers/mmc/host/sunxi-mmc.c | 1 - drivers/mtd/nand/raw/brcmnand/brcmstb_nand.c | 1 - drivers/mux/adgs1408.c | 1 - drivers/mux/gpio.c | 1 - drivers/net/can/spi/hi311x.c | 1 - .../net/can/spi/mcp251xfd/mcp251xfd-core.c | 1 - drivers/net/dsa/microchip/ksz8863_smi.c | 2 +- drivers/net/dsa/mt7530-mmio.c | 1 - drivers/net/dsa/ocelot/seville_vsc9953.c | 1 - drivers/net/ethernet/calxeda/xgmac.c | 1 - drivers/net/ethernet/ezchip/nps_enet.c | 1 - drivers/net/ethernet/faraday/ftmac100.c | 1 - .../net/ethernet/freescale/dpaa/dpaa_eth.c | 1 - .../net/ethernet/freescale/enetc/enetc_ierb.c | 1 - drivers/net/ethernet/ibm/emac/tah.c | 1 - drivers/net/ethernet/ibm/emac/zmii.c | 1 - drivers/net/ethernet/marvell/mvmdio.c | 1 - .../mellanox/mlxbf_gige/mlxbf_gige_mdio.c | 1 - drivers/net/ethernet/mellanox/mlxsw/i2c.c | 1 - drivers/net/ethernet/mellanox/mlxsw/minimal.c | 1 - .../ethernet/stmicro/stmmac/dwmac-nuvoton.c | 1 - .../ethernet/stmicro/stmmac/dwmac-sophgo.c | 1 - .../ethernet/stmicro/stmmac/dwmac-spacemit.c | 1 - .../ethernet/stmicro/stmmac/dwmac-starfive.c | 1 - drivers/net/ethernet/xscale/ptp_ixp46x.c | 1 - drivers/net/ieee802154/mrf24j40.c | 1 - drivers/net/mdio/mdio-realtek-rtl9300.c | 1 - drivers/net/mhi_net.c | 1 - drivers/net/wan/fsl_qmc_hdlc.c | 1 - drivers/net/wireless/ath/ath9k/ahb.c | 1 - .../broadcom/brcm80211/brcmfmac/dmi.c | 1 - drivers/net/wireless/intersil/p54/p54spi.c | 1 - drivers/net/wireless/ti/wl1251/sdio.c | 1 - drivers/net/wireless/ti/wl12xx/main.c | 1 - drivers/net/wireless/ti/wl18xx/main.c | 1 - drivers/net/wwan/mhi_wwan_ctrl.c | 1 - drivers/net/wwan/mhi_wwan_mbim.c | 1 - drivers/net/wwan/qcom_bam_dmux.c | 1 - drivers/net/wwan/rpmsg_wwan_ctrl.c | 1 - drivers/nfc/microread/mei.c | 1 - drivers/nfc/pn544/mei.c | 1 - drivers/nfc/s3fwrn5/uart.c | 1 - drivers/nvmem/an8855-efuse.c | 1 - drivers/nvmem/apple-efuses.c | 1 - drivers/nvmem/brcm_nvram.c | 1 - drivers/nvmem/layerscape-sfp.c | 1 - drivers/nvmem/lpc18xx_eeprom.c | 1 - drivers/nvmem/max77759-nvmem.c | 1 - drivers/nvmem/mtk-efuse.c | 1 - drivers/nvmem/nintendo-otp.c | 1 - drivers/nvmem/qfprom.c | 1 - drivers/nvmem/qoriq-efuse.c | 1 - drivers/nvmem/rcar-efuse.c | 1 - drivers/nvmem/sec-qfprom.c | 1 - drivers/nvmem/sunplus-ocotp.c | 1 - drivers/nvmem/u-boot-env.c | 1 - drivers/nvmem/uniphier-efuse.c | 1 - drivers/of/device.c | 1 - drivers/pci/controller/cadence/pcie-sg2042.c | 1 - drivers/pci/controller/dwc/pci-exynos.c | 1 - drivers/pci/controller/dwc/pci-meson.c | 1 - drivers/pci/controller/dwc/pcie-intel-gw.c | 1 - drivers/pci/controller/dwc/pcie-keembay.c | 1 - drivers/pci/controller/dwc/pcie-spacemit-k1.c | 1 - drivers/pci/controller/dwc/pcie-stm32.c | 1 - drivers/pci/pwrctrl/generic.c | 1 - drivers/pci/pwrctrl/pci-pwrctrl-pwrseq.c | 1 - drivers/pci/pwrctrl/pci-pwrctrl-tc9563.c | 1 - drivers/perf/arm-ccn.c | 1 - drivers/perf/fujitsu_uncore_pmu.c | 1 - drivers/perf/hisilicon/hisi_uncore_mn_pmu.c | 1 - drivers/perf/hisilicon/hisi_uncore_noc_pmu.c | 1 - drivers/perf/hisilicon/hisi_uncore_uc_pmu.c | 1 - drivers/perf/riscv_pmu_legacy.c | 1 - drivers/perf/riscv_pmu_sbi.c | 1 - drivers/perf/starfive_starlink_pmu.c | 1 - drivers/phy/allwinner/phy-sun50i-usb3.c | 1 - drivers/phy/amlogic/phy-meson-axg-mipi-dphy.c | 1 - drivers/phy/amlogic/phy-meson-axg-pcie.c | 1 - drivers/phy/amlogic/phy-meson-gxl-usb2.c | 1 - drivers/phy/amlogic/phy-meson8b-usb2.c | 1 - drivers/phy/cadence/cdns-dphy-rx.c | 1 - drivers/phy/hisilicon/phy-hi3670-pcie.c | 1 - drivers/phy/hisilicon/phy-hi6220-usb.c | 1 - drivers/phy/intel/phy-intel-keembay-usb.c | 1 - drivers/phy/marvell/phy-mmp3-hsic.c | 1 - drivers/phy/marvell/phy-mmp3-usb.c | 1 - drivers/phy/marvell/phy-mvebu-sata.c | 1 - drivers/phy/mediatek/phy-mtk-ufs.c | 1 - drivers/phy/phy-eyeq5-eth.c | 1 - drivers/phy/phy-snps-eusb2.c | 1 - drivers/phy/qualcomm/phy-ath79-usb.c | 1 - .../phy/rockchip/phy-rockchip-samsung-dcphy.c | 1 - drivers/phy/rockchip/phy-rockchip-usbdp.c | 1 - drivers/pinctrl/aspeed/pinctrl-aspeed-g4.c | 1 - drivers/pinctrl/aspeed/pinctrl-aspeed-g5.c | 1 - drivers/pinctrl/aspeed/pinctrl-aspeed-g6.c | 1 - drivers/pinctrl/bcm/pinctrl-bcm4908.c | 1 - drivers/pinctrl/bcm/pinctrl-bcm63xx.c | 1 - drivers/pinctrl/freescale/pinctrl-imx-scmi.c | 1 - drivers/pinctrl/freescale/pinctrl-imx23.c | 1 - drivers/pinctrl/freescale/pinctrl-imx25.c | 1 - drivers/pinctrl/freescale/pinctrl-imx27.c | 1 - drivers/pinctrl/freescale/pinctrl-imx28.c | 1 - drivers/pinctrl/freescale/pinctrl-imx35.c | 1 - drivers/pinctrl/freescale/pinctrl-imx50.c | 1 - drivers/pinctrl/freescale/pinctrl-imx51.c | 1 - drivers/pinctrl/freescale/pinctrl-imx53.c | 1 - drivers/pinctrl/freescale/pinctrl-imx6dl.c | 1 - drivers/pinctrl/freescale/pinctrl-imx6q.c | 1 - drivers/pinctrl/freescale/pinctrl-imx6sl.c | 1 - drivers/pinctrl/freescale/pinctrl-imx6sll.c | 1 - drivers/pinctrl/freescale/pinctrl-imx6sx.c | 1 - drivers/pinctrl/freescale/pinctrl-imx7ulp.c | 1 - drivers/pinctrl/freescale/pinctrl-imx8dxl.c | 1 - drivers/pinctrl/freescale/pinctrl-imx8mq.c | 1 - drivers/pinctrl/freescale/pinctrl-imx8qxp.c | 1 - drivers/pinctrl/freescale/pinctrl-imx8ulp.c | 1 - drivers/pinctrl/freescale/pinctrl-imx91.c | 1 - drivers/pinctrl/freescale/pinctrl-imx93.c | 1 - drivers/pinctrl/freescale/pinctrl-vf610.c | 1 - drivers/pinctrl/intel/pinctrl-alderlake.c | 1 - drivers/pinctrl/intel/pinctrl-broxton.c | 1 - drivers/pinctrl/intel/pinctrl-cannonlake.c | 1 - drivers/pinctrl/intel/pinctrl-cedarfork.c | 1 - drivers/pinctrl/intel/pinctrl-denverton.c | 1 - drivers/pinctrl/intel/pinctrl-elkhartlake.c | 1 - drivers/pinctrl/intel/pinctrl-emmitsburg.c | 1 - drivers/pinctrl/intel/pinctrl-geminilake.c | 1 - .../pinctrl/intel/pinctrl-intel-platform.c | 1 - drivers/pinctrl/intel/pinctrl-jasperlake.c | 1 - drivers/pinctrl/intel/pinctrl-lakefield.c | 1 - drivers/pinctrl/intel/pinctrl-lewisburg.c | 1 - drivers/pinctrl/intel/pinctrl-merrifield.c | 1 - drivers/pinctrl/intel/pinctrl-meteorlake.c | 1 - drivers/pinctrl/intel/pinctrl-meteorpoint.c | 1 - drivers/pinctrl/intel/pinctrl-moorefield.c | 1 - drivers/pinctrl/intel/pinctrl-sunrisepoint.c | 1 - drivers/pinctrl/intel/pinctrl-tigerlake.c | 1 - .../pinctrl/microchip/pinctrl-mpfs-iomux0.c | 1 - .../pinctrl/microchip/pinctrl-mpfs-mssio.c | 1 - .../pinctrl/microchip/pinctrl-pic64gx-gpio2.c | 1 - drivers/pinctrl/nuvoton/pinctrl-ma35d1.c | 1 - drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c | 1 - drivers/pinctrl/nuvoton/pinctrl-npcm8xx.c | 1 - drivers/pinctrl/nuvoton/pinctrl-wpcm450.c | 1 - drivers/pinctrl/pinctrl-as3722.c | 1 - drivers/pinctrl/pinctrl-cy8c95x0.c | 1 - drivers/pinctrl/pinctrl-da850-pupd.c | 1 - drivers/pinctrl/pinctrl-digicolor.c | 1 - drivers/pinctrl/pinctrl-eic7700.c | 1 - drivers/pinctrl/pinctrl-eyeq5.c | 1 - drivers/pinctrl/pinctrl-ingenic.c | 1 - drivers/pinctrl/pinctrl-loongson2.c | 1 - drivers/pinctrl/pinctrl-lpc18xx.c | 1 - drivers/pinctrl/pinctrl-max77620.c | 1 - drivers/pinctrl/pinctrl-mcp23s08.c | 1 - drivers/pinctrl/pinctrl-mcp23s08_i2c.c | 1 - drivers/pinctrl/pinctrl-mcp23s08_spi.c | 1 - drivers/pinctrl/pinctrl-microchip-sgpio.c | 1 - drivers/pinctrl/pinctrl-mlxbf3.c | 1 - drivers/pinctrl/pinctrl-pistachio.c | 1 - drivers/pinctrl/pinctrl-scmi.c | 1 - drivers/pinctrl/pinctrl-th1520.c | 1 - drivers/pinctrl/pinctrl-tps6594.c | 1 - drivers/pinctrl/qcom/pinctrl-ipq5018.c | 1 - drivers/pinctrl/spear/pinctrl-spear1310.c | 1 - drivers/pinctrl/spear/pinctrl-spear1340.c | 1 - drivers/pinctrl/spear/pinctrl-spear300.c | 1 - drivers/pinctrl/spear/pinctrl-spear310.c | 1 - drivers/pinctrl/spear/pinctrl-spear320.c | 1 - drivers/pinctrl/sprd/pinctrl-sprd-sc9860.c | 1 - .../starfive/pinctrl-starfive-jh7100.c | 1 - .../starfive/pinctrl-starfive-jh7110-aon.c | 1 - .../starfive/pinctrl-starfive-jh7110-sys.c | 1 - .../starfive/pinctrl-starfive-jh7110.c | 1 - drivers/pinctrl/tegra/pinctrl-tegra234.c | 1 - drivers/pinctrl/tegra/pinctrl-tegra238.c | 1 - drivers/pinctrl/tegra/pinctrl-tegra264.c | 1 - .../pinctrl/uniphier/pinctrl-uniphier-ld11.c | 1 - .../pinctrl/uniphier/pinctrl-uniphier-ld20.c | 1 - .../pinctrl/uniphier/pinctrl-uniphier-ld4.c | 1 - .../pinctrl/uniphier/pinctrl-uniphier-ld6b.c | 1 - .../pinctrl/uniphier/pinctrl-uniphier-nx1.c | 1 - .../pinctrl/uniphier/pinctrl-uniphier-pro4.c | 1 - .../pinctrl/uniphier/pinctrl-uniphier-pro5.c | 1 - .../pinctrl/uniphier/pinctrl-uniphier-pxs2.c | 1 - .../pinctrl/uniphier/pinctrl-uniphier-pxs3.c | 1 - .../pinctrl/uniphier/pinctrl-uniphier-sld8.c | 1 - drivers/platform/chrome/cros_ec_chardev.c | 1 - drivers/platform/chrome/cros_ec_debugfs.c | 1 - drivers/platform/chrome/cros_ec_lightbar.c | 1 - drivers/platform/chrome/cros_ec_sensorhub.c | 1 - drivers/platform/chrome/cros_ec_sysfs.c | 1 - drivers/platform/chrome/cros_ec_vbc.c | 1 - .../platform/chrome/cros_kbd_led_backlight.c | 1 - drivers/platform/chrome/cros_usbpd_logger.c | 1 - drivers/platform/chrome/cros_usbpd_notify.c | 1 - drivers/platform/chrome/wilco_ec/core.c | 1 - drivers/platform/chrome/wilco_ec/debugfs.c | 1 - drivers/platform/chrome/wilco_ec/telemetry.c | 1 - drivers/platform/goldfish/goldfish_pipe.c | 1 - drivers/platform/x86/asus-tf103c-dock.c | 1 - drivers/platform/x86/intel/atomisp2/led.c | 1 - drivers/platform/x86/intel/atomisp2/pm.c | 1 - drivers/platform/x86/intel/bxtwc_tmu.c | 1 - drivers/platform/x86/intel/ehl_pse_io.c | 1 - drivers/platform/x86/intel/plr_tpmi.c | 1 - .../platform/x86/intel/pmc/pwrm_telemetry.c | 1 - drivers/platform/x86/intel/punit_ipc.c | 1 - drivers/platform/x86/intel_scu_pltdrv.c | 1 - drivers/platform/x86/msi-ec.c | 1 + .../platform/x86/nvidia-wmi-ec-backlight.c | 1 - drivers/platform/x86/quickstart.c | 1 - drivers/platform/x86/uniwill/uniwill-wmi.c | 1 - .../platform/x86/x86-android-tablets/dmi.c | 1 - .../x86-android-tablets/x86-android-tablets.h | 1 + drivers/pmdomain/actions/owl-sps.c | 1 - drivers/pmdomain/imx/imx93-pd.c | 1 - .../marvell/pxa1908-power-controller.c | 1 - drivers/pnp/pnpacpi/core.c | 1 - drivers/power/reset/brcm-kona-reset.c | 1 - drivers/power/reset/ep93xx-restart.c | 1 - drivers/power/reset/gpio-poweroff.c | 1 - drivers/power/reset/ltc2952-poweroff.c | 1 - drivers/power/reset/macsmc-reboot.c | 1 - drivers/power/reset/ocelot-reset.c | 1 - drivers/power/reset/pwr-mlxbf.c | 1 - drivers/power/reset/qemu-virt-ctrl.c | 1 - drivers/power/reset/sc27xx-poweroff.c | 1 - drivers/power/reset/spacemit-p1-reboot.c | 1 - drivers/power/reset/tdx-ec-poweroff.c | 1 - drivers/power/reset/tps65086-restart.c | 1 - drivers/power/sequencing/pwrseq-pcie-m2.c | 1 - drivers/power/sequencing/pwrseq-qcom-wcn.c | 1 - drivers/power/supply/adp5061.c | 1 - drivers/power/supply/bd71828-power.c | 1 - drivers/power/supply/bd99954-charger.c | 1 - drivers/power/supply/bq24190_charger.c | 1 - drivers/power/supply/chagall-battery.c | 1 - drivers/power/supply/cpcap-charger.c | 1 - drivers/power/supply/cros_charge-control.c | 1 - .../power/supply/cros_peripheral_charger.c | 1 - drivers/power/supply/cros_usbpd-charger.c | 1 - drivers/power/supply/lego_ev3_battery.c | 1 - .../power/supply/max14656_charger_detector.c | 1 - drivers/power/supply/max17042_battery.c | 1 - drivers/power/supply/max77759_charger.c | 1 - drivers/power/supply/max8971_charger.c | 1 - drivers/power/supply/max8998_charger.c | 1 - drivers/power/supply/mp2629_charger.c | 1 - drivers/power/supply/olpc_battery.c | 1 - drivers/power/supply/pm8916_bms_vm.c | 1 - drivers/power/supply/pm8916_lbc.c | 1 - drivers/power/supply/rt5033_charger.c | 1 - drivers/power/supply/rt9467-charger.c | 1 - drivers/power/supply/rt9471.c | 1 - drivers/power/supply/rt9756.c | 1 - drivers/power/supply/s2mu005-battery.c | 1 - drivers/power/supply/ug3105_battery.c | 1 - drivers/pps/clients/pps-gpio.c | 1 - drivers/pps/generators/pps_gen_tio.c | 1 - drivers/ptp/ptp_dte.c | 1 - drivers/pwm/pwm-adp5585.c | 1 - drivers/pwm/pwm-airoha.c | 1 - drivers/pwm/pwm-apple.c | 1 - drivers/pwm/pwm-berlin.c | 1 - drivers/pwm/pwm-ep93xx.c | 1 - drivers/pwm/pwm-gpio.c | 1 - drivers/pwm/pwm-intel-lgm.c | 1 - drivers/pwm/pwm-keembay.c | 1 - drivers/pwm/pwm-lpc18xx-sct.c | 1 - drivers/pwm/pwm-lpss-platform.c | 1 - drivers/pwm/pwm-max7360.c | 1 - drivers/pwm/pwm-pxa.c | 1 - drivers/pwm/pwm-sifive.c | 1 - drivers/pwm/pwm-sl28cpld.c | 1 - drivers/pwm/pwm-sprd.c | 1 - drivers/pwm/pwm-sunplus.c | 1 - drivers/pwm/pwm-vt8500.c | 1 - drivers/regulator/adp5055-regulator.c | 1 - drivers/regulator/bd71828-regulator.c | 1 - drivers/regulator/max77541-regulator.c | 1 - drivers/regulator/max77675-regulator.c | 1 - drivers/regulator/mt6370-regulator.c | 1 - drivers/regulator/pv88080-regulator.c | 1 - drivers/regulator/rt4803.c | 1 - drivers/regulator/rt5739.c | 1 - drivers/regulator/rt6190-regulator.c | 1 - drivers/regulator/rt8092.c | 1 - drivers/regulator/rtq2208-regulator.c | 1 - drivers/regulator/tps6287x-regulator.c | 1 - drivers/regulator/tps65218-regulator.c | 1 - drivers/regulator/tps65912-regulator.c | 1 - drivers/regulator/vexpress-regulator.c | 1 - drivers/reset/reset-ath79.c | 1 - drivers/reset/reset-axs10x.c | 1 - drivers/reset/reset-bcm6345.c | 1 - drivers/reset/reset-eyeq.c | 1 - drivers/reset/reset-gpio.c | 1 - drivers/reset/reset-sunplus.c | 1 - drivers/reset/reset-tn48m.c | 1 - .../reset/starfive/reset-starfive-jh7100.c | 1 - drivers/rtc/rtc-88pm886.c | 1 - drivers/rtc/rtc-cpcap.c | 1 - drivers/rtc/rtc-cros-ec.c | 1 - drivers/rtc/rtc-ds1307.c | 1 - drivers/rtc/rtc-ep93xx.c | 1 - drivers/rtc/rtc-fsl-ftm-alarm.c | 1 - drivers/rtc/rtc-ftrtc010.c | 1 - drivers/rtc/rtc-lpc24xx.c | 1 - drivers/rtc/rtc-m48t86.c | 1 - drivers/rtc/rtc-mc13xxx.c | 1 - drivers/rtc/rtc-moxart.c | 1 - drivers/rtc/rtc-msc313.c | 1 - drivers/rtc/rtc-mt6397.c | 1 - drivers/rtc/rtc-mt7622.c | 1 - drivers/rtc/rtc-mxc_v2.c | 1 - drivers/rtc/rtc-r7301.c | 1 - drivers/rtc/rtc-rzn1.c | 1 - drivers/rtc/rtc-sh.c | 1 - drivers/rtc/rtc-ssd202d.c | 1 - drivers/rtc/rtc-tegra.c | 1 - drivers/rtc/rtc-ti-k3.c | 1 - drivers/rtc/rtc-tps6594.c | 1 - drivers/s390/crypto/ap_bus.c | 2 +- drivers/s390/crypto/vfio_ap_drv.c | 2 +- drivers/s390/crypto/zcrypt_cex4.c | 2 +- drivers/siox/siox-bus-gpio.c | 1 - drivers/soc/fsl/qe/qe.c | 1 - drivers/soc/qcom/qcom_pd_mapper.c | 1 - drivers/soc/renesas/rzn1_irqmux.c | 1 - drivers/soc/sophgo/sg2044-topsys.c | 2 +- drivers/soc/tegra/fuse/fuse-tegra.c | 1 - drivers/soc/tegra/fuse/tegra-apbmisc.c | 1 - drivers/soc/ti/smartreflex.c | 2 +- drivers/soundwire/bus.c | 1 - drivers/soundwire/bus_type.c | 1 - drivers/soundwire/cadence_master.c | 1 - drivers/soundwire/debugfs.c | 1 - .../soundwire/generic_bandwidth_allocation.c | 1 - drivers/soundwire/mipi_disco.c | 1 - drivers/soundwire/stream.c | 1 - drivers/soundwire/sysfs_slave.c | 1 - drivers/soundwire/sysfs_slave_dpn.c | 1 - drivers/spi/spi-atcspi200.c | 1 - drivers/spi/spi-cs42l43.c | 1 - drivers/spi/spi-gpio.c | 1 - drivers/spi/spi-hisi-sfc-v3xx.c | 1 - drivers/spi/spi-loongson-pci.c | 1 - drivers/spi/spi-loongson-plat.c | 1 - drivers/spi/spi-loopback-test.c | 1 - ...spi-offload-trigger-adi-util-sigma-delta.c | 1 - drivers/spi/spi-offload-trigger-pwm.c | 1 - drivers/spi/spi-pxa2xx-platform.c | 1 - drivers/spi/spi-realtek-rtl-snand.c | 1 - drivers/spi/spi-realtek-rtl.c | 1 - drivers/spi/spi-sc18is602.c | 1 - drivers/spi/spi-wpcm-fiu.c | 1 - drivers/spi/spi.c | 1 - drivers/spi/spidev.c | 1 - drivers/spmi/spmi-apple-controller.c | 1 - drivers/staging/greybus/arche-apb-ctrl.c | 1 - drivers/staging/iio/frequency/ad9832.c | 1 - drivers/staging/iio/frequency/ad9834.c | 1 - drivers/thermal/loongson2_thermal.c | 1 - drivers/thermal/renesas/rzg2l_thermal.c | 1 - drivers/tty/goldfish.c | 1 - drivers/tty/serial/8250/8250_dfl.c | 1 - drivers/tty/serial/8250/8250_dw.c | 1 - drivers/tty/serial/8250/8250_em.c | 1 - drivers/tty/serial/8250/8250_keba.c | 1 - drivers/tty/serial/8250/8250_loongson.c | 1 - drivers/tty/serial/8250/8250_ni.c | 1 - drivers/tty/serial/max3100.c | 1 - drivers/tty/serial/max310x.c | 1 - drivers/tty/serial/sc16is7xx.c | 1 - drivers/tty/serial/sc16is7xx_i2c.c | 1 - drivers/tty/serial/sc16is7xx_spi.c | 1 - drivers/tty/serial/sccnxp.c | 1 - drivers/tty/serial/tegra-utc.c | 1 - drivers/uio/uio_pdrv_genirq.c | 1 - drivers/usb/dwc2/core.h | 1 + drivers/usb/gadget/udc/renesas_usbf.c | 1 - drivers/usb/misc/usb-ljca.c | 1 - drivers/usb/typec/mux/tusb1046.c | 1 - drivers/usb/typec/tcpm/qcom/qcom_pmic_typec.c | 1 - .../typec/tcpm/qcom/qcom_pmic_typec_pdphy.c | 1 - .../tcpm/qcom/qcom_pmic_typec_pdphy_stub.c | 1 - .../typec/tcpm/qcom/qcom_pmic_typec_port.c | 1 - drivers/usb/typec/tcpm/tcpci_mt6370.c | 1 - drivers/usb/typec/tcpm/tcpci_rt1711h.c | 1 - drivers/usb/typec/ucsi/cros_ec_ucsi.c | 1 - drivers/vdpa/vdpa.c | 1 - drivers/vdpa/vdpa_user/vduse_dev.c | 1 - drivers/video/backlight/apple_dwi_bl.c | 1 - drivers/video/backlight/da9052_bl.c | 1 - drivers/video/backlight/hx8357.c | 1 - drivers/video/backlight/ktd2801-backlight.c | 1 - drivers/video/backlight/mp3309c.c | 1 - drivers/video/backlight/mt6370-backlight.c | 1 - drivers/video/backlight/rave-sp-backlight.c | 1 - drivers/video/backlight/rt4831-backlight.c | 1 - .../omap2/omapfb/displays/encoder-opa362.c | 1 - .../omap2/omapfb/displays/encoder-tfp410.c | 1 - .../omap2/omapfb/displays/encoder-tpd12s015.c | 1 - .../omap2/omapfb/displays/panel-dsi-cm.c | 1 - .../virt/coco/arm-cca-guest/arm-cca-guest.c | 2 +- drivers/virt/coco/tdx-guest/tdx-guest.c | 1 - drivers/virt/coco/tdx-host/tdx-host.c | 1 - drivers/w1/masters/amd_axi_w1.c | 1 - drivers/w1/masters/ds2490.c | 1 - drivers/w1/masters/mxc_w1.c | 1 - drivers/w1/masters/sgi_w1.c | 1 - drivers/w1/masters/w1-gpio.c | 1 - drivers/watchdog/at91rm9200_wdt.c | 1 - drivers/watchdog/cros_ec_wdt.c | 1 - drivers/watchdog/davinci_wdt.c | 1 - drivers/watchdog/ftwdt010_wdt.c | 1 - drivers/watchdog/gpio_wdt.c | 1 - drivers/watchdog/gunyah_wdt.c | 1 - drivers/watchdog/imgpdc_wdt.c | 1 - drivers/watchdog/keembay_wdt.c | 1 - drivers/watchdog/max63xx_wdt.c | 1 - drivers/watchdog/max77620_wdt.c | 1 - drivers/watchdog/meson_wdt.c | 1 - drivers/watchdog/moxart_wdt.c | 1 - drivers/watchdog/msc313e_wdt.c | 1 - drivers/watchdog/mt7621_wdt.c | 1 - drivers/watchdog/nic7018_wdt.c | 1 - drivers/watchdog/omap_wdt.c | 1 - drivers/watchdog/pseries-wdt.c | 1 - drivers/watchdog/realtek_otto_wdt.c | 1 - drivers/watchdog/rt2880_wdt.c | 1 - drivers/watchdog/rti_wdt.c | 1 - drivers/watchdog/sbsa_gwdt.c | 1 - drivers/watchdog/sl28cpld_wdt.c | 1 - drivers/watchdog/sunplus_wdt.c | 1 - drivers/watchdog/ts72xx_wdt.c | 1 - drivers/watchdog/twl4030_wdt.c | 1 - drivers/watchdog/xilinx_wwdt.c | 1 - include/linux/acpi.h | 2 +- include/linux/amba/bus.h | 2 +- include/linux/auxiliary_bus.h | 2 +- include/linux/bcma/bcma.h | 2 +- include/linux/cdx/cdx_bus.h | 2 +- include/linux/device-id/acpi.h | 31 + include/linux/device-id/amba.h | 18 + include/linux/device-id/ap.h | 19 + include/linux/device-id/apr.h | 20 + include/linux/device-id/auxiliary.h | 16 + include/linux/device-id/bcma.h | 24 + include/linux/device-id/ccw.h | 26 + include/linux/device-id/cdx.h | 39 + include/linux/device-id/coreboot.h | 19 + include/linux/device-id/css.h | 16 + include/linux/device-id/dfl.h | 33 + include/linux/device-id/dmi.h | 57 + include/linux/device-id/eisa.h | 20 + include/linux/device-id/fsl_mc.h | 21 + include/linux/device-id/hda.h | 16 + include/linux/device-id/hid.h | 21 + include/linux/device-id/hv_vmbus.h | 17 + include/linux/device-id/i2c.h | 18 + include/linux/device-id/i3c.h | 25 + include/linux/device-id/ieee1394.h | 26 + include/linux/device-id/input.h | 61 + include/linux/device-id/ipack.h | 16 + include/linux/device-id/isapnp.h | 15 + include/linux/device-id/ishtp.h | 23 + include/linux/device-id/mcb.h | 14 + include/linux/device-id/mdio.h | 34 + include/linux/device-id/mei_cl.h | 30 + include/linux/device-id/mhi.h | 23 + include/linux/device-id/mips_cdmm.h | 16 + include/linux/device-id/of.h | 14 + include/linux/device-id/parisc.h | 20 + include/linux/device-id/pci.h | 53 + include/linux/device-id/pcmcia.h | 47 + include/linux/device-id/platform.h | 16 + include/linux/device-id/pnp.h | 25 + include/linux/device-id/rio.h | 27 + include/linux/device-id/rpmsg.h | 18 + include/linux/device-id/sdio.h | 20 + include/linux/device-id/sdw.h | 17 + include/linux/device-id/serio.h | 17 + include/linux/device-id/slim.h | 22 + include/linux/device-id/spi.h | 18 + include/linux/device-id/spmi.h | 16 + include/linux/device-id/ssam.h | 27 + include/linux/device-id/ssb.h | 23 + include/linux/device-id/tb.h | 36 + include/linux/device-id/tee_client.h | 17 + include/linux/device-id/typec.h | 25 + include/linux/device-id/ulpi.h | 15 + include/linux/device-id/usb.h | 110 ++ include/linux/device-id/vchiq.h | 8 + include/linux/device-id/vio.h | 10 + include/linux/device-id/virtio.h | 15 + include/linux/device-id/wmi.h | 18 + include/linux/device-id/x86_cpu.h | 43 + include/linux/device-id/zorro.h | 18 + include/linux/device/driver.h | 2 + include/linux/dfl.h | 2 +- include/linux/dmi.h | 2 +- include/linux/eisa.h | 2 +- include/linux/firewire.h | 3 +- include/linux/fsl/mc.h | 2 +- include/linux/hid.h | 2 +- include/linux/hyperv.h | 2 +- include/linux/i2c.h | 2 +- include/linux/i3c/device.h | 2 +- include/linux/input.h | 2 +- include/linux/intel-ish-client-if.h | 2 +- include/linux/ipack.h | 2 +- include/linux/isapnp.h | 2 +- include/linux/mcb.h | 2 +- include/linux/mei_cl_bus.h | 2 +- include/linux/mhi.h | 1 + include/linux/mmc/sdio_func.h | 2 +- include/linux/mod_devicetable.h | 1014 +---------------- include/linux/of.h | 2 +- include/linux/of_platform.h | 4 +- include/linux/pci-epf.h | 2 +- include/linux/pci.h | 2 +- include/linux/phy.h | 2 +- include/linux/platform_data/x86/int3472.h | 2 +- include/linux/platform_data/x86/soc.h | 2 +- include/linux/platform_device.h | 2 +- include/linux/pnp.h | 2 +- include/linux/raspberrypi/vchiq_bus.h | 2 +- include/linux/rio.h | 2 +- include/linux/rpmsg.h | 2 +- include/linux/serio.h | 2 +- include/linux/slimbus.h | 2 +- include/linux/soc/qcom/apr.h | 2 +- include/linux/soundwire/sdw.h | 2 +- include/linux/spi/spi.h | 4 +- include/linux/ssb/ssb.h | 2 +- include/linux/surface_aggregator/device.h | 2 +- include/linux/tee_drv.h | 2 +- include/linux/thunderbolt.h | 2 +- include/linux/ulpi/driver.h | 2 +- include/linux/usb.h | 2 +- include/linux/usb/serial.h | 1 + include/linux/usb/typec_altmode.h | 2 +- include/linux/virtio.h | 2 +- include/linux/wmi.h | 2 +- include/linux/zorro.h | 2 +- include/pcmcia/ds.h | 2 +- include/sound/hda_codec.h | 2 +- include/sound/hdaudio.h | 1 + net/qrtr/mhi.c | 1 - net/rfkill/rfkill-gpio.c | 1 - sound/atmel/ac97c.c | 1 - sound/firewire/isight.c | 1 - .../hda/codecs/side-codecs/cs35l41_hda_i2c.c | 1 - .../hda/codecs/side-codecs/cs35l41_hda_spi.c | 1 - .../hda/codecs/side-codecs/tas2781_hda_i2c.c | 1 - .../hda/codecs/side-codecs/tas2781_hda_spi.c | 1 - sound/hda/core/hda_bus_type.c | 2 +- sound/soc/atmel/sam9x5_wm8731.c | 1 - sound/soc/codecs/adau1372-i2c.c | 1 - sound/soc/codecs/adau1372-spi.c | 1 - sound/soc/codecs/adau1372.c | 1 - sound/soc/codecs/adau1761-i2c.c | 1 - sound/soc/codecs/adau1761-spi.c | 1 - sound/soc/codecs/adau1781-i2c.c | 1 - sound/soc/codecs/adau1781-spi.c | 1 - sound/soc/codecs/adau1977-i2c.c | 1 - sound/soc/codecs/adau1977-spi.c | 1 - sound/soc/codecs/adau7118-hw.c | 1 - sound/soc/codecs/ak4104.c | 1 - sound/soc/codecs/audio-iio-aux.c | 1 - sound/soc/codecs/cs4234.c | 1 - sound/soc/codecs/cs4270.c | 1 - sound/soc/codecs/cs42l42-sdw.c | 1 - sound/soc/codecs/cs42l43.c | 1 - sound/soc/codecs/cs42xx8-i2c.c | 1 - sound/soc/codecs/cs42xx8-spi.c | 1 - sound/soc/codecs/cs4349.c | 1 - sound/soc/codecs/es8316.c | 1 - sound/soc/codecs/es8323.c | 1 - sound/soc/codecs/es9356.c | 1 - sound/soc/codecs/max98357a.c | 1 - sound/soc/codecs/max98373-i2c.c | 1 - sound/soc/codecs/max98373-sdw.c | 1 - sound/soc/codecs/max98388.c | 1 - sound/soc/codecs/mt6351.c | 1 - sound/soc/codecs/mt6358.c | 1 - sound/soc/codecs/pcm3168a-i2c.c | 1 - sound/soc/codecs/rt1017-sdca-sdw.c | 1 - sound/soc/codecs/rt1308-sdw.c | 1 - sound/soc/codecs/rt1316-sdw.c | 1 - sound/soc/codecs/rt1318-sdw.c | 1 - sound/soc/codecs/rt1320-sdw.c | 1 - sound/soc/codecs/rt700-sdw.c | 1 - sound/soc/codecs/rt711-sdca-sdw.c | 1 - sound/soc/codecs/rt711-sdw.c | 1 - sound/soc/codecs/rt712-sdca-dmic.c | 1 - sound/soc/codecs/rt712-sdca-sdw.c | 1 - sound/soc/codecs/rt715-sdca-sdw.c | 1 - sound/soc/codecs/rt715-sdw.c | 1 - sound/soc/codecs/rt721-sdca-sdw.c | 1 - sound/soc/codecs/rt722-sdca-sdw.c | 1 - sound/soc/codecs/rt9123.c | 1 - sound/soc/codecs/rt9123p.c | 1 - sound/soc/codecs/rtq9124.c | 1 - sound/soc/codecs/rtq9128.c | 1 - sound/soc/codecs/sdw-mockup.c | 1 - sound/soc/codecs/simple-amplifier.c | 1 - sound/soc/codecs/sma1303.c | 1 - sound/soc/codecs/src4xxx-i2c.c | 1 - sound/soc/codecs/uda1334.c | 1 - sound/soc/codecs/wm8510.c | 1 - sound/soc/codecs/wm8523.c | 1 - sound/soc/codecs/wm8524.c | 1 - sound/soc/codecs/wm8580.c | 1 - sound/soc/codecs/wm8711.c | 1 - sound/soc/codecs/wm8728.c | 1 - sound/soc/codecs/wm8731-i2c.c | 1 - sound/soc/codecs/wm8731-spi.c | 1 - sound/soc/codecs/wm8737.c | 1 - sound/soc/codecs/wm8753.c | 1 - sound/soc/codecs/wm8770.c | 1 - sound/soc/codecs/wm8776.c | 1 - sound/soc/fsl/fsl_aud2htx.c | 1 - sound/soc/fsl/mpc5200_psc_ac97.c | 1 - .../generic/audio-graph-card2-custom-sample.c | 1 - sound/soc/jz4740/jz4740-i2s.c | 1 - sound/soc/mediatek/mt8365/mt8365-mt6357.c | 1 - sound/soc/qcom/apq8096.c | 1 - sound/soc/qcom/sc7280.c | 1 - sound/soc/qcom/storm.c | 1 - sound/soc/sdca/sdca_class.c | 1 - sound/soc/sof/sof-client-ipc-flood-test.c | 1 - .../soc/sof/sof-client-ipc-kernel-injector.c | 1 - sound/soc/sof/sof-client-ipc-msg-injector.c | 1 - sound/soc/sunxi/sun50i-codec-analog.c | 1 - sound/soc/sunxi/sun50i-dmic.c | 1 - sound/soc/tegra/tegra186_asrc.c | 1 - sound/soc/tegra/tegra186_dspk.c | 1 - sound/soc/tegra/tegra20_spdif.c | 1 - sound/soc/tegra/tegra210_adx.c | 1 - sound/soc/tegra/tegra210_amx.c | 1 - sound/soc/tegra/tegra210_dmic.c | 1 - sound/soc/tegra/tegra210_i2s.c | 1 - sound/soc/tegra/tegra210_mixer.c | 1 - sound/soc/tegra/tegra210_mvc.c | 1 - sound/soc/tegra/tegra210_ope.c | 1 - sound/soc/ti/omap-dmic.c | 1 - sound/soc/ti/omap-mcpdm.c | 1 - tools/testing/cxl/test/mem.c | 1 - 1649 files changed, 1575 insertions(+), 2544 deletions(-) create mode 100644 include/linux/device-id/acpi.h create mode 100644 include/linux/device-id/amba.h create mode 100644 include/linux/device-id/ap.h create mode 100644 include/linux/device-id/apr.h create mode 100644 include/linux/device-id/auxiliary.h create mode 100644 include/linux/device-id/bcma.h create mode 100644 include/linux/device-id/ccw.h create mode 100644 include/linux/device-id/cdx.h create mode 100644 include/linux/device-id/coreboot.h create mode 100644 include/linux/device-id/css.h create mode 100644 include/linux/device-id/dfl.h create mode 100644 include/linux/device-id/dmi.h create mode 100644 include/linux/device-id/eisa.h create mode 100644 include/linux/device-id/fsl_mc.h create mode 100644 include/linux/device-id/hda.h create mode 100644 include/linux/device-id/hid.h create mode 100644 include/linux/device-id/hv_vmbus.h create mode 100644 include/linux/device-id/i2c.h create mode 100644 include/linux/device-id/i3c.h create mode 100644 include/linux/device-id/ieee1394.h create mode 100644 include/linux/device-id/input.h create mode 100644 include/linux/device-id/ipack.h create mode 100644 include/linux/device-id/isapnp.h create mode 100644 include/linux/device-id/ishtp.h create mode 100644 include/linux/device-id/mcb.h create mode 100644 include/linux/device-id/mdio.h create mode 100644 include/linux/device-id/mei_cl.h create mode 100644 include/linux/device-id/mhi.h create mode 100644 include/linux/device-id/mips_cdmm.h create mode 100644 include/linux/device-id/of.h create mode 100644 include/linux/device-id/parisc.h create mode 100644 include/linux/device-id/pci.h create mode 100644 include/linux/device-id/pcmcia.h create mode 100644 include/linux/device-id/platform.h create mode 100644 include/linux/device-id/pnp.h create mode 100644 include/linux/device-id/rio.h create mode 100644 include/linux/device-id/rpmsg.h create mode 100644 include/linux/device-id/sdio.h create mode 100644 include/linux/device-id/sdw.h create mode 100644 include/linux/device-id/serio.h create mode 100644 include/linux/device-id/slim.h create mode 100644 include/linux/device-id/spi.h create mode 100644 include/linux/device-id/spmi.h create mode 100644 include/linux/device-id/ssam.h create mode 100644 include/linux/device-id/ssb.h create mode 100644 include/linux/device-id/tb.h create mode 100644 include/linux/device-id/tee_client.h create mode 100644 include/linux/device-id/typec.h create mode 100644 include/linux/device-id/ulpi.h create mode 100644 include/linux/device-id/usb.h create mode 100644 include/linux/device-id/vchiq.h create mode 100644 include/linux/device-id/vio.h create mode 100644 include/linux/device-id/virtio.h create mode 100644 include/linux/device-id/wmi.h create mode 100644 include/linux/device-id/x86_cpu.h create mode 100644 include/linux/device-id/zorro.h
base-commit: dc59e4fea9d83f03bad6bddf3fa2e52491777482
Signature · 1 line
2.47.3
PATCH v3 1/16 mod_devicetable.h: Split into per subsystem headers
<linux/mod_devicetable.h> is included transitively in nearly every driver in an x86_64 allmodconfig build of v7.1:
$ find drivers -name \*.o -not -name \*.mod.o | wc -l 21330 $ find drivers -name \*.o.cmd -not -name \*.mod.o.cmd | xargs grep -l mod_devicetable.h | wc -l 17038
The result is that even when touching an obscure device id struct most of the kernel needs to be recompiled. Given that each driver typically only needs one or two of these structures, splitting into per subsystem headers and only including what is really needed reduces the amount of needed recompilation.
Implement the first step and define each device id struct in a separate header (together with its associated #defines).
<linux/mod_devicetable.h> is modified to include all the new headers to continue to provide the same symbols.
Several headers currently include <linux/mod_devicetable.h>, those that are most lukrative to include only their subsystem headers only are:
$ git -C source grep -l mod_devicetable.h include/linux | while read h; do echo -n "$h:"; find drivers -name \*.o.cmd -not -name \*.mod.o.cmd | xargs grep -l $h | wc -l; done | sort -t: -k2 -n -r | head include/linux/of.h:10897 include/linux/pci.h:7920 include/linux/acpi.h:7097 include/linux/i2c.h:5402 include/linux/spi/spi.h:1897 include/linux/dmi.h:1643 include/linux/usb.h:1222 include/linux/input.h:1205 include/linux/mdio.h:835 include/linux/phy.h:733
struct cpu_feature isn't really a device_id struct. That is kept in <linux/mod_devicetable.h> for now.
--- include/linux/device-id/acpi.h | 31 + include/linux/device-id/amba.h | 18 + include/linux/device-id/ap.h | 19 + include/linux/device-id/apr.h | 20 + include/linux/device-id/auxiliary.h | 16 + include/linux/device-id/bcma.h | 24 + include/linux/device-id/ccw.h | 26 + include/linux/device-id/cdx.h | 39 + include/linux/device-id/coreboot.h | 19 + include/linux/device-id/css.h | 16 + include/linux/device-id/dfl.h | 33 + include/linux/device-id/dmi.h | 57 ++ include/linux/device-id/eisa.h | 20 + include/linux/device-id/fsl_mc.h | 21 + include/linux/device-id/hda.h | 16 + include/linux/device-id/hid.h | 21 + include/linux/device-id/hv_vmbus.h | 17 + include/linux/device-id/i2c.h | 18 + include/linux/device-id/i3c.h | 25 + include/linux/device-id/ieee1394.h | 26 + include/linux/device-id/input.h | 61 ++ include/linux/device-id/ipack.h | 16 + include/linux/device-id/isapnp.h | 15 + include/linux/device-id/ishtp.h | 23 + include/linux/device-id/mcb.h | 14 + include/linux/device-id/mdio.h | 34 + include/linux/device-id/mei_cl.h | 30 + include/linux/device-id/mhi.h | 23 + include/linux/device-id/mips_cdmm.h | 16 + include/linux/device-id/of.h | 14 + include/linux/device-id/parisc.h | 20 + include/linux/device-id/pci.h | 53 ++ include/linux/device-id/pcmcia.h | 47 ++ include/linux/device-id/platform.h | 16 + include/linux/device-id/pnp.h | 25 + include/linux/device-id/rio.h | 27 + include/linux/device-id/rpmsg.h | 18 + include/linux/device-id/sdio.h | 20 + include/linux/device-id/sdw.h | 17 + include/linux/device-id/serio.h | 17 + include/linux/device-id/slim.h | 22 + include/linux/device-id/spi.h | 18 + include/linux/device-id/spmi.h | 16 + include/linux/device-id/ssam.h | 27 + include/linux/device-id/ssb.h | 23 + include/linux/device-id/tb.h | 36 + include/linux/device-id/tee_client.h | 17 + include/linux/device-id/typec.h | 25 + include/linux/device-id/ulpi.h | 15 + include/linux/device-id/usb.h | 110 +++ include/linux/device-id/vchiq.h | 8 + include/linux/device-id/vio.h | 10 + include/linux/device-id/virtio.h | 15 + include/linux/device-id/wmi.h | 18 + include/linux/device-id/x86_cpu.h | 43 ++ include/linux/device-id/zorro.h | 18 + include/linux/mod_devicetable.h | 1014 ++------------------------ 57 files changed, 1465 insertions(+), 958 deletions(-) create mode 100644 include/linux/device-id/acpi.h create mode 100644 include/linux/device-id/amba.h create mode 100644 include/linux/device-id/ap.h create mode 100644 include/linux/device-id/apr.h create mode 100644 include/linux/device-id/auxiliary.h create mode 100644 include/linux/device-id/bcma.h create mode 100644 include/linux/device-id/ccw.h create mode 100644 include/linux/device-id/cdx.h create mode 100644 include/linux/device-id/coreboot.h create mode 100644 include/linux/device-id/css.h create mode 100644 include/linux/device-id/dfl.h create mode 100644 include/linux/device-id/dmi.h create mode 100644 include/linux/device-id/eisa.h create mode 100644 include/linux/device-id/fsl_mc.h create mode 100644 include/linux/device-id/hda.h create mode 100644 include/linux/device-id/hid.h create mode 100644 include/linux/device-id/hv_vmbus.h create mode 100644 include/linux/device-id/i2c.h create mode 100644 include/linux/device-id/i3c.h create mode 100644 include/linux/device-id/ieee1394.h create mode 100644 include/linux/device-id/input.h create mode 100644 include/linux/device-id/ipack.h create mode 100644 include/linux/device-id/isapnp.h create mode 100644 include/linux/device-id/ishtp.h create mode 100644 include/linux/device-id/mcb.h create mode 100644 include/linux/device-id/mdio.h create mode 100644 include/linux/device-id/mei_cl.h create mode 100644 include/linux/device-id/mhi.h create mode 100644 include/linux/device-id/mips_cdmm.h create mode 100644 include/linux/device-id/of.h create mode 100644 include/linux/device-id/parisc.h create mode 100644 include/linux/device-id/pci.h create mode 100644 include/linux/device-id/pcmcia.h create mode 100644 include/linux/device-id/platform.h create mode 100644 include/linux/device-id/pnp.h create mode 100644 include/linux/device-id/rio.h create mode 100644 include/linux/device-id/rpmsg.h create mode 100644 include/linux/device-id/sdio.h create mode 100644 include/linux/device-id/sdw.h create mode 100644 include/linux/device-id/serio.h create mode 100644 include/linux/device-id/slim.h create mode 100644 include/linux/device-id/spi.h create mode 100644 include/linux/device-id/spmi.h create mode 100644 include/linux/device-id/ssam.h create mode 100644 include/linux/device-id/ssb.h create mode 100644 include/linux/device-id/tb.h create mode 100644 include/linux/device-id/tee_client.h create mode 100644 include/linux/device-id/typec.h create mode 100644 include/linux/device-id/ulpi.h create mode 100644 include/linux/device-id/usb.h create mode 100644 include/linux/device-id/vchiq.h create mode 100644 include/linux/device-id/vio.h create mode 100644 include/linux/device-id/virtio.h create mode 100644 include/linux/device-id/wmi.h create mode 100644 include/linux/device-id/x86_cpu.h create mode 100644 include/linux/device-id/zorro.h
include/linux/device-id/acpi.h new file +31 -0
@@ -0,0 +1,31 @@ +#ifndef LINUX_MOD_DEVICE_ID_ACPI_H +#define LINUX_MOD_DEVICE_ID_ACPI_H + +#ifdef __KERNEL__ +#include <linux/types.h> +typedef unsigned long kernel_ulong_t ; +#endif + +#define ACPI_ID_LEN 16 + +struct acpi_device_id { +__u8 id[ACPI_ID_LEN ]; +kernel_ulong_t driver_data; +__u32 cls; +__u32 cls_msk; +}; + +/** +* ACPI_DEVICE_CLASS - macro used to describe an ACPI device with +* the PCI-defined class-code information +* +* @_cls : the class, subclass, prog-if triple for this device +* @_msk : the class mask for this device +* +* This macro is used to create a struct acpi_device_id that matches a +* specific PCI class. The .id and .driver_data fields will be left +* initialized with the default value. +*/ +#define ACPI_DEVICE_CLASS (_cls, _msk) .cls = (_cls), .cls_msk = (_msk), + +#endif /* ifndef LINUX_MOD_DEVICE_ID_ACPI_H */
include/linux/device-id/amba.h new file +18 -0
@@ -0,0 +1,18 @@ +#ifndef LINUX_MOD_DEVICE_ID_AMBA_H +#define LINUX_MOD_DEVICE_ID_AMBA_H + +/** +* struct amba_id - identifies a device on an AMBA bus +* @id: The significant bits if the hardware device ID +* @mask: Bitmask specifying which bits of the id field are significant when +* matching. A driver binds to a device when ((hardware device ID) & mask) +* == id. +* @data: Private data used by the driver. +*/ +struct amba_id { +unsigned int id; +unsigned int mask; +void *data; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_AMBA_H */
include/linux/device-id/ap.h new file +19 -0
@@ -0,0 +1,19 @@ +#ifndef LINUX_MOD_DEVICE_ID_AP_H +#define LINUX_MOD_DEVICE_ID_AP_H + +#ifdef __KERNEL__ +#include <linux/types.h> +typedef unsigned long kernel_ulong_t ; +#endif + +#define AP_DEVICE_ID_MATCH_CARD_TYPE 0x01 +#define AP_DEVICE_ID_MATCH_QUEUE_TYPE 0x02 + +/* s390 AP bus devices */ +struct ap_device_id { +__u16 match_flags;/* which fields to match against */ +__u8 dev_type;/* device type */ +kernel_ulong_t driver_info; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_AP_H */
include/linux/device-id/apr.h new file +20 -0
@@ -0,0 +1,20 @@ +#ifndef LINUX_MOD_DEVICE_ID_APR_H +#define LINUX_MOD_DEVICE_ID_APR_H + +#ifdef __KERNEL__ +#include <linux/types.h> +typedef unsigned long kernel_ulong_t ; +#endif + +#define APR_NAME_SIZE 32 +#define APR_MODULE_PREFIX "apr:" + +struct apr_device_id { +char name[APR_NAME_SIZE ]; +__u32 domain_id; +__u32 svc_id; +__u32 svc_version; +kernel_ulong_t driver_data;/* Data private to the driver */ +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_APR_H */
include/linux/device-id/auxiliary.h new file +16 -0
@@ -0,0 +1,16 @@ +#ifndef LINUX_MOD_DEVICE_ID_AUXILIARY_H +#define LINUX_MOD_DEVICE_ID_AUXILIARY_H + +#ifdef __KERNEL__ +typedef unsigned long kernel_ulong_t ; +#endif + +#define AUXILIARY_NAME_SIZE 40 +#define AUXILIARY_MODULE_PREFIX "auxiliary:" + +struct auxiliary_device_id { +char name[AUXILIARY_NAME_SIZE ]; +kernel_ulong_t driver_data; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_AUXILIARY_H */
include/linux/device-id/bcma.h new file +24 -0
@@ -0,0 +1,24 @@ +#ifndef LINUX_MOD_DEVICE_ID_BCMA_H +#define LINUX_MOD_DEVICE_ID_BCMA_H + +#ifdef __KERNEL__ +#include <linux/types.h> +#endif + +#define BCMA_CORE (_manuf, _id, _rev, _class) \ + { .manuf = _manuf, .id = _id, .rev = _rev, .class = _class, } + +#define BCMA_ANY_MANUF 0xFFFF +#define BCMA_ANY_ID 0xFFFF +#define BCMA_ANY_REV 0xFF +#define BCMA_ANY_CLASS 0xFF + +/* Broadcom's specific AMBA core, see drivers/bcma/ */ +struct bcma_device_id { +__u16 manuf; +__u16 id; +__u8 rev; +__u8 class; +} __attribute__((packed,aligned (2 ))); + +#endif /* ifndef LINUX_MOD_DEVICE_ID_BCMA_H */
include/linux/device-id/ccw.h new file +26 -0
@@ -0,0 +1,26 @@ +#ifndef LINUX_MOD_DEVICE_ID_CCW_H +#define LINUX_MOD_DEVICE_ID_CCW_H + +#ifdef __KERNEL__ +#include <linux/types.h> +typedef unsigned long kernel_ulong_t ; +#endif + +#define CCW_DEVICE_ID_MATCH_CU_TYPE 0x01 +#define CCW_DEVICE_ID_MATCH_CU_MODEL 0x02 +#define CCW_DEVICE_ID_MATCH_DEVICE_TYPE 0x04 +#define CCW_DEVICE_ID_MATCH_DEVICE_MODEL 0x08 + +/* s390 CCW devices */ +struct ccw_device_id { +__u16 match_flags;/* which fields to match against */ + +__u16 cu_type;/* control unit type */ +__u16 dev_type;/* device type */ +__u8 cu_model;/* control unit model */ +__u8 dev_model;/* device model */ + +kernel_ulong_t driver_info; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_CCW_H */
include/linux/device-id/cdx.h new file +39 -0
@@ -0,0 +1,39 @@ +#ifndef LINUX_MOD_DEVICE_ID_CDX_H +#define LINUX_MOD_DEVICE_ID_CDX_H + +#ifdef __KERNEL__ +#include <linux/types.h> +#endif + +#define CDX_ANY_ID (0xFFFF) + +enum { +CDX_ID_F_VFIO_DRIVER_OVERRIDE =1 , +}; + +/** +* struct cdx_device_id - CDX device identifier +* @vendor: Vendor ID +* @device: Device ID +* @subvendor: Subsystem vendor ID (or CDX_ANY_ID) +* @subdevice: Subsystem device ID (or CDX_ANY_ID) +* @class: Device class +* Most drivers do not need to specify class/class_mask +* as vendor/device is normally sufficient. +* @class_mask: Limit which sub-fields of the class field are compared. +* @override_only: Match only when dev->driver_override is this driver. +* +* Type of entries in the "device Id" table for CDX devices supported by +* a CDX device driver. +*/ +struct cdx_device_id { +__u16 vendor; +__u16 device; +__u16 subvendor; +__u16 subdevice; +__u32 class; +__u32 class_mask; +__u32 override_only; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_CDX_H */
include/linux/device-id/coreboot.h new file +19 -0
@@ -0,0 +1,19 @@ +#ifndef LINUX_MOD_DEVICE_ID_COREBOOT_H +#define LINUX_MOD_DEVICE_ID_COREBOOT_H + +#ifdef __KERNEL__ +#include <linux/types.h> +typedef unsigned long kernel_ulong_t ; +#endif + +/** +* struct coreboot_device_id - Identifies a coreboot table entry +* @tag: tag ID +* @driver_data: driver specific data +*/ +struct coreboot_device_id { +__u32 tag; +kernel_ulong_t driver_data; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_COREBOOT_H */
include/linux/device-id/css.h new file +16 -0
@@ -0,0 +1,16 @@ +#ifndef LINUX_MOD_DEVICE_ID_CSS_H +#define LINUX_MOD_DEVICE_ID_CSS_H + +#ifdef __KERNEL__ +#include <linux/types.h> +typedef unsigned long kernel_ulong_t ; +#endif + +/* s390 css bus devices (subchannels) */ +struct css_device_id { +__u8 match_flags; +__u8 type;/* subchannel type */ +kernel_ulong_t driver_data; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_CSS_H */
include/linux/device-id/dfl.h new file +33 -0
@@ -0,0 +1,33 @@ +#ifndef LINUX_MOD_DEVICE_ID_DFL_H +#define LINUX_MOD_DEVICE_ID_DFL_H + +#ifdef __KERNEL__ +#include <linux/types.h> +typedef unsigned long kernel_ulong_t ; +#endif + +/* +* DFL (Device Feature List) +* +* DFL defines a linked list of feature headers within the device MMIO space to +* provide an extensible way of adding features. Software can walk through these +* predefined data structures to enumerate features. It is now used in the FPGA. +* See Documentation/fpga/dfl.rst for more information. +* +* The dfl bus type is introduced to match the individual feature devices (dfl +* devices) for specific dfl drivers. +*/ + +/** +* struct dfl_device_id - dfl device identifier +* @type: DFL FIU type of the device. See enum dfl_id_type. +* @feature_id: feature identifier local to its DFL FIU type. +* @driver_data: driver specific data. +*/ +struct dfl_device_id { +__u16 type; +__u16 feature_id; +kernel_ulong_t driver_data; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_DFL_H */
include/linux/device-id/dmi.h new file +57 -0
57 lines not on this page · raw message
include/linux/device-id/eisa.h new file +20 -0
@@ -0,0 +1,20 @@ +#ifndef LINUX_MOD_DEVICE_ID_EISA_H +#define LINUX_MOD_DEVICE_ID_EISA_H + +#ifdef __KERNEL__ +typedef unsigned long kernel_ulong_t ; +#endif + +/* EISA */ + +#define EISA_SIG_LEN 8 + +/* The EISA signature, in ASCII form, null terminated */ +struct eisa_device_id { +char sig[EISA_SIG_LEN ]; +kernel_ulong_t driver_data; +}; + +#define EISA_DEVICE_MODALIAS_FMT "eisa:s%s" + +#endif /* ifndef LINUX_MOD_DEVICE_ID_EISA_H */
include/linux/device-id/fsl_mc.h new file +21 -0
@@ -0,0 +1,21 @@ +#ifndef LINUX_MOD_DEVICE_ID_FSL_MC_H +#define LINUX_MOD_DEVICE_ID_FSL_MC_H + +#ifdef __KERNEL__ +#include <linux/types.h> +#endif + +/** +* struct fsl_mc_device_id - MC object device identifier +* @vendor: vendor ID +* @obj_type: MC object type +* +* Type of entries in the "device Id" table for MC object devices supported by +* a MC object device driver. The last entry of the table has vendor set to 0x0 +*/ +struct fsl_mc_device_id { +__u16 vendor; +const char obj_type[16 ]; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_FSL_MC_H */
include/linux/device-id/hda.h new file +16 -0
@@ -0,0 +1,16 @@ +#ifndef LINUX_MOD_DEVICE_ID_HDA_H +#define LINUX_MOD_DEVICE_ID_HDA_H + +#ifdef __KERNEL__ +#include <linux/types.h> +#endif + +struct hda_device_id { +__u32 vendor_id; +__u32 rev_id; +__u8 api_version; +const char *name; +unsigned long driver_data; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_HDA_H */
include/linux/device-id/hid.h new file +21 -0
@@ -0,0 +1,21 @@ +#ifndef LINUX_MOD_DEVICE_ID_HID_H +#define LINUX_MOD_DEVICE_ID_HID_H + +#ifdef __KERNEL__ +#include <linux/types.h> +typedef unsigned long kernel_ulong_t ; +#endif + +#define HID_ANY_ID (~0) +#define HID_BUS_ANY 0xffff +#define HID_GROUP_ANY 0x0000 + +struct hid_device_id { +__u16 bus; +__u16 group; +__u32 vendor; +__u32 product; +kernel_ulong_t driver_data; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_HID_H */
include/linux/device-id/hv_vmbus.h new file +17 -0
@@ -0,0 +1,17 @@ +#ifndef LINUX_MOD_DEVICE_ID_HV_VMBUS_H +#define LINUX_MOD_DEVICE_ID_HV_VMBUS_H + +#ifdef __KERNEL__ +#include <linux/uuid.h> +typedef unsigned long kernel_ulong_t ; +#endif + +/* +* For Hyper-V devices we use the device guid as the id. +*/ +struct hv_vmbus_device_id { +guid_t guid; +kernel_ulong_t driver_data;/* Data private to the driver */ +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_HV_VMBUS_H */
include/linux/device-id/i2c.h new file +18 -0
@@ -0,0 +1,18 @@ +#ifndef LINUX_MOD_DEVICE_ID_I2C_H +#define LINUX_MOD_DEVICE_ID_I2C_H + +#ifdef __KERNEL__ +typedef unsigned long kernel_ulong_t ; +#endif + +/* i2c */ + +#define I2C_NAME_SIZE 20 +#define I2C_MODULE_PREFIX "i2c:" + +struct i2c_device_id { +char name[I2C_NAME_SIZE ]; +kernel_ulong_t driver_data;/* Data private to the driver */ +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_I2C_H */
include/linux/device-id/i3c.h new file +25 -0
@@ -0,0 +1,25 @@ +#ifndef LINUX_MOD_DEVICE_ID_I3C_H +#define LINUX_MOD_DEVICE_ID_I3C_H + +#ifdef __KERNEL__ +#include <linux/types.h> +#endif + +/* i3c */ + +#define I3C_MATCH_DCR 0x1 +#define I3C_MATCH_MANUF 0x2 +#define I3C_MATCH_PART 0x4 +#define I3C_MATCH_EXTRA_INFO 0x8 + +struct i3c_device_id { +__u8 match_flags; +__u8 dcr; +__u16 manuf_id; +__u16 part_id; +__u16 extra_info; + +const void *data; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_I3C_H */
include/linux/device-id/ieee1394.h new file +26 -0
@@ -0,0 +1,26 @@ +#ifndef LINUX_MOD_DEVICE_ID_IEEE1394_H +#define LINUX_MOD_DEVICE_ID_IEEE1394_H + +#ifdef __KERNEL__ +#include <linux/types.h> +typedef unsigned long kernel_ulong_t ; +#endif + +#define IEEE1394_MATCH_VENDOR_ID 0x0001 +#define IEEE1394_MATCH_MODEL_ID 0x0002 +#define IEEE1394_MATCH_SPECIFIER_ID 0x0004 +#define IEEE1394_MATCH_VERSION 0x0008 + +struct ieee1394_device_id { +__u32 match_flags; +__u32 vendor_id; +__u32 model_id; +__u32 specifier_id; +__u32 version; +union { +kernel_ulong_t driver_data; +const void *driver_data_ptr; + }; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_IEEE1394_H */
include/linux/device-id/input.h new file +61 -0
61 lines not on this page · raw message
include/linux/device-id/ipack.h new file +16 -0
@@ -0,0 +1,16 @@ +#ifndef LINUX_MOD_DEVICE_ID_IPACK_H +#define LINUX_MOD_DEVICE_ID_IPACK_H + +#ifdef __KERNEL__ +#include <linux/types.h> +#endif + +#define IPACK_ANY_FORMAT 0xff +#define IPACK_ANY_ID (~0) +struct ipack_device_id { +__u8 format;/* Format version or IPACK_ANY_ID */ +__u32 vendor;/* Vendor ID or IPACK_ANY_ID */ +__u32 device;/* Device ID or IPACK_ANY_ID */ +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_IPACK_H */
include/linux/device-id/isapnp.h new file +15 -0
@@ -0,0 +1,15 @@ +#ifndef LINUX_MOD_DEVICE_ID_ISAPNP_H +#define LINUX_MOD_DEVICE_ID_ISAPNP_H + +#ifdef __KERNEL__ +typedef unsigned long kernel_ulong_t ; +#endif + +#define ISAPNP_ANY_ID 0xffff +struct isapnp_device_id { +unsigned short card_vendor, card_device; +unsigned short vendor, function; +kernel_ulong_t driver_data;/* data private to the driver */ +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_ISAPNP_H */
include/linux/device-id/ishtp.h new file +23 -0
@@ -0,0 +1,23 @@ +#ifndef LINUX_MOD_DEVICE_ID_ISHTP_H +#define LINUX_MOD_DEVICE_ID_ISHTP_H + +#ifdef __KERNEL__ +#include <linux/uuid.h> +typedef unsigned long kernel_ulong_t ; +#endif + +/* ISHTP (Integrated Sensor Hub Transport Protocol) */ + +#define ISHTP_MODULE_PREFIX "ishtp:" + +/** +* struct ishtp_device_id - ISHTP device identifier +* @guid: GUID of the device. +* @driver_data: pointer to driver specific data +*/ +struct ishtp_device_id { +guid_t guid; +kernel_ulong_t driver_data; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_ISHTP_H */
include/linux/device-id/mcb.h new file +14 -0
@@ -0,0 +1,14 @@ +#ifndef LINUX_MOD_DEVICE_ID_MCB_H +#define LINUX_MOD_DEVICE_ID_MCB_H + +#ifdef __KERNEL__ +#include <linux/types.h> +typedef unsigned long kernel_ulong_t ; +#endif + +struct mcb_device_id { +__u16 device; +kernel_ulong_t driver_data; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_MCB_H */
include/linux/device-id/mdio.h new file +34 -0
@@ -0,0 +1,34 @@ +#ifndef LINUX_MOD_DEVICE_ID_MDIO_H +#define LINUX_MOD_DEVICE_ID_MDIO_H + +#ifdef __KERNEL__ +#include <linux/types.h> +#endif + +#define MDIO_MODULE_PREFIX "mdio:" + +#define MDIO_ID_FMT "%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u" +#define MDIO_ID_ARGS (_id) \ + ((_id)>>31) & 1, ((_id)>>30) & 1, ((_id)>>29) & 1, ((_id)>>28) & 1, \ + ((_id)>>27) & 1, ((_id)>>26) & 1, ((_id)>>25) & 1, ((_id)>>24) & 1, \ + ((_id)>>23) & 1, ((_id)>>22) & 1, ((_id)>>21) & 1, ((_id)>>20) & 1, \ + ((_id)>>19) & 1, ((_id)>>18) & 1, ((_id)>>17) & 1, ((_id)>>16) & 1, \ + ((_id)>>15) & 1, ((_id)>>14) & 1, ((_id)>>13) & 1, ((_id)>>12) & 1, \ + ((_id)>>11) & 1, ((_id)>>10) & 1, ((_id)>>9) & 1, ((_id)>>8) & 1, \ + ((_id)>>7) & 1, ((_id)>>6) & 1, ((_id)>>5) & 1, ((_id)>>4) & 1, \ + ((_id)>>3) & 1, ((_id)>>2) & 1, ((_id)>>1) & 1, (_id) & 1 + +/** +* struct mdio_device_id - identifies PHY devices on an MDIO/MII bus +* @phy_id: The result of +* (mdio_read(&MII_PHYSID1) << 16 | mdio_read(&MII_PHYSID2)) & @phy_id_mask +* for this PHY type +* @phy_id_mask: Defines the significant bits of @phy_id. A value of 0 +* is used to terminate an array of struct mdio_device_id. +*/ +struct mdio_device_id { +__u32 phy_id; +__u32 phy_id_mask; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_MDIO_H */
include/linux/device-id/mei_cl.h new file +30 -0
@@ -0,0 +1,30 @@ +#ifndef LINUX_MOD_DEVICE_ID_MEI_CL_H +#define LINUX_MOD_DEVICE_ID_MEI_CL_H + +#ifdef __KERNEL__ +#include <linux/types.h> +#include <linux/mei_uuid.h> +typedef unsigned long kernel_ulong_t ; +#endif + +#define MEI_CL_MODULE_PREFIX "mei:" +#define MEI_CL_NAME_SIZE 32 +#define MEI_CL_VERSION_ANY 0xff + +/** +* struct mei_cl_device_id - MEI client device identifier +* @name: helper name +* @uuid: client uuid +* @version: client protocol version +* @driver_info: information used by the driver. +* +* identifies mei client device by uuid and name +*/ +struct mei_cl_device_id { +char name[MEI_CL_NAME_SIZE ]; +uuid_le uuid; +__u8 version; +kernel_ulong_t driver_info; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_MEI_CL_H */
include/linux/device-id/mhi.h new file +23 -0
@@ -0,0 +1,23 @@ +#ifndef LINUX_MOD_DEVICE_ID_MHI_H +#define LINUX_MOD_DEVICE_ID_MHI_H + +#ifdef __KERNEL__ +typedef unsigned long kernel_ulong_t ; +#endif + +#define MHI_DEVICE_MODALIAS_FMT "mhi:%s" +#define MHI_NAME_SIZE 32 + +#define MHI_EP_DEVICE_MODALIAS_FMT "mhi_ep:%s" + +/** +* struct mhi_device_id - MHI device identification +* @chan: MHI channel name +* @driver_data: driver data; +*/ +struct mhi_device_id { +const char chan[MHI_NAME_SIZE ]; +kernel_ulong_t driver_data; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_MHI_H */
include/linux/device-id/mips_cdmm.h new file +16 -0
@@ -0,0 +1,16 @@ +#ifndef LINUX_MOD_DEVICE_ID_MIPS_CDMM_H +#define LINUX_MOD_DEVICE_ID_MIPS_CDMM_H + +#ifdef __KERNEL__ +#include <linux/types.h> +#endif + +/** +* struct mips_cdmm_device_id - identifies devices in MIPS CDMM bus +* @type: Device type identifier. +*/ +struct mips_cdmm_device_id { +__u8 type; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_MIPS_CDMM_H */
include/linux/device-id/of.h new file +14 -0
@@ -0,0 +1,14 @@ +#ifndef LINUX_MOD_DEVICE_ID_OF_H +#define LINUX_MOD_DEVICE_ID_OF_H + +/* +* Struct used for matching a device +*/ +struct of_device_id { +char name[32 ]; +char type[32 ]; +char compatible[128 ]; +const void *data; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_OF_H */
include/linux/device-id/parisc.h new file +20 -0
@@ -0,0 +1,20 @@ +#ifndef LINUX_MOD_DEVICE_ID_PARISC_H +#define LINUX_MOD_DEVICE_ID_PARISC_H + +#ifdef __KERNEL__ +#include <linux/types.h> +#endif + +#define PA_HWTYPE_ANY_ID 0xff +#define PA_HVERSION_REV_ANY_ID 0xff +#define PA_HVERSION_ANY_ID 0xffff +#define PA_SVERSION_ANY_ID 0xffffffff + +struct parisc_device_id { +__u8 hw_type;/* 5 bits used */ +__u8 hversion_rev;/* 4 bits */ +__u16 hversion;/* 12 bits */ +__u32 sversion;/* 20 bits */ +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_PARISC_H */
include/linux/device-id/pci.h new file +53 -0
53 lines not on this page · raw message
include/linux/device-id/pcmcia.h new file +47 -0
47 lines not on this page · raw message
include/linux/device-id/platform.h new file +16 -0
@@ -0,0 +1,16 @@ +#ifndef LINUX_MOD_DEVICE_ID_PLATFORM_H +#define LINUX_MOD_DEVICE_ID_PLATFORM_H + +#ifdef __KERNEL__ +typedef unsigned long kernel_ulong_t ; +#endif + +#define PLATFORM_NAME_SIZE 24 +#define PLATFORM_MODULE_PREFIX "platform:" + +struct platform_device_id { +char name[PLATFORM_NAME_SIZE ]; +kernel_ulong_t driver_data; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_PLATFORM_H */
include/linux/device-id/pnp.h new file +25 -0
@@ -0,0 +1,25 @@ +#ifndef LINUX_MOD_DEVICE_ID_PNP_H +#define LINUX_MOD_DEVICE_ID_PNP_H + +#ifdef __KERNEL__ +#include <linux/types.h> +typedef unsigned long kernel_ulong_t ; +#endif + +#define PNP_ID_LEN 8 +#define PNP_MAX_DEVICES 8 + +struct pnp_device_id { +__u8 id[PNP_ID_LEN ]; +kernel_ulong_t driver_data; +}; + +struct pnp_card_device_id { +__u8 id[PNP_ID_LEN ]; +kernel_ulong_t driver_data; +struct { +__u8 id[PNP_ID_LEN ]; + } devs[PNP_MAX_DEVICES ]; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_PNP_H */
include/linux/device-id/rio.h new file +27 -0
@@ -0,0 +1,27 @@ +#ifndef LINUX_MOD_DEVICE_ID_RIO_H +#define LINUX_MOD_DEVICE_ID_RIO_H + +#ifdef __KERNEL__ +#include <linux/types.h> +#endif + +/* RapidIO */ + +#define RIO_ANY_ID 0xffff + +/** +* struct rio_device_id - RIO device identifier +* @did: RapidIO device ID +* @vid: RapidIO vendor ID +* @asm_did: RapidIO assembly device ID +* @asm_vid: RapidIO assembly vendor ID +* +* Identifies a RapidIO device based on both the device/vendor IDs and +* the assembly device/vendor IDs. +*/ +struct rio_device_id { +__u16 did, vid; +__u16 asm_did, asm_vid; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_RIO_H */
include/linux/device-id/rpmsg.h new file +18 -0
@@ -0,0 +1,18 @@ +#ifndef LINUX_MOD_DEVICE_ID_RPMSG_H +#define LINUX_MOD_DEVICE_ID_RPMSG_H + +#ifdef __KERNEL__ +typedef unsigned long kernel_ulong_t ; +#endif + +/* rpmsg */ + +#define RPMSG_NAME_SIZE 32 +#define RPMSG_DEVICE_MODALIAS_FMT "rpmsg:%s" + +struct rpmsg_device_id { +char name[RPMSG_NAME_SIZE ]; +kernel_ulong_t driver_data; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_RPMSG_H */
include/linux/device-id/sdio.h new file +20 -0
@@ -0,0 +1,20 @@ +#ifndef LINUX_MOD_DEVICE_ID_SDIO_H +#define LINUX_MOD_DEVICE_ID_SDIO_H + +#ifdef __KERNEL__ +#include <linux/types.h> +typedef unsigned long kernel_ulong_t ; +#endif + +/* SDIO */ + +#define SDIO_ANY_ID (~0) + +struct sdio_device_id { +__u8 class;/* Standard interface or SDIO_ANY_ID */ +__u16 vendor;/* Vendor or SDIO_ANY_ID */ +__u16 device;/* Device ID or SDIO_ANY_ID */ +kernel_ulong_t driver_data;/* Data private to the driver */ +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_SDIO_H */
include/linux/device-id/sdw.h new file +17 -0
@@ -0,0 +1,17 @@ +#ifndef LINUX_MOD_DEVICE_ID_SDW_H +#define LINUX_MOD_DEVICE_ID_SDW_H + +#ifdef __KERNEL__ +#include <linux/types.h> +typedef unsigned long kernel_ulong_t ; +#endif + +struct sdw_device_id { +__u16 mfg_id; +__u16 part_id; +__u8 sdw_version; +__u8 class_id; +kernel_ulong_t driver_data; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_SDW_H */
include/linux/device-id/serio.h new file +17 -0
@@ -0,0 +1,17 @@ +#ifndef LINUX_MOD_DEVICE_ID_SERIO_H +#define LINUX_MOD_DEVICE_ID_SERIO_H + +#ifdef __KERNEL__ +#include <linux/types.h> +#endif + +#define SERIO_ANY 0xff + +struct serio_device_id { +__u8 type; +__u8 extra; +__u8 id; +__u8 proto; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_SERIO_H */
include/linux/device-id/slim.h new file +22 -0
@@ -0,0 +1,22 @@ +#ifndef LINUX_MOD_DEVICE_ID_SLIM_H +#define LINUX_MOD_DEVICE_ID_SLIM_H + +#ifdef __KERNEL__ +#include <linux/types.h> +typedef unsigned long kernel_ulong_t ; +#endif + +/* SLIMbus */ + +#define SLIMBUS_NAME_SIZE 32 +#define SLIMBUS_MODULE_PREFIX "slim:" + +struct slim_device_id { +__u16 manf_id, prod_code; +__u16 dev_index, instance; + +/* Data private to the driver */ +kernel_ulong_t driver_data; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_SLIM_H */
include/linux/device-id/spi.h new file +18 -0
@@ -0,0 +1,18 @@ +#ifndef LINUX_MOD_DEVICE_ID_SPI_H +#define LINUX_MOD_DEVICE_ID_SPI_H + +#ifdef __KERNEL__ +typedef unsigned long kernel_ulong_t ; +#endif + +/* spi */ + +#define SPI_NAME_SIZE 32 +#define SPI_MODULE_PREFIX "spi:" + +struct spi_device_id { +char name[SPI_NAME_SIZE ]; +kernel_ulong_t driver_data;/* Data private to the driver */ +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_SPI_H */
include/linux/device-id/spmi.h new file +16 -0
@@ -0,0 +1,16 @@ +#ifndef LINUX_MOD_DEVICE_ID_SPMI_H +#define LINUX_MOD_DEVICE_ID_SPMI_H + +#ifdef __KERNEL__ +typedef unsigned long kernel_ulong_t ; +#endif + +#define SPMI_NAME_SIZE 32 +#define SPMI_MODULE_PREFIX "spmi:" + +struct spmi_device_id { +char name[SPMI_NAME_SIZE ]; +kernel_ulong_t driver_data;/* Data private to the driver */ +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_SPMI_H */
include/linux/device-id/ssam.h new file +27 -0
@@ -0,0 +1,27 @@ +#ifndef LINUX_MOD_DEVICE_ID_SSAM_H +#define LINUX_MOD_DEVICE_ID_SSAM_H + +#ifdef __KERNEL__ +#include <linux/types.h> +typedef unsigned long kernel_ulong_t ; +#endif + +/* Surface System Aggregator Module */ + +#define SSAM_MATCH_TARGET 0x1 +#define SSAM_MATCH_INSTANCE 0x2 +#define SSAM_MATCH_FUNCTION 0x4 + +struct ssam_device_id { +__u8 match_flags; + +__u8 domain; +__u8 category; +__u8 target; +__u8 instance; +__u8 function; + +kernel_ulong_t driver_data; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_SSAM_H */
include/linux/device-id/ssb.h new file +23 -0
@@ -0,0 +1,23 @@ +#ifndef LINUX_MOD_DEVICE_ID_SSB_H +#define LINUX_MOD_DEVICE_ID_SSB_H + +#ifdef __KERNEL__ +#include <linux/types.h> +#endif + +#define SSB_ANY_VENDOR 0xFFFF +#define SSB_ANY_ID 0xFFFF +#define SSB_ANY_REV 0xFF + +/* SSB core, see drivers/ssb/ */ +struct ssb_device_id { +__u16 vendor; +__u16 coreid; +__u8 revision; +__u8 __pad; +} __attribute__((packed,aligned (2 ))); + +#define SSB_DEVICE (_vendor, _coreid, _revision) \ + { .vendor = _vendor, .coreid = _coreid, .revision = _revision } + +#endif /* ifndef LINUX_MOD_DEVICE_ID_SSB_H */
include/linux/device-id/tb.h new file +36 -0
@@ -0,0 +1,36 @@ +#ifndef LINUX_MOD_DEVICE_ID_TB_H +#define LINUX_MOD_DEVICE_ID_TB_H + +#ifdef __KERNEL__ +#include <linux/types.h> +typedef unsigned long kernel_ulong_t ; +#endif + +#define TBSVC_MATCH_PROTOCOL_KEY 0x0001 +#define TBSVC_MATCH_PROTOCOL_ID 0x0002 +#define TBSVC_MATCH_PROTOCOL_VERSION 0x0004 +#define TBSVC_MATCH_PROTOCOL_REVISION 0x0008 + +/** +* struct tb_service_id - Thunderbolt service identifiers +* @match_flags: Flags used to match the structure +* @protocol_key: Protocol key the service supports +* @protocol_id: Protocol id the service supports +* @protocol_version: Version of the protocol +* @protocol_revision: Revision of the protocol software +* @driver_data: Driver specific data +* +* Thunderbolt XDomain services are exposed as devices where each device +* carries the protocol information the service supports. Thunderbolt +* XDomain service drivers match against that information. +*/ +struct tb_service_id { +__u32 match_flags; +char protocol_key[8 +1 ]; +__u32 protocol_id; +__u32 protocol_version; +__u32 protocol_revision; +kernel_ulong_t driver_data; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_TB_H */
include/linux/device-id/tee_client.h new file +17 -0
@@ -0,0 +1,17 @@ +#ifndef LINUX_MOD_DEVICE_ID_TEE_CLIENT_H +#define LINUX_MOD_DEVICE_ID_TEE_CLIENT_H + +#ifdef __KERNEL__ +#include <linux/uuid.h> +#endif + +/** +* struct tee_client_device_id - tee based device identifier +* @uuid: For TEE based client devices we use the device uuid as +* the identifier. +*/ +struct tee_client_device_id { +uuid_t uuid; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_TEE_CLIENT_H */
include/linux/device-id/typec.h new file +25 -0
@@ -0,0 +1,25 @@ +#ifndef LINUX_MOD_DEVICE_ID_TYPEC_H +#define LINUX_MOD_DEVICE_ID_TYPEC_H + +#ifdef __KERNEL__ +#include <linux/types.h> +typedef unsigned long kernel_ulong_t ; +#endif + +/* USB Type-C Alternate Modes */ + +#define TYPEC_ANY_MODE 0x7 + +/** +* struct typec_device_id - USB Type-C alternate mode identifiers +* @svid: Standard or Vendor ID +* @mode: Mode index +* @driver_data: Driver specific data +*/ +struct typec_device_id { +__u16 svid; +__u8 mode; +kernel_ulong_t driver_data; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_TYPEC_H */
include/linux/device-id/ulpi.h new file +15 -0
@@ -0,0 +1,15 @@ +#ifndef LINUX_MOD_DEVICE_ID_ULPI_H +#define LINUX_MOD_DEVICE_ID_ULPI_H + +#ifdef __KERNEL__ +#include <linux/types.h> +typedef unsigned long kernel_ulong_t ; +#endif + +struct ulpi_device_id { +__u16 vendor; +__u16 product; +kernel_ulong_t driver_data; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_ULPI_H */
include/linux/device-id/usb.h new file +110 -0
110 lines not on this page · raw message
include/linux/device-id/vchiq.h new file +8 -0
@@ -0,0 +1,8 @@ +#ifndef LINUX_MOD_DEVICE_ID_VCHIQ_H +#define LINUX_MOD_DEVICE_ID_VCHIQ_H + +struct vchiq_device_id { +char name[32 ]; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_VCHIQ_H */
include/linux/device-id/vio.h new file +10 -0
@@ -0,0 +1,10 @@ +#ifndef LINUX_MOD_DEVICE_ID_VIO_H +#define LINUX_MOD_DEVICE_ID_VIO_H + +/* VIO */ +struct vio_device_id { +char type[32 ]; +char compat[32 ]; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_VIO_H */
include/linux/device-id/virtio.h new file +15 -0
@@ -0,0 +1,15 @@ +#ifndef LINUX_MOD_DEVICE_ID_VIRTIO_H +#define LINUX_MOD_DEVICE_ID_VIRTIO_H + +#ifdef __KERNEL__ +#include <linux/types.h> +#endif + +#define VIRTIO_DEV_ANY_ID 0xffffffff + +struct virtio_device_id { +__u32 device; +__u32 vendor; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_VIRTIO_H */
include/linux/device-id/wmi.h new file +18 -0
@@ -0,0 +1,18 @@ +#ifndef LINUX_MOD_DEVICE_ID_WMI_H +#define LINUX_MOD_DEVICE_ID_WMI_H + +/* WMI */ + +#define WMI_MODULE_PREFIX "wmi:" + +/** +* struct wmi_device_id - WMI device identifier +* @guid_string: 36 char string of the form fa50ff2b-f2e8-45de-83fa-65417f2f49ba +* @context: pointer to driver specific data +*/ +struct wmi_device_id { +const char guid_string[UUID_STRING_LEN +1 ]; +const void *context; +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_WMI_H */
include/linux/device-id/x86_cpu.h new file +43 -0
43 lines not on this page · raw message
include/linux/device-id/zorro.h new file +18 -0
@@ -0,0 +1,18 @@ +#ifndef LINUX_MOD_DEVICE_ID_ZORRO_H +#define LINUX_MOD_DEVICE_ID_ZORRO_H + +#ifdef __KERNEL__ +#include <linux/types.h> +typedef unsigned long kernel_ulong_t ; +#endif + +#define ZORRO_WILDCARD (0xffffffff)/* not official */ + +#define ZORRO_DEVICE_MODALIAS_FMT "zorro:i%08X" + +struct zorro_device_id { +__u32 id;/* Device ID or ZORRO_WILDCARD */ +kernel_ulong_t driver_data;/* Data private to the driver */ +}; + +#endif /* ifndef LINUX_MOD_DEVICE_ID_ZORRO_H */
include/linux/mod_devicetable.h +56 -958
1,027 lines not on this page · raw message
Signature · 1 line
2.47.3
PATCH v3 2/16 media: ti: vpe: #include <linux/platform_device.h> explicitly
In reply to Uwe Kleine-König (The Capable Hub)The driver uses several symbols and structs defined in that header. The header is currently included transitively via
"vip.h" -> <media/v4l2-ctrls.h> -> <media/media-request.h> -> <media/media-device.h> -> <linux/platform_device.h>
which seems to be on the lower end of the scale between random and reliable.
--- drivers/media/platform/ti/vpe/vip.c | 1 + 1 file changed, 1 insertion(+)
drivers/media/platform/ti/vpe/vip.c +1 -0
@@ -16,6 +16,7 @@#include <linux/interrupt.h> #include <linux/module.h> #include <linux/workqueue.h> +#include <linux/platform_device.h> #include <linux/pm_runtime.h> #include <linux/sched.h> #include <linux/mfd/syscon.h>
Signature · 1 line
2.47.3
Re: [PATCH v3 02/16] media: ti: vpe: #include <linux/platform_device.h> explicitly
Hi,
Thanks for the patch.
Quoted 9 lines · Uwe Kleine-König (The Capable Hub)
The driver uses several symbols and structs defined in that header. The header is currently included transitively via
"vip.h" -> <media/v4l2-ctrls.h> -> <media/media-request.h> -> <media/media-device.h> -> <linux/platform_device.h>
Quoted 5 lines
which seems to be on the lower end of the scale between random and reliable.
Acked-by Danilo Krummrich <[email protected]>Signed-off-by Uwe Kleine-König (The Capable Hub) <[email protected]>
Thanks and Regards,
Yemike Abhilash Chandra
Quoted 16 lines
--- drivers/media/platform/ti/vpe/vip.c | 1 + 1 file changed, 1 insertion(+)drivers/media/platform/ti/vpe/vip.c +1
-0@@ -16,6 +16,7 @@#include <linux/interrupt.h> #include <linux/module.h> #include <linux/workqueue.h> +#include <linux/platform_device.h> #include <linux/pm_runtime.h> #include <linux/sched.h> #include <linux/mfd/syscon.h>
PATCH v3 3/16 driver: core: Include headers for acpi_device_id and of_device_id for struct device_driver
In reply to Uwe Kleine-König (The Capable Hub)struct device_driver contains pointers of type struct of_device_id* and struct acpi_device_id* but doesn't ensure these are defined. To make the header self-contained add the (very lightweight) includes that contain the respective definitions.
--- include/linux/device/driver.h | 2 ++ 1 file changed, 2 insertions(+)
include/linux/device/driver.h +2 -0
@@ -19,6 +19,8 @@#include <linux/pm.h> #include <linux/device/bus.h> #include <linux/module.h> +#include <linux/device-id/acpi.h> +#include <linux/device-id/of.h> /** * enum probe_type - device driver probe type to try
Signature · 1 line
2.47.3
Re: [PATCH v3 03/16] driver: core: Include headers for acpi_device_id and of_device_id for struct device_driver
Quoted 9 lines · Uwe Kleine-König (The Capable Hub)
struct
device_drivercontains pointers of type struct of_device_id* and struct acpi_device_id* but doesn't ensure these are defined. To make the header self-contained add the (very lightweight) includes that contain the respective definitions.Acked-by Danilo Krummrich <[email protected]>Signed-off-by Uwe Kleine-König (The Capable Hub) <[email protected]>
Quoted 21 lines
--- include/linux/device/driver.h | 2 ++ 1 file changed, 2 insertions(+)include/linux/device/driver.h +2
-1@@ -19,6 +19,8 @@#include <linux/pm.h> #include <linux/device/bus.h> #include <linux/module.h> +#include <linux/device-id/acpi.h> +#include <linux/device-id/of.h> /** * enum probe_type - device driver probe type to try -- 2.47.3
PATCH v3 4/16 driver core: platform: Include header for struct platform_device_id
In reply to Uwe Kleine-König (The Capable Hub)Platform drivers can define an array containing the supported device variants to be assigned to the struct platform_driver's .id_table.
While a forward declaration of struct platform_device_id is technically enough to make the driver self-contained, it's reasonable to provide the (very lightweight) data type definition for that array in <linux/platform_device.h> to not add that burden to all platform drivers with an id-table.
Note that currently <linux/device.h> transitively includes <linux/mod_devicetable.h> that provides struct platform_device_id. But that include is planned to be replaced by a tighter set of includes that only define the structures relevant for the stuff in <linux/device.h>.
--- include/linux/platform_device.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
include/linux/platform_device.h +1 -1
@@ -11,6 +11,7 @@#define _PLATFORM_DEVICE_H_#include <linux/device.h> +#include <linux/device-id/platform.h> #define PLATFORM_DEVID_NONE (-1)#define PLATFORM_DEVID_AUTO (-2)
@@ -18,7 +19,6 @@struct irq_affinity ;struct mfd_cell ;struct property_entry ; -struct platform_device_id ;struct platform_device {const char *name;
Signature · 1 line
2.47.3
PATCH v3 5/16 usb: serial: Include <linux/usb.h> in <linux/usb/serial.h>
In reply to Uwe Kleine-König (The Capable Hub)All consumers of the latter also include the former, but without that struct usb_driver and struct usb_device_id (and maybe more) are not defined. Add an include for <linux/usb.h> to make the header self-contained.
--- include/linux/usb/serial.h | 1 + 1 file changed, 1 insertion(+)
include/linux/usb/serial.h +1 -0
@@ -13,6 +13,7 @@#include <linux/mutex.h> #include <linux/serial.h> #include <linux/kfifo.h> +#include <linux/usb.h> /* The maximum number of ports one device can grab at once */ #define MAX_NUM_PORTS 16
Signature · 1 line
2.47.3
PATCH v3 6/16 platform/x86: msi-ec: Ensure dmi_system_id is defined
In reply to Uwe Kleine-König (The Capable Hub)Currently <linux/acpi.h> includes <linux/mod_devicetable.h> and thus dmi_system_id is available for the driver. To disentangle includes <linux/acpi.h> will be changed to only include the header for acpi_device_id instead of the full <linux/mod_devicetable.h>. To prepare for that include the dedicated header for struct dmi_device_id.
--- drivers/platform/x86/msi-ec.c | 1 + 1 file changed, 1 insertion(+)
drivers/platform/x86/msi-ec.c +1 -0
@@ -23,6 +23,7 @@#include <linux/init.h> #include <linux/kernel.h> #include <linux/module.h> +#include <linux/device-id/dmi.h> #include <linux/platform_device.h> #include <linux/seq_file.h> #include <linux/string.h>
Signature · 1 line
2.47.3
Re: [PATCH v3 06/16] platform/x86: msi-ec: Ensure dmi_system_id is defined
Quoted 18 lines · Uwe Kleine-König (The Capable Hub)
Currently <
linux/acpi.h> includes <linux/mod_devicetable.h> and thusdmi_system_idis available for the driver. To disentangle includes <linux/acpi.h> will be changed to only include the header foracpi_device_idinstead of the full <linux/mod_devicetable.h>. To prepare for that include the dedicated header for structdmi_device_id.Acked-by Danilo Krummrich <[email protected]>Signed-off-by Uwe Kleine-König (The Capable Hub) <[email protected]>--- drivers/platform/x86/msi-ec.c | 1 + 1 file changed, 1 insertion(+)drivers/platform/x86/msi-ec.c +0
-0
drivers/platform/x86/msi-ec.c line 29
Quoted 7 lines
drivers/platform/x86/msi-ec.c +1
-0@@ -23,6 +23,7 @@#include <linux/init.h> #include <linux/kernel.h> #include <linux/module.h> +#include <linux/device-id/dmi.h> #include <linux/platform_device.h> #include <linux/seq_file.h> #include <linux/string.h>
Signature · 1 line
i.
PATCH v3 7/16 of: Explicitly include <linux/types.h> and <linux/err.h>
In reply to Uwe Kleine-König (The Capable Hub)<linux/of_platform.h> uses resource_size_t and relies on the transitive include <linux/mod_devicetable.h> -> <linux/types.h>. It also uses error constants and thus relying on the include chain <linux/mod_devicetable.h> -> <linux/uuid.h> -> <linux/string.h> -> <linux/err.h>.
With the plan to split <linux/mod_devicetable.h> per subsystem and then only letting of_platform.h include the of-specific bits (which don't require these two headers), add the needed includes explicitly to keep the header self-contained.
--- include/linux/of_platform.h | 2 ++ 1 file changed, 2 insertions(+)
include/linux/of_platform.h +2 -0
@@ -6,6 +6,8 @@* <[email protected]> */ +#include <linux/types.h> +#include <linux/err.h> #include <linux/mod_devicetable.h> struct device ;
Signature · 1 line
2.47.3
PATCH v3 8/16 i2c: Let i2c-core.h include <linux/i2c.h>
In reply to Uwe Kleine-König (The Capable Hub)The subsystem private header i2c-core.h uses several symbols defined in <linux/i2c.h>, e.g. struct i2c_board_info and i2c_lock_bus()). This doesn't pose a problem in practise because all files including "i2c-core.h" also include <linux/i2c.h>.
To make this more robust add an include statement for <linux/i2c.h> making the header self-contained.
--- drivers/i2c/i2c-core.h | 1 + 1 file changed, 1 insertion(+)
drivers/i2c/i2c-core.h +1 -0
@@ -3,6 +3,7 @@* i2c-core.h - interfaces internal to the I2C framework */ +#include <linux/i2c.h> #include <linux/kconfig.h> #include <linux/rwsem.h>
Signature · 1 line
2.47.3
Re: [PATCH v3 08/16] i2c: Let i2c-core.h include <linux/i2c.h>
Quoted 10 lines · Uwe Kleine-König (The Capable Hub)
The subsystem private header
i2c-core.huses several symbols defined in <linux/i2c.h>, e.g. structi2c_board_infoandi2c_lock_bus()). This doesn't pose a problem in practise because all files including "i2c-core.h" also include <linux/i2c.h>.To make this more robust add an include statement for <
linux/i2c.h> making the header self-contained.Acked-by Danilo Krummrich <[email protected]>Signed-off-by Uwe Kleine-König (The Capable Hub) <[email protected]>
This shall go upstream with the rest of the series, right?
Re: [PATCH v3 08/16] i2c: Let i2c-core.h include <linux/i2c.h>
Hallo Wolfram,
Quoted 9 lines · Wolfram Sang
Quoted 8 lines · Uwe Kleine-König (The Capable Hub)
The subsystem private header
i2c-core.huses several symbols defined in <linux/i2c.h>, e.g. structi2c_board_infoandi2c_lock_bus()). This doesn't pose a problem in practise because all files including "i2c-core.h" also include <linux/i2c.h>.To make this more robust add an include statement for <
linux/i2c.h> making the header self-contained.
Quoted 6 lines
Quoted 2 lines
Acked-by Danilo Krummrich <[email protected]>Signed-off-by Uwe Kleine-König (The Capable Hub) <[email protected]>Reviewed-by Wolfram Sang <[email protected]>This shall go upstream with the rest of the series, right?
Yes, that's the plan. Linus didn't explicitly say he's happy with merging this for -rc2, but he also didn't contradict, so I assume that is what will happen.
For bisectability it isn't needed to let these go all together, but given that the first patch touches <linux/mod_devicetable.h> which is an intrusive change resulting in the need to rebuild nearly the complete tree when pulled in, do the intrusive follow up changes in the same go to only trigger the needed rebuild once.
Best regards
Uwe
PATCH v3 9/16 platform/x86: x86-android-tablets: Add include defining struct dmi_system_id
In reply to Uwe Kleine-König (The Capable Hub)Currently <linux/i2c.h> includes <linux/mod_devicetable.h> transitively which ensures that struct dmi_system_id is defined in drivers/platform/x86/x86-android-tablets/x86-android-tablets.h. However this include in <linux/i2c.h> will be replaced by one for i2c_device_id only. To ensure that dmi_system_id is available add the include for that explicitly.
--- drivers/platform/x86/x86-android-tablets/x86-android-tablets.h | 1 + 1 file changed, 1 insertion(+)
drivers/platform/x86/x86-android-tablets/x86-android-tablets.h +1 -0
@@ -13,6 +13,7 @@#include <linux/gpio/consumer.h> #include <linux/i2c.h> #include <linux/irqdomain_defs.h> +#include <linux/device-id/dmi.h> #include <linux/spi/spi.h> struct gpio_desc ;
Signature · 1 line
2.47.3
Re: [PATCH v3 09/16] platform/x86: x86-android-tablets: Add include defining struct dmi_system_id
Quoted 18 lines · Uwe Kleine-König (The Capable Hub)
Currently <
linux/i2c.h> includes <linux/mod_devicetable.h> transitively which ensures that structdmi_system_idis defined indrivers/platform/x86/x86-android-tablets/x86-android-tablets.h. However this include in <linux/i2c.h> will be replaced by one fori2c_device_idonly. To ensure thatdmi_system_idis available add the include for that explicitly.Acked-by Danilo Krummrich <[email protected]>Signed-off-by Uwe Kleine-König (The Capable Hub) <[email protected]>--- drivers/platform/x86/x86-android-tablets/x86-android-tablets.h | 1 + 1 file changed, 1 insertion(+)drivers/platform/x86/x86-android-tablets/x86-android-tablets.h +0
-0
drivers/platform/x86/x86-android-tablets/x86-android-tablets.h line 19
Quoted 7 lines
drivers/platform/x86/x86-android-tablets/x86-android-tablets.h +1
-0@@ -13,6 +13,7 @@#include <linux/gpio/consumer.h> #include <linux/i2c.h> #include <linux/irqdomain_defs.h> +#include <linux/device-id/dmi.h> #include <linux/spi/spi.h> struct gpio_desc ;
Indirect include patchs are never a good idea as it always makes header reorganizations minefield. So for this change,
When it comes to the series, I certainly like the direction it goes very much (never have been fan of mod_devicetable.h) but I'd have preferred stepwise approach over trying to introduce it to some mid-rc.
Signature · 1 line
i.
Re: [PATCH v3 09/16] platform/x86: x86-android-tablets: Add include defining struct dmi_system_id
Hello Ilpo,
Quoted 31 lines · Ilpo Järvinen
Quoted 18 lines · Uwe Kleine-König (The Capable Hub)
Currently <
linux/i2c.h> includes <linux/mod_devicetable.h> transitively which ensures that structdmi_system_idis defined indrivers/platform/x86/x86-android-tablets/x86-android-tablets.h. However this include in <linux/i2c.h> will be replaced by one fori2c_device_idonly. To ensure thatdmi_system_idis available add the include for that explicitly.Acked-by Danilo Krummrich <[email protected]>Signed-off-by Uwe Kleine-König (The Capable Hub) <[email protected]>--- drivers/platform/x86/x86-android-tablets/x86-android-tablets.h | 1 + 1 file changed, 1 insertion(+)drivers/platform/x86/x86-android-tablets/x86-android-tablets.h +0
-0drivers/platform/x86/x86-android-tablets/x86-android-tablets.h line 19
Quoted 7 lines
drivers/platform/x86/x86-android-tablets/x86-android-tablets.h +1
-0@@ -13,6 +13,7 @@#include <linux/gpio/consumer.h> #include <linux/i2c.h> #include <linux/irqdomain_defs.h> +#include <linux/device-id/dmi.h> #include <linux/spi/spi.h> struct gpio_desc ;Indirect include patchs are never a good idea as it always makes header reorganizations minefield. So for this change,
Quoted 6 lines
Acked-by Ilpo Järvinen <[email protected]>When it comes to the series, I certainly like the direction it goes very much (never have been fan of
mod_devicetable.h) but I'd have preferred stepwise approach over trying to introduce it to some mid-rc.
The hurdle here is that at least the header part isn't easily automateable. (Well it is, but the script that I have now to check all .c files already takes longer than an hour to run. I guess it's not as optimal as it could, but still.) And so getting this ready for inclusion in next and keeping it up to date until the merge window opens is a tough job.
The further downside is that each modification to one of the highly used headers is expensive (in rebuild time) when these are merged one after another (or when bisecting). So getting these changes in in one batch is beneficial.
So while I agree with your preference, I don't think it's feasible.
Best regards
Uwe
Ilpo Järvinen
maintainerRe: [PATCH v3 09/16] platform/x86: x86-android-tablets: Add include defining struct dmi_system_id
Quoted 35 lines · Uwe Kleine-König (The Capable Hub)
Quoted 34 lines · Ilpo Järvinen
Quoted 18 lines · Uwe Kleine-König (The Capable Hub)
Currently <
linux/i2c.h> includes <linux/mod_devicetable.h> transitively which ensures that structdmi_system_idis defined indrivers/platform/x86/x86-android-tablets/x86-android-tablets.h. However this include in <linux/i2c.h> will be replaced by one fori2c_device_idonly. To ensure thatdmi_system_idis available add the include for that explicitly.Acked-by Danilo Krummrich <[email protected]>Signed-off-by Uwe Kleine-König (The Capable Hub) <[email protected]>--- drivers/platform/x86/x86-android-tablets/x86-android-tablets.h | 1 + 1 file changed, 1 insertion(+)drivers/platform/x86/x86-android-tablets/x86-android-tablets.h +0
-0drivers/platform/x86/x86-android-tablets/x86-android-tablets.h line 19
Quoted 7 lines
drivers/platform/x86/x86-android-tablets/x86-android-tablets.h +1
-0@@ -13,6 +13,7 @@#include <linux/gpio/consumer.h> #include <linux/i2c.h> #include <linux/irqdomain_defs.h> +#include <linux/device-id/dmi.h> #include <linux/spi/spi.h> struct gpio_desc ;Indirect include patchs are never a good idea as it always makes header reorganizations minefield. So for this change,
Acked-by Ilpo Järvinen <[email protected]>
Quoted 6 lines
Quoted 3 lines
When it comes to the series, I certainly like the direction it goes very much (never have been fan of
mod_devicetable.h) but I'd have preferred stepwise approach over trying to introduce it to some mid-rc.The hurdle here is that at least the header part isn't easily automateable.
Patch 1?
Quoted 6 lines
(Well it is, but the script that I have now to check all
.c files already takes longer than an hour to run. I guess it's not as optimal as it could, but still.) And so getting this ready for inclusion in next and keeping it up to date until the merge window opens is a tough job.
Quoted 6 lines
The further downside is that each modification to one of the highly used headers is expensive (in rebuild time) when these are merged one after another (or when bisecting). So getting these changes in in one batch is beneficial.
So while I agree with your preference, I don't think it's feasible.
While I understand keeping it up-to-date must be a pain, I'm not entirely convinced by the rebuild time argument as it has been the status quo so far too for anything touching mod_devicetable.h.
If one commit would move all linux/device-id/* AND ADD them all into mod_devicetable.h as includes, that's just one rebuild more (and one rebuild will occur anyway whichever way you architect this).
Only if includes would be then removed one-by-one from mod_devicetable.h (e.g. per subsystem basis), I can see it causing n rebuilds (+conflicts), but they could be removed in bulk as well.
What you can achieve is preventing those "normal" mod_devicetable.h changes enforcing rebuilds right after this has been applied, but that is just the rebuilds as status quo would have without this series and no more.
Signature · 1 line
i.
Re: [PATCH v3 09/16] platform/x86: x86-android-tablets: Add include defining struct dmi_system_id
Hello Ilpo,
Quoted 36 lines · Ilpo Järvinen
Quoted 35 lines · Uwe Kleine-König (The Capable Hub)
Quoted 34 lines · Ilpo Järvinen
Quoted 18 lines · Uwe Kleine-König (The Capable Hub)
Currently <
linux/i2c.h> includes <linux/mod_devicetable.h> transitively which ensures that structdmi_system_idis defined indrivers/platform/x86/x86-android-tablets/x86-android-tablets.h. However this include in <linux/i2c.h> will be replaced by one fori2c_device_idonly. To ensure thatdmi_system_idis available add the include for that explicitly.Acked-by Danilo Krummrich <[email protected]>Signed-off-by Uwe Kleine-König (The Capable Hub) <[email protected]>--- drivers/platform/x86/x86-android-tablets/x86-android-tablets.h | 1 + 1 file changed, 1 insertion(+)drivers/platform/x86/x86-android-tablets/x86-android-tablets.h +0
-0drivers/platform/x86/x86-android-tablets/x86-android-tablets.h line 19
Quoted 7 lines
drivers/platform/x86/x86-android-tablets/x86-android-tablets.h +1
-0@@ -13,6 +13,7 @@#include <linux/gpio/consumer.h> #include <linux/i2c.h> #include <linux/irqdomain_defs.h> +#include <linux/device-id/dmi.h> #include <linux/spi/spi.h> struct gpio_desc ;Indirect include patchs are never a good idea as it always makes header reorganizations minefield. So for this change,
Acked-by Ilpo Järvinen <[email protected]>
Quoted 8 lines
Quoted 6 lines
Quoted 3 lines
When it comes to the series, I certainly like the direction it goes very much (never have been fan of
mod_devicetable.h) but I'd have preferred stepwise approach over trying to introduce it to some mid-rc.The hurdle here is that at least the header part isn't easily automateable.
Patch 1?
No, patch 15.
Quoted 11 lines
Quoted 11 lines
(Well it is, but the script that I have now to check all
.c files already takes longer than an hour to run. I guess it's not as optimal as it could, but still.) And so getting this ready for inclusion in next and keeping it up to date until the merge window opens is a tough job.The further downside is that each modification to one of the highly used headers is expensive (in rebuild time) when these are merged one after another (or when bisecting). So getting these changes in in one batch is beneficial.
Quoted 5 lines
Quoted 1 line
So while I agree with your preference, I don't think it's feasible.
While I understand keeping it up-to-date must be a pain, I'm not entirely convinced by the rebuild time argument as it has been the status quo so far too for anything touching
mod_devicetable.h.
Yes. I don't know about others, but big rebuilds annoy me regularily. And with another quest that involves touching most struct *_device_id this really gets a pain. And just because "we" endured something in the past, doesn't mean we shouldn't improve.
Quoted 3 lines
If one commit would move all linux/device-id/* AND ADD them all into
mod_devicetable.has includes, that's just one rebuild more (and one rebuild will occur anyway whichever way you architect this).
Yes, one rebuild isn't possible to prevent. You're talking about patch #1, right?
Quoted 3 lines
Only if includes would be then removed one-by-one from
mod_devicetable.h(e.g. per subsystem basis), I can see it causing n rebuilds (+conflicts), but they could be removed in bulk as well.
Removing those from mod_devicetable.h isn't part of the plan. But replacing #include <linux/mod_devicetable.h> by #include <linux/device-id/of.h> in <linux/of.h> triggers again many rebuilds when done separately.
And then for <linux/pci.h> and again for <linux/platform_driver.h> and .... That's why those are included here, too, to at least use the "one rebuild needed" window for the high-impact follow up changes, and trigger a rebuild only once (unless you happen to hit an inbetween commit while bisecting).
Quoted 4 lines
What you can achieve is preventing those "normal"
mod_devicetable.hchanges enforcing rebuilds right after this has been applied, but that is just the rebuilds as status quo would have without this series and no more.
This is exactly the goal. I don't get the "just" part of your argument. The point is that a modification to struct i2c_device_id should only trigger a rebuild of i2c drivers, but not of pci, platform, spi and all the others, too.
Best regards
Uwe
Ilpo Järvinen
maintainerRe: [PATCH v3 09/16] platform/x86: x86-android-tablets: Add include defining struct dmi_system_id
Quoted 41 lines · Uwe Kleine-König (The Capable Hub)
Quoted 40 lines · Ilpo Järvinen
Quoted 39 lines · Uwe Kleine-König (The Capable Hub)
Quoted 37 lines · Ilpo Järvinen
Quoted 18 lines · Uwe Kleine-König (The Capable Hub)
Currently <
linux/i2c.h> includes <linux/mod_devicetable.h> transitively which ensures that structdmi_system_idis defined indrivers/platform/x86/x86-android-tablets/x86-android-tablets.h. However this include in <linux/i2c.h> will be replaced by one fori2c_device_idonly. To ensure thatdmi_system_idis available add the include for that explicitly.Acked-by Danilo Krummrich <[email protected]>Signed-off-by Uwe Kleine-König (The Capable Hub) <[email protected]>--- drivers/platform/x86/x86-android-tablets/x86-android-tablets.h | 1 + 1 file changed, 1 insertion(+)drivers/platform/x86/x86-android-tablets/x86-android-tablets.h +0
-0drivers/platform/x86/x86-android-tablets/x86-android-tablets.h line 19
Quoted 7 lines
drivers/platform/x86/x86-android-tablets/x86-android-tablets.h +1
-0@@ -13,6 +13,7 @@#include <linux/gpio/consumer.h> #include <linux/i2c.h> #include <linux/irqdomain_defs.h> +#include <linux/device-id/dmi.h> #include <linux/spi/spi.h> struct gpio_desc ;Indirect include patchs are never a good idea as it always makes header reorganizations minefield. So for this change,
Acked-by Ilpo Järvinen <[email protected]>When it comes to the series, I certainly like the direction it goes very much (never have been fan of
mod_devicetable.h) but I'd have preferred stepwise approach over trying to introduce it to some mid-rc.
Quoted 12 lines
Quoted 4 lines
Quoted 2 lines
The hurdle here is that at least the header part isn't easily automateable.
Patch 1?
No, patch 15.
Quoted 5 lines
Quoted 5 lines
(Well it is, but the script that I have now to check all
.c files already takes longer than an hour to run. I guess it's not as optimal as it could, but still.) And so getting this ready for inclusion in next and keeping it up to date until the merge window opens is a tough job.
It looks to me more a problem with the chosen approach where you wanted to get it all quickly done in a single all-reaching series (which IMO would have been fine right after -rc1 but mid-rc cycle, I'm not so positive about it).
Quoted 20 lines
Quoted 10 lines
Quoted 6 lines
The further downside is that each modification to one of the highly used headers is expensive (in rebuild time) when these are merged one after another (or when bisecting). So getting these changes in in one batch is beneficial.
So while I agree with your preference, I don't think it's feasible.
While I understand keeping it up-to-date must be a pain, I'm not entirely convinced by the rebuild time argument as it has been the status quo so far too for anything touching
mod_devicetable.h.Yes. I don't know about others, but big rebuilds annoy me regularily. And with another quest that involves touching most struct
*_device_idthis really gets a pain. And just because "we" endured something in the past, doesn't mean we shouldn't improve.Quoted 3 lines
If one commit would move all linux/device-id/* AND ADD them all into
mod_devicetable.has includes, that's just one rebuild more (and one rebuild will occur anyway whichever way you architect this).
Quoted 8 lines
Yes, one rebuild isn't possible to prevent. You're talking about patch #1, right?
Quoted 3 lines
Only if includes would be then removed one-by-one from
mod_devicetable.h(e.g. per subsystem basis), I can see it causing n rebuilds (+conflicts), but they could be removed in bulk as well.Removing those from
mod_devicetable.hisn't part of the plan.
It isn't because you're not doing this in steps so you didn't put them in there at all (which would have been fine at any time and only enforces one rebuild comparable to any other linux/mod_devicetable.h edit).
Quoted 4 lines
But
replacing#include <linux/mod_devicetable.h>by#include <linux/device-id/of.h>in <linux/of.h> triggers again many rebuilds when done separately.
But this is not because you touch linux/mod_devicetable.h but linux/of.h. It certainly should cause rebuild of all the code depending on linux/of.h but I assume that is much less than what linux/mod_devicetable.h causes.
Quoted 5 lines
And then for <
linux/pci.h> and again for <linux/platform_driver.h> and .... That's why those are included here, too, to at least use the "one rebuild needed" window for the high-impact follow up changes, and trigger a rebuild only once (unless you happen to hit an inbetween commit while bisecting).
I disagree, it's a different set of files for each. But there could, of course, be some overlap. Maybe the overlaps is so significant it's nearly as same as linux/mod_devicetable.h, I don't know but is that what you're trying to imply?
Quoted 9 lines
Quoted 4 lines
What you can achieve is preventing those "normal"
mod_devicetable.hchanges enforcing rebuilds right after this has been applied, but that is just the rebuilds as status quo would have without this series and no more.This is exactly the goal. I don't get the "just" part of your argument. The point is that a modification to struct
i2c_device_idshould only trigger a rebuild of i2c drivers, but not of pci, platform, spi and all the others, too.
With "just" I meant it's no worse than status quo. If that prolongs one or two kernel versions more to avoid mid-rc cycle merge it doesn't really seem so high cost.
And I understand where you want to end up, and you could end up there using steps as well:
1. add linux/device-id/* + include them from mod_devicetable.h
2. convert stuff to use linux/device-id/* without removing includes from mod_devicetable.h
3. bulk remove linux/device-id/* includes from mod_devicetable.h
2 & 3 are chunkable/iteratable so they don't need to occur for all at once as long as 3 is not split per one linux/device-id/* its rebuild cost isn't that huge compared with the status quo.
Signature · 1 line
i.
Re: [PATCH v3 09/16] platform/x86: x86-android-tablets: Add include defining struct dmi_system_id
Hello Ilpo,
Quoted 55 lines · Ilpo Järvinen
Quoted 41 lines · Uwe Kleine-König (The Capable Hub)
Quoted 40 lines · Ilpo Järvinen
Quoted 39 lines · Uwe Kleine-König (The Capable Hub)
Quoted 37 lines · Ilpo Järvinen
Quoted 18 lines · Uwe Kleine-König (The Capable Hub)
Currently <
linux/i2c.h> includes <linux/mod_devicetable.h> transitively which ensures that structdmi_system_idis defined indrivers/platform/x86/x86-android-tablets/x86-android-tablets.h. However this include in <linux/i2c.h> will be replaced by one fori2c_device_idonly. To ensure thatdmi_system_idis available add the include for that explicitly.Acked-by Danilo Krummrich <[email protected]>Signed-off-by Uwe Kleine-König (The Capable Hub) <[email protected]>--- drivers/platform/x86/x86-android-tablets/x86-android-tablets.h | 1 + 1 file changed, 1 insertion(+)drivers/platform/x86/x86-android-tablets/x86-android-tablets.h +0
-0drivers/platform/x86/x86-android-tablets/x86-android-tablets.h line 19
Quoted 7 lines
drivers/platform/x86/x86-android-tablets/x86-android-tablets.h +1
-0@@ -13,6 +13,7 @@#include <linux/gpio/consumer.h> #include <linux/i2c.h> #include <linux/irqdomain_defs.h> +#include <linux/device-id/dmi.h> #include <linux/spi/spi.h> struct gpio_desc ;Indirect include patchs are never a good idea as it always makes header reorganizations minefield. So for this change,
Acked-by Ilpo Järvinen <[email protected]>When it comes to the series, I certainly like the direction it goes very much (never have been fan of
mod_devicetable.h) but I'd have preferred stepwise approach over trying to introduce it to some mid-rc.Quoted 12 lines
Quoted 4 lines
Quoted 2 lines
The hurdle here is that at least the header part isn't easily automateable.
Patch 1?
No, patch 15.
Quoted 5 lines
Quoted 5 lines
(Well it is, but the script that I have now to check all
.c files already takes longer than an hour to run. I guess it's not as optimal as it could, but still.) And so getting this ready for inclusion in next and keeping it up to date until the merge window opens is a tough job.
Quoted 4 lines
It looks to me more a problem with the chosen approach where you wanted to get it all quickly done in a single all-reaching series (which IMO would have been fine right after -rc1 but mid-rc cycle, I'm not so positive about it).
In my book we're still in the "right after -rc1" window. The patch set was mostly ready at -rc1 (it just grew a patch to fix a build failure on parisc and I added review tags) and assuming Linus doesn't oppose to my timing it should go in before -rc2.
And yes, I admit to want it done, but that's not part of my justification to get it in after -rc1.
Quoted 27 lines
Quoted 27 lines
Quoted 10 lines
Quoted 6 lines
The further downside is that each modification to one of the highly used headers is expensive (in rebuild time) when these are merged one after another (or when bisecting). So getting these changes in in one batch is beneficial.
So while I agree with your preference, I don't think it's feasible.
While I understand keeping it up-to-date must be a pain, I'm not entirely convinced by the rebuild time argument as it has been the status quo so far too for anything touching
mod_devicetable.h.Yes. I don't know about others, but big rebuilds annoy me regularily. And with another quest that involves touching most struct
*_device_idthis really gets a pain. And just because "we" endured something in the past, doesn't mean we shouldn't improve.Quoted 3 lines
If one commit would move all linux/device-id/* AND ADD them all into
mod_devicetable.has includes, that's just one rebuild more (and one rebuild will occur anyway whichever way you architect this).Yes, one rebuild isn't possible to prevent. You're talking about patch #1, right?
Quoted 3 lines
Only if includes would be then removed one-by-one from
mod_devicetable.h(e.g. per subsystem basis), I can see it causing n rebuilds (+conflicts), but they could be removed in bulk as well.
Quoted 5 lines
Quoted 1 line
Removing those from
mod_devicetable.hisn't part of the plan.It isn't because you're not doing this in steps so you didn't put them in there at all (which would have been fine at any time and only enforces one rebuild comparable to any other
linux/mod_devicetable.hedit).
<linux/mod_devicetable.h> only consists of #includes of the new files (well, plus struct cpu_feature). That's patch #1 and it enforces a rebuild. So either "you didn't put them in there at all" is wrong or I misunderstand you.
Quoted 8 lines
Quoted 4 lines
But
replacing#include <linux/mod_devicetable.h>by#include <linux/device-id/of.h>in <linux/of.h> triggers again many rebuilds when done separately.But this is not because you touch
linux/mod_devicetable.hbutlinux/of.h. It certainly should cause rebuild of all the code depending onlinux/of.hbut I assume that is much less than whatlinux/mod_devicetable.hcauses.
It's a subset, yes. In an ARCH=arm64 allmodconfig build of -rc1 + this patch series I have:
# number of object files: $ find -name \*.o.cmd -not -name \*mod.o.cmd | wc -l 28590
# these are the old users of <linux/mod_devicetable.h>: $ find -name \*.o.cmd -not -name \*mod.o.cmd | xargs grep -l /device-id/ | wc -l 23583
$ find -name \*.o.cmd -not -name \*mod.o.cmd | xargs grep -l linux/of.h | wc -l 12302
$ find -name \*.o.cmd -not -name \*mod.o.cmd | xargs grep -l linux/platform_device.h | wc -l 9255
$ find -name \*.o.cmd -not -name \*mod.o.cmd | xargs grep -l linux/pci.h | wc -l 7747
$ find -name \*.o.cmd -not -name \*mod.o.cmd | xargs grep -l linux/acpi.h | wc -l 7233
$ find -name \*.o.cmd -not -name \*mod.o.cmd | xargs grep -l linux/i2c.h | wc -l 5373
so it's a considerable subset. For x86_64 the numbers are similar:
29655 /device-id/: 24800 linux/of.h: 12602 linux/platform_device.h: 9344 linux/pci.h: 8605 linux/acpi.h: 7875 linux/i2c.h: 5758
.
Quoted 10 lines
Quoted 5 lines
And then for <
linux/pci.h> and again for <linux/platform_driver.h> and .... That's why those are included here, too, to at least use the "one rebuild needed" window for the high-impact follow up changes, and trigger a rebuild only once (unless you happen to hit an inbetween commit while bisecting).I disagree, it's a different set of files for each. But there could, of course, be some overlap. Maybe the overlaps is so significant it's nearly as same as
linux/mod_devicetable.h, I don't know but is that what you're trying to imply?
Yes, these are all headers with many users. So modifying them in bulk triggers less rebuilds than doing the modifications in separate series that go in via separate trees.
Quoted 10 lines
Quoted 9 lines
Quoted 4 lines
What you can achieve is preventing those "normal"
mod_devicetable.hchanges enforcing rebuilds right after this has been applied, but that is just the rebuilds as status quo would have without this series and no more.This is exactly the goal. I don't get the "just" part of your argument. The point is that a modification to struct
i2c_device_idshould only trigger a rebuild of i2c drivers, but not of pci, platform, spi and all the others, too.
Quoted 8 lines
With "just" I meant it's no worse than status quo. If that prolongs one or two kernel versions more to avoid mid-rc cycle merge it doesn't really seem so high cost.
And I understand where you want to end up, and you could end up there using steps as well:
1. add linux/device-id/* + include them from
mod_devicetable.h
Done, that's patch #1.
Quoted 2 lines
2. convert stuff to use linux/device-id/* without removing includes from
mod_devicetable.h
patch #15 and #16 are in that category, it's not complete yet, but I catched the high-impact usages. Again on -rc1 + this patch set there are 1921 .o files left that make use of linux/mod_devicetable.h. Roughly half of them via <linux/mdio.h>:
...
49 drivers/net/wireless/intel/iwlwifi/iwl-config.h
179 include/linux/mmc/card.h
188 include/sound/soc-acpi.h
231 include/linux/hid.h
925 include/linux/mdio.hIn retrospect it would have been great to tackle <linux/mdio.h> as part of this series, too, but I won't modify it for that any more now. I'll address that for the next merge window.
Quoted 1 line
3. bulk remove linux/device-id/* includes from
mod_devicetable.h
This isn't done yet, in the end I want to remove that header, but that is somehow "bulk remove linux/device-id/*". And that indeed is planned to be done later. Each patch of type 2 reduces the impact of that change, so postponing doesn't hurt a lot.
Quoted 3 lines
2 & 3 are chunkable/iteratable so they don't need to occur for all at once as long as 3 is not split per one linux/device-id/* its rebuild cost isn't that huge compared with the status quo.
Each patch of type 2 is potentially expensive. Less than modifying <linux/mod_devicetable.h> directly, and depending on which stuff it touched the impact is high or not. For a .c file it's low, for the above mentioned headers it's high.
So the justification to get the whole series in in one go is for the high impact headers that they should be near (in git history) to patch #1 to reduce rebuilds and for .c files that the automation that created the changes is reliable and only breaks in corner cases (like a driver using of ## _device_id which my script won't identify as a usage of of_device_id). And if you say the justification for the .c files (i.e. patch #16) is weak, I agree and we can postpone that. But please let's keep #1 and #15 (and thus also #2 - #14) together.
Maybe the relevant difference between us, that makes us judge the circumstances differently, is that I often do build tests on my laptop and at Intel you might have a beefy server to do that?!
Best regards
Uwe
Ilpo Järvinen
maintainerRe: [PATCH v3 09/16] platform/x86: x86-android-tablets: Add include defining struct dmi_system_id
Quoted 98 lines · Uwe Kleine-König (The Capable Hub)
Quoted 55 lines · Ilpo Järvinen
Quoted 41 lines · Uwe Kleine-König (The Capable Hub)
Quoted 40 lines · Ilpo Järvinen
Quoted 39 lines · Uwe Kleine-König (The Capable Hub)
Quoted 37 lines · Ilpo Järvinen
Quoted 18 lines · Uwe Kleine-König (The Capable Hub)
Currently <
linux/i2c.h> includes <linux/mod_devicetable.h> transitively which ensures that structdmi_system_idis defined indrivers/platform/x86/x86-android-tablets/x86-android-tablets.h. However this include in <linux/i2c.h> will be replaced by one fori2c_device_idonly. To ensure thatdmi_system_idis available add the include for that explicitly.Acked-by Danilo Krummrich <[email protected]>Signed-off-by Uwe Kleine-König (The Capable Hub) <[email protected]>--- drivers/platform/x86/x86-android-tablets/x86-android-tablets.h | 1 + 1 file changed, 1 insertion(+)drivers/platform/x86/x86-android-tablets/x86-android-tablets.h +0
-0drivers/platform/x86/x86-android-tablets/x86-android-tablets.h line 19
Quoted 7 lines
drivers/platform/x86/x86-android-tablets/x86-android-tablets.h +1
-0@@ -13,6 +13,7 @@#include <linux/gpio/consumer.h> #include <linux/i2c.h> #include <linux/irqdomain_defs.h> +#include <linux/device-id/dmi.h> #include <linux/spi/spi.h> struct gpio_desc ;Indirect include patchs are never a good idea as it always makes header reorganizations minefield. So for this change,
Acked-by Ilpo Järvinen <[email protected]>When it comes to the series, I certainly like the direction it goes very much (never have been fan of
mod_devicetable.h) but I'd have preferred stepwise approach over trying to introduce it to some mid-rc.Quoted 12 lines
Quoted 4 lines
Quoted 2 lines
The hurdle here is that at least the header part isn't easily automateable.
Patch 1?
No, patch 15.
Quoted 5 lines
Quoted 5 lines
(Well it is, but the script that I have now to check all
.c files already takes longer than an hour to run. I guess it's not as optimal as it could, but still.) And so getting this ready for inclusion in next and keeping it up to date until the merge window opens is a tough job.Quoted 4 lines
It looks to me more a problem with the chosen approach where you wanted to get it all quickly done in a single all-reaching series (which IMO would have been fine right after -rc1 but mid-rc cycle, I'm not so positive about it).
In my book we're still in the "right after -rc1" window. The patch set was mostly ready at -rc1 (it just grew a patch to fix a build failure on parisc and I added review tags) and assuming Linus doesn't oppose to my timing it should go in before -rc2.
And yes, I admit to want it done, but that's not part of my justification to get it in after -rc1.
Quoted 29 lines
Quoted 28 lines
Quoted 10 lines
Quoted 6 lines
The further downside is that each modification to one of the highly used headers is expensive (in rebuild time) when these are merged one after another (or when bisecting). So getting these changes in in one batch is beneficial.
So while I agree with your preference, I don't think it's feasible.
While I understand keeping it up-to-date must be a pain, I'm not entirely convinced by the rebuild time argument as it has been the status quo so far too for anything touching
mod_devicetable.h.Yes. I don't know about others, but big rebuilds annoy me regularily. And with another quest that involves touching most struct
*_device_idthis really gets a pain. And just because "we" endured something in the past, doesn't mean we shouldn't improve.Quoted 3 lines
If one commit would move all linux/device-id/* AND ADD them all into
mod_devicetable.has includes, that's just one rebuild more (and one rebuild will occur anyway whichever way you architect this).Yes, one rebuild isn't possible to prevent. You're talking about patch #1, right?
Quoted 3 lines
Only if includes would be then removed one-by-one from
mod_devicetable.h(e.g. per subsystem basis), I can see it causing n rebuilds (+conflicts), but they could be removed in bulk as well.Removing those from
mod_devicetable.hisn't part of the plan.
Quoted 8 lines
Quoted 3 lines
It isn't because you're not doing this in steps so you didn't put them in there at all (which would have been fine at any time and only enforces one rebuild comparable to any other
linux/mod_devicetable.hedit).<
linux/mod_devicetable.h> only consists of #includes of the new files (well, plus structcpu_feature). That's patch #1 and it enforces a rebuild. So either "you didn't put them in there at all" is wrong or I misunderstand you.
Yes, I was wrong, sorry about that.
I looked at patch 1's diffstat and thought it cannot be adding those headers with only two +, totally disregarding the scale. And they were so much down in the in diff I didn't see them there either because I didn't look that far.
Most of my worry was related to that misunderstanding because it would meant trouble for subsystem maintainer if adding linux/mod_devicetable.h would have been problems during merges.
I suppose it doesn't matter much then to me if it's done mid-cycle.
Signature · 1 line
i.
Quoted 134 lines
Quoted 8 lines
Quoted 4 lines
But
replacing#include <linux/mod_devicetable.h>by#include <linux/device-id/of.h>in <linux/of.h> triggers again many rebuilds when done separately.But this is not because you touch
linux/mod_devicetable.hbutlinux/of.h. It certainly should cause rebuild of all the code depending onlinux/of.hbut I assume that is much less than whatlinux/mod_devicetable.hcauses.It's a subset, yes. In an ARCH=arm64 allmodconfig build of -rc1 + this patch series I have:
# number of object files: $ find -name \*.o.cmd -not -name \*mod.o.cmd | wc -l 28590# these are the old users of <linux/mod_devicetable.h>: $ find -name \*.o.cmd -not -name \*mod.o.cmd | xargs grep -l /device-id/ | wc -l 23583$ find -name \*.o.cmd -not -name \*mod.o.cmd | xargs grep -l linux/of.h | wc -l 12302$ find -name \*.o.cmd -not -name \*mod.o.cmd | xargs grep -l linux/platform_device.h | wc -l 9255$ find -name \*.o.cmd -not -name \*mod.o.cmd | xargs grep -l linux/pci.h | wc -l 7747$ find -name \*.o.cmd -not -name \*mod.o.cmd | xargs grep -l linux/acpi.h | wc -l 7233$ find -name \*.o.cmd -not -name \*mod.o.cmd | xargs grep -l linux/i2c.h | wc -l 5373so it's a considerable subset. For
x86_64the numbers are similar:29655 /device-id/: 24800 linux/of.h: 12602 linux/platform_device.h: 9344 linux/pci.h: 8605 linux/acpi.h: 7875 linux/i2c.h: 5758.
Quoted 10 lines
Quoted 5 lines
And then for <
linux/pci.h> and again for <linux/platform_driver.h> and .... That's why those are included here, too, to at least use the "one rebuild needed" window for the high-impact follow up changes, and trigger a rebuild only once (unless you happen to hit an inbetween commit while bisecting).I disagree, it's a different set of files for each. But there could, of course, be some overlap. Maybe the overlaps is so significant it's nearly as same as
linux/mod_devicetable.h, I don't know but is that what you're trying to imply?Yes, these are all headers with many users. So modifying them in bulk triggers less rebuilds than doing the modifications in separate series that go in via separate trees.
Quoted 10 lines
Quoted 9 lines
Quoted 4 lines
What you can achieve is preventing those "normal"
mod_devicetable.hchanges enforcing rebuilds right after this has been applied, but that is just the rebuilds as status quo would have without this series and no more.This is exactly the goal. I don't get the "just" part of your argument. The point is that a modification to struct
i2c_device_idshould only trigger a rebuild of i2c drivers, but not of pci, platform, spi and all the others, too.Quoted 8 lines
With "just" I meant it's no worse than status quo. If that prolongs one or two kernel versions more to avoid mid-rc cycle merge it doesn't really seem so high cost.
And I understand where you want to end up, and you could end up there using steps as well:
1. add linux/device-id/* + include them from
mod_devicetable.hDone, that's patch #1.
Quoted 2 lines
2. convert stuff to use linux/device-id/* without removing includes from
mod_devicetable.hpatch #15 and #16 are in that category, it's not complete yet, but I catched the high-impact usages. Again on -rc1 + this patch set there are 1921 .o files left that make use of
linux/mod_devicetable.h. Roughly half of them via <linux/mdio.h>:... 49 drivers/net/wireless/intel/iwlwifi/iwl-config.h 179 include/linux/mmc/card.h 188 include/sound/soc-acpi.h 231 include/linux/hid.h 925 include/linux/mdio.hIn retrospect it would have been great to tackle <
linux/mdio.h> as part of this series, too, but I won't modify it for that any more now. I'll address that for the next merge window.Quoted 1 line
3. bulk remove linux/device-id/* includes from
mod_devicetable.hThis isn't done yet, in the end I want to remove that header, but that is somehow "bulk remove linux/device-id/*". And that indeed is planned to be done later. Each patch of type 2 reduces the impact of that change, so postponing doesn't hurt a lot.
Quoted 3 lines
2 & 3 are chunkable/iteratable so they don't need to occur for all at once as long as 3 is not split per one linux/device-id/* its rebuild cost isn't that huge compared with the status quo.
Each patch of type 2 is potentially expensive. Less than modifying <
linux/mod_devicetable.h> directly, and depending on which stuff it touched the impact is high or not. For a .c file it's low, for the above mentioned headers it's high.So the justification to get the whole series in in one go is for the high impact headers that they should be near (in git history) to patch #1 to reduce rebuilds and for .c files that the automation that created the changes is reliable and only breaks in corner cases (like a driver using
of ## _device_idwhich my script won't identify as a usage ofof_device_id). And if you say the justification for the .c files (i.e. patch #16) is weak, I agree and we can postpone that. But please let's keep #1 and #15 (and thus also #2 - #14) together.Maybe the relevant difference between us, that makes us judge the circumstances differently, is that I often do build tests on my laptop and at Intel you might have a beefy server to do that?!
Best regards
Uwe
PATCH v3 10/16 platform/x86: int3472: Add include defining struct dmi_system_id
In reply to Uwe Kleine-König (The Capable Hub)Currently <linux/mod_devicetable.h> is included transitively in int3472.h via
<linux/clk-provider.h> -> <linux/of.h> -> <linux/mod_devicetable.h>
However these includes will be tightend such that only the bits relevant for of will be provided by <linux/of.h>. To ensure that dmi_system_id stays around, include the respective header explicitly.
--- include/linux/platform_data/x86/int3472.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
include/linux/platform_data/x86/int3472.h +1 -1
@@ -13,6 +13,7 @@#include <linux/leds.h> #include <linux/regulator/driver.h> #include <linux/regulator/machine.h> +#include <linux/device-id/dmi.h> #include <linux/types.h> /* FIXME drop this once the I2C_DEV_NAME_FORMAT macro has been added to include/linux/i2c.h */
@@ -72,7 +73,6 @@ container_of(clk, struct int3472_discrete_device, clock)struct acpi_device ; -struct dmi_system_id ;struct i2c_client ;struct platform_device ;
Signature · 1 line
2.47.3
Re: [PATCH v3 10/16] platform/x86: int3472: Add include defining struct dmi_system_id
Quoted 30 lines · Uwe Kleine-König (The Capable Hub)
Currently <
linux/mod_devicetable.h> is included transitively inint3472.hvia<linux/clk-provider.h> -> <linux/of.h> -> <linux/mod_devicetable.h>However these includes will be tightend such that only the bits relevant for of will be provided by <
linux/of.h>. To ensure thatdmi_system_idstays around, include the respective header explicitly.Acked-by Danilo Krummrich <[email protected]>Signed-off-by Uwe Kleine-König (The Capable Hub) <[email protected]>--- include/linux/platform_data/x86/int3472.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)include/linux/platform_data/x86/int3472.h +1
-0@@ -13,6 +13,7 @@#include <linux/leds.h> #include <linux/regulator/driver.h> #include <linux/regulator/machine.h> +#include <linux/device-id/dmi.h> #include <linux/types.h> /* FIXME drop this once the I2C_DEV_NAME_FORMAT macro has been added to include/linux/i2c.h */
include/linux/platform_data/x86/int3472.h line 75
Quoted 4 lines
include/linux/platform_data/x86/int3472.h +0
-1@@ -72,7 +73,6 @@ container_of(clk, struct int3472_discrete_device, clock)struct acpi_device ; -struct dmi_system_id ;
So the forward declaration was actually snakeoil and the real struct was always required for the extern (it just came silently in through other includes without anyone noticing). I had to check myself what happens without this patch because your changelog didn't mention it.
Signature · 1 line
i.
PATCH v3 11/16 usb: dwc2: Add include defining struct pci_device_id
In reply to Uwe Kleine-König (The Capable Hub)Up to now <linux/acpi.h> includes <linux/mod_devicetable.h> that provides struct pci_device_id. However <linux/mod_devicetable.h> was split into per bus headers and <linux/acpi.h> will only include the acpi related one (and similar for other bus headers).
As struct pci_device_id is used in drivers/usb/dwc2/core.h, add an include to ensure it's defined also after the includes in <linux/acpi.h> are tightened.
--- drivers/usb/dwc2/core.h | 1 + 1 file changed, 1 insertion(+)
drivers/usb/dwc2/core.h +1 -0
@@ -9,6 +9,7 @@#define __DWC2_CORE_H__#include <linux/acpi.h> +#include <linux/device-id/pci.h> #include <linux/phy/phy.h> #include <linux/regulator/consumer.h> #include <linux/usb/gadget.h>
Signature · 1 line
2.47.3
PATCH v3 12/16 ALSA: hda/core: Add include defining struct hda_device_id
In reply to Uwe Kleine-König (The Capable Hub)Traditionally all *_device_id were defined in a single header <linux/mod_devicetable.h>. This was split now with the objective that only the relevant bits are included. So including <linux/pci.h> won't be enough to get a definition of (the unrelated to pci) struct hda_device_id.
Add an explicit include for the header defining struct hda_device_id to keep working when <linux/pci.h> stops providing this defintion.
--- include/sound/hdaudio.h | 1 + 1 file changed, 1 insertion(+)
include/sound/hdaudio.h +1 -0
@@ -11,6 +11,7 @@#include <linux/io.h> #include <linux/io-64-nonatomic-lo-hi.h> #include <linux/iopoll.h> +#include <linux/device-id/hda.h> #include <linux/pci.h> #include <linux/pm_runtime.h> #include <linux/timecounter.h>
Signature · 1 line
2.47.3
Re: [PATCH v3 12/16] ALSA: hda/core: Add include defining struct hda_device_id
Quoted 7 lines · Uwe Kleine-König (The Capable Hub)
Traditionally all
*_device_idwere defined in a single header <linux/mod_devicetable.h>. This was split now with the objective that only the relevant bits are included. So including <linux/pci.h> won't be enough to get a definition of (the unrelated to pci) structhda_device_id.
Quoted 5 lines
Add an explicit include for the header defining struct
hda_device_idto keep working when <linux/pci.h> stops providing this defintion.Acked-by Danilo Krummrich <[email protected]>Signed-off-by Uwe Kleine-König (The Capable Hub) <[email protected]>
I sent wrongly to v2, so again:
thanks,
Takashi
Quoted 19 lines
--- include/sound/hdaudio.h | 1 + 1 file changed, 1 insertion(+)include/sound/hdaudio.h +1
-0@@ -11,6 +11,7 @@#include <linux/io.h> #include <linux/io-64-nonatomic-lo-hi.h> #include <linux/iopoll.h> +#include <linux/device-id/hda.h> #include <linux/pci.h> #include <linux/pm_runtime.h> #include <linux/timecounter.h> Signature · 1 line
2.47.3
Re: [PATCH v3 12/16] ALSA: hda/core: Add include defining struct hda_device_id
Quoted 12 lines · Takashi Iwai
Quoted 10 lines · Uwe Kleine-König (The Capable Hub)
Traditionally all
*_device_idwere defined in a single header <linux/mod_devicetable.h>. This was split now with the objective that only the relevant bits are included. So including <linux/pci.h> won't be enough to get a definition of (the unrelated to pci) structhda_device_id.Add an explicit include for the header defining struct
hda_device_idto keep working when <linux/pci.h> stops providing this defintion.
Quoted 6 lines
Quoted 2 lines
Acked-by Danilo Krummrich <[email protected]>Signed-off-by Uwe Kleine-König (The Capable Hub) <[email protected]>I sent wrongly to v2, so again:
Reviewed-by Takashi Iwai <[email protected]>
No need to resend it for v4, I'll apply it there, the patch didn't change :-D
Best regards
Uwe
PATCH v3 13/16 LoongArch: KVM: Add include defining struct cpu_feature
In reply to Uwe Kleine-König (The Capable Hub)Traditionally <linux/mod_devicetable.h> was a header defining a plethora of structs, among them struct cpu_features. This was split now with the objective that only the relevant bits are included.
Currently <linux/mod_devicetable.h> is transitively included in arch/loongarch/kvm/main.c via:
arch/loongarch/kvm/main.c -> <linux/kvm_host.h> -> <linux/entry-virt.h> -> <linux/resume_user_mode.h> -> <linux/memcontrol.h> -> <linux/cgroup.h> -> <linux/kernel_stat.h> -> <linux/interrupt.h> -> <linux/hardirq> -> <asm/hardirq.h> -> <linux/irq.h> -> <asm/irq.h> -> <linux/irqdomain.h> -> <linux/of.h> -> <linux/mod_devicetable.h>
To keep struct cpu_features available once <linux/of.h> stops including <linux/mod_devicetable.h>, include it here explicitly.
--- arch/loongarch/kvm/main.c | 1 + 1 file changed, 1 insertion(+)
arch/loongarch/kvm/main.c +1 -0
@@ -5,6 +5,7 @@#include <linux/err.h> #include <linux/module.h> +#include <linux/mod_devicetable.h> /* for struct cpu_feature */ #include <linux/kvm_host.h> #include <asm/cacheflush.h> #include <asm/cpufeature.h>
Signature · 1 line
2.47.3
[email protected]
AI reviewRe: [PATCH v3 13/16] LoongArch: KVM: Add include defining struct cpu_feature
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
Pre-existing issues:
- [High] Incomplete error unwinding in LoongArch KVM initialization leads to memory leaks and dangling pointers, risking Use-After-Free crashes. --
commit 602d2e1391a7bf96f3c1245862be546acdc24faa
Author: Uwe Kleine-König (The Capable Hub) <[email protected]>
LoongArch: KVM: Add include defining struct cpu_feature
This commit explicitly includes linux/mod_devicetable.h in arch/loongarch/kvm/main.c. This ensures that struct cpu_feature remains available as header dependencies change.
arch/loongarch/kvm/main.c line 11
Quoted 12 lines
arch/loongarch/kvm/main.c +1
-0@@ -5,6 +5,7 @@#include <linux/err.h> #include <linux/module.h> +#include <linux/mod_devicetable.h> /* for struct cpu_feature */ #include <linux/kvm_host.h> #include <asm/cacheflush.h> #include <asm/cpufeature.h>
[Severity: High]
This isn't a bug introduced by this patch, but I noticed a pre-existing issue regarding incomplete error unwinding during module initialization in this file.
If kvm_loongarch_env_init() or kvm_init() fails, it appears we return the error directly without unwinding previous initialization steps:
arch/loongarch/kvm/main.c:kvm_loongarch_env_init() {
...
kvm_register_perf_callbacks();
/* Register LoongArch IPI interrupt controller interface. */
ret = kvm_loongarch_register_ipi_device();
if (ret)
return ret;
...
}and similarly in kvm_loongarch_init():
arch/loongarch/kvm/main.c:kvm_loongarch_init() {
...
r = kvm_loongarch_env_init();
if (r)
return r;
return kvm_init(sizeof(struct kvm_vcpu), 0, THIS_MODULE);
}If module loading fails here, does this leave dangling pointers since we don't call kvm_unregister_perf_callbacks() or free vmcs and kvm_loongarch_ops?
Could this lead to a use-after-free crash if the perf subsystem retains a pointer to kvm_guest_cbs after the kvm module memory is freed?
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=13
Re: [PATCH v3 13/16] LoongArch: KVM: Add include defining struct cpu_feature
Hello,
Quoted 4 lines · On Sun, Jun 28, 2026 at 10:15:38PM +0000, [email protected] wrote:
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
Pre-existing issues:
- [High] Incomplete error unwinding in LoongArch KVM initialization leads to memory leaks and dangling pointers, risking Use-After-Free crashes.
This is a pre-existing issue that is out-of-scope for this series. So I'll not address this issue.
Best regards
Uwe
Re: [PATCH v3 13/16] LoongArch: KVM: Add include defining struct cpu_feature
In reply to Uwe Kleine-König (The Capable Hub)Quoted 38 lines · Uwe Kleine-König (The Capable Hub)
Traditionally <
linux/mod_devicetable.h> was a header defining a plethora of structs, among them structcpu_features. This was split now with the objective that only the relevant bits are included.Currently <
linux/mod_devicetable.h> is transitively included inarch/loongarch/kvm/main.cvia:arch/loongarch/kvm/main.c -> <linux/kvm_host.h> -> <linux/entry-virt.h> -> <linux/resume_user_mode.h> -> <linux/memcontrol.h> -> <linux/cgroup.h> -> <linux/kernel_stat.h> -> <linux/interrupt.h> -> <linux/hardirq> -> <asm/hardirq.h> -> <linux/irq.h> -> <asm/irq.h> -> <linux/irqdomain.h> -> <linux/of.h> -> <linux/mod_devicetable.h>To keep struct
cpu_featuresavailable once <linux/of.h> stops including <linux/mod_devicetable.h>, include it here explicitly.Acked-by Danilo Krummrich <[email protected]>Signed-off-by Uwe Kleine-König (The Capable Hub) <[email protected]>--- arch/loongarch/kvm/main.c | 1 + 1 file changed, 1 insertion(+)arch/loongarch/kvm/main.c +0
-0
arch/loongarch/kvm/main.c line 11
Quoted 7 lines
arch/loongarch/kvm/main.c +1
-0@@ -5,6 +5,7 @@#include <linux/err.h> #include <linux/module.h> +#include <linux/mod_devicetable.h> /* for struct cpu_feature */ #include <linux/kvm_host.h> #include <asm/cacheflush.h> #include <asm/cpufeature.h>
PATCH v3 14/16 media: em28xx: Add include for struct usb_device_id
In reply to Uwe Kleine-König (The Capable Hub)Traditionally <linux/mod_devicetable.h> was a header defining a plethora of structs, among them struct usb_device_id. This was split now with the objective that only the relevant bits are included.
Currently <linux/mod_devicetable.h> is transitively included in drivers/media/usb/em28xx/em28xx.h via:
drivers/media/usb/em28xx/em28xx.h -> <linux/i2c.h> -> <linux/acpi.h> -> <linux/device.h> -> <linux/device/driver.h> -> <linux/mod_devicetable.h
To keep struct usb_device_id available once <linux/device/driver.h> stops including <linux/mod_devicetable.h>, include it the header providing that struct explictly.
--- drivers/media/usb/em28xx/em28xx.h | 1 + 1 file changed, 1 insertion(+)
drivers/media/usb/em28xx/em28xx.h +1 -0
@@ -23,6 +23,7 @@#include <linux/mutex.h> #include <linux/kref.h> #include <linux/videodev2.h> +#include <linux/device-id/usb.h> #include <media/videobuf2-v4l2.h> #include <media/videobuf2-vmalloc.h>
Signature · 1 line
2.47.3
PATCH v3 15/16 Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (headers)
In reply to Uwe Kleine-König (The Capable Hub)<linux/mod_devicetable.h> is included in a many files:
$ git grep '<linux/mod_devicetable.h>' ef0c9f75a195 | wc -l 1598
; some of them are widely used headers. To stop mixing up different and unrelated driver( type)s let the subsystem headers only use the subset of the recently split <linux/mod_devicetable.h> that are relevant for them.
The fallout (I hope) is addressed in the previous commits that handle sources relying on e.g. <linux/i2c.h> pulling in the full legacy header and thus providing pci_device_id.
--- arch/mips/include/asm/cdmm.h | 2 +- arch/parisc/include/asm/hardware.h | 4 +--- arch/parisc/include/asm/parisc-device.h | 1 + arch/s390/include/asm/ccwdev.h | 2 +- arch/x86/include/asm/cpu_device_id.h | 5 +---- drivers/hid/intel-ish-hid/ishtp/bus.h | 2 +- include/linux/acpi.h | 2 +- include/linux/amba/bus.h | 2 +- include/linux/auxiliary_bus.h | 2 +- include/linux/bcma/bcma.h | 2 +- include/linux/cdx/cdx_bus.h | 2 +- include/linux/dfl.h | 2 +- include/linux/dmi.h | 2 +- include/linux/eisa.h | 2 +- include/linux/firewire.h | 3 +-- include/linux/fsl/mc.h | 2 +- include/linux/hid.h | 2 +- include/linux/hyperv.h | 2 +- include/linux/i2c.h | 2 +- include/linux/i3c/device.h | 2 +- include/linux/input.h | 2 +- include/linux/intel-ish-client-if.h | 2 +- include/linux/ipack.h | 2 +- include/linux/isapnp.h | 2 +- include/linux/mcb.h | 2 +- include/linux/mei_cl_bus.h | 2 +- include/linux/mhi.h | 1 + include/linux/mmc/sdio_func.h | 2 +- include/linux/of.h | 2 +- include/linux/of_platform.h | 2 +- include/linux/pci-epf.h | 2 +- include/linux/pci.h | 2 +- include/linux/phy.h | 2 +- include/linux/platform_data/x86/soc.h | 2 +- include/linux/pnp.h | 2 +- include/linux/raspberrypi/vchiq_bus.h | 2 +- include/linux/rio.h | 2 +- include/linux/rpmsg.h | 2 +- include/linux/serio.h | 2 +- include/linux/slimbus.h | 2 +- include/linux/soc/qcom/apr.h | 2 +- include/linux/soundwire/sdw.h | 2 +- include/linux/spi/spi.h | 4 +++- include/linux/ssb/ssb.h | 2 +- include/linux/surface_aggregator/device.h | 2 +- include/linux/tee_drv.h | 2 +- include/linux/thunderbolt.h | 2 +- include/linux/ulpi/driver.h | 2 +- include/linux/usb.h | 2 +- include/linux/usb/typec_altmode.h | 2 +- include/linux/virtio.h | 2 +- include/linux/wmi.h | 2 +- include/linux/zorro.h | 2 +- include/pcmcia/ds.h | 2 +- include/sound/hda_codec.h | 2 +- 55 files changed, 57 insertions(+), 59 deletions(-)
arch/mips/include/asm/cdmm.h +1 -1
@@ -9,7 +9,7 @@#define __ASM_CDMM_H#include <linux/device.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/mips_cdmm.h> /** * struct mips_cdmm_device - Represents a single device on a CDMM bus.
arch/parisc/include/asm/hardware.h +1 -3
@@ -2,7 +2,7 @@#ifndef _PARISC_HARDWARE_H#define _PARISC_HARDWARE_H -#include <linux/mod_devicetable.h> +#include <linux/device-id/parisc.h> #define HWTYPE_ANY_ID PA_HWTYPE_ANY_ID#define HVERSION_ANY_ID PA_HVERSION_ANY_ID
@@ -95,8 +95,6 @@ struct bc_module {#define HPHW_MC 15#define HPHW_FAULTY 31 -struct parisc_device_id ; -/* hardware.c: */ extern const char *parisc_hardware_description (struct parisc_device_id *id);extern enum cpu_type parisc_get_cpu_type (unsigned long hversion);
arch/parisc/include/asm/parisc-device.h +1 -0
@@ -3,6 +3,7 @@#define _ASM_PARISC_PARISC_DEVICE_H_#include <linux/device.h> +#include <linux/device-id/parisc.h> struct parisc_device {struct resource hpa;/* Hard Physical Address */
arch/s390/include/asm/ccwdev.h +1 -1
@@ -10,7 +10,7 @@#define _S390_CCWDEV_H_#include <linux/device.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/ccw.h> #include <asm/chsc.h> #include <asm/fcx.h> #include <asm/irq.h>
arch/x86/include/asm/cpu_device_id.h +1 -4
@@ -38,11 +38,8 @@/* * Declare drivers belonging to specific x86 CPUs * Similar in spirit to pci_device_id and related PCI functions -* -* The wildcard initializers are in mod_devicetable.h because -* file2alias needs them. Sigh. */ -#include <linux/mod_devicetable.h> +#include <linux/device-id/x86_cpu.h> /* Get the INTEL_FAM* model defines */ #include <asm/intel-family.h> /* And the X86_VENDOR_* ones */
drivers/hid/intel-ish-hid/ishtp/bus.h +1 -1
@@ -8,7 +8,7 @@#define _LINUX_ISHTP_CL_BUS_H#include <linux/device.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/ishtp.h> #include <linux/intel-ish-client-if.h> struct ishtp_cl ;
include/linux/acpi.h +1 -1
@@ -13,7 +13,7 @@#include <linux/ioport.h> /* for struct resource */ #include <linux/resource_ext.h> #include <linux/device.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/acpi.h> #include <linux/property.h> #include <linux/uuid.h> #include <linux/node.h>
include/linux/amba/bus.h +1 -1
@@ -13,7 +13,7 @@#include <linux/clk.h> #include <linux/device.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/amba.h> #include <linux/err.h> #include <linux/resource.h> #include <linux/regulator/consumer.h>
include/linux/auxiliary_bus.h +1 -1
@@ -9,7 +9,7 @@#define _AUXILIARY_BUS_H_#include <linux/device.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/auxiliary.h> /** * DOC: DEVICE_LIFESPAN
include/linux/bcma/bcma.h +1 -1
@@ -3,7 +3,7 @@#define LINUX_BCMA_H_ #include <linux/pci.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/bcma.h> #include <linux/bcma/bcma_driver_arm_c9.h> #include <linux/bcma/bcma_driver_chipcommon.h>
include/linux/cdx/cdx_bus.h +1 -1
@@ -11,7 +11,7 @@#include <linux/device.h> #include <linux/list.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/cdx.h> #include <linux/msi.h> #define MAX_CDX_DEV_RESOURCES 4
include/linux/dfl.h +1 -1
@@ -9,7 +9,7 @@#define __LINUX_DFL_H#include <linux/device.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/dfl.h> /** * enum dfl_id_type - define the DFL FIU types
include/linux/dmi.h +1 -1
@@ -4,7 +4,7 @@#include <linux/list.h> #include <linux/kobject.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/dmi.h> /* enum dmi_field is in mod_devicetable.h */
include/linux/eisa.h +1 -1
@@ -4,7 +4,7 @@#include <linux/ioport.h> #include <linux/device.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/eisa.h> #define EISA_MAX_SLOTS 8
include/linux/firewire.h +1 -2
@@ -14,6 +14,7 @@#include <linux/timer.h> #include <linux/types.h> #include <linux/workqueue.h> +#include <linux/device-id/ieee1394.h> #include <linux/atomic.h> #include <asm/byteorder.h>
@@ -271,8 +272,6 @@ static inline void fw_unit_put(struct fw_unit *unit)#define fw_parent_device (unit) fw_device(unit->device.parent) -struct ieee1394_device_id ; -struct fw_driver {struct device_driver driver;int (*probe)(struct fw_unit *unit,const struct ieee1394_device_id *id);
include/linux/fsl/mc.h +1 -1
@@ -11,7 +11,7 @@#define _FSL_MC_H_#include <linux/device.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/fsl_mc.h> #include <linux/interrupt.h> #include <uapi/linux/fsl_mc.h>
include/linux/hid.h +1 -1
@@ -18,7 +18,7 @@#include <linux/types.h> #include <linux/slab.h> #include <linux/list.h> -#include <linux/mod_devicetable.h> /* hid_device_id */ +#include <linux/device-id/hid.h> #include <linux/timer.h> #include <linux/workqueue.h> #include <linux/input.h>
include/linux/hyperv.h +1 -1
@@ -21,7 +21,7 @@#include <linux/timer.h> #include <linux/completion.h> #include <linux/device.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/hv_vmbus.h> #include <linux/interrupt.h> #include <linux/reciprocal_div.h> #include <hyperv/hvhdk.h>
include/linux/i2c.h +1 -1
@@ -12,7 +12,7 @@#include <linux/acpi.h> /* for acpi_handle */ #include <linux/bits.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/i2c.h> #include <linux/device.h> /* for struct device */ #include <linux/sched.h> /* for completion */ #include <linux/mutex.h>
include/linux/i3c/device.h +1 -1
@@ -12,7 +12,7 @@#include <linux/device.h> #include <linux/i2c.h> #include <linux/kconfig.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/i3c.h> #include <linux/module.h> /**
include/linux/input.h +1 -1
@@ -19,7 +19,7 @@#include <linux/device.h> #include <linux/fs.h> #include <linux/timer.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/input.h> struct input_dev_poller ;
include/linux/intel-ish-client-if.h +1 -1
@@ -9,7 +9,7 @@#define _INTEL_ISH_CLIENT_IF_H_#include <linux/device.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/ishtp.h> struct ishtp_cl_device ;struct ishtp_device ;
include/linux/ipack.h +1 -1
@@ -6,7 +6,7 @@* Author: Samuel Iglesias Gonsalvez <[email protected]> */ -#include <linux/mod_devicetable.h> +#include <linux/device-id/ipack.h> #include <linux/device.h> #include <linux/interrupt.h>
include/linux/isapnp.h +1 -1
@@ -28,7 +28,7 @@*/ #ifdef __KERNEL__ -#include <linux/mod_devicetable.h> +#include <linux/device-id/isapnp.h> #define DEVICE_COUNT_COMPATIBLE 4
include/linux/mcb.h +1 -1
@@ -8,7 +8,7 @@#ifndef _LINUX_MCB_H#define _LINUX_MCB_H -#include <linux/mod_devicetable.h> +#include <linux/device-id/mcb.h> #include <linux/device.h> #include <linux/irqreturn.h>
include/linux/mei_cl_bus.h +1 -1
@@ -7,7 +7,7 @@#include <linux/device.h> #include <linux/uuid.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/mei_cl.h> struct mei_cl_device ;struct mei_device ;
include/linux/mhi.h +1 -0
@@ -14,6 +14,7 @@#include <linux/spinlock.h> #include <linux/wait.h> #include <linux/workqueue.h> +#include <linux/device-id/mhi.h> #define MHI_MAX_OEM_PK_HASH_SEGMENTS 16
include/linux/mmc/sdio_func.h +1 -1
@@ -9,7 +9,7 @@#define LINUX_MMC_SDIO_FUNC_H #include <linux/device.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/sdio.h> #include <linux/mmc/pm.h>
include/linux/of.h +1 -1
@@ -16,7 +16,7 @@#include <linux/cleanup.h> #include <linux/errno.h> #include <linux/kobject.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/of.h> #include <linux/property.h> #include <linux/list.h>
include/linux/of_platform.h +1 -1
@@ -8,7 +8,7 @@#include <linux/types.h> #include <linux/err.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/of.h> struct device ;struct device_node ;
include/linux/pci-epf.h +1 -1
@@ -11,7 +11,7 @@#include <linux/configfs.h> #include <linux/device.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/pci.h> #include <linux/msi.h> #include <linux/pci.h>
include/linux/pci.h +1 -1
@@ -24,7 +24,7 @@#define LINUX_PCI_H #include <linux/args.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/pci.h> #include <linux/types.h> #include <linux/sizes.h>
include/linux/phy.h +1 -1
@@ -23,7 +23,7 @@#include <linux/module.h> #include <linux/timer.h> #include <linux/workqueue.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/mdio.h> #include <linux/u64_stats_sync.h> #include <linux/irqreturn.h> #include <linux/iopoll.h>
include/linux/platform_data/x86/soc.h +1 -1
@@ -12,7 +12,7 @@#if IS_ENABLED (CONFIG_X86 ) -#include <linux/mod_devicetable.h> +#include <linux/device-id/x86_cpu.h> #include <asm/cpu_device_id.h>
include/linux/pnp.h +1 -1
@@ -12,7 +12,7 @@#include <linux/device.h> #include <linux/list.h> #include <linux/errno.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/pnp.h> #include <linux/console.h> #define PNP_NAME_LEN 50
include/linux/raspberrypi/vchiq_bus.h +1 -1
@@ -7,7 +7,7 @@#define _VCHIQ_DEVICE_H#include <linux/device.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/vchiq.h> struct vchiq_drv_mgmt ;
include/linux/rio.h +1 -1
@@ -16,7 +16,7 @@#include <linux/errno.h> #include <linux/device.h> #include <linux/rio_regs.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/rio.h> #ifdef CONFIG_RAPIDIO_DMA_ENGINE #include <linux/dmaengine.h> #endif
include/linux/rpmsg.h +1 -1
@@ -13,7 +13,7 @@#include <linux/types.h> #include <linux/device.h> #include <linux/err.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/rpmsg.h> #include <linux/kref.h> #include <linux/mutex.h> #include <linux/poll.h>
include/linux/serio.h +1 -1
@@ -13,7 +13,7 @@#include <linux/spinlock.h> #include <linux/mutex.h> #include <linux/device.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/serio.h> #include <uapi/linux/serio.h> extern const struct bus_type serio_bus;
include/linux/slimbus.h +1 -1
@@ -8,7 +8,7 @@#include <linux/device.h> #include <linux/module.h> #include <linux/completion.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/slim.h> extern const struct bus_type slimbus_bus;
include/linux/soc/qcom/apr.h +1 -1
@@ -5,7 +5,7 @@#include <linux/spinlock.h> #include <linux/device.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/apr.h> #include <dt-bindings/soc/qcom,apr.h> #include <dt-bindings/soc/qcom,gpr.h>
include/linux/soundwire/sdw.h +1 -1
@@ -13,7 +13,7 @@#include <linux/irqdomain.h> #include <linux/jiffies.h> #include <linux/lockdep_types.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/sdw.h> #include <linux/mutex.h> #include <linux/types.h> #include <sound/sdca.h>
include/linux/spi/spi.h +3 -1
@@ -12,7 +12,9 @@#include <linux/device.h> #include <linux/gpio/consumer.h> #include <linux/kthread.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/acpi.h> +#include <linux/device-id/of.h> +#include <linux/device-id/spi.h> #include <linux/overflow.h> #include <linux/scatterlist.h> #include <linux/slab.h>
include/linux/ssb/ssb.h +1 -1
@@ -8,7 +8,7 @@#include <linux/spinlock.h> #include <linux/pci.h> #include <linux/gpio/driver.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/ssb.h> #include <linux/dma-mapping.h> #include <linux/platform_device.h>
include/linux/surface_aggregator/device.h +1 -1
@@ -14,7 +14,7 @@#define _LINUX_SURFACE_AGGREGATOR_DEVICE_H#include <linux/device.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/ssam.h> #include <linux/property.h> #include <linux/types.h>
include/linux/tee_drv.h +1 -1
@@ -9,7 +9,7 @@#include <linux/device.h> #include <linux/kref.h> #include <linux/list.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/tee_client.h> #include <linux/tee.h> #include <linux/types.h>
include/linux/thunderbolt.h +1 -1
@@ -23,7 +23,7 @@ struct device;#include <linux/idr.h> #include <linux/list.h> #include <linux/mutex.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/tb.h> #include <linux/pci.h> #include <linux/uuid.h> #include <linux/workqueue.h>
include/linux/ulpi/driver.h +1 -1
@@ -2,7 +2,7 @@#ifndef __LINUX_ULPI_DRIVER_H#define __LINUX_ULPI_DRIVER_H -#include <linux/mod_devicetable.h> +#include <linux/device-id/ulpi.h> #include <linux/device.h>
include/linux/usb.h +1 -1
@@ -2,7 +2,7 @@#ifndef __LINUX_USB_H#define __LINUX_USB_H -#include <linux/mod_devicetable.h> +#include <linux/device-id/usb.h> #include <linux/usb/ch9.h> #define USB_MAJOR 180
include/linux/usb/typec_altmode.h +1 -1
@@ -3,7 +3,7 @@#ifndef __USB_TYPEC_ALTMODE_H#define __USB_TYPEC_ALTMODE_H -#include <linux/mod_devicetable.h> +#include <linux/device-id/typec.h> #include <linux/usb/typec.h> #include <linux/device.h>
include/linux/virtio.h +1 -1
@@ -7,7 +7,7 @@#include <linux/scatterlist.h> #include <linux/spinlock.h> #include <linux/device.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/virtio.h> #include <linux/gfp.h> #include <linux/dma-mapping.h> #include <linux/completion.h>
include/linux/wmi.h +1 -1
@@ -11,7 +11,7 @@#include <linux/compiler_attributes.h> #include <linux/device.h> #include <linux/acpi.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/wmi.h> #include <linux/types.h> /**
include/linux/zorro.h +1 -1
@@ -17,7 +17,7 @@#include <linux/device.h> #include <linux/init.h> #include <linux/ioport.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/zorro.h> #include <asm/zorro.h>
include/pcmcia/ds.h +1 -1
@@ -14,7 +14,7 @@#define _LINUX_DS_H#ifdef __KERNEL__ -#include <linux/mod_devicetable.h> +#include <linux/device-id/pcmcia.h> #endif #include <pcmcia/device_id.h>
include/sound/hda_codec.h +1 -1
@@ -9,7 +9,7 @@#define __SOUND_HDA_CODEC_H#include <linux/refcount.h> -#include <linux/mod_devicetable.h> +#include <linux/device-id/hda.h> #include <sound/info.h> #include <sound/control.h> #include <sound/pcm.h>
Signature · 1 line
2.47.3