Index: linux-2.6.16.13-ezx3/drivers/misc/ezx/ssp_pcap_main.c =================================================================== --- linux-2.6.16.13-ezx3.orig/drivers/misc/ezx/ssp_pcap_main.c 2006-05-14 15:09:39.000000000 +0200 +++ linux-2.6.16.13-ezx3/drivers/misc/ezx/ssp_pcap_main.c 2006-05-14 15:30:30.000000000 +0200 @@ -1026,12 +1026,12 @@ pxa_gpio_mode(GPIO25_STXD_MD); pxa_gpio_mode(GPIO26_SRXD_MD); - SSCR1 = SSCR1_TxTresh(1) | SSCR1_RxTresh(1) | SSCR1_RIE; + SSCR1 = SSCR1_TxTresh(1) | SSCR1_RxTresh(1); SSCR0 = 0x00000000; SSCR0 = SSCR0_DataSize(16) | SSCR0_EDSS | SSCR0_SSE | SSCR0_SerClkDiv(1); init_waitqueue_head(&ssp_pcap_send_wait); - request_irq(IRQ_SSP,ssp_interrupt_routine,0,"SSP received the data irq ",NULL); + //request_irq(IRQ_SSP,ssp_interrupt_routine,0,"SSP received the data irq ",NULL); test_pcap_spi(); #else @@ -2212,7 +2212,9 @@ ssp_put_intoData(pcapTempValue); //SSITR_P1 = 0x40; //interruptible_sleep_on(&ssp_pcap_send_wait); - do {} while (int_executed == 0); + do { + ssp_interrupt_routine(0, NULL, NULL); + } while (int_executed == 0); int_executed = 0; /* here need to judge the wakeup reason and handle it */ #else @@ -2333,7 +2335,9 @@ //SSITR_P1 = 0x40; /* sleep with timeout */ //interruptible_sleep_on(&ssp_pcap_send_wait); - do {} while (int_executed == 0); + do { + ssp_interrupt_routine(0, NULL, NULL); + } while (int_executed == 0); int_executed = 0; /* here need to judge the wakeup reason and handle it */