forked from Mirrors/opensbi
		
	lib: utils/fdt: Constify FDT parsing functions
Distinguish between functions which modify the devicetree and those which only extract information from it. Other than the iterators in fdt_domain.c, this is a mechanical conversion. Signed-off-by: Samuel Holland <samuel.holland@sifive.com> Reviewed-by: Andrew Jones <ajones@ventanamicro.com> Reviewed-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
		
				
					committed by
					
						
						Anup Patel
					
				
			
			
				
	
			
			
			
						parent
						
							f229a32828
						
					
				
				
					commit
					33ba4e0567
				
			@@ -70,12 +70,12 @@ void fdt_domain_fixup(void *fdt);
 | 
			
		||||
 *
 | 
			
		||||
 * @return 0 on success and negative error code on failure
 | 
			
		||||
 */
 | 
			
		||||
int fdt_domains_populate(void *fdt);
 | 
			
		||||
int fdt_domains_populate(const void *fdt);
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
static inline void fdt_domain_fixup(void *fdt) { }
 | 
			
		||||
static inline int fdt_domains_populate(void *fdt) { return 0; }
 | 
			
		||||
static inline int fdt_domains_populate(const void *fdt) { return 0; }
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -34,84 +34,84 @@ struct platform_uart_data {
 | 
			
		||||
	unsigned long reg_offset;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const struct fdt_match *fdt_match_node(void *fdt, int nodeoff,
 | 
			
		||||
const struct fdt_match *fdt_match_node(const void *fdt, int nodeoff,
 | 
			
		||||
				       const struct fdt_match *match_table);
 | 
			
		||||
 | 
			
		||||
int fdt_find_match(void *fdt, int startoff,
 | 
			
		||||
int fdt_find_match(const void *fdt, int startoff,
 | 
			
		||||
		   const struct fdt_match *match_table,
 | 
			
		||||
		   const struct fdt_match **out_match);
 | 
			
		||||
 | 
			
		||||
int fdt_parse_phandle_with_args(void *fdt, int nodeoff,
 | 
			
		||||
int fdt_parse_phandle_with_args(const void *fdt, int nodeoff,
 | 
			
		||||
				const char *prop, const char *cells_prop,
 | 
			
		||||
				int index, struct fdt_phandle_args *out_args);
 | 
			
		||||
 | 
			
		||||
int fdt_get_node_addr_size(void *fdt, int node, int index,
 | 
			
		||||
int fdt_get_node_addr_size(const void *fdt, int node, int index,
 | 
			
		||||
			   uint64_t *addr, uint64_t *size);
 | 
			
		||||
 | 
			
		||||
int fdt_get_node_addr_size_by_name(void *fdt, int node, const char *name,
 | 
			
		||||
int fdt_get_node_addr_size_by_name(const void *fdt, int node, const char *name,
 | 
			
		||||
				   uint64_t *addr, uint64_t *size);
 | 
			
		||||
 | 
			
		||||
bool fdt_node_is_enabled(void *fdt, int nodeoff);
 | 
			
		||||
bool fdt_node_is_enabled(const void *fdt, int nodeoff);
 | 
			
		||||
 | 
			
		||||
int fdt_parse_hart_id(void *fdt, int cpu_offset, u32 *hartid);
 | 
			
		||||
int fdt_parse_hart_id(const void *fdt, int cpu_offset, u32 *hartid);
 | 
			
		||||
 | 
			
		||||
int fdt_parse_max_enabled_hart_id(void *fdt, u32 *max_hartid);
 | 
			
		||||
int fdt_parse_max_enabled_hart_id(const void *fdt, u32 *max_hartid);
 | 
			
		||||
 | 
			
		||||
int fdt_parse_timebase_frequency(void *fdt, unsigned long *freq);
 | 
			
		||||
int fdt_parse_timebase_frequency(const void *fdt, unsigned long *freq);
 | 
			
		||||
 | 
			
		||||
int fdt_parse_isa_extensions(void *fdt, unsigned int hard_id,
 | 
			
		||||
int fdt_parse_isa_extensions(const void *fdt, unsigned int hard_id,
 | 
			
		||||
			     unsigned long *extensions);
 | 
			
		||||
 | 
			
		||||
int fdt_parse_gaisler_uart_node(void *fdt, int nodeoffset,
 | 
			
		||||
int fdt_parse_gaisler_uart_node(const void *fdt, int nodeoffset,
 | 
			
		||||
				struct platform_uart_data *uart);
 | 
			
		||||
 | 
			
		||||
int fdt_parse_renesas_scif_node(void *fdt, int nodeoffset,
 | 
			
		||||
int fdt_parse_renesas_scif_node(const void *fdt, int nodeoffset,
 | 
			
		||||
				struct platform_uart_data *uart);
 | 
			
		||||
 | 
			
		||||
int fdt_parse_shakti_uart_node(void *fdt, int nodeoffset,
 | 
			
		||||
int fdt_parse_shakti_uart_node(const void *fdt, int nodeoffset,
 | 
			
		||||
			       struct platform_uart_data *uart);
 | 
			
		||||
 | 
			
		||||
int fdt_parse_sifive_uart_node(void *fdt, int nodeoffset,
 | 
			
		||||
int fdt_parse_sifive_uart_node(const void *fdt, int nodeoffset,
 | 
			
		||||
			       struct platform_uart_data *uart);
 | 
			
		||||
 | 
			
		||||
int fdt_parse_uart_node(void *fdt, int nodeoffset,
 | 
			
		||||
int fdt_parse_uart_node(const void *fdt, int nodeoffset,
 | 
			
		||||
			struct platform_uart_data *uart);
 | 
			
		||||
 | 
			
		||||
int fdt_parse_uart8250(void *fdt, struct platform_uart_data *uart,
 | 
			
		||||
int fdt_parse_uart8250(const void *fdt, struct platform_uart_data *uart,
 | 
			
		||||
		       const char *compatible);
 | 
			
		||||
 | 
			
		||||
int fdt_parse_xlnx_uartlite_node(void *fdt, int nodeoffset,
 | 
			
		||||
int fdt_parse_xlnx_uartlite_node(const void *fdt, int nodeoffset,
 | 
			
		||||
			       struct platform_uart_data *uart);
 | 
			
		||||
 | 
			
		||||
struct aplic_data;
 | 
			
		||||
 | 
			
		||||
int fdt_parse_aplic_node(void *fdt, int nodeoff, struct aplic_data *aplic);
 | 
			
		||||
int fdt_parse_aplic_node(const void *fdt, int nodeoff, struct aplic_data *aplic);
 | 
			
		||||
 | 
			
		||||
struct imsic_data;
 | 
			
		||||
 | 
			
		||||
bool fdt_check_imsic_mlevel(void *fdt);
 | 
			
		||||
bool fdt_check_imsic_mlevel(const void *fdt);
 | 
			
		||||
 | 
			
		||||
int fdt_parse_imsic_node(void *fdt, int nodeoff, struct imsic_data *imsic);
 | 
			
		||||
int fdt_parse_imsic_node(const void *fdt, int nodeoff, struct imsic_data *imsic);
 | 
			
		||||
 | 
			
		||||
struct plic_data;
 | 
			
		||||
 | 
			
		||||
int fdt_parse_plic_node(void *fdt, int nodeoffset, struct plic_data *plic);
 | 
			
		||||
int fdt_parse_plic_node(const void *fdt, int nodeoffset, struct plic_data *plic);
 | 
			
		||||
 | 
			
		||||
int fdt_parse_plic(void *fdt, struct plic_data *plic, const char *compat);
 | 
			
		||||
int fdt_parse_plic(const void *fdt, struct plic_data *plic, const char *compat);
 | 
			
		||||
 | 
			
		||||
int fdt_parse_aclint_node(void *fdt, int nodeoffset,
 | 
			
		||||
int fdt_parse_aclint_node(const void *fdt, int nodeoffset,
 | 
			
		||||
			  bool for_timer, bool allow_regname,
 | 
			
		||||
			  unsigned long *out_addr1, unsigned long *out_size1,
 | 
			
		||||
			  unsigned long *out_addr2, unsigned long *out_size2,
 | 
			
		||||
			  u32 *out_first_hartid, u32 *out_hart_count);
 | 
			
		||||
 | 
			
		||||
int fdt_parse_plmt_node(void *fdt, int nodeoffset, unsigned long *plmt_base,
 | 
			
		||||
			  unsigned long *plmt_size, u32 *hart_count);
 | 
			
		||||
int fdt_parse_plmt_node(const void *fdt, int nodeoffset, unsigned long *plmt_base,
 | 
			
		||||
			unsigned long *plmt_size, u32 *hart_count);
 | 
			
		||||
 | 
			
		||||
int fdt_parse_plicsw_node(void *fdt, int nodeoffset, unsigned long *plicsw_base,
 | 
			
		||||
int fdt_parse_plicsw_node(const void *fdt, int nodeoffset, unsigned long *plicsw_base,
 | 
			
		||||
			  unsigned long *size, u32 *hart_count);
 | 
			
		||||
 | 
			
		||||
int fdt_parse_compat_addr(void *fdt, uint64_t *addr,
 | 
			
		||||
int fdt_parse_compat_addr(const void *fdt, uint64_t *addr,
 | 
			
		||||
			  const char *compatible);
 | 
			
		||||
 | 
			
		||||
static inline void *fdt_get_address(void)
 | 
			
		||||
 
 | 
			
		||||
@@ -52,7 +52,7 @@ int fdt_pmu_fixup(void *fdt);
 | 
			
		||||
 *
 | 
			
		||||
 * @return 0 on success and negative error code on failure
 | 
			
		||||
 */
 | 
			
		||||
int fdt_pmu_setup(void *fdt);
 | 
			
		||||
int fdt_pmu_setup(const void *fdt);
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Get the mhpmevent select value read from DT for a given event
 | 
			
		||||
@@ -70,7 +70,7 @@ extern uint32_t hw_event_count;
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
static inline void fdt_pmu_fixup(void *fdt) { }
 | 
			
		||||
static inline int fdt_pmu_setup(void *fdt) { return 0; }
 | 
			
		||||
static inline int fdt_pmu_setup(const void *fdt) { return 0; }
 | 
			
		||||
static inline uint64_t fdt_pmu_get_select_value(uint32_t event_idx) { return 0; }
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
@@ -48,6 +48,14 @@ int fdt_iterate_each_domain(void *fdt, void *opaque,
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int fdt_iterate_each_domain_ro(const void *fdt, void *opaque,
 | 
			
		||||
				      int (*fn)(const void *fdt, int domain_offset,
 | 
			
		||||
						void *opaque))
 | 
			
		||||
{
 | 
			
		||||
	return fdt_iterate_each_domain((void *)fdt, opaque,
 | 
			
		||||
				       (int (*)(void *, int,  void *))fn);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_iterate_each_memregion(void *fdt, int domain_offset, void *opaque,
 | 
			
		||||
			       int (*fn)(void *fdt, int domain_offset,
 | 
			
		||||
					 int region_offset, u32 region_access,
 | 
			
		||||
@@ -88,6 +96,15 @@ int fdt_iterate_each_memregion(void *fdt, int domain_offset, void *opaque,
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int fdt_iterate_each_memregion_ro(const void *fdt, int domain_offset, void *opaque,
 | 
			
		||||
					 int (*fn)(const void *fdt, int domain_offset,
 | 
			
		||||
						   int region_offset, u32 region_access,
 | 
			
		||||
						   void *opaque))
 | 
			
		||||
{
 | 
			
		||||
	return fdt_iterate_each_memregion((void *)fdt, domain_offset, opaque,
 | 
			
		||||
					  (int (*)(void *, int, int, u32, void *))fn);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
struct __fixup_find_domain_offset_info {
 | 
			
		||||
	const char *name;
 | 
			
		||||
	int *doffset;
 | 
			
		||||
@@ -228,7 +245,7 @@ struct parse_region_data {
 | 
			
		||||
	u32 max_regions;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static int __fdt_parse_region(void *fdt, int domain_offset,
 | 
			
		||||
static int __fdt_parse_region(const void *fdt, int domain_offset,
 | 
			
		||||
			      int region_offset, u32 region_access,
 | 
			
		||||
			      void *opaque)
 | 
			
		||||
{
 | 
			
		||||
@@ -283,7 +300,7 @@ static int __fdt_parse_region(void *fdt, int domain_offset,
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int __fdt_parse_domain(void *fdt, int domain_offset, void *opaque)
 | 
			
		||||
static int __fdt_parse_domain(const void *fdt, int domain_offset, void *opaque)
 | 
			
		||||
{
 | 
			
		||||
	u32 val32;
 | 
			
		||||
	u64 val64;
 | 
			
		||||
@@ -347,8 +364,8 @@ static int __fdt_parse_domain(void *fdt, int domain_offset, void *opaque)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Setup memregions from DT */
 | 
			
		||||
	err = fdt_iterate_each_memregion(fdt, domain_offset, &preg,
 | 
			
		||||
					 __fdt_parse_region);
 | 
			
		||||
	err = fdt_iterate_each_memregion_ro(fdt, domain_offset, &preg,
 | 
			
		||||
					    __fdt_parse_region);
 | 
			
		||||
	if (err)
 | 
			
		||||
		goto fail_free_all;
 | 
			
		||||
 | 
			
		||||
@@ -490,7 +507,7 @@ fail_free_domain:
 | 
			
		||||
	return err;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_domains_populate(void *fdt)
 | 
			
		||||
int fdt_domains_populate(const void *fdt)
 | 
			
		||||
{
 | 
			
		||||
	const u32 *val;
 | 
			
		||||
	int cold_domain_offset;
 | 
			
		||||
@@ -529,6 +546,6 @@ int fdt_domains_populate(void *fdt)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Iterate over each domain in FDT and populate details */
 | 
			
		||||
	return fdt_iterate_each_domain(fdt, &cold_domain_offset,
 | 
			
		||||
				       __fdt_parse_domain);
 | 
			
		||||
	return fdt_iterate_each_domain_ro(fdt, &cold_domain_offset,
 | 
			
		||||
					  __fdt_parse_domain);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -33,7 +33,7 @@
 | 
			
		||||
#define DEFAULT_SHAKTI_UART_FREQ		50000000
 | 
			
		||||
#define DEFAULT_SHAKTI_UART_BAUD		115200
 | 
			
		||||
 | 
			
		||||
const struct fdt_match *fdt_match_node(void *fdt, int nodeoff,
 | 
			
		||||
const struct fdt_match *fdt_match_node(const void *fdt, int nodeoff,
 | 
			
		||||
				       const struct fdt_match *match_table)
 | 
			
		||||
{
 | 
			
		||||
	int ret;
 | 
			
		||||
@@ -52,7 +52,7 @@ const struct fdt_match *fdt_match_node(void *fdt, int nodeoff,
 | 
			
		||||
	return NULL;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_find_match(void *fdt, int startoff,
 | 
			
		||||
int fdt_find_match(const void *fdt, int startoff,
 | 
			
		||||
		   const struct fdt_match *match_table,
 | 
			
		||||
		   const struct fdt_match **out_match)
 | 
			
		||||
{
 | 
			
		||||
@@ -75,7 +75,7 @@ int fdt_find_match(void *fdt, int startoff,
 | 
			
		||||
	return SBI_ENODEV;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_parse_phandle_with_args(void *fdt, int nodeoff,
 | 
			
		||||
int fdt_parse_phandle_with_args(const void *fdt, int nodeoff,
 | 
			
		||||
				const char *prop, const char *cells_prop,
 | 
			
		||||
				int index, struct fdt_phandle_args *out_args)
 | 
			
		||||
{
 | 
			
		||||
@@ -122,7 +122,7 @@ int fdt_parse_phandle_with_args(void *fdt, int nodeoff,
 | 
			
		||||
	return SBI_ENOENT;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int fdt_translate_address(void *fdt, uint64_t reg, int parent,
 | 
			
		||||
static int fdt_translate_address(const void *fdt, uint64_t reg, int parent,
 | 
			
		||||
				 uint64_t *addr)
 | 
			
		||||
{
 | 
			
		||||
	int i, rlen;
 | 
			
		||||
@@ -160,7 +160,7 @@ static int fdt_translate_address(void *fdt, uint64_t reg, int parent,
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_get_node_addr_size(void *fdt, int node, int index,
 | 
			
		||||
int fdt_get_node_addr_size(const void *fdt, int node, int index,
 | 
			
		||||
			   uint64_t *addr, uint64_t *size)
 | 
			
		||||
{
 | 
			
		||||
	int parent, len, i, rc;
 | 
			
		||||
@@ -216,7 +216,7 @@ int fdt_get_node_addr_size(void *fdt, int node, int index,
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_get_node_addr_size_by_name(void *fdt, int node, const char *name,
 | 
			
		||||
int fdt_get_node_addr_size_by_name(const void *fdt, int node, const char *name,
 | 
			
		||||
				   uint64_t *addr, uint64_t *size)
 | 
			
		||||
{
 | 
			
		||||
	int i, j, count;
 | 
			
		||||
@@ -242,7 +242,7 @@ int fdt_get_node_addr_size_by_name(void *fdt, int node, const char *name,
 | 
			
		||||
	return SBI_ENODEV;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool fdt_node_is_enabled(void *fdt, int nodeoff)
 | 
			
		||||
bool fdt_node_is_enabled(const void *fdt, int nodeoff)
 | 
			
		||||
{
 | 
			
		||||
	int len;
 | 
			
		||||
	const void *prop;
 | 
			
		||||
@@ -260,7 +260,7 @@ bool fdt_node_is_enabled(void *fdt, int nodeoff)
 | 
			
		||||
	return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_parse_hart_id(void *fdt, int cpu_offset, u32 *hartid)
 | 
			
		||||
int fdt_parse_hart_id(const void *fdt, int cpu_offset, u32 *hartid)
 | 
			
		||||
{
 | 
			
		||||
	int len;
 | 
			
		||||
	const void *prop;
 | 
			
		||||
@@ -288,7 +288,7 @@ int fdt_parse_hart_id(void *fdt, int cpu_offset, u32 *hartid)
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_parse_max_enabled_hart_id(void *fdt, u32 *max_hartid)
 | 
			
		||||
int fdt_parse_max_enabled_hart_id(const void *fdt, u32 *max_hartid)
 | 
			
		||||
{
 | 
			
		||||
	u32 hartid;
 | 
			
		||||
	int err, cpu_offset, cpus_offset;
 | 
			
		||||
@@ -319,7 +319,7 @@ int fdt_parse_max_enabled_hart_id(void *fdt, u32 *max_hartid)
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_parse_timebase_frequency(void *fdt, unsigned long *freq)
 | 
			
		||||
int fdt_parse_timebase_frequency(const void *fdt, unsigned long *freq)
 | 
			
		||||
{
 | 
			
		||||
	const fdt32_t *val;
 | 
			
		||||
	int len, cpus_offset;
 | 
			
		||||
@@ -423,7 +423,7 @@ static void fdt_parse_isa_extensions_one_hart(const char *isa,
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int fdt_parse_isa_all_harts(void *fdt)
 | 
			
		||||
static int fdt_parse_isa_all_harts(const void *fdt)
 | 
			
		||||
{
 | 
			
		||||
	u32 hartid;
 | 
			
		||||
	const fdt32_t *val;
 | 
			
		||||
@@ -472,7 +472,7 @@ static int fdt_parse_isa_all_harts(void *fdt)
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_parse_isa_extensions(void *fdt, unsigned int hartid,
 | 
			
		||||
int fdt_parse_isa_extensions(const void *fdt, unsigned int hartid,
 | 
			
		||||
			unsigned long *extensions)
 | 
			
		||||
{
 | 
			
		||||
	int rc, i;
 | 
			
		||||
@@ -502,7 +502,7 @@ int fdt_parse_isa_extensions(void *fdt, unsigned int hartid,
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int fdt_parse_uart_node_common(void *fdt, int nodeoffset,
 | 
			
		||||
static int fdt_parse_uart_node_common(const void *fdt, int nodeoffset,
 | 
			
		||||
				      struct platform_uart_data *uart,
 | 
			
		||||
				      unsigned long default_freq,
 | 
			
		||||
				      unsigned long default_baud)
 | 
			
		||||
@@ -539,7 +539,7 @@ static int fdt_parse_uart_node_common(void *fdt, int nodeoffset,
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_parse_gaisler_uart_node(void *fdt, int nodeoffset,
 | 
			
		||||
int fdt_parse_gaisler_uart_node(const void *fdt, int nodeoffset,
 | 
			
		||||
				struct platform_uart_data *uart)
 | 
			
		||||
{
 | 
			
		||||
	return fdt_parse_uart_node_common(fdt, nodeoffset, uart,
 | 
			
		||||
@@ -547,7 +547,7 @@ int fdt_parse_gaisler_uart_node(void *fdt, int nodeoffset,
 | 
			
		||||
					DEFAULT_UART_BAUD);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_parse_renesas_scif_node(void *fdt, int nodeoffset,
 | 
			
		||||
int fdt_parse_renesas_scif_node(const void *fdt, int nodeoffset,
 | 
			
		||||
				struct platform_uart_data *uart)
 | 
			
		||||
{
 | 
			
		||||
	return fdt_parse_uart_node_common(fdt, nodeoffset, uart,
 | 
			
		||||
@@ -555,7 +555,7 @@ int fdt_parse_renesas_scif_node(void *fdt, int nodeoffset,
 | 
			
		||||
					  DEFAULT_RENESAS_SCIF_BAUD);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_parse_shakti_uart_node(void *fdt, int nodeoffset,
 | 
			
		||||
int fdt_parse_shakti_uart_node(const void *fdt, int nodeoffset,
 | 
			
		||||
			       struct platform_uart_data *uart)
 | 
			
		||||
{
 | 
			
		||||
	return fdt_parse_uart_node_common(fdt, nodeoffset, uart,
 | 
			
		||||
@@ -563,7 +563,7 @@ int fdt_parse_shakti_uart_node(void *fdt, int nodeoffset,
 | 
			
		||||
					DEFAULT_SHAKTI_UART_BAUD);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_parse_sifive_uart_node(void *fdt, int nodeoffset,
 | 
			
		||||
int fdt_parse_sifive_uart_node(const void *fdt, int nodeoffset,
 | 
			
		||||
			       struct platform_uart_data *uart)
 | 
			
		||||
{
 | 
			
		||||
	return fdt_parse_uart_node_common(fdt, nodeoffset, uart,
 | 
			
		||||
@@ -571,7 +571,7 @@ int fdt_parse_sifive_uart_node(void *fdt, int nodeoffset,
 | 
			
		||||
					DEFAULT_SIFIVE_UART_BAUD);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_parse_uart_node(void *fdt, int nodeoffset,
 | 
			
		||||
int fdt_parse_uart_node(const void *fdt, int nodeoffset,
 | 
			
		||||
			struct platform_uart_data *uart)
 | 
			
		||||
{
 | 
			
		||||
	int len, rc;
 | 
			
		||||
@@ -604,7 +604,7 @@ int fdt_parse_uart_node(void *fdt, int nodeoffset,
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_parse_uart8250(void *fdt, struct platform_uart_data *uart,
 | 
			
		||||
int fdt_parse_uart8250(const void *fdt, struct platform_uart_data *uart,
 | 
			
		||||
		   const char *compatible)
 | 
			
		||||
{
 | 
			
		||||
	int nodeoffset;
 | 
			
		||||
@@ -619,13 +619,13 @@ int fdt_parse_uart8250(void *fdt, struct platform_uart_data *uart,
 | 
			
		||||
	return fdt_parse_uart_node(fdt, nodeoffset, uart);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_parse_xlnx_uartlite_node(void *fdt, int nodeoffset,
 | 
			
		||||
int fdt_parse_xlnx_uartlite_node(const void *fdt, int nodeoffset,
 | 
			
		||||
			       struct platform_uart_data *uart)
 | 
			
		||||
{
 | 
			
		||||
	return fdt_parse_uart_node_common(fdt, nodeoffset, uart, 0, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_parse_aplic_node(void *fdt, int nodeoff, struct aplic_data *aplic)
 | 
			
		||||
int fdt_parse_aplic_node(const void *fdt, int nodeoff, struct aplic_data *aplic)
 | 
			
		||||
{
 | 
			
		||||
	bool child_found;
 | 
			
		||||
	const fdt32_t *val;
 | 
			
		||||
@@ -785,7 +785,7 @@ skip_delegate_parse:
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool fdt_check_imsic_mlevel(void *fdt)
 | 
			
		||||
bool fdt_check_imsic_mlevel(const void *fdt)
 | 
			
		||||
{
 | 
			
		||||
	const fdt32_t *val;
 | 
			
		||||
	int i, len, noff = 0;
 | 
			
		||||
@@ -808,7 +808,7 @@ bool fdt_check_imsic_mlevel(void *fdt)
 | 
			
		||||
	return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_parse_imsic_node(void *fdt, int nodeoff, struct imsic_data *imsic)
 | 
			
		||||
int fdt_parse_imsic_node(const void *fdt, int nodeoff, struct imsic_data *imsic)
 | 
			
		||||
{
 | 
			
		||||
	const fdt32_t *val;
 | 
			
		||||
	struct imsic_regs *regs;
 | 
			
		||||
@@ -887,7 +887,7 @@ int fdt_parse_imsic_node(void *fdt, int nodeoff, struct imsic_data *imsic)
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_parse_plic_node(void *fdt, int nodeoffset, struct plic_data *plic)
 | 
			
		||||
int fdt_parse_plic_node(const void *fdt, int nodeoffset, struct plic_data *plic)
 | 
			
		||||
{
 | 
			
		||||
	int len, rc;
 | 
			
		||||
	const fdt32_t *val;
 | 
			
		||||
@@ -910,7 +910,7 @@ int fdt_parse_plic_node(void *fdt, int nodeoffset, struct plic_data *plic)
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_parse_plic(void *fdt, struct plic_data *plic, const char *compat)
 | 
			
		||||
int fdt_parse_plic(const void *fdt, struct plic_data *plic, const char *compat)
 | 
			
		||||
{
 | 
			
		||||
	int nodeoffset;
 | 
			
		||||
 | 
			
		||||
@@ -924,7 +924,7 @@ int fdt_parse_plic(void *fdt, struct plic_data *plic, const char *compat)
 | 
			
		||||
	return fdt_parse_plic_node(fdt, nodeoffset, plic);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int fdt_get_aclint_addr_size_by_name(void *fdt, int nodeoffset,
 | 
			
		||||
static int fdt_get_aclint_addr_size_by_name(const void *fdt, int nodeoffset,
 | 
			
		||||
					    unsigned long *out_addr1,
 | 
			
		||||
					    unsigned long *out_size1,
 | 
			
		||||
					    unsigned long *out_addr2,
 | 
			
		||||
@@ -950,7 +950,7 @@ static int fdt_get_aclint_addr_size_by_name(void *fdt, int nodeoffset,
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int fdt_get_aclint_addr_size(void *fdt, int nodeoffset,
 | 
			
		||||
static int fdt_get_aclint_addr_size(const void *fdt, int nodeoffset,
 | 
			
		||||
				    unsigned long *out_addr1,
 | 
			
		||||
				    unsigned long *out_size1,
 | 
			
		||||
				    unsigned long *out_addr2,
 | 
			
		||||
@@ -978,7 +978,7 @@ static int fdt_get_aclint_addr_size(void *fdt, int nodeoffset,
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_parse_aclint_node(void *fdt, int nodeoffset,
 | 
			
		||||
int fdt_parse_aclint_node(const void *fdt, int nodeoffset,
 | 
			
		||||
			  bool for_timer, bool allow_regname,
 | 
			
		||||
			  unsigned long *out_addr1, unsigned long *out_size1,
 | 
			
		||||
			  unsigned long *out_addr2, unsigned long *out_size2,
 | 
			
		||||
@@ -1053,7 +1053,7 @@ int fdt_parse_aclint_node(void *fdt, int nodeoffset,
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_parse_plmt_node(void *fdt, int nodeoffset, unsigned long *plmt_base,
 | 
			
		||||
int fdt_parse_plmt_node(const void *fdt, int nodeoffset, unsigned long *plmt_base,
 | 
			
		||||
			  unsigned long *plmt_size, u32 *hart_count)
 | 
			
		||||
{
 | 
			
		||||
	const fdt32_t *val;
 | 
			
		||||
@@ -1109,7 +1109,7 @@ int fdt_parse_plmt_node(void *fdt, int nodeoffset, unsigned long *plmt_base,
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_parse_plicsw_node(void *fdt, int nodeoffset, unsigned long *plicsw_base,
 | 
			
		||||
int fdt_parse_plicsw_node(const void *fdt, int nodeoffset, unsigned long *plicsw_base,
 | 
			
		||||
			  unsigned long *size, u32 *hart_count)
 | 
			
		||||
{
 | 
			
		||||
	const fdt32_t *val;
 | 
			
		||||
@@ -1165,7 +1165,7 @@ int fdt_parse_plicsw_node(void *fdt, int nodeoffset, unsigned long *plicsw_base,
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_parse_compat_addr(void *fdt, uint64_t *addr,
 | 
			
		||||
int fdt_parse_compat_addr(const void *fdt, uint64_t *addr,
 | 
			
		||||
			  const char *compatible)
 | 
			
		||||
{
 | 
			
		||||
	int nodeoffset, rc;
 | 
			
		||||
 
 | 
			
		||||
@@ -56,7 +56,7 @@ int fdt_pmu_fixup(void *fdt)
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int fdt_pmu_setup(void *fdt)
 | 
			
		||||
int fdt_pmu_setup(const void *fdt)
 | 
			
		||||
{
 | 
			
		||||
	int i, pmu_offset, len, result;
 | 
			
		||||
	const u32 *event_val;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user