summaryrefslogtreecommitdiff
path: root/target/linux/omap24xx/patches-2.6.36/510-retu-tahvo-user-debugging.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/omap24xx/patches-2.6.36/510-retu-tahvo-user-debugging.patch')
-rw-r--r--target/linux/omap24xx/patches-2.6.36/510-retu-tahvo-user-debugging.patch324
1 files changed, 0 insertions, 324 deletions
diff --git a/target/linux/omap24xx/patches-2.6.36/510-retu-tahvo-user-debugging.patch b/target/linux/omap24xx/patches-2.6.36/510-retu-tahvo-user-debugging.patch
deleted file mode 100644
index 85a88ca9fa..0000000000
--- a/target/linux/omap24xx/patches-2.6.36/510-retu-tahvo-user-debugging.patch
+++ /dev/null
@@ -1,324 +0,0 @@
----
- drivers/cbus/Kconfig | 8 +++
- drivers/cbus/retu-user.c | 117 +++++++++++++++++++++++++++++++++++++++++++++-
- drivers/cbus/tahvo-user.c | 75 +++++++++++++++++++++++++++++
- 3 files changed, 198 insertions(+), 2 deletions(-)
-
---- linux-2.6.36-rc4.orig/drivers/cbus/Kconfig
-+++ linux-2.6.36-rc4/drivers/cbus/Kconfig
-@@ -28,6 +28,10 @@ config CBUS_TAHVO_USER
- If you want support for Tahvo's user space read/write etc. functions,
- you should say Y here.
-
-+config CBUS_TAHVO_USER_DEBUG
-+ depends on CBUS_TAHVO_USER
-+ bool "Enable Tahvo user space interface debugging"
-+
- config CBUS_TAHVO_USB
- depends on CBUS_TAHVO && USB
- tristate "Support for Tahvo USB transceiver"
-@@ -56,6 +60,10 @@ config CBUS_RETU_USER
- If you want support for Retu's user space read/write etc. functions,
- you should say Y here.
-
-+config CBUS_RETU_USER_DEBUG
-+ depends on CBUS_RETU_USER
-+ bool "Enable Retu user space interface debugging"
-+
- config CBUS_RETU_POWERBUTTON
- depends on CBUS_RETU
- bool "Support for Retu power button"
---- linux-2.6.36-rc4.orig/drivers/cbus/retu-user.c
-+++ linux-2.6.36-rc4/drivers/cbus/retu-user.c
-@@ -46,6 +46,12 @@
-
- #define PFX "retu-user: "
-
-+#ifdef CONFIG_CBUS_RETU_USER_DEBUG
-+# define dprintk(fmt, x...) printk(KERN_DEBUG PFX fmt, x)
-+#else
-+# define dprintk(fmt, x...) do { } while (0)
-+#endif
-+
- /* Bitmap for marking the interrupt sources as having the handlers */
- static u32 retu_irq_bits;
-
-@@ -105,6 +111,94 @@ static const u8 retu_access_bits[] = {
- 3
- };
-
-+#ifdef CONFIG_CBUS_RETU_USER_DEBUG
-+static const char * reg_access_text(unsigned int reg)
-+{
-+ if (WARN_ON(reg >= ARRAY_SIZE(retu_access_bits)))
-+ return "X";
-+ switch (retu_access_bits[reg]) {
-+ case READ_ONLY:
-+ return "R";
-+ case WRITE_ONLY:
-+ return "W";
-+ case READ_WRITE:
-+ return "RW";
-+ case TOGGLE:
-+ return "T";
-+ }
-+ return "X";
-+}
-+
-+static const char * reg_name(unsigned int reg)
-+{
-+ static const char *names[] = {
-+ [RETU_REG_ASICR] = "ASIC ID & revision",
-+ [RETU_REG_IDR] = "Interrupt ID",
-+ [RETU_REG_IMR] = "Interrupt mask",
-+ [RETU_REG_RTCDSR] = "RTC seconds register",
-+ [RETU_REG_RTCHMR] = "RTC hours and minutes register",
-+ [RETU_REG_RTCHMAR] = "hours and minutes alarm and time set register",
-+ [RETU_REG_RTCCALR] = "RTC calibration register",
-+ [RETU_REG_ADCR] = "ADC result",
-+ [RETU_REG_ADCSCR] = "ADC sample ctrl",
-+ [RETU_REG_CC1] = "Common control register 1",
-+ [RETU_REG_CC2] = "Common control register 2",
-+ [RETU_REG_CTRL_CLR] = "Regulator clear register",
-+ [RETU_REG_CTRL_SET] = "Regulator set register",
-+ [RETU_REG_STATUS] = "Status register",
-+ [RETU_REG_WATCHDOG] = "Watchdog register",
-+ [RETU_REG_AUDTXR] = "Audio Codec Tx register",
-+ [0x14] = "Charger detect?",
-+ };
-+ const char *name;
-+
-+ if (reg >= ARRAY_SIZE(names))
-+ return "";
-+ name = names[reg];
-+ if (!name)
-+ return "";
-+ return name;
-+}
-+
-+static const char * adc_chan_name(unsigned int chan)
-+{
-+ static const char *names[] = {
-+ [0x05] = "Headset hook detect",
-+ };
-+ const char *name;
-+
-+ if (chan >= ARRAY_SIZE(names))
-+ return "";
-+ name = names[chan];
-+ if (!name)
-+ return "";
-+ return name;
-+}
-+
-+static const char * retu_irq_name(unsigned int id)
-+{
-+ static const char *names[] = {
-+ [RETU_INT_PWR] = "Power",
-+ [RETU_INT_CHAR] = "Char",
-+ [RETU_INT_RTCS] = "RTCS",
-+ [RETU_INT_RTCM] = "RTCM",
-+ [RETU_INT_RTCD] = "RTCD",
-+ [RETU_INT_RTCA] = "RTCA",
-+ [RETU_INT_HOOK] = "Hook",
-+ [RETU_INT_HEAD] = "Head",
-+ [RETU_INT_ADCS] = "ADC timer",
-+ };
-+ const char *name;
-+
-+ if (id >= ARRAY_SIZE(names))
-+ return "";
-+ name = names[id];
-+ if (!name)
-+ return "";
-+ return name;
-+}
-+#endif
-+
- /*
- * The handler for all RETU interrupts.
- *
-@@ -157,6 +251,8 @@ static int retu_user_subscribe_to_irq(in
- /* Mark that this interrupt has a handler */
- retu_irq_bits |= 1 << id;
-
-+ dprintk("Subscribed to IRQ %d (%s)\n", id, retu_irq_name(id));
-+
- return 0;
- }
-
-@@ -216,6 +312,10 @@ static int retu_user_write_with_mask(u32
-
- /* Generate new value */
- tmp = (tmp & ~MASK(field)) | (value & MASK(field));
-+
-+ dprintk("{WRITE %s} 0x%02X(%s) <= msk 0x%04X, val 0x%04X ==> res 0x%04X\n",
-+ reg_name(reg), reg, reg_access_text(reg), MASK(field), value, tmp);
-+
- /* Write data to RETU */
- retu_write_reg(reg, tmp);
- spin_unlock_irqrestore(&retu_lock, flags);
-@@ -244,6 +344,9 @@ static u32 retu_user_read_with_mask(u32
- /* Read the register */
- value = retu_read_reg(reg) & mask;
-
-+ dprintk("{READ %s} 0x%02X(%s) <= msk 0x%04X ==> res 0x%04X\n",
-+ reg_name(reg), reg, reg_access_text(reg), mask, value);
-+
- /* Right justify value */
- while (!(mask & 1)) {
- value = value >> 1;
-@@ -273,7 +376,7 @@ static int retu_close(struct inode *inod
- static long retu_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
- {
- struct retu_tahvo_write_parms par;
-- int ret;
-+ int ret, result;
-
- switch (cmd) {
- case URT_IOCT_IRQ_SUBSCR:
-@@ -290,7 +393,15 @@ static long retu_ioctl(struct file *filp
- printk(KERN_ERR "copy_to_user failed: %d\n", ret);
- break;
- case RETU_IOCH_ADC_READ:
-- return retu_read_adc(arg);
-+ result = retu_read_adc(arg);
-+ if (result >= 0) {
-+ dprintk("{READ-ADC %s} chan 0x%02lX ==> result 0x%04X\n",
-+ adc_chan_name(arg), arg, result);
-+ } else {
-+ dprintk("{READ-ADC %s} chan 0x%02lX ==> failed %d\n",
-+ adc_chan_name(arg), arg, result);
-+ }
-+ return result;
- default:
- return -ENOIOCTLCMD;
- }
-@@ -332,6 +443,8 @@ static ssize_t retu_read(struct file *fi
- list_move(&irq->node, &retu_irqs_reserve);
- spin_unlock_irqrestore(&retu_irqs_lock, flags);
-
-+ dprintk("{IRQ %s} %d delivered\n", retu_irq_name(irq_id), (int)irq_id);
-+
- ret = copy_to_user(buf + i * sizeof(irq_id), &irq_id,
- sizeof(irq_id));
- if (ret)
---- linux-2.6.36-rc4.orig/drivers/cbus/tahvo-user.c
-+++ linux-2.6.36-rc4/drivers/cbus/tahvo-user.c
-@@ -46,6 +46,12 @@
-
- #define PFX "tahvo-user: "
-
-+#ifdef CONFIG_CBUS_TAHVO_USER_DEBUG
-+# define dprintk(fmt, x...) printk(KERN_DEBUG PFX fmt, x)
-+#else
-+# define dprintk(fmt, x...) do { } while (0)
-+#endif
-+
- /* Bitmap for marking the interrupt sources as having the handlers */
- static u32 tahvo_irq_bits;
-
-@@ -87,6 +93,64 @@ static const u8 tahvo_access_bits[] = {
- 1
- };
-
-+#ifdef CONFIG_CBUS_TAHVO_USER_DEBUG
-+static const char * reg_access_text(unsigned int reg)
-+{
-+ if (WARN_ON(reg >= ARRAY_SIZE(tahvo_access_bits)))
-+ return "X";
-+ switch (tahvo_access_bits[reg]) {
-+ case READ_ONLY:
-+ return "R";
-+ case WRITE_ONLY:
-+ return "W";
-+ case READ_WRITE:
-+ return "RW";
-+ case TOGGLE:
-+ return "T";
-+ }
-+ return "X";
-+}
-+
-+static const char * reg_name(unsigned int reg)
-+{
-+ static const char *names[] = {
-+ [TAHVO_REG_ASICR] = "ASIC ID & revision",
-+ [TAHVO_REG_IDR] = "Interrupt ID",
-+ [TAHVO_REG_IDSR] = "Interrupt status",
-+ [TAHVO_REG_IMR] = "Interrupt mask",
-+ [TAHVO_REG_LEDPWMR] = "LED PWM",
-+ [TAHVO_REG_USBR] = "USB control",
-+ [0x04] = "Charge current control?",
-+ [0x08] = "Charge ctl 1?",
-+ [0x0C] = "Charge ctl 2?",
-+ [0x0D] = "Battery current ADC?",
-+ };
-+ const char *name;
-+
-+ if (reg >= ARRAY_SIZE(names))
-+ return "";
-+ name = names[reg];
-+ if (!name)
-+ return "";
-+ return name;
-+}
-+
-+static const char * tahvo_irq_name(unsigned int id)
-+{
-+ static const char *names[] = {
-+ [TAHVO_INT_VBUSON] = "VBUSON",
-+ };
-+ const char *name;
-+
-+ if (id >= ARRAY_SIZE(names))
-+ return "";
-+ name = names[id];
-+ if (!name)
-+ return "";
-+ return name;
-+}
-+#endif
-+
- /*
- * The handler for all TAHVO interrupts.
- *
-@@ -142,6 +206,8 @@ static int tahvo_user_subscribe_to_irq(i
- /* Mark that this interrupt has a handler */
- tahvo_irq_bits |= 1 << id;
-
-+ dprintk("Subscribed to IRQ %d (%s)\n", id, tahvo_irq_name(id));
-+
- return 0;
- }
-
-@@ -200,6 +266,10 @@ static int tahvo_user_write_with_mask(u3
- }
- /* Generate a new value */
- tmp = (tmp & ~MASK(field)) | (value & MASK(field));
-+
-+ dprintk("{WRITE %s} 0x%02X(%s) <= msk 0x%04X, val 0x%04X ==> res 0x%04X\n",
-+ reg_name(reg), reg, reg_access_text(reg), MASK(field), value, tmp);
-+
- /* Write data to TAHVO */
- tahvo_write_reg(reg, tmp);
- spin_unlock_irqrestore(&tahvo_lock, flags);
-@@ -228,6 +298,9 @@ static u32 tahvo_user_read_with_mask(u32
- /* Read the register */
- value = tahvo_read_reg(reg) & mask;
-
-+ dprintk("{READ %s} 0x%02X(%s) <= msk 0x%04X ==> res 0x%04X\n",
-+ reg_name(reg), reg, reg_access_text(reg), mask, value);
-+
- /* Right justify value */
- while (!(mask & 1)) {
- value = value >> 1;
-@@ -314,6 +387,8 @@ static ssize_t tahvo_read(struct file *f
- list_move(&irq->node, &tahvo_irqs_reserve);
- spin_unlock_irqrestore(&tahvo_irqs_lock, flags);
-
-+ dprintk("{IRQ %s} %d delivered\n", tahvo_irq_name(irq_id), (int)irq_id);
-+
- ret = copy_to_user(buf + i * sizeof(irq_id), &irq_id,
- sizeof(irq_id));
- if (ret)