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 <[email protected]> > --- > 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 <[email protected]> _______________________________________________ Linuxppc-dev mailing list [email protected] https://lists.ozlabs.org/listinfo/linuxppc-dev
