* [PATCH 00/15] More cleanups
@ 2011-02-15 8:45 Felipe Balbi
2011-02-15 8:45 ` [PATCH 01/15] cbus: retu: drop retu_get_status Felipe Balbi
` (10 more replies)
0 siblings, 11 replies; 13+ messages in thread
From: Felipe Balbi @ 2011-02-15 8:45 UTC (permalink / raw)
To: Tony Lindgren; +Cc: Linux OMAP Mailing List, Felipe Balbi
We're almost there. retu.c looks very nice now.
The bulk effort is now on its children:
. retu-headset.c
. should use jack framework
. should use dev_pm_ops
. some cleanups wouldn't hurt
. retu-rtc.c
. needs suspend/resume (?)
. retu-wdt.c
. needs suspend/resume (?)
patches also available at [1] for convenience
[1] git://gitorious.org/usb/usb.git cbus
Felipe Balbi (15):
cbus: retu: drop retu_get_status
cbus: retu: replace BUG_ON with WARN
cbus: retu: drop the unnecessary spinlock_t
cbus: retu: drop unused PFX macro
arm: omap: cbus: add IDs for Retu and Tahvo
arm: omap: pass Retu ID via platform_data
cbus: retu: use the devid from platform_data
cbus: retu: introduce internal read/write functions
cbus: retu: search and replace
cbus: retu: pwrbutton: save device pointer on our structure
cbus: retu: pass the child device pointer to all retu functions
cbus: retu: headset: don't save pdev pointer
cbus: retu: replace EXPORT_SYMBOL with EXPORT_SYMBOL_GPL
cbus: retu: tabify retu initialization
cbus: retu: set pm_power_off to NULL when removing retu
arch/arm/mach-omap1/board-nokia770.c | 1 +
arch/arm/mach-omap2/board-n8x0.c | 1 +
arch/arm/plat-omap/include/plat/cbus.h | 4 +
drivers/cbus/retu-headset.c | 35 ++++---
drivers/cbus/retu-pwrbutton.c | 4 +-
drivers/cbus/retu-rtc.c | 34 +++----
drivers/cbus/retu-wdt.c | 15 +---
drivers/cbus/retu.c | 160 +++++++++++++++++++-------------
drivers/cbus/retu.h | 10 +-
9 files changed, 146 insertions(+), 118 deletions(-)
--
1.7.4.rc2
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 01/15] cbus: retu: drop retu_get_status
2011-02-15 8:45 [PATCH 00/15] More cleanups Felipe Balbi
@ 2011-02-15 8:45 ` Felipe Balbi
2011-02-15 8:45 ` [PATCH 02/15] cbus: retu: replace BUG_ON with WARN Felipe Balbi
` (9 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Felipe Balbi @ 2011-02-15 8:45 UTC (permalink / raw)
To: Tony Lindgren; +Cc: Linux OMAP Mailing List, Felipe Balbi
children are allocated after retu core probes,
so by the time children start to probe, parent
is initialized for sure.
Signed-off-by: Felipe Balbi <balbi@ti.com>
---
drivers/cbus/retu-rtc.c | 6 ------
drivers/cbus/retu-wdt.c | 8 --------
drivers/cbus/retu.c | 6 ------
drivers/cbus/retu.h | 1 -
4 files changed, 0 insertions(+), 21 deletions(-)
diff --git a/drivers/cbus/retu-rtc.c b/drivers/cbus/retu-rtc.c
index 5f52edf..303a4a6 100644
--- a/drivers/cbus/retu-rtc.c
+++ b/drivers/cbus/retu-rtc.c
@@ -215,12 +215,6 @@ static int __init retu_rtc_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, rtc);
mutex_init(&rtc->mutex);
- r = retu_get_status();
- if (!r) {
- dev_err(&pdev->dev, "retu not initialized\n");
- goto err1;
- }
-
rtc->alarm_expired = retu_read_reg(RETU_REG_IDR) &
(0x1 << RETU_INT_RTCA);
diff --git a/drivers/cbus/retu-wdt.c b/drivers/cbus/retu-wdt.c
index 8b87ae9..423216c 100644
--- a/drivers/cbus/retu-wdt.c
+++ b/drivers/cbus/retu-wdt.c
@@ -230,10 +230,6 @@ static int __devinit retu_wdt_ping(void)
{
int r;
- r = retu_get_status();
- if (!r)
- return -ENODEV;
-
#ifdef CONFIG_WATCHDOG_NOWAYOUT
retu_modify_counter(RETU_WDT_MAX_TIMER);
#else
@@ -258,10 +254,6 @@ static int __init retu_wdt_probe(struct platform_device *pdev)
struct retu_wdt_dev *wdev;
int ret;
- ret = retu_get_status();
- if (!ret)
- return -ENODEV;
-
wdev = kzalloc(sizeof(struct retu_wdt_dev), GFP_KERNEL);
if (!wdev)
return -ENOMEM;
diff --git a/drivers/cbus/retu.c b/drivers/cbus/retu.c
index 6134781..5886b00 100644
--- a/drivers/cbus/retu.c
+++ b/drivers/cbus/retu.c
@@ -74,12 +74,6 @@ struct retu {
static struct retu *the_retu;
-int retu_get_status(void)
-{
- return the_retu ? 1 : 0;
-}
-EXPORT_SYMBOL(retu_get_status);
-
/**
* retu_read_reg - Read a value from a register in Retu
* @reg: the register to read from
diff --git a/drivers/cbus/retu.h b/drivers/cbus/retu.h
index 1b05f3e..f2357a9 100644
--- a/drivers/cbus/retu.h
+++ b/drivers/cbus/retu.h
@@ -57,7 +57,6 @@
#define MAX_RETU_IRQ_HANDLERS 16
-int retu_get_status(void);
int retu_read_reg(unsigned reg);
void retu_write_reg(unsigned reg, u16 val);
void retu_set_clear_reg_bits(unsigned reg, u16 set, u16 clear);
--
1.7.4.rc2
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 02/15] cbus: retu: replace BUG_ON with WARN
2011-02-15 8:45 [PATCH 00/15] More cleanups Felipe Balbi
2011-02-15 8:45 ` [PATCH 01/15] cbus: retu: drop retu_get_status Felipe Balbi
@ 2011-02-15 8:45 ` Felipe Balbi
2011-02-15 8:45 ` [PATCH 03/15] cbus: retu: drop the unnecessary spinlock_t Felipe Balbi
` (8 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Felipe Balbi @ 2011-02-15 8:45 UTC (permalink / raw)
To: Tony Lindgren; +Cc: Linux OMAP Mailing List, Felipe Balbi
Instead of breaking the entire thing, just
WARN() about it.
Signed-off-by: Felipe Balbi <balbi@ti.com>
---
drivers/cbus/retu.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/cbus/retu.c b/drivers/cbus/retu.c
index 5886b00..032864a 100644
--- a/drivers/cbus/retu.c
+++ b/drivers/cbus/retu.c
@@ -82,7 +82,7 @@ static struct retu *the_retu;
*/
int retu_read_reg(unsigned reg)
{
- BUG_ON(!the_retu);
+ WARN(!the_retu, "Retu not initialized\n");
return cbus_read_reg(RETU_ID, reg);
}
EXPORT_SYMBOL(retu_read_reg);
@@ -96,7 +96,7 @@ EXPORT_SYMBOL(retu_read_reg);
*/
void retu_write_reg(unsigned reg, u16 val)
{
- BUG_ON(!the_retu);
+ WARN(!the_retu, "Retu not initialized\n");
cbus_write_reg(RETU_ID, reg, val);
}
EXPORT_SYMBOL(retu_write_reg);
--
1.7.4.rc2
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 03/15] cbus: retu: drop the unnecessary spinlock_t
2011-02-15 8:45 [PATCH 00/15] More cleanups Felipe Balbi
2011-02-15 8:45 ` [PATCH 01/15] cbus: retu: drop retu_get_status Felipe Balbi
2011-02-15 8:45 ` [PATCH 02/15] cbus: retu: replace BUG_ON with WARN Felipe Balbi
@ 2011-02-15 8:45 ` Felipe Balbi
2011-02-15 8:45 ` [PATCH 04/15] cbus: retu: drop unused PFX macro Felipe Balbi
` (7 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Felipe Balbi @ 2011-02-15 8:45 UTC (permalink / raw)
To: Tony Lindgren; +Cc: Linux OMAP Mailing List, Felipe Balbi
gpiolib functions can sleep, and we already
have a mutex on the driver, so drop the
spinlock_t and use the mutex.
While at that, also rename irq_lock to
mutex since that's not used only for the
IRQ path anymore.
Signed-off-by: Felipe Balbi <balbi@ti.com>
---
drivers/cbus/retu.c | 21 ++++++++-------------
1 files changed, 8 insertions(+), 13 deletions(-)
diff --git a/drivers/cbus/retu.c b/drivers/cbus/retu.c
index 032864a..82d22b8 100644
--- a/drivers/cbus/retu.c
+++ b/drivers/cbus/retu.c
@@ -54,8 +54,7 @@
struct retu {
/* Device lock */
- spinlock_t lock;
- struct mutex irq_lock;
+ struct mutex mutex;
struct device *dev;
int irq_base;
@@ -104,15 +103,14 @@ EXPORT_SYMBOL(retu_write_reg);
void retu_set_clear_reg_bits(unsigned reg, u16 set, u16 clear)
{
struct retu *retu = the_retu;
- unsigned long flags;
u16 w;
- spin_lock_irqsave(&retu->lock, flags);
+ mutex_lock(&retu->mutex);
w = retu_read_reg(reg);
w &= ~clear;
w |= set;
retu_write_reg(reg, w);
- spin_unlock_irqrestore(&retu->lock, flags);
+ mutex_unlock(&retu->mutex);
}
EXPORT_SYMBOL_GPL(retu_set_clear_reg_bits);
@@ -121,7 +119,6 @@ EXPORT_SYMBOL_GPL(retu_set_clear_reg_bits);
int retu_read_adc(int channel)
{
struct retu *retu = the_retu;
- unsigned long flags;
int res;
if (!retu)
@@ -130,7 +127,7 @@ int retu_read_adc(int channel)
if (channel < 0 || channel > ADC_MAX_CHAN_NUMBER)
return -EINVAL;
- spin_lock_irqsave(&retu->lock, flags);
+ mutex_lock(&retu->mutex);
if ((channel == 8) && retu->is_vilma) {
int scr = retu_read_reg(RETU_REG_ADCSCR);
@@ -147,7 +144,7 @@ int retu_read_adc(int channel)
retu_write_reg(RETU_REG_ADCR, (1 << 13));
/* Unlock retu */
- spin_unlock_irqrestore(&retu->lock, flags);
+ mutex_unlock(&retu->mutex);
return res;
}
@@ -215,7 +212,7 @@ static void retu_bus_lock(struct irq_data *data)
{
struct retu *retu = irq_data_get_irq_chip_data(data);
- mutex_lock(&retu->irq_lock);
+ mutex_lock(&retu->mutex);
}
static void retu_bus_sync_unlock(struct irq_data *data)
@@ -232,7 +229,7 @@ static void retu_bus_sync_unlock(struct irq_data *data)
retu->ack_pending = false;
}
- mutex_unlock(&retu->irq_lock);
+ mutex_unlock(&retu->mutex);
}
static struct irq_chip retu_irq_chip = {
@@ -410,9 +407,7 @@ static int __init retu_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, retu);
the_retu = retu;
- /* Prepare tasklet */
- spin_lock_init(&retu->lock);
- mutex_init(&retu->irq_lock);
+ mutex_init(&retu->mutex);
irq = platform_get_irq(pdev, 0);
--
1.7.4.rc2
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 04/15] cbus: retu: drop unused PFX macro
2011-02-15 8:45 [PATCH 00/15] More cleanups Felipe Balbi
` (2 preceding siblings ...)
2011-02-15 8:45 ` [PATCH 03/15] cbus: retu: drop the unnecessary spinlock_t Felipe Balbi
@ 2011-02-15 8:45 ` Felipe Balbi
2011-02-15 8:45 ` [PATCH 05/15] arm: omap: cbus: add IDs for Retu and Tahvo Felipe Balbi
` (6 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Felipe Balbi @ 2011-02-15 8:45 UTC (permalink / raw)
To: Tony Lindgren; +Cc: Linux OMAP Mailing List, Felipe Balbi
That's not used anywhere in the code,
so simply drop it.
Signed-off-by: Felipe Balbi <balbi@ti.com>
---
drivers/cbus/retu.c | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/drivers/cbus/retu.c b/drivers/cbus/retu.c
index 82d22b8..b1c8e57 100644
--- a/drivers/cbus/retu.c
+++ b/drivers/cbus/retu.c
@@ -50,7 +50,6 @@
#include "retu.h"
#define RETU_ID 0x01
-#define PFX "retu: "
struct retu {
/* Device lock */
--
1.7.4.rc2
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 05/15] arm: omap: cbus: add IDs for Retu and Tahvo
2011-02-15 8:45 [PATCH 00/15] More cleanups Felipe Balbi
` (3 preceding siblings ...)
2011-02-15 8:45 ` [PATCH 04/15] cbus: retu: drop unused PFX macro Felipe Balbi
@ 2011-02-15 8:45 ` Felipe Balbi
2011-02-15 8:45 ` [PATCH 06/15] arm: omap: pass Retu ID via platform_data Felipe Balbi
` (5 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Felipe Balbi @ 2011-02-15 8:45 UTC (permalink / raw)
To: Tony Lindgren; +Cc: Linux OMAP Mailing List, Felipe Balbi
Each driver is defining it's own ID. Defining it
on the generic header will allow to pass those
via platform_data.
Signed-off-by: Felipe Balbi <balbi@ti.com>
---
arch/arm/plat-omap/include/plat/cbus.h | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/arch/arm/plat-omap/include/plat/cbus.h b/arch/arm/plat-omap/include/plat/cbus.h
index 1f0e8be..e7ace57 100644
--- a/arch/arm/plat-omap/include/plat/cbus.h
+++ b/arch/arm/plat-omap/include/plat/cbus.h
@@ -22,6 +22,9 @@
#ifndef __PLAT_CBUS_H
#define __PLAT_CBUS_H
+#define CBUS_RETU_DEVICE_ID 0x01
+#define CBUS_TAHVO_DEVICE_ID 0x02
+
struct cbus_host_platform_data {
int dat_gpio;
int clk_gpio;
--
1.7.4.rc2
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 06/15] arm: omap: pass Retu ID via platform_data
2011-02-15 8:45 [PATCH 00/15] More cleanups Felipe Balbi
` (4 preceding siblings ...)
2011-02-15 8:45 ` [PATCH 05/15] arm: omap: cbus: add IDs for Retu and Tahvo Felipe Balbi
@ 2011-02-15 8:45 ` Felipe Balbi
2011-02-15 8:45 ` [PATCH 07/15] cbus: retu: use the devid from platform_data Felipe Balbi
` (4 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Felipe Balbi @ 2011-02-15 8:45 UTC (permalink / raw)
To: Tony Lindgren; +Cc: Linux OMAP Mailing List, Felipe Balbi
Instead of hardcoding on the driver, pass
that via platform_data instead.
Signed-off-by: Felipe Balbi <balbi@ti.com>
---
arch/arm/mach-omap1/board-nokia770.c | 1 +
arch/arm/mach-omap2/board-n8x0.c | 1 +
arch/arm/plat-omap/include/plat/cbus.h | 1 +
3 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-omap1/board-nokia770.c b/arch/arm/mach-omap1/board-nokia770.c
index d939370..f2a92b5 100644
--- a/arch/arm/mach-omap1/board-nokia770.c
+++ b/arch/arm/mach-omap1/board-nokia770.c
@@ -126,6 +126,7 @@ static struct resource retu_resource[] = {
static struct cbus_retu_platform_data nokia770_retu_data = {
.irq_base = CBUS_RETU_IRQ_BASE,
.irq_end = CBUS_RETU_IRQ_END,
+ .devid = CBUS_RETU_DEVICE_ID,
};
static struct platform_device retu_device = {
diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c
index 1e4bfb2..e00c0fa 100644
--- a/arch/arm/mach-omap2/board-n8x0.c
+++ b/arch/arm/mach-omap2/board-n8x0.c
@@ -223,6 +223,7 @@ static struct resource retu_resource[] = {
static struct cbus_retu_platform_data n8x0_retu_data = {
.irq_base = CBUS_RETU_IRQ_BASE,
.irq_end = CBUS_RETU_IRQ_END,
+ .devid = CBUS_RETU_DEVICE_ID,
};
static struct platform_device retu_device = {
diff --git a/arch/arm/plat-omap/include/plat/cbus.h b/arch/arm/plat-omap/include/plat/cbus.h
index e7ace57..563b1c2 100644
--- a/arch/arm/plat-omap/include/plat/cbus.h
+++ b/arch/arm/plat-omap/include/plat/cbus.h
@@ -34,6 +34,7 @@ struct cbus_host_platform_data {
struct cbus_retu_platform_data {
int irq_base;
int irq_end;
+ int devid;
};
#endif /* __PLAT_CBUS_H */
--
1.7.4.rc2
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 07/15] cbus: retu: use the devid from platform_data
2011-02-15 8:45 [PATCH 00/15] More cleanups Felipe Balbi
` (5 preceding siblings ...)
2011-02-15 8:45 ` [PATCH 06/15] arm: omap: pass Retu ID via platform_data Felipe Balbi
@ 2011-02-15 8:45 ` Felipe Balbi
2011-02-15 8:45 ` [PATCH 08/15] cbus: retu: introduce internal read/write functions Felipe Balbi
` (3 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Felipe Balbi @ 2011-02-15 8:45 UTC (permalink / raw)
To: Tony Lindgren; +Cc: Linux OMAP Mailing List, Felipe Balbi
We are already passing the device ID via
platform_data, all we have to do know is
use it.
Signed-off-by: Felipe Balbi <balbi@ti.com>
---
drivers/cbus/retu.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/cbus/retu.c b/drivers/cbus/retu.c
index b1c8e57..d2326aa 100644
--- a/drivers/cbus/retu.c
+++ b/drivers/cbus/retu.c
@@ -49,13 +49,13 @@
#include "cbus.h"
#include "retu.h"
-#define RETU_ID 0x01
-
struct retu {
/* Device lock */
struct mutex mutex;
struct device *dev;
+ int devid;
+
int irq_base;
int irq_end;
@@ -81,7 +81,7 @@ static struct retu *the_retu;
int retu_read_reg(unsigned reg)
{
WARN(!the_retu, "Retu not initialized\n");
- return cbus_read_reg(RETU_ID, reg);
+ return cbus_read_reg(the_retu->devid, reg);
}
EXPORT_SYMBOL(retu_read_reg);
@@ -95,7 +95,7 @@ EXPORT_SYMBOL(retu_read_reg);
void retu_write_reg(unsigned reg, u16 val)
{
WARN(!the_retu, "Retu not initialized\n");
- cbus_write_reg(RETU_ID, reg, val);
+ cbus_write_reg(the_retu->devid, reg, val);
}
EXPORT_SYMBOL(retu_write_reg);
@@ -413,6 +413,7 @@ static int __init retu_probe(struct platform_device *pdev)
retu->irq = irq;
retu->irq_base = pdata->irq_base;
retu->irq_end = pdata->irq_end;
+ retu->devid = pdata->devid;
retu_irq_init(retu);
--
1.7.4.rc2
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 08/15] cbus: retu: introduce internal read/write functions
2011-02-15 8:45 [PATCH 00/15] More cleanups Felipe Balbi
` (6 preceding siblings ...)
2011-02-15 8:45 ` [PATCH 07/15] cbus: retu: use the devid from platform_data Felipe Balbi
@ 2011-02-15 8:45 ` Felipe Balbi
2011-02-15 8:45 ` [PATCH 09/15] cbus: retu: search and replace Felipe Balbi
` (2 subsequent siblings)
10 siblings, 0 replies; 13+ messages in thread
From: Felipe Balbi @ 2011-02-15 8:45 UTC (permalink / raw)
To: Tony Lindgren; +Cc: Linux OMAP Mailing List, Felipe Balbi
We already have the retu structure in others
parts of the retu driver, so instead of accessing
the_retu all over the place, we can start combining
those accesses.
While at that fix a kerneldoc comment on
retu_write_reg()
Signed-off-by: Felipe Balbi <balbi@ti.com>
---
drivers/cbus/retu.c | 27 ++++++++++++++++++++++++---
1 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/drivers/cbus/retu.c b/drivers/cbus/retu.c
index d2326aa..7e4b7e5 100644
--- a/drivers/cbus/retu.c
+++ b/drivers/cbus/retu.c
@@ -73,6 +73,27 @@ struct retu {
static struct retu *the_retu;
/**
+ * __retu_read_reg - Read a value from a register in Retu
+ * @retu: pointer to retu structure
+ * @reg: the register address to read from
+ */
+static int __retu_read_reg(struct retu *retu, unsigned reg)
+{
+ return cbus_read_reg(retu->devid, reg);
+}
+
+/**
+ * __retu_write_reg - Writes a value to a register in Retu
+ * @retu: pointer to retu structure
+ * @reg: the register address to write to
+ * @val: the value to write to the register
+ */
+static void __retu_write_reg(struct retu *retu, unsigned reg, u16 val)
+{
+ cbus_write_reg(retu->devid, reg, val);
+}
+
+/**
* retu_read_reg - Read a value from a register in Retu
* @reg: the register to read from
*
@@ -81,21 +102,21 @@ static struct retu *the_retu;
int retu_read_reg(unsigned reg)
{
WARN(!the_retu, "Retu not initialized\n");
- return cbus_read_reg(the_retu->devid, reg);
+ return __retu_read_reg(the_retu, reg);
}
EXPORT_SYMBOL(retu_read_reg);
/**
* retu_write_reg - Write a value to a register in Retu
* @reg: the register to write to
- * @reg: the value to write to the register
+ * @val: the value to write to the register
*
* This function writes a value to the specified register
*/
void retu_write_reg(unsigned reg, u16 val)
{
WARN(!the_retu, "Retu not initialized\n");
- cbus_write_reg(the_retu->devid, reg, val);
+ __retu_write_reg(the_retu, reg, val);
}
EXPORT_SYMBOL(retu_write_reg);
--
1.7.4.rc2
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 09/15] cbus: retu: search and replace
2011-02-15 8:45 [PATCH 00/15] More cleanups Felipe Balbi
` (7 preceding siblings ...)
2011-02-15 8:45 ` [PATCH 08/15] cbus: retu: introduce internal read/write functions Felipe Balbi
@ 2011-02-15 8:45 ` Felipe Balbi
2011-02-15 8:45 ` [PATCH 10/15] cbus: retu: pwrbutton: save device pointer on our structure Felipe Balbi
2011-02-16 18:07 ` [PATCH 00/15] More cleanups Tony Lindgren
10 siblings, 0 replies; 13+ messages in thread
From: Felipe Balbi @ 2011-02-15 8:45 UTC (permalink / raw)
To: Tony Lindgren; +Cc: Linux OMAP Mailing List, Felipe Balbi
replace all occurrences of retu_read_reg
and retu_write_reg with the internal functions
__retu_read_reg and __retu_write_reg on retu.c
Achieved with the following vim command:
:%s/\<retu_\(read\|write\)_reg(/__retu_\1_reg(retu, /gc
Signed-off-by: Felipe Balbi <balbi@ti.com>
---
drivers/cbus/retu.c | 41 +++++++++++++++++++++++------------------
1 files changed, 23 insertions(+), 18 deletions(-)
diff --git a/drivers/cbus/retu.c b/drivers/cbus/retu.c
index 7e4b7e5..c798b58 100644
--- a/drivers/cbus/retu.c
+++ b/drivers/cbus/retu.c
@@ -126,10 +126,10 @@ void retu_set_clear_reg_bits(unsigned reg, u16 set, u16 clear)
u16 w;
mutex_lock(&retu->mutex);
- w = retu_read_reg(reg);
+ w = __retu_read_reg(retu, reg);
w &= ~clear;
w |= set;
- retu_write_reg(reg, w);
+ __retu_write_reg(retu, reg, w);
mutex_unlock(&retu->mutex);
}
EXPORT_SYMBOL_GPL(retu_set_clear_reg_bits);
@@ -150,18 +150,18 @@ int retu_read_adc(int channel)
mutex_lock(&retu->mutex);
if ((channel == 8) && retu->is_vilma) {
- int scr = retu_read_reg(RETU_REG_ADCSCR);
- int ch = (retu_read_reg(RETU_REG_ADCR) >> 10) & 0xf;
+ int scr = __retu_read_reg(retu, RETU_REG_ADCSCR);
+ int ch = (__retu_read_reg(retu, RETU_REG_ADCR) >> 10) & 0xf;
if (((scr & 0xff) != 0) && (ch != 8))
- retu_write_reg (RETU_REG_ADCSCR, (scr & ~0xff));
+ __retu_write_reg(retu, RETU_REG_ADCSCR, (scr & ~0xff));
}
/* Select the channel and read result */
- retu_write_reg(RETU_REG_ADCR, channel << 10);
- res = retu_read_reg(RETU_REG_ADCR) & 0x3ff;
+ __retu_write_reg(retu, RETU_REG_ADCR, channel << 10);
+ res = __retu_read_reg(retu, RETU_REG_ADCR) & 0x3ff;
if (retu->is_vilma)
- retu_write_reg(RETU_REG_ADCR, (1 << 13));
+ __retu_write_reg(retu, RETU_REG_ADCR, (1 << 13));
/* Unlock retu */
mutex_unlock(&retu->mutex);
@@ -179,8 +179,8 @@ static irqreturn_t retu_irq_handler(int irq, void *_retu)
u16 idr;
u16 imr;
- idr = retu_read_reg(RETU_REG_IDR);
- imr = retu_read_reg(RETU_REG_IMR);
+ idr = __retu_read_reg(retu, RETU_REG_IDR);
+ imr = __retu_read_reg(retu, RETU_REG_IMR);
idr &= ~imr;
if (!idr) {
@@ -240,12 +240,12 @@ static void retu_bus_sync_unlock(struct irq_data *data)
struct retu *retu = irq_data_get_irq_chip_data(data);
if (retu->mask_pending) {
- retu_write_reg(RETU_REG_IMR, retu->mask);
+ __retu_write_reg(retu, RETU_REG_IMR, retu->mask);
retu->mask_pending = false;
}
if (retu->ack_pending) {
- retu_write_reg(RETU_REG_IDR, retu->ack);
+ __retu_write_reg(retu, RETU_REG_IDR, retu->ack);
retu->ack_pending = false;
}
@@ -309,10 +309,15 @@ static void retu_irq_exit(struct retu *retu)
*/
static void retu_power_off(void)
{
+ struct retu *retu = the_retu;
+ unsigned reg;
+
+ reg = __retu_read_reg(retu, RETU_REG_CC1);
+
/* Ignore power button state */
- retu_write_reg(RETU_REG_CC1, retu_read_reg(RETU_REG_CC1) | 2);
+ __retu_write_reg(retu, RETU_REG_CC1, reg | 2);
/* Expire watchdog immediately */
- retu_write_reg(RETU_REG_WATCHDOG, 0);
+ __retu_write_reg(retu, RETU_REG_WATCHDOG, 0);
/* Wait for poweroff*/
for (;;);
}
@@ -438,7 +443,7 @@ static int __init retu_probe(struct platform_device *pdev)
retu_irq_init(retu);
- rev = retu_read_reg(RETU_REG_ASICR) & 0xff;
+ rev = __retu_read_reg(retu, RETU_REG_ASICR) & 0xff;
if (rev & (1 << 7))
retu->is_vilma = true;
@@ -447,7 +452,7 @@ static int __init retu_probe(struct platform_device *pdev)
(rev >> 4) & 0x07, rev & 0x0f);
/* Mask all RETU interrupts */
- retu_write_reg(RETU_REG_IMR, 0xffff);
+ __retu_write_reg(retu, RETU_REG_IMR, 0xffff);
ret = request_threaded_irq(irq, NULL, retu_irq_handler, 0,
"retu", retu);
@@ -470,7 +475,7 @@ static int __init retu_probe(struct platform_device *pdev)
return 0;
err2:
- retu_write_reg(RETU_REG_IMR, 0xffff);
+ __retu_write_reg(retu, RETU_REG_IMR, 0xffff);
free_irq(irq, retu);
err1:
@@ -489,7 +494,7 @@ static int __exit retu_remove(struct platform_device *pdev)
irq = platform_get_irq(pdev, 0);
/* Mask all RETU interrupts */
- retu_write_reg(RETU_REG_IMR, 0xffff);
+ __retu_write_reg(retu, RETU_REG_IMR, 0xffff);
free_irq(irq, retu);
retu_irq_exit(retu);
kfree(retu);
--
1.7.4.rc2
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 10/15] cbus: retu: pwrbutton: save device pointer on our structure
2011-02-15 8:45 [PATCH 00/15] More cleanups Felipe Balbi
` (8 preceding siblings ...)
2011-02-15 8:45 ` [PATCH 09/15] cbus: retu: search and replace Felipe Balbi
@ 2011-02-15 8:45 ` Felipe Balbi
2011-02-16 18:07 ` [PATCH 00/15] More cleanups Tony Lindgren
10 siblings, 0 replies; 13+ messages in thread
From: Felipe Balbi @ 2011-02-15 8:45 UTC (permalink / raw)
To: Tony Lindgren; +Cc: Linux OMAP Mailing List, Felipe Balbi
We will start passing our device pointer to
read/write functions exported from retu so
we need to save the device pointer on our
context structure.
Signed-off-by: Felipe Balbi <balbi@ti.com>
---
drivers/cbus/retu-pwrbutton.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/cbus/retu-pwrbutton.c b/drivers/cbus/retu-pwrbutton.c
index 593a73a..77c655d 100644
--- a/drivers/cbus/retu-pwrbutton.c
+++ b/drivers/cbus/retu-pwrbutton.c
@@ -47,6 +47,7 @@
struct retu_pwrbutton {
struct input_dev *idev;
+ struct device *dev;
int state;
int irq;
@@ -83,6 +84,7 @@ static int __init retubutton_probe(struct platform_device *pdev)
goto err0;
}
+ pwr->dev = &pdev->dev;
pwr->irq = platform_get_irq(pdev, 0);
platform_set_drvdata(pdev, pwr);
--
1.7.4.rc2
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 00/15] More cleanups
2011-02-15 8:45 [PATCH 00/15] More cleanups Felipe Balbi
` (9 preceding siblings ...)
2011-02-15 8:45 ` [PATCH 10/15] cbus: retu: pwrbutton: save device pointer on our structure Felipe Balbi
@ 2011-02-16 18:07 ` Tony Lindgren
2011-02-16 19:18 ` Felipe Balbi
10 siblings, 1 reply; 13+ messages in thread
From: Tony Lindgren @ 2011-02-16 18:07 UTC (permalink / raw)
To: Felipe Balbi; +Cc: Linux OMAP Mailing List
Hi,
* Felipe Balbi <balbi@ti.com> [110215 00:44]:
> We're almost there. retu.c looks very nice now.
>
> The bulk effort is now on its children:
>
> . retu-headset.c
> . should use jack framework
> . should use dev_pm_ops
> . some cleanups wouldn't hurt
>
> . retu-rtc.c
> . needs suspend/resume (?)
>
> . retu-wdt.c
> . needs suspend/resume (?)
>
> patches also available at [1] for convenience
>
> [1] git://gitorious.org/usb/usb.git cbus
>
> Felipe Balbi (15):
> cbus: retu: drop retu_get_status
> cbus: retu: replace BUG_ON with WARN
> cbus: retu: drop the unnecessary spinlock_t
> cbus: retu: drop unused PFX macro
> arm: omap: cbus: add IDs for Retu and Tahvo
> arm: omap: pass Retu ID via platform_data
> cbus: retu: use the devid from platform_data
> cbus: retu: introduce internal read/write functions
> cbus: retu: search and replace
> cbus: retu: pwrbutton: save device pointer on our structure
Looks like some did not make it to the list. But pulled
and did a git reset --hard at the patch above.
> cbus: retu: pass the child device pointer to all retu functions
As based on a quick test this one will oops:
[ 2.925170] Internal error: Oops: 5 [#1] SMP
[ 2.929656] last sysfs file:
[ 2.932800] Modules linked in:
[ 2.936035] CPU: 0 Not tainted (2.6.38-rc4-00101-gbbb5d46 #113)
[ 2.942657] PC is at retu_write_reg+0x8/0x24
[ 2.947143] LR is at _retu_modify_counter+0x28/0x34
[ 2.952301] pc : [<c0329ad4>] lr : [<c032a23c>] psr: a0000013
[ 2.952331] sp : c7825ee8 ip : 22222222 fp : 00000000
[ 2.964355] r10: 00000000 r9 : 00000000 r8 : c0b4e6f0
[ 2.969848] r7 : c05f5598 r6 : 00000000 r5 : 0000003f r4 : 00000017
[ 2.976715] r3 : c0b4e6f0 r2 : 0000003f r1 : 00000017 r0 : 00000000
[ 2.983581] Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
[ 2.991271] Control: 00c5387d Table: 80004000 DAC: 00000017
[ 2.997314] Process swapper (pid: 1, stack limit = 0xc78242f8)
[ 3.003448] Stack: (0xc7825ee8 to 0xc7826000)
[ 3.008056] 5ee0: c05f5598 0000003f 00000000 c032a23c c05f5598 c032a278
[ 3.016693] 5f00: c7a96ea0 c7898008 00000000 c002ceb0 c7898008 c7898008 c05f55ac c7a96f20
[ 3.025299] 5f20: c05e8b60 c0296c40 c7898008 c0295da8 c7898008 c789803c c05f55ac c0295ed0
[ 3.033905] 5f40: 00000000 c0295e68 c05f55ac c02955c8 c7819658 c78bb790 c05f5598 c05f55ac
[ 3.042541] 5f60: c05f55ac c0294efc c0532916 00000468 00000000 c05f5598 c059aaf8 c05f55ac
[ 3.051147] 5f80: 00000013 c002cdb4 00000000 c02961c8 c05f5598 c059aaf8 c059aaf0 00000013
[ 3.059753] 5fa0: c002cdb4 c0297048 c0034930 c059aaf8 c059aaf0 c0052554 00000000 00000000
[ 3.068389] 5fc0: c0500122 000001a2 c059aaf8 c0034930 c059aaf8 c059aaf0 00000013 00000000
[ 3.076995] 5fe0: 00000000 c00084f4 00000000 c00083a4 c005dd64 c005dd64 ffffffff ffffffff
[ 3.085632] [<c0329ad4>] (retu_write_reg+0x8/0x24) from [<c032a23c>] (_retu_modify_counter+0x28/0x34)
[ 3.095367] [<c032a23c>] (_retu_modify_counter+0x28/0x34) from [<c032a278>] (retu_modify_counter+0x30/0x44)
[ 3.105651] [<c032a278>] (retu_modify_counter+0x30/0x44) from [<c002ceb0>] (retu_wdt_probe+0xe8/0x160)
[ 3.115447] [<c002ceb0>] (retu_wdt_probe+0xe8/0x160) from [<c0296c40>] (platform_drv_probe+0x18/0x
[ 3.125183] [<c0296c40>] (platform_drv_probe+0x18/0x1c) from [<c0295da8>] (driver_probe_device+0xc8/0x188)
[ 3.135375] [<c0295da8>] (driver_probe_device+0xc8/0x188) from [<c0295ed0>] (__driver_attach+0x68/0x8c)
[ 3.145263] [<c0295ed0>] (__driver_attach+0x68/0x8c) from [<c02955c8>] (bus_for_each_dev+0x44/0x74)
[ 3.154815] [<c02955c8>] (bus_for_each_dev+0x44/0x74) from [<c0294efc>] (bus_add_driver+0xa0/0x228)
[ 3.164337] [<c0294efc>] (bus_add_driver+0xa0/0x228) from [<c02961c8>] (driver_register+0xa8/0x130)
[ 3.173889] [<c02961c8>] (driver_register+0xa8/0x130) from [<c0297048>] (platform_driver_probe+0x18/0x8c)
[ 3.183990] [<c0297048>] (platform_driver_probe+0x18/0x8c) from [<c0052554>] (do_one_initcall+0xc8/0x1a0)
[ 3.194061] [<c0052554>] (do_one_initcall+0xc8/0x1a0) from [<c00084f4>] (kernel_init+0x150/0x218)
[ 3.203430] [<c00084f4>] (kernel_init+0x150/0x218) from [<c005dd64>] (kernel_thread_exit+0x0/0x8)
[ 3.212768] Code: e8bd41f0 ea035b8e e92d4070 e1a04001 (e5900000)
[ 3.219451] ---[ end trace 5cc53738ab810194 ]---
> cbus: retu: headset: don't save pdev pointer
> cbus: retu: replace EXPORT_SYMBOL with EXPORT_SYMBOL_GPL
> cbus: retu: tabify retu initialization
> cbus: retu: set pm_power_off to NULL when removing retu
So left these out too.
Tony
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 00/15] More cleanups
2011-02-16 18:07 ` [PATCH 00/15] More cleanups Tony Lindgren
@ 2011-02-16 19:18 ` Felipe Balbi
0 siblings, 0 replies; 13+ messages in thread
From: Felipe Balbi @ 2011-02-16 19:18 UTC (permalink / raw)
To: Tony Lindgren; +Cc: Felipe Balbi, Linux OMAP Mailing List
Hi,
On Wed, 2011-02-16 at 10:07 -0800, Tony Lindgren wrote:
> As based on a quick test this one will oops:
>
> [ 2.925170] Internal error: Oops: 5 [#1] SMP
> [ 2.929656] last sysfs file:
> [ 2.932800] Modules linked in:
> [ 2.936035] CPU: 0 Not tainted (2.6.38-rc4-00101-gbbb5d46 #113)
> [ 2.942657] PC is at retu_write_reg+0x8/0x24
> [ 2.947143] LR is at _retu_modify_counter+0x28/0x34
> [ 2.952301] pc : [<c0329ad4>] lr : [<c032a23c>] psr: a0000013
> [ 2.952331] sp : c7825ee8 ip : 22222222 fp : 00000000
> [ 2.964355] r10: 00000000 r9 : 00000000 r8 : c0b4e6f0
> [ 2.969848] r7 : c05f5598 r6 : 00000000 r5 : 0000003f r4 : 00000017
> [ 2.976715] r3 : c0b4e6f0 r2 : 0000003f r1 : 00000017 r0 : 00000000
> [ 2.983581] Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
> [ 2.991271] Control: 00c5387d Table: 80004000 DAC: 00000017
> [ 2.997314] Process swapper (pid: 1, stack limit = 0xc78242f8)
> [ 3.003448] Stack: (0xc7825ee8 to 0xc7826000)
> [ 3.008056] 5ee0: c05f5598 0000003f 00000000 c032a23c c05f5598 c032a278
> [ 3.016693] 5f00: c7a96ea0 c7898008 00000000 c002ceb0 c7898008 c7898008 c05f55ac c7a96f20
> [ 3.025299] 5f20: c05e8b60 c0296c40 c7898008 c0295da8 c7898008 c789803c c05f55ac c0295ed0
> [ 3.033905] 5f40: 00000000 c0295e68 c05f55ac c02955c8 c7819658 c78bb790 c05f5598 c05f55ac
> [ 3.042541] 5f60: c05f55ac c0294efc c0532916 00000468 00000000 c05f5598 c059aaf8 c05f55ac
> [ 3.051147] 5f80: 00000013 c002cdb4 00000000 c02961c8 c05f5598 c059aaf8 c059aaf0 00000013
> [ 3.059753] 5fa0: c002cdb4 c0297048 c0034930 c059aaf8 c059aaf0 c0052554 00000000 00000000
> [ 3.068389] 5fc0: c0500122 000001a2 c059aaf8 c0034930 c059aaf8 c059aaf0 00000013 00000000
> [ 3.076995] 5fe0: 00000000 c00084f4 00000000 c00083a4 c005dd64 c005dd64 ffffffff ffffffff
> [ 3.085632] [<c0329ad4>] (retu_write_reg+0x8/0x24) from [<c032a23c>] (_retu_modify_counter+0x28/0x34)
> [ 3.095367] [<c032a23c>] (_retu_modify_counter+0x28/0x34) from [<c032a278>] (retu_modify_counter+0x30/0x44)
> [ 3.105651] [<c032a278>] (retu_modify_counter+0x30/0x44) from [<c002ceb0>] (retu_wdt_probe+0xe8/0x160)
> [ 3.115447] [<c002ceb0>] (retu_wdt_probe+0xe8/0x160) from [<c0296c40>] (platform_drv_probe+0x18/0x
> [ 3.125183] [<c0296c40>] (platform_drv_probe+0x18/0x1c) from [<c0295da8>] (driver_probe_device+0xc8/0x188)
> [ 3.135375] [<c0295da8>] (driver_probe_device+0xc8/0x188) from [<c0295ed0>] (__driver_attach+0x68/0x8c)
> [ 3.145263] [<c0295ed0>] (__driver_attach+0x68/0x8c) from [<c02955c8>] (bus_for_each_dev+0x44/0x74)
> [ 3.154815] [<c02955c8>] (bus_for_each_dev+0x44/0x74) from [<c0294efc>] (bus_add_driver+0xa0/0x228)
> [ 3.164337] [<c0294efc>] (bus_add_driver+0xa0/0x228) from [<c02961c8>] (driver_register+0xa8/0x130)
> [ 3.173889] [<c02961c8>] (driver_register+0xa8/0x130) from [<c0297048>] (platform_driver_probe+0x18/0x8c)
> [ 3.183990] [<c0297048>] (platform_driver_probe+0x18/0x8c) from [<c0052554>] (do_one_initcall+0xc8/0x1a0)
> [ 3.194061] [<c0052554>] (do_one_initcall+0xc8/0x1a0) from [<c00084f4>] (kernel_init+0x150/0x218)
> [ 3.203430] [<c00084f4>] (kernel_init+0x150/0x218) from [<c005dd64>] (kernel_thread_exit+0x0/0x8)
> [ 3.212768] Code: e8bd41f0 ea035b8e e92d4070 e1a04001 (e5900000)
> [ 3.219451] ---[ end trace 5cc53738ab810194 ]---
found the problem, commit 6b8074b00d90b191227dc875b90b272c51f7d6eb
never got to the point of saving struct device * in struct retu_wdt_dev.
Since it was there already, I was assuming it was working. Silly
mistake. The remaining patches are coming in a few minutes.
--
balbi
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2011-02-16 19:20 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-02-15 8:45 [PATCH 00/15] More cleanups Felipe Balbi
2011-02-15 8:45 ` [PATCH 01/15] cbus: retu: drop retu_get_status Felipe Balbi
2011-02-15 8:45 ` [PATCH 02/15] cbus: retu: replace BUG_ON with WARN Felipe Balbi
2011-02-15 8:45 ` [PATCH 03/15] cbus: retu: drop the unnecessary spinlock_t Felipe Balbi
2011-02-15 8:45 ` [PATCH 04/15] cbus: retu: drop unused PFX macro Felipe Balbi
2011-02-15 8:45 ` [PATCH 05/15] arm: omap: cbus: add IDs for Retu and Tahvo Felipe Balbi
2011-02-15 8:45 ` [PATCH 06/15] arm: omap: pass Retu ID via platform_data Felipe Balbi
2011-02-15 8:45 ` [PATCH 07/15] cbus: retu: use the devid from platform_data Felipe Balbi
2011-02-15 8:45 ` [PATCH 08/15] cbus: retu: introduce internal read/write functions Felipe Balbi
2011-02-15 8:45 ` [PATCH 09/15] cbus: retu: search and replace Felipe Balbi
2011-02-15 8:45 ` [PATCH 10/15] cbus: retu: pwrbutton: save device pointer on our structure Felipe Balbi
2011-02-16 18:07 ` [PATCH 00/15] More cleanups Tony Lindgren
2011-02-16 19:18 ` Felipe Balbi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox