mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-03 07:36:44 +07:00
powerpc: Split __SYSFS_SPRSETUP macro
Split the __SYSFS_SPRSETUP macro into two parts so that registers requiring custom read and write functions can use common code for their show and store functions. Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
b717d98543
commit
39a360ef72
@ -404,7 +404,7 @@ void ppc_enable_pmcs(void)
|
||||
}
|
||||
EXPORT_SYMBOL(ppc_enable_pmcs);
|
||||
|
||||
#define __SYSFS_SPRSETUP(NAME, ADDRESS, EXTRA) \
|
||||
#define __SYSFS_SPRSETUP_READ_WRITE(NAME, ADDRESS, EXTRA) \
|
||||
static void read_##NAME(void *val) \
|
||||
{ \
|
||||
*(unsigned long *)val = mfspr(ADDRESS); \
|
||||
@ -413,7 +413,9 @@ static void write_##NAME(void *val) \
|
||||
{ \
|
||||
EXTRA; \
|
||||
mtspr(ADDRESS, *(unsigned long *)val); \
|
||||
} \
|
||||
}
|
||||
|
||||
#define __SYSFS_SPRSETUP_SHOW_STORE(NAME) \
|
||||
static ssize_t show_##NAME(struct device *dev, \
|
||||
struct device_attribute *attr, \
|
||||
char *buf) \
|
||||
@ -436,10 +438,15 @@ static ssize_t __used \
|
||||
return count; \
|
||||
}
|
||||
|
||||
#define SYSFS_PMCSETUP(NAME, ADDRESS) \
|
||||
__SYSFS_SPRSETUP(NAME, ADDRESS, ppc_enable_pmcs())
|
||||
#define SYSFS_SPRSETUP(NAME, ADDRESS) \
|
||||
__SYSFS_SPRSETUP(NAME, ADDRESS, )
|
||||
#define SYSFS_PMCSETUP(NAME, ADDRESS) \
|
||||
__SYSFS_SPRSETUP_READ_WRITE(NAME, ADDRESS, ppc_enable_pmcs()) \
|
||||
__SYSFS_SPRSETUP_SHOW_STORE(NAME)
|
||||
#define SYSFS_SPRSETUP(NAME, ADDRESS) \
|
||||
__SYSFS_SPRSETUP_READ_WRITE(NAME, ADDRESS, ) \
|
||||
__SYSFS_SPRSETUP_SHOW_STORE(NAME)
|
||||
|
||||
#define SYSFS_SPRSETUP_SHOW_STORE(NAME) \
|
||||
__SYSFS_SPRSETUP_SHOW_STORE(NAME)
|
||||
|
||||
/* Let's define all possible registers, we'll only hook up the ones
|
||||
* that are implemented on the current processor
|
||||
|
Loading…
Reference in New Issue
Block a user