* [PATCH v3 1/3] i2c: xilinx: Fix i2c checkpatch warnings
@ 2013-10-10 10:39 Michal Simek
[not found] ` <f3fd6f38d2553e59b077edff1969f4d07f8aa811.1381401561.git.michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Michal Simek @ 2013-10-10 10:39 UTC (permalink / raw)
To: linux-kernel, monstr, wsa
Cc: Kedareswara rao Appana, Jean Delvare, Peter Korsgaard,
Kedareswara rao Appana, linux-i2c
[-- Attachment #1: Type: text/plain, Size: 2832 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 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 | 23 +++++++++++------------
1 file changed, 11 insertions(+), 12 deletions(-)
diff --git a/drivers/i2c/busses/i2c-xiic.c b/drivers/i2c/busses/i2c-xiic.c
index 4c8b368..5eb0a8b 100644
--- a/drivers/i2c/busses/i2c-xiic.c
+++ b/drivers/i2c/busses/i2c-xiic.c
@@ -68,7 +68,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;
@@ -271,11 +271,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",
- __func__, bytes_in_fifo, xiic_rx_space(i2c),
- xiic_getreg8(i2c, XIIC_SR_REG_OFFSET),
- xiic_getreg8(i2c, XIIC_CR_REG_OFFSET));
+ dev_dbg(i2c->adap.dev.parent, "%s entry, bytes in fifo: %d, msg: %d",
+ __func__, bytes_in_fifo, xiic_rx_space(i2c));
if (bytes_in_fifo > xiic_rx_space(i2c))
bytes_in_fifo = xiic_rx_space(i2c);
@@ -339,9 +336,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
@@ -541,9 +539,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] 5+ messages in thread
* [PATCH v3 2/3] i2c: xilinx: Do not enable irq before irq handler
[not found] ` <f3fd6f38d2553e59b077edff1969f4d07f8aa811.1381401561.git.michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
@ 2013-10-10 10:39 ` Michal Simek
0 siblings, 0 replies; 5+ messages in thread
From: Michal Simek @ 2013-10-10 10:39 UTC (permalink / raw)
To: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
monstr-pSz03upnqPeHXe+LvDLADg, wsa-z923LK4zBo2bacvFa/9K2g
Cc: Jean Delvare, Peter Korsgaard, Kedareswara rao Appana,
linux-i2c-u79uwXL29TY76Z2rM5mHXA
[-- Attachment #1: Type: text/plain, Size: 1104 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 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 5eb0a8b..183fea4 100644
--- a/drivers/i2c/busses/i2c-xiic.c
+++ b/drivers/i2c/busses/i2c-xiic.c
@@ -727,8 +727,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);
@@ -737,6 +735,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] 5+ messages in thread
* [PATCH v3 3/3] i2c: xilinx: Use devm_* functions
2013-10-10 10:39 [PATCH v3 1/3] i2c: xilinx: Fix i2c checkpatch warnings Michal Simek
[not found] ` <f3fd6f38d2553e59b077edff1969f4d07f8aa811.1381401561.git.michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
@ 2013-10-10 10:39 ` Michal Simek
[not found] ` <9691811c34ee339b1f5e3ed2acdea0796fc80788.1381401561.git.michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
2013-10-10 14:01 ` [PATCH v3 1/3] i2c: xilinx: Fix i2c checkpatch warnings Joe Perches
2 siblings, 1 reply; 5+ messages in thread
From: Michal Simek @ 2013-10-10 10:39 UTC (permalink / raw)
To: linux-kernel, monstr, wsa
Cc: Kedareswara rao Appana, Jean Delvare, Peter Korsgaard,
Kedareswara rao Appana, linux-i2c
[-- Attachment #1: Type: text/plain, Size: 3779 bytes --]
From: Kedareswara rao Appana <appana.durga.rao@xilinx.com>
Simplified the probe and remove functions using devm_* functions
Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---
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 | 67 +++++++++++--------------------------------
1 file changed, 16 insertions(+), 51 deletions(-)
diff --git a/drivers/i2c/busses/i2c-xiic.c b/drivers/i2c/busses/i2c-xiic.c
index 183fea4..e1f8920 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>
@@ -693,32 +694,20 @@ 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;
-
- pdata = (struct xiic_i2c_platform_data *)dev_get_platdata(&pdev->dev);
-
- i2c = kzalloc(sizeof(*i2c), GFP_KERNEL);
- if (!i2c)
- return -ENOMEM;
+ return irq;
- 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;
- }
+ pdata = (void *)dev_get_platdata(&pdev->dev);
/* hook up driver to tree */
platform_set_drvdata(pdev, i2c);
@@ -729,10 +718,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);
@@ -741,7 +731,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) {
@@ -751,43 +742,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] 5+ messages in thread
* Re: [PATCH v3 1/3] i2c: xilinx: Fix i2c checkpatch warnings
2013-10-10 10:39 [PATCH v3 1/3] i2c: xilinx: Fix i2c checkpatch warnings Michal Simek
[not found] ` <f3fd6f38d2553e59b077edff1969f4d07f8aa811.1381401561.git.michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
2013-10-10 10:39 ` [PATCH v3 3/3] i2c: xilinx: Use devm_* functions Michal Simek
@ 2013-10-10 14:01 ` Joe Perches
2 siblings, 0 replies; 5+ messages in thread
From: Joe Perches @ 2013-10-10 14:01 UTC (permalink / raw)
To: Michal Simek
Cc: linux-kernel, monstr, wsa, Kedareswara rao Appana, Jean Delvare,
Peter Korsgaard, Kedareswara rao Appana, linux-i2c
On Thu, 2013-10-10 at 12:39 +0200, Michal Simek wrote:
> Code changes to fix checkpatch warnings listed below.
> - WARNING: quoted string split across lines
[]
> diff --git a/drivers/i2c/busses/i2c-xiic.c b/drivers/i2c/busses/i2c-xiic.c
[]
> @@ -271,11 +271,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",
> - __func__, bytes_in_fifo, xiic_rx_space(i2c),
> - xiic_getreg8(i2c, XIIC_SR_REG_OFFSET),
> - xiic_getreg8(i2c, XIIC_CR_REG_OFFSET));
> + dev_dbg(i2c->adap.dev.parent, "%s entry, bytes in fifo: %d, msg: %d",
> + __func__, bytes_in_fifo, xiic_rx_space(i2c));
This is a pretty odd way of silencing checkpatch
by eliminating content. Aren't the register values
useful information?
You've also removed the terminating newline.
It's necessary to avoid possible dmesg output log
message interleaving. Please put it back.
A more normal style fix would be to coalesce the
format. checkpatch will ignore lines exceeding
80 columns for these formats.
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));
This passes checkpatch cleanly.
etc...
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3 3/3] i2c: xilinx: Use devm_* functions
[not found] ` <9691811c34ee339b1f5e3ed2acdea0796fc80788.1381401561.git.michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
@ 2013-10-13 18:19 ` Wolfram Sang
0 siblings, 0 replies; 5+ messages in thread
From: Wolfram Sang @ 2013-10-13 18:19 UTC (permalink / raw)
To: Michal Simek, g
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
monstr-pSz03upnqPeHXe+LvDLADg, Kedareswara rao Appana,
Jean Delvare, Peter Korsgaard, Kedareswara rao Appana,
linux-i2c-u79uwXL29TY76Z2rM5mHXA
[-- Attachment #1: Type: text/plain, Size: 626 bytes --]
On Thu, Oct 10, 2013 at 12:39:38PM +0200, Michal Simek wrote:
> 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 v3:
> - Remove error message which is already shown by devm_ioremap_resource
> - Fix dev_get_platform recasting to simple (void *)
It IS a void pointer which you don't need to cast at all...
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-10-13 18:19 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-10 10:39 [PATCH v3 1/3] i2c: xilinx: Fix i2c checkpatch warnings Michal Simek
[not found] ` <f3fd6f38d2553e59b077edff1969f4d07f8aa811.1381401561.git.michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
2013-10-10 10:39 ` [PATCH v3 2/3] i2c: xilinx: Do not enable irq before irq handler Michal Simek
2013-10-10 10:39 ` [PATCH v3 3/3] i2c: xilinx: Use devm_* functions Michal Simek
[not found] ` <9691811c34ee339b1f5e3ed2acdea0796fc80788.1381401561.git.michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
2013-10-13 18:19 ` Wolfram Sang
2013-10-10 14:01 ` [PATCH v3 1/3] i2c: xilinx: Fix i2c checkpatch warnings Joe Perches
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).