forked from mirrors/linux
		
	drivers: platform: provide devm_platform_ioremap_resource_wc()
Provide a write-combined variant of devm_platform_ioremap_resource(). Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Link: https://lore.kernel.org/r/20191022084318.22256-5-brgl@bgdev.pl Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
		
							parent
							
								
									b873af620e
								
							
						
					
					
						commit
						bb6243b4f7
					
				
					 3 changed files with 22 additions and 1 deletions
				
			
		|  | @ -318,6 +318,7 @@ IOMAP | ||||||
|   devm_ioremap_resource() : checks resource, requests memory region, ioremaps |   devm_ioremap_resource() : checks resource, requests memory region, ioremaps | ||||||
|   devm_ioremap_resource_wc() |   devm_ioremap_resource_wc() | ||||||
|   devm_platform_ioremap_resource() : calls devm_ioremap_resource() for platform device |   devm_platform_ioremap_resource() : calls devm_ioremap_resource() for platform device | ||||||
|  |   devm_platform_ioremap_resource_wc() | ||||||
|   devm_iounmap() |   devm_iounmap() | ||||||
|   pcim_iomap() |   pcim_iomap() | ||||||
|   pcim_iomap_regions()	: do request_region() and iomap() on multiple BARs |   pcim_iomap_regions()	: do request_region() and iomap() on multiple BARs | ||||||
|  |  | ||||||
|  | @ -60,6 +60,7 @@ struct resource *platform_get_resource(struct platform_device *dev, | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_GPL(platform_get_resource); | EXPORT_SYMBOL_GPL(platform_get_resource); | ||||||
| 
 | 
 | ||||||
|  | #ifdef CONFIG_HAS_IOMEM | ||||||
| /**
 | /**
 | ||||||
|  * devm_platform_ioremap_resource - call devm_ioremap_resource() for a platform |  * devm_platform_ioremap_resource - call devm_ioremap_resource() for a platform | ||||||
|  *				    device |  *				    device | ||||||
|  | @ -68,7 +69,6 @@ EXPORT_SYMBOL_GPL(platform_get_resource); | ||||||
|  *        resource management |  *        resource management | ||||||
|  * @index: resource index |  * @index: resource index | ||||||
|  */ |  */ | ||||||
| #ifdef CONFIG_HAS_IOMEM |  | ||||||
| void __iomem *devm_platform_ioremap_resource(struct platform_device *pdev, | void __iomem *devm_platform_ioremap_resource(struct platform_device *pdev, | ||||||
| 					     unsigned int index) | 					     unsigned int index) | ||||||
| { | { | ||||||
|  | @ -78,6 +78,23 @@ void __iomem *devm_platform_ioremap_resource(struct platform_device *pdev, | ||||||
| 	return devm_ioremap_resource(&pdev->dev, res); | 	return devm_ioremap_resource(&pdev->dev, res); | ||||||
| } | } | ||||||
| EXPORT_SYMBOL_GPL(devm_platform_ioremap_resource); | EXPORT_SYMBOL_GPL(devm_platform_ioremap_resource); | ||||||
|  | 
 | ||||||
|  | /**
 | ||||||
|  |  * devm_platform_ioremap_resource_wc - write-combined variant of | ||||||
|  |  *                                     devm_platform_ioremap_resource() | ||||||
|  |  * | ||||||
|  |  * @pdev: platform device to use both for memory resource lookup as well as | ||||||
|  |  *        resource management | ||||||
|  |  * @index: resource index | ||||||
|  |  */ | ||||||
|  | void __iomem *devm_platform_ioremap_resource_wc(struct platform_device *pdev, | ||||||
|  | 						unsigned int index) | ||||||
|  | { | ||||||
|  | 	struct resource *res; | ||||||
|  | 
 | ||||||
|  | 	res = platform_get_resource(pdev, IORESOURCE_MEM, index); | ||||||
|  | 	return devm_ioremap_resource_wc(&pdev->dev, res); | ||||||
|  | } | ||||||
| #endif /* CONFIG_HAS_IOMEM */ | #endif /* CONFIG_HAS_IOMEM */ | ||||||
| 
 | 
 | ||||||
| /**
 | /**
 | ||||||
|  |  | ||||||
|  | @ -57,6 +57,9 @@ platform_find_device_by_driver(struct device *start, | ||||||
| extern void __iomem * | extern void __iomem * | ||||||
| devm_platform_ioremap_resource(struct platform_device *pdev, | devm_platform_ioremap_resource(struct platform_device *pdev, | ||||||
| 			       unsigned int index); | 			       unsigned int index); | ||||||
|  | extern void __iomem * | ||||||
|  | devm_platform_ioremap_resource_wc(struct platform_device *pdev, | ||||||
|  | 				  unsigned int index); | ||||||
| extern int platform_get_irq(struct platform_device *, unsigned int); | extern int platform_get_irq(struct platform_device *, unsigned int); | ||||||
| extern int platform_get_irq_optional(struct platform_device *, unsigned int); | extern int platform_get_irq_optional(struct platform_device *, unsigned int); | ||||||
| extern int platform_irq_count(struct platform_device *); | extern int platform_irq_count(struct platform_device *); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Bartosz Golaszewski
						Bartosz Golaszewski