Alsa-devel
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
January 2019
- 132 participants
- 353 discussions
Hi Takashi,
Attach patch was fix typo for alc225 model name.
BR,
Kailang
2
1
[alsa-devel] [RFC PATCH v2 1/2] ASoC: refine ASoC hdmi audio suspend/resume
by libin.yang@intel.com 14 Jan '19
by libin.yang@intel.com 14 Jan '19
14 Jan '19
From: Libin Yang <libin.yang(a)intel.com>
hdmi_codec_prepare() will trigger hdmi runtime resume, which will set
the bitmask of hdev->addr. And skl_suspend() will clear the bitmask of
HDA_CODEC_IDX_CONTROLLER. HDMI codec idx is not the same as
HDA_CODEC_IDX_CONTROLLER, which means i915 power will not be released
when suspend.
On the other hand, hdmi_codec_prepare() don't need to call
pm_runtime_get_sync() to wake up the audio subsystem (HDMI auido)
for setting the codec registers. Turning display power on with
snd_hdac_display_power() is enough.
Let's use S3 without playback as an example:
hdmi_codec_prepare() invokes the runtime resume of codec =>
snd_hdac_display_power(bus, hdev->addr, true)
skl runtime resume
skl_suspend() =>
snd_hdac_display_power(bus, HDA_CODEC_IDX_CONTROLLER, false);
THis means hdev->addr will never release the display power when
suspend.
The new sequence will be:
hdmi_codec_prepare() =>
snd_hdac_display_power(bus, hdev->addr, true)
snd_hdac_display_power(bus, hdev->addr, false)
skl runtime resume
skl suspned
Signed-off-by: Libin Yang <libin.yang(a)intel.com>
---
sound/soc/codecs/hdac_hdmi.c | 6 ++++--
sound/soc/intel/skylake/skl.c | 7 -------
2 files changed, 4 insertions(+), 9 deletions(-)
diff --git a/sound/soc/codecs/hdac_hdmi.c b/sound/soc/codecs/hdac_hdmi.c
index 3ab2949..782b323 100644
--- a/sound/soc/codecs/hdac_hdmi.c
+++ b/sound/soc/codecs/hdac_hdmi.c
@@ -1895,7 +1895,7 @@ static int hdmi_codec_prepare(struct device *dev)
{
struct hdac_device *hdev = dev_to_hdac_dev(dev);
- pm_runtime_get_sync(&hdev->dev);
+ snd_hdac_display_power(hdev->bus, hdev->addr, true);
/*
* Power down afg.
@@ -1906,6 +1906,7 @@ static int hdmi_codec_prepare(struct device *dev)
*/
snd_hdac_codec_read(hdev, hdev->afg, 0, AC_VERB_SET_POWER_STATE,
AC_PWRST_D3);
+ snd_hdac_display_power(hdev->bus, hdev->addr, false);
return 0;
}
@@ -1915,6 +1916,7 @@ static void hdmi_codec_complete(struct device *dev)
struct hdac_device *hdev = dev_to_hdac_dev(dev);
struct hdac_hdmi_priv *hdmi = hdev_to_hdmi_priv(hdev);
+ snd_hdac_display_power(hdev->bus, hdev->addr, true);
/* Power up afg */
snd_hdac_codec_read(hdev, hdev->afg, 0, AC_VERB_SET_POWER_STATE,
AC_PWRST_D0);
@@ -1930,7 +1932,7 @@ static void hdmi_codec_complete(struct device *dev)
*/
hdac_hdmi_present_sense_all_pins(hdev, hdmi, false);
- pm_runtime_put_sync(&hdev->dev);
+ snd_hdac_display_power(hdev->bus, hdev->addr, false);
}
#else
#define hdmi_codec_prepare NULL
diff --git a/sound/soc/intel/skylake/skl.c b/sound/soc/intel/skylake/skl.c
index 60c9483..89f4d66 100644
--- a/sound/soc/intel/skylake/skl.c
+++ b/sound/soc/intel/skylake/skl.c
@@ -336,9 +336,6 @@ static int skl_suspend(struct device *dev)
skl->skl_sst->fw_loaded = false;
}
- if (IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI))
- snd_hdac_display_power(bus, HDA_CODEC_IDX_CONTROLLER, false);
-
return 0;
}
@@ -350,10 +347,6 @@ static int skl_resume(struct device *dev)
struct hdac_ext_link *hlink = NULL;
int ret;
- /* Turned OFF in HDMI codec driver after codec reconfiguration */
- if (IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI))
- snd_hdac_display_power(bus, HDA_CODEC_IDX_CONTROLLER, true);
-
/*
* resume only when we are not in suspend active, otherwise need to
* restore the device
--
2.7.4
5
18
[alsa-devel] [PATCH 0/4] ASoC: wm8904: prepare for use from audio-graph-card
by Michał Mirosław 13 Jan '19
by Michał Mirosław 13 Jan '19
13 Jan '19
First two patches make wm8904 usable from audio-graph-card.
Third is a simple micro-optimization of driver-data usage.
Last fixes register access with disabled SYSCLK.
Tested on custom SAMA5D2 board.
Michał Mirosław (4):
ASoC: wm8904: make the driver visible in Kconfig
ASoC: wm8904: Automatically enable FLL when selected
ASoC: wm8904: save model id directly in of_device_id.data
ASoC: wm8904: enable MCLK in STANDBY
sound/soc/codecs/Kconfig | 3 ++-
sound/soc/codecs/wm8904.c | 42 ++++++++++++++++++++++++++++-----------
sound/soc/codecs/wm8904.h | 2 +-
3 files changed, 33 insertions(+), 14 deletions(-)
--
2.19.2
3
10
[alsa-devel] [RFT][PATCH v1] gpiolib: acpi: Introduce ACPI_GPIO_QUIRK_ONLY_GPIOIO
by Andy Shevchenko 13 Jan '19
by Andy Shevchenko 13 Jan '19
13 Jan '19
New quirk enforces search for GPIO based on its type.
Note, supplied index in the mapping table must be 0.
Signed-off-by: Andy Shevchenko <andriy.shevchenko(a)linux.intel.com>
---
- it was sent few weeks ago to Hans for testing, but better to re-test
- it's supposed to go via ASoC subsystem due to recent changes made for sound driver
drivers/gpio/gpiolib-acpi.c | 15 ++++--
include/linux/acpi.h | 2 +
sound/soc/intel/boards/bytcr_rt5651.c | 74 ++++-----------------------
3 files changed, 22 insertions(+), 69 deletions(-)
diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c
index 259cf6ab969b..4d291b75cb9f 100644
--- a/drivers/gpio/gpiolib-acpi.c
+++ b/drivers/gpio/gpiolib-acpi.c
@@ -530,17 +530,24 @@ static int acpi_populate_gpio_lookup(struct acpi_resource *ares, void *data)
if (ares->type != ACPI_RESOURCE_TYPE_GPIO)
return 1;
- if (lookup->n++ == lookup->index && !lookup->desc) {
+ if (!lookup->desc) {
const struct acpi_resource_gpio *agpio = &ares->data.gpio;
- int pin_index = lookup->pin_index;
+ bool gpioint = agpio->connection_type == ACPI_RESOURCE_GPIO_TYPE_INT;
+ int pin_index;
+ if (lookup->info.quirks & ACPI_GPIO_QUIRK_ONLY_GPIOIO && gpioint)
+ lookup->index++;
+
+ if (lookup->n++ != lookup->index)
+ return 1;
+
+ pin_index = lookup->pin_index;
if (pin_index >= agpio->pin_table_length)
return 1;
lookup->desc = acpi_get_gpiod(agpio->resource_source.string_ptr,
agpio->pin_table[pin_index]);
- lookup->info.gpioint =
- agpio->connection_type == ACPI_RESOURCE_GPIO_TYPE_INT;
+ lookup->info.gpioint = gpioint;
/*
* Polarity and triggering are only specified for GpioInt
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 1e89c688139f..7af06794e6fd 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -1020,6 +1020,8 @@ struct acpi_gpio_mapping {
/* Ignore IoRestriction field */
#define ACPI_GPIO_QUIRK_NO_IO_RESTRICTION BIT(0)
+/* Choose one of GpioIo() type */
+#define ACPI_GPIO_QUIRK_ONLY_GPIOIO BIT(1)
unsigned int quirks;
};
diff --git a/sound/soc/intel/boards/bytcr_rt5651.c b/sound/soc/intel/boards/bytcr_rt5651.c
index b618d984e2d5..5bfbbdc2a62a 100644
--- a/sound/soc/intel/boards/bytcr_rt5651.c
+++ b/sound/soc/intel/boards/bytcr_rt5651.c
@@ -844,74 +844,18 @@ static const struct x86_cpu_id cherrytrail_cpu_ids[] = {
{}
};
-static const struct acpi_gpio_params first_gpio = { 0, 0, false };
-static const struct acpi_gpio_params second_gpio = { 1, 0, false };
+static const struct acpi_gpio_params ext_amp_enable_gpios = { 0, 0, false };
-static const struct acpi_gpio_mapping byt_rt5651_amp_en_first[] = {
- { "ext-amp-enable-gpios", &first_gpio, 1 },
- { },
-};
-
-static const struct acpi_gpio_mapping byt_rt5651_amp_en_second[] = {
- { "ext-amp-enable-gpios", &second_gpio, 1 },
+static const struct acpi_gpio_mapping cht_rt5651_gpios[] = {
+ /*
+ * Some boards have I2cSerialBusV2, GpioIo, GpioInt as ACPI resources, other
+ * boards may have I2cSerialBusV2, GpioInt, GpioIo instead. We want the
+ * GpioIo one for the ext-amp-enable-gpio. That's why quirk is enabled.
+ */
+ { "ext-amp-enable-gpios", &ext_amp_enable_gpios, 1, ACPI_GPIO_QUIRK_ONLY_GPIOIO },
{ },
};
-/*
- * Some boards have I2cSerialBusV2, GpioIo, GpioInt as ACPI resources, other
- * boards may have I2cSerialBusV2, GpioInt, GpioIo instead. We want the
- * GpioIo one for the ext-amp-enable-gpio and both count for the index in
- * acpi_gpio_params index. So we have 2 different mappings and the code
- * below figures out which one to use.
- */
-struct byt_rt5651_acpi_resource_data {
- int gpio_count;
- int gpio_int_idx;
-};
-
-static int snd_byt_rt5651_acpi_resource(struct acpi_resource *ares, void *arg)
-{
- struct byt_rt5651_acpi_resource_data *data = arg;
-
- if (ares->type != ACPI_RESOURCE_TYPE_GPIO)
- return 0;
-
- if (ares->data.gpio.connection_type == ACPI_RESOURCE_GPIO_TYPE_INT)
- data->gpio_int_idx = data->gpio_count;
-
- data->gpio_count++;
- return 0;
-}
-
-static void snd_byt_rt5651_mc_pick_amp_en_gpio_mapping(struct device *codec)
-{
- struct byt_rt5651_acpi_resource_data data = { 0, -1 };
- LIST_HEAD(resources);
- int ret;
-
- ret = acpi_dev_get_resources(ACPI_COMPANION(codec), &resources,
- snd_byt_rt5651_acpi_resource, &data);
- if (ret < 0) {
- dev_warn(codec, "Failed to get ACPI resources, not adding external amplifier GPIO mapping\n");
- return;
- }
-
- /* All info we need is gathered during the walk */
- acpi_dev_free_resource_list(&resources);
-
- switch (data.gpio_int_idx) {
- case 0:
- byt_rt5651_gpios = byt_rt5651_amp_en_second;
- break;
- case 1:
- byt_rt5651_gpios = byt_rt5651_amp_en_first;
- break;
- default:
- dev_warn(codec, "Unknown GpioInt index %d, not adding external amplifier GPIO mapping\n",
- data.gpio_int_idx);
- }
-}
-
struct acpi_chan_package { /* ACPICA seems to require 64 bit integers */
u64 aif_value; /* 1: AIF1, 2: AIF2 */
u64 mclock_value; /* usually 25MHz (0x17d7940), ignored */
@@ -1037,7 +981,7 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev)
/* Cherry Trail devices use an external amplifier enable gpio */
if (x86_match_cpu(cherrytrail_cpu_ids) && !byt_rt5651_gpios)
- snd_byt_rt5651_mc_pick_amp_en_gpio_mapping(codec_dev);
+ byt_rt5651_gpios = cht_rt5651_gpios;
if (byt_rt5651_gpios) {
devm_acpi_dev_add_driver_gpios(codec_dev, byt_rt5651_gpios);
--
2.19.2
4
5
[alsa-devel] Audio popping/clicking at boot but NOT after resume/suspend
by Kadir Çolakoğlu 11 Jan '19
by Kadir Çolakoğlu 11 Jan '19
11 Jan '19
Hi,
I have a Dell Latitude 7480 and a stranger than usual audio
popping/clicking/crackling issue. I run Fedora 29, fully updated. The thing
is when I boot the laptop, the audio clicks at certain low sound volumes or
events. For example when testing the speakers in the Gnome sound settings
panel causes multiple clicks/pops. Listening to a audio/video file with
certain silent parts causes pops/clicks.
I have tried (almost) everything. Changing Pulseaudio setting does not
work. Running a pure Jack system does not work. So the issue is not with
Pulseaudio or Jack. I have tried disabling Intel HDA powersaving, that also
does not work.
But all problems disappear when I suspend and then resume the laptop. After
resuming, everything works great. So at boot there are sound issues, but
after a suspend/resume cycle everything is fine!
See https://bugzilla.redhat.com/show_bug.cgi?id=1525104#c108 for more
details and testing. I have also attached alsa-info.sh.
Kadir
2
3
[alsa-devel] Fwd: Audio popping/clicking at boot but NOT after resume/suspend
by Kadir Çolakoğlu 11 Jan '19
by Kadir Çolakoğlu 11 Jan '19
11 Jan '19
---------- Forwarded message ---------
From: Kadir Çolakoğlu <kadir(a)colakoglu.nl>
Date: vr 11 jan. 2019 om 18:52
Subject: Re: [alsa-devel] Audio popping/clicking at boot but NOT after
resume/suspend
To: Takashi Iwai <tiwai(a)suse.de>
Hi Takashi,
Thanks for taking the time to look into this. I am glad you have the same
laptop as a test machine. I have been really trying to solve this for a
couple of days now, I have no clue so far. This is what I have tried so far:
- turning snd_hda_intel powersaving (including the controller) OFF
- using Jack only with Pulseaudio masked
- tweaking some Pulseaudio settings
- tried the latest Fedora rawhide kernel (5.0 git)
- tried it with a Fedora 29 liveusb
- I even reset all the BIOS settings
Nothing of the above helped :(
The speaker popping ONLY occurs with the speakers, not with the headphones.
And it completely disappears after a suspend/resume cycle and it stays gone
until the next reboot.
It is good that you have the same machine, assuming all the hardware is the
same, you can reproduce this quite easily I hope.
If you boot a Fedora 29 liveusb (Gnome) and go to the settings -> sound ->
test speakers. Let the volume stay at 50%. If you test FRONT_LEFT and
FRONT_RIGHT, you will hear multiple cliks/pops. This is just a small
example to easily reproduce it. The pops/clicks occur all the time when you
listen to audio with short silences in between, like speech. With the same
Fedora Liveusb try for example https://www.youtube.com/watch?v=7YTk_AzJ6fg
(this a short tutorial video).
This behaviour happens both on ac and battery, that doesn't matter.
If I can help with something, let me know. I want to solve this because,
while a minor issue, it is irritating. For you information, I don't mind
the clicks/pops when the audiocontroller is turning on and off, I consider
that normal behaviour.
Kind regards,
Kadir
Op vr 11 jan. 2019 om 14:39 schreef Takashi Iwai <tiwai(a)suse.de>:
> On Wed, 09 Jan 2019 07:26:47 +0100,
> Kadir Çolakoğlu wrote:
> >
> > Hi,
> >
> > I have a Dell Latitude 7480 and a stranger than usual audio
> > popping/clicking/crackling issue. I run Fedora 29, fully updated. The
> thing
> > is when I boot the laptop, the audio clicks at certain low sound volumes
> or
> > events. For example when testing the speakers in the Gnome sound settings
> > panel causes multiple clicks/pops. Listening to a audio/video file with
> > certain silent parts causes pops/clicks.
> >
> > I have tried (almost) everything. Changing Pulseaudio setting does not
> > work. Running a pure Jack system does not work. So the issue is not with
> > Pulseaudio or Jack. I have tried disabling Intel HDA powersaving, that
> also
> > does not work.
> >
> > But all problems disappear when I suspend and then resume the laptop.
> After
> > resuming, everything works great. So at boot there are sound issues, but
> > after a suspend/resume cycle everything is fine!
> >
> > See https://bugzilla.redhat.com/show_bug.cgi?id=1525104#c108 for more
> > details and testing. I have also attached alsa-info.sh.
>
> Does the issue happen only with the speaker, or also with the
> headphone? I have a Latitude 7480 test machine in my office, and
> checked 4.20 kernel now, and no problem was seen there. DE is KDE,
> but it should be irrelevant...
>
>
> thanks,
>
> Takashi
>
>
> >
> > Kadir
> > upload=true&script=true&cardinfo=
> > !!################################
> > !!ALSA Information Script v 0.4.64
> > !!################################
> >
> > !!Script ran on: Mon Jan 7 20:32:15 UTC 2019
> >
> >
> > !!Linux Distribution
> > !!------------------
> >
> > Fedora release 29 (Twenty Nine) NAME=Fedora ID=fedora
> PRETTY_NAME="Fedora 29 (Twenty Nine)" LOGO=fedora-logo-icon
> CPE_NAME="cpe:/o:fedoraproject:fedora:29" HOME_URL="
> https://fedoraproject.org/" DOCUMENTATION_URL="
> https://docs.fedoraproject.org/en-US/fedora/f29/system-administrators-guide/"
> SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help"
> BUG_REPORT_URL="https://bugzilla.redhat.com/"
> REDHAT_BUGZILLA_PRODUCT="Fedora" REDHAT_BUGZILLA_PRODUCT_VERSION=29
> REDHAT_SUPPORT_PRODUCT="Fedora" REDHAT_SUPPORT_PRODUCT_VERSION=29
> PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
> Fedora release 29 (Twenty Nine) Fedora release 29 (Twenty Nine)
> >
> >
> > !!DMI Information
> > !!---------------
> >
> > Manufacturer: Dell Inc.
> > Product Name: Latitude 7480
> > Product Version:
> > Firmware Version: 1.13.0
> > Board Vendor: Dell Inc.
> > Board Name: 00F6D3
> >
> >
> > !!ACPI Device Status Information
> > !!---------------
> >
> > /sys/bus/acpi/devices/ACPI0003:00/status 15
> > /sys/bus/acpi/devices/ACPI000C:00/status 15
> > /sys/bus/acpi/devices/DLL07A0:01/status 15
> > /sys/bus/acpi/devices/DLLK07A0:00/status 15
> > /sys/bus/acpi/devices/INT33A1:00/status 15
> > /sys/bus/acpi/devices/INT33D5:00/status 15
> > /sys/bus/acpi/devices/INT3400:00/status 15
> > /sys/bus/acpi/devices/INT3403:00/status 15
> > /sys/bus/acpi/devices/INT3403:01/status 15
> > /sys/bus/acpi/devices/INT3403:03/status 15
> > /sys/bus/acpi/devices/INT340E:00/status 15
> > /sys/bus/acpi/devices/INT3446:00/status 15
> > /sys/bus/acpi/devices/INT3F0D:00/status 15
> > /sys/bus/acpi/devices/LNXPOWER:00/status 1
> > /sys/bus/acpi/devices/LNXPOWER:01/status 1
> > /sys/bus/acpi/devices/LNXPOWER:02/status 1
> > /sys/bus/acpi/devices/LNXPOWER:03/status 1
> > /sys/bus/acpi/devices/LNXPOWER:04/status 1
> > /sys/bus/acpi/devices/LNXPOWER:05/status 1
> > /sys/bus/acpi/devices/LNXPOWER:06/status 1
> > /sys/bus/acpi/devices/LNXPOWER:07/status 1
> > /sys/bus/acpi/devices/LNXPOWER:08/status 1
> > /sys/bus/acpi/devices/LNXPOWER:09/status 1
> > /sys/bus/acpi/devices/LNXPOWER:0a/status 1
> > /sys/bus/acpi/devices/LNXPOWER:0b/status 1
> > /sys/bus/acpi/devices/LNXPOWER:0c/status 1
> > /sys/bus/acpi/devices/LNXPOWER:0d/status 1
> > /sys/bus/acpi/devices/LNXPOWER:0e/status 1
> > /sys/bus/acpi/devices/LNXPOWER:0f/status 1
> > /sys/bus/acpi/devices/LNXPOWER:10/status 1
> > /sys/bus/acpi/devices/LNXPOWER:11/status 1
> > /sys/bus/acpi/devices/LNXPOWER:12/status 1
> > /sys/bus/acpi/devices/LNXPOWER:13/status 1
> > /sys/bus/acpi/devices/PNP0103:00/status 15
> > /sys/bus/acpi/devices/PNP0C02:03/status 3
> > /sys/bus/acpi/devices/PNP0C02:05/status 3
> > /sys/bus/acpi/devices/PNP0C09:00/status 15
> > /sys/bus/acpi/devices/PNP0C0A:00/status 31
> > /sys/bus/acpi/devices/PNP0C0C:00/status 15
> > /sys/bus/acpi/devices/PNP0C0F:00/status 9
> > /sys/bus/acpi/devices/PNP0C0F:01/status 9
> > /sys/bus/acpi/devices/PNP0C0F:02/status 9
> > /sys/bus/acpi/devices/PNP0C0F:03/status 9
> > /sys/bus/acpi/devices/PNP0C0F:04/status 9
> > /sys/bus/acpi/devices/PNP0C0F:05/status 9
> > /sys/bus/acpi/devices/PNP0C0F:06/status 9
> > /sys/bus/acpi/devices/PNP0C0F:07/status 9
> > /sys/bus/acpi/devices/device:09/status 15
> > /sys/bus/acpi/devices/device:63/status 15
> > /sys/bus/acpi/devices/device:75/status 11
> >
> >
> > !!Kernel Information
> > !!------------------
> >
> > Kernel release: 4.19.13-300.fc29.x86_64
> > Operating System: GNU/Linux
> > Architecture: x86_64
> > Processor: x86_64
> > SMP Enabled: Yes
> >
> >
> > !!ALSA Version
> > !!------------
> >
> > Driver version: k4.19.13-300.fc29.x86_64
> > Library version:
> > Utilities version: 1.1.7
> >
> >
> > !!Loaded ALSA modules
> > !!-------------------
> >
> > snd_hda_intel
> >
> >
> > !!Sound Servers on this system
> > !!----------------------------
> >
> > Pulseaudio:
> > Installed - Yes (/usr/bin/pulseaudio)
> > Running - Yes
> >
> > Jack:
> > Installed - Yes (/usr/bin/jackd)
> > Running - No
> >
> >
> > !!Soundcards recognised by ALSA
> > !!-----------------------------
> >
> > 0 [PCH ]: HDA-Intel - HDA Intel PCH
> > HDA Intel PCH at 0xec248000 irq 131
> >
> >
> > !!PCI Soundcards installed in the system
> > !!--------------------------------------
> >
> > 00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev
> 21)
> >
> >
> > !!Advanced information - PCI Vendor/Device/Subsystem ID's
> > !!-------------------------------------------------------
> >
> > 00:1f.3 0403: 8086:9d71 (rev 21)
> > Subsystem: 1028:07a0
> >
> >
> > !!Loaded sound module options
> > !!---------------------------
> >
> > !!Module: snd_hda_intel
> > align_buffer_size : -1
> > bdl_pos_adj :
> -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
> > beep_mode :
> N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N
> > enable :
> Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y
> > enable_msi : -1
> > id :
> (null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null)
> > index :
> -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
> > jackpoll_ms :
> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
> > model :
> (null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null)
> > patch :
> (null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null),(null)
> > pm_blacklist : Y
> > position_fix :
> -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
> > power_save : 1
> > power_save_controller : Y
> > probe_mask :
> -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
> > probe_only :
> 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
> > single_cmd : -1
> > snoop : -1
> >
> >
> > !!HDA-Intel Codec information
> > !!---------------------------
> > --startcollapse--
> >
> > Codec: Realtek ALC3246
> > Address: 0
> > AFG Function Id: 0x1 (unsol 1)
> > Vendor Id: 0x10ec0256
> > Subsystem Id: 0x102807a0
> > Revision Id: 0x100002
> > No Modem Function Group found
> > Default PCM:
> > rates [0x560]: 44100 48000 96000 192000
> > bits [0xe]: 16 20 24
> > formats [0x1]: PCM
> > Default Amp-In caps: N/A
> > Default Amp-Out caps: N/A
> > State of AFG node 0x01:
> > Power states: D0 D1 D2 D3 D3cold CLKSTOP EPSS
> > Power: setting=D0, actual=D0
> > GPIO: io=3, o=0, i=0, unsolicited=1, wake=0
> > IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
> > IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
> > IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0
> > Node 0x02 [Audio Output] wcaps 0x41d: Stereo Amp-Out
> > Control: name="Speaker Playback Volume", index=0, device=0
> > ControlAmp: chs=3, dir=Out, idx=0, ofs=0
> > Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0
> > Amp-Out vals: [0x3b 0x3b]
> > Converter: stream=0, channel=0
> > PCM:
> > rates [0x60]: 44100 48000
> > bits [0xe]: 16 20 24
> > formats [0x1]: PCM
> > Power states: D0 D1 D2 D3 EPSS
> > Power: setting=D3, actual=D3
> > Node 0x03 [Audio Output] wcaps 0x41d: Stereo Amp-Out
> > Control: name="Headphone Playback Volume", index=0, device=0
> > ControlAmp: chs=3, dir=Out, idx=0, ofs=0
> > Device: name="ALC3246 Analog", type="Audio", device=0
> > Amp-Out caps: ofs=0x57, nsteps=0x57, stepsize=0x02, mute=0
> > Amp-Out vals: [0x00 0x00]
> > Converter: stream=0, channel=0
> > PCM:
> > rates [0x60]: 44100 48000
> > bits [0xe]: 16 20 24
> > formats [0x1]: PCM
> > Power states: D0 D1 D2 D3 EPSS
> > Power: setting=D3, actual=D3
> > Node 0x04 [Vendor Defined Widget] wcaps 0xf00000: Mono
> > Node 0x05 [Vendor Defined Widget] wcaps 0xf00000: Mono
> > Node 0x06 [Audio Output] wcaps 0x611: Stereo Digital
> > Converter: stream=0, channel=0
> > Digital:
> > Digital category: 0x0
> > IEC Coding Type: 0x0
> > PCM:
> > rates [0x5e0]: 44100 48000 88200 96000 192000
> > bits [0xe]: 16 20 24
> > formats [0x1]: PCM
> > Power states: D0 D1 D2 D3 EPSS
> > Power: setting=D3, actual=D3
> > Node 0x07 [Audio Input] wcaps 0x10051b: Stereo Amp-In
> > Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1
> > Amp-In vals: [0x97 0x97]
> > Converter: stream=0, channel=0
> > SDI-Select: 0
> > PCM:
> > rates [0x560]: 44100 48000 96000 192000
> > bits [0xe]: 16 20 24
> > formats [0x1]: PCM
> > Power states: D0 D1 D2 D3 EPSS
> > Power: setting=D3, actual=D3
> > Connection: 1
> > 0x24
> > Node 0x08 [Audio Input] wcaps 0x10051b: Stereo Amp-In
> > Control: name="Capture Volume", index=0, device=0
> > ControlAmp: chs=3, dir=In, idx=0, ofs=0
> > Control: name="Capture Switch", index=0, device=0
> > ControlAmp: chs=3, dir=In, idx=0, ofs=0
> > Device: name="ALC3246 Analog", type="Audio", device=0
> > Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1
> > Amp-In vals: [0x80 0x80]
> > Converter: stream=0, channel=0
> > SDI-Select: 0
> > PCM:
> > rates [0x560]: 44100 48000 96000 192000
> > bits [0xe]: 16 20 24
> > formats [0x1]: PCM
> > Power states: D0 D1 D2 D3 EPSS
> > Power: setting=D3, actual=D3
> > Connection: 1
> > 0x23
> > Node 0x09 [Audio Input] wcaps 0x10051b: Stereo Amp-In
> > Amp-In caps: ofs=0x17, nsteps=0x3f, stepsize=0x02, mute=1
> > Amp-In vals: [0x97 0x97]
> > Converter: stream=0, channel=0
> > SDI-Select: 0
> > PCM:
> > rates [0x560]: 44100 48000 96000 192000
> > bits [0xe]: 16 20 24
> > formats [0x1]: PCM
> > Power states: D0 D1 D2 D3 EPSS
> > Power: setting=D3, actual=D3
> > Connection: 1
> > 0x22
> > Node 0x0a [Vendor Defined Widget] wcaps 0xf00000: Mono
> > Node 0x0b [Vendor Defined Widget] wcaps 0xf00000: Mono
> > Node 0x0c [Vendor Defined Widget] wcaps 0xf00000: Mono
> > Node 0x0d [Vendor Defined Widget] wcaps 0xf00000: Mono
> > Node 0x0e [Vendor Defined Widget] wcaps 0xf00000: Mono
> > Node 0x0f [Vendor Defined Widget] wcaps 0xf00000: Mono
> > Node 0x10 [Vendor Defined Widget] wcaps 0xf00000: Mono
> > Node 0x11 [Vendor Defined Widget] wcaps 0xf00000: Mono
> > Node 0x12 [Pin Complex] wcaps 0x40040b: Stereo Amp-In
> > Control: name="Internal Mic Boost Volume", index=0, device=0
> > ControlAmp: chs=3, dir=In, idx=0, ofs=0
> > Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
> > Amp-In vals: [0x00 0x00]
> > Pincap 0x00000020: IN
> > Pin Default 0x90a60140: [Fixed] Mic at Int N/A
> > Conn = Digital, Color = Unknown
> > DefAssociation = 0x4, Sequence = 0x0
> > Misc = NO_PRESENCE
> > Pin-ctls: 0x20: IN
> > Power states: D0 D1 D2 D3 EPSS
> > Power: setting=D3, actual=D3
> > Node 0x13 [Pin Complex] wcaps 0x40040b: Stereo Amp-In
> > Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
> > Amp-In vals: [0x00 0x00]
> > Pincap 0x00000020: IN
> > Pin Default 0x40000000: [N/A] Line Out at Ext N/A
> > Conn = Unknown, Color = Unknown
> > DefAssociation = 0x0, Sequence = 0x0
> > Pin-ctls: 0x00:
> > Power states: D0 D1 D2 D3 EPSS
> > Power: setting=D3, actual=D3
> > Node 0x14 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
> > Control: name="Speaker Playback Switch", index=0, device=0
> > ControlAmp: chs=3, dir=Out, idx=0, ofs=0
> > Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> > Amp-Out vals: [0x00 0x00]
> > Pincap 0x00010014: OUT EAPD Detect
> > EAPD 0x2: EAPD
> > Pin Default 0x90170110: [Fixed] Speaker at Int N/A
> > Conn = Analog, Color = Unknown
> > DefAssociation = 0x1, Sequence = 0x0
> > Misc = NO_PRESENCE
> > Pin-ctls: 0x40: OUT
> > Unsolicited: tag=00, enabled=0
> > Power states: D0 D1 D2 D3 EPSS
> > Power: setting=D3, actual=D3
> > Connection: 1
> > 0x02
> > Node 0x15 [Vendor Defined Widget] wcaps 0xf00000: Mono
> > Node 0x16 [Vendor Defined Widget] wcaps 0xf00000: Mono
> > Node 0x17 [Vendor Defined Widget] wcaps 0xf00000: Mono
> > Node 0x18 [Pin Complex] wcaps 0x40048b: Stereo Amp-In
> > Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
> > Amp-In vals: [0x00 0x00]
> > Pincap 0x00003724: IN Detect
> > Vref caps: HIZ 50 GRD 80 100
> > Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
> > Conn = 1/8, Color = Black
> > DefAssociation = 0xf, Sequence = 0x0
> > Misc = NO_PRESENCE
> > Pin-ctls: 0x20: IN VREF_HIZ
> > Unsolicited: tag=00, enabled=0
> > Power states: D0 D1 D2 D3 EPSS
> > Power: setting=D3, actual=D3
> > Node 0x19 [Pin Complex] wcaps 0x40048b: Stereo Amp-In
> > Control: name="Headset Mic Boost Volume", index=0, device=0
> > ControlAmp: chs=3, dir=In, idx=0, ofs=0
> > Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
> > Amp-In vals: [0x00 0x00]
> > Pincap 0x00003724: IN Detect
> > Vref caps: HIZ 50 GRD 80 100
> > Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
> > Conn = 1/8, Color = Black
> > DefAssociation = 0xf, Sequence = 0x0
> > Misc = NO_PRESENCE
> > Pin-ctls: 0x24: IN VREF_80
> > Unsolicited: tag=00, enabled=0
> > Power states: D0 D1 D2 D3 EPSS
> > Power: setting=D3, actual=D3
> > Node 0x1a [Pin Complex] wcaps 0x40048b: Stereo Amp-In
> > Control: name="Headphone Mic Boost Volume", index=0, device=0
> > ControlAmp: chs=3, dir=In, idx=0, ofs=0
> > Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
> > Amp-In vals: [0x00 0x00]
> > Pincap 0x00003724: IN Detect
> > Vref caps: HIZ 50 GRD 80 100
> > Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
> > Conn = 1/8, Color = Black
> > DefAssociation = 0xf, Sequence = 0x0
> > Misc = NO_PRESENCE
> > Pin-ctls: 0x20: IN VREF_HIZ
> > Unsolicited: tag=00, enabled=0
> > Power states: D0 D1 D2 D3 EPSS
> > Power: setting=D3, actual=D3
> > Node 0x1b [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out
> > Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
> > Amp-In vals: [0x00 0x00]
> > Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> > Amp-Out vals: [0x80 0x80]
> > Pincap 0x00013734: IN OUT EAPD Detect
> > Vref caps: HIZ 50 GRD 80 100
> > EAPD 0x2: EAPD
> > Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
> > Conn = 1/8, Color = Black
> > DefAssociation = 0xf, Sequence = 0x0
> > Misc = NO_PRESENCE
> > Pin-ctls: 0x20: IN VREF_HIZ
> > Unsolicited: tag=00, enabled=0
> > Power states: D0 D1 D2 D3 EPSS
> > Power: setting=D3, actual=D3
> > Connection: 2
> > 0x02* 0x03
> > Node 0x1c [Vendor Defined Widget] wcaps 0xf00000: Mono
> > Node 0x1d [Pin Complex] wcaps 0x400400: Mono
> > Pincap 0x00000020: IN
> > Pin Default 0x40700001: [N/A] Modem Hand at Ext N/A
> > Conn = Unknown, Color = Unknown
> > DefAssociation = 0x0, Sequence = 0x1
> > Pin-ctls: 0x20: IN
> > Power states: D0 D1 D2 D3 EPSS
> > Power: setting=D3, actual=D3
> > Node 0x1e [Pin Complex] wcaps 0x400781: Stereo Digital
> > Pincap 0x00000014: OUT Detect
> > Pin Default 0x421212f2: [N/A] Speaker at Ext Front
> > Conn = 1/4, Color = Black
> > DefAssociation = 0xf, Sequence = 0x2
> > Pin-ctls: 0x40: OUT
> > Unsolicited: tag=00, enabled=0
> > Power states: D0 D1 D2 D3 EPSS
> > Power: setting=D3, actual=D3
> > Connection: 1
> > 0x06
> > Node 0x1f [Vendor Defined Widget] wcaps 0xf00000: Mono
> > Node 0x20 [Vendor Defined Widget] wcaps 0xf00040: Mono
> > Processing caps: benign=0, ncoeff=91
> > Node 0x21 [Pin Complex] wcaps 0x40058d: Stereo Amp-Out
> > Control: name="Headphone Playback Switch", index=0, device=0
> > ControlAmp: chs=3, dir=Out, idx=0, ofs=0
> > Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> > Amp-Out vals: [0x80 0x80]
> > Pincap 0x0001001c: OUT HP EAPD Detect
> > EAPD 0x2: EAPD
> > Pin Default 0x02211020: [Jack] HP Out at Ext Front
> > Conn = 1/8, Color = Black
> > DefAssociation = 0x2, Sequence = 0x0
> > Pin-ctls: 0xc0: OUT HP
> > Unsolicited: tag=01, enabled=1
> > Power states: D0 D1 D2 D3 EPSS
> > Power: setting=D3, actual=D3
> > Connection: 2
> > 0x02 0x03*
> > Node 0x22 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
> > Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> > Amp-In vals: [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80
> 0x80]
> > Connection: 5
> > 0x18 0x19 0x1a 0x1b 0x1d
> > Node 0x23 [Audio Mixer] wcaps 0x20010b: Stereo Amp-In
> > Amp-In caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> > Amp-In vals: [0x80 0x80] [0x00 0x00] [0x80 0x80] [0x80 0x80] [0x80
> 0x80] [0x80 0x80]
> > Connection: 6
> > 0x18 0x19 0x1a 0x1b 0x1d 0x12
> > Node 0x24 [Audio Selector] wcaps 0x300101: Stereo
> > Connection: 2
> > 0x12* 0x13
> > Codec: Intel Kabylake HDMI
> > Address: 2
> > AFG Function Id: 0x1 (unsol 0)
> > Vendor Id: 0x8086280b
> > Subsystem Id: 0x80860101
> > Revision Id: 0x100000
> > No Modem Function Group found
> > Default PCM:
> > rates [0x0]:
> > bits [0x0]:
> > formats [0x0]:
> > Default Amp-In caps: N/A
> > Default Amp-Out caps: N/A
> > State of AFG node 0x01:
> > Power states: D0 D3 CLKSTOP EPSS
> > Power: setting=D0, actual=D0, Clock-stop-OK
> > GPIO: io=0, o=0, i=0, unsolicited=0, wake=0
> > Node 0x02 [Audio Output] wcaps 0x6611: 8-Channels Digital
> > Converter: stream=0, channel=0
> > Digital: Enabled KAE
> > Digital category: 0x0
> > IEC Coding Type: 0x0
> > PCM:
> > rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
> > bits [0x1a]: 16 24 32
> > formats [0x5]: PCM AC3
> > Power states: D0 D3 EPSS
> > Power: setting=D0, actual=D0
> > Node 0x03 [Audio Output] wcaps 0x6611: 8-Channels Digital
> > Converter: stream=0, channel=0
> > Digital: Enabled KAE
> > Digital category: 0x0
> > IEC Coding Type: 0x0
> > PCM:
> > rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
> > bits [0x1a]: 16 24 32
> > formats [0x5]: PCM AC3
> > Power states: D0 D3 EPSS
> > Power: setting=D0, actual=D0
> > Node 0x04 [Audio Output] wcaps 0x6611: 8-Channels Digital
> > Converter: stream=0, channel=0
> > Digital: Enabled KAE
> > Digital category: 0x0
> > IEC Coding Type: 0x0
> > PCM:
> > rates [0x7f0]: 32000 44100 48000 88200 96000 176400 192000
> > bits [0x1a]: 16 24 32
> > formats [0x5]: PCM AC3
> > Power states: D0 D3 EPSS
> > Power: setting=D0, actual=D0
> > Node 0x05 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP
> > Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> > Amp-Out vals: [0x00 0x00]
> > Pincap 0x0b000094: OUT Detect HBR HDMI DP
> > Pin Default 0x18560010: [Jack] Digital Out at Int HDMI
> > Conn = Digital, Color = Unknown
> > DefAssociation = 0x1, Sequence = 0x0
> > Pin-ctls: 0x00:
> > Unsolicited: tag=00, enabled=0
> > Power states: D0 D3 EPSS
> > Power: setting=D0, actual=D0
> > Devices: 0
> > Connection: 0
> > In-driver Connection: 3
> > 0x02 0x03 0x04
> > Node 0x06 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP
> > Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> > Amp-Out vals: [0x00 0x00]
> > Pincap 0x0b000094: OUT Detect HBR HDMI DP
> > Pin Default 0x18560010: [Jack] Digital Out at Int HDMI
> > Conn = Digital, Color = Unknown
> > DefAssociation = 0x1, Sequence = 0x0
> > Pin-ctls: 0x00:
> > Unsolicited: tag=00, enabled=0
> > Power states: D0 D3 EPSS
> > Power: setting=D0, actual=D0
> > Devices: 0
> > Connection: 0
> > In-driver Connection: 3
> > 0x02 0x03 0x04
> > Node 0x07 [Pin Complex] wcaps 0x40778d: 8-Channels Digital Amp-Out CP
> > Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
> > Amp-Out vals: [0x00 0x00]
> > Pincap 0x0b000094: OUT Detect HBR HDMI DP
> > Pin Default 0x18560010: [Jack] Digital Out at Int HDMI
> > Conn = Digital, Color = Unknown
> > DefAssociation = 0x1, Sequence = 0x0
> > Pin-ctls: 0x00:
> > Unsolicited: tag=00, enabled=0
> > Power states: D0 D3 EPSS
> > Power: setting=D0, actual=D0
> > Devices: 0
> > Connection: 0
> > In-driver Connection: 3
> > 0x02 0x03 0x04
> > Node 0x08 [Vendor Defined Widget] wcaps 0xf00000: Mono
> > --endcollapse--
> >
> >
> > !!ALSA Device nodes
> > !!-----------------
> >
> > crw-rw----+ 1 root audio 116, 11 Jan 7 21:15 /dev/snd/controlC0
> > crw-rw----+ 1 root audio 116, 9 Jan 7 21:15 /dev/snd/hwC0D0
> > crw-rw----+ 1 root audio 116, 10 Jan 7 21:15 /dev/snd/hwC0D2
> > crw-rw----+ 1 root audio 116, 3 Jan 7 21:23 /dev/snd/pcmC0D0c
> > crw-rw----+ 1 root audio 116, 2 Jan 7 21:28 /dev/snd/pcmC0D0p
> > crw-rw----+ 1 root audio 116, 8 Jan 7 21:15 /dev/snd/pcmC0D10p
> > crw-rw----+ 1 root audio 116, 4 Jan 7 21:15 /dev/snd/pcmC0D3p
> > crw-rw----+ 1 root audio 116, 5 Jan 7 21:15 /dev/snd/pcmC0D7p
> > crw-rw----+ 1 root audio 116, 6 Jan 7 21:15 /dev/snd/pcmC0D8p
> > crw-rw----+ 1 root audio 116, 7 Jan 7 21:15 /dev/snd/pcmC0D9p
> > crw-rw----+ 1 root audio 116, 1 Jan 7 21:15 /dev/snd/seq
> > crw-rw----+ 1 root audio 116, 33 Jan 7 21:15 /dev/snd/timer
> >
> > /dev/snd/by-path:
> > total 0
> > drwxr-xr-x. 2 root root 60 Jan 7 21:15 .
> > drwxr-xr-x. 3 root root 300 Jan 7 21:15 ..
> > lrwxrwxrwx. 1 root root 12 Jan 7 21:15 pci-0000:00:1f.3 -> ../controlC0
> >
> >
> > !!ALSA configuration files
> > !!------------------------
> >
> > !!System wide config file (/etc/asound.conf)
> >
> > #
> > # Place your global alsa-lib configuration here...
> > #
> >
> >
> > !!Aplay/Arecord output
> > !!--------------------
> >
> > APLAY
> >
> > **** List of PLAYBACK Hardware Devices ****
> > card 0: PCH [HDA Intel PCH], device 0: ALC3246 Analog [ALC3246 Analog]
> > Subdevices: 1/1
> > Subdevice #0: subdevice #0
> > card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
> > Subdevices: 1/1
> > Subdevice #0: subdevice #0
> > card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
> > Subdevices: 1/1
> > Subdevice #0: subdevice #0
> > card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
> > Subdevices: 1/1
> > Subdevice #0: subdevice #0
> > card 0: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3]
> > Subdevices: 1/1
> > Subdevice #0: subdevice #0
> > card 0: PCH [HDA Intel PCH], device 10: HDMI 4 [HDMI 4]
> > Subdevices: 1/1
> > Subdevice #0: subdevice #0
> >
> > ARECORD
> >
> > **** List of CAPTURE Hardware Devices ****
> > card 0: PCH [HDA Intel PCH], device 0: ALC3246 Analog [ALC3246 Analog]
> > Subdevices: 1/1
> > Subdevice #0: subdevice #0
> >
> > !!Amixer output
> > !!-------------
> >
> > !!-------Mixer controls for card 0 [PCH]
> >
> > Card hw:0 'PCH'/'HDA Intel PCH at 0xec248000 irq 131'
> > Mixer name : 'Realtek ALC3246'
> > Components : 'HDA:10ec0256,102807a0,00100002
> HDA:8086280b,80860101,00100000'
> > Controls : 56
> > Simple ctrls : 18
> > Simple mixer control 'Master',0
> > Capabilities: pvolume pvolume-joined pswitch pswitch-joined
> > Playback channels: Mono
> > Limits: Playback 0 - 87
> > Mono: Playback 59 [68%] [-21.00dB] [on]
> > Simple mixer control 'Headphone',0
> > Capabilities: pvolume pswitch
> > Playback channels: Front Left - Front Right
> > Limits: Playback 0 - 87
> > Mono:
> > Front Left: Playback 0 [0%] [-65.25dB] [off]
> > Front Right: Playback 0 [0%] [-65.25dB] [off]
> > Simple mixer control 'Headphone Mic',0
> > Capabilities: cswitch cswitch-joined cswitch-exclusive
> > Capture exclusive group: 0
> > Capture channels: Mono
> > Mono: Capture [off]
> > Simple mixer control 'Headphone Mic Boost',0
> > Capabilities: volume
> > Playback channels: Front Left - Front Right
> > Capture channels: Front Left - Front Right
> > Limits: 0 - 3
> > Front Left: 0 [0%] [0.00dB]
> > Front Right: 0 [0%] [0.00dB]
> > Simple mixer control 'Speaker',0
> > Capabilities: pvolume pswitch
> > Playback channels: Front Left - Front Right
> > Limits: Playback 0 - 87
> > Mono:
> > Front Left: Playback 87 [100%] [0.00dB] [on]
> > Front Right: Playback 87 [100%] [0.00dB] [on]
> > Simple mixer control 'PCM',0
> > Capabilities: pvolume
> > Playback channels: Front Left - Front Right
> > Limits: Playback 0 - 255
> > Mono:
> > Front Left: Playback 255 [100%] [0.00dB]
> > Front Right: Playback 255 [100%] [0.00dB]
> > Simple mixer control 'Mic Mute-LED Mode',0
> > Capabilities: enum
> > Items: 'On' 'Off' 'Follow Capture' 'Follow Mute'
> > Item0: 'Follow Capture'
> > Simple mixer control 'IEC958',0
> > Capabilities: pswitch pswitch-joined
> > Playback channels: Mono
> > Mono: Playback [off]
> > Simple mixer control 'IEC958',1
> > Capabilities: pswitch pswitch-joined
> > Playback channels: Mono
> > Mono: Playback [off]
> > Simple mixer control 'IEC958',2
> > Capabilities: pswitch pswitch-joined
> > Playback channels: Mono
> > Mono: Playback [off]
> > Simple mixer control 'IEC958',3
> > Capabilities: pswitch pswitch-joined
> > Playback channels: Mono
> > Mono: Playback [off]
> > Simple mixer control 'IEC958',4
> > Capabilities: pswitch pswitch-joined
> > Playback channels: Mono
> > Mono: Playback [off]
> > Simple mixer control 'Capture',0
> > Capabilities: cvolume cswitch
> > Capture channels: Front Left - Front Right
> > Limits: Capture 0 - 63
> > Front Left: Capture 0 [0%] [-17.25dB] [off]
> > Front Right: Capture 0 [0%] [-17.25dB] [off]
> > Simple mixer control 'Auto-Mute Mode',0
> > Capabilities: enum
> > Items: 'Disabled' 'Enabled'
> > Item0: 'Enabled'
> > Simple mixer control 'Headset Mic',0
> > Capabilities: cswitch cswitch-joined cswitch-exclusive
> > Capture exclusive group: 0
> > Capture channels: Mono
> > Mono: Capture [on]
> > Simple mixer control 'Headset Mic Boost',0
> > Capabilities: volume
> > Playback channels: Front Left - Front Right
> > Capture channels: Front Left - Front Right
> > Limits: 0 - 3
> > Front Left: 0 [0%] [0.00dB]
> > Front Right: 0 [0%] [0.00dB]
> > Simple mixer control 'Internal Mic',0
> > Capabilities: cswitch cswitch-joined cswitch-exclusive
> > Capture exclusive group: 0
> > Capture channels: Mono
> > Mono: Capture [off]
> > Simple mixer control 'Internal Mic Boost',0
> > Capabilities: volume
> > Playback channels: Front Left - Front Right
> > Capture channels: Front Left - Front Right
> > Limits: 0 - 3
> > Front Left: 0 [0%] [0.00dB]
> > Front Right: 0 [0%] [0.00dB]
> >
> >
> > !!Alsactl output
> > !!--------------
> >
> > --startcollapse--
> > state.PCH {
> > control.1 {
> > iface MIXER
> > name 'Headphone Playback Volume'
> > value.0 0
> > value.1 0
> > comment {
> > access 'read write'
> > type INTEGER
> > count 2
> > range '0 - 87'
> > dbmin -6525
> > dbmax 0
> > dbvalue.0 -6525
> > dbvalue.1 -6525
> > }
> > }
> > control.2 {
> > iface MIXER
> > name 'Headphone Playback Switch'
> > value.0 false
> > value.1 false
> > comment {
> > access 'read write'
> > type BOOLEAN
> > count 2
> > }
> > }
> > control.3 {
> > iface MIXER
> > name 'Speaker Playback Volume'
> > value.0 87
> > value.1 87
> > comment {
> > access 'read write'
> > type INTEGER
> > count 2
> > range '0 - 87'
> > dbmin -6525
> > dbmax 0
> > dbvalue.0 0
> > dbvalue.1 0
> > }
> > }
> > control.4 {
> > iface MIXER
> > name 'Speaker Playback Switch'
> > value.0 true
> > value.1 true
> > comment {
> > access 'read write'
> > type BOOLEAN
> > count 2
> > }
> > }
> > control.5 {
> > iface MIXER
> > name 'Auto-Mute Mode'
> > value Enabled
> > comment {
> > access 'read write'
> > type ENUMERATED
> > count 1
> > item.0 Disabled
> > item.1 Enabled
> > }
> > }
> > control.6 {
> > iface MIXER
> > name 'Capture Source'
> > value 'Headset Mic'
> > comment {
> > access 'read write'
> > type ENUMERATED
> > count 1
> > item.0 'Headset Mic'
> > item.1 'Headphone Mic'
> > item.2 'Internal Mic'
> > }
> > }
> > control.7 {
> > iface MIXER
> > name 'Capture Volume'
> > value.0 0
> > value.1 0
> > comment {
> > access 'read write'
> > type INTEGER
> > count 2
> > range '0 - 63'
> > dbmin -1725
> > dbmax 3000
> > dbvalue.0 -1725
> > dbvalue.1 -1725
> > }
> > }
> > control.8 {
> > iface MIXER
> > name 'Capture Switch'
> > value.0 false
> > value.1 false
> > comment {
> > access 'read write'
> > type BOOLEAN
> > count 2
> > }
> > }
> > control.9 {
> > iface MIXER
> > name 'Headset Mic Boost Volume'
> > value.0 0
> > value.1 0
> > comment {
> > access 'read write'
> > type INTEGER
> > count 2
> > range '0 - 3'
> > dbmin 0
> > dbmax 3000
> > dbvalue.0 0
> > dbvalue.1 0
> > }
> > }
> > control.10 {
> > iface MIXER
> > name 'Headphone Mic Boost Volume'
> > value.0 0
> > value.1 0
> > comment {
> > access 'read write'
> > type INTEGER
> > count 2
> > range '0 - 3'
> > dbmin 0
> > dbmax 3000
> > dbvalue.0 0
> > dbvalue.1 0
> > }
> > }
> > control.11 {
> > iface MIXER
> > name 'Internal Mic Boost Volume'
> > value.0 0
> > value.1 0
> > comment {
> > access 'read write'
> > type INTEGER
> > count 2
> > range '0 - 3'
> > dbmin 0
> > dbmax 3000
> > dbvalue.0 0
> > dbvalue.1 0
> > }
> > }
> > control.12 {
> > iface MIXER
> > name 'Mic Mute-LED Mode'
> > value 'Follow Capture'
> > comment {
> > access 'read write'
> > type ENUMERATED
> > count 1
> > item.0 On
> > item.1 Off
> > item.2 'Follow Capture'
> > item.3 'Follow Mute'
> > }
> > }
> > control.13 {
> > iface MIXER
> > name 'Master Playback Volume'
> > value 59
> > comment {
> > access 'read write'
> > type INTEGER
> > count 1
> > range '0 - 87'
> > dbmin -6525
> > dbmax 0
> > dbvalue.0 -2100
> > }
> > }
> > control.14 {
> > iface MIXER
> > name 'Master Playback Switch'
> > value true
> > comment {
> > access 'read write'
> > type BOOLEAN
> > count 1
> > }
> > }
> > control.15 {
> > iface CARD
> > name 'Headset Mic Phantom Jack'
> > value true
> > comment {
> > access read
> > type BOOLEAN
> > count 1
> > }
> > }
> > control.16 {
> > iface CARD
> > name 'Headphone Mic Jack'
> > value false
> > comment {
> > access read
> > type BOOLEAN
> > count 1
> > }
> > }
> > control.17 {
> > iface CARD
> > name 'Internal Mic Phantom Jack'
> > value true
> > comment {
> > access read
> > type BOOLEAN
> > count 1
> > }
> > }
> > control.18 {
> > iface CARD
> > name 'Speaker Phantom Jack'
> > value true
> > comment {
> > access read
> > type BOOLEAN
> > count 1
> > }
> > }
> > control.19 {
> > iface PCM
> > name 'Playback Channel Map'
> > value.0 0
> > value.1 0
> > comment {
> > access read
> > type INTEGER
> > count 2
> > range '0 - 36'
> > }
> > }
> > control.20 {
> > iface PCM
> > name 'Capture Channel Map'
> > value.0 0
> > value.1 0
> > comment {
> > access read
> > type INTEGER
> > count 2
> > range '0 - 36'
> > }
> > }
> > control.21 {
> > iface CARD
> > name 'HDMI/DP,pcm=3 Jack'
> > value false
> > comment {
> > access read
> > type BOOLEAN
> > count 1
> > }
> > }
> > control.22 {
> > iface MIXER
> > name 'IEC958 Playback Con Mask'
> > value
> '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
> > comment {
> > access read
> > type IEC958
> > count 1
> > }
> > }
> > control.23 {
> > iface MIXER
> > name 'IEC958 Playback Pro Mask'
> > value
> '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
> > comment {
> > access read
> > type IEC958
> > count 1
> > }
> > }
> > control.24 {
> > iface MIXER
> > name 'IEC958 Playback Default'
> > value
> '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
> > comment {
> > access 'read write'
> > type IEC958
> > count 1
> > }
> > }
> > control.25 {
> > iface MIXER
> > name 'IEC958 Playback Switch'
> > value false
> > comment {
> > access 'read write'
> > type BOOLEAN
> > count 1
> > }
> > }
> > control.26 {
> > iface PCM
> > device 3
> > name ELD
> > value ''
> > comment {
> > access 'read volatile'
> > type BYTES
> > count 0
> > }
> > }
> > control.27 {
> > iface CARD
> > name 'HDMI/DP,pcm=7 Jack'
> > value false
> > comment {
> > access read
> > type BOOLEAN
> > count 1
> > }
> > }
> > control.28 {
> > iface MIXER
> > name 'IEC958 Playback Con Mask'
> > index 1
> > value
> '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
> > comment {
> > access read
> > type IEC958
> > count 1
> > }
> > }
> > control.29 {
> > iface MIXER
> > name 'IEC958 Playback Pro Mask'
> > index 1
> > value
> '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
> > comment {
> > access read
> > type IEC958
> > count 1
> > }
> > }
> > control.30 {
> > iface MIXER
> > name 'IEC958 Playback Default'
> > index 1
> > value
> '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
> > comment {
> > access 'read write'
> > type IEC958
> > count 1
> > }
> > }
> > control.31 {
> > iface MIXER
> > name 'IEC958 Playback Switch'
> > index 1
> > value false
> > comment {
> > access 'read write'
> > type BOOLEAN
> > count 1
> > }
> > }
> > control.32 {
> > iface PCM
> > device 7
> > name ELD
> > value ''
> > comment {
> > access 'read volatile'
> > type BYTES
> > count 0
> > }
> > }
> > control.33 {
> > iface CARD
> > name 'HDMI/DP,pcm=8 Jack'
> > value false
> > comment {
> > access read
> > type BOOLEAN
> > count 1
> > }
> > }
> > control.34 {
> > iface MIXER
> > name 'IEC958 Playback Con Mask'
> > index 2
> > value
> '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
> > comment {
> > access read
> > type IEC958
> > count 1
> > }
> > }
> > control.35 {
> > iface MIXER
> > name 'IEC958 Playback Pro Mask'
> > index 2
> > value
> '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
> > comment {
> > access read
> > type IEC958
> > count 1
> > }
> > }
> > control.36 {
> > iface MIXER
> > name 'IEC958 Playback Default'
> > index 2
> > value
> '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
> > comment {
> > access 'read write'
> > type IEC958
> > count 1
> > }
> > }
> > control.37 {
> > iface MIXER
> > name 'IEC958 Playback Switch'
> > index 2
> > value false
> > comment {
> > access 'read write'
> > type BOOLEAN
> > count 1
> > }
> > }
> > control.38 {
> > iface PCM
> > device 8
> > name ELD
> > value ''
> > comment {
> > access 'read volatile'
> > type BYTES
> > count 0
> > }
> > }
> > control.39 {
> > iface CARD
> > name 'HDMI/DP,pcm=9 Jack'
> > value false
> > comment {
> > access read
> > type BOOLEAN
> > count 1
> > }
> > }
> > control.40 {
> > iface MIXER
> > name 'IEC958 Playback Con Mask'
> > index 3
> > value
> '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
> > comment {
> > access read
> > type IEC958
> > count 1
> > }
> > }
> > control.41 {
> > iface MIXER
> > name 'IEC958 Playback Pro Mask'
> > index 3
> > value
> '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
> > comment {
> > access read
> > type IEC958
> > count 1
> > }
> > }
> > control.42 {
> > iface MIXER
> > name 'IEC958 Playback Default'
> > index 3
> > value
> '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
> > comment {
> > access 'read write'
> > type IEC958
> > count 1
> > }
> > }
> > control.43 {
> > iface MIXER
> > name 'IEC958 Playback Switch'
> > index 3
> > value false
> > comment {
> > access 'read write'
> > type BOOLEAN
> > count 1
> > }
> > }
> > control.44 {
> > iface PCM
> > device 9
> > name ELD
> > value ''
> > comment {
> > access 'read volatile'
> > type BYTES
> > count 0
> > }
> > }
> > control.45 {
> > iface CARD
> > name 'HDMI/DP,pcm=10 Jack'
> > value false
> > comment {
> > access read
> > type BOOLEAN
> > count 1
> > }
> > }
> > control.46 {
> > iface MIXER
> > name 'IEC958 Playback Con Mask'
> > index 4
> > value
> '0fff000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
> > comment {
> > access read
> > type IEC958
> > count 1
> > }
> > }
> > control.47 {
> > iface MIXER
> > name 'IEC958 Playback Pro Mask'
> > index 4
> > value
> '0f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
> > comment {
> > access read
> > type IEC958
> > count 1
> > }
> > }
> > control.48 {
> > iface MIXER
> > name 'IEC958 Playback Default'
> > index 4
> > value
> '0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
> > comment {
> > access 'read write'
> > type IEC958
> > count 1
> > }
> > }
> > control.49 {
> > iface MIXER
> > name 'IEC958 Playback Switch'
> > index 4
> > value false
> > comment {
> > access 'read write'
> > type BOOLEAN
> > count 1
> > }
> > }
> > control.50 {
> > iface PCM
> > device 10
> > name ELD
> > value ''
> > comment {
> > access 'read volatile'
> > type BYTES
> > count 0
> > }
> > }
> > control.51 {
> > iface PCM
> > device 3
> > name 'Playback Channel Map'
> > value.0 0
> > value.1 0
> > value.2 0
> > value.3 0
> > value.4 0
> > value.5 0
> > value.6 0
> > value.7 0
> > comment {
> > access 'read write'
> > type INTEGER
> > count 8
> > range '0 - 36'
> > }
> > }
> > control.52 {
> > iface PCM
> > device 7
> > name 'Playback Channel Map'
> > value.0 0
> > value.1 0
> > value.2 0
> > value.3 0
> > value.4 0
> > value.5 0
> > value.6 0
> > value.7 0
> > comment {
> > access 'read write'
> > type INTEGER
> > count 8
> > range '0 - 36'
> > }
> > }
> > control.53 {
> > iface PCM
> > device 8
> > name 'Playback Channel Map'
> > value.0 0
> > value.1 0
> > value.2 0
> > value.3 0
> > value.4 0
> > value.5 0
> > value.6 0
> > value.7 0
> > comment {
> > access 'read write'
> > type INTEGER
> > count 8
> > range '0 - 36'
> > }
> > }
> > control.54 {
> > iface PCM
> > device 9
> > name 'Playback Channel Map'
> > value.0 0
> > value.1 0
> > value.2 0
> > value.3 0
> > value.4 0
> > value.5 0
> > value.6 0
> > value.7 0
> > comment {
> > access 'read write'
> > type INTEGER
> > count 8
> > range '0 - 36'
> > }
> > }
> > control.55 {
> > iface PCM
> > device 10
> > name 'Playback Channel Map'
> > value.0 0
> > value.1 0
> > value.2 0
> > value.3 0
> > value.4 0
> > value.5 0
> > value.6 0
> > value.7 0
> > comment {
> > access 'read write'
> > type INTEGER
> > count 8
> > range '0 - 36'
> > }
> > }
> > control.56 {
> > iface MIXER
> > name 'PCM Playback Volume'
> > value.0 255
> > value.1 255
> > comment {
> > access 'read write user'
> > type INTEGER
> > count 2
> > range '0 - 255'
> > tlv '0000000100000008ffffec1400000014'
> > dbmin -5100
> > dbmax 0
> > dbvalue.0 0
> > dbvalue.1 0
> > }
> > }
> > }
> > --endcollapse--
> >
> >
> > !!All Loaded Modules
> > !!------------------
> >
> > Module
> > fuse
> > bluetooth
> > ecdh_generic
> > ccm
> > vfat
> > fat
> > arc4
> > iwlmvm
> > snd_soc_skl
> > snd_soc_skl_ipc
> > snd_soc_sst_ipc
> > snd_soc_sst_dsp
> > snd_hda_ext_core
> > snd_soc_acpi_intel_match
> > mac80211
> > snd_soc_acpi
> > snd_soc_core
> > snd_hda_codec_hdmi
> > iwlwifi
> > joydev
> > snd_compress
> > ac97_bus
> > snd_pcm_dmaengine
> > snd_hda_codec_realtek
> > snd_hda_codec_generic
> > mei_wdt
> > hid_alps
> > wmi_bmof
> > dell_wmi
> > intel_wmi_thunderbolt
> > uvcvideo
> > cfg80211
> > snd_hda_intel
> > dell_rbtn
> > videobuf2_vmalloc
> > videobuf2_memops
> > snd_hda_codec
> > dell_laptop
> > videobuf2_v4l2
> > intel_rapl
> > videobuf2_common
> > dell_smbios
> > dell_wmi_descriptor
> > x86_pkg_temp_thermal
> > dcdbas
> > intel_powerclamp
> > snd_hda_core
> > coretemp
> > dell_smm_hwmon
> > kvm_intel
> > snd_hwdep
> > videodev
> > snd_seq
> > intel_cstate
> > intel_uncore
> > snd_seq_device
> > e1000e
> > snd_pcm
> > intel_rapl_perf
> > media
> > snd_timer
> > snd
> > i2c_i801
> > soundcore
> > mei_me
> > mei
> > rtsx_pci_ms
> > rfkill
> > memstick
> > processor_thermal_device
> > intel_soc_dts_iosf
> > idma64
> > intel_pch_thermal
> > intel_lpss_pci
> > wmi
> > int3400_thermal
> > acpi_thermal_rel
> > intel_lpss_acpi
> > intel_lpss
> > int3403_thermal
> > int340x_thermal_zone
> > acpi_pad
> > intel_hid
> > pcc_cpufreq
> > sparse_keymap
> > dm_crypt
> > i915
> > kvmgt
> > mdev
> > vfio
> > kvm
> > rtsx_pci_sdmmc
> > mmc_core
> > irqbypass
> > i2c_algo_bit
> > drm_kms_helper
> > crct10dif_pclmul
> > crc32_pclmul
> > crc32c_intel
> > drm
> > ghash_clmulni_intel
> > serio_raw
> > rtsx_pci
> > i2c_hid
> > video
> >
> >
> > !!Sysfs Files
> > !!-----------
> >
> > /sys/class/sound/hwC0D0/init_pin_configs:
> > 0x12 0x90a60140
> > 0x13 0x40000000
> > 0x14 0x90170110
> > 0x18 0x411111f0
> > 0x19 0x411111f0
> > 0x1a 0x411111f0
> > 0x1b 0x411111f0
> > 0x1d 0x40700001
> > 0x1e 0x421212f2
> > 0x21 0x02211020
> >
> > /sys/class/sound/hwC0D0/driver_pin_configs:
> > 0x19 0x01a1913c
> > 0x1a 0x01a1913d
> >
> > /sys/class/sound/hwC0D0/user_pin_configs:
> >
> > /sys/class/sound/hwC0D0/init_verbs:
> >
> > /sys/class/sound/hwC0D0/hints:
> >
> > /sys/class/sound/hwC0D2/init_pin_configs:
> > 0x05 0x18560010
> > 0x06 0x18560010
> > 0x07 0x18560010
> >
> > /sys/class/sound/hwC0D2/driver_pin_configs:
> >
> > /sys/class/sound/hwC0D2/user_pin_configs:
> >
> > /sys/class/sound/hwC0D2/init_verbs:
> >
> > /sys/class/sound/hwC0D2/hints:
> >
> >
> > !!ALSA/HDA dmesg
> > !!--------------
> >
> > [ 0.268744] ACPI: Added _OSI(Linux-Dell-Video)
> > [ 0.268744] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio)
> > [ 0.310469] ACPI: 10 ACPI AML tables successfully acquired and loaded
> > --
> > [ 12.041224] e1000e 0000:00:1f.6 0000:00:1f.6 (uninitialized):
> registered PHC clock
> > [ 12.071264] snd_hda_intel 0000:00:1f.3: enabling device (0000 -> 0002)
> > [ 12.072382] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops
> i915_audio_component_bind_ops [i915])
> > [ 12.077227] input: Dell WMI hotkeys as
> /devices/platform/PNP0C14:01/wmi_bus/wmi_bus-PNP0C14:01/9DBB5994-A997-11DA-B012-B622A1EF5492/input/input8
> > --
> > [ 12.153053] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
> > [ 12.178202] snd_hda_codec_realtek hdaudioC0D0: autoconfig for
> ALC3246: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:speaker
> > [ 12.178205] snd_hda_codec_realtek hdaudioC0D0: speaker_outs=0
> (0x0/0x0/0x0/0x0/0x0)
> > [ 12.178207] snd_hda_codec_realtek hdaudioC0D0: hp_outs=1
> (0x21/0x0/0x0/0x0/0x0)
> > [ 12.178208] snd_hda_codec_realtek hdaudioC0D0: mono: mono_out=0x0
> > [ 12.178209] snd_hda_codec_realtek hdaudioC0D0: inputs:
> > [ 12.178211] snd_hda_codec_realtek hdaudioC0D0: Headset Mic=0x19
> > [ 12.178212] snd_hda_codec_realtek hdaudioC0D0: Headphone Mic=0x1a
> > [ 12.178214] snd_hda_codec_realtek hdaudioC0D0: Internal Mic=0x12
> > [ 12.198133] Intel(R) Wireless WiFi driver for Linux
> > --
> > [ 12.498714] iwlwifi 0000:02:00.0 wlp2s0: renamed from wlan0
> > [ 13.248848] input: HDA Intel PCH Headphone Mic as
> /devices/pci0000:00/0000:00:1f.3/sound/card0/input12
> > [ 13.248908] input: HDA Intel PCH HDMI/DP,pcm=3 as
> /devices/pci0000:00/0000:00:1f.3/sound/card0/input13
> > [ 13.248952] input: HDA Intel PCH HDMI/DP,pcm=7 as
> /devices/pci0000:00/0000:00:1f.3/sound/card0/input14
> > [ 13.248995] input: HDA Intel PCH HDMI/DP,pcm=8 as
> /devices/pci0000:00/0000:00:1f.3/sound/card0/input15
> > [ 13.249039] input: HDA Intel PCH HDMI/DP,pcm=9 as
> /devices/pci0000:00/0000:00:1f.3/sound/card0/input16
> > [ 13.249084] input: HDA Intel PCH HDMI/DP,pcm=10 as
> /devices/pci0000:00/0000:00:1f.3/sound/card0/input17
> > [ 13.494851] EXT4-fs (sda2): mounted filesystem with ordered data
> mode. Opts: (null)
> >
> >
> > _______________________________________________
> > Alsa-devel mailing list
> > Alsa-devel(a)alsa-project.org
> > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
1
0
Re: [alsa-devel] [RFC] ASOC: Intel: Skylake: Broken HDaudio controller/link initialization sequences
by Takashi Iwai 11 Jan '19
by Takashi Iwai 11 Jan '19
11 Jan '19
[ Corrected the ML address ]
On Wed, 09 Jan 2019 00:28:30 +0100,
Pierre-Louis Bossart wrote:
>
> Hi,
>
> this is not a patch but a request for comments/feedback on the HDAudio
> controller/link initialization sequences. After the v4.20 merge window
> snafu w/ the HDaudio detection, I spent quite a bit of time to figure
> out why all our HDaudio development devices worked well with the
> Skylake driver, and why Linus' laptop and others didn't due to an HDMI
> initialization issue. Hans de Goede was kind enough to give me SSH
> remote access to his device and while I don't have a formal fix for
> now I found a couple of issues that really need to be fixed so that
> the Skylake driver works by design and not by accident.
>
> See below the programming sequences for the legacy and Intel/Skylake
> drivers. There are obvious discrepancies or broken sequences such as
> :-
>
> 1. the i915 component and display power being set in a work
> queue. Forcing the init to be done upfront fixes the HDMI detection
> issue on Hans' laptop with the correct codec_mask detected.
This is hairy, and likely some timing issue...
> 2. a call to snd_hdac_bus_reset_link() that doesn't seem to be useful
> (done twice)
Better to avoid the unneeded call of this, yeah.
> 3. an initialization of ML (multi-link) registers *before* reading ML
> capabilities on Skylake (only meaningful in the second init) and not
> done in the legacy.
>
> 4. Missing setups for multi-link (done in legacy, not done by Skylake
> drivers)
I have little idea about the ML stuff, sorry.
> 5. set_codec_wakeup() only initialized in legacy
This might be the cause of the missing HDMI codec.
The wakeup handling was added years ago for assuring that the i915
power-well turned on during probe and resume. Looking at the git log,
the initial commit was 0a6735215350
ALSA: hda - reset display codec when power on
> 6. init/stop/init pattern in Skylake driver. I can't think of any
> reason why this is required both in the probe and the probe workqueue.
Maybe some workaround for messy timing issue? No much idea, either.
thanks,
Takashi
> I don't have any background for most of this, I only took over support
> for HDaudio codecs after the initial contributor moved on, so sharing
> all my findings in the hope that others have memories of these
> different points. I'll get the same laptop as Linus later this week
> and will be able to work more on this, but in the meantime comments
> are welcome.
>
> Thanks
>
> -Pierre
>
> azx_create
> -- azx_bus_init
> ---- snd_hdac_bus_init
> -- azx_probe_work
> ---- azx_probe_continue
> ------ snd_hdac_i915_init(bus)
> ------ snd_hdac_display_power(bus, true);
> ------ azx_first_init(chip);
> -------- snd_hdac_bus_parse_capabilities(bus)
> -------- azx_init_streams
> ---------- snd_hdac_stream_init
> -------- azx_alloc_stream_pages
> -------- azx_init_pci(chip)
> ---------- update_pci_byte(chip->pci, AZX_PCIREG_TCSEL, 0x07, 0);
> -------- hda_intel_init_chip
> ---------- snd_hdac_set_codec_wakeup(bus, true); !!! <<< is this needed?
> ---------- pci_write_config_dword(pci, INTEL_HDA_CGCTL, val);
> ---------- azx_init_chip(chip, full_reset)
> ------------ snd_hdac_bus_init_chip(chip, full_reset)
> -------------- snd_hdac_bus_reset_link(bus, full_reset);
> -------------- azx_int_clear
> -------------- snd_hdac_bus_init_cmd_io
> -------------- azx_int_enable
> <<<< codec_mask 0x5 is correct
> ---------- pci_write_config_dword(pci, INTEL_HDA_CGCTL, val)
> ---------- snd_hdac_set_codec_wakeup(bus, false); !!! <<< is this needed?
> ---------- bxt_reduce_dma_latency !!! <<< is this needed?
> ---------- intel_init_lctl !!! <<< is this needed?
> ------------ intel_ml_lctl_set_power(chip, 0)
> ------------ intel_get_lctl_scf
> ------------ intel_get_lctl_scf(chip, 1)
> ------ azx_probe_codecs
> ------ azx_codec_configure
> ------ snd_hdac_display_power(bus, false);
>
>
> skl_probe
> -- skl_create
> ---- snd_hdac_ext_bus_init
> ------ snd_hdac_bus_init
> -- skl_first_init
>
> <<< this sequence makes no sense. the i915/display is not initialized
> before reading the codec_masks. enabling the usual sequence of
> snd_hdac_i915_init
> and snd_hdac_display_power gives the right codec_mask
>
> ---- snd_hdac_bus_reset_link !!! <<< is this needed, it's done later
> as part of skl_init_chip?
> ------ snd_hdac_chip_writew(bus, STATESTS, STATESTS_INT_MASK);
> ------ snd_hdac_bus_enter_link_reset
> ------ usleep_range(500, 1000);
> ------ snd_hdac_bus_exit_link_reset
> ------ usleep_range(1000, 1200);
> ------ snd_hdac_chip_updatel(bus, GCTL, 0, AZX_GCTL_UNSOL);
> ------ snd_hdac_chip_readw(bus, STATESTS);
> <<<< codec_mask 0x1 is wrong, HDMI not detected
> ---- snd_hdac_bus_parse_capabilities
> ---- snd_hdac_ext_stream_init_all
> ---- skl_init_pci
> ------ skl_update_pci_byte(skl->pci, AZX_PCIREG_TCSEL, 0x07, 0);
> ---- skl_init_chip
> ------ skl_enable_miscbdcge(bus->dev, false);
> ------ snd_hdac_bus_init_chip(bus, full_reset);
> -------- snd_hdac_bus_reset_link(bus, full_reset);
> -------- azx_int_clear
> -------- snd_hdac_bus_init_cmd_io
> -------- azx_int_enable
> <<< next line makes no sense, it's done before the ML capabilities are read
> ------ bus->io_ops->reg_writel(0, hlink->ml_addr + AZX_REG_ML_LOSIDV);
> !!! <<< is this needed?
> ------ skl_enable_miscbdcge(bus->dev, true);
> <<< codec_mask 0x1 is wrong
> -- skl_nhlt_init
> -- skl_init_dsp
> ---- snd_hdac_ext_bus_ppcap_enable(bus, true);
> ---- snd_hdac_ext_bus_ppcap_int_enable(bus, true);
> -- snd_hdac_ext_bus_get_ml_capabilities
> -- snd_hdac_bus_stop_chip
> ---- azx_int_disable(bus);
> ---- azx_int_clear(bus);
> ---- snd_hdac_bus_stop_cmd_io(bus);
> -- skl_probe_work
> ---- skl_i915_init <<< this needs to be done earlier
> ------ snd_hdac_i915_init
> ------ snd_hdac_display_power
> ---- skl_init_chip <<< why do we need to re-initialize again?
> ------ skl_enable_miscbdcge(bus->dev, false);
> ------ snd_hdac_bus_init_chip(bus, full_reset);
> -------- snd_hdac_bus_reset_link(bus, full_reset);
> -------- azx_int_clear
> -------- snd_hdac_bus_init_cmd_io
> -------- azx_int_enable
> ------ bus->io_ops->reg_writel(0, hlink->ml_addr + AZX_REG_ML_LOSIDV);
> ------ skl_enable_miscbdcge(bus->dev, true);
> ---- skl_codec_create
> ------- snd_hdac_bus_stop_chip
> ------- skl_init_chip (on error)
> ---- skl_platform_register
> ---- skl_machine_device_register
> ---- snd_hdac_ext_bus_link_put
> ---- snd_hdac_display_power(bus, false);
>
2
1
[alsa-devel] [PATCH] ALSA: usb-audio: fix CM6206 register definitions
by Amadeusz Sławiński 11 Jan '19
by Amadeusz Sławiński 11 Jan '19
11 Jan '19
fix typo after a recent commit causing headphones to have no sound
Fixes: ad43d528a7ac (ALSA: usb-audio: Define registers for CM6206)
Signed-off-by: Amadeusz Sławiński <amade(a)asmblr.net>
---
sound/usb/quirks.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index 96340f23f86d..ebbadb3a7094 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -768,7 +768,7 @@ static int snd_usb_cm6206_boot_quirk(struct usb_device *dev)
* REG1: PLL binary search enable, soft mute enable.
*/
CM6206_REG1_PLLBIN_EN |
- CM6206_REG1_SOFT_MUTE_EN |
+ CM6206_REG1_SOFT_MUTE_EN,
/*
* REG2: enable output drivers,
* select front channels to the headphone output,
--
2.20.1
3
2
11 Jan '19
Commit daecf46ee0e5 ("ASoC: soc-core: use snd_soc_dai_link_component for
platform") added a new member to the snd_soc_dai_link structure for
storing a pointer for a platform link component. The pointer for this
platform link component was allocated, if not already populated by the
machine driver, using devm_kzalloc() such that the memory would be
automatically freed on error or removal of the soundcard. However, this
introduced a new problem, because if the probing of the soundcard is
deferred, then although the memory allocated for the platform link
component is freed, if the snd_soc_dai_link structure is declared
statically by the machine driver, then the pointer in the DAI link
structure will never be clearer. This means that when the soundcard is
probed again, memory for the platform link component will not be
allocated again because the address of the pointer was not cleared
and this causes sound core to access memory that is no longer valid.
In most cases this causes the following error condition to be triggered
and causes probing the soundcard to fail.
tegra-snd-sgtl5000 sound: ASoC: Both platform name/of_node are set for
sgtl5000
Unfortunately, because this platform link component is allocated before
the DAI links are added to the soundcard, there is no easy way to clear
this pointer on teardown if an error occurs.
The pointer for this platform link component was added for future
proofing and communalising the structures for storing various data.
Although a machine driver maybe used by more than one platform and so
this platform data may vary from platform to platform, there is only
ever a single instance for a given platform. Therefore, rather than
dynamically allocate the platform link component structure, make it a
static member of the snd_soc_dai_link to fix the problem.
It should be noted that if the platform_name of platform_of_node members
of the snd_soc_dai_link structure are populated, these will always be
used regardless of if the new platform.name or platform.of_node members
are populated.
Fixes: daecf46ee0e5 ("ASoC: soc-core: use snd_soc_dai_link_component for platform")
Reported-by: Marcel Ziswiler <marcel.ziswiler(a)toradex.com>
Signed-off-by: Jon Hunter <jonathanh(a)nvidia.com>
---
include/sound/simple_card_utils.h | 2 +-
include/sound/soc.h | 2 +-
sound/soc/generic/audio-graph-card.c | 4 +++-
sound/soc/generic/simple-card-utils.c | 4 ++--
sound/soc/generic/simple-card.c | 6 ++++--
sound/soc/soc-core.c | 18 +++++++-----------
6 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/include/sound/simple_card_utils.h b/include/sound/simple_card_utils.h
index 6d69ed2bd7b1..6d5842c3c09f 100644
--- a/include/sound/simple_card_utils.h
+++ b/include/sound/simple_card_utils.h
@@ -75,7 +75,7 @@ void asoc_simple_card_clk_disable(struct asoc_simple_dai *dai);
&dai_link->codec_dai_name, \
list_name, cells_name, NULL)
#define asoc_simple_card_parse_platform(node, dai_link, list_name, cells_name) \
- asoc_simple_card_parse_dai(node, dai_link->platform, \
+ asoc_simple_card_parse_dai(node, &dai_link->platform, \
&dai_link->platform_of_node, \
NULL, list_name, cells_name, NULL)
int asoc_simple_card_parse_dai(struct device_node *node,
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 8ec1de856ee7..8b7ffc60006a 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -925,7 +925,7 @@ struct snd_soc_dai_link {
*/
const char *platform_name;
struct device_node *platform_of_node;
- struct snd_soc_dai_link_component *platform;
+ struct snd_soc_dai_link_component platform;
int id; /* optional ID for machine driver link identification */
diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c
index 3ec96cdc683b..e961d45ce141 100644
--- a/sound/soc/generic/audio-graph-card.c
+++ b/sound/soc/generic/audio-graph-card.c
@@ -687,7 +687,9 @@ static int graph_probe(struct platform_device *pdev)
for (i = 0; i < li.link; i++) {
dai_link[i].codecs = &dai_props[i].codecs;
dai_link[i].num_codecs = 1;
- dai_link[i].platform = &dai_props[i].platform;
+ dai_link[i].platform.name = dai_props[i].platform.name;
+ dai_link[i].platform.of_node = dai_props[i].platform.of_node;
+ dai_link[i].platform.dai_name = dai_props[i].platform.dai_name;
}
priv->pa_gpio = devm_gpiod_get_optional(dev, "pa", GPIOD_OUT_LOW);
diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simple-card-utils.c
index 336895f7fd1e..74910c7841ec 100644
--- a/sound/soc/generic/simple-card-utils.c
+++ b/sound/soc/generic/simple-card-utils.c
@@ -397,8 +397,8 @@ EXPORT_SYMBOL_GPL(asoc_simple_card_init_dai);
int asoc_simple_card_canonicalize_dailink(struct snd_soc_dai_link *dai_link)
{
/* Assumes platform == cpu */
- if (!dai_link->platform->of_node)
- dai_link->platform->of_node = dai_link->cpu_of_node;
+ if (!dai_link->platform.of_node)
+ dai_link->platform.of_node = dai_link->cpu_of_node;
return 0;
diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c
index 479de236e694..b6402e09bba2 100644
--- a/sound/soc/generic/simple-card.c
+++ b/sound/soc/generic/simple-card.c
@@ -732,7 +732,9 @@ static int simple_probe(struct platform_device *pdev)
for (i = 0; i < li.link; i++) {
dai_link[i].codecs = &dai_props[i].codecs;
dai_link[i].num_codecs = 1;
- dai_link[i].platform = &dai_props[i].platform;
+ dai_link[i].platform.name = dai_props[i].platform.name;
+ dai_link[i].platform.of_node = dai_props[i].platform.of_node;
+ dai_link[i].platform.dai_name = dai_props[i].platform.dai_name;
}
priv->dai_props = dai_props;
@@ -782,7 +784,7 @@ static int simple_probe(struct platform_device *pdev)
codecs->name = cinfo->codec;
codecs->dai_name = cinfo->codec_dai.name;
- platform = dai_link->platform;
+ platform = &dai_link->platform;
platform->name = cinfo->platform;
card->name = (cinfo->card) ? cinfo->card : cinfo->name;
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 0462b3ec977a..466099995e44 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -915,7 +915,7 @@ static int soc_bind_dai_link(struct snd_soc_card *card,
/* find one from the set of registered platforms */
for_each_component(component) {
- if (!snd_soc_is_matching_component(dai_link->platform,
+ if (!snd_soc_is_matching_component(&dai_link->platform,
component))
continue;
@@ -1026,7 +1026,7 @@ static void soc_remove_dai_links(struct snd_soc_card *card)
static int snd_soc_init_platform(struct snd_soc_card *card,
struct snd_soc_dai_link *dai_link)
{
- struct snd_soc_dai_link_component *platform = dai_link->platform;
+ struct snd_soc_dai_link_component *platform = &dai_link->platform;
/*
* FIXME
@@ -1034,14 +1034,10 @@ static int snd_soc_init_platform(struct snd_soc_card *card,
* this function should be removed in the future
*/
/* convert Legacy platform link */
- if (!platform) {
- platform = devm_kzalloc(card->dev,
- sizeof(struct snd_soc_dai_link_component),
- GFP_KERNEL);
- if (!platform)
- return -ENOMEM;
+ if (dai_link->platform_name || dai_link->platform_of_node) {
+ dev_dbg(card->dev,
+ "ASoC: Defaulting to legacy platform data!\n");
- dai_link->platform = platform;
platform->name = dai_link->platform_name;
platform->of_node = dai_link->platform_of_node;
platform->dai_name = NULL;
@@ -1123,7 +1119,7 @@ static int soc_init_dai_link(struct snd_soc_card *card,
* Platform may be specified by either name or OF node, but
* can be left unspecified, and a dummy platform will be used.
*/
- if (link->platform->name && link->platform->of_node) {
+ if (link->platform.name && link->platform.of_node) {
dev_err(card->dev,
"ASoC: Both platform name/of_node are set for %s\n",
link->name);
@@ -1921,7 +1917,7 @@ static void soc_check_tplg_fes(struct snd_soc_card *card)
dev_err(card->dev, "init platform error");
continue;
}
- dai_link->platform->name = component->name;
+ dai_link->platform.name = component->name;
/* convert non BE into BE */
dai_link->no_pcm = 1;
--
2.7.4
3
7
11 Jan '19
Controllers can support multiple Serial Data Out(SDO) lines, for
extended outbound bandwidth, to pump data to all codecs on the link.
Codecs can sample data present on SDO.
Add verbs AC_VERB_GET_STRIPE_CONTROL and AC_VERB_SET_STRIPE_CONTROL
These can be used to program usage of SDO lines for codec.
Signed-off-by: Sameer Pujar <spujar(a)nvidia.com>
Reviewed-by: Mohan Kumar D <mkumard(a)nvidia.com>
Reviewed-by: Ravindra Lokhande <rlokhande(a)nvidia.com>
---
include/sound/hda_verbs.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/sound/hda_verbs.h b/include/sound/hda_verbs.h
index 2a8573a..e36b775 100644
--- a/include/sound/hda_verbs.h
+++ b/include/sound/hda_verbs.h
@@ -66,6 +66,7 @@ enum {
#define AC_VERB_GET_CONFIG_DEFAULT 0x0f1c
/* f20: AFG/MFG */
#define AC_VERB_GET_SUBSYSTEM_ID 0x0f20
+#define AC_VERB_GET_STRIPE_CONTROL 0x0f24
#define AC_VERB_GET_CVT_CHAN_COUNT 0x0f2d
#define AC_VERB_GET_HDMI_DIP_SIZE 0x0f2e
#define AC_VERB_GET_HDMI_ELDD 0x0f2f
@@ -110,6 +111,7 @@ enum {
#define AC_VERB_SET_CONFIG_DEFAULT_BYTES_3 0x71f
#define AC_VERB_SET_EAPD 0x788
#define AC_VERB_SET_CODEC_RESET 0x7ff
+#define AC_VERB_SET_STRIPE_CONTROL 0x724
#define AC_VERB_SET_CVT_CHAN_COUNT 0x72d
#define AC_VERB_SET_HDMI_DIP_INDEX 0x730
#define AC_VERB_SET_HDMI_DIP_DATA 0x731
--
2.7.4
-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information. Any unauthorized review, use, disclosure or distribution
is prohibited. If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------
2
9