Thanks to Pavel's comments I digged into translation bits and found out the hackish way we currently use to handle 32-bit and 64-bit DMA. I've replaced out bit shifting hacks with just a one, documented in the comment. This workaround ideally should be just fixed, but I'm not going to blidly change the current behaviour of ssb_dma_translation without testing that with b43legacy and b44. As I don't have such a hardware, we will need to find some testers. In any case, the way we changed the code should be correct. When ssb function will be fixed, b43 will only require deletion of 2 code lines. I've tested this code for regressions on my following cards: 1) 14e4:432b (64-bit DMA) 2) 14e4:4315 (64-bit DMA) 3) 14e4:4312 (32-bit DMA) Transmission is still possible on all of them, no errors were noticed. Pavel: sorry for CC-ing you with my previous serie. Fortunately this lead to the much nicer solution, thanks for your help. I let myself yo CC you once more, as this patch serie tries to fix issues you pointed to me. Rafał Miłecki (3): b43: replace DMA translation workarounds with just a one, commented bcma: inform drivers about translation bits needed for the core b43: bcma: get DMA translation bits drivers/bcma/core.c | 16 ++++++++++++++++ drivers/net/wireless/b43/dma.c | 17 ++++++++++++++--- drivers/net/wireless/b43/dma.h | 4 ++++ include/linux/bcma/bcma.h | 5 +++++ 4 files changed, 39 insertions(+), 3 deletions(-) -- 1.7.3.4 -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html