diff options
Diffstat (limited to 'packages/linux/linux-ezx-2.6.20.7/mux-ifdef-ezx-features.patch')
-rw-r--r-- | packages/linux/linux-ezx-2.6.20.7/mux-ifdef-ezx-features.patch | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/packages/linux/linux-ezx-2.6.20.7/mux-ifdef-ezx-features.patch b/packages/linux/linux-ezx-2.6.20.7/mux-ifdef-ezx-features.patch new file mode 100644 index 0000000000..f9ad633c76 --- /dev/null +++ b/packages/linux/linux-ezx-2.6.20.7/mux-ifdef-ezx-features.patch @@ -0,0 +1,85 @@ +diff -pruN linux-2.6.20.7/drivers/char/ts0710_mux_usb.c linux-2.6.20.7_x386/drivers/char/ts0710_mux_usb.c +--- linux-2.6.20.7/drivers/char/ts0710_mux_usb.c 2007-04-22 10:51:38.000000000 +0200 ++++ linux-2.6.20.7_x386/drivers/char/ts0710_mux_usb.c 2007-04-22 11:44:54.000000000 +0200 +@@ -35,10 +35,14 @@ + #include <linux/list.h> + #include <linux/errno.h> + #include <asm/uaccess.h> ++ ++#ifdef CONFIG_PXA_EZX + #include <asm/hardware.h> + #include <asm/arch/hardware.h> + #include <asm/arch-pxa/pxa-regs.h> + #include <asm/arch-pxa/ezx.h> ++#endif ++ + #include <linux/slab.h> + #include <linux/miscdevice.h> + #include <linux/init.h> +@@ -341,8 +345,10 @@ static void usb_ipc_write_bulk(struct ur + + static void wakeup_timeout(unsigned long data) + { ++#ifdef CONFIG_PXA_EZX + GPSR(GPIO_MCU_INT_SW) = GPIO_bit(GPIO_MCU_INT_SW); + bvd_dbg("wakup_timeout: send GPIO_MCU_INT_SW signal!"); ++#endif + } + + static void suspend_timeout(unsigned long data) +@@ -353,10 +359,12 @@ static void suspend_timeout(unsigned lon + bvd_dbg("suspend_timeout: add the suspend timer again"); + } else { + unlink_urbs(&bvd_ipc->readurb_mux); ++#ifdef CONFIG_PXA_EZX + UHCRHPS3 = 0x4; + mdelay(40); + bvd_dbg("suspend_timeout: send SUSPEND signal! UHCRHPS3=0x%x", + UHCRHPS3); ++#endif + } + } + +@@ -404,6 +412,7 @@ static void ipcusb_xmit_data(void) + bvd_ipc->writeurb_mux.transfer_buffer_length = buf_num; + bvd_dbg("ipcusb_xmit_data: copy data to write urb finished! "); + ++#ifdef CONFIG_PXA_EZX + if ((UHCRHPS3 & 0x4) == 0x4) { + static int ret; + int time = 0; +@@ -442,6 +451,7 @@ static void ipcusb_xmit_data(void) + "failed! status=%d\n", ret); + bvd_dbg("ipcusb_xmit_data: Send a IN token successfully!"); + } ++#endif + + sumbit_times++; + bvd_ipc->write_finished_flag = 0; +@@ -464,12 +474,16 @@ static void usbipc_bh_func(unsigned long + + static void usbipc_bh_bp_func(unsigned long param) + { ++#ifdef CONFIG_PXA_EZX + if ((UHCRHPS3 & 0x4) == 0x4) { + UHCRHPS3 = 0x8; ++#endif + mdelay(40); ++#ifdef CONFIG_PXA_EZX + bvd_dbg("ipcusb_softint_send_readurb: Send RESUME signal! " + "UHCRHPS3=0x%x", UHCRHPS3); + } ++#endif + if (bvd_ipc->ipc_flag == IPC_USB_PROBE_READY) { + //get_halted_bit(); + +@@ -734,7 +748,9 @@ static void usb_ipc_disconnect(struct us + printk("usb_ipc_disconnect. bvd_ipc_disconnect address: %p\n", bvd_ipc_disconnect); + + //FIXME: Memory leak? ++#ifdef CONFIG_PXA_EZX + if ((UHCRHPS3 & 0x4) == 0) ++#endif + // usb_unlink_urb(&bvd_ipc_disconnect->readurb_mux); + + //usb_unlink_urb(&bvd_ipc_disconnect->writeurb_mux); |