2020-08-09 18:43:40

by Stephen Kitt

[permalink] [raw]
Subject: [PATCH v2] ARM: davinci: use simple i2c probe function

The i2c probe functions here don't use the id information provided in
their second argument, so the single-parameter i2c probe function
("probe_new") can be used instead.

This avoids scanning the identifier tables during probes.

Signed-off-by: Stephen Kitt <[email protected]>
---
Changes since v1:
- split into per-sub-architecture patches.

arch/arm/mach-davinci/board-dm644x-evm.c | 5 ++---
arch/arm/mach-davinci/board-dm646x-evm.c | 10 ++++------
2 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/arch/arm/mach-davinci/board-dm644x-evm.c b/arch/arm/mach-davinci/board-dm644x-evm.c
index a5d3708fedf6..d0dcf69cc76d 100644
--- a/arch/arm/mach-davinci/board-dm644x-evm.c
+++ b/arch/arm/mach-davinci/board-dm644x-evm.c
@@ -548,8 +548,7 @@ static const struct property_entry eeprom_properties[] = {
*/
static struct i2c_client *dm6446evm_msp;

-static int dm6446evm_msp_probe(struct i2c_client *client,
- const struct i2c_device_id *id)
+static int dm6446evm_msp_probe(struct i2c_client *client)
{
dm6446evm_msp = client;
return 0;
@@ -569,7 +568,7 @@ static const struct i2c_device_id dm6446evm_msp_ids[] = {
static struct i2c_driver dm6446evm_msp_driver = {
.driver.name = "dm6446evm_msp",
.id_table = dm6446evm_msp_ids,
- .probe = dm6446evm_msp_probe,
+ .probe_new = dm6446evm_msp_probe,
.remove = dm6446evm_msp_remove,
};

diff --git a/arch/arm/mach-davinci/board-dm646x-evm.c b/arch/arm/mach-davinci/board-dm646x-evm.c
index 4600b617f9b4..2dce16fff77e 100644
--- a/arch/arm/mach-davinci/board-dm646x-evm.c
+++ b/arch/arm/mach-davinci/board-dm646x-evm.c
@@ -160,8 +160,7 @@ static struct platform_device davinci_aemif_device = {
#define DM646X_EVM_ATA_PWD BIT(1)

/* CPLD Register 0 Client: used for I/O Control */
-static int cpld_reg0_probe(struct i2c_client *client,
- const struct i2c_device_id *id)
+static int cpld_reg0_probe(struct i2c_client *client)
{
if (HAS_ATA) {
u8 data;
@@ -197,7 +196,7 @@ static const struct i2c_device_id cpld_reg_ids[] = {
static struct i2c_driver dm6467evm_cpld_driver = {
.driver.name = "cpld_reg0",
.id_table = cpld_reg_ids,
- .probe = cpld_reg0_probe,
+ .probe_new = cpld_reg0_probe,
};

/* LEDS */
@@ -402,8 +401,7 @@ static struct snd_platform_data dm646x_evm_snd_data[] = {
#ifdef CONFIG_I2C
static struct i2c_client *cpld_client;

-static int cpld_video_probe(struct i2c_client *client,
- const struct i2c_device_id *id)
+static int cpld_video_probe(struct i2c_client *client)
{
cpld_client = client;
return 0;
@@ -424,7 +422,7 @@ static struct i2c_driver cpld_video_driver = {
.driver = {
.name = "cpld_video",
},
- .probe = cpld_video_probe,
+ .probe_new = cpld_video_probe,
.remove = cpld_video_remove,
.id_table = cpld_video_id,
};

base-commit: bcf876870b95592b52519ed4aafcf9d95999bc9c
--
2.20.1


2020-08-10 09:39:32

by Wolfram Sang

[permalink] [raw]
Subject: Re: [PATCH v2] ARM: davinci: use simple i2c probe function

On Sun, Aug 09, 2020 at 07:24:44PM +0200, Stephen Kitt wrote:
> The i2c probe functions here don't use the id information provided in
> their second argument, so the single-parameter i2c probe function
> ("probe_new") can be used instead.
>
> This avoids scanning the identifier tables during probes.
>
> Signed-off-by: Stephen Kitt <[email protected]>

This is useful, helps deprecating the old probe method:

Acked-by: Wolfram Sang <[email protected]>


Attachments:
(No filename) (463.00 B)
signature.asc (849.00 B)
Download all attachments

2020-08-10 18:51:22

by Bartosz Golaszewski

[permalink] [raw]
Subject: Re: [PATCH v2] ARM: davinci: use simple i2c probe function

On Sun, Aug 9, 2020 at 7:24 PM Stephen Kitt <[email protected]> wrote:
>
> The i2c probe functions here don't use the id information provided in
> their second argument, so the single-parameter i2c probe function
> ("probe_new") can be used instead.
>
> This avoids scanning the identifier tables during probes.
>
> Signed-off-by: Stephen Kitt <[email protected]>
> ---
> Changes since v1:
> - split into per-sub-architecture patches.
>
> arch/arm/mach-davinci/board-dm644x-evm.c | 5 ++---
> arch/arm/mach-davinci/board-dm646x-evm.c | 10 ++++------
> 2 files changed, 6 insertions(+), 9 deletions(-)
>
> diff --git a/arch/arm/mach-davinci/board-dm644x-evm.c b/arch/arm/mach-davinci/board-dm644x-evm.c
> index a5d3708fedf6..d0dcf69cc76d 100644
> --- a/arch/arm/mach-davinci/board-dm644x-evm.c
> +++ b/arch/arm/mach-davinci/board-dm644x-evm.c
> @@ -548,8 +548,7 @@ static const struct property_entry eeprom_properties[] = {
> */
> static struct i2c_client *dm6446evm_msp;
>
> -static int dm6446evm_msp_probe(struct i2c_client *client,
> - const struct i2c_device_id *id)
> +static int dm6446evm_msp_probe(struct i2c_client *client)
> {
> dm6446evm_msp = client;
> return 0;
> @@ -569,7 +568,7 @@ static const struct i2c_device_id dm6446evm_msp_ids[] = {
> static struct i2c_driver dm6446evm_msp_driver = {
> .driver.name = "dm6446evm_msp",
> .id_table = dm6446evm_msp_ids,
> - .probe = dm6446evm_msp_probe,
> + .probe_new = dm6446evm_msp_probe,
> .remove = dm6446evm_msp_remove,
> };
>
> diff --git a/arch/arm/mach-davinci/board-dm646x-evm.c b/arch/arm/mach-davinci/board-dm646x-evm.c
> index 4600b617f9b4..2dce16fff77e 100644
> --- a/arch/arm/mach-davinci/board-dm646x-evm.c
> +++ b/arch/arm/mach-davinci/board-dm646x-evm.c
> @@ -160,8 +160,7 @@ static struct platform_device davinci_aemif_device = {
> #define DM646X_EVM_ATA_PWD BIT(1)
>
> /* CPLD Register 0 Client: used for I/O Control */
> -static int cpld_reg0_probe(struct i2c_client *client,
> - const struct i2c_device_id *id)
> +static int cpld_reg0_probe(struct i2c_client *client)
> {
> if (HAS_ATA) {
> u8 data;
> @@ -197,7 +196,7 @@ static const struct i2c_device_id cpld_reg_ids[] = {
> static struct i2c_driver dm6467evm_cpld_driver = {
> .driver.name = "cpld_reg0",
> .id_table = cpld_reg_ids,
> - .probe = cpld_reg0_probe,
> + .probe_new = cpld_reg0_probe,
> };
>
> /* LEDS */
> @@ -402,8 +401,7 @@ static struct snd_platform_data dm646x_evm_snd_data[] = {
> #ifdef CONFIG_I2C
> static struct i2c_client *cpld_client;
>
> -static int cpld_video_probe(struct i2c_client *client,
> - const struct i2c_device_id *id)
> +static int cpld_video_probe(struct i2c_client *client)
> {
> cpld_client = client;
> return 0;
> @@ -424,7 +422,7 @@ static struct i2c_driver cpld_video_driver = {
> .driver = {
> .name = "cpld_video",
> },
> - .probe = cpld_video_probe,
> + .probe_new = cpld_video_probe,
> .remove = cpld_video_remove,
> .id_table = cpld_video_id,
> };
>
> base-commit: bcf876870b95592b52519ed4aafcf9d95999bc9c
> --
> 2.20.1
>

Reviewed-by: Bartosz Golaszewski <[email protected]>

2020-08-13 13:12:10

by Luca Ceresoli

[permalink] [raw]
Subject: Re: [PATCH v2] ARM: davinci: use simple i2c probe function

Hi,

On 09/08/20 19:24, Stephen Kitt wrote:
> The i2c probe functions here don't use the id information provided in
> their second argument, so the single-parameter i2c probe function
> ("probe_new") can be used instead.
>
> This avoids scanning the identifier tables during probes.
>
> Signed-off-by: Stephen Kitt <[email protected]>

Reviewed-by: Luca Ceresoli <[email protected]>

--
Luca

2020-09-03 05:41:19

by Sekhar Nori

[permalink] [raw]
Subject: Re: [PATCH v2] ARM: davinci: use simple i2c probe function

On 10/08/20 3:07 PM, Wolfram Sang wrote:
> On Sun, Aug 09, 2020 at 07:24:44PM +0200, Stephen Kitt wrote:
>> The i2c probe functions here don't use the id information provided in
>> their second argument, so the single-parameter i2c probe function
>> ("probe_new") can be used instead.
>>
>> This avoids scanning the identifier tables during probes.
>>
>> Signed-off-by: Stephen Kitt <[email protected]>
>
> This is useful, helps deprecating the old probe method:
>
> Acked-by: Wolfram Sang <[email protected]>

Queued for v5.10.

Thanks,
Sekhar