We have device iterators to find a particular device matching a criteria
for a given bus/class/driver. i.e, {bus,class,driver}_find_device()
APIs. The matching criteria is a function pointer for the APIs. Often the
lookup is based on a generic property of a device (e.g, name, fwnode, of node
pointer or device type) rather than a driver specific information. However, each
driver writes up its own "match" function, spilling the similar match functions
all over the driver subsystems.
This series adds device match helpers by generic device properties of a device.
Using these generic match functions, introduce wrappers to the existing
*_find_device() helpers and converts the existing users to use the new
wrappers.
i.e,
{bus/class/driver}_find_device_by_name()
{bus/class/driver}_find_device_by_fwnode()
{bus/class/driver}_find_device_by_devt()
{bus/class/driver}_find_device_by_acpi_dev()
Also adds a wrapper for finding a platform device by driver, to avoid
spilling the platform_bus internals in the individual drivers. Applies
on 5.3-rc1.
[0] git://linux-arm.org/linux-skp.git driver-cleanup/v3
RFC[1]
https://marc.info/[email protected]
V1 [2]
https://marc.info/[email protected]
V2 [3]
https://marc.info/[email protected]
Changes since v2:
- Merge the device match helper introduction patch with the variants
of the helpers, for better review.
- Use platform_find_device_by_driver for mcde drm driver.
Cc: Alan Tull <[email protected]>
Cc: Alessandro Zummo <[email protected]>
Cc: Alexander Aring <[email protected]>
Cc: Alexander Shishkin <[email protected]>
Cc: Alexandre Belloni <[email protected]>
Cc: Andrew Lunn <[email protected]>
Cc: Arnd Bergmann <[email protected]>
Cc: Bjorn Helgaas <[email protected]>
Cc: Daniel Vetter <[email protected]>
Cc: Dan Murphy <[email protected]>
Cc: David Airlie <[email protected]>
Cc: "David S. Miller" <[email protected]>
Cc: [email protected]
Cc: Doug Ledford <[email protected]>
Cc: [email protected]
Cc: Elie Morisse <[email protected]>
Cc: Eric Anholt <[email protected]>
Cc: Florian Fainelli <[email protected]>
Cc: Frank Rowand <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Cc: Harald Freudenberger <[email protected]>
Cc: Heikki Krogerus <[email protected]>
Cc: Heiko Carstens <[email protected]>
Cc: "Heiko Stübner" <[email protected]>
Cc: Heiko Stuebner <[email protected]>
Cc: Heiner Kallweit <[email protected]>
Cc: Inki Dae <[email protected]>
Cc: Jacek Anaszewski <[email protected]>
Cc: "James E.J. Bottomley" <[email protected]>
Cc: Jason Gunthorpe <[email protected]>
Cc: Jiri Slaby <[email protected]>
Cc: Joe Perches <[email protected]>
Cc: Joerg Roedel <[email protected]>
Cc: Lee Jones <[email protected]>
Cc: Len Brown <[email protected]>
Cc: Liam Girdwood <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: Maarten Lankhorst <[email protected]>
Cc: Mark Brown <[email protected]>
Cc: "Martin K. Petersen" <[email protected]>
Cc: Mathieu Poirier <[email protected]>
Cc: Maxime Coquelin <[email protected]>
Cc: Maxime Ripard <[email protected]>
Cc: Mika Westerberg <[email protected]>
Cc: Moritz Fischer <[email protected]>
Cc: Nehal Shah <[email protected]>
Cc: Oliver Neukum <[email protected]>
Cc: Pavel Machek <[email protected]>
Cc: Peter Oberparleiter <[email protected]>
Cc: Peter Rosin <[email protected]>
Cc: "Rafael J. Wysocki" <[email protected]>
Cc: "Rafael J. Wysocki" <[email protected]>
Cc: Rob Herring <[email protected]>
Cc: Robin Murphy <[email protected]>
Cc: Sandy Huang <[email protected]>
Cc: Sebastian Andrzej Siewior <[email protected]>
Cc: Seung-Woo Kim <[email protected]>
Cc: Shyam Sundar S K <[email protected]>
Cc: Srinivas Kandagatla <[email protected]>
Cc: Stefan Schmidt <[email protected]>
Cc: Takashi Iwai <[email protected]>
Cc: Thor Thayer <[email protected]>
Cc: Tomas Winkler <[email protected]>
Cc: Ulf Hansson <[email protected]>
Cc: Will Deacon <[email protected]>
Cc: Wolfram Sang <[email protected]>
Suzuki K Poulose (7):
drivers: Introduce device lookup variants by name
drivers: Introduce device lookup variants by of_node
drivers: Introduce device lookup variants by fwnode
drivers: Introduce device lookup variants by device type
drivers: Introduce device lookup variants by ACPI_COMPANION device
drivers: Add generic helper to match any device
platform: Add platform_find_device_by_driver() helper
drivers/amba/tegra-ahb.c | 11 +-
drivers/base/bus.c | 24 --
drivers/base/core.c | 39 ++-
drivers/base/devcon.c | 8 +-
drivers/base/platform.c | 14 ++
drivers/fpga/fpga-bridge.c | 8 +-
drivers/fpga/fpga-mgr.c | 8 +-
drivers/gpu/drm/drm_mipi_dsi.c | 7 +-
drivers/gpu/drm/exynos/exynos_drm_drv.c | 9 +-
drivers/gpu/drm/mcde/mcde_drv.c | 3 +-
drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 3 +-
drivers/gpu/drm/vc4/vc4_drv.c | 3 +-
.../hwtracing/coresight/coresight-platform.c | 11 +-
drivers/hwtracing/coresight/coresight-priv.h | 2 -
drivers/hwtracing/coresight/coresight.c | 4 +-
drivers/hwtracing/intel_th/core.c | 10 +-
drivers/hwtracing/stm/core.c | 9 +-
drivers/i2c/busses/i2c-amd-mp2-pci.c | 8 +-
drivers/i2c/i2c-core-acpi.c | 11 +-
drivers/i2c/i2c-core-of.c | 7 +-
drivers/infiniband/hw/hns/hns_roce_hw_v1.c | 8 +-
drivers/iommu/arm-smmu-v3.c | 9 +-
drivers/iommu/arm-smmu.c | 9 +-
drivers/leds/led-class.c | 9 +-
drivers/mfd/altera-sysmgr.c | 14 +-
drivers/misc/mei/main.c | 9 +-
drivers/mux/core.c | 7 +-
.../ethernet/hisilicon/hns/hns_dsaf_misc.c | 8 +-
drivers/net/phy/mdio_bus.c | 9 +-
drivers/nvmem/core.c | 7 +-
drivers/of/of_mdio.c | 8 +-
drivers/of/platform.c | 7 +-
drivers/pci/probe.c | 7 +-
drivers/regulator/of_regulator.c | 7 +-
drivers/rtc/interface.c | 11 +-
drivers/s390/cio/ccwgroup.c | 18 +-
drivers/s390/cio/device.c | 15 +-
drivers/s390/crypto/zcrypt_api.c | 22 +-
drivers/scsi/scsi_proc.c | 9 +-
drivers/spi/spi.c | 28 +--
drivers/tty/tty_io.c | 8 +-
drivers/usb/core/devio.c | 8 +-
drivers/usb/roles/class.c | 16 +-
drivers/usb/typec/class.c | 16 +-
include/linux/device.h | 237 +++++++++++++++++-
include/linux/platform_device.h | 3 +
net/ieee802154/core.c | 7 +-
sound/soc/rockchip/rk3399_gru_sound.c | 9 +-
48 files changed, 341 insertions(+), 383 deletions(-)
--
2.21.0
_______________________________________________
dri-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/dri-devel