mips: cm: Convert __mips_cm_l2sync_phys_base() to weak function
The __mips_cm_l2sync_phys_base() and mips_cm_l2sync_phys_base() couple was introduced in commit9f98f3dd0c
("MIPS: Add generic CM probe & access code") where the former method was a weak implementation of the later function. Such design pattern permitted to re-define the original method and to use the weak implementation in the new function. A similar approach was introduced in the framework of another arch-specific programmable interface: mips_cm_phys_base() and __mips_cm_phys_base(). The only difference is that the underscored method of the later couple was declared in the "asm/mips-cm.h" header file, but it wasn't done for the CM L2-sync methods in the subject. Due to the missing global function declaration the "missing prototype" warning was spotted in the framework of the commit9a2036724c
("mips: mark local function static if possible") and fixed just be re-qualifying the weak method as static. Doing that broke what was originally implied by having the weak implementation globally defined. Let's fix the broken CM2 L2-sync arch-interface by dropping the static qualifier and, seeing the implemented pattern hasn't been used for over 10 years but will be required soon (see the link for the discussion around it), converting it to a single weakly defined method: mips_cm_l2sync_phys_base(). Fixes:9a2036724c
("mips: mark local function static if possible") Link: https://lore.kernel.org/linux-mips/20240215171740.14550-3-fancer.lancer@gmail.com Signed-off-by: Serge Semin <fancer.lancer@gmail.com> Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
This commit is contained in:
parent
8507786171
commit
8bc8db2ab2
@ -33,6 +33,19 @@ extern void __iomem *mips_cm_l2sync_base;
|
||||
*/
|
||||
extern phys_addr_t __mips_cm_phys_base(void);
|
||||
|
||||
/**
|
||||
* mips_cm_l2sync_phys_base - retrieve the physical base address of the CM
|
||||
* L2-sync region
|
||||
*
|
||||
* This function returns the physical base address of the Coherence Manager
|
||||
* L2-cache only region. It provides a default implementation which reads the
|
||||
* CMGCRL2OnlySyncBase register where available or returns a 4K region just
|
||||
* behind the CM GCR base address. It may be overridden by platforms which
|
||||
* determine this address in a different way by defining a function with the
|
||||
* same prototype.
|
||||
*/
|
||||
extern phys_addr_t mips_cm_l2sync_phys_base(void);
|
||||
|
||||
/*
|
||||
* mips_cm_is64 - determine CM register width
|
||||
*
|
||||
|
@ -201,7 +201,7 @@ phys_addr_t __mips_cm_phys_base(void)
|
||||
phys_addr_t mips_cm_phys_base(void)
|
||||
__attribute__((weak, alias("__mips_cm_phys_base")));
|
||||
|
||||
static phys_addr_t __mips_cm_l2sync_phys_base(void)
|
||||
phys_addr_t __weak mips_cm_l2sync_phys_base(void)
|
||||
{
|
||||
u32 base_reg;
|
||||
|
||||
@ -217,9 +217,6 @@ static phys_addr_t __mips_cm_l2sync_phys_base(void)
|
||||
return mips_cm_phys_base() + MIPS_CM_GCR_SIZE;
|
||||
}
|
||||
|
||||
phys_addr_t mips_cm_l2sync_phys_base(void)
|
||||
__attribute__((weak, alias("__mips_cm_l2sync_phys_base")));
|
||||
|
||||
static void mips_cm_probe_l2sync(void)
|
||||
{
|
||||
unsigned major_rev;
|
||||
|
Loading…
Reference in New Issue
Block a user