Skip to contentSkip to conversation

mod_devicetable.h: Split into per subsystem headers

PATCH Superseded Uwe Kleine-König (The Capable Hub) 10 participants 39 messages Jun 28 – Jul 1 Page 1 of 2

Subsystems (571)

v3 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

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
#1 lore raw

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
new file mode 100644
index 000000000000..94690096f792
@@ -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
new file mode 100644
index 000000000000..ff9406f065dc
@@ -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
new file mode 100644
index 000000000000..cc7b40661f18
@@ -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
new file mode 100644
index 000000000000..50ff3266617c
@@ -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
new file mode 100644
index 000000000000..d542d2ff53e3
@@ -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
new file mode 100644
index 000000000000..3193c7faa0d6
@@ -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
new file mode 100644
index 000000000000..224b2eb33770
@@ -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
new file mode 100644
index 000000000000..5c1bd314b132
@@ -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
new file mode 100644
index 000000000000..a66cce91785e
@@ -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
new file mode 100644
index 000000000000..0e42700cd237
@@ -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
new file mode 100644
index 000000000000..46398b0cbab6
@@ -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
new file mode 100644
index 000000000000..ca1b49561e7b
@@ -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
new file mode 100644
index 000000000000..37f2ef3e931f
@@ -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
new file mode 100644
index 000000000000..507ef349c690
@@ -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
new file mode 100644
index 000000000000..6b1790672bd2
@@ -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
new file mode 100644
index 000000000000..1b949082a191
@@ -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
new file mode 100644
index 000000000000..7a5f1906df77
@@ -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
new file mode 100644
index 000000000000..d731891887d5
@@ -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
new file mode 100644
index 000000000000..5b78462babf5
@@ -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
new file mode 100644
index 000000000000..6ec017cf11e0
@@ -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
new file mode 100644
index 000000000000..3243b4b61ee7
@@ -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
new file mode 100644
index 000000000000..d9d37b686b9c
@@ -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
new file mode 100644
index 000000000000..0ee4ca1f180a
@@ -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
new file mode 100644
index 000000000000..21af3598430c
@@ -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
new file mode 100644
index 000000000000..1d940603b8c6
@@ -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
new file mode 100644
index 000000000000..4193c76f4657
@@ -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
new file mode 100644
index 000000000000..10c7d131d92b
@@ -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
new file mode 100644
index 000000000000..f2b588c94e8a
@@ -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
new file mode 100644
index 000000000000..3f5df8a038d8
@@ -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
new file mode 100644
index 000000000000..411fe79852c8
@@ -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
new file mode 100644
index 000000000000..4d572504d44d
@@ -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
new file mode 100644
index 000000000000..fcbc673c3d3e
@@ -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
new file mode 100644
index 000000000000..03467d5c6b4f
@@ -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
new file mode 100644
index 000000000000..c40733969d0b
@@ -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
new file mode 100644
index 000000000000..d0c971ad1933
@@ -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
new file mode 100644
index 000000000000..b4e9638260f9
@@ -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
new file mode 100644
index 000000000000..48054efb227c
@@ -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
new file mode 100644
index 000000000000..62c9f49cca7a
@@ -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
new file mode 100644
index 000000000000..039c5728f92f
@@ -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
new file mode 100644
index 000000000000..4ba32f64139b
@@ -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
new file mode 100644
index 000000000000..eada9e7087e1
@@ -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
new file mode 100644
index 000000000000..b7cb42f29056
@@ -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
new file mode 100644
index 000000000000..08cc88a99a80
@@ -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
new file mode 100644
index 000000000000..9e4b3ef09afe
@@ -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
new file mode 100644
index 000000000000..a40fa1218c31
@@ -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
new file mode 100644
index 000000000000..9128fb449ad7
@@ -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
new file mode 100644
index 000000000000..90df7b5cce4e
@@ -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
new file mode 100644
index 000000000000..4931ab84d489
@@ -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
new file mode 100644
index 000000000000..d1aeb688eeed
@@ -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
new file mode 100644
index 000000000000..ce1e1794f38c
@@ -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
#2 lore raw

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
index cb0a5a07a3d4..e56a95f53ea9 100644
@@ -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
maintainer Reviewed-by on v3 2/16
#3 lore raw

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.

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
index cb0a5a07a3d4..e56a95f53ea9 100644
@@ -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>
#4 lore raw

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
index 38048e74d10a..768a1334c0a1 100644
@@ -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
maintainer Acked-by on v3 3/16
#5 lore raw

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_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.

