From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: linux-next: manual merge of the sound tree with the drm tree Date: Fri, 30 Aug 2013 08:16:53 +0200 Message-ID: References: <20130830130355.02cefec7e2308390a506fd1d@canb.auug.org.au> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Return-path: In-Reply-To: <20130830130355.02cefec7e2308390a506fd1d@canb.auug.org.au> Sender: linux-kernel-owner@vger.kernel.org To: Stephen Rothwell Cc: linux-next@vger.kernel.org, linux-kernel@vger.kernel.org, Dave Airlie , Wang Xingchao List-Id: linux-next.vger.kernel.org At Fri, 30 Aug 2013 13:03:55 +1000, Stephen Rothwell wrote: > > Hi Takashi, > > Today's linux-next merge of the sound tree got a conflict in > sound/pci/hda/hda_intel.c between commit 246efa4a072f ("snd/hda: add > runtime suspend/resume on optimus support (v4)") from the drm tree and > commit 7d4f606c50ff ("ALSA: hda - WAKEEN feature enabling for runtime > pm") from the sound tree. > > I fixed it up (see below) and can carry the fix as necessary (no action > is required). Thanks! The conflict fix looks correct. Takashi > > -- > Cheers, > Stephen Rothwell sfr@canb.auug.org.au > > diff --cc sound/pci/hda/hda_intel.c > index bf5e58e,c6c9829..0000000 > --- a/sound/pci/hda/hda_intel.c > +++ b/sound/pci/hda/hda_intel.c > @@@ -2975,12 -2971,10 +2975,16 @@@ static int azx_runtime_suspend(struct d > struct snd_card *card = dev_get_drvdata(dev); > struct azx *chip = card->private_data; > > + if (chip->disabled) > + return 0; > + > + if (!(chip->driver_caps & AZX_DCAPS_PM_RUNTIME)) > + return 0; > + > + /* enable controller wake up event */ > + azx_writew(chip, WAKEEN, azx_readw(chip, WAKEEN) | > + STATESTS_INT_MASK); > + > azx_stop_chip(chip); > azx_enter_link_reset(chip); > azx_clear_irq_pending(chip); > @@@ -2993,17 -2987,31 +2997,37 @@@ static int azx_runtime_resume(struct de > { > struct snd_card *card = dev_get_drvdata(dev); > struct azx *chip = card->private_data; > + struct hda_bus *bus; > + struct hda_codec *codec; > + int status; > > + if (chip->disabled) > + return 0; > + > + if (!(chip->driver_caps & AZX_DCAPS_PM_RUNTIME)) > + return 0; > + > if (chip->driver_caps & AZX_DCAPS_I915_POWERWELL) > hda_display_power(true); > + > + /* Read STATESTS before controller reset */ > + status = azx_readw(chip, STATESTS); > + > azx_init_pci(chip); > azx_init_chip(chip, 1); > + > + bus = chip->bus; > + if (status && bus) { > + list_for_each_entry(codec, &bus->codec_list, list) > + if (status & (1 << codec->addr)) > + queue_delayed_work(codec->bus->workq, > + &codec->jackpoll_work, codec->jackpoll_interval); > + } > + > + /* disable controller Wake Up event*/ > + azx_writew(chip, WAKEEN, azx_readw(chip, WAKEEN) & > + ~STATESTS_INT_MASK); > + > return 0; > } >