Message ID | c0db1b210405db5ff579a2d7432dde2c73bd47bb.1400652868.git.sam.bobroff@au1.ibm.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 39a360ef7234942333436709fd6cf641d5c51b7b |
Headers | show |
On Wednesday 21 May 2014 12:02 PM, Sam Bobroff wrote: > 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> > --- > arch/powerpc/kernel/sysfs.c | 19 +++++++++++++------ > 1 file changed, 13 insertions(+), 6 deletions(-) > > diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c > index d90d4b7..e2a1d6f 100644 > --- a/arch/powerpc/kernel/sysfs.c > +++ b/arch/powerpc/kernel/sysfs.c > @@ -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 > Acked-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c index d90d4b7..e2a1d6f 100644 --- a/arch/powerpc/kernel/sysfs.c +++ b/arch/powerpc/kernel/sysfs.c @@ -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
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> --- arch/powerpc/kernel/sysfs.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-)