* [PATCH 0/1] eeprom: at24: switch to device-managed version of i2c_new_dummy
@ 2017-12-04 19:49 Heiner Kallweit
2017-12-04 19:51 ` [PATCH] " Heiner Kallweit
0 siblings, 1 reply; 4+ messages in thread
From: Heiner Kallweit @ 2017-12-04 19:49 UTC (permalink / raw)
To: Bartosz Golaszewski, Peter Rosin, Wolfram Sang; +Cc: linux-i2c
Some time ago I submitted a patch for introducing a device-managed
version of i2c_new_dummy [1]. It was not applied yet because a
use case was missing. Recent changes to the at24 driver now allow
to make use of devm_i2c_new_dummy.
[1]
https://patchwork.ozlabs.org/patch/804276/
Heiner Kallweit (1):
eeprom: at24: switch to device-managed version of i2c_new_dummy
drivers/misc/eeprom/at24.c | 15 ++++-----------
1 file changed, 4 insertions(+), 11 deletions(-)
--
2.15.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH] eeprom: at24: switch to device-managed version of i2c_new_dummy
2017-12-04 19:49 [PATCH 0/1] eeprom: at24: switch to device-managed version of i2c_new_dummy Heiner Kallweit
@ 2017-12-04 19:51 ` Heiner Kallweit
2017-12-05 8:18 ` Bartosz Golaszewski
0 siblings, 1 reply; 4+ messages in thread
From: Heiner Kallweit @ 2017-12-04 19:51 UTC (permalink / raw)
To: Bartosz Golaszewski, Peter Rosin, Wolfram Sang; +Cc: linux-i2c
Make use of recently introduced device-managed version of
i2c_new_dummy to simplify the code.
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
---
drivers/misc/eeprom/at24.c | 15 ++++-----------
1 file changed, 4 insertions(+), 11 deletions(-)
diff --git a/drivers/misc/eeprom/at24.c b/drivers/misc/eeprom/at24.c
index 625b00166..9e9fe69b4 100644
--- a/drivers/misc/eeprom/at24.c
+++ b/drivers/misc/eeprom/at24.c
@@ -621,9 +621,10 @@ static int at24_probe(struct i2c_client *client, const struct i2c_device_id *id)
/* use dummy devices for multiple-address chips */
for (i = 1; i < num_addresses; i++) {
- at24->client[i].client = i2c_new_dummy(client->adapter,
- client->addr + i);
- if (!at24->client[i].client) {
+ at24->client[i].client = devm_i2c_new_dummy(&client->dev,
+ client->adapter,
+ client->addr + i);
+ if (IS_ERR(at24->client[i].client)) {
dev_err(&client->dev, "address 0x%02x unavailable\n",
client->addr + i);
err = -EADDRINUSE;
@@ -686,10 +687,6 @@ static int at24_probe(struct i2c_client *client, const struct i2c_device_id *id)
return 0;
err_clients:
- for (i = 1; i < num_addresses; i++)
- if (at24->client[i].client)
- i2c_unregister_device(at24->client[i].client);
-
pm_runtime_disable(&client->dev);
return err;
@@ -698,15 +695,11 @@ static int at24_probe(struct i2c_client *client, const struct i2c_device_id *id)
static int at24_remove(struct i2c_client *client)
{
struct at24_data *at24;
- int i;
at24 = i2c_get_clientdata(client);
nvmem_unregister(at24->nvmem);
- for (i = 1; i < at24->num_addresses; i++)
- i2c_unregister_device(at24->client[i].client);
-
pm_runtime_disable(&client->dev);
pm_runtime_set_suspended(&client->dev);
--
2.15.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] eeprom: at24: switch to device-managed version of i2c_new_dummy
2017-12-04 19:51 ` [PATCH] " Heiner Kallweit
@ 2017-12-05 8:18 ` Bartosz Golaszewski
2017-12-05 19:39 ` Heiner Kallweit
0 siblings, 1 reply; 4+ messages in thread
From: Bartosz Golaszewski @ 2017-12-05 8:18 UTC (permalink / raw)
To: Heiner Kallweit; +Cc: Peter Rosin, Wolfram Sang, linux-i2c
2017-12-04 20:51 GMT+01:00 Heiner Kallweit <hkallweit1@gmail.com>:
> Make use of recently introduced device-managed version of
> i2c_new_dummy to simplify the code.
>
> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
> ---
> drivers/misc/eeprom/at24.c | 15 ++++-----------
> 1 file changed, 4 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/misc/eeprom/at24.c b/drivers/misc/eeprom/at24.c
> index 625b00166..9e9fe69b4 100644
> --- a/drivers/misc/eeprom/at24.c
> +++ b/drivers/misc/eeprom/at24.c
> @@ -621,9 +621,10 @@ static int at24_probe(struct i2c_client *client, const struct i2c_device_id *id)
>
> /* use dummy devices for multiple-address chips */
> for (i = 1; i < num_addresses; i++) {
> - at24->client[i].client = i2c_new_dummy(client->adapter,
> - client->addr + i);
> - if (!at24->client[i].client) {
> + at24->client[i].client = devm_i2c_new_dummy(&client->dev,
> + client->adapter,
> + client->addr + i);
> + if (IS_ERR(at24->client[i].client)) {
> dev_err(&client->dev, "address 0x%02x unavailable\n",
> client->addr + i);
> err = -EADDRINUSE;
> @@ -686,10 +687,6 @@ static int at24_probe(struct i2c_client *client, const struct i2c_device_id *id)
> return 0;
>
> err_clients:
> - for (i = 1; i < num_addresses; i++)
> - if (at24->client[i].client)
> - i2c_unregister_device(at24->client[i].client);
> -
> pm_runtime_disable(&client->dev);
>
> return err;
> @@ -698,15 +695,11 @@ static int at24_probe(struct i2c_client *client, const struct i2c_device_id *id)
> static int at24_remove(struct i2c_client *client)
> {
> struct at24_data *at24;
> - int i;
>
> at24 = i2c_get_clientdata(client);
>
> nvmem_unregister(at24->nvmem);
>
> - for (i = 1; i < at24->num_addresses; i++)
> - i2c_unregister_device(at24->client[i].client);
> -
> pm_runtime_disable(&client->dev);
> pm_runtime_set_suspended(&client->dev);
>
> --
> 2.15.1
>
>
Hi Heiner,
I don't have the patch introducing the devres routine in my inbox.
Could you resend the two patches as a series? Note: please Cc the
linux-kernel mailing list too. Also: maybe you could create a device
managed version of i2c_new_secondary_device() if you're at it? Could
use the same release callback.
Thanks,
Bartosz
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] eeprom: at24: switch to device-managed version of i2c_new_dummy
2017-12-05 8:18 ` Bartosz Golaszewski
@ 2017-12-05 19:39 ` Heiner Kallweit
0 siblings, 0 replies; 4+ messages in thread
From: Heiner Kallweit @ 2017-12-05 19:39 UTC (permalink / raw)
To: Bartosz Golaszewski; +Cc: Peter Rosin, Wolfram Sang, linux-i2c
Am 05.12.2017 um 09:18 schrieb Bartosz Golaszewski:
> 2017-12-04 20:51 GMT+01:00 Heiner Kallweit <hkallweit1@gmail.com>:
>> Make use of recently introduced device-managed version of
>> i2c_new_dummy to simplify the code.
>>
>> Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
>> ---
>> drivers/misc/eeprom/at24.c | 15 ++++-----------
>> 1 file changed, 4 insertions(+), 11 deletions(-)
>>
>> diff --git a/drivers/misc/eeprom/at24.c b/drivers/misc/eeprom/at24.c
>> index 625b00166..9e9fe69b4 100644
>> --- a/drivers/misc/eeprom/at24.c
>> +++ b/drivers/misc/eeprom/at24.c
>> @@ -621,9 +621,10 @@ static int at24_probe(struct i2c_client *client, const struct i2c_device_id *id)
>>
>> /* use dummy devices for multiple-address chips */
>> for (i = 1; i < num_addresses; i++) {
>> - at24->client[i].client = i2c_new_dummy(client->adapter,
>> - client->addr + i);
>> - if (!at24->client[i].client) {
>> + at24->client[i].client = devm_i2c_new_dummy(&client->dev,
>> + client->adapter,
>> + client->addr + i);
>> + if (IS_ERR(at24->client[i].client)) {
>> dev_err(&client->dev, "address 0x%02x unavailable\n",
>> client->addr + i);
>> err = -EADDRINUSE;
>> @@ -686,10 +687,6 @@ static int at24_probe(struct i2c_client *client, const struct i2c_device_id *id)
>> return 0;
>>
>> err_clients:
>> - for (i = 1; i < num_addresses; i++)
>> - if (at24->client[i].client)
>> - i2c_unregister_device(at24->client[i].client);
>> -
>> pm_runtime_disable(&client->dev);
>>
>> return err;
>> @@ -698,15 +695,11 @@ static int at24_probe(struct i2c_client *client, const struct i2c_device_id *id)
>> static int at24_remove(struct i2c_client *client)
>> {
>> struct at24_data *at24;
>> - int i;
>>
>> at24 = i2c_get_clientdata(client);
>>
>> nvmem_unregister(at24->nvmem);
>>
>> - for (i = 1; i < at24->num_addresses; i++)
>> - i2c_unregister_device(at24->client[i].client);
>> -
>> pm_runtime_disable(&client->dev);
>> pm_runtime_set_suspended(&client->dev);
>>
>> --
>> 2.15.1
>>
>>
>
> Hi Heiner,
>
> I don't have the patch introducing the devres routine in my inbox.
> Could you resend the two patches as a series? Note: please Cc the
> linux-kernel mailing list too. Also: maybe you could create a device
> managed version of i2c_new_secondary_device() if you're at it? Could
> use the same release callback.
>
OK, will resubmit both patches as a series.
Regarding i2c_new_secondary_device I checked and didn't find a single
user of this function. Therefore I'm afraid maintainers would be
reluctant to accept a device-managed version which would sit idle too.
Rgds, Heiner
> Thanks,
> Bartosz
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-12-05 19:39 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-04 19:49 [PATCH 0/1] eeprom: at24: switch to device-managed version of i2c_new_dummy Heiner Kallweit
2017-12-04 19:51 ` [PATCH] " Heiner Kallweit
2017-12-05 8:18 ` Bartosz Golaszewski
2017-12-05 19:39 ` Heiner Kallweit
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.