17 Sep
2015
17 Sep
'15
1:41 p.m.
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
--
~Vinod
>
> 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);
> > >
> >
>