Quoted 21 lines
---
 include/linux/device/driver.h | 2 ++
 1 file changed, 2 insertions(+)
include/linux/device/driver.h +2 -1
index 38048e74d10a..768a1334c0a1 100644
@@ -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

#6 lore raw

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
index 26e6a43358e2..8c566f09d04e 100644
@@ -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
#7 lore raw

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
index 75b2b763f1ba..534e6650e2aa 100644
@@ -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
#8 lore raw

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
index 0157e233e430..dfe4532ebe56 100644
@@ -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
maintainer Acked-by on v3 6/16
#9 lore raw

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 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 +0 -0
index 0157e233e430..dfe4532ebe56 100644

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.
#10 lore raw

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
index 17471ef8e092..48f73af88dd7 100644
@@ -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
#11 lore raw

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
index 4797ba88331c..c519da536647 100644
@@ -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
maintainer Reviewed-by on v3 8/16
#12 lore raw

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.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.

This shall go upstream with the rest of the series, right?

#13 lore raw

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.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.

Quoted 6 lines
Quoted 2 lines

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

#14 lore raw

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
index 2498390958ad..c756961ae5fd 100644
@@ -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
maintainer Acked-by on v3 9/16
#15 lore raw

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 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 +0 -0
index 2498390958ad..c756961ae5fd 100644

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.
#16 lore raw

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 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 +0 -0
index 2498390958ad..c756961ae5fd 100644

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,

