On Wed, Nov 21, 2018 at 10:48:57AM -0600, Pierre-Louis Bossart wrote: > > On 11/21/18 8:29 AM, Andy Shevchenko wrote: > > On Tue, Nov 20, 2018 at 03:36:40PM -0600, Pierre-Louis Bossart wrote: > > > Check immediately if the DSP can be found, bail and avoid doing inits > > > to enable legacy fallback without delay. > > It does slightly more than described. Please do either remove unrelated > > changes, or fill the gap in the commit message. In the latter case it may > > require to split patch to two. > ok, maybe I should change the commit message since there are really two test > conditions: DSP can be found and DSP streams found. The code really does > just that, nothing else.
How shuffling DMA mask related to any? > > > Signed-off-by: Pierre-Louis Bossart <[email protected]> > > > --- > > > sound/soc/intel/skylake/skl.c | 26 +++++++++++++++++--------- > > > 1 file changed, 17 insertions(+), 9 deletions(-) > > > > > > diff --git a/sound/soc/intel/skylake/skl.c b/sound/soc/intel/skylake/skl.c > > > index df36b8fe6d5e..1d7146773d19 100644 > > > --- a/sound/soc/intel/skylake/skl.c > > > +++ b/sound/soc/intel/skylake/skl.c > > > @@ -931,6 +931,12 @@ static int skl_first_init(struct hdac_bus *bus) > > > snd_hdac_bus_parse_capabilities(bus); > > > + /* check if dsp is there */ > > > + if (!bus->ppcap) { > > > + dev_err(bus->dev, "bus ppcap not set, DSP not present?\n"); > > > + return -ENODEV; > > > + } > > > + > > > if (skl_acquire_irq(bus, 0) < 0) > > > return -EBUSY; > > > @@ -940,23 +946,25 @@ static int skl_first_init(struct hdac_bus *bus) > > > gcap = snd_hdac_chip_readw(bus, GCAP); > > > dev_dbg(bus->dev, "chipset global capabilities = 0x%x\n", gcap); > > > - /* allow 64bit DMA address if supported by H/W */ > > > - if (!dma_set_mask(bus->dev, DMA_BIT_MASK(64))) { > > > - dma_set_coherent_mask(bus->dev, DMA_BIT_MASK(64)); > > > - } else { > > > - dma_set_mask(bus->dev, DMA_BIT_MASK(32)); > > > - dma_set_coherent_mask(bus->dev, DMA_BIT_MASK(32)); > > > - } > > > - > > > /* read number of streams from GCAP register */ > > > cp_streams = (gcap >> 8) & 0x0f; > > > pb_streams = (gcap >> 12) & 0x0f; > > > - if (!pb_streams && !cp_streams) > > > + if (!pb_streams && !cp_streams) { > > > + dev_err(bus->dev, "no streams found in GCAP definitions?\n"); > > > return -EIO; > > > + } > > > bus->num_streams = cp_streams + pb_streams; > > > + /* allow 64bit DMA address if supported by H/W */ > > > + if (!dma_set_mask(bus->dev, DMA_BIT_MASK(64))) { > > > + dma_set_coherent_mask(bus->dev, DMA_BIT_MASK(64)); > > > + } else { > > > + dma_set_mask(bus->dev, DMA_BIT_MASK(32)); > > > + dma_set_coherent_mask(bus->dev, DMA_BIT_MASK(32)); > > > + } > > > + > > > /* initialize streams */ > > > snd_hdac_ext_stream_init_all > > > (bus, 0, cp_streams, SNDRV_PCM_STREAM_CAPTURE); > > > -- > > > 2.17.1 > > > -- With Best Regards, Andy Shevchenko

