On Tue, 2010-02-16 at 14:59 -0800, Luis R. Rodriguez wrote: > > Anyway, I'd rather see > > dma_sync_single_range_for_device() for ARM backported. > > Patches are welcomed for it indeed. Here's the patch. I'm not sure if include/net/compat-2.6.27.h or compat/compat-2.6.27.h is the real source file, as I was patching the downloaded tarball. The missing functions are only used by b44. The functions available in 2.6.26 don't have the offset argument, so I had to extend the range to start at zero. This could affect the b44 throughput, but I would not worry too much about it. The is another problem. For some reason, CONFIG_SSB_PCMCIAHOST is enabled in compat_autoconf.h, even though the target kernel lacks PCMCIA support. However, CONFIG_SSB_PCMCIAHOST is not set in the makefiles, so ssb.ko is compiled with CONFIG_SSB_PCMCIAHOST, but pcmcia.o is not linked into it, which leads to unresolved symbols. However, the build succeeds and there are no warnings about it. --- a/include/net/compat-2.6.27.h +++ b/include/net/compat-2.6.27.h @@ -185,4 +185,28 @@ #endif /* (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)) */ +#ifdef CONFIG_ARM + +/* + * The caller asks to handle a range between offset and offset + size, + * but we process a larger range from 0 to offset + size due to lack of + * offset support. + */ + +static inline void dma_sync_single_range_for_cpu(struct device *dev, + dma_addr_t handle, unsigned long offset, size_t size, + enum dma_data_direction dir) +{ + dma_sync_single_for_cpu(dev, handle, offset + size, dir); +} + +static inline void dma_sync_single_range_for_device(struct device *dev, + dma_addr_t handle, unsigned long offset, size_t size, + enum dma_data_direction dir) +{ + dma_sync_single_for_device(dev, handle, offset + size, dir); +} + +#endif /* arm */ + #endif /* LINUX_26_27_COMPAT_H */ -- Regards, Pavel Roskin -- 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