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

Commit c99e76c5 authored by Andreas Herrmann's avatar Andreas Herrmann Committed by Greg Kroah-Hartman
Browse files

USB: host: Introduce flag to enable use of 64-bit dma_mask for ehci-platform



ehci-octeon driver used a 64-bit dma_mask. With removal of ehci-octeon
and usage of ehci-platform ehci dma_mask is now limited to 32 bits
(coerced in ehci_platform_probe).

Provide a flag in ehci platform data to allow use of 64 bits for
dma_mask.

Cc: David Daney <david.daney@cavium.com>
Cc: Alex Smith <alex.smith@imgtec.com>
Signed-off-by: default avatarAndreas Herrmann <andreas.herrmann@caviumnetworks.com>
Tested-by: default avatarAaro Koskinen <aaro.koskinen@iki.fi>
Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent a5790e9e
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -310,6 +310,7 @@ static struct usb_ehci_pdata octeon_ehci_pdata = {
#ifdef __BIG_ENDIAN
	.big_endian_mmio	= 1,
#endif
	.dma_mask_64	= 1,
	.power_on	= octeon_ehci_power_on,
	.power_off	= octeon_ehci_power_off,
};
@@ -331,8 +332,6 @@ static void __init octeon_ehci_hw_start(struct device *dev)
	octeon2_usb_clocks_stop();
}

static u64 octeon_ehci_dma_mask = DMA_BIT_MASK(64);

static int __init octeon_ehci_device_init(void)
{
	struct platform_device *pd;
@@ -347,7 +346,6 @@ static int __init octeon_ehci_device_init(void)
	if (!pd)
		return 0;

	pd->dev.dma_mask = &octeon_ehci_dma_mask;
	pd->dev.platform_data = &octeon_ehci_pdata;
	octeon_ehci_hw_start(&pd->dev);

+2 −1
Original line number Diff line number Diff line
@@ -155,7 +155,8 @@ static int ehci_platform_probe(struct platform_device *dev)
	if (!pdata)
		pdata = &ehci_platform_defaults;

	err = dma_coerce_mask_and_coherent(&dev->dev, DMA_BIT_MASK(32));
	err = dma_coerce_mask_and_coherent(&dev->dev,
		pdata->dma_mask_64 ? DMA_BIT_MASK(64) : DMA_BIT_MASK(32));
	if (err)
		return err;

+1 −0
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@ struct usb_ehci_pdata {
	unsigned	big_endian_mmio:1;
	unsigned	no_io_watchdog:1;
	unsigned	reset_on_resume:1;
	unsigned	dma_mask_64:1;

	/* Turn on all power and clocks */
	int (*power_on)(struct platform_device *pdev);