UPSTREAM: MIPS: CPC: Provide default mips_cpc_default_phys_base to ignore CPC
Provide a default implementation of mips_cpc_default_phys_base() which simply returns 0, and adjust mips_cpc_phys_base() to allow for mips_cpc_default_phys_base() returning 0. This allows kernels which include CPC support to be built without platform code & simply ignore the CPC if it wasn't already enabled by the bootloader. This fixes link failures such as the following from generic defconfigs: arch/mips/built-in.o: In function `mips_cpc_phys_base': arch/mips/kernel/mips-cpc.c:47: undefined reference to `mips_cpc_default_phys_base' [ralf@linux-mips.org: changed prototype for coding style compliance.] Signed-off-by: Paul Burton <paul.burton@imgtec.com> Reported-by: kbuild test robot <fengguang.wu@intel.com> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/14401/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org> (cherry picked from commit 682c1e52215da4a3e89c14aad60bfc0d400b025f) Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
parent
9c0e042c61
commit
bdb66e0786
1 changed files with 10 additions and 1 deletions
|
@ -21,6 +21,11 @@ static DEFINE_PER_CPU_ALIGNED(spinlock_t, cpc_core_lock);
|
||||||
|
|
||||||
static DEFINE_PER_CPU_ALIGNED(unsigned long, cpc_core_lock_flags);
|
static DEFINE_PER_CPU_ALIGNED(unsigned long, cpc_core_lock_flags);
|
||||||
|
|
||||||
|
phys_addr_t __weak mips_cpc_default_phys_base(void)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* mips_cpc_phys_base - retrieve the physical base address of the CPC
|
* mips_cpc_phys_base - retrieve the physical base address of the CPC
|
||||||
*
|
*
|
||||||
|
@ -43,8 +48,12 @@ static phys_addr_t mips_cpc_phys_base(void)
|
||||||
if (cpc_base & CM_GCR_CPC_BASE_CPCEN_MSK)
|
if (cpc_base & CM_GCR_CPC_BASE_CPCEN_MSK)
|
||||||
return cpc_base & CM_GCR_CPC_BASE_CPCBASE_MSK;
|
return cpc_base & CM_GCR_CPC_BASE_CPCBASE_MSK;
|
||||||
|
|
||||||
/* Otherwise, give it the default address & enable it */
|
/* Otherwise, use the default address */
|
||||||
cpc_base = mips_cpc_default_phys_base();
|
cpc_base = mips_cpc_default_phys_base();
|
||||||
|
if (!cpc_base)
|
||||||
|
return cpc_base;
|
||||||
|
|
||||||
|
/* Enable the CPC, mapped at the default address */
|
||||||
write_gcr_cpc_base(cpc_base | CM_GCR_CPC_BASE_CPCEN_MSK);
|
write_gcr_cpc_base(cpc_base | CM_GCR_CPC_BASE_CPCEN_MSK);
|
||||||
return cpc_base;
|
return cpc_base;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue