[alsa-devel] [PATCH v6 1/3] ALSA: hdac_ext: add extended HDA bus
Takashi Iwai
tiwai at suse.de
Tue Jun 9 12:37:48 CEST 2015
At Tue, 9 Jun 2015 15:36:51 +0530,
Vinod Koul wrote:
>
> On Mon, Jun 08, 2015 at 05:40:46PM +0200, Takashi Iwai wrote:
> > At Mon, 8 Jun 2015 21:00:14 +0530,
> > Vinod Koul wrote:
> > >
> > > On Mon, Jun 08, 2015 at 03:38:22PM +0530, Vinod Koul wrote:
> > > > > > +#define snd_hdac_ext_bus_ppcap_updateb(dev, reg, mask, val) \
> > > > > > + snd_hdac_ext_bus_ppcap_writeb(dev, reg, \
> > > > > > + (snd_hdac_ext_bus_ppcap_readb(dev, reg) & \
> > > > > > + ~(mask)) | (val))
> > > > >
> > > > > It's not necessarily good to wrap all with such macros.
> > > > > For azx_write*(), I kept them as is for reducing the amount of useless
> > > > > code rewrites. But for new codes, I don't think it's always worth...
> > > > Actually while updating the patch for ext I was wondering about this too.
> > > >
> > > > So we cna remove these and use snd_hdac_chip_writel/w/b here
> > > As Jeeja pointed we can't use snd_hdac_chip_writel as we need to use a
> > > different base. So we cna move this to use plain writel only
> > >
> > > Any other ideas?
> >
> > I don't think you need to access via io_ops redirection as these are
> > SKL specific registers. Use plain readl()/writel() and keep things
> > as simple as possible.
> >
> > (And better to avoid w and b variants.)
> Okay I have removed all these macros but ended up defining one generic update
> macros (most of the places we are doing read and write, so better to use
> update macro
>
> /* update register macro */
> #define snd_hdac_updatel(addr, reg, mask, val) \
> writel(addr, reg, (readl(addr, reg) & ~(mask)) | (val))
>
> yes its updatel to signify that it uses writel and readl
>
> Let me know if you are fine with this approach
This looks good to me.
thanks,
Takashi
More information about the Alsa-devel
mailing list