mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-25 04:30:52 +07:00
sh: make pmb iomapping configurable.
This plugs in an early_param for permitting transparent PMB-backed ioremapping to be enabled/disabled. For the time being, we use a default-disabled policy. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
90e7d649d8
commit
4cfa8e75d6
@ -68,6 +68,8 @@ static DEFINE_RWLOCK(pmb_rwlock);
|
||||
static struct pmb_entry pmb_entry_list[NR_PMB_ENTRIES];
|
||||
static DECLARE_BITMAP(pmb_map, NR_PMB_ENTRIES);
|
||||
|
||||
static unsigned int pmb_iomapping_enabled;
|
||||
|
||||
static __always_inline unsigned long mk_pmb_entry(unsigned int entry)
|
||||
{
|
||||
return (entry & PMB_E_MASK) << PMB_E_SHIFT;
|
||||
@ -284,6 +286,9 @@ void __iomem *pmb_remap_caller(phys_addr_t phys, unsigned long size,
|
||||
unsigned long aligned;
|
||||
struct vm_struct *area;
|
||||
|
||||
if (!pmb_iomapping_enabled)
|
||||
return NULL;
|
||||
|
||||
/*
|
||||
* Small mappings need to go through the TLB.
|
||||
*/
|
||||
@ -684,6 +689,18 @@ static void __init pmb_resize(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
static int __init early_pmb(char *p)
|
||||
{
|
||||
if (!p)
|
||||
return 0;
|
||||
|
||||
if (strstr(p, "iomap"))
|
||||
pmb_iomapping_enabled = 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
early_param("pmb", early_pmb);
|
||||
|
||||
void __init pmb_init(void)
|
||||
{
|
||||
/* Synchronize software state */
|
||||
|
Loading…
Reference in New Issue
Block a user