All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Scally <djrscally@gmail.com>
To: linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org,
	linux-gpio@vger.kernel.org, linux-i2c@vger.kernel.org,
	linux-media@vger.kernel.org, devel@acpica.org
Cc: rjw@rjwysocki.net, lenb@kernel.org, gregkh@linuxfoundation.org,
	mika.westerberg@linux.intel.com,
	andriy.shevchenko@linux.intel.com, linus.walleij@linaro.org,
	bgolaszewski@baylibre.com, wsa@kernel.org, yong.zhi@intel.com,
	sakari.ailus@linux.intel.com, bingbu.cao@intel.com,
	tian.shu.qiu@intel.com, mchehab@kernel.org,
	robert.moore@intel.com, erik.kaneda@intel.com, pmladek@suse.com,
	rostedt@goodmis.org, sergey.senozhatsky@gmail.com,
	linux@rasmusvillemoes.dk,
	kieran.bingham+renesas@ideasonboard.com,
	jacopo+renesas@jmondi.org,
	laurent.pinchart+renesas@ideasonboard.com,
	jorhand@linux.microsoft.com, kitakar@gmail.com,
	heikki.krogerus@linux.intel.com
Subject: [PATCH 15/18] i2c: i2c-core-acpi: Add i2c_acpi_dev_name()
Date: Mon, 30 Nov 2020 13:31:26 +0000	[thread overview]
Message-ID: <20201130133129.1024662-16-djrscally@gmail.com> (raw)
In-Reply-To: <20201130133129.1024662-1-djrscally@gmail.com>

Some places in the kernel allow users to map resources to a device
using device name (for example, gpiod_lookup_table). Currently
this involves waiting for the i2c_client to have been registered so we
can use dev_name(&client->dev). Adding this function means that we can
achieve the same thing without having to wait to the i2c device.

Signed-off-by: Daniel Scally <djrscally@gmail.com>
---
Changes since RFC v3:

	- Patch introduced

 drivers/i2c/i2c-core-acpi.c | 14 ++++++++++++++
 include/linux/i2c.h         |  5 +++++
 2 files changed, 19 insertions(+)

diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c
index 37c510d9347a..d3a653eac79e 100644
--- a/drivers/i2c/i2c-core-acpi.c
+++ b/drivers/i2c/i2c-core-acpi.c
@@ -497,6 +497,20 @@ struct i2c_client *i2c_acpi_new_device(struct device *dev, int index,
 }
 EXPORT_SYMBOL_GPL(i2c_acpi_new_device);
 
+/**
+ * i2c_acpi_dev_name - Construct i2c device name for devs sourced from ACPI
+ * @adev:     ACPI device to construct the name for
+ *
+ * Prefixes "i2c-" to the ACPI device name, for use in i2c_dev_set_name() and
+ * also anywhere else in the kernel that needs to refer to an i2c device by
+ * name but before they have been instantiated.
+ */
+char *i2c_acpi_dev_name(struct acpi_device *adev)
+{
+	return kasprintf(GFP_KERNEL, "i2c-%s", acpi_dev_name(adev));
+}
+EXPORT_SYMBOL_GPL(i2c_acpi_dev_name);
+
 #ifdef CONFIG_ACPI_I2C_OPREGION
 static int acpi_gsb_i2c_read_bytes(struct i2c_client *client,
 		u8 cmd, u8 *data, u8 data_len)
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index 56622658b215..ab0e505b2ca6 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -995,6 +995,7 @@ bool i2c_acpi_get_i2c_resource(struct acpi_resource *ares,
 u32 i2c_acpi_find_bus_speed(struct device *dev);
 struct i2c_client *i2c_acpi_new_device(struct device *dev, int index,
 				       struct i2c_board_info *info);
+char *i2c_acpi_dev_name(struct acpi_device *adev);
 struct i2c_adapter *i2c_acpi_find_adapter_by_handle(acpi_handle handle);
 #else
 static inline bool i2c_acpi_get_i2c_resource(struct acpi_resource *ares,
@@ -1011,6 +1012,10 @@ static inline struct i2c_client *i2c_acpi_new_device(struct device *dev,
 {
 	return ERR_PTR(-ENODEV);
 }
+static inline char *i2c_acpi_dev_name(struct acpi_device *adev)
+{
+	return NULL;
+}
 static inline struct i2c_adapter *i2c_acpi_find_adapter_by_handle(acpi_handle handle)
 {
 	return NULL;
-- 
2.25.1


  parent reply	other threads:[~2020-11-30 13:34 UTC|newest]

Thread overview: 159+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-30 13:31 [PATCH 00/18] Add functionality to ipu3-cio2 driver allowing software_node connections to sensors on platforms designed for Windows Daniel Scally
2020-11-30 13:31 ` [PATCH 01/18] property: Return true in fwnode_device_is_available for node types that do not implement this operation Daniel Scally
2020-11-30 16:05   ` Laurent Pinchart
2020-11-30 17:21   ` Andy Shevchenko
2020-12-01  3:12   ` Bingbu Cao
2020-12-01  8:46     ` Dan Scally
2020-11-30 13:31 ` [PATCH 02/18] property: Add support for calling fwnode_graph_get_endpoint_by_id() for fwnode->secondary Daniel Scally
2020-11-30 16:08   ` Laurent Pinchart
2020-11-30 17:29   ` Andy Shevchenko
2020-11-30 17:28     ` Laurent Pinchart
2020-11-30 17:53       ` Andy Shevchenko
2020-11-30 18:41         ` Laurent Pinchart
2020-11-30 19:21           ` Andy Shevchenko
2020-12-02 10:13     ` Dan Scally
2020-11-30 13:31 ` [PATCH 03/18] software_node: Fix failure to put() and get() references to children in software_node_get_next_child() Daniel Scally
2020-11-30 16:10   ` Laurent Pinchart
2020-11-30 17:30   ` Andy Shevchenko
2020-11-30 13:31 ` [PATCH 04/18] software_node: Enforce parent before child ordering of nodes array for software_node_register_nodes() Daniel Scally
2020-11-30 16:11   ` Laurent Pinchart
2020-11-30 16:12     ` Laurent Pinchart
2020-11-30 23:10       ` Dan Scally
2020-11-30 17:35   ` Andy Shevchenko
2020-11-30 17:37     ` Andy Shevchenko
2020-11-30 13:31 ` [PATCH 05/18] software_node: Alter software_node_unregister_nodes() to unregister the array in reverse order Daniel Scally
2020-11-30 16:14   ` Laurent Pinchart
2020-11-30 17:45   ` Andy Shevchenko
2020-12-01 23:36     ` Dan Scally
2020-11-30 13:31 ` [PATCH 06/18] software_node: amend software_node_unregister_node_group() to perform unregistration of array in reverse order to be consistent with software_node_unregister_nodes() Daniel Scally
2020-11-30 16:17   ` Laurent Pinchart
2020-11-30 17:47     ` Andy Shevchenko
2020-12-02 10:04       ` Dan Scally
2020-11-30 17:19   ` kernel test robot
2020-11-30 17:19     ` [Devel] " kernel test robot
2020-11-30 17:19     ` kernel test robot
2020-12-01 18:18   ` Dan Carpenter
2020-12-01 18:18     ` Dan Carpenter
2020-12-01 18:18     ` Dan Carpenter
2020-11-30 13:31 ` [PATCH 07/18] software_node: Add support for fwnode_graph*() family of functions Daniel Scally
2020-11-30 16:25   ` Laurent Pinchart
2020-11-30 23:34     ` Dan Scally
2020-11-30 13:31 ` [PATCH 08/18] lib/test_printf.c: Use helper function to unwind array of software_nodes Daniel Scally
2020-11-30 15:54   ` Sergey Senozhatsky
2020-11-30 16:26   ` Laurent Pinchart
2020-11-30 13:31 ` [PATCH 09/18] ipu3-cio2: Add T: entry to MAINTAINERS Daniel Scally
2020-11-30 13:31 ` [PATCH 10/18] ipu3-cio2: Rename ipu3-cio2.c to allow module to be built from multiple source files retaining ipu3-cio2 name Daniel Scally
2020-12-01  6:56   ` Bingbu Cao
2020-12-01  7:07     ` Bingbu Cao
2020-11-30 13:31 ` [PATCH 11/18] media: v4l2-core: v4l2-async: Check possible match in match_fwnode based on sd->fwnode->secondary Daniel Scally
2020-11-30 16:27   ` Laurent Pinchart
2020-11-30 17:55   ` Andy Shevchenko
2020-11-30 13:31 ` [PATCH 12/18] acpi: Add acpi_dev_get_next_match_dev() and macro to iterate through acpi_devices matching a given _HID Daniel Scally
2020-11-30 17:58   ` Andy Shevchenko
2020-11-30 13:31 ` [PATCH 13/18] ipu3-cio2: Add functionality allowing software_node connections to sensors on platforms designed for Windows Daniel Scally
2020-11-30 16:45   ` kernel test robot
2020-11-30 16:45     ` [Devel] " kernel test robot
2020-11-30 16:45     ` kernel test robot
2020-11-30 17:09   ` Laurent Pinchart
2020-11-30 18:14     ` Andy Shevchenko
2020-12-01 22:08     ` Dan Scally
2020-12-01 22:11       ` Dan Scally
2020-12-01 22:30       ` Laurent Pinchart
2020-12-01 23:15         ` Dan Scally
2020-12-02 10:38         ` Sakari Ailus
2020-12-02 10:53           ` Dan Scally
2020-12-02 12:02             ` Andy Shevchenko
2020-12-02 22:44               ` Dan Scally
2020-12-02 12:01           ` Andy Shevchenko
2020-11-30 20:27   ` kernel test robot
2020-11-30 20:27     ` [Devel] " kernel test robot
2020-11-30 20:27     ` kernel test robot
2020-11-30 20:35   ` Sakari Ailus
2020-12-01  8:13     ` Dan Scally
2020-12-01 15:06     ` Andy Shevchenko
2020-12-15 10:28     ` Daniel Scally
2020-12-15 10:32       ` Daniel Scally
2020-12-15 22:02       ` Sakari Ailus
2020-12-17 14:17         ` Daniel Scally
2020-11-30 13:31 ` [PATCH 14/18] acpi: utils: Add function to fetch dependent acpi_devices Daniel Scally
2020-11-30 18:23   ` Andy Shevchenko
2020-11-30 18:40     ` Laurent Pinchart
2020-11-30 23:54     ` Dan Scally
2020-12-01 15:10       ` Andy Shevchenko
2020-12-01 15:23         ` Dan Scally
2020-11-30 13:31 ` Daniel Scally [this message]
2020-11-30 17:11   ` [PATCH 15/18] i2c: i2c-core-acpi: Add i2c_acpi_dev_name() Laurent Pinchart
2020-12-02 22:44     ` Dan Scally
2020-11-30 13:31 ` [PATCH 16/18] i2c: i2c-core-base: Use the new i2c_acpi_dev_name() in i2c_set_dev_name() Daniel Scally
2020-11-30 17:12   ` Laurent Pinchart
2020-11-30 19:18     ` Andy Shevchenko
2020-12-02  9:35       ` Andy Shevchenko
2020-12-02  9:49         ` Dan Scally
2020-12-01 23:50     ` Dan Scally
2020-11-30 13:31 ` [PATCH 17/18] gpio: gpiolib-acpi: Export acpi_get_gpiod() Daniel Scally
2020-11-30 17:02   ` kernel test robot
2020-11-30 17:02     ` [Devel] " kernel test robot
2020-11-30 17:02     ` kernel test robot
2020-11-30 18:04   ` kernel test robot
2020-11-30 18:04     ` [Devel] " kernel test robot
2020-11-30 18:04     ` kernel test robot
2020-11-30 19:20   ` Andy Shevchenko
2020-11-30 13:31 ` [PATCH 18/18] ipu3: Add driver for dummy INT3472 ACPI device Daniel Scally
2020-11-30 16:17   ` Jean-Michel Hautbois
2020-11-30 23:20     ` Dan Scally
2020-12-01 18:31       ` Andy Shevchenko
2020-12-01 18:36         ` Laurent Pinchart
2020-12-01 18:51           ` Andy Shevchenko
2020-11-30 16:29   ` Kieran Bingham
2020-11-30 17:21     ` Laurent Pinchart
2020-11-30 20:07   ` Andy Shevchenko
2020-11-30 23:32     ` Laurent Pinchart
2020-12-01 15:55       ` Sakari Ailus
2020-12-01 18:37         ` Laurent Pinchart
2020-12-02 11:09           ` Sakari Ailus
2020-12-02 12:42             ` Laurent Pinchart
2020-12-02 15:08               ` Andy Shevchenko
2020-12-03 12:37                 ` Dan Scally
2020-12-03 12:57                   ` Andy Shevchenko
2020-12-01 18:49       ` Andy Shevchenko
2020-12-01 20:59         ` Dan Scally
2020-12-02  9:39           ` Andy Shevchenko
2020-12-02 12:35             ` Laurent Pinchart
2020-12-02 15:11               ` Andy Shevchenko
2020-12-03 12:25             ` Dan Scally
2020-12-13 22:48         ` Daniel Scally
2020-12-14 15:33           ` Andy Shevchenko
2020-12-01  8:30     ` Dan Scally
2020-12-01 18:54       ` Andy Shevchenko
2020-12-01 18:55         ` Laurent Pinchart
2020-12-01 19:05           ` Andy Shevchenko
2020-12-01 19:06             ` Laurent Pinchart
2020-12-01 19:21               ` Andy Shevchenko
2020-12-01 20:34                 ` Hans de Goede
2020-12-02 12:48                   ` Laurent Pinchart
2020-12-02 15:15                     ` Andy Shevchenko
2020-12-01 21:05                 ` Dan Scally
2020-12-02  9:42                   ` Andy Shevchenko
2021-01-07 23:55     ` Daniel Scally
2021-01-08 12:17       ` [Devel] " Andy Shevchenko
2021-01-08 12:17         ` Andy Shevchenko
2021-01-08 23:24         ` Daniel Scally
2021-01-09  9:17           ` [Devel] " Andy Shevchenko
2021-01-09  9:58             ` Daniel Scally
2021-01-09  0:18         ` Laurent Pinchart
2021-01-09  0:39           ` Daniel Scally
2020-11-30 20:52   ` Sakari Ailus
2020-11-30 23:06     ` Dan Scally
2020-11-30 23:21       ` Laurent Pinchart
2020-12-01  0:05         ` Dan Scally
2020-12-01  6:44       ` Sakari Ailus
2020-12-01  8:08         ` Dan Scally
2020-12-01  8:09           ` Dan Scally
2020-12-01 12:32           ` Sakari Ailus
2020-12-01 12:40             ` Laurent Pinchart
2020-12-01 12:44               ` Sakari Ailus
2020-12-01 12:48             ` Dan Scally
2020-12-01 19:01               ` Andy Shevchenko
2020-12-01 18:55       ` Andy Shevchenko
2020-12-01 20:45 [Devel] " Andy Shevchenko
2020-12-01 20:46 ` Andy Shevchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201130133129.1024662-16-djrscally@gmail.com \
    --to=djrscally@gmail.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=bgolaszewski@baylibre.com \
    --cc=bingbu.cao@intel.com \
    --cc=devel@acpica.org \
    --cc=erik.kaneda@intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=jacopo+renesas@jmondi.org \
    --cc=jorhand@linux.microsoft.com \
    --cc=kieran.bingham+renesas@ideasonboard.com \
    --cc=kitakar@gmail.com \
    --cc=laurent.pinchart+renesas@ideasonboard.com \
    --cc=lenb@kernel.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux@rasmusvillemoes.dk \
    --cc=mchehab@kernel.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=pmladek@suse.com \
    --cc=rjw@rjwysocki.net \
    --cc=robert.moore@intel.com \
    --cc=rostedt@goodmis.org \
    --cc=sakari.ailus@linux.intel.com \
    --cc=sergey.senozhatsky@gmail.com \
    --cc=tian.shu.qiu@intel.com \
    --cc=wsa@kernel.org \
    --cc=yong.zhi@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.