linux-sound.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id()
@ 2024-12-03 19:59 Andrew Davis
  2024-12-03 19:59 ` [PATCH 02/21] ASoC: adau1761: " Andrew Davis
                   ` (20 more replies)
  0 siblings, 21 replies; 24+ messages in thread
From: Andrew Davis @ 2024-12-03 19:59 UTC (permalink / raw)
  To: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut
  Cc: patches, linux-sound, linux-kernel, Andrew Davis

The function i2c_match_id() is used to fetch the matching ID from
the i2c_device_id table. This is often used to then retrieve the
matching driver_data. This can be done in one step with the helper
i2c_get_match_data().

This helper has a couple other benefits:
 * It doesn't need the i2c_device_id passed in so we do not need
   to have that forward declared, allowing us to remove those or
   move the i2c_device_id table down to its more natural spot
   with the other module info.
 * It also checks for device match data, which allows for OF and
   ACPI based probing. That means we do not have to manually check
   those first and can remove those checks.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 sound/soc/codecs/ad193x-i2c.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/sound/soc/codecs/ad193x-i2c.c b/sound/soc/codecs/ad193x-i2c.c
index 15d74bb31c4c5..6aa168e01fbbd 100644
--- a/sound/soc/codecs/ad193x-i2c.c
+++ b/sound/soc/codecs/ad193x-i2c.c
@@ -23,7 +23,6 @@ MODULE_DEVICE_TABLE(i2c, ad193x_id);
 static int ad193x_i2c_probe(struct i2c_client *client)
 {
 	struct regmap_config config;
-	const struct i2c_device_id *id = i2c_match_id(ad193x_id, client);
 
 	config = ad193x_regmap_config;
 	config.val_bits = 8;
@@ -31,7 +30,7 @@ static int ad193x_i2c_probe(struct i2c_client *client)
 
 	return ad193x_probe(&client->dev,
 			    devm_regmap_init_i2c(client, &config),
-			    (enum ad193x_type)id->driver_data);
+			    (uintptr_t)i2c_get_match_data(client));
 }
 
 static struct i2c_driver ad193x_i2c_driver = {
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 02/21] ASoC: adau1761: Remove use of i2c_match_id()
  2024-12-03 19:59 [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id() Andrew Davis
@ 2024-12-03 19:59 ` Andrew Davis
  2024-12-03 19:59 ` [PATCH 03/21] ASoC: adau1781: " Andrew Davis
                   ` (19 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: Andrew Davis @ 2024-12-03 19:59 UTC (permalink / raw)
  To: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut
  Cc: patches, linux-sound, linux-kernel, Andrew Davis

The function i2c_match_id() is used to fetch the matching ID from
the i2c_device_id table. This is often used to then retrieve the
matching driver_data. This can be done in one step with the helper
i2c_get_match_data().

This helper has a couple other benefits:
 * It doesn't need the i2c_device_id passed in so we do not need
   to have that forward declared, allowing us to remove those or
   move the i2c_device_id table down to its more natural spot
   with the other module info.
 * It also checks for device match data, which allows for OF and
   ACPI based probing. That means we do not have to manually check
   those first and can remove those checks.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 sound/soc/codecs/adau1761-i2c.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/sound/soc/codecs/adau1761-i2c.c b/sound/soc/codecs/adau1761-i2c.c
index a554255186aef..eba7e4f42c78a 100644
--- a/sound/soc/codecs/adau1761-i2c.c
+++ b/sound/soc/codecs/adau1761-i2c.c
@@ -14,12 +14,9 @@
 
 #include "adau1761.h"
 
-static const struct i2c_device_id adau1761_i2c_ids[];
-
 static int adau1761_i2c_probe(struct i2c_client *client)
 {
 	struct regmap_config config;
-	const struct i2c_device_id *id = i2c_match_id(adau1761_i2c_ids, client);
 
 	config = adau1761_regmap_config;
 	config.val_bits = 8;
@@ -27,7 +24,7 @@ static int adau1761_i2c_probe(struct i2c_client *client)
 
 	return adau1761_probe(&client->dev,
 		devm_regmap_init_i2c(client, &config),
-		id->driver_data, NULL);
+		(uintptr_t)i2c_get_match_data(client), NULL);
 }
 
 static void adau1761_i2c_remove(struct i2c_client *client)
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 03/21] ASoC: adau1781: Remove use of i2c_match_id()
  2024-12-03 19:59 [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id() Andrew Davis
  2024-12-03 19:59 ` [PATCH 02/21] ASoC: adau1761: " Andrew Davis
@ 2024-12-03 19:59 ` Andrew Davis
  2024-12-03 19:59 ` [PATCH 04/21] ASoC: adau1977: " Andrew Davis
                   ` (18 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: Andrew Davis @ 2024-12-03 19:59 UTC (permalink / raw)
  To: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut
  Cc: patches, linux-sound, linux-kernel, Andrew Davis

The function i2c_match_id() is used to fetch the matching ID from
the i2c_device_id table. This is often used to then retrieve the
matching driver_data. This can be done in one step with the helper
i2c_get_match_data().

This helper has a couple other benefits:
 * It doesn't need the i2c_device_id passed in so we do not need
   to have that forward declared, allowing us to remove those or
   move the i2c_device_id table down to its more natural spot
   with the other module info.
 * It also checks for device match data, which allows for OF and
   ACPI based probing. That means we do not have to manually check
   those first and can remove those checks.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 sound/soc/codecs/adau1781-i2c.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/sound/soc/codecs/adau1781-i2c.c b/sound/soc/codecs/adau1781-i2c.c
index 3a170fd78ff32..cb67fde8d9a84 100644
--- a/sound/soc/codecs/adau1781-i2c.c
+++ b/sound/soc/codecs/adau1781-i2c.c
@@ -14,12 +14,9 @@
 
 #include "adau1781.h"
 
-static const struct i2c_device_id adau1781_i2c_ids[];
-
 static int adau1781_i2c_probe(struct i2c_client *client)
 {
 	struct regmap_config config;
-	const struct i2c_device_id *id = i2c_match_id(adau1781_i2c_ids, client);
 
 	config = adau1781_regmap_config;
 	config.val_bits = 8;
@@ -27,7 +24,7 @@ static int adau1781_i2c_probe(struct i2c_client *client)
 
 	return adau1781_probe(&client->dev,
 		devm_regmap_init_i2c(client, &config),
-		id->driver_data, NULL);
+		(uintptr_t)i2c_get_match_data(client), NULL);
 }
 
 static void adau1781_i2c_remove(struct i2c_client *client)
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 04/21] ASoC: adau1977: Remove use of i2c_match_id()
  2024-12-03 19:59 [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id() Andrew Davis
  2024-12-03 19:59 ` [PATCH 02/21] ASoC: adau1761: " Andrew Davis
  2024-12-03 19:59 ` [PATCH 03/21] ASoC: adau1781: " Andrew Davis
@ 2024-12-03 19:59 ` Andrew Davis
  2024-12-03 19:59 ` [PATCH 05/21] ASoC: alc5623: " Andrew Davis
                   ` (17 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: Andrew Davis @ 2024-12-03 19:59 UTC (permalink / raw)
  To: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut
  Cc: patches, linux-sound, linux-kernel, Andrew Davis

The function i2c_match_id() is used to fetch the matching ID from
the i2c_device_id table. This is often used to then retrieve the
matching driver_data. This can be done in one step with the helper
i2c_get_match_data().

This helper has a couple other benefits:
 * It doesn't need the i2c_device_id passed in so we do not need
   to have that forward declared, allowing us to remove those or
   move the i2c_device_id table down to its more natural spot
   with the other module info.
 * It also checks for device match data, which allows for OF and
   ACPI based probing. That means we do not have to manually check
   those first and can remove those checks.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 sound/soc/codecs/adau1977-i2c.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/sound/soc/codecs/adau1977-i2c.c b/sound/soc/codecs/adau1977-i2c.c
index 24c7b9c84c198..441c8079246a4 100644
--- a/sound/soc/codecs/adau1977-i2c.c
+++ b/sound/soc/codecs/adau1977-i2c.c
@@ -14,12 +14,9 @@
 
 #include "adau1977.h"
 
-static const struct i2c_device_id adau1977_i2c_ids[];
-
 static int adau1977_i2c_probe(struct i2c_client *client)
 {
 	struct regmap_config config;
-	const struct i2c_device_id *id = i2c_match_id(adau1977_i2c_ids, client);
 
 	config = adau1977_regmap_config;
 	config.val_bits = 8;
@@ -27,7 +24,7 @@ static int adau1977_i2c_probe(struct i2c_client *client)
 
 	return adau1977_probe(&client->dev,
 		devm_regmap_init_i2c(client, &config),
-		id->driver_data, NULL);
+		(uintptr_t)i2c_get_match_data(client), NULL);
 }
 
 static const struct i2c_device_id adau1977_i2c_ids[] = {
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 05/21] ASoC: alc5623: Remove use of i2c_match_id()
  2024-12-03 19:59 [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id() Andrew Davis
                   ` (2 preceding siblings ...)
  2024-12-03 19:59 ` [PATCH 04/21] ASoC: adau1977: " Andrew Davis
@ 2024-12-03 19:59 ` Andrew Davis
  2024-12-03 19:59 ` [PATCH 06/21] ASoC: alc5632: " Andrew Davis
                   ` (16 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: Andrew Davis @ 2024-12-03 19:59 UTC (permalink / raw)
  To: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut
  Cc: patches, linux-sound, linux-kernel, Andrew Davis

The function i2c_match_id() is used to fetch the matching ID from
the i2c_device_id table. This is often used to then retrieve the
matching driver_data. This can be done in one step with the helper
i2c_get_match_data().

This helper has a couple other benefits:
 * It doesn't need the i2c_device_id passed in so we do not need
   to have that forward declared, allowing us to remove those or
   move the i2c_device_id table down to its more natural spot
   with the other module info.
 * It also checks for device match data, which allows for OF and
   ACPI based probing. That means we do not have to manually check
   those first and can remove those checks.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 sound/soc/codecs/alc5623.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/sound/soc/codecs/alc5623.c b/sound/soc/codecs/alc5623.c
index b24c322068847..fbf7237580797 100644
--- a/sound/soc/codecs/alc5623.c
+++ b/sound/soc/codecs/alc5623.c
@@ -987,9 +987,9 @@ static int alc5623_i2c_probe(struct i2c_client *client)
 	struct alc5623_priv *alc5623;
 	struct device_node *np;
 	unsigned int vid1, vid2;
+	unsigned int matched_id;
 	int ret;
 	u32 val32;
-	const struct i2c_device_id *id;
 
 	alc5623 = devm_kzalloc(&client->dev, sizeof(struct alc5623_priv),
 			       GFP_KERNEL);
@@ -1016,12 +1016,12 @@ static int alc5623_i2c_probe(struct i2c_client *client)
 	}
 	vid2 >>= 8;
 
-	id = i2c_match_id(alc5623_i2c_table, client);
+	matched_id = (uintptr_t)i2c_get_match_data(client);
 
-	if ((vid1 != 0x10ec) || (vid2 != id->driver_data)) {
+	if ((vid1 != 0x10ec) || (vid2 != matched_id)) {
 		dev_err(&client->dev, "unknown or wrong codec\n");
-		dev_err(&client->dev, "Expected %x:%lx, got %x:%x\n",
-				0x10ec, id->driver_data,
+		dev_err(&client->dev, "Expected %x:%x, got %x:%x\n",
+				0x10ec, matched_id,
 				vid1, vid2);
 		return -ENODEV;
 	}
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 06/21] ASoC: alc5632: Remove use of i2c_match_id()
  2024-12-03 19:59 [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id() Andrew Davis
                   ` (3 preceding siblings ...)
  2024-12-03 19:59 ` [PATCH 05/21] ASoC: alc5623: " Andrew Davis
@ 2024-12-03 19:59 ` Andrew Davis
  2024-12-03 19:59 ` [PATCH 07/21] ASoC: max98088: " Andrew Davis
                   ` (15 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: Andrew Davis @ 2024-12-03 19:59 UTC (permalink / raw)
  To: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut
  Cc: patches, linux-sound, linux-kernel, Andrew Davis

The function i2c_match_id() is used to fetch the matching ID from
the i2c_device_id table. This is often used to then retrieve the
matching driver_data. This can be done in one step with the helper
i2c_get_match_data().

This helper has a couple other benefits:
 * It doesn't need the i2c_device_id passed in so we do not need
   to have that forward declared, allowing us to remove those or
   move the i2c_device_id table down to its more natural spot
   with the other module info.
 * It also checks for device match data, which allows for OF and
   ACPI based probing. That means we do not have to manually check
   those first and can remove those checks.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 sound/soc/codecs/alc5632.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sound/soc/codecs/alc5632.c b/sound/soc/codecs/alc5632.c
index d5021f2669301..72f4622204fff 100644
--- a/sound/soc/codecs/alc5632.c
+++ b/sound/soc/codecs/alc5632.c
@@ -1108,7 +1108,7 @@ static int alc5632_i2c_probe(struct i2c_client *client)
 	struct alc5632_priv *alc5632;
 	int ret, ret1, ret2;
 	unsigned int vid1, vid2;
-	const struct i2c_device_id *id;
+	unsigned int matched_id;
 
 	alc5632 = devm_kzalloc(&client->dev,
 			 sizeof(struct alc5632_priv), GFP_KERNEL);
@@ -1134,9 +1134,9 @@ static int alc5632_i2c_probe(struct i2c_client *client)
 
 	vid2 >>= 8;
 
-	id = i2c_match_id(alc5632_i2c_table, client);
+	matched_id = (uintptr_t)i2c_get_match_data(client);
 
-	if ((vid1 != 0x10EC) || (vid2 != id->driver_data)) {
+	if ((vid1 != 0x10EC) || (vid2 != matched_id)) {
 		dev_err(&client->dev,
 		"Device is not a ALC5632: VID1=0x%x, VID2=0x%x\n", vid1, vid2);
 		return -EINVAL;
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 07/21] ASoC: max98088: Remove use of i2c_match_id()
  2024-12-03 19:59 [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id() Andrew Davis
                   ` (4 preceding siblings ...)
  2024-12-03 19:59 ` [PATCH 06/21] ASoC: alc5632: " Andrew Davis
@ 2024-12-03 19:59 ` Andrew Davis
  2024-12-03 19:59 ` [PATCH 08/21] ASoC: max98090: " Andrew Davis
                   ` (14 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: Andrew Davis @ 2024-12-03 19:59 UTC (permalink / raw)
  To: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut
  Cc: patches, linux-sound, linux-kernel, Andrew Davis

The function i2c_match_id() is used to fetch the matching ID from
the i2c_device_id table. This is often used to then retrieve the
matching driver_data. This can be done in one step with the helper
i2c_get_match_data().

This helper has a couple other benefits:
 * It doesn't need the i2c_device_id passed in so we do not need
   to have that forward declared, allowing us to remove those or
   move the i2c_device_id table down to its more natural spot
   with the other module info.
 * It also checks for device match data, which allows for OF and
   ACPI based probing. That means we do not have to manually check
   those first and can remove those checks.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 sound/soc/codecs/max98088.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/sound/soc/codecs/max98088.c b/sound/soc/codecs/max98088.c
index 8915f52506953..37e61d8d4be6c 100644
--- a/sound/soc/codecs/max98088.c
+++ b/sound/soc/codecs/max98088.c
@@ -1731,7 +1731,6 @@ MODULE_DEVICE_TABLE(i2c, max98088_i2c_id);
 static int max98088_i2c_probe(struct i2c_client *i2c)
 {
 	struct max98088_priv *max98088;
-	const struct i2c_device_id *id;
 
 	max98088 = devm_kzalloc(&i2c->dev, sizeof(struct max98088_priv),
 				GFP_KERNEL);
@@ -1747,8 +1746,7 @@ static int max98088_i2c_probe(struct i2c_client *i2c)
 		if (PTR_ERR(max98088->mclk) == -EPROBE_DEFER)
 			return PTR_ERR(max98088->mclk);
 
-	id = i2c_match_id(max98088_i2c_id, i2c);
-	max98088->devtype = id->driver_data;
+	max98088->devtype = (uintptr_t)i2c_get_match_data(i2c);
 
 	i2c_set_clientdata(i2c, max98088);
 	max98088->pdata = i2c->dev.platform_data;
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 08/21] ASoC: max98090: Remove use of i2c_match_id()
  2024-12-03 19:59 [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id() Andrew Davis
                   ` (5 preceding siblings ...)
  2024-12-03 19:59 ` [PATCH 07/21] ASoC: max98088: " Andrew Davis
@ 2024-12-03 19:59 ` Andrew Davis
  2024-12-03 19:59 ` [PATCH 09/21] ASoC: max98095: " Andrew Davis
                   ` (13 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: Andrew Davis @ 2024-12-03 19:59 UTC (permalink / raw)
  To: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut
  Cc: patches, linux-sound, linux-kernel, Andrew Davis

The function i2c_match_id() is used to fetch the matching ID from
the i2c_device_id table. This is often used to then retrieve the
matching driver_data. This can be done in one step with the helper
i2c_get_match_data().

This helper has a couple other benefits:
 * It doesn't need the i2c_device_id passed in so we do not need
   to have that forward declared, allowing us to remove those or
   move the i2c_device_id table down to its more natural spot
   with the other module info.
 * It also checks for device match data, which allows for OF and
   ACPI based probing. That means we do not have to manually check
   those first and can remove those checks.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 sound/soc/codecs/max98090.c | 18 +-----------------
 1 file changed, 1 insertion(+), 17 deletions(-)

diff --git a/sound/soc/codecs/max98090.c b/sound/soc/codecs/max98090.c
index 2adf744c65263..790e2ae6dc182 100644
--- a/sound/soc/codecs/max98090.c
+++ b/sound/soc/codecs/max98090.c
@@ -2543,8 +2543,6 @@ MODULE_DEVICE_TABLE(i2c, max98090_i2c_id);
 static int max98090_i2c_probe(struct i2c_client *i2c)
 {
 	struct max98090_priv *max98090;
-	const struct acpi_device_id *acpi_id;
-	kernel_ulong_t driver_data = 0;
 	int ret;
 
 	pr_debug("max98090_i2c_probe\n");
@@ -2554,21 +2552,7 @@ static int max98090_i2c_probe(struct i2c_client *i2c)
 	if (max98090 == NULL)
 		return -ENOMEM;
 
-	if (ACPI_HANDLE(&i2c->dev)) {
-		acpi_id = acpi_match_device(i2c->dev.driver->acpi_match_table,
-					    &i2c->dev);
-		if (!acpi_id) {
-			dev_err(&i2c->dev, "No driver data\n");
-			return -EINVAL;
-		}
-		driver_data = acpi_id->driver_data;
-	} else {
-		const struct i2c_device_id *i2c_id =
-			i2c_match_id(max98090_i2c_id, i2c);
-		driver_data = i2c_id->driver_data;
-	}
-
-	max98090->devtype = driver_data;
+	max98090->devtype = (uintptr_t)i2c_get_match_data(i2c);
 	i2c_set_clientdata(i2c, max98090);
 	max98090->pdata = i2c->dev.platform_data;
 
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 09/21] ASoC: max98095: Remove use of i2c_match_id()
  2024-12-03 19:59 [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id() Andrew Davis
                   ` (6 preceding siblings ...)
  2024-12-03 19:59 ` [PATCH 08/21] ASoC: max98090: " Andrew Davis
@ 2024-12-03 19:59 ` Andrew Davis
  2024-12-03 19:59 ` [PATCH 10/21] ASoC: pcm186x: " Andrew Davis
                   ` (12 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: Andrew Davis @ 2024-12-03 19:59 UTC (permalink / raw)
  To: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut
  Cc: patches, linux-sound, linux-kernel, Andrew Davis

The function i2c_match_id() is used to fetch the matching ID from
the i2c_device_id table. This is often used to then retrieve the
matching driver_data. This can be done in one step with the helper
i2c_get_match_data().

This helper has a couple other benefits:
 * It doesn't need the i2c_device_id passed in so we do not need
   to have that forward declared, allowing us to remove those or
   move the i2c_device_id table down to its more natural spot
   with the other module info.
 * It also checks for device match data, which allows for OF and
   ACPI based probing. That means we do not have to manually check
   those first and can remove those checks.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 sound/soc/codecs/max98095.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/sound/soc/codecs/max98095.c b/sound/soc/codecs/max98095.c
index 7e525d49328d2..cfb63fe69267b 100644
--- a/sound/soc/codecs/max98095.c
+++ b/sound/soc/codecs/max98095.c
@@ -2115,7 +2115,6 @@ static int max98095_i2c_probe(struct i2c_client *i2c)
 {
 	struct max98095_priv *max98095;
 	int ret;
-	const struct i2c_device_id *id;
 
 	max98095 = devm_kzalloc(&i2c->dev, sizeof(struct max98095_priv),
 				GFP_KERNEL);
@@ -2131,8 +2130,7 @@ static int max98095_i2c_probe(struct i2c_client *i2c)
 		return ret;
 	}
 
-	id = i2c_match_id(max98095_i2c_id, i2c);
-	max98095->devtype = id->driver_data;
+	max98095->devtype = (uintptr_t)i2c_get_match_data(i2c);
 	i2c_set_clientdata(i2c, max98095);
 	max98095->pdata = i2c->dev.platform_data;
 
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 10/21] ASoC: pcm186x: Remove use of i2c_match_id()
  2024-12-03 19:59 [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id() Andrew Davis
                   ` (7 preceding siblings ...)
  2024-12-03 19:59 ` [PATCH 09/21] ASoC: max98095: " Andrew Davis
@ 2024-12-03 19:59 ` Andrew Davis
  2024-12-03 19:59 ` [PATCH 11/21] ASoc: pcm6240: " Andrew Davis
                   ` (11 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: Andrew Davis @ 2024-12-03 19:59 UTC (permalink / raw)
  To: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut
  Cc: patches, linux-sound, linux-kernel, Andrew Davis

The function i2c_match_id() is used to fetch the matching ID from
the i2c_device_id table. This is often used to then retrieve the
matching driver_data. This can be done in one step with the helper
i2c_get_match_data().

This helper has a couple other benefits:
 * It doesn't need the i2c_device_id passed in so we do not need
   to have that forward declared, allowing us to remove those or
   move the i2c_device_id table down to its more natural spot
   with the other module info.
 * It also checks for device match data, which allows for OF and
   ACPI based probing. That means we do not have to manually check
   those first and can remove those checks.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 sound/soc/codecs/pcm186x-i2c.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/sound/soc/codecs/pcm186x-i2c.c b/sound/soc/codecs/pcm186x-i2c.c
index a514ebd1b68ac..a50f9f6e39c18 100644
--- a/sound/soc/codecs/pcm186x-i2c.c
+++ b/sound/soc/codecs/pcm186x-i2c.c
@@ -33,8 +33,7 @@ MODULE_DEVICE_TABLE(i2c, pcm186x_i2c_id);
 
 static int pcm186x_i2c_probe(struct i2c_client *i2c)
 {
-	const struct i2c_device_id *id = i2c_match_id(pcm186x_i2c_id, i2c);
-	const enum pcm186x_type type = (enum pcm186x_type)id->driver_data;
+	const enum pcm186x_type type = (uintptr_t)i2c_get_match_data(i2c);
 	int irq = i2c->irq;
 	struct regmap *regmap;
 
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 11/21] ASoc: pcm6240: Remove use of i2c_match_id()
  2024-12-03 19:59 [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id() Andrew Davis
                   ` (8 preceding siblings ...)
  2024-12-03 19:59 ` [PATCH 10/21] ASoC: pcm186x: " Andrew Davis
@ 2024-12-03 19:59 ` Andrew Davis
  2024-12-03 19:59 ` [PATCH 12/21] ASoC: ssm2602: " Andrew Davis
                   ` (10 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: Andrew Davis @ 2024-12-03 19:59 UTC (permalink / raw)
  To: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut
  Cc: patches, linux-sound, linux-kernel, Andrew Davis

The function i2c_match_id() is used to fetch the matching ID from
the i2c_device_id table. This is often used to then retrieve the
matching driver_data. This can be done in one step with the helper
i2c_get_match_data().

This helper has a couple other benefits:
 * It doesn't need the i2c_device_id passed in so we do not need
   to have that forward declared, allowing us to remove those or
   move the i2c_device_id table down to its more natural spot
   with the other module info.
 * It also checks for device match data, which allows for OF and
   ACPI based probing. That means we do not have to manually check
   those first and can remove those checks.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 sound/soc/codecs/pcm6240.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/sound/soc/codecs/pcm6240.c b/sound/soc/codecs/pcm6240.c
index 5d99877f88397..4ff39e0b95b27 100644
--- a/sound/soc/codecs/pcm6240.c
+++ b/sound/soc/codecs/pcm6240.c
@@ -2059,7 +2059,6 @@ static char *str_to_upper(char *str)
 
 static int pcmdevice_i2c_probe(struct i2c_client *i2c)
 {
-	const struct i2c_device_id *id = i2c_match_id(pcmdevice_i2c_id, i2c);
 	struct pcmdevice_priv *pcm_dev;
 	struct device_node *np;
 	unsigned int dev_addrs[PCMDEVICE_MAX_I2C_DEVICES];
@@ -2069,7 +2068,7 @@ static int pcmdevice_i2c_probe(struct i2c_client *i2c)
 	if (!pcm_dev)
 		return -ENOMEM;
 
-	pcm_dev->chip_id = (id != NULL) ? id->driver_data : 0;
+	pcm_dev->chip_id = (uintptr_t)i2c_get_match_data(i2c);
 
 	pcm_dev->dev = &i2c->dev;
 	pcm_dev->client = i2c;
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 12/21] ASoC: ssm2602: Remove use of i2c_match_id()
  2024-12-03 19:59 [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id() Andrew Davis
                   ` (9 preceding siblings ...)
  2024-12-03 19:59 ` [PATCH 11/21] ASoc: pcm6240: " Andrew Davis
@ 2024-12-03 19:59 ` Andrew Davis
  2024-12-03 19:59 ` [PATCH 13/21] ASoC: tas2562: " Andrew Davis
                   ` (9 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: Andrew Davis @ 2024-12-03 19:59 UTC (permalink / raw)
  To: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut
  Cc: patches, linux-sound, linux-kernel, Andrew Davis

The function i2c_match_id() is used to fetch the matching ID from
the i2c_device_id table. This is often used to then retrieve the
matching driver_data. This can be done in one step with the helper
i2c_get_match_data().

This helper has a couple other benefits:
 * It doesn't need the i2c_device_id passed in so we do not need
   to have that forward declared, allowing us to remove those or
   move the i2c_device_id table down to its more natural spot
   with the other module info.
 * It also checks for device match data, which allows for OF and
   ACPI based probing. That means we do not have to manually check
   those first and can remove those checks.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 sound/soc/codecs/ssm2602-i2c.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/sound/soc/codecs/ssm2602-i2c.c b/sound/soc/codecs/ssm2602-i2c.c
index 596096466cd48..49c74cba17c70 100644
--- a/sound/soc/codecs/ssm2602-i2c.c
+++ b/sound/soc/codecs/ssm2602-i2c.c
@@ -13,8 +13,6 @@
 
 #include "ssm2602.h"
 
-static const struct i2c_device_id ssm2602_i2c_id[];
-
 /*
  * ssm2602 2 wire address is determined by GPIO5
  * state during powerup.
@@ -23,8 +21,7 @@ static const struct i2c_device_id ssm2602_i2c_id[];
  */
 static int ssm2602_i2c_probe(struct i2c_client *client)
 {
-	const struct i2c_device_id *id = i2c_match_id(ssm2602_i2c_id, client);
-	return ssm2602_probe(&client->dev, id->driver_data,
+	return ssm2602_probe(&client->dev, (uintptr_t)i2c_get_match_data(client),
 		devm_regmap_init_i2c(client, &ssm2602_regmap_config));
 }
 
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 13/21] ASoC: tas2562: Remove use of i2c_match_id()
  2024-12-03 19:59 [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id() Andrew Davis
                   ` (10 preceding siblings ...)
  2024-12-03 19:59 ` [PATCH 12/21] ASoC: ssm2602: " Andrew Davis
@ 2024-12-03 19:59 ` Andrew Davis
  2024-12-03 19:59 ` [PATCH 14/21] ASoC: tas2781: " Andrew Davis
                   ` (8 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: Andrew Davis @ 2024-12-03 19:59 UTC (permalink / raw)
  To: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut
  Cc: patches, linux-sound, linux-kernel, Andrew Davis

The function i2c_match_id() is used to fetch the matching ID from
the i2c_device_id table. This is often used to then retrieve the
matching driver_data. This can be done in one step with the helper
i2c_get_match_data().

This helper has a couple other benefits:
 * It doesn't need the i2c_device_id passed in so we do not need
   to have that forward declared, allowing us to remove those or
   move the i2c_device_id table down to its more natural spot
   with the other module info.
 * It also checks for device match data, which allows for OF and
   ACPI based probing. That means we do not have to manually check
   those first and can remove those checks.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 sound/soc/codecs/tas2562.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/sound/soc/codecs/tas2562.c b/sound/soc/codecs/tas2562.c
index 54561ae598b87..fef7ce39f6643 100644
--- a/sound/soc/codecs/tas2562.c
+++ b/sound/soc/codecs/tas2562.c
@@ -731,16 +731,14 @@ static int tas2562_probe(struct i2c_client *client)
 	struct device *dev = &client->dev;
 	struct tas2562_data *data;
 	int ret;
-	const struct i2c_device_id *id;
 
 	data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
 	if (!data)
 		return -ENOMEM;
 
-	id = i2c_match_id(tas2562_id, client);
 	data->client = client;
 	data->dev = &client->dev;
-	data->model_id = id->driver_data;
+	data->model_id = (uintptr_t)i2c_get_match_data(client);
 
 	tas2562_parse_dt(data);
 
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 14/21] ASoC: tas2781: Remove use of i2c_match_id()
  2024-12-03 19:59 [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id() Andrew Davis
                   ` (11 preceding siblings ...)
  2024-12-03 19:59 ` [PATCH 13/21] ASoC: tas2562: " Andrew Davis
@ 2024-12-03 19:59 ` Andrew Davis
  2024-12-03 19:59 ` [PATCH 15/21] ASoC: tas5720: " Andrew Davis
                   ` (7 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: Andrew Davis @ 2024-12-03 19:59 UTC (permalink / raw)
  To: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut
  Cc: patches, linux-sound, linux-kernel, Andrew Davis

The function i2c_match_id() is used to fetch the matching ID from
the i2c_device_id table. This is often used to then retrieve the
matching driver_data. This can be done in one step with the helper
i2c_get_match_data().

This helper has a couple other benefits:
 * It doesn't need the i2c_device_id passed in so we do not need
   to have that forward declared, allowing us to remove those or
   move the i2c_device_id table down to its more natural spot
   with the other module info.
 * It also checks for device match data, which allows for OF and
   ACPI based probing. That means we do not have to manually check
   those first and can remove those checks.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 sound/soc/codecs/tas2781-i2c.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/sound/soc/codecs/tas2781-i2c.c b/sound/soc/codecs/tas2781-i2c.c
index e41f81eb8d16c..5e59b80fe0082 100644
--- a/sound/soc/codecs/tas2781-i2c.c
+++ b/sound/soc/codecs/tas2781-i2c.c
@@ -1663,7 +1663,6 @@ static void tasdevice_parse_dt(struct tasdevice_priv *tas_priv)
 
 static int tasdevice_i2c_probe(struct i2c_client *i2c)
 {
-	const struct i2c_device_id *id = i2c_match_id(tasdevice_id, i2c);
 	const struct acpi_device_id *acpi_id;
 	struct tasdevice_priv *tas_priv;
 	int ret;
@@ -1685,7 +1684,7 @@ static int tasdevice_i2c_probe(struct i2c_client *i2c)
 		tas_priv->chip_id = acpi_id->driver_data;
 		tas_priv->isacpi = true;
 	} else {
-		tas_priv->chip_id = id ? id->driver_data : 0;
+		tas_priv->chip_id = (uintptr_t)i2c_get_match_data(i2c);
 		tas_priv->isacpi = false;
 	}
 
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 15/21] ASoC: tas5720: Remove use of i2c_match_id()
  2024-12-03 19:59 [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id() Andrew Davis
                   ` (12 preceding siblings ...)
  2024-12-03 19:59 ` [PATCH 14/21] ASoC: tas2781: " Andrew Davis
@ 2024-12-03 19:59 ` Andrew Davis
  2024-12-03 19:59 ` [PATCH 16/21] ASoC: tlv320adc3xxx: " Andrew Davis
                   ` (6 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: Andrew Davis @ 2024-12-03 19:59 UTC (permalink / raw)
  To: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut
  Cc: patches, linux-sound, linux-kernel, Andrew Davis

The function i2c_match_id() is used to fetch the matching ID from
the i2c_device_id table. This is often used to then retrieve the
matching driver_data. This can be done in one step with the helper
i2c_get_match_data().

This helper has a couple other benefits:
 * It doesn't need the i2c_device_id passed in so we do not need
   to have that forward declared, allowing us to remove those or
   move the i2c_device_id table down to its more natural spot
   with the other module info.
 * It also checks for device match data, which allows for OF and
   ACPI based probing. That means we do not have to manually check
   those first and can remove those checks.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 sound/soc/codecs/tas5720.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/sound/soc/codecs/tas5720.c b/sound/soc/codecs/tas5720.c
index 6dd6c0896efff..f0361822061fd 100644
--- a/sound/soc/codecs/tas5720.c
+++ b/sound/soc/codecs/tas5720.c
@@ -43,7 +43,6 @@ static const char * const tas5720_supply_names[] = {
 struct tas5720_data {
 	struct snd_soc_component *component;
 	struct regmap *regmap;
-	struct i2c_client *tas5720_client;
 	enum tas572x_type devtype;
 	struct regulator_bulk_data supplies[TAS5720_NUM_SUPPLIES];
 	struct delayed_work fault_check_work;
@@ -729,7 +728,6 @@ static int tas5720_probe(struct i2c_client *client)
 	struct device *dev = &client->dev;
 	struct tas5720_data *data;
 	const struct regmap_config *regmap_config;
-	const struct i2c_device_id *id;
 	int ret;
 	int i;
 
@@ -737,11 +735,9 @@ static int tas5720_probe(struct i2c_client *client)
 	if (!data)
 		return -ENOMEM;
 
-	id = i2c_match_id(tas5720_id, client);
-	data->tas5720_client = client;
-	data->devtype = id->driver_data;
+	data->devtype = (uintptr_t)i2c_get_match_data(client);
 
-	switch (id->driver_data) {
+	switch (data->devtype) {
 	case TAS5720:
 		regmap_config = &tas5720_regmap_config;
 		break;
@@ -774,7 +770,7 @@ static int tas5720_probe(struct i2c_client *client)
 
 	dev_set_drvdata(dev, data);
 
-	switch (id->driver_data) {
+	switch (data->devtype) {
 	case TAS5720:
 		ret = devm_snd_soc_register_component(&client->dev,
 					&soc_component_dev_tas5720,
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 16/21] ASoC: tlv320adc3xxx: Remove use of i2c_match_id()
  2024-12-03 19:59 [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id() Andrew Davis
                   ` (13 preceding siblings ...)
  2024-12-03 19:59 ` [PATCH 15/21] ASoC: tas5720: " Andrew Davis
@ 2024-12-03 19:59 ` Andrew Davis
  2024-12-03 19:59 ` [PATCH 17/21] ASoC: tlv320aic31xx: " Andrew Davis
                   ` (5 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: Andrew Davis @ 2024-12-03 19:59 UTC (permalink / raw)
  To: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut
  Cc: patches, linux-sound, linux-kernel, Andrew Davis

The function i2c_match_id() is used to fetch the matching ID from
the i2c_device_id table. This is often used to then retrieve the
matching driver_data. This can be done in one step with the helper
i2c_get_match_data().

This helper has a couple other benefits:
 * It doesn't need the i2c_device_id passed in so we do not need
   to have that forward declared, allowing us to remove those or
   move the i2c_device_id table down to its more natural spot
   with the other module info.
 * It also checks for device match data, which allows for OF and
   ACPI based probing. That means we do not have to manually check
   those first and can remove those checks.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 sound/soc/codecs/tlv320adc3xxx.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/sound/soc/codecs/tlv320adc3xxx.c b/sound/soc/codecs/tlv320adc3xxx.c
index 868e8a91e05b3..1a50ff6752441 100644
--- a/sound/soc/codecs/tlv320adc3xxx.c
+++ b/sound/soc/codecs/tlv320adc3xxx.c
@@ -1401,7 +1401,6 @@ static int adc3xxx_i2c_probe(struct i2c_client *i2c)
 {
 	struct device *dev = &i2c->dev;
 	struct adc3xxx *adc3xxx = NULL;
-	const struct i2c_device_id *id;
 	int ret;
 
 	adc3xxx = devm_kzalloc(dev, sizeof(struct adc3xxx), GFP_KERNEL);
@@ -1466,8 +1465,7 @@ static int adc3xxx_i2c_probe(struct i2c_client *i2c)
 
 	i2c_set_clientdata(i2c, adc3xxx);
 
-	id = i2c_match_id(adc3xxx_i2c_id, i2c);
-	adc3xxx->type = id->driver_data;
+	adc3xxx->type = (uintptr_t)i2c_get_match_data(i2c);
 
 	/* Reset codec chip */
 	gpiod_set_value_cansleep(adc3xxx->rst_pin, 1);
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 17/21] ASoC: tlv320aic31xx: Remove use of i2c_match_id()
  2024-12-03 19:59 [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id() Andrew Davis
                   ` (14 preceding siblings ...)
  2024-12-03 19:59 ` [PATCH 16/21] ASoC: tlv320adc3xxx: " Andrew Davis
@ 2024-12-03 19:59 ` Andrew Davis
  2024-12-03 19:59 ` [PATCH 18/21] ASoC: tlv320aic3x: " Andrew Davis
                   ` (4 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: Andrew Davis @ 2024-12-03 19:59 UTC (permalink / raw)
  To: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut
  Cc: patches, linux-sound, linux-kernel, Andrew Davis

The function i2c_match_id() is used to fetch the matching ID from
the i2c_device_id table. This is often used to then retrieve the
matching driver_data. This can be done in one step with the helper
i2c_get_match_data().

This helper has a couple other benefits:
 * It doesn't need the i2c_device_id passed in so we do not need
   to have that forward declared, allowing us to remove those or
   move the i2c_device_id table down to its more natural spot
   with the other module info.
 * It also checks for device match data, which allows for OF and
   ACPI based probing. That means we do not have to manually check
   those first and can remove those checks.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 sound/soc/codecs/tlv320aic31xx.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/sound/soc/codecs/tlv320aic31xx.c b/sound/soc/codecs/tlv320aic31xx.c
index d81ab9c25c29e..4b3f9128ec37e 100644
--- a/sound/soc/codecs/tlv320aic31xx.c
+++ b/sound/soc/codecs/tlv320aic31xx.c
@@ -1736,12 +1736,8 @@ static int aic31xx_i2c_probe(struct i2c_client *i2c)
 {
 	struct aic31xx_priv *aic31xx;
 	unsigned int micbias_value = MICBIAS_2_0V;
-	const struct i2c_device_id *id = i2c_match_id(aic31xx_i2c_id, i2c);
 	int i, ret;
 
-	dev_dbg(&i2c->dev, "## %s: %s codec_type = %d\n", __func__,
-		id->name, (int)id->driver_data);
-
 	aic31xx = devm_kzalloc(&i2c->dev, sizeof(*aic31xx), GFP_KERNEL);
 	if (!aic31xx)
 		return -ENOMEM;
@@ -1758,7 +1754,7 @@ static int aic31xx_i2c_probe(struct i2c_client *i2c)
 	aic31xx->dev = &i2c->dev;
 	aic31xx->irq = i2c->irq;
 
-	aic31xx->codec_type = id->driver_data;
+	aic31xx->codec_type = (uintptr_t)i2c_get_match_data(i2c);
 
 	dev_set_drvdata(aic31xx->dev, aic31xx);
 
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 18/21] ASoC: tlv320aic3x: Remove use of i2c_match_id()
  2024-12-03 19:59 [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id() Andrew Davis
                   ` (15 preceding siblings ...)
  2024-12-03 19:59 ` [PATCH 17/21] ASoC: tlv320aic31xx: " Andrew Davis
@ 2024-12-03 19:59 ` Andrew Davis
  2024-12-03 19:59 ` [PATCH 19/21] ASoC: tpa6130a2: " Andrew Davis
                   ` (3 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: Andrew Davis @ 2024-12-03 19:59 UTC (permalink / raw)
  To: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut
  Cc: patches, linux-sound, linux-kernel, Andrew Davis

The function i2c_match_id() is used to fetch the matching ID from
the i2c_device_id table. This is often used to then retrieve the
matching driver_data. This can be done in one step with the helper
i2c_get_match_data().

This helper has a couple other benefits:
 * It doesn't need the i2c_device_id passed in so we do not need
   to have that forward declared, allowing us to remove those or
   move the i2c_device_id table down to its more natural spot
   with the other module info.
 * It also checks for device match data, which allows for OF and
   ACPI based probing. That means we do not have to manually check
   those first and can remove those checks.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 sound/soc/codecs/tlv320aic3x-i2c.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/sound/soc/codecs/tlv320aic3x-i2c.c b/sound/soc/codecs/tlv320aic3x-i2c.c
index bb33fd3dfb4f0..0b585925c1ac4 100644
--- a/sound/soc/codecs/tlv320aic3x-i2c.c
+++ b/sound/soc/codecs/tlv320aic3x-i2c.c
@@ -31,14 +31,13 @@ static int aic3x_i2c_probe(struct i2c_client *i2c)
 {
 	struct regmap *regmap;
 	struct regmap_config config;
-	const struct i2c_device_id *id = i2c_match_id(aic3x_i2c_id, i2c);
 
 	config = aic3x_regmap;
 	config.reg_bits = 8;
 	config.val_bits = 8;
 
 	regmap = devm_regmap_init_i2c(i2c, &config);
-	return aic3x_probe(&i2c->dev, regmap, id->driver_data);
+	return aic3x_probe(&i2c->dev, regmap, (uintptr_t)i2c_get_match_data(i2c));
 }
 
 static void aic3x_i2c_remove(struct i2c_client *i2c)
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 19/21] ASoC: tpa6130a2: Remove use of i2c_match_id()
  2024-12-03 19:59 [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id() Andrew Davis
                   ` (16 preceding siblings ...)
  2024-12-03 19:59 ` [PATCH 18/21] ASoC: tlv320aic3x: " Andrew Davis
@ 2024-12-03 19:59 ` Andrew Davis
  2024-12-03 20:00 ` [PATCH 20/21] ASoC: wm8904: " Andrew Davis
                   ` (2 subsequent siblings)
  20 siblings, 0 replies; 24+ messages in thread
From: Andrew Davis @ 2024-12-03 19:59 UTC (permalink / raw)
  To: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut
  Cc: patches, linux-sound, linux-kernel, Andrew Davis

The function i2c_match_id() is used to fetch the matching ID from
the i2c_device_id table. This is often used to then retrieve the
matching driver_data. This can be done in one step with the helper
i2c_get_match_data().

This helper has a couple other benefits:
 * It doesn't need the i2c_device_id passed in so we do not need
   to have that forward declared, allowing us to remove those or
   move the i2c_device_id table down to its more natural spot
   with the other module info.
 * It also checks for device match data, which allows for OF and
   ACPI based probing. That means we do not have to manually check
   those first and can remove those checks.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 sound/soc/codecs/tpa6130a2.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/sound/soc/codecs/tpa6130a2.c b/sound/soc/codecs/tpa6130a2.c
index 5bc486283fdee..b5472fa1bddab 100644
--- a/sound/soc/codecs/tpa6130a2.c
+++ b/sound/soc/codecs/tpa6130a2.c
@@ -222,7 +222,6 @@ static int tpa6130a2_probe(struct i2c_client *client)
 	struct tpa6130a2_data *data;
 	struct tpa6130a2_platform_data *pdata = client->dev.platform_data;
 	struct device_node *np = client->dev.of_node;
-	const struct i2c_device_id *id;
 	const char *regulator;
 	unsigned int version;
 	int ret;
@@ -251,8 +250,7 @@ static int tpa6130a2_probe(struct i2c_client *client)
 
 	i2c_set_clientdata(client, data);
 
-	id = i2c_match_id(tpa6130a2_id, client);
-	data->id = id->driver_data;
+	data->id = (uintptr_t)i2c_get_match_data(client);
 
 	if (data->power_gpio >= 0) {
 		ret = devm_gpio_request(dev, data->power_gpio,
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 20/21] ASoC: wm8904: Remove use of i2c_match_id()
  2024-12-03 19:59 [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id() Andrew Davis
                   ` (17 preceding siblings ...)
  2024-12-03 19:59 ` [PATCH 19/21] ASoC: tpa6130a2: " Andrew Davis
@ 2024-12-03 20:00 ` Andrew Davis
  2024-12-05 13:39   ` Charles Keepax
  2024-12-03 20:00 ` [PATCH 21/21] ASoC: wm8985: " Andrew Davis
  2024-12-10 13:00 ` [PATCH 01/21] ASoC: ad193x: " Mark Brown
  20 siblings, 1 reply; 24+ messages in thread
From: Andrew Davis @ 2024-12-03 20:00 UTC (permalink / raw)
  To: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut
  Cc: patches, linux-sound, linux-kernel, Andrew Davis

The function i2c_match_id() is used to fetch the matching ID from
the i2c_device_id table. This is often used to then retrieve the
matching driver_data. This can be done in one step with the helper
i2c_get_match_data().

This helper has a couple other benefits:
 * It doesn't need the i2c_device_id passed in so we do not need
   to have that forward declared, allowing us to remove those or
   move the i2c_device_id table down to its more natural spot
   with the other module info.
 * It also checks for device match data, which allows for OF and
   ACPI based probing. That means we do not have to manually check
   those first and can remove those checks.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 sound/soc/codecs/wm8904.c | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/sound/soc/codecs/wm8904.c b/sound/soc/codecs/wm8904.c
index 829bf055622a7..aef82532f8cfe 100644
--- a/sound/soc/codecs/wm8904.c
+++ b/sound/soc/codecs/wm8904.c
@@ -2196,18 +2196,7 @@ static int wm8904_i2c_probe(struct i2c_client *i2c)
 		return ret;
 	}
 
-	if (i2c->dev.of_node) {
-		const struct of_device_id *match;
-
-		match = of_match_node(wm8904_of_match, i2c->dev.of_node);
-		if (match == NULL)
-			return -EINVAL;
-		wm8904->devtype = (uintptr_t)match->data;
-	} else {
-		const struct i2c_device_id *id =
-			i2c_match_id(wm8904_i2c_id, i2c);
-		wm8904->devtype = id->driver_data;
-	}
+	wm8904->devtype = (uintptr_t)i2c_get_match_data(i2c);
 
 	i2c_set_clientdata(i2c, wm8904);
 	wm8904->pdata = i2c->dev.platform_data;
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 21/21] ASoC: wm8985: Remove use of i2c_match_id()
  2024-12-03 19:59 [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id() Andrew Davis
                   ` (18 preceding siblings ...)
  2024-12-03 20:00 ` [PATCH 20/21] ASoC: wm8904: " Andrew Davis
@ 2024-12-03 20:00 ` Andrew Davis
  2024-12-05 13:39   ` Charles Keepax
  2024-12-10 13:00 ` [PATCH 01/21] ASoC: ad193x: " Mark Brown
  20 siblings, 1 reply; 24+ messages in thread
From: Andrew Davis @ 2024-12-03 20:00 UTC (permalink / raw)
  To: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut
  Cc: patches, linux-sound, linux-kernel, Andrew Davis

The function i2c_match_id() is used to fetch the matching ID from
the i2c_device_id table. This is often used to then retrieve the
matching driver_data. This can be done in one step with the helper
i2c_get_match_data().

This helper has a couple other benefits:
 * It doesn't need the i2c_device_id passed in so we do not need
   to have that forward declared, allowing us to remove those or
   move the i2c_device_id table down to its more natural spot
   with the other module info.
 * It also checks for device match data, which allows for OF and
   ACPI based probing. That means we do not have to manually check
   those first and can remove those checks.

Signed-off-by: Andrew Davis <afd@ti.com>
---
 sound/soc/codecs/wm8985.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/sound/soc/codecs/wm8985.c b/sound/soc/codecs/wm8985.c
index 8606e0752a604..da00db5b01726 100644
--- a/sound/soc/codecs/wm8985.c
+++ b/sound/soc/codecs/wm8985.c
@@ -1166,12 +1166,10 @@ static struct spi_driver wm8985_spi_driver = {
 #endif
 
 #if IS_ENABLED(CONFIG_I2C)
-static const struct i2c_device_id wm8985_i2c_id[];
 
 static int wm8985_i2c_probe(struct i2c_client *i2c)
 {
 	struct wm8985_priv *wm8985;
-	const struct i2c_device_id *id = i2c_match_id(wm8985_i2c_id, i2c);
 	int ret;
 
 	wm8985 = devm_kzalloc(&i2c->dev, sizeof *wm8985, GFP_KERNEL);
@@ -1180,7 +1178,7 @@ static int wm8985_i2c_probe(struct i2c_client *i2c)
 
 	i2c_set_clientdata(i2c, wm8985);
 
-	wm8985->dev_type = id->driver_data;
+	wm8985->dev_type = (uintptr_t)i2c_get_match_data(i2c);
 
 	wm8985->regmap = devm_regmap_init_i2c(i2c, &wm8985_regmap);
 	if (IS_ERR(wm8985->regmap)) {
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: [PATCH 20/21] ASoC: wm8904: Remove use of i2c_match_id()
  2024-12-03 20:00 ` [PATCH 20/21] ASoC: wm8904: " Andrew Davis
@ 2024-12-05 13:39   ` Charles Keepax
  0 siblings, 0 replies; 24+ messages in thread
From: Charles Keepax @ 2024-12-05 13:39 UTC (permalink / raw)
  To: Andrew Davis
  Cc: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut, patches, linux-sound, linux-kernel

On Tue, Dec 03, 2024 at 02:00:00PM -0600, Andrew Davis wrote:
> The function i2c_match_id() is used to fetch the matching ID from
> the i2c_device_id table. This is often used to then retrieve the
> matching driver_data. This can be done in one step with the helper
> i2c_get_match_data().
> 
> This helper has a couple other benefits:
>  * It doesn't need the i2c_device_id passed in so we do not need
>    to have that forward declared, allowing us to remove those or
>    move the i2c_device_id table down to its more natural spot
>    with the other module info.
>  * It also checks for device match data, which allows for OF and
>    ACPI based probing. That means we do not have to manually check
>    those first and can remove those checks.
> 
> Signed-off-by: Andrew Davis <afd@ti.com>
> ---

Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>

Thanks,
Charles

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 21/21] ASoC: wm8985: Remove use of i2c_match_id()
  2024-12-03 20:00 ` [PATCH 21/21] ASoC: wm8985: " Andrew Davis
@ 2024-12-05 13:39   ` Charles Keepax
  0 siblings, 0 replies; 24+ messages in thread
From: Charles Keepax @ 2024-12-05 13:39 UTC (permalink / raw)
  To: Andrew Davis
  Cc: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Mark Brown,
	Marek Vasut, patches, linux-sound, linux-kernel

On Tue, Dec 03, 2024 at 02:00:01PM -0600, Andrew Davis wrote:
> The function i2c_match_id() is used to fetch the matching ID from
> the i2c_device_id table. This is often used to then retrieve the
> matching driver_data. This can be done in one step with the helper
> i2c_get_match_data().
> 
> This helper has a couple other benefits:
>  * It doesn't need the i2c_device_id passed in so we do not need
>    to have that forward declared, allowing us to remove those or
>    move the i2c_device_id table down to its more natural spot
>    with the other module info.
>  * It also checks for device match data, which allows for OF and
>    ACPI based probing. That means we do not have to manually check
>    those first and can remove those checks.
> 
> Signed-off-by: Andrew Davis <afd@ti.com>
> ---

Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>

Thanks,
Charles

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id()
  2024-12-03 19:59 [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id() Andrew Davis
                   ` (19 preceding siblings ...)
  2024-12-03 20:00 ` [PATCH 21/21] ASoC: wm8985: " Andrew Davis
@ 2024-12-10 13:00 ` Mark Brown
  20 siblings, 0 replies; 24+ messages in thread
From: Mark Brown @ 2024-12-10 13:00 UTC (permalink / raw)
  To: Lars-Peter Clausen, Nuno Sá, Liam Girdwood, Marek Vasut,
	Andrew Davis
  Cc: patches, linux-sound, linux-kernel

On Tue, 03 Dec 2024 13:59:41 -0600, Andrew Davis wrote:
> The function i2c_match_id() is used to fetch the matching ID from
> the i2c_device_id table. This is often used to then retrieve the
> matching driver_data. This can be done in one step with the helper
> i2c_get_match_data().
> 
> This helper has a couple other benefits:
>  * It doesn't need the i2c_device_id passed in so we do not need
>    to have that forward declared, allowing us to remove those or
>    move the i2c_device_id table down to its more natural spot
>    with the other module info.
>  * It also checks for device match data, which allows for OF and
>    ACPI based probing. That means we do not have to manually check
>    those first and can remove those checks.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[01/21] ASoC: ad193x: Remove use of i2c_match_id()
        commit: 8c491103c946fb760005044a74c82d7cf6c6f6b4
[02/21] ASoC: adau1761: Remove use of i2c_match_id()
        commit: 56731c80fc3b17850e49913cec262c2bcaa88dcb
[03/21] ASoC: adau1781: Remove use of i2c_match_id()
        commit: f9812846ffdb1f5686154cae18ca8cc765232967
[04/21] ASoC: adau1977: Remove use of i2c_match_id()
        commit: d6ba6f50fae4170a8b7058da81dc2644913a5216
[05/21] ASoC: alc5623: Remove use of i2c_match_id()
        commit: b5e8f7abbb73d0f71ec8742c990c7e1ffa44a554
[06/21] ASoC: alc5632: Remove use of i2c_match_id()
        commit: 99816f3fa964380a50ccc898b08cc7d9dd58c764
[07/21] ASoC: max98088: Remove use of i2c_match_id()
        commit: ebf572bfefcd27584e1b32b0dd51ba71f3fe33d6
[08/21] ASoC: max98090: Remove use of i2c_match_id()
        commit: db2aaa0943803fbba606e3b59b5cf900eced2a5c
[09/21] ASoC: max98095: Remove use of i2c_match_id()
        commit: a8bb9855de4c5ca5b586814b7f8cc4a77d9e8b9c
[10/21] ASoC: pcm186x: Remove use of i2c_match_id()
        commit: b9f99efcc59ae86bcf238719e29427e9519b3878
[11/21] ASoc: pcm6240: Remove use of i2c_match_id()
        commit: 0a7bd3dba60a967032ce8c05b4d81350f01ecc8a
[12/21] ASoC: ssm2602: Remove use of i2c_match_id()
        commit: 6c978c1baeb8449114e8cb35c68832e903f713d8
[13/21] ASoC: tas2562: Remove use of i2c_match_id()
        commit: eb4b5da0ecf61135533574285bacb9dab4fc4703
[14/21] ASoC: tas2781: Remove use of i2c_match_id()
        commit: af4cffb250ec9e26a76c90cf753f1a6630811eed
[15/21] ASoC: tas5720: Remove use of i2c_match_id()
        commit: 06c61070173803a5341be31ff5281d15cc133e5d
[16/21] ASoC: tlv320adc3xxx: Remove use of i2c_match_id()
        commit: 55cf63cc8d951246ec35195ae5a1628beb9c9da3
[17/21] ASoC: tlv320aic31xx: Remove use of i2c_match_id()
        commit: f742875ee2534473ca4bf5ce1e120bebdf8d624d
[18/21] ASoC: tlv320aic3x: Remove use of i2c_match_id()
        commit: 2a169c459d9614dd6edebd8d34ab096b09f134ac
[19/21] ASoC: tpa6130a2: Remove use of i2c_match_id()
        commit: cb47dcedef8dee9e9e64598612b2a301f70a7fdb
[20/21] ASoC: wm8904: Remove use of i2c_match_id()
        commit: 77f3bfeacb939b47e1ffcda000cdf3c52af70e0f
[21/21] ASoC: wm8985: Remove use of i2c_match_id()
        commit: 7d57d1ce9398bb59fa0b251aa2ffa6eafef5cff4

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2024-12-10 13:00 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-03 19:59 [PATCH 01/21] ASoC: ad193x: Remove use of i2c_match_id() Andrew Davis
2024-12-03 19:59 ` [PATCH 02/21] ASoC: adau1761: " Andrew Davis
2024-12-03 19:59 ` [PATCH 03/21] ASoC: adau1781: " Andrew Davis
2024-12-03 19:59 ` [PATCH 04/21] ASoC: adau1977: " Andrew Davis
2024-12-03 19:59 ` [PATCH 05/21] ASoC: alc5623: " Andrew Davis
2024-12-03 19:59 ` [PATCH 06/21] ASoC: alc5632: " Andrew Davis
2024-12-03 19:59 ` [PATCH 07/21] ASoC: max98088: " Andrew Davis
2024-12-03 19:59 ` [PATCH 08/21] ASoC: max98090: " Andrew Davis
2024-12-03 19:59 ` [PATCH 09/21] ASoC: max98095: " Andrew Davis
2024-12-03 19:59 ` [PATCH 10/21] ASoC: pcm186x: " Andrew Davis
2024-12-03 19:59 ` [PATCH 11/21] ASoc: pcm6240: " Andrew Davis
2024-12-03 19:59 ` [PATCH 12/21] ASoC: ssm2602: " Andrew Davis
2024-12-03 19:59 ` [PATCH 13/21] ASoC: tas2562: " Andrew Davis
2024-12-03 19:59 ` [PATCH 14/21] ASoC: tas2781: " Andrew Davis
2024-12-03 19:59 ` [PATCH 15/21] ASoC: tas5720: " Andrew Davis
2024-12-03 19:59 ` [PATCH 16/21] ASoC: tlv320adc3xxx: " Andrew Davis
2024-12-03 19:59 ` [PATCH 17/21] ASoC: tlv320aic31xx: " Andrew Davis
2024-12-03 19:59 ` [PATCH 18/21] ASoC: tlv320aic3x: " Andrew Davis
2024-12-03 19:59 ` [PATCH 19/21] ASoC: tpa6130a2: " Andrew Davis
2024-12-03 20:00 ` [PATCH 20/21] ASoC: wm8904: " Andrew Davis
2024-12-05 13:39   ` Charles Keepax
2024-12-03 20:00 ` [PATCH 21/21] ASoC: wm8985: " Andrew Davis
2024-12-05 13:39   ` Charles Keepax
2024-12-10 13:00 ` [PATCH 01/21] ASoC: ad193x: " Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).