Hi Marek, On Sun, 7 May 2023 15:39:04 +0200 Marek Vasut <marek.vasut+renesas@xxxxxxxxxxx> 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@xxxxxxxxxxx> > --- > Cc: Alex Helms <alexander.helms.jy@xxxxxxxxxxx> > Cc: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> > Cc: Luca Ceresoli <luca.ceresoli@xxxxxxxxxxx> > Cc: Magnus Damm <magnus.damm@xxxxxxxxx> > Cc: Michael Turquette <mturquette@xxxxxxxxxxxx> > Cc: Nathan Chancellor <nathan@xxxxxxxxxx> > Cc: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> > Cc: Stephen Boyd <sboyd@xxxxxxxxxx> > Cc: Tom Rix <trix@xxxxxxxxxx> > Cc: linux-clk@xxxxxxxxxxxxxxx > Cc: linux-renesas-soc@xxxxxxxxxxxxxxx > --- > 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@xxxxxxxxxxx> -- Luca Ceresoli, Bootlin Embedded Linux and Kernel engineering https://bootlin.com