diff mbox series

[1/3] clk: vc5: Fix .driver_data content in i2c_device_id

Message ID 20230507133906.15061-1-marek.vasut+renesas@mailbox.org (mailing list archive)
State Accepted
Delegated to: Geert Uytterhoeven
Headers show
Series [1/3] clk: vc5: Fix .driver_data content in i2c_device_id | expand

Commit Message

Marek Vasut May 7, 2023, 1:39 p.m. UTC
The .driver_data content in i2c_device_id table must match the
.data content in of_device_id table, else device_get_match_data()
would return bogus value on i2c_device_id match. Align the two
tables.

The i2c_device_id table is now converted from of_device_id using
's@.compatible = "idt,\([^"]\+"\), .data = \(.*\)@"\1, .driver_data = (kernel_ulong_t)\2@'

Fixes: 9adddb01ce5f ("clk: vc5: Add structure to describe particular chip features")
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
---
Cc: Alex Helms <alexander.helms.jy@renesas.com>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Luca Ceresoli <luca.ceresoli@bootlin.com>
Cc: Magnus Damm <magnus.damm@gmail.com>
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Nathan Chancellor <nathan@kernel.org>
Cc: Nick Desaulniers <ndesaulniers@google.com>
Cc: Stephen Boyd <sboyd@kernel.org>
Cc: Tom Rix <trix@redhat.com>
Cc: linux-clk@vger.kernel.org
Cc: linux-renesas-soc@vger.kernel.org
---
 drivers/clk/clk-versaclock5.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

Comments

Luca Ceresoli May 8, 2023, 12:39 p.m. UTC | #1
Hi Marek,

On Sun,  7 May 2023 15:39:04 +0200
Marek Vasut <marek.vasut+renesas@mailbox.org> wrote:

> The .driver_data content in i2c_device_id table must match the
> .data content in of_device_id table, else device_get_match_data()
> would return bogus value on i2c_device_id match. Align the two
> tables.
> 
> The i2c_device_id table is now converted from of_device_id using
> 's@.compatible = "idt,\([^"]\+"\), .data = \(.*\)@"\1, .driver_data = (kernel_ulong_t)\2@'
> 
> Fixes: 9adddb01ce5f ("clk: vc5: Add structure to describe particular chip features")
> Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
> ---
> Cc: Alex Helms <alexander.helms.jy@renesas.com>
> Cc: Geert Uytterhoeven <geert+renesas@glider.be>
> Cc: Luca Ceresoli <luca.ceresoli@bootlin.com>
> Cc: Magnus Damm <magnus.damm@gmail.com>
> Cc: Michael Turquette <mturquette@baylibre.com>
> Cc: Nathan Chancellor <nathan@kernel.org>
> Cc: Nick Desaulniers <ndesaulniers@google.com>
> Cc: Stephen Boyd <sboyd@kernel.org>
> Cc: Tom Rix <trix@redhat.com>
> Cc: linux-clk@vger.kernel.org
> Cc: linux-renesas-soc@vger.kernel.org
> ---
>  drivers/clk/clk-versaclock5.c | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/clk/clk-versaclock5.c b/drivers/clk/clk-versaclock5.c
> index fa71a57875ce..5452471b7ba5 100644
> --- a/drivers/clk/clk-versaclock5.c
> +++ b/drivers/clk/clk-versaclock5.c
> @@ -1271,14 +1271,14 @@ static const struct vc5_chip_info idt_5p49v6975_info = {
>  };
>  
>  static const struct i2c_device_id vc5_id[] = {
> -	{ "5p49v5923", .driver_data = IDT_VC5_5P49V5923 },
> -	{ "5p49v5925", .driver_data = IDT_VC5_5P49V5925 },
> -	{ "5p49v5933", .driver_data = IDT_VC5_5P49V5933 },
> -	{ "5p49v5935", .driver_data = IDT_VC5_5P49V5935 },
> -	{ "5p49v60", .driver_data = IDT_VC6_5P49V60 },
> -	{ "5p49v6901", .driver_data = IDT_VC6_5P49V6901 },
> -	{ "5p49v6965", .driver_data = IDT_VC6_5P49V6965 },
> -	{ "5p49v6975", .driver_data = IDT_VC6_5P49V6975 },
> +	{ "5p49v5923", .driver_data = (kernel_ulong_t)&idt_5p49v5923_info },
> +	{ "5p49v5925", .driver_data = (kernel_ulong_t)&idt_5p49v5925_info },
> +	{ "5p49v5933", .driver_data = (kernel_ulong_t)&idt_5p49v5933_info },
> +	{ "5p49v5935", .driver_data = (kernel_ulong_t)&idt_5p49v5935_info },
> +	{ "5p49v60", .driver_data = (kernel_ulong_t)&idt_5p49v60_info },
> +	{ "5p49v6901", .driver_data = (kernel_ulong_t)&idt_5p49v6901_info },
> +	{ "5p49v6965", .driver_data = (kernel_ulong_t)&idt_5p49v6965_info },
> +	{ "5p49v6975", .driver_data = (kernel_ulong_t)&idt_5p49v6975_info },

Apparently nobody even used i2c device ids, otherwise this would have
gone loudly bad!

Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Geert Uytterhoeven May 8, 2023, 1:01 p.m. UTC | #2
On Sun, May 7, 2023 at 3:39 PM Marek Vasut
<marek.vasut+renesas@mailbox.org> wrote:
> The .driver_data content in i2c_device_id table must match the
> .data content in of_device_id table, else device_get_match_data()
> would return bogus value on i2c_device_id match. Align the two
> tables.
>
> The i2c_device_id table is now converted from of_device_id using
> 's@.compatible = "idt,\([^"]\+"\), .data = \(.*\)@"\1, .driver_data = (kernel_ulong_t)\2@'
>
> Fixes: 9adddb01ce5f ("clk: vc5: Add structure to describe particular chip features")
> Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>

Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>

Gr{oetje,eeting}s,

                        Geert
Stephen Boyd May 10, 2023, 9:27 p.m. UTC | #3
Quoting Marek Vasut (2023-05-07 06:39:04)
> The .driver_data content in i2c_device_id table must match the
> .data content in of_device_id table, else device_get_match_data()
> would return bogus value on i2c_device_id match. Align the two
> tables.
> 
> The i2c_device_id table is now converted from of_device_id using
> 's@.compatible = "idt,\([^"]\+"\), .data = \(.*\)@"\1, .driver_data = (kernel_ulong_t)\2@'
> 
> Fixes: 9adddb01ce5f ("clk: vc5: Add structure to describe particular chip features")
> Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
> ---

Applied to clk-next
diff mbox series

Patch

diff --git a/drivers/clk/clk-versaclock5.c b/drivers/clk/clk-versaclock5.c
index fa71a57875ce..5452471b7ba5 100644
--- a/drivers/clk/clk-versaclock5.c
+++ b/drivers/clk/clk-versaclock5.c
@@ -1271,14 +1271,14 @@  static const struct vc5_chip_info idt_5p49v6975_info = {
 };
 
 static const struct i2c_device_id vc5_id[] = {
-	{ "5p49v5923", .driver_data = IDT_VC5_5P49V5923 },
-	{ "5p49v5925", .driver_data = IDT_VC5_5P49V5925 },
-	{ "5p49v5933", .driver_data = IDT_VC5_5P49V5933 },
-	{ "5p49v5935", .driver_data = IDT_VC5_5P49V5935 },
-	{ "5p49v60", .driver_data = IDT_VC6_5P49V60 },
-	{ "5p49v6901", .driver_data = IDT_VC6_5P49V6901 },
-	{ "5p49v6965", .driver_data = IDT_VC6_5P49V6965 },
-	{ "5p49v6975", .driver_data = IDT_VC6_5P49V6975 },
+	{ "5p49v5923", .driver_data = (kernel_ulong_t)&idt_5p49v5923_info },
+	{ "5p49v5925", .driver_data = (kernel_ulong_t)&idt_5p49v5925_info },
+	{ "5p49v5933", .driver_data = (kernel_ulong_t)&idt_5p49v5933_info },
+	{ "5p49v5935", .driver_data = (kernel_ulong_t)&idt_5p49v5935_info },
+	{ "5p49v60", .driver_data = (kernel_ulong_t)&idt_5p49v60_info },
+	{ "5p49v6901", .driver_data = (kernel_ulong_t)&idt_5p49v6901_info },
+	{ "5p49v6965", .driver_data = (kernel_ulong_t)&idt_5p49v6965_info },
+	{ "5p49v6975", .driver_data = (kernel_ulong_t)&idt_5p49v6975_info },
 	{ }
 };
 MODULE_DEVICE_TABLE(i2c, vc5_id);