From: <pa...@pa...> - 2009-02-24 13:18:14
|
Hi, After upgrading OE rev 318 from 2.6.21 to 2.6.24 on a Verdex I got the infamous "No response from BT module". The problem is that the pxa serial driver fails to enable the BTUART clock, as seen here: | $ cat /dev/ttyS1 & # Keeps the BTUART open. | $ pxaregs CKEN_7 | CM BTUART clock enabled | CKEN_7 0x00500640 00000000 01010000 00000110 01000000 | CKEN_7 0 CM BTUART clock enabled # Should be 1 As a workaround, run "pxaregs CKEN_7 1" before starting hciattach. This is caused by a refactoring of clocking code in recent kernels (presumably in order to improve power management): linux-2.6.24/arch/arm/mach-pxa/pxa27x.c | static struct clk pxa27x_clks[] = { | [...] | INIT_CKEN("UARTCLK", FFUART, 14857000, 1, &pxa_device_ffuart.dev), | INIT_CKEN("UARTCLK", BTUART, 14857000, 1, &pxa_device_btuart.dev), | INIT_CKEN("UARTCLK", STUART, 14857000, 1, NULL), Note that UART clocks are distinguished only by their platform_device, except STUART which serves as a wildcard. Unfortunately the array is transformed into a reversed list, and as a result clk_get() always matches STUART first. Apparently this is/was a problem on PXA255 too: http://www.spinics.net/lists/arm-kernel/msg47446.html Things have changed again in the latest GIT kernel, so hopefully this is already fixed, but I anyone with the "No response from BT module" should remember to check CKEN_7. Pascal |