From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
Cc: linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org,
Mika Westerberg <mika.westerberg@linux.intel.com>,
Hans de Goede <hdegoede@redhat.com>,
Wolfram Sang <wsa@the-dreams.de>
Subject: Re: [PATCH v5 4/4] i2c: allow specify device properties in i2c_board_info
Date: Fri, 03 Feb 2017 13:46:06 +0200 [thread overview]
Message-ID: <1486122366.2133.376.camel@linux.intel.com> (raw)
In-Reply-To: <20170203014128.317-5-dmitry.torokhov@gmail.com>
On Thu, 2017-02-02 at 17:41 -0800, Dmitry Torokhov wrote:
> With many drivers converting to using generic device properties, it is
> useful to provide array of device properties when instantiating new
> i2c
> client via i2c_board_info and have them automatically added to the
> device
> in question.
FWIW:
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
>
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
> ---
> drivers/i2c/i2c-core.c | 16 +++++++++++++++-
> include/linux/i2c.h | 3 +++
> 2 files changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
> index f009549f86a5..3897e78e5e9a 100644
> --- a/drivers/i2c/i2c-core.c
> +++ b/drivers/i2c/i2c-core.c
> @@ -1335,15 +1335,29 @@ i2c_new_device(struct i2c_adapter *adap,
> struct i2c_board_info const *info)
> client->dev.fwnode = info->fwnode;
>
> i2c_dev_set_name(adap, client);
> +
> + if (info->properties) {
> + status = device_add_properties(&client->dev, info-
> >properties);
> + if (status) {
> + dev_err(&adap->dev,
> + "Failed to add properties to client
> %s: %d\n",
> + client->name, status);
> + goto out_err;
> + }
> + }
> +
> status = device_register(&client->dev);
> if (status)
> - goto out_err;
> + goto out_free_props;
>
> dev_dbg(&adap->dev, "client [%s] registered with bus id
> %s\n",
> client->name, dev_name(&client->dev));
>
> return client;
>
> +out_free_props:
> + if (info->properties)
> + device_remove_properties(&client->dev);
> out_err:
> dev_err(&adap->dev,
> "Failed to register i2c client %s at 0x%02x (%d)\n",
> diff --git a/include/linux/i2c.h b/include/linux/i2c.h
> index 4aa7d244b38a..ec8f866a5656 100644
> --- a/include/linux/i2c.h
> +++ b/include/linux/i2c.h
> @@ -51,6 +51,7 @@ enum i2c_slave_event;
> typedef int (*i2c_slave_cb_t)(struct i2c_client *, enum
> i2c_slave_event, u8 *);
>
> struct module;
> +struct property_entry;
>
> #if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
> /*
> @@ -310,6 +311,7 @@ static inline int i2c_slave_event(struct
> i2c_client *client,
> * @archdata: copied into i2c_client.dev.archdata
> * @of_node: pointer to OpenFirmware device node
> * @fwnode: device node supplied by the platform firmware
> + * @properties: additional device properties for the device
> * @irq: stored in i2c_client.irq
> *
> * I2C doesn't actually support hardware probing, although
> controllers and
> @@ -331,6 +333,7 @@ struct i2c_board_info {
> struct dev_archdata *archdata;
> struct device_node *of_node;
> struct fwnode_handle *fwnode;
> + const struct property_entry *properties;
> int irq;
> };
>
--
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy
next prev parent reply other threads:[~2017-02-03 11:46 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-03 1:41 [PATCH v5 0/4] Export APIs to copy device properties & more Dmitry Torokhov
2017-02-03 1:41 ` [PATCH v5 1/4] device property: allow to constify properties Dmitry Torokhov
2017-02-03 11:40 ` Andy Shevchenko
2017-02-03 15:09 ` Dmitry Torokhov
2017-02-03 1:41 ` [PATCH v5 2/4] device property: constify property arrays values Dmitry Torokhov
2017-02-03 11:43 ` Andy Shevchenko
2017-02-03 15:12 ` Dmitry Torokhov
2017-02-03 1:41 ` [PATCH v5 3/4] device property: export code duplicating array of property entries Dmitry Torokhov
2017-02-03 11:45 ` Andy Shevchenko
2017-02-03 15:15 ` Dmitry Torokhov
2017-02-03 1:41 ` [PATCH v5 4/4] i2c: allow specify device properties in i2c_board_info Dmitry Torokhov
2017-02-03 11:46 ` Andy Shevchenko [this message]
2017-02-07 12:44 ` Rafael J. Wysocki
2017-02-07 13:25 ` Wolfram Sang
2017-02-09 13:52 ` [PATCH v5 0/4] Export APIs to copy device properties & more Rafael J. Wysocki
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=1486122366.2133.376.camel@linux.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=dmitry.torokhov@gmail.com \
--cc=hdegoede@redhat.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mika.westerberg@linux.intel.com \
--cc=rafael.j.wysocki@intel.com \
--cc=wsa@the-dreams.de \
/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.