From patchwork Mon Jun 3 15:49:26 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Suzuki K Poulose X-Patchwork-Id: 10974249 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DDC7976 for ; Tue, 4 Jun 2019 07:14:47 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C44362867F for ; Tue, 4 Jun 2019 07:14:47 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B67782873F; Tue, 4 Jun 2019 07:14:47 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 846BC2867F for ; Tue, 4 Jun 2019 07:14:46 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2F72D89612; Tue, 4 Jun 2019 07:14:26 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by gabe.freedesktop.org (Postfix) with ESMTP id C96F58925A for ; Mon, 3 Jun 2019 15:50:58 +0000 (UTC) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 6A76EA78; Mon, 3 Jun 2019 08:50:58 -0700 (PDT) Received: from en101.cambridge.arm.com (en101.cambridge.arm.com [10.1.196.93]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 211743F246; Mon, 3 Jun 2019 08:50:44 -0700 (PDT) From: Suzuki K Poulose To: linux-kernel@vger.kernel.org Subject: [RFC PATCH 00/57] drivers: Consolidate device lookup helpers Date: Mon, 3 Jun 2019 16:49:26 +0100 Message-Id: <1559577023-558-1-git-send-email-suzuki.poulose@arm.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-Mailman-Approved-At: Tue, 04 Jun 2019 07:14:23 +0000 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andrew Lunn , Shyam Sundar S K , rafael@kernel.org, Will Deacon , Ulf Hansson , dri-devel@lists.freedesktop.org, Pavel Machek , Stefan Schmidt , Wolfram Sang , linux-acpi@vger.kernel.org, Doug Ledford , Jiri Slaby , Tomas Winkler , Dan Murphy , gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, Seung-Woo Kim , linux-spi@vger.kernel.org, Joe Perches , linux-wpan@vger.kernel.org, Alexandre Belloni , David Airlie , "Rafael J . Wysocki " , Thierry Reding , Srinivas Kandagatla , linux-i2c@vger.kernel.org, "Rafael J. Wysocki" , Jonathan Hunter , linux-rockchip@lists.infradead.org, Len Brown , Corey Minyard , suzuki.poulose@arm.com, Jacek Anaszewski , Bjorn Helgaas , Mika Westerberg , Mathieu Poirier , Oliver Neukum , Peter Oberparleiter , "David S. Miller" , Maxime Coquelin , Hartmut Knaack , Jonathan Cameron , Heiner Kallweit , Thor Thayer , Heikki Krogerus , Alexander Shishkin , linux-fpga@vger.kernel.org, Heiko Carstens , Elie Morisse , Frank Rowand , linux-rtc@vger.kernel.org, Florian Fainelli , David Kershner , Grygorii Strashko , Arnd Bergmann , "James E.J. Bottomley" , Mark Brown , Harald Freudenberger , Felipe Balbi , "Martin K. Petersen" , Liam Girdwood , Grant Likely , Peter Rosin , Alexander Aring , Sebastian Ott , Maxime Ripard , Sebastian Andrzej Siewior , Andreas Noever , Lee Jones , linux-leds@vger.kernel.org, Russell King , Jason Gunthorpe , Nehal Shah , devicetree@vger.kernel.org, Alan Tull , Michael Jamet , Rob Herring , Alessandro Zummo , Takashi Iwai , Moritz Fischer , Robin Murphy Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP We have helper routines to lookup devices matching a criteria defined by a "match" helper for bus/class/driver. Often the search is based on a generic property of a device, such as of_node, fwnode, device type or device name. In the absense of a common set of match functions, we have drivers writing their own match functions, spilled all over the driver subsystems. This series is an attempt to consolidate the and cleanup the device match functions by providing generic match helpers by device properties listed above. In this attempt, we unify the prototype for the match functions for {bus/driver}_find_device() with that of the class_find_device() and thus further reducing the duplicate functions. The series also adds wrapper functions to lookup the devices by generic attributes, so that people don't miss the generic match functions and continue to write their own. Also, there are a couple of instances where the drivers use "platform_bus_type" directly reusing the "match" function of the bus. This is cleaned by providing a new helper "platform_find_device_by_driver()" to abstract the details away from the callers. Applies on 5.2-rc3 Cc: Alan Tull Cc: Alessandro Zummo Cc: Alexander Aring Cc: Alexander Shishkin Cc: Alexandre Belloni Cc: Andreas Noever Cc: Andrew Lunn Cc: Arnd Bergmann Cc: Bjorn Helgaas Cc: Corey Minyard Cc: Daniel Vetter Cc: Dan Murphy Cc: David Airlie Cc: David Kershner Cc: "David S. Miller" Cc: Doug Ledford Cc: dri-devel@lists.freedesktop.org Cc: Elie Morisse Cc: Eric Anholt Cc: Felipe Balbi Cc: Florian Fainelli Cc: Frank Rowand Cc: Grant Likely Cc: Greg Kroah-Hartman Cc: Grygorii Strashko Cc: Harald Freudenberger Cc: Hartmut Knaack Cc: Heikki Krogerus Cc: Heiko Carstens Cc: "Heiko Stübner" Cc: Heiko Stuebner Cc: Heiner Kallweit Cc: Inki Dae Cc: Jacek Anaszewski Cc: "James E.J. Bottomley" Cc: Jason Gunthorpe Cc: Jiri Slaby Cc: Joe Perches Cc: Joerg Roedel Cc: Jonathan Cameron Cc: Jonathan Hunter Cc: Lee Jones Cc: Len Brown Cc: Maarten Lankhorst Cc: Mark Brown Cc: "Martin K. Petersen" Cc: Mathieu Poirier Cc: Maxime Coquelin Cc: Maxime Ripard Cc: Michael Jamet Cc: Mika Westerberg Cc: Moritz Fischer Cc: Nehal Shah Cc: Oliver Neukum Cc: Pavel Machek Cc: Peter Oberparleiter Cc: Peter Rosin Cc: "Rafael J. Wysocki" Cc: "Rafael J. Wysocki" Cc: Rafael J. Wysocki" Cc: Rob Herring Cc: Robin Murphy Cc: Russell King Cc: Sandy Huang Cc: Sebastian Andrzej Siewior Cc: Sebastian Ott Cc: Seung-Woo Kim Cc: Shyam Sundar S K Cc: Srinivas Kandagatla Cc: Stefan Schmidt Cc: Takashi Iwai Cc: Thierry Reding Cc: Thor Thayer Cc: Tomas Winkler Cc: Ulf Hansson Cc: Will Deacon Cc: Wolfram Sang Cc: devicetree@vger.kernel.org Cc: linux-acpi@vger.kernel.org Cc: linux-fpga@vger.kernel.org Cc: linux-i2c@vger.kernel.org Cc: linux-leds@vger.kernel.org Cc: linux-rockchip@lists.infradead.org Cc: linux-rtc@vger.kernel.org Cc: linux-spi@vger.kernel.org Cc: linux-usb@vger.kernel.org Cc: linux-wpan@vger.kernel.org Suzuki K Poulose (57): drivers: s390/cio: Use driver_for_each_device drivers: ipmi: Drop device reference drivers: coresight: Drop device references found via bus_find_device drivers: Add generic match helper to match the device of_node drm: mipi_dsi: Use bus_find_device_by_of_node() helper drivers: i2c: i2c-core: Use bus_find_device_by_of_node helper drivers: nvmem: Use bus_find_device_by_of_node helper drivers: spi: Use bus_find_device_by_of_node helper drivers: sound: rockchip: rk3399: Use bus_find_device_by_of_node helper drivers: coresight: Use bus_find_device_by_of_node helper of: mdio: Use bus_find_device_by_of_node helper of: platform: Use bus_find_device_by_of_node helper drivers: Add generic helper for matching device by fwnode drivers: devcon: Use bus_find_device_by_fwnode helper net: hisilicon: hnfs:Use bus_find_device_by_fwnode helper net: hns_roce: Use bus_find_device_by_fwnode helper drivers: Add generic match by device type helper drivers: intel_th: Use bus_find_device_by_devt helper drivers: usb: core: Use bus_find_device_by_devt helper platform: Add a helper to find device by driver drivers: Add generic match helper by ACPI_COMPANION device drivers: i2c: Use generic helper to match device by acpi_dev drivers: spi: Use bus_find_device_by_acpi_dev match helper drivers: staging: most-core: Use bus_find_device_by_name drivers: Add generic match by name helper drivers: acpi: Clean up acpi_dev_match_cb drivers: Unify the match prototype for bus_find_device with class_find_device drivers: class: Add variants of class_find_device() drivers: stm: Use class_find_device_by_name() helper drivers: leds: Use class_find_device_by_name() helper drivers: rtc: Use class_find_device_by_name() helper drivers: s390-crypto: Use class_device_find_by_name() helper drivers: usb: Use class_find_device_by_name() helper drivers: ieee802154: Use class_find_device_by_name() helper drivers: core: Reuse generic match by device type helper drivers: mei: Use class_find_device_by_devt match helper drivers: s390: zcrypt: Use class_find_device_by_devt helper drivers: fpga: Use generic helpers to match by of_node drivers: mux: Use class_find_device_by_of_node helper drivers: spi: Use class_find_device_by_of_node helper drivers: net: phy: Use class_find_device_by_of_node helper drivers: regulator: Use class_find_device_by_of_node helper drivers: tty : Use class_find_device_by_of_node helper drivers: usb : Use class_find_device_by_fwnode() helper drivers: driver_find_device: Unify the match function driver: Add variants of driver_find_device() drivers: mfd: Use driver_find_device_by_name helper drivers: s390: cio: Use driver_find_by_name() helper drivers: mfd: altera: Use driver_find_device_by_of_node() helper drivers: iommu: arm-smmu: Use driver_find_device_by_fwnode() helper drivers: Add generic helper to match all devices drivers: tegra: Use driver_find_device_by_of_node() helper drivers: Introduce bus_find_next_device() helper drivers: pci: Use bus_find_next_device() helper drivers: scsi: Use bus_find_next_device() helper drivers: Introduce driver_find_next_device() helper drivers: i2c-amd: Use driver_find_next_device() helper arch/powerpc/platforms/pseries/ibmebus.c | 4 +- drivers/acpi/acpi_lpss.c | 4 +- drivers/acpi/sleep.c | 2 +- drivers/acpi/utils.c | 11 +- drivers/amba/tegra-ahb.c | 11 +- drivers/base/bus.c | 26 +-- drivers/base/core.c | 45 ++++- drivers/base/devcon.c | 8 +- drivers/base/driver.c | 2 +- drivers/base/platform.c | 14 ++ drivers/char/ipmi/ipmi_msghandler.c | 8 +- drivers/char/ipmi/ipmi_si_platform.c | 3 +- drivers/firmware/efi/dev-path-parser.c | 4 +- drivers/fpga/fpga-bridge.c | 8 +- drivers/fpga/fpga-mgr.c | 8 +- drivers/fpga/of-fpga-region.c | 7 +- drivers/gpu/drm/drm_mipi_dsi.c | 7 +- drivers/gpu/drm/exynos/exynos_drm_drv.c | 9 +- drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 3 +- drivers/gpu/drm/tegra/dc.c | 4 +- drivers/gpu/drm/vc4/vc4_drv.c | 3 +- drivers/hwtracing/coresight/coresight.c | 10 +- drivers/hwtracing/coresight/of_coresight.c | 11 +- drivers/hwtracing/intel_th/core.c | 11 +- drivers/hwtracing/stm/core.c | 9 +- drivers/i2c/busses/i2c-amd-mp2-pci.c | 8 +- drivers/i2c/i2c-core-acpi.c | 10 +- drivers/i2c/i2c-core-of.c | 9 +- drivers/iio/inkern.c | 2 +- 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/mfd/syscon.c | 8 +- drivers/misc/mei/main.c | 9 +- drivers/mux/core.c | 8 +- drivers/net/ethernet/hisilicon/hns/hns_dsaf_misc.c | 8 +- drivers/net/ethernet/ti/cpsw-phy-sel.c | 4 +- drivers/net/ethernet/ti/davinci_emac.c | 2 +- drivers/net/ethernet/toshiba/tc35815.c | 4 +- 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/pci/search.c | 4 +- drivers/regulator/of_regulator.c | 7 +- drivers/rtc/interface.c | 11 +- drivers/s390/cio/ccwgroup.c | 28 +-- drivers/s390/cio/chsc_sch.c | 2 +- drivers/s390/cio/css.c | 4 +- drivers/s390/cio/device.c | 21 +-- drivers/s390/crypto/ap_bus.c | 4 +- drivers/s390/crypto/zcrypt_api.c | 23 +-- drivers/scsi/scsi_proc.c | 9 +- drivers/spi/spi.c | 28 +-- drivers/staging/most/core.c | 9 +- drivers/thunderbolt/switch.c | 4 +- drivers/tty/tty_io.c | 8 +- drivers/usb/core/devio.c | 8 +- drivers/usb/core/usb.c | 4 +- drivers/usb/phy/phy-am335x-control.c | 4 +- drivers/usb/phy/phy-isp1301.c | 4 +- drivers/usb/roles/class.c | 16 +- drivers/usb/typec/class.c | 16 +- drivers/visorbus/visorbus_main.c | 4 +- include/linux/device.h | 191 ++++++++++++++++++++- include/linux/platform_device.h | 3 + net/ieee802154/core.c | 7 +- sound/soc/rockchip/rk3399_gru_sound.c | 9 +- 71 files changed, 359 insertions(+), 460 deletions(-)