Thread (17 messages) 17 messages, 3 authors, 2017-03-17

Re: [RESEND PATCH v6 3/6] i2c: designware: MASTER mode as separated driver

From: Jarkko Nikula <hidden>
Date: 2017-03-02 14:19:43
Also in: linux-i2c, lkml

On 03/01/17 17:59, Luis Oliveira wrote:
- The functions related to I2C master mode of operation were transformed
  in a single driver.
- Common definitions were moved to i2c-designware-core.h
- The i2c-designware-core is now only a library file, the functions
  associated are in a source file called i2c-designware-common and
  are used by both i2c-designware-master and i2c-designware-slave.
- To decrease noise in namespace common i2c_dw_*() functions are
  now using ops to keep them private.

Almost all of the "core" source is now part of the "master" source. The
difference is the functions used by both modes and they are in the
"common" source file.

Signed-off-by: Luis Oliveira <redacted>
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
V5->V6
- Now using ops

 drivers/i2c/busses/Makefile                        |   1 +
 drivers/i2c/busses/i2c-designware-common.c         | 274 +++++++++++++++
 drivers/i2c/busses/i2c-designware-core.h           | 140 +++++++-
 ...c-designware-core.c => i2c-designware-master.c} | 367 +--------------------
 drivers/i2c/busses/i2c-designware-platdrv.c        |   6 +-
 5 files changed, 423 insertions(+), 365 deletions(-)
 create mode 100644 drivers/i2c/busses/i2c-designware-common.c
 rename drivers/i2c/busses/{i2c-designware-core.c => i2c-designware-master.c} (64%)
...
quoted hunk ↗ jump to hunk
diff --git a/drivers/i2c/busses/i2c-designware-core.h b/drivers/i2c/busses/i2c-designware-core.h
index 1a010730be43..35d7264d9e3a 100644
--- a/drivers/i2c/busses/i2c-designware-core.h
+++ b/drivers/i2c/busses/i2c-designware-core.h
@@ -40,6 +40,124 @@
...
quoted hunk ↗ jump to hunk
 /**
  * struct dw_i2c_dev - private i2c-designware data
@@ -125,15 +243,31 @@ struct dw_i2c_dev {
 	int			(*acquire_lock)(struct dw_i2c_dev *dev);
 	void			(*release_lock)(struct dw_i2c_dev *dev);
 	bool			pm_runtime_disabled;
+	void			(*disable)(struct dw_i2c_dev *dev);
+	void			(*disable_int)(struct dw_i2c_dev *dev);
+	int			(*init)(struct dw_i2c_dev *dev);
Please move kernel doc comments for these members from patch 4/6 here. 
Adding new members and comments should go together.
quoted hunk ↗ jump to hunk
diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c
index 206dea03b0d0..671bdc0fdb24 100644
--- a/drivers/i2c/busses/i2c-designware-platdrv.c
+++ b/drivers/i2c/busses/i2c-designware-platdrv.c
...
quoted hunk ↗ jump to hunk
@@ -347,7 +347,7 @@ static int dw_i2c_plat_suspend(struct device *dev)
 	struct platform_device *pdev = to_platform_device(dev);
 	struct dw_i2c_dev *i_dev = platform_get_drvdata(pdev);

-	i2c_dw_disable(i_dev);
+	dev->disable(i_dev);
 	i2c_dw_plat_prepare_clk(i_dev, false);
This doesn't compile. Looks like copy-paste from your 
dw_i2c_plat_remove() change but here you must access through the i_dev.

You need to convert also the i2c-designware-pcidrv.c.

-- 
Jarkko
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help