linux-i2c.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 0/3] i2c: designware: Cleanups (part 3)
@ 2024-09-10 16:28 Andy Shevchenko
  2024-09-10 16:28 ` [PATCH v1 1/3] i2c: designware: Uninline i2c_dw_probe() Andy Shevchenko
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Andy Shevchenko @ 2024-09-10 16:28 UTC (permalink / raw)
  To: Andi Shyti, Andy Shevchenko, linux-i2c, linux-kernel
  Cc: Jarkko Nikula, Mika Westerberg, Jan Dabros

This is the subset of the patches [1] that should not affect any
functionality, i.e. consolidation setting of the firmware node.

Link: https://lore.kernel.org/linux-i2c/20231207141653.2785124-1-andriy.shevchenko@linux.intel.com/ [1]

Andy Shevchenko (3):
  i2c: designware: Uninline i2c_dw_probe()
  i2c: designware: Propagate firmware node
  i2c: designware: Use pci_get_drvdata()

 drivers/i2c/busses/i2c-designware-common.c  | 16 ++++++++++++++++
 drivers/i2c/busses/i2c-designware-core.h    | 17 ++---------------
 drivers/i2c/busses/i2c-designware-pcidrv.c  |  6 ++----
 drivers/i2c/busses/i2c-designware-platdrv.c |  3 ---
 4 files changed, 20 insertions(+), 22 deletions(-)

-- 
2.43.0.rc1.1336.g36b5255a03ac


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

* [PATCH v1 1/3] i2c: designware: Uninline i2c_dw_probe()
  2024-09-10 16:28 [PATCH v1 0/3] i2c: designware: Cleanups (part 3) Andy Shevchenko
@ 2024-09-10 16:28 ` Andy Shevchenko
  2024-09-10 16:28 ` [PATCH v1 2/3] i2c: designware: Propagate firmware node Andy Shevchenko
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Andy Shevchenko @ 2024-09-10 16:28 UTC (permalink / raw)
  To: Andi Shyti, Andy Shevchenko, linux-i2c, linux-kernel
  Cc: Jarkko Nikula, Mika Westerberg, Jan Dabros

Since i2c_dw_probe() is going to be extended, uninline it to reduce
the noise in the common header.

Reviewed-by: Andi Shyti <andi.shyti@kernel.org>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/i2c/busses/i2c-designware-common.c | 14 ++++++++++++++
 drivers/i2c/busses/i2c-designware-core.h   | 17 ++---------------
 2 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/drivers/i2c/busses/i2c-designware-common.c b/drivers/i2c/busses/i2c-designware-common.c
index fb65fe6d8122..a6dbccd85565 100644
--- a/drivers/i2c/busses/i2c-designware-common.c
+++ b/drivers/i2c/busses/i2c-designware-common.c
@@ -737,6 +737,20 @@ void i2c_dw_disable(struct dw_i2c_dev *dev)
 }
 EXPORT_SYMBOL_GPL(i2c_dw_disable);
 
+int i2c_dw_probe(struct dw_i2c_dev *dev)
+{
+	switch (dev->mode) {
+	case DW_IC_SLAVE:
+		return i2c_dw_probe_slave(dev);
+	case DW_IC_MASTER:
+		return i2c_dw_probe_master(dev);
+	default:
+		dev_err(dev->dev, "Wrong operation mode: %d\n", dev->mode);
+		return -EINVAL;
+	}
+}
+EXPORT_SYMBOL_GPL(i2c_dw_probe);
+
 static int i2c_dw_prepare(struct device *device)
 {
 	/*
diff --git a/drivers/i2c/busses/i2c-designware-core.h b/drivers/i2c/busses/i2c-designware-core.h
index c6bd6f65a2d3..1ac2afd03a0a 100644
--- a/drivers/i2c/busses/i2c-designware-core.h
+++ b/drivers/i2c/busses/i2c-designware-core.h
@@ -10,9 +10,7 @@
  */
 
 #include <linux/bits.h>
-#include <linux/compiler_types.h>
 #include <linux/completion.h>
-#include <linux/dev_printk.h>
 #include <linux/errno.h>
 #include <linux/i2c.h>
 #include <linux/pm.h>
@@ -388,19 +386,6 @@ static inline void i2c_dw_configure_slave(struct dw_i2c_dev *dev) { }
 static inline int i2c_dw_probe_slave(struct dw_i2c_dev *dev) { return -EINVAL; }
 #endif
 
-static inline int i2c_dw_probe(struct dw_i2c_dev *dev)
-{
-	switch (dev->mode) {
-	case DW_IC_SLAVE:
-		return i2c_dw_probe_slave(dev);
-	case DW_IC_MASTER:
-		return i2c_dw_probe_master(dev);
-	default:
-		dev_err(dev->dev, "Wrong operation mode: %d\n", dev->mode);
-		return -EINVAL;
-	}
-}
-
 static inline void i2c_dw_configure(struct dw_i2c_dev *dev)
 {
 	if (i2c_detect_slave_mode(dev->dev))
@@ -409,6 +394,8 @@ static inline void i2c_dw_configure(struct dw_i2c_dev *dev)
 		i2c_dw_configure_master(dev);
 }
 
+int i2c_dw_probe(struct dw_i2c_dev *dev);
+
 #if IS_ENABLED(CONFIG_I2C_DESIGNWARE_BAYTRAIL)
 int i2c_dw_baytrail_probe_lock_support(struct dw_i2c_dev *dev);
 #endif
-- 
2.43.0.rc1.1336.g36b5255a03ac


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

* [PATCH v1 2/3] i2c: designware: Propagate firmware node
  2024-09-10 16:28 [PATCH v1 0/3] i2c: designware: Cleanups (part 3) Andy Shevchenko
  2024-09-10 16:28 ` [PATCH v1 1/3] i2c: designware: Uninline i2c_dw_probe() Andy Shevchenko
