diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-07-09 09:59:43 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-07-09 09:59:43 -0700 | 
| commit | 4cdd5f9186bbe80306e76f11da7ecb0b9720433c (patch) | |
| tree | 23c2f39933cd8253a65385eab00405beaf602f01 /sound/hda/hdac_controller.c | |
| parent | 2d41ef5432b76ae90dc0db93026f1d981f874ec4 (diff) | |
| parent | 0dcb4efb1095d0a1f5f681c2b94e98b009cc5d77 (diff) | |
Merge tag 'sound-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound updates from Takashi Iwai:
 "Many updates in this development cycle are found in ASoC where it got
  a wide range of changes for the continued refactoring.
  Some highlights are below.
  ASoC:
   - Continued refactoring work by Morimoto-san toward the full
     componentization; the changes are seen allover the places
   - Support for force disconnecting muxes in DAPM
   - Continued development of ASoC Intel SOF stuff
   - New drivers for Cirrus Logic CS47L35, CS47L85 and CS47L90, Conexant
     CX2072X, Realtek RT1011 and RT1308
  HD-audio:
   - More fixes and adjustments for ASoC SOF HD-audio
   - Fix for resume problem on some Realtek codecs
  USB-audio:
   - A few fixes for the issues reported by syzbot USB fuzzer
   - Fix for UAC2 extension unit parser
   - Quirks for Line6 Helix, Emgaic Unitor 8
  FireWire:
   - Lots of code refactoring and fixes in most of its components"
* tag 'sound-5.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (626 commits)
  ALSA: firewire-lib: code refactoring for local variables
  ALSA: firewire-lib: code refactoring for post operation to data block counter
  ALSA: firewire-lib: code refactoring for error path of parser for CIP header
  ALSA: firewire-lib: fix different data block counter between probed event and transferred isochronous packet
  ALSA: firewire-lib: fix initial value of data block count for IR context without CIP_DBC_IS_END_EVENT
  ALSA: firewire-lib/fireface: fix initial value of data block counter for IR context with CIP_NO_HEADER
  ALSA: firewire-lib: fix invalid length of rx packet payload for tracepoint events
  ALSA: usb-audio: fix Line6 Helix audio format rates
  firewire-motu: fix wrong reference count for stream functionality at error path of rawmidi interface
  ALSA: firewire-digi00x: fix wrong reference count for stream functionality at error path of rawmidi interface
  ALSA: dice: fix wrong reference count for stream functionality at error path of rawmidi interface
  ALSA: oxfw: fix wrong reference count for stream functionality at error path of rawmidi interface
  ALSA: fireworks: fix wrong reference count for stream functionality at error path of rawmidi interface
  ALSA: bebob: fix wrong reference count for stream functionality at error path of rawmidi interface
  ASoC: SOF: Intel: implement runtime idle for CNL/APL
  ASoC: SOF: add runtime idle callback
  ASoC: hdac_hdmi: report codec link up/down status to bus
  ASoC: SOF: debug: fix possible memory leak in sof_dfsentry_write()
  ASoC: sunxi: sun50i-codec-analog: Add earpiece
  ASoC: rt5665: remove redundant assignment to variable idx
  ...
Diffstat (limited to 'sound/hda/hdac_controller.c')
| -rw-r--r-- | sound/hda/hdac_controller.c | 7 | 
1 files changed, 4 insertions, 3 deletions
diff --git a/sound/hda/hdac_controller.c b/sound/hda/hdac_controller.c index b02f74528b66..3b0110545070 100644 --- a/sound/hda/hdac_controller.c +++ b/sound/hda/hdac_controller.c @@ -79,6 +79,8 @@ void snd_hdac_bus_init_cmd_io(struct hdac_bus *bus)  	snd_hdac_chip_writew(bus, RINTCNT, 1);  	/* enable rirb dma and response irq */  	snd_hdac_chip_writeb(bus, RIRBCTL, AZX_RBCTL_DMA_EN | AZX_RBCTL_IRQ_EN); +	/* Accept unsolicited responses */ +	snd_hdac_chip_updatel(bus, GCTL, AZX_GCTL_UNSOL, AZX_GCTL_UNSOL);  	spin_unlock_irq(&bus->reg_lock);  }  EXPORT_SYMBOL_GPL(snd_hdac_bus_init_cmd_io); @@ -241,6 +243,8 @@ int snd_hdac_bus_get_response(struct hdac_bus *bus, unsigned int addr,  	for (loopcounter = 0;; loopcounter++) {  		spin_lock_irq(&bus->reg_lock); +		if (bus->polling_mode) +			snd_hdac_bus_update_rirb(bus);  		if (!bus->rirb.cmds[addr]) {  			if (res)  				*res = bus->rirb.res[addr]; /* the last value */ @@ -415,9 +419,6 @@ int snd_hdac_bus_reset_link(struct hdac_bus *bus, bool full_reset)  		return -EBUSY;  	} -	/* Accept unsolicited responses */ -	snd_hdac_chip_updatel(bus, GCTL, AZX_GCTL_UNSOL, AZX_GCTL_UNSOL); -  	/* detect codecs */  	if (!bus->codec_mask) {  		bus->codec_mask = snd_hdac_chip_readw(bus, STATESTS);  | 
