X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Farm%2Fmach-omap%2Fbus.c;h=07da30d52b3a323b7bb99c244f0800dfa0d6aabb;hb=1be35e94e1da3669db492995cd2c8b1a37016b11;hp=24a57f2a8dd04ad093acf4a36837bdebca30cba2;hpb=a91482bdcc2e0f6035702e46f1b99043a0893346;p=linux-2.6.git diff --git a/arch/arm/mach-omap/bus.c b/arch/arm/mach-omap/bus.c index 24a57f2a8..07da30d52 100644 --- a/arch/arm/mach-omap/bus.c +++ b/arch/arm/mach-omap/bus.c @@ -81,6 +81,40 @@ static struct bus_type omap_bus_types[OMAP_NR_BUSES] = { }, }; +#ifdef CONFIG_ARCH_OMAP1510 +/* + * NOTE: This code _should_ go somewhere else. But let's wait for the + * dma-mapping code to settle down first. + */ + +/* + * Test for Local Bus device in order to do address translation between + * dma_handle and Local Bus address. + */ +inline int dmadev_uses_omap_lbus(struct device * dev) +{ + if (dev == NULL || !cpu_is_omap1510()) + return 0; + return dev->bus == &omap_bus_types[OMAP_BUS_LBUS] ? 1 : 0; +} + +/* + * Translate bus address to Local Bus address for dma-mapping + */ +inline int dmadev_to_lbus(dma_addr_t addr) +{ + return bus_to_lbus(addr); +} + +/* + * Translate Local Bus address to bus address for dma-mapping + */ +inline int lbus_to_dmadev(dma_addr_t addr) +{ + return lbus_to_bus(addr); +} +#endif + static int omap_bus_match(struct device *dev, struct device_driver *drv) { struct omap_dev *omapdev = OMAP_DEV(dev); @@ -244,3 +278,8 @@ EXPORT_SYMBOL(omap_driver_unregister); EXPORT_SYMBOL(omap_device_register); EXPORT_SYMBOL(omap_device_unregister); +#ifdef CONFIG_ARCH_OMAP1510 +EXPORT_SYMBOL(dmadev_uses_omap_lbus); +EXPORT_SYMBOL(dmadev_to_lbus); +EXPORT_SYMBOL(lbus_to_dmadev); +#endif