@@ -155,6 +155,11 @@ bool platform_device_is_blacklisted(const struct dt_device_node *node)
return (dt_match_node(blacklist, node) != NULL);
}
+unsigned int arch_get_dma_bitsize(void)
+{
+ return ( platform && platform->dma_bitsize ) ? platform->dma_bitsize : 32;
+}
+
/*
* Local variables:
* mode: C
@@ -366,6 +366,8 @@ int arch_acquire_resource(struct domain *d, unsigned int type, unsigned int id,
return -EOPNOTSUPP;
}
+unsigned int arch_get_dma_bitsize(void);
+
#endif /* __ARCH_ARM_MM__ */
/*
* Local variables:
@@ -25,11 +25,6 @@ extern mfn_t first_valid_mfn;
#define node_start_pfn(nid) (mfn_x(first_valid_mfn))
#define __node_distance(a, b) (20)
-static inline unsigned int arch_get_dma_bitsize(void)
-{
- return 32;
-}
-
#endif /* __ARCH_ARM_NUMA_H */
/*
* Local variables:
@@ -38,6 +38,8 @@ struct platform_desc {
* List of devices which must not pass-through to a guest
*/
const struct dt_device_match *blacklist_dev;
+ /* Override the DMA width (32-bit by default). */
+ unsigned int dma_bitsize;
};
/*