Hallo Christian,
On 12/01/14 17:11, Christian Menard wrote:
unfortunately I still have no possibility to get LOG output via serial, I only- can print the LOG to screen and I'm too lazy to type the full log ;).
I see — in this case you might want to try using the tcp_terminal in combination with terminal_log and route the LOG session of the wifi_drv accordingly. This atleast enables you to get the wifi_drv messages via TCP :-)
However, I did some investigation into the problem. The device is stopped because of this error:
dma_map_single: virtual address b008a78 not registered for DMA, called from:-
1070bfc
def_error: Error sending BT_CONFIG: enqueu_hcmd failed: -12
Where dma_map_single is called by enqueu_hcmd. So the problem is related to- DMA,
Yeah, the problem is related to how DMA memory is handled in Linux and with how we deal with it in dde_linux. Almost all memory allocations in the vanilla source, even the ones that are used later on for DMA, are done with GFP_KERNEL. In dde_linux we employ two memory pools. One for “normal” memory and one for memory which may be used for DMA. We introduced a flag (GFP_LX_DMA) to distinguish between the two. Unfortunatly, you have to patch the vanilla sources for this to work (you may take a look at the wifi_mem.patch). Since the wifi_drv was only tested on 6xxx cards only the dvm source is patched. To enable the 7260 card you would have to trace all memory allocations done by this part of the iwlwifi driver and change the flags on all allocations that might end up being used in an DMA transaction.
I am afraid that at the moment I do not have the time to look any further into this matter but maybe you get away by changing all allocations to use the DMA allocator for now.
Regards Josef