]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
media: dw9719: Add back the I²C device id table
authorSakari Ailus <sakari.ailus@linux.intel.com>
Thu, 26 Mar 2026 13:15:23 +0000 (15:15 +0200)
committerSakari Ailus <sakari.ailus@linux.intel.com>
Tue, 5 May 2026 12:27:36 +0000 (15:27 +0300)
The I²C device id table is necessary as the device may be, besides through
system firmware, also instantiated in the IPU bridge so matching takes
place using the I²C device id table. Add back the table, with ids for all
supported devices.

Reported-by: Michael Anthony <manthony.nw@outlook.com>
Closes: https://lore.kernel.org/linux-media/AMBP190MB2678E7DC048409068260DCE8ED4AA@AMBP190MB2678.EURP190.PROD.OUTLOOK.COM/
Fixes: 15faf0fa1472 ("media: i2c: dw9719: Remove unused i2c device id table")
Cc: stable@vger.kernel.org # for v6.19 and later
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
drivers/media/i2c/dw9719.c

index 59558335989ed2825ef7a0d356ddfe10f001716a..3b7ba88fd67c044ef9005a0aac6a5d26ab939a90 100644 (file)
@@ -439,6 +439,15 @@ static void dw9719_remove(struct i2c_client *client)
        pm_runtime_set_suspended(&client->dev);
 }
 
+static const struct i2c_device_id dw9719_id_table[] = {
+       { .name = "dw9718s", .driver_data = (kernel_ulong_t)DW9718S },
+       { .name = "dw9719", .driver_data = (kernel_ulong_t)DW9719 },
+       { .name = "dw9761", .driver_data = (kernel_ulong_t)DW9761 },
+       { .name = "dw9800k", .driver_data = (kernel_ulong_t)DW9800K },
+       { }
+};
+MODULE_DEVICE_TABLE(i2c, dw9719_id_table);
+
 static const struct of_device_id dw9719_of_table[] = {
        { .compatible = "dongwoon,dw9718s", .data = (const void *)DW9718S },
        { .compatible = "dongwoon,dw9719", .data = (const void *)DW9719 },
@@ -459,6 +468,7 @@ static struct i2c_driver dw9719_i2c_driver = {
        },
        .probe = dw9719_probe,
        .remove = dw9719_remove,
+       .id_table = dw9719_id_table,
 };
 module_i2c_driver(dw9719_i2c_driver);