@ 2024-09-10 16:28 ` Andy Shevchenko
  2024-09-10 16:28 ` [PATCH v1 3/3] i2c: designware: Use pci_get_drvdata() Andy Shevchenko
  2024-09-11 10:54 ` [PATCH v1 0/3] i2c: designware: Cleanups (part 3) Andi Shyti
  3 siblings, 0 replies; 5+ messages in thread
From: Andy Shevchenko @ 2024-09-10 16:28 UTC (permalink / raw)
  To: Andi Shyti, Andy Shevchenko, linux-i2c, linux-kernel
  Cc: Jarkko Nikula, Mika Westerberg, Jan Dabros

Propagate firmware node by using a specific API call, i.e. device_set_node().

Reviewed-by: Andi Shyti <andi.shyti@kernel.org>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/i2c/busses/i2c-designware-common.c  | 2 ++
 drivers/i2c/busses/i2c-designware-pcidrv.c  | 2 --
 drivers/i2c/busses/i2c-designware-platdrv.c | 3 ---
 3 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/i2c/busses/i2c-designware-common.c b/drivers/i2c/busses/i2c-designware-common.c
index a6dbccd85565..080204182bb5 100644
--- a/drivers/i2c/busses/i2c-designware-common.c
+++ b/drivers/i2c/busses/i2c-designware-common.c
@@ -739,6 +739,8 @@ EXPORT_SYMBOL_GPL(i2c_dw_disable);
 
 int i2c_dw_probe(struct dw_i2c_dev *dev)
 {
+	device_set_node(&dev->adapter.dev, dev_fwnode(dev->dev));
+
 	switch (dev->mode) {
 	case DW_IC_SLAVE:
 		return i2c_dw_probe_slave(dev);
diff --git a/drivers/i2c/busses/i2c-designware-pcidrv.c b/drivers/i2c/busses/i2c-designware-pcidrv.c
index 04377533f3ae..64f7bd8c7faf 100644
--- a/drivers/i2c/busses/i2c-designware-pcidrv.c
+++ b/drivers/i2c/busses/i2c-designware-pcidrv.c
@@ -9,7 +9,6 @@
  * Copyright (C) 2009 Provigent Ltd.
  * Copyright (C) 2011, 2015, 2016 Intel Corporation.
  */
-#include <linux/acpi.h>
 #include <linux/delay.h>
 #include <linux/err.h>
 #include <linux/errno.h>
@@ -273,7 +272,6 @@ static int i2c_dw_pci_probe(struct pci_dev *pdev,
 	adap = &dev->adapter;
 	adap->owner = THIS_MODULE;
 	adap->class = 0;
-	ACPI_COMPANION_SET(&adap->dev, ACPI_COMPANION(&pdev->dev));
 	adap->nr = controller->bus_num;
 
 	r = i2c_dw_probe(dev);
diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c
index 732e444d0dfc..36041e624e3e 100644
--- a/drivers/i2c/busses/i2c-designware-platdrv.c
+++ b/drivers/i2c/busses/i2c-designware-platdrv.c
@@ -8,7 +8,6 @@
  * Copyright (C) 2007 MontaVista Software Inc.
  * Copyright (C) 2009 Provigent Ltd.
  */
-#include <linux/acpi.h>
 #include <linux/clk-provider.h>
 #include <linux/clk.h>
 #include <linux/delay.h>
@@ -279,8 +278,6 @@ static int dw_i2c_plat_probe(struct platform_device *pdev)
 	adap->owner = THIS_MODULE;
 	adap->class = dmi_check_system(dw_i2c_hwmon_class_dmi) ?
 					I2C_CLASS_HWMON : I2C_CLASS_DEPRECATED;
-	ACPI_COMPANION_SET(&adap->dev, ACPI_COMPANION(&pdev->dev));
-	adap->dev.of_node = pdev->dev.of_node;
 	adap->nr = -1;
 
 	if (dev->flags & ACCESS_NO_IRQ_SUSPEND) {
-- 
2.43.0.rc1.1336.g36b5255a03ac


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

* [PATCH v1 3/3] i2c: designware: Use pci_get_drvdata()
  2024-09-10 16:28 [PATCH v1 0/3] i2c: designware: Cleanups (part 3) Andy Shevchenko
  2024-09-10 16:28 ` [PATCH v1 1/3] i2c: designware: Uninline i2c_dw_probe() Andy Shevchenko
  2024-09-10 16:28 ` [PATCH v1 2/3] i2c: designware: Propagate firmware node Andy Shevchenko
@ 2024-09-10 16:28 ` Andy Shevchenko
  2024-09-11 10:54 ` [PATCH v1 0/3] i2c: designware: Cleanups (part 3) Andi Shyti
  3 siblings, 0 replies; 5+ messages in thread
From: Andy Shevchenko @ 2024-09-10 16:28 UTC (permalink / raw)
  To: Andi Shyti, Andy Shevchenko, linux-i2c, linux-kernel
  Cc: Jarkko Nikula, Mika Westerberg, Jan Dabros

Use the wrapper function for getting the driver data using pci_dev
instead of using dev_get_drvdata() with &pdev->dev, so we can directly
pass a struct pci_dev. This is a purely cosmetic change.

Reviewed-by: Andi Shyti <andi.shyti@kernel.org>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/i2c/busses/i2c-designware-pcidrv.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/i2c/busses/i2c-designware-pcidrv.c b/drivers/i2c/busses/i2c-designware-pcidrv.c
index 64f7bd8c7faf..7b2c5d71a7fc 100644
--- a/drivers/i2c/busses/i2c-designware-pcidrv.c
+++ b/drivers/i2c/busses/i2c-designware-pcidrv.c
@@ -102,7 +102,7 @@ static u32 mfld_get_clk_rate_khz(struct dw_i2c_dev *dev)
 
 static int mfld_setup(struct pci_dev *pdev, struct dw_pci_controller *c)
 {
-	struct dw_i2c_dev *dev = dev_get_drvdata(&pdev->dev);
+	struct dw_i2c_dev *dev = pci_get_drvdata(pdev);
 
 	switch (pdev->device) {
 	case 0x0817:
@@ -152,7 +152,7 @@ static u32 navi_amd_get_clk_rate_khz(struct dw_i2c_dev *dev)
 
 static int navi_amd_setup(struct pci_dev *pdev, struct dw_pci_controller *c)
 {
-	struct dw_i2c_dev *dev = dev_get_drvdata(&pdev->dev);
+	struct dw_i2c_dev *dev = pci_get_drvdata(pdev);
 
 	dev->flags |= MODEL_AMD_NAVI_GPU | ACCESS_POLLING;
 	dev->timings.bus_freq_hz = I2C_MAX_STANDARD_MODE_FREQ;
-- 
2.43.0.rc1.1336.g36b5255a03ac


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

* Re: [PATCH v1 0/3] i2c: designware: Cleanups (part 3)
  2024-09-10 16:28 [PATCH v1 0/3] i2c: designware: Cleanups (part 3) Andy Shevchenko
                   ` (2 preceding siblings ...)
  2024-09-10 16:28 ` [PATCH v1 3/3] i2c: designware: Use pci_get_drvdata() Andy Shevchenko
@ 2024-09-11 10:54 ` Andi Shyti
  3 siblings, 0 replies; 5+ messages in thread
From: Andi Shyti @ 2024-09-11 10:54 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: linux-i2c, linux-kernel, Jarkko Nikula, Mika Westerberg,
	Jan Dabros

Hi Andy,

> Andy Shevchenko (3):
>   i2c: designware: Uninline i2c_dw_probe()
>   i2c: designware: Propagate firmware node
>   i2c: designware: Use pci_get_drvdata()

Merged to i2c/i2c-host.

Thanks,
Andi

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

end of thread, other threads:[~2024-09-11 10:54 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-10 16:28 [PATCH v1 0/3] i2c: designware: Cleanups (part 3) Andy Shevchenko
2024-09-10 16:28 ` [PATCH v1 1/3] i2c: designware: Uninline i2c_dw_probe() Andy Shevchenko
2024-09-10 16:28 ` [PATCH v1 2/3] i2c: designware: Propagate firmware node Andy Shevchenko
2024-09-10 16:28 ` [PATCH v1 3/3] i2c: designware: Use pci_get_drvdata() Andy Shevchenko
2024-09-11 10:54 ` [PATCH v1 0/3] i2c: designware: Cleanups (part 3) Andi Shyti

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).