summaryrefslogtreecommitdiff
path: root/sound
AgeCommit message (Collapse)Author
2017-02-03ALSA: x86: Drop unused fields from snd_intelhad structTakashi Iwai
Also change the flag_underrun to bool to be clearer. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Remove indirect call of snd_pcm_period_elapsed()Takashi Iwai
Again another indirect call... Let's straighten it up. Also define the had_stream field with a proper type instead of a void pointer. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Fix for CONFIG_PM=nTakashi Iwai
The direct access to power.runtime_status is taboo, let's use a helper macro to avoid the compile error with CONFIG_PM=n. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Replace pr_xxx() with dev_xxx()Takashi Iwai
dev_xxx() helpers give a tidier output in general. While we're at it, remove many useless debug prints (e.g. the ones at each function entry), replace some too verbose errors with debugs, and use WARN_ON() for some serious errors. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Fold intel_hdmi_audio_if.c into main fileTakashi Iwai
As the very last step, we fold intel_hdmi_audio_if.c into the main file, intel_hdmi_audio.c. This is merely a cleanup, and no functional change. By this move, we can mark all functions and variables as static, which allows the compiler more optimizations. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Flatten two abstraction layersTakashi Iwai
This is the final stage for a big clean-up series. Here we flatten the two layers into one. Formerly, the implementation was split to HDMI "shell" that talks with the platform device, and HDMI audio part that communicates via caps and other event handlers. All these would be good if there were multiple instantiations or if there were data protection. But neither are true in our case. That said, it'll be easier to have a flat driver structure in the end. In this patch, the former struct hdmi_lpe_audio_ctx is forged into the existing struct snd_intelhad. The latter has already a few members that are basically the copy from the former. Only a few new members for the lowlevel I/O are added by this change. Then, the had_get_caps() and had_set_caps() are simply replaced with the direct calls to copy the data in the struct fields. Also, the had_event_handler() calls are replaced with the direct call for each event as well. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Drop unused hdmi_audio_query()Takashi Iwai
It's used nowhere. Kill it. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Call snd_card_register() at the endTakashi Iwai
The card registration should be done at the last stage of the probe procedure. Otherwise user-space may access to the device before the whole initialization is done. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Check platform_data earlierTakashi Iwai
Just a minor optimization; check the presence of platform_data earlier in the probe function before actually starting allocation, which makes the error path easier. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Drop superfluous CHT PCI ID checkTakashi Iwai
Since the config base offset is now set per pipe id, we don't have to check Cherry Trail PCI IDs any longer. Currently it's used only for debug prints. Let's drop it. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Embed snd_intelhad into snd_cardTakashi Iwai
Instead of allocating snd_intelhad struct, use the card's private_data and embed it. It simplifies the code a lot. While we're at it, embed had_stream into snd_intelhad struct instead of individually allocating, and rename had_pvt_data to a bit more specific name, had_stream_data. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Move dma_mask debug print into intel_hdmi_lpe_audio.cTakashi Iwai
It belongs to the right place. And, remove a few sanity checks (e.g. NULL card) and debug prints as well. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Drop unused hw_silence fieldTakashi Iwai
It's nowhere used. Let's drop it. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Move the global underrun_count to struct snd_intelhadTakashi Iwai
The last one is in intel_hdmi_audio.c, underrun_count: this can be embedded in snd_intelhad object. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Drop global ELD copyTakashi Iwai
Similarly like the previous patch, drop the global variable to keep the ELD copy. It can be embedded in hdmi_lpe_audio_ctx as well. And this makes easier to code, it's just a memcpy(), after all. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Drop global hlpe_stateTakashi Iwai
Now it's the turn to drop the global hlpe_state variable. It can be gracefully embedded in hdmi_lpe_audio_ctx struct. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Drop the global platform device referenceTakashi Iwai
Instead of referring to the global hlpe_pdev variable, pass the platform device object to each function properly. Accessing to the global object is really ugly and error-prone. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Drop unused mid_hdmi_audio_is_busy()Takashi Iwai
The function is nowhere used. Kill it. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Fix possible stale interrupt callsTakashi Iwai
Registering the irq handler at the too early place may cause a system stall because the irq handler may be triggered before the other initializations. Move the irq handler registration to the later point. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Call event callback directlyTakashi Iwai
Currently the driver calls the event callback stored in its ctx pointer, but it's obviously inefficient. Replace it with the direct calls. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Drop useless mutex at probeTakashi Iwai
had_mutex is (supposedly) used to protect the concurrent calls of hdmi_audio_probe(). But we may have only one device at most, so it's utterly useless. Drop it. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Handle the error from hdmi_audio_probe() properlyTakashi Iwai
The error from hdmi_audio_probe() wasn't handled properly, and it may leave some resources leaked or mapped. Fix it and also clean up the error paths. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Pass snd_intelhad object to helpersTakashi Iwai
For reducing the global variable reference, keep snd_intelhad object in the context and pass it to each helper. It's a preliminary change for further cleanup. This also includes the simplification of the probe procedure: the LPE platform driver directly gets the created snd_intelhad object by hdmi_audio_probe(), and passes it to each helper and destructor, hdmi_audio_remove(). The hdmi_audio_probe() function doesn't call the back-registration any longer, which is fairly useless. The LPE platform driver initializes the stuff instead at the right place, and calls the wq after the object creation in the probe function itself. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Drop snd_intel_had_interface indirect callsTakashi Iwai
Yet another indirection is killed: at this time, it's snd_intel_had_interface. It contains also the name string, but it's nowhere used, thus we can kill it, too. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Replace indirect query_ops with direct callsTakashi Iwai
Like the previous patch, this replaces the indirect query_ops calls via direct function calls. They are only get_caps and set_caps, so fairly straightforward at this time. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Replace indirect register ops with direct callsTakashi Iwai
Now about the indirect register ops: they are replaced with direct calls, too. The read / write / modify ops are simply replaced with the corresponding functions. The difference is that we calculate the offset inside the function now. So all the had_config_offset references in the caller side are dropped. This also simplifies the DP-audio check in hdmi_audio_write() and hdmi_audio_rmw(). The hdmi_audio_get_register_base is dropped since it's no longer used when the base address and config offset are referred in the read/write functions. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Drop indirect calls of had_opsTakashi Iwai
We have only a single implementation of had_ops, hence there is no merit to use the indirect calls at all. Let's replace it with the direct calls -- which allows the compiler more optimizations. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Remove v1 ops and structsTakashi Iwai
The v1 code refers to Medfield/Clovertrail. It's not used at all in the current driver, and probably won't be ever. Let's clean this up, then we can go to the next stage of cleanup tasks. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ALSA: x86: Don't set PCM state to DISCONNECTEDTakashi Iwai
Theoretically setting the state to SNDRV_PCM_STATE_DISCONNECTED is correct. But, unfortunately, PA gets confused by this action, and it won't re-probe the device after HDMI/DP is re-plugged. (It reprobes only when the card itself is recreated.) As a workaround, set SNDRV_PCM_STATE_SETUP instead. Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-03ASoC: sun4i-i2s: Add quirks to handle a31 compatibleMylène Josserand
Some SoCs have a reset line that must be asserted/deasserted. This patch adds a quirk to handle the new compatible "allwinner,sun6i-a31-i2s" which will deassert the reset line on probe function and assert it on remove's one. This new compatible is useful in case of A33 codec driver, for example. Signed-off-by: Mylène Josserand <mylene.josserand@free-electrons.com> Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2017-02-03ASoC: Add sun8i digital audio codecMylène Josserand
Add the sun8i audio codec which handles the digital register of A33 codec. The driver handles only the basic playback from the DAC to headphones. All other features (microphone, capture, etc) will be added later. Signed-off-by: Mylène Josserand <mylene.josserand@free-electrons.com> Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2017-02-03ASoC: sun8i-codec-analog: Add amplifier event to fix first delayMylène Josserand
When playing a sound for the first time, a short delay, where the audio file is not played, can be noticed. On a second play (right after), the sound is played correctly. If we wait a short time (~5 sec which corresponds to the aplay timeout), the delay is back. This patch fixes it by using an event on headphone amplifier. It allows to keep the amplifier enable while playing a sound. A delay of 700ms allows to wait that the amplifier is powered-up before playing the sound. Signed-off-by: Mylène Josserand <mylene.josserand@free-electrons.com> Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2017-02-03ASoC: rsnd: fixup reset timing of sync convert_rateKuninori Morimoto
Sync convert rate settings should be availabled *after* Playing. Thus, src->sync should be reset first of init function. Otherwise, it will set remaining settings when it start playing. This patch fixes it. Thanks to Yokoyama-san Reported-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2017-02-02Merge branch 'topic/intel-lpe-audio-dp' into for-nextTakashi Iwai
Merged more patches for Intel LPE audio driver, now to support DP audio.
2017-02-01ASoC: cht-bsw-rt5645: fix unused variable compiler warningPierre-Louis Bossart
Missed unused variable in previous changes, oops. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2017-02-01ASoC: rt5645: fix error handling for gpio detectionPierre-Louis Bossart
Optional gpio handling should not cause an error status and prevent probing if it's missing. Remove error return for -ENOENT case and move error message to dev_info Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2017-02-01ASoC: omap-mcbsp: Add PM QoS support for McBSP to prevent glitchesMatt Ranostay
We can get audio errors if hitting deeper idle states on omaps: [alsa.c:230] error: Fatal problem with alsa output, error -5. [audio.c:614] error: Error in writing audio (Input/output error?)! This seems to happen with off mode idle enabled as power for the whole SoC may get cut off between filling the McBSP fifo using DMA. While active DMA blocks deeper idle states in hardware, McBSP activity does not seem to do so. Basing the QoS latency calculation on the FIFO size, threshold, sample rate, and channels. Based on the original patch by Tony Lindgren Link: https://patchwork.kernel.org/patch/9305867/ Signed-off-by: Matt Ranostay <matt@ranostay.consulting> Signed-off-by: Liam Breck <kernel@networkimprov.net> Tested-by: Tony Lindgren <tony@atomide.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2017-02-01drm/i915: Pass platform device to LPE audio notifierTakashi Iwai
This allows the LPE HDMI driver to clean up its global variable reference. Also drop to pass the eld pointer because the connection status and the ELD bytes can be retrieved from the attached pdata. Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-01ALSA: x86: Use config base depending on the pipePierre-Louis Bossart
Now the pipe that is being used is passed over i915 notification, we can re-setup the relevant register offset depending on pipe assignments during hotplug. This allows playback on single port machines such Zotac Pi330 or dual-port machines such as Dell Wyse 3040 box Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-02-01ALSA: x86: intel_hdmi: add definitions and logic for DP audioPierre-Louis Bossart
Imported from legacy patches Note: the new code doesn't assume a modified ELD but an explicit notification that DP is present. It appears that the i915 code does change the ELD so we could use the ELD-based tests to check for DP audio Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-01-31ASoC: qcom: Drop __func__ usage from log printsBjorn Andersson
The combination of dev_err() and __func__ make most of these log prints over 100 chars long. Remove the usage of __func__ to clean the kernel log and as the usage is not necessary to identify the individual log prints. Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
2017-01-31ASoC: qcom: lpass-cpu: Remove unnecessary clock checksBjorn Andersson
Clean up the clock calling code by removing numerous IS_ERR() checks by just assigning the clock NULL; as this turn all used functions in the clk API to nops. Also include the word "optional" in the error message when failing to acquire the optional osr clocks. Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
2017-01-31sound: oss/ad1848: remove some dead codeDan Carpenter
We never use the irq2dev[] array so we can remove this assignment. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-01-31ASoC: wm8741: Remove unused WM8741_NUM_RATES macroSergej Sawazki
This macro is unused since commit e369bd006fd6 ("ASoC: wm8741: Allow master clock switching"). Signed-off-by: Sergej Sawazki <ce3a@gmx.de> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2017-01-31ASoC: mt8173-max98090: remove the call to snd_soc_jack_add_pins.Enric Balletbo i Serra
The snd_soc_card_jack_new function can call snd_soc_jack_add_pins for you, so pass directly the pins struct when you create the new jack. Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2017-01-31ASoC: Intel: cht-bsw-rt5645: fix DAI formatsPierre-Louis Bossart
Remove default and set I2S mode correctly both on codec and cpu sides Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2017-01-31ASoC: Intel: add support for ALC3270 codecPierre-Louis Bossart
Use ACPI ID 10EC3270 to load machine driver for cht-bsw-rt5645 and add reference to 3270 to use the rt5645 mode Tested on Asus T100HA Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2017-01-31ASoC: Intel: cht-bsw-rt5645: select ASRC source based on routing quirkPierre-Louis Bossart
Some platforms use AIF2, use routing information to set ASRC as needed Suggested-by: Bard Liao <bardliao@realtek.com> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=95681 Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2017-01-31ASoC: Intel: cht-bsw-rt5645: add quirks for SSP0/AIF1/AIF2 routingPierre-Louis Bossart
This driver may be used on Baytrail CR platforms where SSP2 is not available. Add quirks and routing detection based on work done for RT5640. Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2017-01-31ASoc: rt5645: add ACPI ID 10EC3270Pierre-Louis Bossart
ALC3270 is a low-cost version of RT5645, add ACPI ID to enable probe and use rt5645 codec driver Tested on Asus T100HA Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>