Quoted 6 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. (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

maintainer
#17 lore raw

Re: [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 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 +0 -0
index 2498390958ad..c756961ae5fd 100644

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,

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.
#18 lore raw

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 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 +0 -0
index 2498390958ad..c756961ae5fd 100644

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,

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.h as 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.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.

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

maintainer
#19 lore raw

Re: [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 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 +0 -0
index 2498390958ad..c756961ae5fd 100644

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.

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_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.h as 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.h isn'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.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.

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.

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.
#20 lore raw

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 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 +0 -0
index 2498390958ad..c756961ae5fd 100644

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.

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_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.h as 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.h isn'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).

<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.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.

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.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.

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.

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.h

In 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

maintainer
#21 lore raw

Re: [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 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 +0 -0
index 2498390958ad..c756961ae5fd 100644

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.

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_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.h as 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.

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.h edit).

<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.

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.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.

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.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.

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.

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.h

In 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

#22 lore raw

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
index 93f1e1fe09b4..a73841dfae27 100644
@@ -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
maintainer Acked-by on v3 10/16
#23 lore raw

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 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 -0
index 93f1e1fe09b4..a73841dfae27 100644
@@ -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.
#24 lore raw

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
index 34127b890b2a..767251aa1aa3 100644
@@ -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
#25 lore raw

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
index f11bfc6b9f42..aa994d6e6d35 100644
@@ -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
Reviewed-by on v3 12/16
#26 lore raw

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_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.

Quoted 5 lines

Add an explicit include for the header defining struct hda_device_id to keep working when <linux/pci.h> stops providing this defintion.

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
index f11bfc6b9f42..aa994d6e6d35 100644
@@ -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
#27 lore raw

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_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.

Quoted 6 lines
Quoted 2 lines

I sent wrongly to v2, so again:

No need to resend it for v4, I'll apply it there, the patch didn't change :-D

Best regards
Uwe

#28 lore raw

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
index f105a86143f5..aa0fb4c90d90 100644
@@ -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
#29 lore raw

Re: [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
index f105a86143f5b..aa0fb4c90d906 100644
@@ -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
#30 lore raw

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

maintainer Reviewed-by on v3 13/16
#31 lore raw

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 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 +0 -0
index f105a86143f5..aa0fb4c90d90 100644

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>
#32 lore raw

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
index 21c912403efc..711f281613f5 100644
@@ -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
#33 lore raw

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
index 81fa99084178..6e787b7565b7 100644
@@ -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
index a005ebc54779..a797c8753f29 100644
@@ -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
index 9e74cef4d774..4731420e55ad 100644
@@ -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
index e3afcece375e..d77f26390c07 100644
@@ -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
index 6be777a06944..c62d8fae52c3 100644
@@ -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
index 53645ac89ee8..fa5e2797f1be 100644
@@ -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
index 10d6c6c11bdf..60ab50cb8930 100644
@@ -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
index 6c54d5c0d21f..80a74cd2da7e 100644
@@ -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
index 4e1ad8ccbcdd..de0ecd0fb05a 100644
@@ -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
index 60b94b944e9f..f02cb3909375 100644
@@ -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
index f54770f110bc..715b026ad95b 100644
@@ -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
index 1f02db0c1897..f28e70652080 100644
@@ -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
index c8700e6a694d..fbb62f7c3111 100644
@@ -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
index cf55630b595b..52a97dc4c85a 100644
@@ -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
index 986d712e4d94..fd35a6570cd8 100644
@@ -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
index 9f671e87c80c..c25f0f7e6dd4 100644
@@ -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
index 47dc0bc89fa4..b240baa95ab5 100644
@@ -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
index 9de2c8d6037a..a2b484679eb4 100644
@@ -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
index 20fd41b51d5c..14ab4d3055af 100644
@@ -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
index 971d53349b6f..0f065b883ee0 100644
@@ -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
index 3022bb730898..76f7aa226202 100644
@@ -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
index 2cd4f65aaa37..a07d952a2b29 100644
@@ -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
index 455f6c2a1903..7edbf9267338 100644
@@ -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
index dba18c95844b..8f5a85ca6c1f 100644
@@ -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
index 4ab2691f51a6..874118765d0f 100644
@@ -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
index 5bdbd9e1d460..d5d29451eabf 100644
@@ -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
index fb3ba639f4f8..4b86ae6f6a82 100644
@@ -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
index 4534bf462aac..5d63a6465b0d 100644
@@ -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
index 20e4f752d5b6..b920aac6b975 100644
@@ -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
index 48f73af88dd7..181c438a9b0a 100644
@@ -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
index 8a6c64a35890..704e1dc8b30a 100644
@@ -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
index ebb5b9d76360..64b308b6e61c 100644
@@ -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
index 199a7aaa341b..fc680901275b 100644
@@ -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
index f981907a5cb0..a6a6b313dfa7 100644
@@ -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
index 23fe3eaf242d..e0c0d17eb7d8 100644
@@ -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
index 9de179b39f85..e52291a3b247 100644
@@ -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
index 2c29f21ba9e5..f42379775ce8 100644
@@ -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
index 2e40eb54155e..0171c490339c 100644
@@ -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
index 69a47674af65..98be7084412c 100644
@@ -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
index a4608d9a9684..ca6f1da4bdf3 100644
@@ -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
index 58fa1df96347..909e84f84e0c 100644
@@ -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
index b484784e2690..79dd44922fbc 100644
@@ -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
index f6ed93eff00b..4c285d3ede1d 100644
@@ -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
index e1fb11e0f12c..7fee9afa9458 100644
@@ -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
index 8cd8c38cf3f3..ed6b271e5a73 100644
@@ -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
index e561a26f537a..f3c5e106d853 100644
@@ -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
index feb1af175cfd..557288c0274b 100644
@@ -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
index a8cb617a3028..c668d9c8d876 100644
@@ -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
index 25a203ac7a7e..1da4ad1610bc 100644
@@ -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
index b90cc5cfff8d..ef21ead551be 100644
@@ -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
index bf089e51970e..93e573c56563 100644
@@ -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
index d723e4b1cafb..defcb624a7e2 100644
@@ -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
index f36c8d39553d..4514c3109deb 100644
@@ -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
index b7a8de88b3c0..8ae92602e12f 100644
@@ -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
index 17945ab5e6e2..b4e327877739 100644
@@ -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