* [PATCH v5 1/3] i2c: xilinx: Fix i2c checkpatch warnings
@ 2013-12-19 15:05 Michal Simek
[not found] ` <c220f51fd2ee7a5d65afa805a62582bd23e4d599.1387465488.git.michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
0 siblings, 1 reply; 4+ messages in thread
From: Michal Simek @ 2013-12-19 15:05 UTC (permalink / raw)
To: linux-kernel, monstr, wsa, joe
Cc: Kedareswara rao Appana, Jingoo Han, Jean Delvare, Peter Korsgaard,
linux-i2c
[-- Attachment #1: Type: text/plain, Size: 2790 bytes --]
From: Kedareswara rao Appana <appana.durga.rao@xilinx.com>
Code changes to fix checkpatch warnings listed below.
- WARNING: please, no space before tabs
- WARNING: quoted string split across lines
Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---
Changes in v5: None
Changes in v4:
- Get back full dev_dbg message
Changes in v3: None
Changes in v2:
- It is checkpatch warnings not sparse
- Extend patch description with checkpatch warnings
Tested by:
./scripts/checkpatch.pl -f drivers/i2c/busses/i2c-xiic.c
---
drivers/i2c/busses/i2c-xiic.c | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/drivers/i2c/busses/i2c-xiic.c b/drivers/i2c/busses/i2c-xiic.c
index fc2716a..5e5fae7 100644
--- a/drivers/i2c/busses/i2c-xiic.c
+++ b/drivers/i2c/busses/i2c-xiic.c
@@ -69,7 +69,7 @@ struct xiic_i2c {
struct i2c_adapter adap;
struct i2c_msg *tx_msg;
spinlock_t lock;
- unsigned int tx_pos;
+ unsigned int tx_pos;
unsigned int nmsgs;
enum xilinx_i2c_state state;
struct i2c_msg *rx_msg;
@@ -272,8 +272,8 @@ static void xiic_read_rx(struct xiic_i2c *i2c)
bytes_in_fifo = xiic_getreg8(i2c, XIIC_RFO_REG_OFFSET) + 1;
- dev_dbg(i2c->adap.dev.parent, "%s entry, bytes in fifo: %d, msg: %d"
- ", SR: 0x%x, CR: 0x%x\n",
+ dev_dbg(i2c->adap.dev.parent,
+ "%s entry, bytes in fifo: %d, msg: %d, SR: 0x%x, CR: 0x%x\n",
__func__, bytes_in_fifo, xiic_rx_space(i2c),
xiic_getreg8(i2c, XIIC_SR_REG_OFFSET),
xiic_getreg8(i2c, XIIC_CR_REG_OFFSET));
@@ -340,9 +340,10 @@ static void xiic_process(struct xiic_i2c *i2c)
ier = xiic_getreg32(i2c, XIIC_IIER_OFFSET);
pend = isr & ier;
- dev_dbg(i2c->adap.dev.parent, "%s entry, IER: 0x%x, ISR: 0x%x, "
- "pend: 0x%x, SR: 0x%x, msg: %p, nmsgs: %d\n",
- __func__, ier, isr, pend, xiic_getreg8(i2c, XIIC_SR_REG_OFFSET),
+ dev_dbg(i2c->adap.dev.parent, "%s: IER: 0x%x, ISR: 0x%x, pend: 0x%x\n",
+ __func__, ier, isr, pend);
+ dev_dbg(i2c->adap.dev.parent, "%s: SR: 0x%x, msg: %p, nmsgs: %d\n",
+ __func__, xiic_getreg8(i2c, XIIC_SR_REG_OFFSET),
i2c->tx_msg, i2c->nmsgs);
/* Do not processes a devices interrupts if the device has no
@@ -542,9 +543,10 @@ static void xiic_start_send(struct xiic_i2c *i2c)
xiic_irq_clr(i2c, XIIC_INTR_TX_ERROR_MASK);
- dev_dbg(i2c->adap.dev.parent, "%s entry, msg: %p, len: %d, "
- "ISR: 0x%x, CR: 0x%x\n",
- __func__, msg, msg->len, xiic_getreg32(i2c, XIIC_IISR_OFFSET),
+ dev_dbg(i2c->adap.dev.parent, "%s entry, msg: %p, len: %d",
+ __func__, msg, msg->len);
+ dev_dbg(i2c->adap.dev.parent, "%s entry, ISR: 0x%x, CR: 0x%x\n",
+ __func__, xiic_getreg32(i2c, XIIC_IISR_OFFSET),
xiic_getreg8(i2c, XIIC_CR_REG_OFFSET));
if (!(msg->flags & I2C_M_NOSTART)) {
--
1.8.2.3
[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply related [flat|nested] 4+ messages in thread[parent not found: <c220f51fd2ee7a5d65afa805a62582bd23e4d599.1387465488.git.michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>]
* [PATCH v5 2/3] i2c: xilinx: Do not enable irq before irq handler [not found] ` <c220f51fd2ee7a5d65afa805a62582bd23e4d599.1387465488.git.michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> @ 2013-12-19 15:05 ` Michal Simek 2013-12-19 15:05 ` [PATCH v5 3/3] i2c: xilinx: Use devm_* functions Michal Simek 2014-01-04 22:40 ` [PATCH v5 1/3] i2c: xilinx: Fix i2c checkpatch warnings Wolfram Sang 2 siblings, 0 replies; 4+ messages in thread From: Michal Simek @ 2013-12-19 15:05 UTC (permalink / raw) To: linux-kernel-u79uwXL29TY76Z2rM5mHXA, monstr-pSz03upnqPeHXe+LvDLADg, wsa-z923LK4zBo2bacvFa/9K2g, joe-6d6DIl74uiNBDgjK7y7TUQ Cc: Jingoo Han, Jean Delvare, Peter Korsgaard, linux-i2c-u79uwXL29TY76Z2rM5mHXA [-- Attachment #1: Type: text/plain, Size: 1145 bytes --] IRQ handler has to be register first before IRQ is enabled in xiic_reinit(). Signed-off-by: Michal Simek <michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> --- Changes in v5: None Changes in v4: None Changes in v3: - New patch in this patchset based on my discussion with Wolfram https://lkml.org/lkml/2013/10/4/148 Changes in v2: None drivers/i2c/busses/i2c-xiic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/i2c/busses/i2c-xiic.c b/drivers/i2c/busses/i2c-xiic.c index 5e5fae7..2d55989 100644 --- a/drivers/i2c/busses/i2c-xiic.c +++ b/drivers/i2c/busses/i2c-xiic.c @@ -731,8 +731,6 @@ static int xiic_i2c_probe(struct platform_device *pdev) i2c->adap.dev.parent = &pdev->dev; i2c->adap.dev.of_node = pdev->dev.of_node; - xiic_reinit(i2c); - spin_lock_init(&i2c->lock); init_waitqueue_head(&i2c->wait); ret = request_irq(irq, xiic_isr, 0, pdev->name, i2c); @@ -741,6 +739,8 @@ static int xiic_i2c_probe(struct platform_device *pdev) goto request_irq_failed; } + xiic_reinit(i2c); + /* add i2c adapter to i2c tree */ ret = i2c_add_adapter(&i2c->adap); if (ret) { -- 1.8.2.3 [-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v5 3/3] i2c: xilinx: Use devm_* functions [not found] ` <c220f51fd2ee7a5d65afa805a62582bd23e4d599.1387465488.git.michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> 2013-12-19 15:05 ` [PATCH v5 2/3] i2c: xilinx: Do not enable irq before irq handler Michal Simek @ 2013-12-19 15:05 ` Michal Simek 2014-01-04 22:40 ` [PATCH v5 1/3] i2c: xilinx: Fix i2c checkpatch warnings Wolfram Sang 2 siblings, 0 replies; 4+ messages in thread From: Michal Simek @ 2013-12-19 15:05 UTC (permalink / raw) To: linux-kernel-u79uwXL29TY76Z2rM5mHXA, monstr-pSz03upnqPeHXe+LvDLADg, wsa-z923LK4zBo2bacvFa/9K2g, joe-6d6DIl74uiNBDgjK7y7TUQ Cc: Kedareswara rao Appana, Jingoo Han, Jean Delvare, Peter Korsgaard, linux-i2c-u79uwXL29TY76Z2rM5mHXA [-- Attachment #1: Type: text/plain, Size: 4102 bytes --] From: Kedareswara rao Appana <appana.durga.rao-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> Simplified the probe and remove functions using devm_* functions Signed-off-by: Kedareswara rao Appana <appanad-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> Signed-off-by: Michal Simek <michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> --- Changes in v5: - dev_get_platdata casting was removed in "i2c: xiic: Remove casting the return value which is a void pointer" (sha1: ab0dc7a81df2595a18b328d2c7031b00bd7efb1e) that's why I have created next series. - Rebased on v3.13-rc4 Changes in v4: - Remove dev_get_platdata casting Changes in v3: - Remove error message which is already shown by devm_ioremap_resource - Fix dev_get_platform recasting to simple (void *) - Path 2/3 was removed because it was created on broken hw design and it was replaced by the patch which fixed irq handler registration and irq enabling. This patch reflect this new change in 2/3 Changes in v2: None drivers/i2c/busses/i2c-xiic.c | 65 ++++++++++--------------------------------- 1 file changed, 15 insertions(+), 50 deletions(-) diff --git a/drivers/i2c/busses/i2c-xiic.c b/drivers/i2c/busses/i2c-xiic.c index 2d55989..6f9918f 100644 --- a/drivers/i2c/busses/i2c-xiic.c +++ b/drivers/i2c/busses/i2c-xiic.c @@ -32,6 +32,7 @@ #include <linux/module.h> #include <linux/init.h> #include <linux/errno.h> +#include <linux/err.h> #include <linux/delay.h> #include <linux/platform_device.h> #include <linux/i2c.h> @@ -697,33 +698,21 @@ static int xiic_i2c_probe(struct platform_device *pdev) int ret, irq; u8 i; + i2c = devm_kzalloc(&pdev->dev, sizeof(*i2c), GFP_KERNEL); + if (!i2c) + return -ENOMEM; + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (!res) - goto resource_missing; + i2c->base = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(i2c->base)) + return PTR_ERR(i2c->base); irq = platform_get_irq(pdev, 0); if (irq < 0) - goto resource_missing; + return irq; pdata = dev_get_platdata(&pdev->dev); - i2c = kzalloc(sizeof(*i2c), GFP_KERNEL); - if (!i2c) - return -ENOMEM; - - if (!request_mem_region(res->start, resource_size(res), pdev->name)) { - dev_err(&pdev->dev, "Memory region busy\n"); - ret = -EBUSY; - goto request_mem_failed; - } - - i2c->base = ioremap(res->start, resource_size(res)); - if (!i2c->base) { - dev_err(&pdev->dev, "Unable to map registers\n"); - ret = -EIO; - goto map_failed; - } - /* hook up driver to tree */ platform_set_drvdata(pdev, i2c); i2c->adap = xiic_adapter; @@ -733,10 +722,11 @@ static int xiic_i2c_probe(struct platform_device *pdev) spin_lock_init(&i2c->lock); init_waitqueue_head(&i2c->wait); - ret = request_irq(irq, xiic_isr, 0, pdev->name, i2c); - if (ret) { + + ret = devm_request_irq(&pdev->dev, irq, xiic_isr, 0, pdev->name, i2c); + if (ret < 0) { dev_err(&pdev->dev, "Cannot claim IRQ\n"); - goto request_irq_failed; + return ret; } xiic_reinit(i2c); @@ -745,7 +735,8 @@ static int xiic_i2c_probe(struct platform_device *pdev) ret = i2c_add_adapter(&i2c->adap); if (ret) { dev_err(&pdev->dev, "Failed to add adapter\n"); - goto add_adapter_failed; + xiic_deinit(i2c); + return ret; } if (pdata) { @@ -755,43 +746,17 @@ static int xiic_i2c_probe(struct platform_device *pdev) } return 0; - -add_adapter_failed: - free_irq(irq, i2c); -request_irq_failed: - xiic_deinit(i2c); - iounmap(i2c->base); -map_failed: - release_mem_region(res->start, resource_size(res)); -request_mem_failed: - kfree(i2c); - - return ret; -resource_missing: - dev_err(&pdev->dev, "IRQ or Memory resource is missing\n"); - return -ENOENT; } static int xiic_i2c_remove(struct platform_device *pdev) { struct xiic_i2c *i2c = platform_get_drvdata(pdev); - struct resource *res; /* remove adapter & data */ i2c_del_adapter(&i2c->adap); xiic_deinit(i2c); - free_irq(platform_get_irq(pdev, 0), i2c); - - iounmap(i2c->base); - - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (res) - release_mem_region(res->start, resource_size(res)); - - kfree(i2c); - return 0; } -- 1.8.2.3 [-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v5 1/3] i2c: xilinx: Fix i2c checkpatch warnings [not found] ` <c220f51fd2ee7a5d65afa805a62582bd23e4d599.1387465488.git.michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> 2013-12-19 15:05 ` [PATCH v5 2/3] i2c: xilinx: Do not enable irq before irq handler Michal Simek 2013-12-19 15:05 ` [PATCH v5 3/3] i2c: xilinx: Use devm_* functions Michal Simek @ 2014-01-04 22:40 ` Wolfram Sang 2 siblings, 0 replies; 4+ messages in thread From: Wolfram Sang @ 2014-01-04 22:40 UTC (permalink / raw) To: Michal Simek Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA, monstr-pSz03upnqPeHXe+LvDLADg, joe-6d6DIl74uiNBDgjK7y7TUQ, Kedareswara rao Appana, Jingoo Han, Jean Delvare, Peter Korsgaard, linux-i2c-u79uwXL29TY76Z2rM5mHXA [-- Attachment #1: Type: text/plain, Size: 533 bytes --] On Thu, Dec 19, 2013 at 04:05:04PM +0100, Michal Simek wrote: > From: Kedareswara rao Appana <appana.durga.rao-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> > > Code changes to fix checkpatch warnings listed below. > - WARNING: please, no space before tabs > - WARNING: quoted string split across lines > > Signed-off-by: Kedareswara rao Appana <appanad-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> > Signed-off-by: Michal Simek <michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org> Whole series applied to for-next, thanks! [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-01-04 22:40 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-19 15:05 [PATCH v5 1/3] i2c: xilinx: Fix i2c checkpatch warnings Michal Simek
[not found] ` <c220f51fd2ee7a5d65afa805a62582bd23e4d599.1387465488.git.michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
2013-12-19 15:05 ` [PATCH v5 2/3] i2c: xilinx: Do not enable irq before irq handler Michal Simek
2013-12-19 15:05 ` [PATCH v5 3/3] i2c: xilinx: Use devm_* functions Michal Simek
2014-01-04 22:40 ` [PATCH v5 1/3] i2c: xilinx: Fix i2c checkpatch warnings Wolfram Sang
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).