omap24xx: Workaround n810 FN key issue

SVN-Revision: 25212
owl
Michael Büsch 2011-01-28 17:31:34 +00:00
parent ab217388a9
commit fd0743debc
2 changed files with 110 additions and 134 deletions

View File

@ -11,8 +11,8 @@
Index: linux-2.6.37/arch/arm/mach-omap1/board-nokia770.c
===================================================================
--- linux-2.6.37.orig/arch/arm/mach-omap1/board-nokia770.c 2011-01-27 14:17:04.376000007 +0100
+++ linux-2.6.37/arch/arm/mach-omap1/board-nokia770.c 2011-01-27 14:17:29.131000007 +0100
--- linux-2.6.37.orig/arch/arm/mach-omap1/board-nokia770.c 2011-01-05 01:50:19.000000000 +0100
+++ linux-2.6.37/arch/arm/mach-omap1/board-nokia770.c 2011-01-28 18:09:59.378233620 +0100
@@ -36,6 +36,7 @@
#include <plat/lcd_mipid.h>
#include <plat/mmc.h>
@ -47,8 +47,8 @@ Index: linux-2.6.37/arch/arm/mach-omap1/board-nokia770.c
static void mipid_shutdown(struct mipid_platform_data *pdata)
Index: linux-2.6.37/arch/arm/mach-omap2/board-n8x0.c
===================================================================
--- linux-2.6.37.orig/arch/arm/mach-omap2/board-n8x0.c 2011-01-27 14:17:04.381000007 +0100
+++ linux-2.6.37/arch/arm/mach-omap2/board-n8x0.c 2011-01-27 14:17:29.132000007 +0100
--- linux-2.6.37.orig/arch/arm/mach-omap2/board-n8x0.c 2011-01-05 01:50:19.000000000 +0100
+++ linux-2.6.37/arch/arm/mach-omap2/board-n8x0.c 2011-01-28 18:13:25.864968462 +0100
@@ -18,9 +18,13 @@
#include <linux/io.h>
#include <linux/stddef.h>
@ -72,7 +72,7 @@ Index: linux-2.6.37/arch/arm/mach-omap2/board-n8x0.c
#include "mux.h"
@@ -40,109 +46,154 @@
@@ -40,109 +46,162 @@
static int slot2_cover_open;
static struct device *mmc_device;
@ -81,43 +81,14 @@ Index: linux-2.6.37/arch/arm/mach-omap2/board-n8x0.c
-#define TUSB6010_GPIO_INT 58
-#define TUSB6010_GPIO_ENABLE 0
-#define TUSB6010_DMACHAN 0x3f
-
-#if defined(CONFIG_USB_TUSB6010) || \
- defined(CONFIG_USB_TUSB6010_MODULE)
-/*
- * Enable or disable power to TUSB6010. When enabling, turn on 3.3 V and
- * 1.5 V voltage regulators of PM companion chip. Companion chip will then
- * provide then PGOOD signal to TUSB6010 which will release it from reset.
- */
-static int tusb_set_power(int state)
-{
- int i, retval = 0;
-
- if (state) {
- gpio_set_value(TUSB6010_GPIO_ENABLE, 1);
- msleep(1);
-
- /* Wait until TUSB6010 pulls INT pin down */
- i = 100;
- while (i && gpio_get_value(TUSB6010_GPIO_INT)) {
- msleep(1);
- i--;
- }
-
- if (!i) {
- printk(KERN_ERR "tusb: powerup failed\n");
- retval = -ENODEV;
- }
- } else {
- gpio_set_value(TUSB6010_GPIO_ENABLE, 0);
- msleep(10);
- }
-
- return retval;
+#define RX51_TSC2005_RESET_GPIO 94
+#define RX51_TSC2005_IRQ_GPIO 106
+#define OMAP_TAG_NOKIA_BT 0x4e01
+
+/* We map the FN key as LALT to workaround an X keycode problem.
+ * The XKB map needs to be adjusted to support this. */
+#define MAP_FN_AS_LEFTALT
+
+static s16 rx44_keymap[LM8323_KEYMAP_SIZE] = {
+ [0x01] = KEY_Q,
+ [0x02] = KEY_K,
@ -149,10 +120,24 @@ Index: linux-2.6.37/arch/arm/mach-omap2/board-n8x0.c
+ [0x22] = KEY_SEMICOLON,
+ [0x23] = KEY_MINUS,
+ [0x24] = KEY_EQUAL,
+#ifdef MAP_FN_AS_LEFTALT
+ [0x2b] = KEY_LEFTALT,
+#else
+ [0x2b] = KEY_FN,
+#endif
+ [0x2c] = KEY_M,
+ [0x2f] = KEY_F8,
+
-#if defined(CONFIG_USB_TUSB6010) || \
- defined(CONFIG_USB_TUSB6010_MODULE)
-/*
- * Enable or disable power to TUSB6010. When enabling, turn on 3.3 V and
- * 1.5 V voltage regulators of PM companion chip. Companion chip will then
- * provide then PGOOD signal to TUSB6010 which will release it from reset.
- */
-static int tusb_set_power(int state)
-{
- int i, retval = 0;
+ [0x31] = KEY_R,
+ [0x32] = KEY_RIGHTCTRL,
+ [0x34] = KEY_SPACE,
@ -217,16 +202,46 @@ Index: linux-2.6.37/arch/arm/mach-omap2/board-n8x0.c
+ n8x0_bt_device.dev.platform_data = (void *) bt_config;
+ if (platform_device_register(&n8x0_bt_device) < 0)
+ BUG();
}
+}
- if (state) {
- gpio_set_value(TUSB6010_GPIO_ENABLE, 1);
- msleep(1);
+static struct omap2_mcspi_device_config mipid_mcspi_config = {
+ .turbo_mode = 0,
+ .single_channel = 1,
+};
- /* Wait until TUSB6010 pulls INT pin down */
- i = 100;
- while (i && gpio_get_value(TUSB6010_GPIO_INT)) {
- msleep(1);
- i--;
- }
+static int slot1_cover_open;
+static int slot2_cover_open;
+static struct device *mmc_device;
- if (!i) {
- printk(KERN_ERR "tusb: powerup failed\n");
- retval = -ENODEV;
- }
- } else {
- gpio_set_value(TUSB6010_GPIO_ENABLE, 0);
- msleep(10);
- }
- return retval;
-}
-
-static struct musb_hdrc_config musb_config = {
- .multipoint = 1,
- .dyn_fifo = 1,
- .num_eps = 16,
- .ram_bits = 12,
+static struct omap2_mcspi_device_config mipid_mcspi_config = {
+static struct omap2_mcspi_device_config p54spi_mcspi_config = {
+ .turbo_mode = 0,
+ .single_channel = 1,
+ .single_channel = 1,
};
-static struct musb_hdrc_platform_data tusb_data = {
@ -236,15 +251,20 @@ Index: linux-2.6.37/arch/arm/mach-omap2/board-n8x0.c
- .mode = MUSB_PERIPHERAL,
-#else /* defined(CONFIG_USB_MUSB_HOST) */
- .mode = MUSB_HOST,
-#endif
+#ifdef CONFIG_MACH_NOKIA_N8X0_LCD
+extern struct mipid_platform_data n8x0_mipid_platform_data;
#endif
- .set_power = tusb_set_power,
- .min_power = 25, /* x2 = 50 mA drawn from VBUS as peripheral */
- .power = 100, /* Max 100 mA VBUS for host mode */
- .config = &musb_config,
-};
-
-static void __init n8x0_usb_init(void)
-{
+#ifdef CONFIG_TOUCHSCREEN_TSC2005
+static struct tsc2005_platform_data tsc2005_config;
+static void rx51_tsc2005_set_reset(bool enable)
{
- int ret = 0;
- static char announce[] __initdata = KERN_INFO "TUSB 6010\n";
-
@ -258,42 +278,28 @@ Index: linux-2.6.37/arch/arm/mach-omap2/board-n8x0.c
- gpio_direction_output(TUSB6010_GPIO_ENABLE, 0);
-
- tusb_set_power(0);
+static int slot1_cover_open;
+static int slot2_cover_open;
+static struct device *mmc_device;
-
- ret = tusb6010_setup_interface(&tusb_data, TUSB6010_REFCLK_19, 2,
- TUSB6010_ASYNC_CS, TUSB6010_SYNC_CS,
- TUSB6010_GPIO_INT, TUSB6010_DMACHAN);
- if (ret != 0)
- goto err;
-
- printk(announce);
+static struct omap2_mcspi_device_config p54spi_mcspi_config = {
+ .turbo_mode = 0,
+ .single_channel = 1,
+};
-
- return;
+#ifdef CONFIG_MACH_NOKIA_N8X0_LCD
+extern struct mipid_platform_data n8x0_mipid_platform_data;
+#endif
-
-err:
- gpio_free(TUSB6010_GPIO_ENABLE);
+#ifdef CONFIG_TOUCHSCREEN_TSC2005
+static struct tsc2005_platform_data tsc2005_config;
+static void rx51_tsc2005_set_reset(bool enable)
+{
+ gpio_set_value(RX51_TSC2005_RESET_GPIO, enable);
}
-#else
-
-static void __init n8x0_usb_init(void) {}
-
-#endif /*CONFIG_USB_TUSB6010 */
-
-
-static struct omap2_mcspi_device_config p54spi_mcspi_config = {
+static struct omap2_mcspi_device_config tsc2005_mcspi_config = {
.turbo_mode = 0,
@ -315,7 +321,7 @@ Index: linux-2.6.37/arch/arm/mach-omap2/board-n8x0.c
{
.modalias = "p54spi",
.bus_num = 2,
@@ -150,8 +201,60 @@
@@ -150,8 +209,60 @@
.max_speed_hz = 48000000,
.controller_data = &p54spi_mcspi_config,
},
@ -376,7 +382,7 @@ Index: linux-2.6.37/arch/arm/mach-omap2/board-n8x0.c
#if defined(CONFIG_MTD_ONENAND_OMAP2) || \
defined(CONFIG_MTD_ONENAND_OMAP2_MODULE)
@@ -184,6 +287,20 @@
@@ -184,6 +295,20 @@
},
};
@ -397,7 +403,7 @@ Index: linux-2.6.37/arch/arm/mach-omap2/board-n8x0.c
static struct omap_onenand_platform_data board_onenand_data = {
.cs = 0,
.gpio_irq = 26,
@@ -626,6 +743,11 @@
@@ -626,6 +751,11 @@
static struct i2c_board_info n810_i2c_board_info_2[] __initdata = {
{
@ -409,7 +415,7 @@ Index: linux-2.6.37/arch/arm/mach-omap2/board-n8x0.c
I2C_BOARD_INFO("tlv320aic3x", 0x18),
.platform_data = &n810_aic33_data,
},
@@ -657,10 +779,62 @@
@@ -657,10 +787,62 @@
#define board_mux NULL
#endif
@ -472,7 +478,7 @@ Index: linux-2.6.37/arch/arm/mach-omap2/board-n8x0.c
spi_register_board_info(n800_spi_board_info,
ARRAY_SIZE(n800_spi_board_info));
omap_register_i2c_bus(1, 400, n8x0_i2c_board_info_1,
@@ -671,6 +845,10 @@
@@ -671,6 +853,10 @@
ARRAY_SIZE(n810_i2c_board_info_2));
omap_serial_init();
@ -486,7 +492,7 @@ Index: linux-2.6.37/arch/arm/mach-omap2/board-n8x0.c
Index: linux-2.6.37/arch/arm/mach-omap2/board-n8x0-lcd.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6.37/arch/arm/mach-omap2/board-n8x0-lcd.c 2011-01-27 14:17:29.132000007 +0100
+++ linux-2.6.37/arch/arm/mach-omap2/board-n8x0-lcd.c 2011-01-28 18:10:37.941647955 +0100
@@ -0,0 +1,127 @@
+/*
+ * linux/arch/arm/mach-omap2/board-n8x0.c
@ -618,7 +624,7 @@ Index: linux-2.6.37/arch/arm/mach-omap2/board-n8x0-lcd.c
Index: linux-2.6.37/arch/arm/mach-omap2/board-n8x0-usb.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6.37/arch/arm/mach-omap2/board-n8x0-usb.c 2011-01-27 14:17:29.132000007 +0100
+++ linux-2.6.37/arch/arm/mach-omap2/board-n8x0-usb.c 2011-01-28 18:09:59.378233620 +0100
@@ -0,0 +1,175 @@
+/*
+ * linux/arch/arm/mach-omap2/board-n8x0-usb.c
@ -797,8 +803,8 @@ Index: linux-2.6.37/arch/arm/mach-omap2/board-n8x0-usb.c
+}
Index: linux-2.6.37/arch/arm/mach-omap2/control.c
===================================================================
--- linux-2.6.37.orig/arch/arm/mach-omap2/control.c 2011-01-27 14:17:04.403000007 +0100
+++ linux-2.6.37/arch/arm/mach-omap2/control.c 2011-01-27 14:17:29.132000007 +0100
--- linux-2.6.37.orig/arch/arm/mach-omap2/control.c 2011-01-05 01:50:19.000000000 +0100
+++ linux-2.6.37/arch/arm/mach-omap2/control.c 2011-01-28 18:09:59.378233620 +0100
@@ -172,6 +172,7 @@
return __raw_readw(OMAP_CTRL_REGADDR(offset));
}
@ -817,8 +823,8 @@ Index: linux-2.6.37/arch/arm/mach-omap2/control.c
__raw_writel(val, OMAP_CTRL_REGADDR(offset));
Index: linux-2.6.37/arch/arm/mach-omap2/Kconfig
===================================================================
--- linux-2.6.37.orig/arch/arm/mach-omap2/Kconfig 2011-01-27 14:17:04.391000007 +0100
+++ linux-2.6.37/arch/arm/mach-omap2/Kconfig 2011-01-27 14:17:29.132000007 +0100
--- linux-2.6.37.orig/arch/arm/mach-omap2/Kconfig 2011-01-05 01:50:19.000000000 +0100
+++ linux-2.6.37/arch/arm/mach-omap2/Kconfig 2011-01-28 18:09:59.378233620 +0100
@@ -210,6 +210,16 @@
select MACH_NOKIA_N810
select MACH_NOKIA_N810_WIMAX
@ -838,8 +844,8 @@ Index: linux-2.6.37/arch/arm/mach-omap2/Kconfig
depends on ARCH_OMAP3
Index: linux-2.6.37/arch/arm/mach-omap2/Makefile
===================================================================
--- linux-2.6.37.orig/arch/arm/mach-omap2/Makefile 2011-01-27 14:17:04.386000007 +0100
+++ linux-2.6.37/arch/arm/mach-omap2/Makefile 2011-01-27 14:17:29.132000007 +0100
--- linux-2.6.37.orig/arch/arm/mach-omap2/Makefile 2011-01-05 01:50:19.000000000 +0100
+++ linux-2.6.37/arch/arm/mach-omap2/Makefile 2011-01-28 18:09:59.378233620 +0100
@@ -139,6 +139,8 @@
hsmmc.o \
board-flash.o
@ -849,33 +855,3 @@ Index: linux-2.6.37/arch/arm/mach-omap2/Makefile
obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51.o \
board-rx51-sdram.o \
board-rx51-peripherals.o \
Index: linux-2.6.37/arch/arm/mach-omap2/serial.c
===================================================================
--- linux-2.6.37.orig/arch/arm/mach-omap2/serial.c 2011-01-27 14:17:04.398000007 +0100
+++ linux-2.6.37/arch/arm/mach-omap2/serial.c 2011-01-27 14:17:29.132000007 +0100
@@ -546,14 +546,17 @@
uart->padconf = 0;
}
+#if 1
uart->irqflags |= IRQF_SHARED;
ret = request_threaded_irq(uart->irq, NULL, omap_uart_interrupt,
IRQF_SHARED, "serial idle", (void *)uart);
WARN_ON(ret);
+#endif
}
void omap_uart_enable_irqs(int enable)
{
+#if 1
int ret;
struct omap_uart_state *uart;
@@ -570,6 +573,7 @@
free_irq(uart->irq, (void *)uart);
}
}
+#endif
}
static ssize_t sleep_timeout_show(struct device *dev,

View File

@ -10,10 +10,10 @@
drivers/cbus/tahvo.h | 6
9 files changed, 548 insertions(+), 3 deletions(-)
Index: linux-2.6.37-rc1/drivers/cbus/Kconfig
Index: linux-2.6.37/drivers/cbus/Kconfig
===================================================================
--- linux-2.6.37-rc1.orig/drivers/cbus/Kconfig 2010-11-06 17:28:21.821000000 +0100
+++ linux-2.6.37-rc1/drivers/cbus/Kconfig 2010-11-06 17:28:21.872000001 +0100
--- linux-2.6.37.orig/drivers/cbus/Kconfig 2011-01-28 18:14:27.901372343 +0100
+++ linux-2.6.37/drivers/cbus/Kconfig 2011-01-28 18:14:27.952363634 +0100
@@ -94,4 +94,16 @@
to Retu/Vilma. Detection state and events are exposed through
sysfs.
@ -31,10 +31,10 @@ Index: linux-2.6.37-rc1/drivers/cbus/Kconfig
+ If unsure, say N.
+
endmenu
Index: linux-2.6.37-rc1/drivers/cbus/Makefile
Index: linux-2.6.37/drivers/cbus/Makefile
===================================================================
--- linux-2.6.37-rc1.orig/drivers/cbus/Makefile 2010-11-06 17:28:21.812000054 +0100
+++ linux-2.6.37-rc1/drivers/cbus/Makefile 2010-11-06 17:28:21.872000001 +0100
--- linux-2.6.37.orig/drivers/cbus/Makefile 2011-01-28 18:14:27.891374053 +0100
+++ linux-2.6.37/drivers/cbus/Makefile 2011-01-28 18:14:27.952363634 +0100
@@ -12,3 +12,6 @@
obj-$(CONFIG_CBUS_TAHVO_USER) += tahvo-user.o
obj-$(CONFIG_CBUS_RETU_USER) += retu-user.o
@ -42,10 +42,10 @@ Index: linux-2.6.37-rc1/drivers/cbus/Makefile
+n810bm-y += n810bm_main.o
+n810bm-y += lipocharge.o
+obj-$(CONFIG_N810BM) += n810bm.o
Index: linux-2.6.37-rc1/drivers/cbus/n810bm_main.c
Index: linux-2.6.37/drivers/cbus/n810bm_main.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6.37-rc1/drivers/cbus/n810bm_main.c 2010-11-06 17:28:21.872000001 +0100
+++ linux-2.6.37/drivers/cbus/n810bm_main.c 2011-01-28 18:14:27.952363634 +0100
@@ -0,0 +1,397 @@
+/*
+ * Nokia n810 battery management
@ -444,10 +444,10 @@ Index: linux-2.6.37-rc1/drivers/cbus/n810bm_main.c
+MODULE_DESCRIPTION("Nokia n810 battery management");
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Michael Buesch");
Index: linux-2.6.37-rc1/drivers/cbus/retu.c
Index: linux-2.6.37/drivers/cbus/retu.c
===================================================================
--- linux-2.6.37-rc1.orig/drivers/cbus/retu.c 2010-11-06 17:28:21.812000054 +0100
+++ linux-2.6.37-rc1/drivers/cbus/retu.c 2010-11-06 17:28:21.872000001 +0100
--- linux-2.6.37.orig/drivers/cbus/retu.c 2011-01-28 18:14:27.892373882 +0100
+++ linux-2.6.37/drivers/cbus/retu.c 2011-01-28 18:14:27.952363634 +0100
@@ -85,10 +85,10 @@
*
* This function writes a value to the specified register
@ -461,10 +461,10 @@ Index: linux-2.6.37-rc1/drivers/cbus/retu.c
}
void retu_set_clear_reg_bits(int reg, u16 set, u16 clear)
Index: linux-2.6.37-rc1/drivers/cbus/retu.h
Index: linux-2.6.37/drivers/cbus/retu.h
===================================================================
--- linux-2.6.37-rc1.orig/drivers/cbus/retu.h 2010-11-06 17:28:21.812000054 +0100
+++ linux-2.6.37-rc1/drivers/cbus/retu.h 2010-11-06 17:28:21.872000001 +0100
--- linux-2.6.37.orig/drivers/cbus/retu.h 2011-01-28 18:14:27.892373882 +0100
+++ linux-2.6.37/drivers/cbus/retu.h 2011-01-28 18:14:27.953363463 +0100
@@ -39,6 +39,7 @@
#define RETU_REG_CC2 0x0e /* Common control register 2 */
#define RETU_REG_CTRL_CLR 0x0f /* Regulator clear register */
@ -482,11 +482,11 @@ Index: linux-2.6.37-rc1/drivers/cbus/retu.h
void retu_set_clear_reg_bits(int reg, u16 set, u16 clear);
int retu_read_adc(int channel);
int retu_request_irq(int id, void *irq_handler, unsigned long arg, char *name);
Index: linux-2.6.37-rc1/arch/arm/mach-omap2/board-n8x0.c
Index: linux-2.6.37/arch/arm/mach-omap2/board-n8x0.c
===================================================================
--- linux-2.6.37-rc1.orig/arch/arm/mach-omap2/board-n8x0.c 2010-11-06 17:28:21.796000362 +0100
+++ linux-2.6.37-rc1/arch/arm/mach-omap2/board-n8x0.c 2010-11-06 17:28:21.873000001 +0100
@@ -899,6 +899,17 @@
--- linux-2.6.37.orig/arch/arm/mach-omap2/board-n8x0.c 2011-01-28 18:14:27.876376613 +0100
+++ linux-2.6.37/arch/arm/mach-omap2/board-n8x0.c 2011-01-28 18:14:27.953363463 +0100
@@ -907,6 +907,17 @@
ARRAY_SIZE(n8x0_gpio_switches));
}
@ -504,7 +504,7 @@ Index: linux-2.6.37-rc1/arch/arm/mach-omap2/board-n8x0.c
static void __init n8x0_init_machine(void)
{
omap2420_mux_init(board_mux, OMAP_PACKAGE_ZAC);
@@ -925,6 +936,8 @@
@@ -933,6 +944,8 @@
n8x0_onenand_init();
n8x0_mmc_init();
n8x0_usb_init();
@ -513,10 +513,10 @@ Index: linux-2.6.37-rc1/arch/arm/mach-omap2/board-n8x0.c
}
MACHINE_START(NOKIA_N800, "Nokia N800")
Index: linux-2.6.37-rc1/drivers/cbus/lipocharge.c
Index: linux-2.6.37/drivers/cbus/lipocharge.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6.37-rc1/drivers/cbus/lipocharge.c 2010-11-06 17:28:21.873000001 +0100
+++ linux-2.6.37/drivers/cbus/lipocharge.c 2011-01-28 18:14:27.953363463 +0100
@@ -0,0 +1,63 @@
+/*
+ * Generic LIPO battery charger
@ -581,10 +581,10 @@ Index: linux-2.6.37-rc1/drivers/cbus/lipocharge.c
+ del_timer_sync(&c->timer);
+ //TODO
+}
Index: linux-2.6.37-rc1/drivers/cbus/lipocharge.h
Index: linux-2.6.37/drivers/cbus/lipocharge.h
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6.37-rc1/drivers/cbus/lipocharge.h 2010-11-06 17:28:21.873000001 +0100
+++ linux-2.6.37/drivers/cbus/lipocharge.h 2011-01-28 18:14:27.953363463 +0100
@@ -0,0 +1,50 @@
+#ifndef LIPOCHARGE_H_
+#define LIPOCHARGE_H_
@ -636,10 +636,10 @@ Index: linux-2.6.37-rc1/drivers/cbus/lipocharge.h
+void lipocharge_stop(struct lipocharge *c);
+
+#endif /* LIPOCHARGE_H_ */
Index: linux-2.6.37-rc1/drivers/cbus/tahvo.h
Index: linux-2.6.37/drivers/cbus/tahvo.h
===================================================================
--- linux-2.6.37-rc1.orig/drivers/cbus/tahvo.h 2010-11-06 17:28:21.813000041 +0100
+++ linux-2.6.37-rc1/drivers/cbus/tahvo.h 2010-11-06 17:28:21.873000001 +0100
--- linux-2.6.37.orig/drivers/cbus/tahvo.h 2011-01-28 18:14:27.893373711 +0100
+++ linux-2.6.37/drivers/cbus/tahvo.h 2011-01-28 18:14:27.953363463 +0100
@@ -30,8 +30,14 @@
#define TAHVO_REG_IDR 0x01 /* Interrupt ID */
#define TAHVO_REG_IDSR 0x02 /* Interrupt status */