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 |
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>
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
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 --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);
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(-)