mirror of
				https://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 11:35:51 +00:00 
			
		
		
		
	Refresh patches 6.12 for airoha and econet Fixes:122135b964("airoha: an7581: add support for kernel 6.12") Fixes:73d0f92460("kernel: Add new platform EcoNet MIPS") Signed-off-by: Leo Barsky <leobrsky@proton.me> Link: https://github.com/openwrt/openwrt/pull/20073 Signed-off-by: Robert Marko <robimarko@gmail.com>
		
			
				
	
	
		
			74 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 9fb6fef0fb49124291837af1da5028f79d53f98e Mon Sep 17 00:00:00 2001
 | |
| From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= <ilpo.jarvinen@linux.intel.com>
 | |
| Date: Fri, 14 Jun 2024 13:06:03 +0300
 | |
| Subject: [PATCH] resource: Add resource set range and size helpers
 | |
| MIME-Version: 1.0
 | |
| Content-Type: text/plain; charset=UTF-8
 | |
| Content-Transfer-Encoding: 8bit
 | |
| 
 | |
| Setting the end address for a resource with a given size lacks a helper and
 | |
| is therefore coded manually unlike the getter side which has a helper for
 | |
| resource size calculation. Also, almost all callsites that calculate the
 | |
| end address for a resource also set the start address right before it like
 | |
| this:
 | |
| 
 | |
|   res->start = start_addr;
 | |
|   res->end = res->start + size - 1;
 | |
| 
 | |
| Add resource_set_range(res, start_addr, size) that sets the start address
 | |
| and calculates the end address to simplify this often repeated fragment.
 | |
| 
 | |
| Also add resource_set_size() for the cases where setting the start address
 | |
| of the resource is not necessary but mention in its kerneldoc that
 | |
| resource_set_range() is preferred when setting both addresses.
 | |
| 
 | |
| Link: https://lore.kernel.org/r/20240614100606.15830-2-ilpo.jarvinen@linux.intel.com
 | |
| Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
 | |
| Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
 | |
| Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
 | |
| ---
 | |
|  include/linux/ioport.h | 32 ++++++++++++++++++++++++++++++++
 | |
|  1 file changed, 32 insertions(+)
 | |
| 
 | |
| --- a/include/linux/ioport.h
 | |
| +++ b/include/linux/ioport.h
 | |
| @@ -249,6 +249,38 @@ struct resource *lookup_resource(struct
 | |
|  int adjust_resource(struct resource *res, resource_size_t start,
 | |
|  		    resource_size_t size);
 | |
|  resource_size_t resource_alignment(struct resource *res);
 | |
| +
 | |
| +/**
 | |
| + * resource_set_size - Calculate resource end address from size and start
 | |
| + * @res: Resource descriptor
 | |
| + * @size: Size of the resource
 | |
| + *
 | |
| + * Calculate the end address for @res based on @size.
 | |
| + *
 | |
| + * Note: The start address of @res must be set when calling this function.
 | |
| + * Prefer resource_set_range() if setting both the start address and @size.
 | |
| + */
 | |
| +static inline void resource_set_size(struct resource *res, resource_size_t size)
 | |
| +{
 | |
| +	res->end = res->start + size - 1;
 | |
| +}
 | |
| +
 | |
| +/**
 | |
| + * resource_set_range - Set resource start and end addresses
 | |
| + * @res: Resource descriptor
 | |
| + * @start: Start address for the resource
 | |
| + * @size: Size of the resource
 | |
| + *
 | |
| + * Set @res start address and calculate the end address based on @size.
 | |
| + */
 | |
| +static inline void resource_set_range(struct resource *res,
 | |
| +				      resource_size_t start,
 | |
| +				      resource_size_t size)
 | |
| +{
 | |
| +	res->start = start;
 | |
| +	resource_set_size(res, size);
 | |
| +}
 | |
| +
 | |
|  static inline resource_size_t resource_size(const struct resource *res)
 | |
|  {
 | |
|  	return res->end - res->start + 1;
 |