mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2024-12-28 16:52:18 +00:00
9263271a61
The current code tries to get an associated clk, ignores any errors in the process and if there is a clock enables it unconditionally for the whole lifetime of the sram device. Instead use an "optional" variant of devm_clk_get() which handles the case where no clk is needed for the sram device and do proper error handling for the remaining error cases. Also use an "enabled" variant of devm_clk_get() to simplify. With that .probe() is the only function using struct sram_dev::clk, so it can be replaced by a local variable. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de> Link: https://lore.kernel.org/r/20230302091251.1852454-1-u.kleine-koenig@pengutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
64 lines
1.2 KiB
C
64 lines
1.2 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Defines for the SRAM driver
|
|
*/
|
|
#ifndef __SRAM_H
|
|
#define __SRAM_H
|
|
|
|
struct sram_config {
|
|
int (*init)(void);
|
|
bool map_only_reserved;
|
|
};
|
|
|
|
struct sram_partition {
|
|
void __iomem *base;
|
|
|
|
struct gen_pool *pool;
|
|
struct bin_attribute battr;
|
|
struct mutex lock;
|
|
struct list_head list;
|
|
};
|
|
|
|
struct sram_dev {
|
|
const struct sram_config *config;
|
|
|
|
struct device *dev;
|
|
void __iomem *virt_base;
|
|
bool no_memory_wc;
|
|
|
|
struct gen_pool *pool;
|
|
|
|
struct sram_partition *partition;
|
|
u32 partitions;
|
|
};
|
|
|
|
struct sram_reserve {
|
|
struct list_head list;
|
|
u32 start;
|
|
u32 size;
|
|
struct resource res;
|
|
bool export;
|
|
bool pool;
|
|
bool protect_exec;
|
|
const char *label;
|
|
};
|
|
|
|
#ifdef CONFIG_SRAM_EXEC
|
|
int sram_check_protect_exec(struct sram_dev *sram, struct sram_reserve *block,
|
|
struct sram_partition *part);
|
|
int sram_add_protect_exec(struct sram_partition *part);
|
|
#else
|
|
static inline int sram_check_protect_exec(struct sram_dev *sram,
|
|
struct sram_reserve *block,
|
|
struct sram_partition *part)
|
|
{
|
|
return -ENODEV;
|
|
}
|
|
|
|
static inline int sram_add_protect_exec(struct sram_partition *part)
|
|
{
|
|
return -ENODEV;
|
|
}
|
|
#endif /* CONFIG_SRAM_EXEC */
|
|
#endif /* __SRAM_H */
|