Message ID | 1440677358-6681-1-git-send-email-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, 2015-08-27 at 15:09 +0300, Andy Shevchenko wrote: > The readq() and writeq() helpers are available in the > asm-generic/io-64-nonatomic-hi-lo.h and asm-generic/io-64-nonatomic > -lo-hi.h > headers. Replace custom implementation by the generic helpers. > Liam, any comments on this? > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > sound/soc/intel/atom/sst/sst_pvt.c | 16 ++++++---------- > sound/soc/intel/common/sst-dsp.c | 9 ++++----- > 2 files changed, 10 insertions(+), 15 deletions(-) > > diff --git a/sound/soc/intel/atom/sst/sst_pvt.c > b/sound/soc/intel/atom/sst/sst_pvt.c > index adb32fe..6cc222d 100644 > --- a/sound/soc/intel/atom/sst/sst_pvt.c > +++ b/sound/soc/intel/atom/sst/sst_pvt.c > @@ -31,7 +31,10 @@ > #include <sound/pcm.h> > #include <sound/soc.h> > #include <sound/compress_driver.h> > + > +#include <asm-generic/io-64-nonatomic-lo-hi.h> > #include <asm/platform_sst_audio.h> > + > #include "../sst-mfld-platform.h" > #include "sst.h" > #include "../../common/sst-dsp.h" > @@ -49,25 +52,18 @@ u32 sst_shim_read(void __iomem *addr, int offset) > > u64 sst_reg_read64(void __iomem *addr, int offset) > { > - u64 val = 0; > - > - memcpy_fromio(&val, addr + offset, sizeof(val)); > - > - return val; > + return readq(addr + offset); > } > > int sst_shim_write64(void __iomem *addr, int offset, u64 value) > { > - memcpy_toio(addr + offset, &value, sizeof(value)); > + writeq(value, addr + offset); > return 0; > } > > u64 sst_shim_read64(void __iomem *addr, int offset) > { > - u64 val = 0; > - > - memcpy_fromio(&val, addr + offset, sizeof(val)); > - return val; > + return readq(addr + offset); > } > > void sst_set_fw_state_locked( > diff --git a/sound/soc/intel/common/sst-dsp.c > b/sound/soc/intel/common/sst-dsp.c > index a627236..5274482 100644 > --- a/sound/soc/intel/common/sst-dsp.c > +++ b/sound/soc/intel/common/sst-dsp.c > @@ -22,6 +22,8 @@ > #include <linux/io.h> > #include <linux/delay.h> > > +#include <asm-generic/io-64-nonatomic-lo-hi.h> > + > #include "sst-dsp.h" > #include "sst-dsp-priv.h" > > @@ -43,16 +45,13 @@ EXPORT_SYMBOL_GPL(sst_shim32_read); > > void sst_shim32_write64(void __iomem *addr, u32 offset, u64 value) > { > - memcpy_toio(addr + offset, &value, sizeof(value)); > + writeq(value, addr + offset); > } > EXPORT_SYMBOL_GPL(sst_shim32_write64); > > u64 sst_shim32_read64(void __iomem *addr, u32 offset) > { > - u64 val; > - > - memcpy_fromio(&val, addr + offset, sizeof(val)); > - return val; > + return readq(addr + offset); > } > EXPORT_SYMBOL_GPL(sst_shim32_read64); >
On Thu, 2015-09-17 at 11:57 +0300, Andy Shevchenko wrote: > On Thu, 2015-08-27 at 15:09 +0300, Andy Shevchenko wrote: > > The readq() and writeq() helpers are available in the > > asm-generic/io-64-nonatomic-hi-lo.h and asm-generic/io-64-nonatomic > > -lo-hi.h > > headers. Replace custom implementation by the generic helpers. > > > > Liam, any comments on this? Looks good from me, but it's one of Vinod's drivers (now added to CC). Liam > > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > > --- > > sound/soc/intel/atom/sst/sst_pvt.c | 16 ++++++---------- > > sound/soc/intel/common/sst-dsp.c | 9 ++++----- > > 2 files changed, 10 insertions(+), 15 deletions(-) > > > > diff --git a/sound/soc/intel/atom/sst/sst_pvt.c > > b/sound/soc/intel/atom/sst/sst_pvt.c > > index adb32fe..6cc222d 100644 > > --- a/sound/soc/intel/atom/sst/sst_pvt.c > > +++ b/sound/soc/intel/atom/sst/sst_pvt.c > > @@ -31,7 +31,10 @@ > > #include <sound/pcm.h> > > #include <sound/soc.h> > > #include <sound/compress_driver.h> > > + > > +#include <asm-generic/io-64-nonatomic-lo-hi.h> > > #include <asm/platform_sst_audio.h> > > + > > #include "../sst-mfld-platform.h" > > #include "sst.h" > > #include "../../common/sst-dsp.h" > > @@ -49,25 +52,18 @@ u32 sst_shim_read(void __iomem *addr, int offset) > > > > u64 sst_reg_read64(void __iomem *addr, int offset) > > { > > - u64 val = 0; > > - > > - memcpy_fromio(&val, addr + offset, sizeof(val)); > > - > > - return val; > > + return readq(addr + offset); > > } > > > > int sst_shim_write64(void __iomem *addr, int offset, u64 value) > > { > > - memcpy_toio(addr + offset, &value, sizeof(value)); > > + writeq(value, addr + offset); > > return 0; > > } > > > > u64 sst_shim_read64(void __iomem *addr, int offset) > > { > > - u64 val = 0; > > - > > - memcpy_fromio(&val, addr + offset, sizeof(val)); > > - return val; > > + return readq(addr + offset); > > } > > > > void sst_set_fw_state_locked( > > diff --git a/sound/soc/intel/common/sst-dsp.c > > b/sound/soc/intel/common/sst-dsp.c > > index a627236..5274482 100644 > > --- a/sound/soc/intel/common/sst-dsp.c > > +++ b/sound/soc/intel/common/sst-dsp.c > > @@ -22,6 +22,8 @@ > > #include <linux/io.h> > > #include <linux/delay.h> > > > > +#include <asm-generic/io-64-nonatomic-lo-hi.h> > > + > > #include "sst-dsp.h" > > #include "sst-dsp-priv.h" > > > > @@ -43,16 +45,13 @@ EXPORT_SYMBOL_GPL(sst_shim32_read); > > > > void sst_shim32_write64(void __iomem *addr, u32 offset, u64 value) > > { > > - memcpy_toio(addr + offset, &value, sizeof(value)); > > + writeq(value, addr + offset); > > } > > EXPORT_SYMBOL_GPL(sst_shim32_write64); > > > > u64 sst_shim32_read64(void __iomem *addr, u32 offset) > > { > > - u64 val; > > - > > - memcpy_fromio(&val, addr + offset, sizeof(val)); > > - return val; > > + return readq(addr + offset); > > } > > EXPORT_SYMBOL_GPL(sst_shim32_read64); > > >
On Thu, Sep 17, 2015 at 10:24:04AM +0100, Liam Girdwood wrote: > On Thu, 2015-09-17 at 11:57 +0300, Andy Shevchenko wrote: > > On Thu, 2015-08-27 at 15:09 +0300, Andy Shevchenko wrote: > > > The readq() and writeq() helpers are available in the > > > asm-generic/io-64-nonatomic-hi-lo.h and asm-generic/io-64-nonatomic > > > -lo-hi.h > > > headers. Replace custom implementation by the generic helpers. > > > > > > > Liam, any comments on this? > > Looks good from me, but it's one of Vinod's drivers (now added to CC). Please do test this on BYT/BSW as well, otherwise looks good Acked-by: Vinod Koul <vinod.koul@intel.com>
On Thu, 2015-09-17 at 17:11 +0530, Vinod Koul wrote: > On Thu, Sep 17, 2015 at 10:24:04AM +0100, Liam Girdwood wrote: > > On Thu, 2015-09-17 at 11:57 +0300, Andy Shevchenko wrote: > > > On Thu, 2015-08-27 at 15:09 +0300, Andy Shevchenko wrote: > > > > The readq() and writeq() helpers are available in the > > > > asm-generic/io-64-nonatomic-hi-lo.h and asm-generic/io-64 > > > > -nonatomic > > > > -lo-hi.h > > > > headers. Replace custom implementation by the generic helpers. > > > > > > > > > > Liam, any comments on this? > > > > Looks good from me, but it's one of Vinod's drivers (now added to > > CC). > > Please do test this on BYT/BSW as well, otherwise looks good Tested both patches (another one just recently sent) on ASuS T100TA. > > Acked-by: Vinod Koul <vinod.koul@intel.com> >
On Fri, 2015-09-18 at 15:07 +0300, Andy Shevchenko wrote: > On Thu, 2015-09-17 at 17:11 +0530, Vinod Koul wrote: > > On Thu, Sep 17, 2015 at 10:24:04AM +0100, Liam Girdwood wrote: > > > On Thu, 2015-09-17 at 11:57 +0300, Andy Shevchenko wrote: > > > > On Thu, 2015-08-27 at 15:09 +0300, Andy Shevchenko wrote: > > > > > The readq() and writeq() helpers are available in the > > > > > asm-generic/io-64-nonatomic-hi-lo.h and asm-generic/io-64 > > > > > -nonatomic > > > > > -lo-hi.h > > > > > headers. Replace custom implementation by the generic > > > > > helpers. > > > > > > > > > > > > > Liam, any comments on this? > > > > > > Looks good from me, but it's one of Vinod's drivers (now added to > > > CC). > > > > Please do test this on BYT/BSW as well, otherwise looks good > > Tested both patches (another one just recently sent) on ASuS T100TA. Do I understand correctly I have to resend with Mark in Cc? > > > > > Acked-by: Vinod Koul <vinod.koul@intel.com> > > >
diff --git a/sound/soc/intel/atom/sst/sst_pvt.c b/sound/soc/intel/atom/sst/sst_pvt.c index adb32fe..6cc222d 100644 --- a/sound/soc/intel/atom/sst/sst_pvt.c +++ b/sound/soc/intel/atom/sst/sst_pvt.c @@ -31,7 +31,10 @@ #include <sound/pcm.h> #include <sound/soc.h> #include <sound/compress_driver.h> + +#include <asm-generic/io-64-nonatomic-lo-hi.h> #include <asm/platform_sst_audio.h> + #include "../sst-mfld-platform.h" #include "sst.h" #include "../../common/sst-dsp.h" @@ -49,25 +52,18 @@ u32 sst_shim_read(void __iomem *addr, int offset) u64 sst_reg_read64(void __iomem *addr, int offset) { - u64 val = 0; - - memcpy_fromio(&val, addr + offset, sizeof(val)); - - return val; + return readq(addr + offset); } int sst_shim_write64(void __iomem *addr, int offset, u64 value) { - memcpy_toio(addr + offset, &value, sizeof(value)); + writeq(value, addr + offset); return 0; } u64 sst_shim_read64(void __iomem *addr, int offset) { - u64 val = 0; - - memcpy_fromio(&val, addr + offset, sizeof(val)); - return val; + return readq(addr + offset); } void sst_set_fw_state_locked( diff --git a/sound/soc/intel/common/sst-dsp.c b/sound/soc/intel/common/sst-dsp.c index a627236..5274482 100644 --- a/sound/soc/intel/common/sst-dsp.c +++ b/sound/soc/intel/common/sst-dsp.c @@ -22,6 +22,8 @@ #include <linux/io.h> #include <linux/delay.h> +#include <asm-generic/io-64-nonatomic-lo-hi.h> + #include "sst-dsp.h" #include "sst-dsp-priv.h" @@ -43,16 +45,13 @@ EXPORT_SYMBOL_GPL(sst_shim32_read); void sst_shim32_write64(void __iomem *addr, u32 offset, u64 value) { - memcpy_toio(addr + offset, &value, sizeof(value)); + writeq(value, addr + offset); } EXPORT_SYMBOL_GPL(sst_shim32_write64); u64 sst_shim32_read64(void __iomem *addr, u32 offset) { - u64 val; - - memcpy_fromio(&val, addr + offset, sizeof(val)); - return val; + return readq(addr + offset); } EXPORT_SYMBOL_GPL(sst_shim32_read64);
The readq() and writeq() helpers are available in the asm-generic/io-64-nonatomic-hi-lo.h and asm-generic/io-64-nonatomic-lo-hi.h headers. Replace custom implementation by the generic helpers. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- sound/soc/intel/atom/sst/sst_pvt.c | 16 ++++++---------- sound/soc/intel/common/sst-dsp.c | 9 ++++----- 2 files changed, 10 insertions(+), 15 deletions(-)