aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMichal Simek <michal.simek@xilinx.com>2014-05-16 06:56:53 -0400
committerMichal Simek <michal.simek@xilinx.com>2014-06-04 00:59:55 -0400
commit3b3b6853bc9502282e7f53c117a18f20f0581fd9 (patch)
treedde2c9b49fdd4e28df0d99adc8d29711aa87d0d6 /arch
parenta44e437ac63184aaeb7cd8f76fb8907c75842f29 (diff)
microblaze: Return default dma operations
Return Microblaze default dma operations and remove bus notifier which setups the same dma operations by default when device is added to the system. Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/microblaze/include/asm/dma-mapping.h14
-rw-r--r--arch/microblaze/kernel/setup.c28
2 files changed, 3 insertions, 39 deletions
diff --git a/arch/microblaze/include/asm/dma-mapping.h b/arch/microblaze/include/asm/dma-mapping.h
index 46460f1c49c4..cf8056011a0a 100644
--- a/arch/microblaze/include/asm/dma-mapping.h
+++ b/arch/microblaze/include/asm/dma-mapping.h
@@ -43,8 +43,6 @@ static inline unsigned long device_to_mask(struct device *dev)
43 return 0xfffffffful; 43 return 0xfffffffful;
44} 44}
45 45
46extern struct dma_map_ops *dma_ops;
47
48/* 46/*
49 * Available generic sets of operations 47 * Available generic sets of operations
50 */ 48 */
@@ -52,15 +50,9 @@ extern struct dma_map_ops dma_direct_ops;
52 50
53static inline struct dma_map_ops *get_dma_ops(struct device *dev) 51static inline struct dma_map_ops *get_dma_ops(struct device *dev)
54{ 52{
55 /* We don't handle the NULL dev case for ISA for now. We could 53 if (dev && dev->archdata.dma_ops)
56 * do it via an out of line call but it is not needed for now. The 54 return dev->archdata.dma_ops;
57 * only ISA DMA device we support is the floppy and we have a hack 55 return &dma_direct_ops;
58 * in the floppy driver directly to get a device for us.
59 */
60 if (unlikely(!dev) || !dev->archdata.dma_ops)
61 return NULL;
62
63 return dev->archdata.dma_ops;
64} 56}
65 57
66static inline void set_dma_ops(struct device *dev, struct dma_map_ops *ops) 58static inline void set_dma_ops(struct device *dev, struct dma_map_ops *ops)
diff --git a/arch/microblaze/kernel/setup.c b/arch/microblaze/kernel/setup.c
index 67cc4b282cc1..ef011295777f 100644
--- a/arch/microblaze/kernel/setup.c
+++ b/arch/microblaze/kernel/setup.c
@@ -229,31 +229,3 @@ static int __init debugfs_tlb(void)
229device_initcall(debugfs_tlb); 229device_initcall(debugfs_tlb);
230# endif 230# endif
231#endif 231#endif
232
233static int dflt_bus_notify(struct notifier_block *nb,
234 unsigned long action, void *data)
235{
236 struct device *dev = data;
237
238 /* We are only intereted in device addition */
239 if (action != BUS_NOTIFY_ADD_DEVICE)
240 return 0;
241
242 set_dma_ops(dev, &dma_direct_ops);
243
244 return NOTIFY_DONE;
245}
246
247static struct notifier_block dflt_plat_bus_notifier = {
248 .notifier_call = dflt_bus_notify,
249 .priority = INT_MAX,
250};
251
252static int __init setup_bus_notifier(void)
253{
254 bus_register_notifier(&platform_bus_type, &dflt_plat_bus_notifier);
255
256 return 0;
257}
258
259arch_initcall(setup_bus_notifier);