DMA-API: usb: use dma_set_coherent_mask()
The correct way for a driver to specify the coherent DMA mask is not to directly access the field in the struct device, but to use dma_set_coherent_mask(). Only arch and bus code should access this member directly. Convert all direct write accesses to using the correct API. Acked-by: Felipe Balbi <balbi@ti.com> Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
		
					parent
					
						
							
								93b11b2584
							
						
					
				
			
			
				commit
				
					
						22d9d8e831
					
				
			
		
					 19 changed files with 64 additions and 38 deletions
				
			
		|  | @ -123,8 +123,9 @@ static int ci_hdrc_imx_probe(struct platform_device *pdev) | |||
| 
 | ||||
| 	if (!pdev->dev.dma_mask) | ||||
| 		pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask; | ||||
| 	if (!pdev->dev.coherent_dma_mask) | ||||
| 		pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); | ||||
| 	ret = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); | ||||
| 	if (ret) | ||||
| 		goto err_clk; | ||||
| 
 | ||||
| 	if (data->usbmisc_data) { | ||||
| 		ret = imx_usbmisc_init(data->usbmisc_data); | ||||
|  |  | |||
|  | @ -121,8 +121,9 @@ static int dwc3_exynos_probe(struct platform_device *pdev) | |||
| 	 */ | ||||
| 	if (!dev->dma_mask) | ||||
| 		dev->dma_mask = &dev->coherent_dma_mask; | ||||
| 	if (!dev->coherent_dma_mask) | ||||
| 		dev->coherent_dma_mask = DMA_BIT_MASK(32); | ||||
| 	ret = dma_set_coherent_mask(dev, DMA_BIT_MASK(32)); | ||||
| 	if (ret) | ||||
| 		goto err1; | ||||
| 
 | ||||
| 	platform_set_drvdata(pdev, exynos); | ||||
| 
 | ||||
|  |  | |||
|  | @ -3078,7 +3078,9 @@ static int __init lpc32xx_udc_probe(struct platform_device *pdev) | |||
| 		 udc->isp1301_i2c_client->addr); | ||||
| 
 | ||||
| 	pdev->dev.dma_mask = &lpc32xx_usbd_dmamask; | ||||
| 	pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); | ||||
| 	retval = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); | ||||
| 	if (retval) | ||||
| 		goto resource_fail; | ||||
| 
 | ||||
| 	udc->board = &lpc32xx_usbddata; | ||||
| 
 | ||||
|  |  | |||
|  | @ -92,8 +92,9 @@ static int ehci_atmel_drv_probe(struct platform_device *pdev) | |||
| 	 */ | ||||
| 	if (!pdev->dev.dma_mask) | ||||
| 		pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask; | ||||
| 	if (!pdev->dev.coherent_dma_mask) | ||||
| 		pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); | ||||
| 	retval = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); | ||||
| 	if (retval) | ||||
| 		goto fail_create_hcd; | ||||
| 
 | ||||
| 	hcd = usb_create_hcd(driver, &pdev->dev, dev_name(&pdev->dev)); | ||||
| 	if (!hcd) { | ||||
|  |  | |||
|  | @ -116,8 +116,10 @@ static int ehci_octeon_drv_probe(struct platform_device *pdev) | |||
| 	 * We can DMA from anywhere. But the descriptors must be in | ||||
| 	 * the lower 4GB. | ||||
| 	 */ | ||||
| 	pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); | ||||
| 	pdev->dev.dma_mask = &ehci_octeon_dma_mask; | ||||
| 	ret = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); | ||||
| 	if (ret) | ||||
| 		return ret; | ||||
| 
 | ||||
| 	hcd = usb_create_hcd(&ehci_octeon_hc_driver, &pdev->dev, "octeon"); | ||||
| 	if (!hcd) | ||||
|  |  | |||
|  | @ -104,7 +104,7 @@ static int ehci_hcd_omap_probe(struct platform_device *pdev) | |||
| 	struct resource	*res; | ||||
| 	struct usb_hcd	*hcd; | ||||
| 	void __iomem *regs; | ||||
| 	int ret = -ENODEV; | ||||
| 	int ret; | ||||
| 	int irq; | ||||
| 	int i; | ||||
| 	struct omap_hcd	*omap; | ||||
|  | @ -146,9 +146,11 @@ static int ehci_hcd_omap_probe(struct platform_device *pdev) | |||
| 	 */ | ||||
| 	if (!dev->dma_mask) | ||||
| 		dev->dma_mask = &dev->coherent_dma_mask; | ||||
| 	if (!dev->coherent_dma_mask) | ||||
| 		dev->coherent_dma_mask = DMA_BIT_MASK(32); | ||||
| 	ret = dma_set_coherent_mask(dev, DMA_BIT_MASK(32)); | ||||
| 	if (ret) | ||||
| 		return ret; | ||||
| 
 | ||||
