Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 450d87ea authored by Michael Ellerman's avatar Michael Ellerman Committed by Paul Mackerras
Browse files

[POWERPC] Add celleb_dma_dev_setup()



Celleb always uses dma_direct_ops, and sets dma_direct_offset, so it
too should set dma_data to dma_direct_offset.

Currently there's no pci_dma_dev_setup() routine for Celleb so add one.

Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
Acked-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent 110f95c9
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -72,6 +72,17 @@ static void __init celleb_init_direct_mapping(void)
	dma_direct_offset = dma_base;
}

static void celleb_dma_dev_setup(struct device *dev)
{
	dev->archdata.dma_ops = get_pci_dma_ops();
	dev->archdata.dma_data = (void *)dma_direct_offset;
}

static void celleb_pci_dma_dev_setup(struct pci_dev *pdev)
{
	celleb_dma_dev_setup(&pdev->dev);
}

static int celleb_of_bus_notify(struct notifier_block *nb,
				unsigned long action, void *data)
{
@@ -81,7 +92,7 @@ static int celleb_of_bus_notify(struct notifier_block *nb,
	if (action != BUS_NOTIFY_ADD_DEVICE)
		return 0;

	dev->archdata.dma_ops = get_pci_dma_ops();
	celleb_dma_dev_setup(dev);

	return 0;
}
@@ -94,6 +105,7 @@ static int __init celleb_init_iommu(void)
{
	celleb_init_direct_mapping();
	set_pci_dma_ops(&dma_direct_ops);
	ppc_md.pci_dma_dev_setup = celleb_pci_dma_dev_setup;
	bus_register_notifier(&of_platform_bus_type, &celleb_of_bus_notifier);

	return 0;