- 08 5月, 2013 1 次提交
-
-
由 Takashi Iwai 提交于
This is a revised patch based on Mengdong Lin's fix patch, which is a supplement to a previous patch [1611a9c9: ALSA: hda - Add fixup for Haswell to enable all pin and convertor widgets]. Some Haswell BIOS will disable the 2nd and 3rd pin/covertor widgets when the HD-A controller changes state from D3 to D0. So when the controller resumes after a system or runtime suspend, these widgets are disabled and programming these widgets to D0 will cause H/W error and codec will not respond. In addition, we found out that some BIOS disables the pins at S3 although it shows up at boot. This confuses the driver utterly, and the hardware falls into the fatal communication error like the above. So in this patch, we apply intel_haswell_enable_all_pins() not only as a fixup to a certain device (with 8086:2010) but to all Haswell machines. The codec driver basically assumes that all pins are exposed, so it's anyway better to see them from the beginning. Even if all pins and converters are shown by this call, there should be no regression in practice: the pin default configurations are still kept, thus the disabled pins are handled as disabled by the driver properly. Signed-off-by: NMengdong Lin <mengdong.lin@intel.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 17 4月, 2013 1 次提交
-
-
由 David Henningsson 提交于
When graphics initializes the HDMI chip, sometimes this leads to pins going into D3 and right channel being muted. If the audio driver finishes initialization before the graphic driver does, this situation becomes permanent. This is a workaround that checks for this situation and corrects it on playback prepare. It has been verified working on at least one machine. BugLink: https://bugs.launchpad.net/bugs/1167270Signed-off-by: NDavid Henningsson <david.henningsson@canonical.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 02 4月, 2013 1 次提交
-
-
由 Mengdong Lin 提交于
This patch let ELD debug message show 'pin_eld->monitor_present' which reflects the real pin response to verb GET_PIN_SENSE. 'eld->monitor_present' should not be used here because 'eld' is a temp structure now and so its "monitor_present" is not set. Signed-off-by: NMengdong Lin <mengdong.lin@intel.com> Acked-by: NDavid Henningsson <david.henningsson@canonical.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 14 3月, 2013 1 次提交
-
-
由 Takashi Iwai 提交于
Use the dynamic array allocations for pins, converters and PCM arrays instead of the fixed size arrays. The modern HDMI codecs get more and more pins, and we don't know the sensitive limit. Most of the patch are spent for the straight conversions from the fixed array access to snd_array helpers. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 22 2月, 2013 1 次提交
-
-
由 David Henningsson 提交于
Just as for analog codecs, a jack that isn't suitable for detection (in this case, NO_PRESENCE was set) should be a phantom Jack instead of a normal one. Thanks to Raymond Yau for spotting. Cc: stable@vger.kernel.org BugLink: https://bugs.launchpad.net/bugs/961286 BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=903869Signed-off-by: NDavid Henningsson <david.henningsson@canonical.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 20 2月, 2013 5 次提交
-
-
由 David Henningsson 提交于
ELD validity can change during the lifetime of a presence detect, so we need to be able to listen for changes on the ELD control. Signed-off-by: NDavid Henningsson <david.henningsson@canonical.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 David Henningsson 提交于
Because the eld buffer can be simultaneously accessed from both workqueue context (updating) and process context (kcontrol read), we need to protect it with a mutex to guarantee consistency. To avoid holding the mutex while reading the ELD info from the codec, we introduce a temporary eld buffer. Signed-off-by: NDavid Henningsson <david.henningsson@canonical.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 David Henningsson 提交于
For better readability, the information that is parsed out of the ELD data is now put into a separate parsed_hdmi_eld struct. Signed-off-by: NDavid Henningsson <david.henningsson@canonical.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 David Henningsson 提交于
Previously, it was possible to read the eld data of the previous monitor connected. This should not be allowed. Also refactor the function slightly. Signed-off-by: NDavid Henningsson <david.henningsson@canonical.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 David Henningsson 提交于
Currently, eld_valid is never set to false, except at kernel module load time. This patch makes sure that eld is no longer valid when the cable is (hot-)unplugged. Cc: stable@kernel.org Signed-off-by: NDavid Henningsson <david.henningsson@canonical.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 08 2月, 2013 3 次提交
-
-
由 Takashi Iwai 提交于
A Haswell test machine showed that the invalid connection list, but this time it has only a single pin on the codec, thus the former fixup code doesn't work as it assumes the three pins blindly. This patch splits the former fixup code to two parts: - Enable eDP 1.2 for Haswell codec - Fix the connection list of pins on Haswell codec; the converter list is recorded dynamically in hdmi_add_cvt(), and applied in hdmi_add_pin() Signed-off-by: NMengdong Lin <mengdong.lin@intel.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Mengdong Lin 提交于
Some Haswell machines support more than one display outputs (HDMI or DP), but its BIOS may not enable the codec's 2nd and 3rd pin and output cvt widgets. This patch implements a board-specific fixup for Intel Haswell Machines: If the hidden pins are not enabled by BIOS, the driver will enable them and call common code to update the codec tree. Signed-off-by: NMengdong Lin <mengdong.lin@intel.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
Currently we set the max number of connections to be 32, but there seems codec that gives longer connection lists like AD1988, and we see errors in proc output and else. (Though, in the case of AD1988, it's a list of all codecs connected to a single vendor widget, so this must be something fishy, but it's still valid from the h/w design POV.) This patch tries to remove this restriction. For efficiency, we still use the fixed size array in the parser, but takes a dynamic array when the size is reported to be greater than that. Now the fixed array size is found only in patch_hdmi.c, but it should be fine, as the codec itself can't support so many pins. Reported-by: NRaymond Yau <superquad.vortex2@gmail.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 04 2月, 2013 1 次提交
-
-
由 Anssi Hannula 提交于
Commit d45e6889 ("ALSA: hda - Provide the proper channel mapping for generic HDMI driver") added support for custom channel maps in the HDA HDMI driver. Due to a mistake in an 'if' condition the custom map is always used even when no such map has been set. This causes incorrect channel mapping for multichannel audio by default. Pass per_pin->chmap_set to hdmi_setup_channel_mapping() as a parameter so that it can use it for detecting if a custom map has been set instead of checking if map is NULL (which is never the case). Reported-by: NStaffan Lindberg <pike@xbmc.org> Signed-off-by: NAnssi Hannula <anssi.hannula@iki.fi> Cc: stable@vger.kernel.org Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 01 2月, 2013 1 次提交
-
-
由 Takashi Iwai 提交于
If the driver detects and invalid ELD, it gives an open error. But it forgot to release the assigned pin, converter and spdif ctls before returning. Cc: <stable@vger.kernel.org> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 15 1月, 2013 1 次提交
-
-
由 Takashi Iwai 提交于
When "alsactl restore" is performed on HDMI codecs, it tries to restore the channel map value since the channel map controls are writable. But hdmi_chmap_ctl_put() returns -EBADFD when no PCM stream is assigned yet, and this results in an error message from alsactl. Although the error is harmless, it's certainly ugly and can be regarded as a regression. As a workaround, this patch changes the return code in such a case to be zero for making others happy. (A slight excuse is: when the chmap is changed through the proper alsa-lib API, the PCM status is checked there anyway, so we don't have to be too strict in the kernel side.) Cc: <stable@vger.kernel.org> [v3.7+] Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 18 12月, 2012 1 次提交
-
-
由 Mengdong Lin 提交于
Haswell HDMI codec pins may report invalid connection list entries, which will cause failure to play audio via HDMI or Display Port. So this patch adds fixup for Haswell to workaround this hardware issue: enable DP1.2 mode and override the pins' connection list entries with proper value. Signed-off-by: NMengdong Lin <mengdong.lin@intel.com> Signed-off-by: NXingchao Wang <xingchao.wang@intel.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 14 12月, 2012 1 次提交
-
-
由 Takashi Iwai 提交于
We've seen the broken HDMI *video* output on some machines with GM965, and the debugging session pointed that the culprit is the disabled audio output pins. Toggling these pins dynamically on demand caused flickering of HDMI TV. This patch changes the behavior to keep the pin ON constantly. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=51421 Cc: <stable@vger.kernel.org> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 21 11月, 2012 1 次提交
-
-
由 Takashi Iwai 提交于
Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 07 11月, 2012 1 次提交
-
-
由 David Henningsson 提交于
On some of the PantherPoint HDMI machines we currently enable, we're seeing trouble with unsol events, i e detecting monitor presence, especially when on battery and after suspend/resume. BugLink: https://bugs.launchpad.net/bugs/1075882Tested-by: NCyrus Lien <cyrus.lien@canonical.com> Signed-off-by: NDavid Henningsson <david.henningsson@canonical.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 17 10月, 2012 1 次提交
-
-
由 Takashi Iwai 提交于
When both an SPDIF and an HDMI device are created on the same card instance, multiple IEC958 controls are created with indices=0, 1, ... But the alsa-lib configuration can't know which index corresponds actually to which PCM device, and both the SPDIF and the HDMI configurations point to the first IEC958 control wrongly. This patch introduces a (hackish and ugly) workaround: the IEC958 controls for the SPDIF device are re-labeled with device=1 when HDMI coexists. The device=1 corresponds to the actual PCM device for SPDIF, so it's anyway a better representation. In future, HDMI controls should be moved with the corresponding PCM device number, too. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 10 9月, 2012 1 次提交
-
-
由 Takashi Iwai 提交于
Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 07 9月, 2012 2 次提交
-
-
由 Takashi Iwai 提交于
Some old Nvidia HDMI codecs with 8ch support only 2/8 or 2/6/8 channels and with the fixed CLFE-first map. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
... instead of the standard fixed channel maps. The generic HDMI is based on the audio infoframe, and its configuration can be selected via CA bits. Thus we need a translation between the CA index and the verbose channel map list. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 06 9月, 2012 4 次提交
-
-
由 Takashi Iwai 提交于
Recently the check for non-PCM stream state was added to the generic HDMI driver code. But this check should be done rather to each pin instead of each converter. Otherwise when a different converter is assigned at the next open, the audio infoframe can be inconsistent with the setup using the previous converter. For fixing this issue, this patch moves the state of the current non-PCM status from per_cvt to per_pin. (In addition an unused argument cvt_nid is stripped from hdmi_setup_channel_mapping()) Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Wang Xingchao 提交于
For HBR stream test, use straight channel mapping way. when switched back to "speaker-test -c8", even the audio infoframe is up-to-date, there should be correct channel mapping setup. Signed-off-by: NWang Xingchao <xingchao.wang@intel.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Wang Xingchao 提交于
HDMI channel remapping apparently effects HBR packets on Intel's chips. For compressed non-PCM audio, use "straight-through" channel mapping. For uncompressed multi-channel pcm audio, use normal channel mapping. Signed-off-by: NWang Xingchao <xingchao.wang@intel.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Wang Xingchao 提交于
The array channel_allocations[] is an ordered list, add function to get correct order by ca_index. Signed-off-by: NWang Xingchao <xingchao.wang@intel.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 30 8月, 2012 1 次提交
-
-
由 Takashi Iwai 提交于
CONFIG_SND_HDA_POWER_SAVE is no longer an experimental feature and its behavior can be well controlled via the default value and module parameter. Let's just replace it with the standard CONFIG_PM. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 22 8月, 2012 1 次提交
-
-
由 Takashi Iwai 提交于
Instead of calling the jack sync in the init callback of each codec, call it generically at initialization and resume. By calling it at the last of resume sequence, a possible race between the jack sync and the unsol event enablement in the current code will be closed, too. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 06 8月, 2012 1 次提交
-
-
由 Takashi Iwai 提交于
The commit c4bfe94a causes a regression on some codecs at probing. Since this was just a workaround to shut up a kernel warning, it'd be better to revert and fix properly. So we ended up with re-adding the cleanup callback. Tested-and-reported-by: NMatt Horan <matt@matthoran.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 28 7月, 2012 1 次提交
-
-
由 Takashi Iwai 提交于
The recent fix to converter detaching timing in patch_hdmi.c leads to a kernel WARNING due to a sanity check when the debug option is set. Add a workaround by setting a dummy hinfo->nid. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 27 7月, 2012 1 次提交
-
-
由 Takashi Iwai 提交于
The generic HDMI code detaches the converter from the stream when unused, but it must be done rather in the close callback instead of the cleanup callback. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 20 7月, 2012 1 次提交
-
-
由 Dylan Reid 提交于
Turn on the pin widget's PIN_OUT bit from playback prepare. The pin is enabled in open, but is disabled in hdmi_init_pin which is called during system resume. This causes a system suspend/resume during playback to mute HDMI/DP. Enabling the pin in prepare instead of open allows calling snd_pcm_prepare after a system resume to restore audio. Signed-off-by: NDylan Reid <dgreid@chromium.org> Cc: <stable@vger.kernel.org> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 17 7月, 2012 1 次提交
-
-
由 Aaron Plattner 提交于
Vendor ID 0x10de0051 is used by a yet-to-be-named GPU chip. Signed-off-by: NAaron Plattner <aplattner@nvidia.com> Acked-by: NAndy Ritger <aritger@nvidia.com> Reviewed-by: NDaniel Dadap <ddadap@nvidia.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 16 7月, 2012 1 次提交
-
-
由 Wang Xingchao 提交于
0x80862807 is HDMI id for Haswell HDA. Signed-off-by: NWang Xingchao <xingchao.wang@intel.com> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 21 6月, 2012 3 次提交
-
-
由 Takashi Iwai 提交于
In the recent code, the value shown there is a tag number, and it's no longer same as the pin nid. Correct the message to avoid confusion. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
VIA codecs seem not returning the event tag in the unsolicited events, thus the current code relying on the tag value doesn't work. Since simple_hdmi stuff has only a single pin, we can use simply snd_hda_jack_set_dirty_all() to activate the pin-detection independently from the tag value. Tested-by: NAnnie Liu <AnnieLiu@viatech.com.cn> Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
由 Takashi Iwai 提交于
The simple_hdmi stuff is designed only for a single pin and a single converter (thus a single PCM stream), and no need for loops. Let's flatten the code. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-
- 20 6月, 2012 1 次提交
-
-
由 Takashi Iwai 提交于
The codes to initialize work struct or create a proc interface should be called only once and never although it's called many times through the init callback. Move that stuff into patch_generic_hdmi() so that it's called only once. Signed-off-by: NTakashi Iwai <tiwai@suse.de>
-