* [PATCH 1/6] i2c: provide i2c_adapter_dev()
2025-12-23 10:08 [PATCH 0/6] i2c: provide and use i2c_adapter_dev() Bartosz Golaszewski
@ 2025-12-23 10:08 ` Bartosz Golaszewski
2025-12-23 10:08 ` [PATCH 2/6] i2c: piix4: use i2c_adapter_dev() Bartosz Golaszewski
` (4 subsequent siblings)
5 siblings, 0 replies; 16+ messages in thread
From: Bartosz Golaszewski @ 2025-12-23 10:08 UTC (permalink / raw)
To: Wolfram Sang, Jean Delvare, Andi Shyti, Shyam Sundar S K,
Nirujogi Pratap, Bin Du, Mika Westerberg, Andy Shevchenko,
Jan Dabros, Gregory CLEMENT, Hans Hu
Cc: Bartosz Golaszewski, linux-i2c, linux-kernel, Bartosz Golaszewski
Provide a wrapper around the dereferencing of i2c_adapter::dev. Once we
convert i2c drivers to using it, it will be possible to finally move the
embedded struct device into a separate, revocable structure protected by
SRCU.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
---
include/linux/i2c.h | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index 20fd41b51d5c85ee1665395c07345faafd8e2fca..b5f4db9417aca2e058c8be19d57d693339b6f9b9 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -768,6 +768,11 @@ struct i2c_adapter {
};
#define to_i2c_adapter(d) container_of(d, struct i2c_adapter, dev)
+static inline struct device *i2c_adapter_dev(struct i2c_adapter *adap)
+{
+ return &adap->dev;
+}
+
static inline void *i2c_get_adapdata(const struct i2c_adapter *adap)
{
return dev_get_drvdata(&adap->dev);
--
2.47.3
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH 2/6] i2c: piix4: use i2c_adapter_dev()
2025-12-23 10:08 [PATCH 0/6] i2c: provide and use i2c_adapter_dev() Bartosz Golaszewski
2025-12-23 10:08 ` [PATCH 1/6] i2c: provide i2c_adapter_dev() Bartosz Golaszewski
@ 2025-12-23 10:08 ` Bartosz Golaszewski
2026-01-12 9:44 ` Jean Delvare
2025-12-23 10:08 ` [PATCH 3/6] i2c: amd-asf-plat: " Bartosz Golaszewski
` (3 subsequent siblings)
5 siblings, 1 reply; 16+ messages in thread
From: Bartosz Golaszewski @ 2025-12-23 10:08 UTC (permalink / raw)
To: Wolfram Sang, Jean Delvare, Andi Shyti, Shyam Sundar S K,
Nirujogi Pratap, Bin Du, Mika Westerberg, Andy Shevchenko,
Jan Dabros, Gregory CLEMENT, Hans Hu
Cc: Bartosz Golaszewski, linux-i2c, linux-kernel, Bartosz Golaszewski
Use i2c_adapter_dev() where applicable in order to avoid direct
dereferencing of struct device embedded within struct i2c_adapter.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
---
drivers/i2c/busses/i2c-piix4.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/i2c/busses/i2c-piix4.c b/drivers/i2c/busses/i2c-piix4.c
index ac3bb550303fe5893822af50c385004c9292e695..4fe0c49284646a9f2910939c98b51ee6777e8b52 100644
--- a/drivers/i2c/busses/i2c-piix4.c
+++ b/drivers/i2c/busses/i2c-piix4.c
@@ -788,7 +788,7 @@ static s32 piix4_access_sb800(struct i2c_adapter *adap, u16 addr,
u8 prev_port;
int retval;
- retval = piix4_sb800_region_request(&adap->dev, &adapdata->mmio_cfg);
+ retval = piix4_sb800_region_request(i2c_adapter_dev(adap), &adapdata->mmio_cfg);
if (retval)
return retval;
@@ -859,7 +859,7 @@ static s32 piix4_access_sb800(struct i2c_adapter *adap, u16 addr,
piix4_imc_wakeup();
release:
- piix4_sb800_region_release(&adap->dev, &adapdata->mmio_cfg);
+ piix4_sb800_region_release(i2c_adapter_dev(adap), &adapdata->mmio_cfg);
return retval;
}
@@ -947,7 +947,7 @@ static int piix4_add_adapter(struct pci_dev *dev, unsigned short smba,
adap->dev.parent = &dev->dev;
if (has_acpi_companion(&dev->dev)) {
- acpi_preset_companion(&adap->dev,
+ acpi_preset_companion(i2c_adapter_dev(adap),
ACPI_COMPANION(&dev->dev),
hw_port_nr);
}
--
2.47.3
^ permalink raw reply related [flat|nested] 16+ messages in thread* Re: [PATCH 2/6] i2c: piix4: use i2c_adapter_dev()
2025-12-23 10:08 ` [PATCH 2/6] i2c: piix4: use i2c_adapter_dev() Bartosz Golaszewski
@ 2026-01-12 9:44 ` Jean Delvare
2026-01-13 10:24 ` Wolfram Sang
0 siblings, 1 reply; 16+ messages in thread
From: Jean Delvare @ 2026-01-12 9:44 UTC (permalink / raw)
To: Bartosz Golaszewski
Cc: Wolfram Sang, Andi Shyti, Shyam Sundar S K, Nirujogi Pratap,
Bin Du, Mika Westerberg, Andy Shevchenko, Jan Dabros,
Gregory CLEMENT, Hans Hu, Bartosz Golaszewski, linux-i2c,
linux-kernel
Hi Bartosz,
On Tue, 23 Dec 2025 11:08:19 +0100, Bartosz Golaszewski wrote:
> Use i2c_adapter_dev() where applicable in order to avoid direct
> dereferencing of struct device embedded within struct i2c_adapter.
I will confess that I don't know what is wrong with the current way of
embedding struct device in a more specific device structure. I seem to
recall it was fairly standard to do things this way back when we
implemented this in the i2c subsystem. But I will trust you that this
change is needed now.
>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
> ---
> drivers/i2c/busses/i2c-piix4.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-piix4.c b/drivers/i2c/busses/i2c-piix4.c
> index ac3bb550303fe5893822af50c385004c9292e695..4fe0c49284646a9f2910939c98b51ee6777e8b52 100644
> --- a/drivers/i2c/busses/i2c-piix4.c
> +++ b/drivers/i2c/busses/i2c-piix4.c
> @@ -788,7 +788,7 @@ static s32 piix4_access_sb800(struct i2c_adapter *adap, u16 addr,
> u8 prev_port;
> int retval;
>
> - retval = piix4_sb800_region_request(&adap->dev, &adapdata->mmio_cfg);
> + retval = piix4_sb800_region_request(i2c_adapter_dev(adap), &adapdata->mmio_cfg);
> if (retval)
> return retval;
>
> @@ -859,7 +859,7 @@ static s32 piix4_access_sb800(struct i2c_adapter *adap, u16 addr,
> piix4_imc_wakeup();
>
> release:
> - piix4_sb800_region_release(&adap->dev, &adapdata->mmio_cfg);
> + piix4_sb800_region_release(i2c_adapter_dev(adap), &adapdata->mmio_cfg);
> return retval;
> }
>
> @@ -947,7 +947,7 @@ static int piix4_add_adapter(struct pci_dev *dev, unsigned short smba,
> adap->dev.parent = &dev->dev;
>
> if (has_acpi_companion(&dev->dev)) {
> - acpi_preset_companion(&adap->dev,
> + acpi_preset_companion(i2c_adapter_dev(adap),
> ACPI_COMPANION(&dev->dev),
> hw_port_nr);
> }
>
Acked-by: Jean Delvare <jdelvare@suse.de>
I see that you left one occurrence:
adap->dev.parent = &dev->dev;
I presume we'll need a wrapper for this construct as well?
Thanks,
--
Jean Delvare
SUSE L3 Support
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: [PATCH 2/6] i2c: piix4: use i2c_adapter_dev()
2026-01-12 9:44 ` Jean Delvare
@ 2026-01-13 10:24 ` Wolfram Sang
0 siblings, 0 replies; 16+ messages in thread
From: Wolfram Sang @ 2026-01-13 10:24 UTC (permalink / raw)
To: Jean Delvare
Cc: Bartosz Golaszewski, Andi Shyti, Shyam Sundar S K,
Nirujogi Pratap, Bin Du, Mika Westerberg, Andy Shevchenko,
Jan Dabros, Gregory CLEMENT, Hans Hu, Bartosz Golaszewski,
linux-i2c, linux-kernel
Hi Jean,
> > Use i2c_adapter_dev() where applicable in order to avoid direct
> > dereferencing of struct device embedded within struct i2c_adapter.
>
> I will confess that I don't know what is wrong with the current way of
> embedding struct device in a more specific device structure. I seem to
> recall it was fairly standard to do things this way back when we
> implemented this in the i2c subsystem. But I will trust you that this
> change is needed now.
I guess more people will wonder about the upcoming I2C core changes, so
I wrote a bit of explanation:
https://lore.kernel.org/all/aWYYZEPX-_1GfQtL@ninjato/
Happy hacking,
Wolfram
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 3/6] i2c: amd-asf-plat: use i2c_adapter_dev()
2025-12-23 10:08 [PATCH 0/6] i2c: provide and use i2c_adapter_dev() Bartosz Golaszewski
2025-12-23 10:08 ` [PATCH 1/6] i2c: provide i2c_adapter_dev() Bartosz Golaszewski
2025-12-23 10:08 ` [PATCH 2/6] i2c: piix4: use i2c_adapter_dev() Bartosz Golaszewski
@ 2025-12-23 10:08 ` Bartosz Golaszewski
2025-12-23 11:21 ` Shyam Sundar S K
2025-12-23 10:08 ` [PATCH 4/6] i2c: designware-amdisp: " Bartosz Golaszewski
` (2 subsequent siblings)
5 siblings, 1 reply; 16+ messages in thread
From: Bartosz Golaszewski @ 2025-12-23 10:08 UTC (permalink / raw)
To: Wolfram Sang, Jean Delvare, Andi Shyti, Shyam Sundar S K,
Nirujogi Pratap, Bin Du, Mika Westerberg, Andy Shevchenko,
Jan Dabros, Gregory CLEMENT, Hans Hu
Cc: Bartosz Golaszewski, linux-i2c, linux-kernel, Bartosz Golaszewski
Use i2c_adapter_dev() where applicable in order to avoid direct
dereferencing of struct device embedded within struct i2c_adapter.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
---
drivers/i2c/busses/i2c-amd-asf-plat.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/i2c/busses/i2c-amd-asf-plat.c b/drivers/i2c/busses/i2c-amd-asf-plat.c
index ca45f0f233210a3b03a16c4a240012bd524fefb0..271b1b24417d06cc87733268c3191aea16fa1d83 100644
--- a/drivers/i2c/busses/i2c-amd-asf-plat.c
+++ b/drivers/i2c/busses/i2c-amd-asf-plat.c
@@ -209,7 +209,7 @@ static int amd_asf_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
asf_data[0] = dev_msgs->len;
memcpy(asf_data + 1, dev_msgs[0].buf, dev_msgs->len);
- ret = piix4_sb800_region_request(&adap->dev, &dev->mmio_cfg);
+ ret = piix4_sb800_region_request(i2c_adapter_dev(adap), &dev->mmio_cfg);
if (ret)
return ret;
@@ -224,7 +224,7 @@ static int amd_asf_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
ret = amd_asf_access(adap, msgs->addr, msgs[0].buf[0], asf_data);
piix4_sb800_port_sel(prev_port, &dev->mmio_cfg);
amd_asf_setup_target(dev);
- piix4_sb800_region_release(&adap->dev, &dev->mmio_cfg);
+ piix4_sb800_region_release(i2c_adapter_dev(adap), &dev->mmio_cfg);
return ret;
}
--
2.47.3
^ permalink raw reply related [flat|nested] 16+ messages in thread* Re: [PATCH 3/6] i2c: amd-asf-plat: use i2c_adapter_dev()
2025-12-23 10:08 ` [PATCH 3/6] i2c: amd-asf-plat: " Bartosz Golaszewski
@ 2025-12-23 11:21 ` Shyam Sundar S K
0 siblings, 0 replies; 16+ messages in thread
From: Shyam Sundar S K @ 2025-12-23 11:21 UTC (permalink / raw)
To: Bartosz Golaszewski, Wolfram Sang, Jean Delvare, Andi Shyti,
Nirujogi Pratap, Bin Du, Mika Westerberg, Andy Shevchenko,
Jan Dabros, Gregory CLEMENT, Hans Hu
Cc: Bartosz Golaszewski, linux-i2c, linux-kernel
On 12/23/2025 15:38, Bartosz Golaszewski wrote:
> Use i2c_adapter_dev() where applicable in order to avoid direct
> dereferencing of struct device embedded within struct i2c_adapter.
>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Acked-by: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
Thanks,
Shyam
> ---
> drivers/i2c/busses/i2c-amd-asf-plat.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-amd-asf-plat.c b/drivers/i2c/busses/i2c-amd-asf-plat.c
> index ca45f0f233210a3b03a16c4a240012bd524fefb0..271b1b24417d06cc87733268c3191aea16fa1d83 100644
> --- a/drivers/i2c/busses/i2c-amd-asf-plat.c
> +++ b/drivers/i2c/busses/i2c-amd-asf-plat.c
> @@ -209,7 +209,7 @@ static int amd_asf_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
> asf_data[0] = dev_msgs->len;
> memcpy(asf_data + 1, dev_msgs[0].buf, dev_msgs->len);
>
> - ret = piix4_sb800_region_request(&adap->dev, &dev->mmio_cfg);
> + ret = piix4_sb800_region_request(i2c_adapter_dev(adap), &dev->mmio_cfg);
> if (ret)
> return ret;
>
> @@ -224,7 +224,7 @@ static int amd_asf_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
> ret = amd_asf_access(adap, msgs->addr, msgs[0].buf[0], asf_data);
> piix4_sb800_port_sel(prev_port, &dev->mmio_cfg);
> amd_asf_setup_target(dev);
> - piix4_sb800_region_release(&adap->dev, &dev->mmio_cfg);
> + piix4_sb800_region_release(i2c_adapter_dev(adap), &dev->mmio_cfg);
> return ret;
> }
>
>
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 4/6] i2c: designware-amdisp: use i2c_adapter_dev()
2025-12-23 10:08 [PATCH 0/6] i2c: provide and use i2c_adapter_dev() Bartosz Golaszewski
` (2 preceding siblings ...)
2025-12-23 10:08 ` [PATCH 3/6] i2c: amd-asf-plat: " Bartosz Golaszewski
@ 2025-12-23 10:08 ` Bartosz Golaszewski
2025-12-27 14:29 ` Andy Shevchenko
2026-01-05 19:26 ` Nirujogi, Pratap
2025-12-23 10:08 ` [PATCH 5/6] i2c: mv64xxx: " Bartosz Golaszewski
2025-12-23 10:08 ` [PATCH 6/6] i2c: viai2c-zhaoxin: " Bartosz Golaszewski
5 siblings, 2 replies; 16+ messages in thread
From: Bartosz Golaszewski @ 2025-12-23 10:08 UTC (permalink / raw)
To: Wolfram Sang, Jean Delvare, Andi Shyti, Shyam Sundar S K,
Nirujogi Pratap, Bin Du, Mika Westerberg, Andy Shevchenko,
Jan Dabros, Gregory CLEMENT, Hans Hu
Cc: Bartosz Golaszewski, linux-i2c, linux-kernel, Bartosz Golaszewski
Use i2c_adapter_dev() where applicable in order to avoid direct
dereferencing of struct device embedded within struct i2c_adapter.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
---
drivers/i2c/busses/i2c-designware-amdisp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/i2c/busses/i2c-designware-amdisp.c b/drivers/i2c/busses/i2c-designware-amdisp.c
index 450793d5f83921ac9a8c6d00414890779da49c07..67772bccb71927e870c11fa88340caabcb07f264 100644
--- a/drivers/i2c/busses/i2c-designware-amdisp.c
+++ b/drivers/i2c/busses/i2c-designware-amdisp.c
@@ -64,7 +64,7 @@ static int amd_isp_dw_i2c_plat_probe(struct platform_device *pdev)
adap = &isp_i2c_dev->adapter;
adap->owner = THIS_MODULE;
scnprintf(adap->name, sizeof(adap->name), AMDISP_I2C_ADAP_NAME);
- ACPI_COMPANION_SET(&adap->dev, ACPI_COMPANION(&pdev->dev));
+ ACPI_COMPANION_SET(i2c_adapter_dev(adap), ACPI_COMPANION(&pdev->dev));
adap->dev.of_node = pdev->dev.of_node;
/* use dynamically allocated adapter id */
adap->nr = -1;
--
2.47.3
^ permalink raw reply related [flat|nested] 16+ messages in thread* Re: [PATCH 4/6] i2c: designware-amdisp: use i2c_adapter_dev()
2025-12-23 10:08 ` [PATCH 4/6] i2c: designware-amdisp: " Bartosz Golaszewski
@ 2025-12-27 14:29 ` Andy Shevchenko
2025-12-27 14:30 ` Andy Shevchenko
2026-01-05 19:26 ` Nirujogi, Pratap
1 sibling, 1 reply; 16+ messages in thread
From: Andy Shevchenko @ 2025-12-27 14:29 UTC (permalink / raw)
To: Bartosz Golaszewski
Cc: Wolfram Sang, Jean Delvare, Andi Shyti, Shyam Sundar S K,
Nirujogi Pratap, Bin Du, Mika Westerberg, Jan Dabros,
Gregory CLEMENT, Hans Hu, Bartosz Golaszewski, linux-i2c,
linux-kernel
On Tue, Dec 23, 2025 at 11:08:21AM +0100, Bartosz Golaszewski wrote:
> Use i2c_adapter_dev() where applicable in order to avoid direct
> dereferencing of struct device embedded within struct i2c_adapter.
...
> - ACPI_COMPANION_SET(&adap->dev, ACPI_COMPANION(&pdev->dev));
> + ACPI_COMPANION_SET(i2c_adapter_dev(adap), ACPI_COMPANION(&pdev->dev));
> adap->dev.of_node = pdev->dev.of_node;
Why not just replace these with i2c_dev_set_node()?
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 4/6] i2c: designware-amdisp: use i2c_adapter_dev()
2025-12-27 14:29 ` Andy Shevchenko
@ 2025-12-27 14:30 ` Andy Shevchenko
0 siblings, 0 replies; 16+ messages in thread
From: Andy Shevchenko @ 2025-12-27 14:30 UTC (permalink / raw)
To: Bartosz Golaszewski
Cc: Wolfram Sang, Jean Delvare, Andi Shyti, Shyam Sundar S K,
Nirujogi Pratap, Bin Du, Mika Westerberg, Jan Dabros,
Gregory CLEMENT, Hans Hu, Bartosz Golaszewski, linux-i2c,
linux-kernel
On Sat, Dec 27, 2025 at 04:29:43PM +0200, Andy Shevchenko wrote:
> On Tue, Dec 23, 2025 at 11:08:21AM +0100, Bartosz Golaszewski wrote:
...
> > - ACPI_COMPANION_SET(&adap->dev, ACPI_COMPANION(&pdev->dev));
> > + ACPI_COMPANION_SET(i2c_adapter_dev(adap), ACPI_COMPANION(&pdev->dev));
> > adap->dev.of_node = pdev->dev.of_node;
>
> Why not just replace these with i2c_dev_set_node()?
Oh, I meant the i2c_adapter_set_node() that you just introduced in the previous
series. Effectively this makes a patch of that series.
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 4/6] i2c: designware-amdisp: use i2c_adapter_dev()
2025-12-23 10:08 ` [PATCH 4/6] i2c: designware-amdisp: " Bartosz Golaszewski
2025-12-27 14:29 ` Andy Shevchenko
@ 2026-01-05 19:26 ` Nirujogi, Pratap
2026-01-05 21:42 ` Andy Shevchenko
1 sibling, 1 reply; 16+ messages in thread
From: Nirujogi, Pratap @ 2026-01-05 19:26 UTC (permalink / raw)
To: Bartosz Golaszewski, Wolfram Sang, Jean Delvare, Andi Shyti,
Shyam Sundar S K, Nirujogi Pratap, Bin Du, Mika Westerberg,
Andy Shevchenko, Jan Dabros, Gregory CLEMENT, Hans Hu
Cc: Bartosz Golaszewski, linux-i2c, linux-kernel
On 12/23/2025 5:08 AM, Bartosz Golaszewski wrote:
> Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding.
>
>
> Use i2c_adapter_dev() where applicable in order to avoid direct
> dereferencing of struct device embedded within struct i2c_adapter.
>
> Signed-off-by: Bartosz Golaszewski<bartosz.golaszewski@oss.qualcomm.com>
Acked-by: Pratap Nirujogi<pratap.nirujogi@amd.com>
(I'm assuming Andy's suggestion to use i2c_adapter_set_node() will be covered in the other patch series)
Thanks,
Pratap
> ---
> drivers/i2c/busses/i2c-designware-amdisp.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/i2c/busses/i2c-designware-amdisp.c b/drivers/i2c/busses/i2c-designware-amdisp.c
> index 450793d5f83921ac9a8c6d00414890779da49c07..67772bccb71927e870c11fa88340caabcb07f264 100644
> --- a/drivers/i2c/busses/i2c-designware-amdisp.c
> +++ b/drivers/i2c/busses/i2c-designware-amdisp.c
> @@ -64,7 +64,7 @@ static int amd_isp_dw_i2c_plat_probe(struct platform_device *pdev)
> adap = &isp_i2c_dev->adapter;
> adap->owner = THIS_MODULE;
> scnprintf(adap->name, sizeof(adap->name), AMDISP_I2C_ADAP_NAME);
> - ACPI_COMPANION_SET(&adap->dev, ACPI_COMPANION(&pdev->dev));
> + ACPI_COMPANION_SET(i2c_adapter_dev(adap), ACPI_COMPANION(&pdev->dev));
> adap->dev.of_node = pdev->dev.of_node;
> /* use dynamically allocated adapter id */
> adap->nr = -1;
>
> --
> 2.47.3
>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 4/6] i2c: designware-amdisp: use i2c_adapter_dev()
2026-01-05 19:26 ` Nirujogi, Pratap
@ 2026-01-05 21:42 ` Andy Shevchenko
0 siblings, 0 replies; 16+ messages in thread
From: Andy Shevchenko @ 2026-01-05 21:42 UTC (permalink / raw)
To: Nirujogi, Pratap
Cc: Bartosz Golaszewski, Wolfram Sang, Jean Delvare, Andi Shyti,
Shyam Sundar S K, Nirujogi Pratap, Bin Du, Mika Westerberg,
Jan Dabros, Gregory CLEMENT, Hans Hu, Bartosz Golaszewski,
linux-i2c, linux-kernel
On Mon, Jan 05, 2026 at 02:26:06PM -0500, Nirujogi, Pratap wrote:
> On 12/23/2025 5:08 AM, Bartosz Golaszewski wrote:
> > Use i2c_adapter_dev() where applicable in order to avoid direct
> > dereferencing of struct device embedded within struct i2c_adapter.
> >
> > Signed-off-by: Bartosz Golaszewski<bartosz.golaszewski@oss.qualcomm.com>
>
> Acked-by: Pratap Nirujogi<pratap.nirujogi@amd.com>
>
> (I'm assuming Andy's suggestion to use i2c_adapter_set_node() will be covered
> in the other patch series)
With that done, this patch won't be needed at all.
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 5/6] i2c: mv64xxx: use i2c_adapter_dev()
2025-12-23 10:08 [PATCH 0/6] i2c: provide and use i2c_adapter_dev() Bartosz Golaszewski
` (3 preceding siblings ...)
2025-12-23 10:08 ` [PATCH 4/6] i2c: designware-amdisp: " Bartosz Golaszewski
@ 2025-12-23 10:08 ` Bartosz Golaszewski
2026-01-05 13:51 ` Gregory CLEMENT
2025-12-23 10:08 ` [PATCH 6/6] i2c: viai2c-zhaoxin: " Bartosz Golaszewski
5 siblings, 1 reply; 16+ messages in thread
From: Bartosz Golaszewski @ 2025-12-23 10:08 UTC (permalink / raw)
To: Wolfram Sang, Jean Delvare, Andi Shyti, Shyam Sundar S K,
Nirujogi Pratap, Bin Du, Mika Westerberg, Andy Shevchenko,
Jan Dabros, Gregory CLEMENT, Hans Hu
Cc: Bartosz Golaszewski, linux-i2c, linux-kernel, Bartosz Golaszewski
Use i2c_adapter_dev() where applicable in order to avoid direct
dereferencing of struct device embedded within struct i2c_adapter.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
---
drivers/i2c/busses/i2c-mv64xxx.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/i2c/busses/i2c-mv64xxx.c b/drivers/i2c/busses/i2c-mv64xxx.c
index 1acba628e16c3bd1dbf82c777162870cbe3815ef..7892793d2a1cabf3376efcec1d031c3d764f7731 100644
--- a/drivers/i2c/busses/i2c-mv64xxx.c
+++ b/drivers/i2c/busses/i2c-mv64xxx.c
@@ -747,7 +747,7 @@ mv64xxx_i2c_xfer_core(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
struct mv64xxx_i2c_data *drv_data = i2c_get_adapdata(adap);
int rc, ret = num;
- rc = pm_runtime_resume_and_get(&adap->dev);
+ rc = pm_runtime_resume_and_get(i2c_adapter_dev(adap));
if (rc)
return rc;
@@ -766,7 +766,7 @@ mv64xxx_i2c_xfer_core(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
drv_data->num_msgs = 0;
drv_data->msgs = NULL;
- pm_runtime_put_autosuspend(&adap->dev);
+ pm_runtime_put_autosuspend(i2c_adapter_dev(adap));
return ret;
}
--
2.47.3
^ permalink raw reply related [flat|nested] 16+ messages in thread* Re: [PATCH 5/6] i2c: mv64xxx: use i2c_adapter_dev()
2025-12-23 10:08 ` [PATCH 5/6] i2c: mv64xxx: " Bartosz Golaszewski
@ 2026-01-05 13:51 ` Gregory CLEMENT
0 siblings, 0 replies; 16+ messages in thread
From: Gregory CLEMENT @ 2026-01-05 13:51 UTC (permalink / raw)
To: Bartosz Golaszewski, Wolfram Sang, Jean Delvare, Andi Shyti,
Shyam Sundar S K, Nirujogi Pratap, Bin Du, Mika Westerberg,
Andy Shevchenko, Jan Dabros, Hans Hu
Cc: Bartosz Golaszewski, linux-i2c, linux-kernel, Bartosz Golaszewski
Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com> writes:
> Use i2c_adapter_dev() where applicable in order to avoid direct
> dereferencing of struct device embedded within struct i2c_adapter.
>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Reviewed-by: Gregory CLEMENT <gregory.clement@bootlin.com>
Thanks,
Gregory
> ---
> drivers/i2c/busses/i2c-mv64xxx.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-mv64xxx.c b/drivers/i2c/busses/i2c-mv64xxx.c
> index 1acba628e16c3bd1dbf82c777162870cbe3815ef..7892793d2a1cabf3376efcec1d031c3d764f7731 100644
> --- a/drivers/i2c/busses/i2c-mv64xxx.c
> +++ b/drivers/i2c/busses/i2c-mv64xxx.c
> @@ -747,7 +747,7 @@ mv64xxx_i2c_xfer_core(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
> struct mv64xxx_i2c_data *drv_data = i2c_get_adapdata(adap);
> int rc, ret = num;
>
> - rc = pm_runtime_resume_and_get(&adap->dev);
> + rc = pm_runtime_resume_and_get(i2c_adapter_dev(adap));
> if (rc)
> return rc;
>
> @@ -766,7 +766,7 @@ mv64xxx_i2c_xfer_core(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
> drv_data->num_msgs = 0;
> drv_data->msgs = NULL;
>
> - pm_runtime_put_autosuspend(&adap->dev);
> + pm_runtime_put_autosuspend(i2c_adapter_dev(adap));
>
> return ret;
> }
>
> --
> 2.47.3
>
--
Grégory CLEMENT, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 6/6] i2c: viai2c-zhaoxin: use i2c_adapter_dev()
2025-12-23 10:08 [PATCH 0/6] i2c: provide and use i2c_adapter_dev() Bartosz Golaszewski
` (4 preceding siblings ...)
2025-12-23 10:08 ` [PATCH 5/6] i2c: mv64xxx: " Bartosz Golaszewski
@ 2025-12-23 10:08 ` Bartosz Golaszewski
2025-12-27 14:31 ` Andy Shevchenko
5 siblings, 1 reply; 16+ messages in thread
From: Bartosz Golaszewski @ 2025-12-23 10:08 UTC (permalink / raw)
To: Wolfram Sang, Jean Delvare, Andi Shyti, Shyam Sundar S K,
Nirujogi Pratap, Bin Du, Mika Westerberg, Andy Shevchenko,
Jan Dabros, Gregory CLEMENT, Hans Hu
Cc: Bartosz Golaszewski, linux-i2c, linux-kernel, Bartosz Golaszewski
Use i2c_adapter_dev() where applicable in order to avoid direct
dereferencing of struct device embedded within struct i2c_adapter.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
---
drivers/i2c/busses/i2c-viai2c-zhaoxin.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/i2c/busses/i2c-viai2c-zhaoxin.c b/drivers/i2c/busses/i2c-viai2c-zhaoxin.c
index 95dc64902b7cdb01beea04acf7bad8f20133d965..d68c1f38806deeb3f233315e717092e96473c887 100644
--- a/drivers/i2c/busses/i2c-viai2c-zhaoxin.c
+++ b/drivers/i2c/busses/i2c-viai2c-zhaoxin.c
@@ -323,7 +323,7 @@ static int zxi2c_probe(struct platform_device *pdev)
adap->algo = &zxi2c_algorithm;
adap->quirks = &zxi2c_quirks;
adap->dev.parent = &pdev->dev;
- ACPI_COMPANION_SET(&adap->dev, ACPI_COMPANION(&pdev->dev));
+ ACPI_COMPANION_SET(i2c_adapter_dev(adap), ACPI_COMPANION(&pdev->dev));
snprintf(adap->name, sizeof(adap->name), "zhaoxin-%s-%s",
dev_name(pdev->dev.parent), dev_name(i2c->dev));
i2c_set_adapdata(adap, i2c);
--
2.47.3
^ permalink raw reply related [flat|nested] 16+ messages in thread* Re: [PATCH 6/6] i2c: viai2c-zhaoxin: use i2c_adapter_dev()
2025-12-23 10:08 ` [PATCH 6/6] i2c: viai2c-zhaoxin: " Bartosz Golaszewski
@ 2025-12-27 14:31 ` Andy Shevchenko
0 siblings, 0 replies; 16+ messages in thread
From: Andy Shevchenko @ 2025-12-27 14:31 UTC (permalink / raw)
To: Bartosz Golaszewski
Cc: Wolfram Sang, Jean Delvare, Andi Shyti, Shyam Sundar S K,
Nirujogi Pratap, Bin Du, Mika Westerberg, Jan Dabros,
Gregory CLEMENT, Hans Hu, Bartosz Golaszewski, linux-i2c,
linux-kernel
On Tue, Dec 23, 2025 at 11:08:23AM +0100, Bartosz Golaszewski wrote:
> Use i2c_adapter_dev() where applicable in order to avoid direct
> dereferencing of struct device embedded within struct i2c_adapter.
...
> - ACPI_COMPANION_SET(&adap->dev, ACPI_COMPANION(&pdev->dev));
> + ACPI_COMPANION_SET(i2c_adapter_dev(adap), ACPI_COMPANION(&pdev->dev));
Same comment, use i2c_adapter_set_node().
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 16+ messages in thread