| 	ret = -ENODEV; | ||||
| 	hcd = usb_create_hcd(&ehci_omap_hc_driver, dev, | ||||
| 			dev_name(dev)); | ||||
| 	if (!hcd) { | ||||
|  |  | |||
|  | @ -182,8 +182,9 @@ static int ehci_orion_drv_probe(struct platform_device *pdev) | |||
| 	 */ | ||||
| 	if (!pdev->dev.dma_mask) | ||||
| 		pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask; | ||||
| 	if (!pdev->dev.coherent_dma_mask) | ||||
| 		pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); | ||||
| 	err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); | ||||
| 	if (err) | ||||
| 		goto err1; | ||||
| 
 | ||||
| 	if (!request_mem_region(res->start, resource_size(res), | ||||
| 				ehci_orion_hc_driver.description)) { | ||||
|  |  | |||
|  | @ -78,7 +78,7 @@ static int ehci_platform_probe(struct platform_device *dev) | |||
| 	struct resource *res_mem; | ||||
| 	struct usb_ehci_pdata *pdata; | ||||
| 	int irq; | ||||
| 	int err = -ENOMEM; | ||||
| 	int err; | ||||
| 
 | ||||
| 	if (usb_disabled()) | ||||
| 		return -ENODEV; | ||||
|  | @ -91,8 +91,9 @@ static int ehci_platform_probe(struct platform_device *dev) | |||
| 		dev->dev.platform_data = &ehci_platform_defaults; | ||||
| 	if (!dev->dev.dma_mask) | ||||
| 		dev->dev.dma_mask = &dev->dev.coherent_dma_mask; | ||||
| 	if (!dev->dev.coherent_dma_mask) | ||||
| 		dev->dev.coherent_dma_mask = DMA_BIT_MASK(32); | ||||
| 	err = dma_set_coherent_mask(&dev->dev, DMA_BIT_MASK(32)); | ||||
| 	if (err) | ||||
| 		return err; | ||||
| 
 | ||||
| 	pdata = dev_get_platdata(&dev->dev); | ||||
| 
 | ||||
|  |  | |||
|  | @ -91,8 +91,9 @@ static int s5p_ehci_probe(struct platform_device *pdev) | |||
| 	 */ | ||||
| 	if (!pdev->dev.dma_mask) | ||||
| 		pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask; | ||||
| 	if (!pdev->dev.coherent_dma_mask) | ||||
| 		pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); | ||||
| 	err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); | ||||
| 	if (err) | ||||
| 		return err; | ||||
| 
 | ||||
| 	s5p_setup_vbus_gpio(pdev); | ||||
| 
 | ||||
|  |  | |||
|  | @ -83,8 +83,9 @@ static int spear_ehci_hcd_drv_probe(struct platform_device *pdev) | |||
| 	 */ | ||||
| 	if (!pdev->dev.dma_mask) | ||||
| 		pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask; | ||||
| 	if (!pdev->dev.coherent_dma_mask) | ||||
| 		pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); | ||||
| 	retval = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); | ||||
| 	if (retval) | ||||
| 		goto fail; | ||||
| 
 | ||||
| 	usbh_clk = devm_clk_get(&pdev->dev, NULL); | ||||
| 	if (IS_ERR(usbh_clk)) { | ||||
|  |  | |||
|  | @ -364,8 +364,9 @@ static int tegra_ehci_probe(struct platform_device *pdev) | |||
| 	 */ | ||||
| 	if (!pdev->dev.dma_mask) | ||||
| 		pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask; | ||||
| 	if (!pdev->dev.coherent_dma_mask) | ||||
| 		pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); | ||||
| 	err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); | ||||
| 	if (err) | ||||
| 		return err; | ||||
| 
 | ||||
| 	hcd = usb_create_hcd(&tegra_ehci_hc_driver, &pdev->dev, | ||||
| 					dev_name(&pdev->dev)); | ||||
|  |  | |||
|  | @ -524,7 +524,7 @@ MODULE_DEVICE_TABLE(of, at91_ohci_dt_ids); | |||
| static int ohci_at91_of_init(struct platform_device *pdev) | ||||
| { | ||||
| 	struct device_node *np = pdev->dev.of_node; | ||||
| 	int i, gpio; | ||||
| 	int i, gpio, ret; | ||||
| 	enum of_gpio_flags flags; | ||||
| 	struct at91_usbh_data	*pdata; | ||||
| 	u32 ports; | ||||
|  | @ -538,8 +538,9 @@ static int ohci_at91_of_init(struct platform_device *pdev) | |||
| 	 */ | ||||
| 	if (!pdev->dev.dma_mask) | ||||
| 		pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask; | ||||
| 	if (!pdev->dev.coherent_dma_mask) | ||||
| 		pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); | ||||
| 	ret = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); | ||||
| 	if (ret) | ||||
| 		return ret; | ||||
| 
 | ||||
| 	pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL); | ||||
| 	if (!pdata) | ||||
|  |  | |||
|  | @ -116,8 +116,9 @@ static int exynos_ohci_probe(struct platform_device *pdev) | |||
| 	 */ | ||||
| 	if (!pdev->dev.dma_mask) | ||||
| 		pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask; | ||||
| 	if (!pdev->dev.coherent_dma_mask) | ||||
| 		pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); | ||||
| 	err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); | ||||
| 	if (err) | ||||
| 		return err; | ||||
| 
 | ||||
