This adds AMBA and SA11xx support for dev->coherent_dma_mask.
dev->dev.release = amba_device_release;
dev->dev.bus = &amba_bustype;
+ dev->dev.dma_mask = &dev->dma_mask;
dev->res.name = dev->dev.bus_id;
+ if (!dev->dev.coherent_dma_mask && dev->dma_mask)
+ dev_warn(&dev->dev, "coherent dma mask is unset\n");
+
ret = request_resource(parent, &dev->res);
if (ret == 0) {
tmp = ioremap(dev->res.start, SZ_4K);
*/
if (sachip->dev->dma_mask)
*sachip->dev->dma_mask &= sa1111_dma_mask[drac >> 2];
+
+ sachip->dev->coherent_dma_mask &= sa1111_dma_mask[drac >> 2];
}
#endif
dev->dev.parent = sachip->dev;
dev->dev.bus = &sa1111_bus_type;
dev->dev.release = sa1111_dev_release;
+ dev->dev.coherent_dma_mask = sachip->dev->coherent_dma_mask;
dev->res.start = sachip->phys + info->offset;
dev->res.end = dev->res.start + 511;
dev->res.name = dev->dev.bus_id;
.id = 0,
.dev = {
.dma_mask = &sa1111_dmamask,
+ .coherent_dma_mask = 0xffffffff,
},
.num_resources = ARRAY_SIZE(sa1111_resources),
.resource = sa1111_resources,
.id = 0,
.dev = {
.dma_mask = &sa1111_dmamask;
+ .coherent_dma_mask = 0xffffffff,
},
.num_resources = ARRAY_SIZE(sa1111_resources),
.resource = sa1111_resources,
.id = 0,
.dev = {
.dma_mask = &sa11x0udc_dma_mask,
+ .coherent_dma_mask = 0xffffffff,
},
.num_resources = ARRAY_SIZE(sa11x0udc_resources),
.resource = sa11x0udc_resources,
.id = 0,
.dev = {
.dma_mask = &sa11x0mcp_dma_mask,
+ .coherent_dma_mask = 0xffffffff,
},
.num_resources = ARRAY_SIZE(sa11x0mcp_resources),
.resource = sa11x0mcp_resources,
.id = 0,
.dev = {
.dma_mask = &sa11x0ssp_dma_mask,
+ .coherent_dma_mask = 0xffffffff,
},
.num_resources = ARRAY_SIZE(sa11x0ssp_resources),
.resource = sa11x0ssp_resources,
static struct platform_device sa11x0fb_device = {
.name = "sa11x0-fb",
.id = 0,
+ .dev = {
+ .coherent_dma_mask = 0xffffffff,
+ },
.num_resources = ARRAY_SIZE(sa11x0fb_resources),
.resource = sa11x0fb_resources,
};
.id = 0,
.dev = {
.dma_mask = &sa1111_dmamask,
+ .coherent_dma_mask = 0xffffffff,
},
.num_resources = ARRAY_SIZE(sa1111_resources),
.resource = sa1111_resources,
.id = 0,
.dev = {
.dma_mask = &sa1111_dmamask,
+ .coherent_dma_mask = 0xffffffff,
},
.num_resources = ARRAY_SIZE(sa1111_resources),
.resource = sa1111_resources,
.id = 0,
.dev = {
.dma_mask = &sa1111_dmamask,
+ .coherent_dma_mask = 0xffffffff,
},
.num_resources = ARRAY_SIZE(sa1111_resources),
.resource = sa1111_resources,
.id = 0,
.dev = {
.dma_mask = &sa1111_dmamask,
+ .coherent_dma_mask = 0xffffffff,
},
.num_resources = ARRAY_SIZE(sa1111_resources),
.resource = sa1111_resources,
.id = 0,
.dev = {
.dma_mask = &sa1111_dmamask,
+ .coherent_dma_mask = 0xffffffff,
},
.num_resources = ARRAY_SIZE(sa1111_resources),
.resource = sa1111_resources,
.id = 0,
.dev = {
.dma_mask = &sa1111_dmamask,
+ .coherent_dma_mask = 0xffffffff,
},
.num_resources = ARRAY_SIZE(sa1111_resources),
.resource = sa1111_resources,
struct amba_device {
struct device dev;
struct resource res;
+ u64 dma_mask;
unsigned int periphid;
unsigned int irq[AMBA_NR_IRQS];
};