- 26 10月, 2011 1 次提交
-
-
由 Takashi Iwai 提交于
When 5.1 or more headphone or speaker pins are provided, the parser still takes as is without fixing the order of channel mapping, which leads in the unexpected strange channel order by surround outputs. This patch fixes the issue by applying the same fix-up not only to line_out_pins[] but also hp_pins[] and speaker_pins[]. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 06 10月, 2011 2 次提交
-
-
由 Takashi Iwai 提交于
Since hda_proc.c is now the only user of snd_print_pcm_rates(), better to put it back locally to hda_proc.c and revert to the old style. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Pierre-Louis Bossart 提交于
SAD sampling rate information reported in /proc/asound/cardX/eldX is incorrect due to a mismatch between HDA and HDMI frequencies. Add new routine to provide relevant values. Signed-off-by: NPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 05 10月, 2011 1 次提交
-
-
由 David Henningsson 提交于
Similar to Line Out, these constants form the base for future patches enabling input jack reporting for Line in jacks. Signed-off-by: NDavid Henningsson <david.henningsson@canonical.com> Acked-by: NMark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 27 9月, 2011 1 次提交
-
-
由 Takashi Iwai 提交于
Since really_cleanup_stream() is called from both purity_inactive_streams() and hda_cleanup_all_streams(), the verbs to clear the PCM channel and format may be called multiple times unnecessarily. This patch adds checks to skip these unneeded verbs. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 13 9月, 2011 1 次提交
-
-
由 Takashi Iwai 提交于
The recursive search of widget connections in snd_hda_get_conn_index() must be terminated at the pin and the audio-out widgets. Otherwise you'll get "too deep connection" warnings unnecessarily. Reported-by: NFrancis Moreau <francis.moro@gmail.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 24 8月, 2011 1 次提交
-
-
由 Takashi Iwai 提交于
For supporting both the multiple headphones and the multiple speakers, add the new field in struct hda_multi_out, and evaluate in the standard setup functions. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 23 8月, 2011 1 次提交
-
-
由 Takashi Iwai 提交于
... and add a new bit-flags argument to specify the behavior of the function. The older function is kept as is (as a wrapper). Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 19 8月, 2011 1 次提交
-
-
由 Takashi Iwai 提交于
In snd_hda_parse_pin_def_config(), we checked the associated number of speaker pins and accepts only one number exclusively. But many BIOS seem to give different assoc number for surround speakers, thus we'd better to accept all speaker pins no matter which assoc number, and sort like done for the headphone pins. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 15 8月, 2011 1 次提交
-
-
由 Takashi Iwai 提交于
Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 09 8月, 2011 1 次提交
-
-
由 Takashi Iwai 提交于
Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 04 8月, 2011 1 次提交
-
-
由 Takashi Iwai 提交于
Add a few tracepoints to HD-audio driver. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 26 7月, 2011 4 次提交
-
-
由 Takashi Iwai 提交于
The procedure for codec D-state change may have exceptional cases depending on the codec chip, such as a longer delay or suppressing D3. This patch adds a new codec ops, set_power_state() to override the system default function. For ease of porting, snd_hda_codec_set_power_to_all() helper function is extracted from the default set_power_state() function. As an example, the Conexant codec-specific delay is removed from the default routine but moved to patch_conexant.c. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
Add a new ops, post_suspend(), which is called after suspend() ops is performed. This is called only in the case of the real PM suspend, and the codec driver can use this for further changing of D-state or clearing the LED, etc. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
It makes little sense to enable power-saving without PM. This removes SND_HDA_NEEDS_RESUME define so that we can use CONFIG_PM in all places. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Vitaliy Kulikov 提交于
Codec state is not restored immediately on resume but on the first access when power-save is enabled. That leads to an invalid mute led state after resume until either sound is played or some control is changed. This patch adds a possibility for a vendor specific patch to restore codec state immediately after resume if required. And it adds code to restore IDT codecs state immediately on resume on HP systems with mute led support. Signed-off-by: NVitaliy Kulikov <Vitaliy.Kulikov@idt.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 14 7月, 2011 1 次提交
-
-
由 Takashi Iwai 提交于
It was obviously wrong, grr.... Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 12 7月, 2011 3 次提交
-
-
由 Takashi Iwai 提交于
Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
In the codec proc outputs, read the raw connections instead of the cached connection list, i.e. proc files contain only raw values. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
Add a function to add/modify the connection-list cache entry. It'll be useful to fix a buggy hardware result. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 29 6月, 2011 1 次提交
-
-
由 Takashi Iwai 提交于
Create snd_hda_get_conn_index() helper function for obtaining the connection index of the widget. Replaced the similar codes used in several codec-drivers with this common helper. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 25 6月, 2011 1 次提交
-
-
由 Takashi Iwai 提交于
Add a new helper function snd_hda_get_conn_list(). Unlike snd_hda_get_connections(), this function doesn't copy the connection-list but gives the raw pointer for the cached list. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 24 6月, 2011 1 次提交
-
-
由 Takashi Iwai 提交于
Some BIOS set up the pin config wrongly as line-out although it's supposed to be a speaker out. In most cases, though, we can judge the validity by checking the connection type -- when it's FIXED, mostly it's an invalid line-out but a speaker. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 13 6月, 2011 1 次提交
-
-
由 Greg Thelen 提交于
If given a -1 cmd parameter then make_exec_verb() returns -1 without setting the res output value. Prior to this change snd_hda_codec_read() assumed that make_exec_verb() unconditionally set res regardless of the cmd value. This change explicitly checks the make_exec_verb() return value before consuming the potentially unset res value. Signed-off-by: NGreg Thelen <gthelen@google.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 06 6月, 2011 3 次提交
-
-
由 Stephen Warren 提交于
The general concept of this change is to create a PCM device for each pin widget instead of each converter widget. Whenever a PCM is opened, a converter is dynamically selected to drive that pin based on those available for muxing into the pin. The one thing this model doesn't support is a single PCM/converter sending audio to multiple pin widgets at once. Note that this means that a struct hda_pcm_stream's nid variable is set to 0 except between a stream's open and cleanup calls. The dynamic de-assignment of converters to PCMs occurs within cleanup, not close, in order for it to co-incide with when controller stream IDs are cleaned up from converters. While the PCM for a pin is not open, the pin is disabled (its widget control's PIN_OUT bit is cleared) so that if the currently routed converter is used to drive a different PCM/pin, that audio does not leak out over a disabled pin. We use the recently added SPDIF virtualization feature in order to create SPDIF controls for each pin widget instead of each converter widget, so that state is specific to a PCM. In order to support this, a number of more mechanical changes are made: * s/nid/pin_nid/ or s/nid/cvt_nid/ in many places in order to make it clear exactly what the code is dealing with. * We now have per_pin and per_cvt arrays in hdmi_spec to store relevant data. In particular, we store a converter's capabilities in the per_cvt entry, rather than relying on a combination of codec_pcm_pars and the struct hda_pcm_stream. * ELD-related workarounds were removed from hdmi_channel_allocation into hdmi_instrinsic in order to simplifiy infoframe calculations and remove HW dependencies. * Various functions only apply to a single pin, since there is now only 1 pin per PCM. For example, hdmi_setup_infoframe, hdmi_setup_stream. * hdmi_add_pin and hdmi_add_cvt are more oriented at pure codec parsing and data retrieval, rather than determining which pins/converters are to be used for creating PCMs. This is quite a large change; it may be appropriate to simply read the result of the patch rather than the diffs. Some small parts of the change might be separable into different patches, but I think the bulk of the change will probably always be one large patch. Hopefully the change isn't too opaque! This has been tested on: * NVIDIA GeForce 400 series discrete graphics card. This model has the classical 1:1:1 codec:converter:pcm widget model. Tested stereo PCM audio to a PC monitor that supports audio. * NVIDIA GeForce 520 discrete graphics card. This model is the new 1 codec n converters m pins m>n model. Tested stereo PCM audio to a PC monitor that supports audio. * NVIDIA GeForce 400 series laptop graphics chip. This model has the classical 1:1:1 codec:converter:pcm widget model. Tested stereo PCM, multi-channel PCM, and AC3 pass-through to an AV receiver. * Intel Ibex Peak laptop. This model is the new 1 codec n converters m pins m>n model. Tested stereo PCM, multi-channel PCM, and AC3 pass- through to an AV receiver. Note that I'm not familiar at all with AC3 pass-through. Hence, I may not have covered all possible mechanisms that are applicable here. I do know that my receiver definitely received AC3, not decoded PCM. I tested with mplayer's "-afm hwac3" and/or "-af lavcac3enc" options, and alsa a WAV file that I believe has AC3 content rather than PCM. I also tested: * Play a stream * Mute while playing * Stop stream * Play some other streams to re-assign the converter to a different pin, PCM, set of SPDIF controls, ... hence hopefully triggering cleanup for the original PCM. * Unmute original stream while not playing * Play a stream on the original pin/PCM. This was to test SPDIF control virtualization. Signed-off-by: NStephen Warren <swarren@nvidia.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Stephen Warren 提交于
The SPDIF output controls apply to converter widgets. A future change will create a PCM device per pin widget, and hence a set of SPDIF output controls per pin widget, for certain HDMI codecs. To support this, we need the ability to virtualize the SPDIF output controls. Specifically: * Controls can be "unassigned" from real hardware when a converter is not used for the PCM the control was created for. * Control puts only write to hardware when they are assigned. * Controls can be "assigned" to real hardware when a converter is picked to support output for a particular PCM. * When a converter is assigned, the hardware is updated to the cached configuration. Signed-off-by: NStephen Warren <swarren@nvidia.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Stephen Warren 提交于
Currently, the data that backs the kcontrols created by snd_hda_create_spdif_out_ctls is stored directly in struct hda_codec. When multiple sets of these controls are stored, they will all manipulate the same data, causing confusion. Instead, store an array of this data, one copy per converter, to isolate the controls. This patch would cause a behavioural change in the case where snd_hda_create_spdif_out_ctls was called multiple times for a single codec. As best I can tell, this is never the case for any codec. This will be relevant at least for some HDMI audio codecs, such as the NVIDIA GeForce 520 and Intel Ibex Peak. A future change will modify the driver's handling of those codecs to create multiple PCMs per codec. Note that this issue isn't affected by whether one creates a PCM-per-converter or PCM-per-pin; there are multiple of both within a single codec in both of those codecs. Note that those codecs don't currently create multiple PCMs for the codec due to the default HW mux state of all pins being to point at the same converter, hence there is only a single converter routed to any pin, and hence only a single PCM. Signed-off-by: NStephen Warren <swarren@nvidia.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 26 5月, 2011 1 次提交
-
-
由 Takashi Iwai 提交于
Fixed the wrong usage of snd_printdd() for debug prints of input entries. It should be snd_printd() like others. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 19 5月, 2011 1 次提交
-
-
由 David Henningsson 提交于
Just as for headphones and microphone jacks, this patch adds reporting of HDMI jack status through the input layer. Signed-off-by: NDavid Henningsson <david.henningsson@canonical.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 02 5月, 2011 2 次提交
-
-
由 Takashi Iwai 提交于
Also fixed the assignment of multiout.dac_nids to satisfy const. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 29 4月, 2011 1 次提交
-
-
由 Takashi Iwai 提交于
Helpful for debugging. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 21 4月, 2011 1 次提交
-
-
由 Mike Waychison 提交于
When SND_HDA_NEEDS_RESUME is not defined, the compiler identifies that the following symbols are static but not used: restore_shutup_pins hda_cleanup_all_streams Fix warnings by adding SND_HDA_NEEDS_RESUME guards. Signed-off-by: NMike Waychison <mikew@google.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 15 4月, 2011 1 次提交
-
-
由 Andrew Morton 提交于
sound/pci/hda/hda_codec.c: In function 'snd_hda_get_connections': sound/pci/hda/hda_codec.c:332: warning: unused variable 'j' Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 07 4月, 2011 1 次提交
-
-
由 Takashi Iwai 提交于
The connection lists are static and we can reuse the previous results instead of querying via verb at each time. This will reduce the I/O in the runtime especially for some codec auto-parsers. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 31 3月, 2011 1 次提交
-
-
由 Lucas De Marchi 提交于
Fixes generated by 'codespell' and manually reviewed. Signed-off-by: NLucas De Marchi <lucas.demarchi@profusion.mobi>
-
- 03 3月, 2011 1 次提交
-
-
由 Takashi Iwai 提交于
Since multiple codec drivers already use the input-jack stuff, let's make common helper functions to reduce the duplicated codes. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 18 1月, 2011 1 次提交
-
-
由 Takashi Iwai 提交于
Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 10 1月, 2011 1 次提交
-
-
由 Takashi Iwai 提交于
When multiple headphone pins are defined without line-out pins, the driver takes them as primary outputs. But it forgot to set line_out_type to HP by assuming there is some rest of HP pins. This results in some mis-handling of these pins for Realtek codec parser. It takes as if these are pure line-out jacks. Signed-off-by: NTakashi Iwai <tiwai@suse.de> Cc: <stable@kernel.org>
-
- 23 12月, 2010 1 次提交
-
-
由 Takashi Iwai 提交于
When a mixer control element was already created with the given name, try to find another index for avoiding conflicts, instead of breaking with an error. This makes the driver more robust. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-