| 	exynos_ohci = devm_kzalloc(&pdev->dev, sizeof(struct exynos_ohci_hcd), | ||||
| 					GFP_KERNEL); | ||||
|  |  | |||
|  | @ -226,8 +226,10 @@ static int usb_hcd_nxp_probe(struct platform_device *pdev) | |||
| 		return -EPROBE_DEFER; | ||||
| 	} | ||||
| 
 | ||||
| 	pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); | ||||
| 	pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask; | ||||
| 	ret = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); | ||||
| 	if (ret) | ||||
| 		goto fail_disable; | ||||
| 
 | ||||
| 	dev_dbg(&pdev->dev, "%s: " DRIVER_DESC " (nxp)\n", hcd_name); | ||||
| 	if (usb_disabled()) { | ||||
|  |  | |||
|  | @ -127,8 +127,10 @@ static int ohci_octeon_drv_probe(struct platform_device *pdev) | |||
| 	} | ||||
| 
 | ||||
| 	/* Ohci is a 32-bit device. */ | ||||
| 	pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); | ||||
| 	pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask; | ||||
| 	ret = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); | ||||
| 	if (ret) | ||||
| 		return ret; | ||||
| 
 | ||||
| 	hcd = usb_create_hcd(&ohci_octeon_hc_driver, &pdev->dev, "octeon"); | ||||
| 	if (!hcd) | ||||
|  |  | |||
|  | @ -132,7 +132,7 @@ static int ohci_hcd_omap3_probe(struct platform_device *pdev) | |||
| 	struct usb_hcd		*hcd = NULL; | ||||
| 	void __iomem		*regs = NULL; | ||||
| 	struct resource		*res; | ||||
| 	int			ret = -ENODEV; | ||||
| 	int			ret; | ||||
| 	int			irq; | ||||
| 
 | ||||
| 	if (usb_disabled()) | ||||
|  | @ -168,9 +168,11 @@ static int ohci_hcd_omap3_probe(struct platform_device *pdev) | |||
| 	 */ | ||||
| 	if (!dev->dma_mask) | ||||
| 		dev->dma_mask = &dev->coherent_dma_mask; | ||||
| 	if (!dev->coherent_dma_mask) | ||||
| 		dev->coherent_dma_mask = DMA_BIT_MASK(32); | ||||
| 	ret = dma_set_coherent_mask(dev, DMA_BIT_MASK(32)); | ||||
| 	if (ret) | ||||
| 		goto err_io; | ||||
| 
 | ||||
| 	ret = -ENODEV; | ||||
| 	hcd = usb_create_hcd(&ohci_omap3_hc_driver, dev, | ||||
| 			dev_name(dev)); | ||||
| 	if (!hcd) { | ||||
|  |  | |||
|  | @ -287,6 +287,7 @@ static int ohci_pxa_of_init(struct platform_device *pdev) | |||
| 	struct device_node *np = pdev->dev.of_node; | ||||
| 	struct pxaohci_platform_data *pdata; | ||||
| 	u32 tmp; | ||||
| 	int ret; | ||||
| 
 | ||||
| 	if (!np) | ||||
| 		return 0; | ||||
|  | @ -297,8 +298,9 @@ static int ohci_pxa_of_init(struct platform_device *pdev) | |||
| 	 */ | ||||
| 	if (!pdev->dev.dma_mask) | ||||
| 		pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask; | ||||
| 	if (!pdev->dev.coherent_dma_mask) | ||||
| 		pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); | ||||
| 	ret = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); | ||||
| 	if (ret) | ||||
| 		return ret; | ||||
| 
 | ||||
| 	pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL); | ||||
| 	if (!pdata) | ||||
|  |  | |||
|  | @ -113,8 +113,9 @@ static int spear_ohci_hcd_drv_probe(struct platform_device *pdev) | |||
| 	 */ | ||||
| 	if (!pdev->dev.dma_mask) | ||||
| 		pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask; | ||||
| 	if (!pdev->dev.coherent_dma_mask) | ||||
| 		pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); | ||||
| 	retval = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); | ||||
| 	if (retval) | ||||
| 		goto fail; | ||||
| 
 | ||||
| 	usbh_clk = devm_clk_get(&pdev->dev, NULL); | ||||
| 	if (IS_ERR(usbh_clk)) { | ||||
|  |  | |||
|  | @ -77,8 +77,9 @@ static int uhci_hcd_platform_probe(struct platform_device *pdev) | |||
| 	 */ | ||||
| 	if (!pdev->dev.dma_mask) | ||||
| 		pdev->dev.dma_mask = &pdev->dev.coherent_dma_mask; | ||||
| 	if (!pdev->dev.coherent_dma_mask) | ||||
| 		pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); | ||||
| 	ret = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); | ||||
| 	if (ret) | ||||
| 		return ret; | ||||
| 
 | ||||
| 	hcd = usb_create_hcd(&uhci_platform_hc_driver, &pdev->dev, | ||||
| 			pdev->name); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Russell King
				Russell King