Add Freescale ASRC driver
Subsystems (5)
Nicolin Chen
reviewerv3 cover Add Freescale ASRC driver
This series of patches add Freescale ASRC module driver support along with the extra request in imx-sdma structure required by SDMA Device to Device script.
The previous version has been in the maillist for nearly six months without any comment and reply. So I decide to drop the SDMA part's change since this series focus on ASRC support (Later, we can send SDMA part separately.) so that ASRC driver may get upstream first.
Changelog
v3:
* PATCH-1: Added an Acked-by from Shawn Guo
* PATCH-2: Dropped THIS_MODULE as Tobias suggests
* PATCH-2: Use dma_coerce_mask_and_coherent() in fsl_asrc_dma_pcm_new()
* PATCH-2: Added substream check in fsl_asrc_dma_pcm_new()
v2:
* PATCH-1: Dropped the change to SDMA driver.
* PATCH-2: Dropped useless member in private data structures.
* PATCH-2: Refined some comments in fsl_asrc_dma.c driver.
* PATCH-2: Refined commit comments.
Nicolin Chen (2):
ARM: imx: Add the secondary request into the structure for imx-sdma
ASoC: fsl_asrc: Add ASRC ASoC CPU DAI and platform drivers
.../devicetree/bindings/sound/fsl,asrc.txt | 62 ++ include/linux/platform_data/dma-imx.h | 1 + sound/soc/fsl/Kconfig | 9 + sound/soc/fsl/Makefile | 2 + sound/soc/fsl/fsl_asrc.c | 1030 ++++++++++++++++++++ sound/soc/fsl/fsl_asrc.h | 461 +++++++++ sound/soc/fsl/fsl_asrc_dma.c | 386 ++++++++ 7 files changed, 1951 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/fsl,asrc.txt create mode 100644 sound/soc/fsl/fsl_asrc.c create mode 100644 sound/soc/fsl/fsl_asrc.h create mode 100644 sound/soc/fsl/fsl_asrc_dma.c
Signature · 1 line
1.8.4
Nicolin Chen
reviewerPATCH v3 1/2 ARM: imx: Add the secondary request into the structure for imx-sdma
SDMA supports device to device (per_2_per) scripts to handle DMA transfering between two peripheral devices. The per_2_per script, however, needs two dma requests from two sides while the current structure only defined one request.
So this patch just simply adds the secondary request so as to let SDMA and its user to add its implementation later.
[ Both change in the SDMA driver and its users like Freescale ASRC ASoC driver
should be taken along with this change in order to truly support per_2_per sciprts. However, we here make an expediency by adding this first so that we can add either side later since this patch won't break any function and meanwhile it can make merge window more smoothly: we don't need to apply the change inside dmaengine branch via ASoC tree any more. -- Nicolin ]
--- include/linux/platform_data/dma-imx.h | 1 + 1 file changed, 1 insertion(+)
include/linux/platform_data/dma-imx.h +1 -0
@@ -51,6 +51,7 @@ enum imx_dma_prio {struct imx_dma_data {int dma_request;/* DMA request line */ +int dma_request2;/* secondary DMA request line */ enum sdma_peripheral_type peripheral_type;int priority; };
Signature · 1 line
1.8.4
Nicolin Chen
reviewerPATCH v3 2/2 ASoC: fsl_asrc: Add ASRC ASoC CPU DAI and platform drivers
In reply to Nicolin ChenThe Asynchronous Sample Rate Converter (ASRC) converts the sampling rate of a signal associated with an input clock into a signal associated with a different output clock. The driver currently works as a Front End of DPCM with other Back Ends DAI links such as ESAI<->CS42888 and SSI<->WM8962 and SAI. It converts the original sample rate to a common rate supported by Back Ends for playback while converts the common rate of Back Ends to a desired rate for capture. It has 3 pairs to support three different substreams within totally 10 channels.
--- .../devicetree/bindings/sound/fsl,asrc.txt | 62 ++ sound/soc/fsl/Kconfig | 9 + sound/soc/fsl/Makefile | 2 + sound/soc/fsl/fsl_asrc.c | 1030 ++++++++++++++++++++ sound/soc/fsl/fsl_asrc.h | 461 +++++++++ sound/soc/fsl/fsl_asrc_dma.c | 386 ++++++++ 6 files changed, 1950 insertions(+) create mode 100644 Documentation/devicetree/bindings/sound/fsl,asrc.txt create mode 100644 sound/soc/fsl/fsl_asrc.c create mode 100644 sound/soc/fsl/fsl_asrc.h create mode 100644 sound/soc/fsl/fsl_asrc_dma.c
Documentation/devicetree/bindings/sound/fsl,asrc.txt new file +62 -0
@@ -0,0 +1,62 @@ +Freescale Asynchronous Sample Rate Converter (ASRC) Controller + +The Asynchronous Sample Rate Converter (ASRC) converts the sampling rate of a +signal associated with an input clock into a signal associated with a different +output clock. The driver currently works as a Front End of DPCM with other Back +Ends Audio controller such as ESAI, SSI and SAI. It has three pairs to support +three substreams within totally 10 channels. + +Required properties: + + - compatible : Compatible list, must contain "fsl,imx35-asrc" or + "fsl,imx53-asrc". + + - reg : Offset and length of the register set for the device. + + - interrupts : Contains the spdif interrupt. + + - dmas : Generic dma devicetree binding as described in + Documentation/devicetree/bindings/dma/dma.txt. + + - dma-names : Six dmas have to be defined: "rxa", "rxb", "rxc", "txa", "txb", + and "txc". + + - clocks : Contains an entry for each entry in clock-names. + + - clock-names : Includes the following entries: + "mem" Peripheral access clock to access registers. + "ipg" Peripheral clock to driver module. + "asrck_<0-f>" Clock sources for input and output clock. + + - big-endian : If this property is absent, the native endian mode will + be in use as default, or the big endian mode will be in use + for all the device registers. + + - fsl,asrc-rate : Defines a mutual sample rate used by Back End DAI link. + + - fsl,asrc-width : Defines a mutual sample width used by Back End DAI link. + +Example: + +asrc: asrc@02034000 { + compatible = "fsl,imx53-asrc"; + reg = <0x02034000 0x4000>; + interrupts = <0 50 IRQ_TYPE_LEVEL_HIGH>; + clocks = <&clks 107>, <&clks 107>, <&clks 0>, + <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>, + <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>, + <&clks 0>, <&clks 0>, <&clks 0>, <&clks 0>, + <&clks 107>, <&clks 0>, <&clks 0>; + clock-names = "mem", "ipg", "asrck0", + "asrck_1", "asrck_2", "asrck_3", "asrck_4", + "asrck_5", "asrck_6", "asrck_7", "asrck_8", + "asrck_9", "asrck_a", "asrck_b", "asrck_c", + "asrck_d", "asrck_e", "asrck_f"; + dmas = <&sdma 17 23 1>, <&sdma 18 23 1>, <&sdma 19 23 1>, + <&sdma 20 23 1>, <&sdma 21 23 1>, <&sdma 22 23 1>; + dma-names = "rxa", "rxb", "rxc", + "txa", "txb", "txc"; + fsl,asrc-rate = <48000>; + fsl,asrc-width = <16>; + status = "okay"; +};
sound/soc/fsl/Kconfig +9 -0
@@ -2,6 +2,15 @@ menu "SoC Audio for Freescale CPUs" comment "Common SoC Audio options for Freescale CPUs:" +config SND_SOC_FSL_ASRC + tristate "Asynchronous Sample Rate Converter (ASRC) module support" + select REGMAP_MMIO + help + Say Y if you want to add Asynchronous Sample Rate Converter (ASRC) + support for the Freescale CPUs. + This option is only useful for out-of-tree drivers since + in-tree drivers select it automatically. + config SND_SOC_FSL_SAI tristate "Synchronous Audio Interface (SAI) module support" select REGMAP_MMIO
sound/soc/fsl/Makefile +2 -0
@@ -11,6 +11,7 @@ snd-soc-p1022-rdk-objs := p1022_rdk.o obj-$(CONFIG_SND_SOC_P1022_RDK) += snd-soc-p1022-rdk.o # Freescale SSI/DMA/SAI/SPDIF Support +snd-soc-fsl-asrc-objs := fsl_asrc.o fsl_asrc_dma.o snd-soc-fsl-sai-objs := fsl_sai.o snd-soc-fsl-ssi-y := fsl_ssi.o snd-soc-fsl-ssi-$(CONFIG_DEBUG_FS) += fsl_ssi_dbg.o
@@ -18,6 +19,7 @@ snd-soc-fsl-spdif-objs := fsl_spdif.o snd-soc-fsl-esai-objs := fsl_esai.o snd-soc-fsl-utils-objs := fsl_utils.o snd-soc-fsl-dma-objs := fsl_dma.o +obj-$(CONFIG_SND_SOC_FSL_ASRC) += snd-soc-fsl-asrc.o obj-$(CONFIG_SND_SOC_FSL_SAI) += snd-soc-fsl-sai.o obj-$(CONFIG_SND_SOC_FSL_SSI) += snd-soc-fsl-ssi.o obj-$(CONFIG_SND_SOC_FSL_SPDIF) += snd-soc-fsl-spdif.o
sound/soc/fsl/fsl_asrc.c new file +1030 -0
1,030 lines not on this page · raw message
sound/soc/fsl/fsl_asrc.h new file +461 -0
461 lines not on this page · raw message
sound/soc/fsl/fsl_asrc_dma.c new file +386 -0
386 lines not on this page · raw message
Signature · 1 line
1.8.4
Re: [PATCH v3 2/2] ASoC: fsl_asrc: Add ASRC ASoC CPU DAI and platform drivers
Quoted 8 lines · Nicolin Chen
The Asynchronous Sample Rate Converter (ASRC) converts the sampling rate of a signal associated with an input clock into a signal associated with a different output clock. The driver currently works as a Front End of DPCM with other Back Ends DAI links such as ESAI<->CS42888 and SSI<->WM8962 and SAI. It converts the original sample rate to a common rate supported by Back Ends for playback while converts the common rate of Back Ends to a desired rate for capture. It has 3 pairs to support three different substreams within totally 10 channels.
(...)
Quoted 20 lines
Documentation/devicetree/bindings/sound/fsl,asrc.txt new file +20
-0+Required properties: + + - compatible : Compatible list, must contain "fsl,imx35-asrc" or + "fsl,imx53-asrc". + + - reg : Offset and length of the register set for the device. + + - interrupts : Contains the spdif interrupt. + + - dmas : Generic dma devicetree binding as described in + Documentation/devicetree/bindings/dma/dma.txt. + + - dma-names : Six dmas have to be defined: "rxa", "rxb", "rxc", "txa", "txb", + and "txc". + + - clocks : Contains an entry for each entry in clock-names. + + - clock-names : Includes the following entries: + "mem" Peripheral access clock to access registers. + "ipg" Peripheral clock to driver module.
Documentation/devicetree/bindings/sound/fsl,asrc.txt line 38
Quoted 10 lines
Documentation/devicetree/bindings/sound/fsl,asrc.txt new file +10
-0+ "asrck_<0-f>" Clock sources for input and output clock. + + - big-endian : If this property is absent, the native endian mode will + be in use as default, or the big endian mode will be in use + for all the device registers. + + - fsl,asrc-rate : Defines a mutual sample rate used by Back End DAI link. + + - fsl,asrc-width : Defines a mutual sample width used by Back End DAI link. +
indentation for the properties....
- compatible : Should be "fsl,imx35-asrc" or "fsl,imx53-asrc".
- reg : Offset and length of the register set for the device.
....
(...)
Quoted 17 lines
sound/soc/fsl/fsl_asrc.c new file +17
-0+ +static const struct platform_device_id fsl_asrc_devtype[] = { + { + .name ="imx35-asrc" , + .driver_data =IMX35_ASRC , + }, { + .name ="imx53-asrc" , + .driver_data =IMX53_ASRC , + }, { +/* sentinel */ + } +}; +MODULE_DEVICE_TABLE (platform, fsl_asrc_devtype); + +static const struct of_device_id fsl_asrc_ids[] = { + { + .compatible ="fsl,imx35-asrc" ,
sound/soc/fsl/fsl_asrc.c line 116
Quoted 10 lines
sound/soc/fsl/fsl_asrc.c new file +10
-0+ .data = &fsl_asrc_devtype[IMX35_ASRC], + }, { + .compatible = "fsl,imx53-asrc", + .data = &fsl_asrc_devtype[IMX53_ASRC], + }, { +/* sentinel */ + } +}; +MODULE_DEVICE_TABLE (of, fsl_asrc_ids); +
move these ids after probe/remove... every driver follows same thing...
Quoted 14 lines
sound/soc/fsl/fsl_asrc.c new file +14
-0+static irqreturn_t fsl_asrc_isr (int irq,void *dev_id) +{ +struct fsl_asrc *asrc_priv = (struct fsl_asrc *)dev_id; +struct device *dev = &asrc_priv->pdev->dev; +enum asrc_pair_index index; +u32 status; + +regmap_read (asrc_priv->regmap,REG_ASRSTR , &status); + +/* Clean overload error */ +regmap_write (asrc_priv->regmap,REG_ASRSTR ,ASRSTR_AOLE ); + +/* +* We here use dev_dbg() for all exceptions because ASRC itself does
sound/soc/fsl/fsl_asrc.c line 140
Quoted 10 lines
sound/soc/fsl/fsl_asrc.c new file +10
-0+* not care if FIFO overflowed or underrun while a warning in the +* interrupt would result a ridged conversion. +*/ +for (index =ASRC_PAIR_A ; index <ASRC_PAIR_MAX_NUM ; index++) { +if (!asrc_priv->pair[index]) +continue ; + +if (status &ASRSTR_ATQOL ) { + asrc_priv->pair[index]->error |=ASRC_TASK_Q_OVERLOAD ; +dev_dbg (dev,"ASRC Task Queue FIFO overload" );
missed terminating new line (\n)...
sound/soc/fsl/fsl_asrc.c line 145
Quoted 5 lines
sound/soc/fsl/fsl_asrc.c new file +5
-0+ } + +if (status &ASRSTR_AOOL (index)) { + asrc_priv->pair[index]->error |=ASRC_OUTPUT_TASK_OVERLOAD ; +pair_dbg ("Output Task Overload" );
same
sound/soc/fsl/fsl_asrc.c line 150
Quoted 5 lines
sound/soc/fsl/fsl_asrc.c new file +5
-0+ } + +if (status &ASRSTR_AIOL (index)) { + asrc_priv->pair[index]->error |=ASRC_INPUT_TASK_OVERLOAD ; +pair_dbg ("Input Task Overload" );
same
sound/soc/fsl/fsl_asrc.c line 155
Quoted 5 lines
sound/soc/fsl/fsl_asrc.c new file +5
-0+ } + +if (status &ASRSTR_AODO (index)) { + asrc_priv->pair[index]->error |=ASRC_OUTPUT_BUFFER_OVERFLOW ; +pair_dbg ("Output Data Buffer has overflowed" );
same
sound/soc/fsl/fsl_asrc.c line 160
Quoted 5 lines
sound/soc/fsl/fsl_asrc.c new file +5
-0+ } + +if (status &ASRSTR_AIDU (index)) { + asrc_priv->pair[index]->error |=ASRC_INPUT_BUFFER_UNDERRUN ; +pair_dbg ("Input Data Buffer has underflowed" );
same..
Quoted 6 lines
sound/soc/fsl/fsl_asrc.c new file +6
-0+ } + } + +return IRQ_HANDLED ; +} +
(...)
sound/soc/fsl/fsl_asrc.c line 240
Quoted 5 lines
sound/soc/fsl/fsl_asrc.c new file +5
-0+/** +* Configure input and output thresholds +*/ +static int fsl_asrc_set_watermarks (struct fsl_asrc_pair *pair,u32 in,u32 out) +{
static void for function..?
Quoted 13 lines
sound/soc/fsl/fsl_asrc.c new file +13
-0+struct fsl_asrc *asrc_priv = pair->asrc_priv; +enum asrc_pair_index index = pair->index; + +regmap_update_bits (asrc_priv->regmap,REG_ASRMCR (index), + ASRMCRi_EXTTHRSHi_MASK | + ASRMCRi_INFIFO_THRESHOLD_MASK | + ASRMCRi_OUTFIFO_THRESHOLD_MASK, + ASRMCRi_EXTTHRSHi | +ASRMCRi_INFIFO_THRESHOLD (in) | +ASRMCRi_OUTFIFO_THRESHOLD (out)); + +return 0 ; +}
(...)
sound/soc/fsl/fsl_asrc.c line 1016
Quoted 5 lines
sound/soc/fsl/fsl_asrc.c new file +5
-0+static const struct dev_pm_ops fsl_asrc_pm = { + SET_RUNTIME_PM_OPS(fsl_asrc_runtime_suspend, fsl_asrc_runtime_resume, NULL) +SET_SYSTEM_SLEEP_PM_OPS (fsl_asrc_suspend, fsl_asrc_resume) +}; +
move device ids to here...
sound/soc/fsl/fsl_asrc.c line 1025
Quoted 9 lines
sound/soc/fsl/fsl_asrc.c new file +9
-0+static struct platform_driver fsl_asrc_driver = { + .probe = fsl_asrc_probe, + .driver = { + .name ="fsl-asrc" , + .of_match_table = fsl_asrc_ids, + .pm = &fsl_asrc_pm, + }, +}; +module_platform_driver (fsl_asrc_driver);
Thanks...
Signature · 2 lines
Regards, Varka Bhadram.
Re: [PATCH v3 2/2] ASoC: fsl_asrc: Add ASRC ASoC CPU DAI and platform drivers
Hi Varka,
Quoted 172 lines · Varka Bhadram
Quoted 8 lines · Nicolin Chen
The Asynchronous Sample Rate Converter (ASRC) converts the sampling rate of a signal associated with an input clock into a signal associated with a different output clock. The driver currently works as a Front End of DPCM with other Back Ends DAI links such as ESAI<->CS42888 and SSI<->WM8962 and SAI. It converts the original sample rate to a common rate supported by Back Ends for playback while converts the common rate of Back Ends to a desired rate for capture. It has 3 pairs to support three different substreams within totally 10 channels.
(...)
Quoted 20 lines
Documentation/devicetree/bindings/sound/fsl,asrc.txt new file +20
-0+Required properties: + + - compatible : Compatible list, must contain "fsl,imx35-asrc" or + "fsl,imx53-asrc". + + - reg : Offset and length of the register set for the device. + + - interrupts : Contains the spdif interrupt. + + - dmas : Generic dma devicetree binding as described in + Documentation/devicetree/bindings/dma/dma.txt. + + - dma-names : Six dmas have to be defined: "rxa", "rxb", "rxc", "txa", "txb", + and "txc". + + - clocks : Contains an entry for each entry in clock-names. + + - clock-names : Includes the following entries: + "mem" Peripheral access clock to access registers. + "ipg" Peripheral clock to driver module.Documentation/devicetree/bindings/sound/fsl,asrc.txt line 38
Quoted 10 lines
Documentation/devicetree/bindings/sound/fsl,asrc.txt new file +10
-0+ "asrck_<0-f>" Clock sources for input and output clock. + + - big-endian : If this property is absent, the native endian mode will + be in use as default, or the big endian mode will be in use + for all the device registers. + + - fsl,asrc-rate : Defines a mutual sample rate used by Back End DAI link. + + - fsl,asrc-width : Defines a mutual sample width used by Back End DAI link. +indentation for the properties....
- compatible : Should be "fsl,imx35-asrc" or "fsl,imx53-asrc".
- reg : Offset and length of the register set for the device.
....(...)
Quoted 17 lines
sound/soc/fsl/fsl_asrc.c new file +17
-0+ +static const struct platform_device_id fsl_asrc_devtype[] = { + { + .name ="imx35-asrc" , + .driver_data =IMX35_ASRC , + }, { + .name ="imx53-asrc" , + .driver_data =IMX53_ASRC , + }, { +/* sentinel */ + } +}; +MODULE_DEVICE_TABLE (platform, fsl_asrc_devtype); + +static const struct of_device_id fsl_asrc_ids[] = { + { + .compatible ="fsl,imx35-asrc" ,sound/soc/fsl/fsl_asrc.c line 116
Quoted 10 lines
sound/soc/fsl/fsl_asrc.c new file +10
-0+ .data = &fsl_asrc_devtype[IMX35_ASRC], + }, { + .compatible = "fsl,imx53-asrc", + .data = &fsl_asrc_devtype[IMX53_ASRC], + }, { +/* sentinel */ + } +}; +MODULE_DEVICE_TABLE (of, fsl_asrc_ids); +move these ids after probe/remove... every driver follows same thing...
Quoted 14 lines
sound/soc/fsl/fsl_asrc.c new file +14
-0+static irqreturn_t fsl_asrc_isr (int irq,void *dev_id) +{ +struct fsl_asrc *asrc_priv = (struct fsl_asrc *)dev_id; +struct device *dev = &asrc_priv->pdev->dev; +enum asrc_pair_index index; +u32 status; + +regmap_read (asrc_priv->regmap,REG_ASRSTR , &status); + +/* Clean overload error */ +regmap_write (asrc_priv->regmap,REG_ASRSTR ,ASRSTR_AOLE ); + +/* +* We here use dev_dbg() for all exceptions because ASRC itself does sound/soc/fsl/fsl_asrc.c line 140
Quoted 10 lines
sound/soc/fsl/fsl_asrc.c new file +10
-0+* not care if FIFO overflowed or underrun while a warning in the +* interrupt would result a ridged conversion. +*/ +for (index =ASRC_PAIR_A ; index <ASRC_PAIR_MAX_NUM ; index++) { +if (!asrc_priv->pair[index]) +continue ; + +if (status &ASRSTR_ATQOL ) { + asrc_priv->pair[index]->error |=ASRC_TASK_Q_OVERLOAD ; +dev_dbg (dev,"ASRC Task Queue FIFO overload" );missed terminating new line (\n)...
sound/soc/fsl/fsl_asrc.c line 145
Quoted 5 lines
sound/soc/fsl/fsl_asrc.c new file +5
-0+ } + +if (status &ASRSTR_AOOL (index)) { + asrc_priv->pair[index]->error |=ASRC_OUTPUT_TASK_OVERLOAD ; +pair_dbg ("Output Task Overload" );same
sound/soc/fsl/fsl_asrc.c line 150
Quoted 5 lines
sound/soc/fsl/fsl_asrc.c new file +5
-0+ } + +if (status &ASRSTR_AIOL (index)) { + asrc_priv->pair[index]->error |=ASRC_INPUT_TASK_OVERLOAD ; +pair_dbg ("Input Task Overload" );same
sound/soc/fsl/fsl_asrc.c line 155
Quoted 5 lines
sound/soc/fsl/fsl_asrc.c new file +5
-0+ } + +if (status &ASRSTR_AODO (index)) { + asrc_priv->pair[index]->error |=ASRC_OUTPUT_BUFFER_OVERFLOW ; +pair_dbg ("Output Data Buffer has overflowed" );same
sound/soc/fsl/fsl_asrc.c line 160
Quoted 5 lines
sound/soc/fsl/fsl_asrc.c new file +5
-0+ } + +if (status &ASRSTR_AIDU (index)) { + asrc_priv->pair[index]->error |=ASRC_INPUT_BUFFER_UNDERRUN ; +pair_dbg ("Input Data Buffer has underflowed" );same..
Quoted 6 lines
sound/soc/fsl/fsl_asrc.c new file +6
-0+ } + } + +return IRQ_HANDLED ; +} +(...)
sound/soc/fsl/fsl_asrc.c line 240
Quoted 5 lines
sound/soc/fsl/fsl_asrc.c new file +5
-0+/** +* Configure input and output thresholds +*/ +static int fsl_asrc_set_watermarks (struct fsl_asrc_pair *pair,u32 in,u32 out) +{static void for function..?
Quoted 13 lines
sound/soc/fsl/fsl_asrc.c new file +13
-0+struct fsl_asrc *asrc_priv = pair->asrc_priv; +enum asrc_pair_index index = pair->index; + +regmap_update_bits (asrc_priv->regmap,REG_ASRMCR (index), + ASRMCRi_EXTTHRSHi_MASK | + ASRMCRi_INFIFO_THRESHOLD_MASK | + ASRMCRi_OUTFIFO_THRESHOLD_MASK, + ASRMCRi_EXTTHRSHi | +ASRMCRi_INFIFO_THRESHOLD (in) | +ASRMCRi_OUTFIFO_THRESHOLD (out)); + +return 0 ; +}(...)
Quoted 7 lines
sound/soc/fsl/fsl_asrc.c line 1016
Quoted 5 lines
sound/soc/fsl/fsl_asrc.c new file +5
-0+static const struct dev_pm_ops fsl_asrc_pm = { + SET_RUNTIME_PM_OPS(fsl_asrc_runtime_suspend, fsl_asrc_runtime_resume, NULL) +SET_SYSTEM_SLEEP_PM_OPS (fsl_asrc_suspend, fsl_asrc_resume) +}; +move device ids to here...
I'll fix them all in v4.
Thank you,
Nicolin
---
Quoted 17 lines
sound/soc/fsl/fsl_asrc.c line 1025
Quoted 10 lines
sound/soc/fsl/fsl_asrc.c new file +9
-0+static struct platform_driver fsl_asrc_driver = { + .probe = fsl_asrc_probe, + .driver = { + .name ="fsl-asrc" , + .of_match_table = fsl_asrc_ids, + .pm = &fsl_asrc_pm, + }, +}; +module_platform_driver (fsl_asrc_driver);Thanks...
Signature · 2 lines
Regards, Varka Bhadram.
Testing/Debugging alc668 with ASUS N750JK
In reply to Varka BhadramHi,
What is the best way to test/debug the alc668 driver these days?
I am running kernel 3.14.1 (debian testing/sid).
The laptop is an ASUS N750JK.
Sound works for front left/right speakers but the back speakers and external lfe channel is not working on this laptop.
- I have found a couple of kernel bug reports for other ASUS models with this chipset but they are both marked resolved. Should I open a new ticket ?
https://bugzilla.kernel.org/show_bug.cgi?id=65091
https://bugzilla.kernel.org/show_bug.cgi?id=66271
- I can hear static through the front speakers (with pulseaudio test) if I set pins 0x19 and 0x1a to Line Out (Center/LFE) and Internal (Center/LFE) or vice versa with hdajackretask.
Pin 0x16 does not appear to work at all.
I see this output when I apply the config in hdajackretask.
0x12 0x90a601400x14 0x991301100x15 0x042110200x16 0x991341110x18 0x01a198400x19 0x010140110x1a 0x411111f00x1b 0x411111f00x1d 0x40c6852d0x1e 0x014b11800x1f 0x411111f0
1
--
Patrick Shirkey
Boost Hardware Ltd
Re: [PATCH v3 2/2] ASoC: fsl_asrc: Add ASRC ASoC CPU DAI and platform drivers
In reply to Varka BhadramHi Varka,
Regarding a point you suggested.
Quoted 24 lines · Varka Bhadram
On 07/25/2014 09:33 AM, Nicolin Chen wrote:
(...)Quoted 21 lines
sound/soc/fsl/fsl_asrc.c new file +21
-0+ +static const struct platform_device_id fsl_asrc_devtype[] = { + { + .name ="imx35-asrc" , + .driver_data =IMX35_ASRC , + }, { + .name ="imx53-asrc" , + .driver_data =IMX53_ASRC , + }, { +/* sentinel */ + } +}; +MODULE_DEVICE_TABLE (platform, fsl_asrc_devtype); + +static const struct of_device_id fsl_asrc_ids[] = { + { + .compatible ="fsl,imx35-asrc" , + .data = &fsl_asrc_devtype[IMX35_ASRC ], + }, { + .compatible ="fsl,imx53-asrc" , + .data = &fsl_asrc_devtype[IMX53_ASRC ],
Quoted 8 lines
sound/soc/fsl/fsl_asrc.c line 116
Quoted 6 lines
sound/soc/fsl/fsl_asrc.c new file +6
-0+ }, { +/* sentinel */ + } +}; +MODULE_DEVICE_TABLE (of, fsl_asrc_ids); +move these ids after probe/remove... every driver follows same thing...
Hmm.. fsl_asrc_ids is called in probe(), so it's probably not a good choice to put them after probe/remove. And actually not every driver does so. For example drivers/i2c/busses/i2c-s3c2410.c
I think it should be okay to put here if it contains data.
Thank you,
Nicolin
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v3 2/2] ASoC: fsl_asrc: Add ASRC ASoC CPU DAI and platform drivers
In reply to Varka BhadramQuoted 63 lines · Varka Bhadram
Hi Nicolin,
Quoted 36 lines · Nicolin Chen
Hi Varka,
Regarding a point you suggested.
Quoted 23 lines · Varka Bhadram
On 07/25/2014 09:33 AM, Nicolin Chen wrote:
(...)Quoted 20 lines
sound/soc/fsl/fsl_asrc.c new file +20
-0+ +static const struct platform_device_id fsl_asrc_devtype[] = { + { + .name ="imx35-asrc" , + .driver_data =IMX35_ASRC , + }, { + .name ="imx53-asrc" , + .driver_data =IMX53_ASRC , + }, { +/* sentinel */ + } +}; +MODULE_DEVICE_TABLE (platform, fsl_asrc_devtype); + +static const struct of_device_id fsl_asrc_ids[] = { + { + .compatible ="fsl,imx35-asrc" , + .data = &fsl_asrc_devtype[IMX35_ASRC ], + }, { + .compatible ="fsl,imx53-asrc" ,Quoted 8 lines
sound/soc/fsl/fsl_asrc.c line 116
Quoted 7 lines
sound/soc/fsl/fsl_asrc.c new file +7
-0+ .data = &fsl_asrc_devtype[IMX53_ASRC], + }, { +/* sentinel */ + } +}; +MODULE_DEVICE_TABLE (of, fsl_asrc_ids); +move these ids after probe/remove... every driver follows same thing...
Quoted 5 lines
Hmm..
fsl_asrc_idsis called inprobe(), so it's probably not a good choice to put them after probe/remove. And actually not every driver does so. For exampledrivers/i2c/busses/i2c-s3c2410.cI think it should be okay to put here if it contains data.
You are using these ids in the probe .Tt should be above the
probe()so we can seeof_match_device()directly...
and also one more thing that the interrupt handler also would be immediately above theprobe()ex:
staticirqreturn_tfsl_asrc_isr(int irq, void *dev_id){
...
}device ids..
your_probe()
{
...
}
Quoted 6 lines
your_remove()
{
...
}Now every driver that is coming following this style...
I see....
Will follow this style.
Thank you!
Nicolin
---
Quoted 26 lines
If your not using device ids in probe then it would be like
static
irqreturn_tfsl_asrc_isr(int irq, void *dev_id){
...
}
your_probe()
{
...
}
your_remove()
{
...
}device ids..
Thanks...
Signature · 2 lines
Regards, Varka Bhadram.
Re: [PATCH v3 2/2] ASoC: fsl_asrc: Add ASRC ASoC CPU DAI and platform drivers
In reply to Nicolin ChenHi Nicolin,
Quoted 36 lines · Nicolin Chen
Hi Varka,
Regarding a point you suggested.
Quoted 23 lines · Varka Bhadram
On 07/25/2014 09:33 AM, Nicolin Chen wrote:
(...)Quoted 20 lines
sound/soc/fsl/fsl_asrc.c new file +20
-0+ +static const struct platform_device_id fsl_asrc_devtype[] = { + { + .name ="imx35-asrc" , + .driver_data =IMX35_ASRC , + }, { + .name ="imx53-asrc" , + .driver_data =IMX53_ASRC , + }, { +/* sentinel */ + } +}; +MODULE_DEVICE_TABLE (platform, fsl_asrc_devtype); + +static const struct of_device_id fsl_asrc_ids[] = { + { + .compatible ="fsl,imx35-asrc" , + .data = &fsl_asrc_devtype[IMX35_ASRC ], + }, { + .compatible ="fsl,imx53-asrc" ,Quoted 8 lines
sound/soc/fsl/fsl_asrc.c line 116
Quoted 7 lines
sound/soc/fsl/fsl_asrc.c new file +7
-0+ .data = &fsl_asrc_devtype[IMX53_ASRC], + }, { +/* sentinel */ + } +}; +MODULE_DEVICE_TABLE (of, fsl_asrc_ids); +move these ids after probe/remove... every driver follows same thing...
Quoted 5 lines
Hmm..
fsl_asrc_idsis called inprobe(), so it's probably not a good choice to put them after probe/remove. And actually not every driver does so. For exampledrivers/i2c/busses/i2c-s3c2410.cI think it should be okay to put here if it contains data.
You are using these ids in the probe .Tt should be above the probe() so we can see of_match_device() directly...
and also one more thing that the interrupt handler also would be immediately above the probe()
ex:
static irqreturn_t fsl_asrc_isr(int irq, void *dev_id) {
...
}
device ids..
your_probe()
{
...
}
your_remove()
{
...
}
Now every driver that is coming following this style...
If your not using device ids in probe then it would be like
static irqreturn_t fsl_asrc_isr(int irq, void *dev_id) {
...
}
your_probe()
{
...
}
your_remove()
{
...
}
device ids..
Thanks...
Signature · 7 lines
Regards, Varka Bhadram. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Testing/Debugging alc668 with ASUS N750JK
In reply to Patrick ShirkeyQuoted 9 lines
What is the best way to test/debug the alc668 driver these days?
I am running kernel 3.14.1 (debian testing/sid).
The laptop is an ASUS N750JK.
Sound works for front left/right speakers but the back speakers and external lfe channel is not working on this laptop.
You have to post output of alsa-info.sh
Do the BIOS setup all the pin default ?
How many audio jacks ?
Do it support headset or headphone ?
Do you mean there are four internal speakers ?
Do it support surround40 in windows ?
The external sonic master and headphone need two volume controls but alc668 only have three
The best way to test is using latest git version and hda jack retask to
1) four internal speaker and headphone
2) two internal speaker, headphone and external subwoofer
Once you confirm the nodes of the speakers, subwooder
You need to decide whether headphone share the volume controls with the speaker/subwoofer
Quoted 41 lines
- I have found a couple of kernel bug reports for other ASUS models with this chipset but they are both marked resolved. Should I open a new ticket ?
https://bugzilla.kernel.org/show_bug.cgi?id=65091
https://bugzilla.kernel.org/show_bug.cgi?id=66271- I can hear static through the front speakers (with pulseaudio test) if I set pins
0x19and0x1ato Line Out (Center/LFE) and Internal (Center/LFE) or vice versa with hdajackretask.Pin
0x16does not appear to work at all.I see this output when I apply the config in hdajackretask.
0x120x90a601400x140x991301100x150x042110200x160x991341110x180x01a198400x190x010140110x1a0x411111f00x1b0x411111f00x1d0x40c6852d0x1e0x014b11800x1f0x411111f0
1--
Patrick Shirkey
Boost Hardware Ltd
_______________________________________________
Alsa-devel mailing list
[email protected]
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
Re: Testing/Debugging alc668 with ASUS N750JK
Quoted 12 lines · Raymond Yau
Quoted 9 lines
What is the best way to test/debug the alc668 driver these days?
I am running kernel 3.14.1 (debian testing/sid).
The laptop is an ASUS N750JK.
Sound works for front left/right speakers but the back speakers and external lfe channel is not working on this laptop.
You have to post output of
alsa-info.sh
http://boosthardware.com/alsa-info-alc668-n750jk.txt
Quoted 4 lines
Do the BIOS setup all the pin default ?
How many audio jacks ?
Standard headphone/mic + yellow external lfe (sonic master). There is also hdmi but I am not testing that at the moment.
Quoted 4 lines
Do it support headset or headphone ?
Do you mean there are four internal speakers ?
There are two front speakers which produce sound through the front bottom of the case. There are also two back speakers which do not produce sound in my tests so far.
Quoted 2 lines
Do it support surround40 in windows ?
I am not running windows OS on this machine but I suspect it does.
Quoted 5 lines
The external sonic master and headphone need two volume controls but alc668 only have three
The best way to test is using latest git version and hda jack retask to
The process has changed somewhat since I last did this.
Turns out that is not such as easy process with the 3.14.1 kernel in debian sid/testing. From the looks of it I have to compile my own kernel to get all the necessary build files.
make[1]: Leaving directory '/home/patrick/code/alsa/alsa-driver/alsa' make -C /lib/modules/3.14-1-amd64/source SUBDIRS=/home/patrick/code/alsa/alsa-driver/alsa CPP="gcc -E" CC="gcc" modules
make[1]: Entering directory '/usr/src/linux-headers-3.14-1-common'
ERROR: Kernel configuration is invalid.
include/generated/autoconf.h or include/config/auto.conf are
missing.
Run 'make oldconfig && make prepare' on kernel src to fix it.
WARNING: Symbol version dump/usr/src/linux-headers-3.14-1-common/Module.symvers
is missing; modules will have no dependencies and modversions.
find: `/usr/src/linux-headers-3.14-1-common/alsa-kernel/': No such file or directory
find: `/usr/src/linux-headers-3.14-1-common/alsa-kernel/': No such file or directory
find: `/usr/src/linux-headers-3.14-1-common/alsa-kernel/': No such file or directory
Building modules, stage 2./usr/src/linux-headers-3.14-1-common/scripts/Makefile.modpost:42:include/config/auto.conf: No such file or directory
find: `/usr/src/linux-headers-3.14-1-common/alsa-kernel/': No such file or directory
find: `/usr/src/linux-headers-3.14-1-common/alsa-kernel/': No such file or directory
find: `/usr/src/linux-headers-3.14-1-common/alsa-kernel/': No such file or directory
make[2]: *** No rule to make target 'include/config/auto.conf'. Stop. Makefile:1294: recipe for target 'modules' failed
make[1]: *** [modules] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-3.14-1-common' Makefile:167: recipe for target 'compile' failed
make: *** [compile] Error 2
Quoted 7 lines
1) four internal speaker and headphone
2) two internal speaker, headphone and external subwooferOnce you confirm the nodes of the speakers, subwooder
You need to decide whether headphone share the volume controls with the speaker/subwooferQuoted 1 line
I have spent some time on this step already with 3.14.1
Is there a specific reason this process is not already scripted other than no one has taken the time to do it?
Can we not create a test script that will run through all the logical combinations and provide all the relevant info?
Quoted 18 lines
Quoted 18 lines
- I have found a couple of kernel bug reports for other ASUS models with
this chipset but they are both marked resolved. Should I open a new ticket
?https://bugzilla.kernel.org/show_bug.cgi?id=65091
https://bugzilla.kernel.org/show_bug.cgi?id=66271- I can hear static through the front speakers (with pulseaudio test) if
I set pins0x19and0x1ato Line Out (Center/LFE) and Internal (Center/LFE) or vice versa with hdajackretask.Pin
0x16does not appear to work at all.I see this output when I apply the config in hdajackretask.
Quoted 14 lines
Quoted 4 lines
0x120x90a601400x140x991301100x150x042110200x160x99134111Quoted 10 lines
0x180x01a198400x190x010140110x1a0x411111f00x1b0x411111f00x1d0x40c6852d0x1e0x014b11800x1f0x411111f0
1
--
Patrick Shirkey
Boost Hardware Ltd
Re: Testing/Debugging alc668 with ASUS N750JK
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
What is the best way to test/debug the alc668 driver these days?
I am running kernel 3.14.1 (debian testing/sid).
The laptop is an ASUS N750JK.
Quoted 7 lines
Quoted 5 lines
Quoted 2 lines
Sound works for front left/right speakers but the back speakers and external lfe channel is not working on this laptop.
You have to post output of
alsa-info.sh
Seem BIOS only set up the front speakers
Quoted 6 lines
Quoted 3 lines
How many audio jacks ?
Standard headphone/mic + yellow external lfe (sonic master). There is also hdmi but I am not testing that at the moment.
http://www.asus.com/Notebooks_Ultrabooks/N750JK/specifications/
Do you mean headset ?
Quoted 15 lines
Quoted 5 lines
Do it support headset or headphone ?
Do you mean there are four internal speakers ?
There are two front speakers which produce sound through the front bottom of the case. There are also two back speakers which do not produce sound in my tests so far.
Quoted 2 lines
Do it support surround40 in windows ?
I am not running windows OS on this machine but I suspect it does.
Quoted 8 lines
Quoted 5 lines
The external sonic master and headphone need two volume controls but alc668 only have three
The best way to test is using latest git version and hda jack retask to
The process has changed somewhat since I last did this.
https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/log/sound/pci/hda?qt=grep&q=alc668
Quoted 10 lines
Quoted 8 lines
1) four internal speaker and headphone
2) two internal speaker, headphone and external subwooferOnce you confirm the nodes of the speakers, subwooder
You need to decide whether headphone share the volume controls with the speaker/subwooferQuoted 1 line
I have spent some time on this step already with 3.14.1
Did you retask the node of subwoofer as speaker or line out ?
For multi channel, the sequence number is ascending and the driver expect they have same type i.e, all speakers or all line out jacks
Did you find the node of the rear speakers in (1) ?
Did surround 4.0 work when you fix the rear speaker ?
Did you find the node of the external subwoofer in (2) ?
Did the sonic master subwoofer detected ?
hda jack sense test -a
Do the subwoofer only use right channel ?
Do surround 2.1 works ?
Quoted 3 lines
Is there a specific reason this process is not already scripted other than no one has taken the time to do it?
Do surround 4.1 or 5.1 work when you fix both speaker and subwoofer ?
Do you prefer driver create headphone volume control or subwoofer volume control ?
Quoted 4 lines
Can we not create a test script that will run through all the logical combinations and provide all the relevant info?
The driver hardcore the name of volume control to bass when there are two speaker nodes for those 2.1
Quoted 32 lines
Quoted 32 lines
Quoted 32 lines
- I have found a couple of kernel bug reports for other ASUS models with
this chipset but they are both marked resolved. Should I open a new ticket
?https://bugzilla.kernel.org/show_bug.cgi?id=65091
https://bugzilla.kernel.org/show_bug.cgi?id=66271- I can hear static through the front speakers (with pulseaudio test) if
I set pins0x19and0x1ato Line Out (Center/LFE) and Internal (Center/LFE) or vice versa with hdajackretask.Pin
0x16does not appear to work at all.I see this output when I apply the config in hdajackretask.
0x120x90a601400x140x991301100x150x042110200x160x991341110x180x01a198400x190x010140110x1a0x411111f00x1b0x411111f00x1d0x40c6852d0x1e0x014b11800x1f0x411111f0
1
Re: Testing/Debugging alc668 with ASUS N750JK
Quoted 10 lines · Raymond Yau
Quoted 10 lines
Quoted 10 lines
Quoted 9 lines
What is the best way to test/debug the alc668 driver these days?
I am running kernel 3.14.1 (debian testing/sid).
The laptop is an ASUS N750JK.
Sound works for front left/right speakers but the back speakers and external lfe channel is not working on this laptop.
Quoted 7 lines
Quoted 4 lines
Quoted 2 lines
You have to post output of
alsa-info.shSeem BIOS only set up the front speakers
There is nothing in the bios to configure the audio device
Quoted 4 lines
Quoted 4 lines
Quoted 3 lines
How many audio jacks ?
Quoted 8 lines
Quoted 3 lines
Standard headphone/mic + yellow external lfe (sonic master). There is also
hdmi but I am not testing that at the moment.http://www.asus.com/Notebooks_Ultrabooks/N750JK/specifications/
Do you mean headset ?
There are the following jacks:
1 x headphone
1 x mic(line in)
1 x sonic master (yellow)
1 x hdmi (intel Haswell hdmi)
Quoted 19 lines
Quoted 19 lines
Quoted 5 lines
Do it support headset or headphone ?
Do you mean there are four internal speakers ?
There are two front speakers which produce sound through the front bottom
of the case. There are also two back speakers which do not produce sound in my tests so far.Quoted 2 lines
Do it support surround40 in windows ?
I am not running windows OS on this machine but I suspect it does.
Quoted 3 lines
The external sonic master and headphone need two volume controls but alc668 only have three
Quoted 9 lines
Quoted 6 lines
Quoted 1 line
The best way to test is using latest git version and hda jack retask
to
Quoted 1 line
The process has changed somewhat since I last did this.
https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/log/sound/pci/hda?qt=grep&q=alc668
That suggest not much has changed for a while?
Quoted 6 lines
Quoted 6 lines
Quoted 6 lines
1) four internal speaker and headphone
2) two internal speaker, headphone and external subwooferOnce you confirm the nodes of the speakers, subwooder You need to decide whether headphone share the volume controls with
Quoted 8 lines
Quoted 5 lines
the
Quoted 2 lines
speaker/subwoofer
Quoted 1 line
I have spent some time on this step already with 3.14.1
Did you retask the node of subwoofer as speaker or line out ?
I have tried both but I have not been able to identify the subwoofer.
I have tried playing with: 16, 19, 1a
Quoted 5 lines
For multi channel, the sequence number is ascending and the driver expect they have same type i.e, all speakers or all line out jacks
Did you find the node of the rear speakers in (1) ?
I have not found them yet.
Quoted 2 lines
Did surround 4.0 work when you fix the rear speaker ?
Only the front speakers play audio but they don't work with 4.0 enabled
Quoted 2 lines
Did you find the node of the external subwoofer in (2) ?
Not yet.
Quoted 3 lines
Did the sonic master subwoofer detected ?
hda jack sense test -a
I have grabbed the scripts but I get this error when running hda-analyzer:
Traceback (most recent call last):
File "/dev/shm/hda-analyzer/hda_analyzer.py", line 546, in <module>
sys.exit(main(sys.argv))
File "/dev/shm/hda-analyzer/hda_analyzer.py", line 523, in main
if read_nodes(sys.argv[1:]) == 0:
File "/dev/shm/hda-analyzer/hda_analyzer.py", line 89, in read_nodes
read_nodes2(c.card, i)
File "/dev/shm/hda-analyzer/hda_analyzer.py", line 60, in read_nodes2
c = HDACodec(card, codec)
File "/dev/shm/hda-analyzer/hda_codec.py", line 1041, in __init__
self.parse_proc()
File "/dev/shm/hda-analyzer/hda_codec.py", line 1140, in parse_proc
self.proc_codec = HDACodecProc(self.card, self.device, file)
File "/dev/shm/hda-analyzer/hda_proc.py", line 479, in __init__
self.parse(proc_file)
File "/dev/shm/hda-analyzer/hda_proc.py", line 677, in parse
node.add_digital(line[11:]) File "/dev/shm/hda-analyzer/hda_proc.py", line 296, in add_digital
self.wrongfile('unknown dig1 bit %s' % repr(b))
File "/dev/shm/hda-analyzer/hda_proc.py", line 143, in wrongfile
raise ValueError, "wrong proc file format (%s)" % msg
ValueError: wrong proc file format (unknown dig1 bit 'KAE')
Quoted 2 lines
Do the subwoofer only use right channel ?
I cannot hear the subwoofer at this point
Quoted 2 lines
Do surround 2.1 works ?
It says it is working but I do not get sound out of the sub woofer. I can hear static(whitenoise) through the front speakers (with pulseaudio test) if I set pins 0x19 and 0x1a to Line Out (Center/LFE) and Internal (Center/LFE) or vice versa with hdajackretask.
Quoted 7 lines
Quoted 4 lines
Is there a specific reason this process is not already scripted other than
no one has taken the time to do it?Do surround 4.1 or 5.1 work when you fix both speaker and subwoofer ?
Surround 4.1/5/1 do not produce any sound from my tests so far (using PA Test)
Quoted 3 lines
Do you prefer driver create headphone volume control or subwoofer volume control ?
I would like the lfe to be sent through the yellow sonic master jack. I am not concerned with the headset jack at the moment. A cursory test shows just the right channel is working on the headset jack.
Quoted 8 lines
Quoted 4 lines
Can we not create a test script that will run through all the logical combinations and provide all the relevant info?
The driver hardcore the name of volume control to bass when there are two speaker nodes for those 2.1
I do not see any controls for the bass volume in alsamixer
Quoted 19 lines
Quoted 19 lines
Quoted 19 lines
Quoted 19 lines
- I have found a couple of kernel bug reports for other ASUS models with
this chipset but they are both marked resolved. Should I open a new ticket
?https://bugzilla.kernel.org/show_bug.cgi?id=65091
https://bugzilla.kernel.org/show_bug.cgi?id=66271- I can hear static through the front speakers (with pulseaudio test) if
I set pins0x19and0x1ato Line Out (Center/LFE) and Internal (Center/LFE) or vice versa with hdajackretask.Pin
0x16does not appear to work at all.I see this output when I apply the config in hdajackretask.
Quoted 14 lines
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
0x120x90a601400x140x991301100x150x042110200x160x991341110x180x01a19840Quoted 8 lines
Quoted 8 lines
Quoted 8 lines
0x190x010140110x1a0x411111f00x1b0x411111f00x1d0x40c6852d0x1e0x014b11800x1f0x411111f0
1
--
Patrick Shirkey
Boost Hardware Ltd
Re: [PATCH v3 2/2] ASoC: fsl_asrc: Add ASRC ASoC CPU DAI and platform drivers
In reply to Nicolin ChenDocumentation/devicetree/bindings/sound/fsl,asrc.txt line 33
Quoted 3 lines
Documentation/devicetree/bindings/sound/fsl,asrc.txt new file +3
-0+ - big-endian : If this property is absent, the native endian mode will + be in use as default, or the big endian mode will be in use + for all the device registers.
Native endian is meaningless. If a CPU supports both BE and LE, there is no native endianness. The endianness of the kernel is dynamic while the endianness of registers in HW is fixed.
Just choose an endianness to assume by default (presumably little). That way this describes the HW and always works with a kernel of arbitrary endianness.
Thanks,
Mark.
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v3 2/2] ASoC: fsl_asrc: Add ASRC ASoC CPU DAI and platform drivers
Quoted 11 lines · Mark Rutland
Documentation/devicetree/bindings/sound/fsl,asrc.txt line 33
Quoted 3 lines
Documentation/devicetree/bindings/sound/fsl,asrc.txt new file +3
-0+ - big-endian : If this property is absent, the native endian mode will + be in use as default, or the big endian mode will be in use + for all the device registers.Native endian is meaningless. If a CPU supports both BE and LE, there is no native endianness. The endianness of the kernel is dynamic while the endianness of registers in HW is fixed.
Just choose an endianness to assume by default (presumably little). That way this describes the HW and always works with a kernel of arbitrary endianness.
Thank you for the comments.
I just revised it by using 'little endian as default' and sent the patch v6.
Please take a look at the new version.
Thanks again,
Nicolin
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Testing/Debugging alc668 with ASUS N750JK
In reply to Patrick ShirkeyQuoted 29 lines
Quoted 10 lines
Quoted 10 lines
Quoted 10 lines
Quoted 9 lines
What is the best way to test/debug the alc668 driver these days?
I am running kernel 3.14.1 (debian testing/sid).
The laptop is an ASUS N750JK.
Sound works for front left/right speakers but the back speakers and external lfe channel is not working on this laptop.
Quoted 7 lines
Quoted 4 lines
Quoted 2 lines
You have to post output of
alsa-info.shSeem BIOS only set up the front speakers
There is nothing in the bios to configure the audio device
Quoted 8 lines
Quoted 7 lines
Quoted 3 lines
How many audio jacks ?
Standard headphone/mic + yellow external lfe (sonic master). There is also
hdmi but I am not testing that at the moment.
Quoted 8 lines
Quoted 4 lines
http://www.asus.com/Notebooks_Ultrabooks/N750JK/specifications/
Do you mean headset ?
There are the following jacks:
1 x headphone
Do you mean no optical spdif ?
Quoted 1 line
1 x mic(line in)
Switching Mic Jack to line in can be performed by mic Jack mode switch using hint add_jack_modes=true
Quoted 13 lines
1 x sonic master (yellow)
1 x hdmi (intel Haswell hdmi)Quoted 9 lines
Quoted 9 lines
Quoted 5 lines
Do it support headset or headphone ?
Do you mean there are four internal speakers ?
There are two front speakers which produce sound through the front bottom
of the case. There are also two back speakers which do not produce
sound
Quoted 47 lines
Quoted 20 lines
Quoted 20 lines
in my tests so far.
Quoted 2 lines
Do it support surround40 in windows ?
I am not running windows OS on this machine but I suspect it does.
Quoted 4 lines
The external sonic master and headphone need two volume controls but alc668 only have three
The best way to test is using latest git version and hda jack retask
to
Quoted 8 lines
1) four internal speaker and headphone
2) two internal speaker, headphone and external subwooferOnce you confirm the nodes of the speakers, subwooder You need to decide whether headphone share the volume controls with
Quoted 8 lines
Quoted 5 lines
the
Quoted 2 lines
speaker/subwoofer
Quoted 1 line
I have spent some time on this step already with 3.14.1
Did you retask the node of subwoofer as speaker or line out ?
I have tried both but I have not been able to identify the subwoofer.
I have tried playing with: 16, 19, 1a
Quoted 2 lines
Did you find the node of the rear speakers in (1) ?
I have not found them yet.
Quoted 2 lines
Did surround 4.0 work when you fix the rear speaker ?
Only the front speakers play audio but they don't work with 4.0 enabled
Quoted 2 lines
Did you find the node of the external subwoofer in (2) ?
Quoted 8 lines
Not yet.
Quoted 3 lines
Did the sonic master subwoofer detected ?
hda jack sense test -aI have grabbed the scripts but I get this error when running hda-analyzer:
You can use hda-verb GET_PIN_SENSE to test all the pin complex nodes which pincap support DETECT
Quoted 6 lines
Quoted 3 lines
Do the subwoofer only use right channel ?
I cannot hear the subwoofer at this point
Quoted 8 lines
Quoted 2 lines
Do surround 2.1 works ?
It says it is working but I do not get sound out of the sub woofer. I can hear static(whitenoise) through the front speakers (with pulseaudio test) if I set pins
0x19and0x1ato Line Out (Center/LFE) and Internal (Center/LFE) or vice versa with hdajackretask.
http://git.alsa-project.org/?p=alsa-tools.git;a=blob;f=hdajackretask/README;hb=HEAD
Did you use apply button(dyanmic reconfiguartion) or installment boot override (early patching) ?
Quoted 5 lines
Quoted 5 lines
Quoted 4 lines
Is there a specific reason this process is not already scripted other than
no one has taken the time to do it?
Quoted 7 lines
Quoted 2 lines
Do surround 4.1 or 5.1 work when you fix both speaker and subwoofer ?
Surround 4.1/5/1 do not produce any sound from my tests so far (using PA Test)
Quoted 1 line
Do you prefer driver create headphone volume control or subwoofer
volume
Quoted 14 lines
Quoted 2 lines
control ?
I would like the lfe to be sent through the yellow sonic master jack. I am not concerned with the headset jack at the moment. A cursory test shows just the right channel is working on the headset jack.
Quoted 6 lines
Quoted 4 lines
Can we not create a test script that will run through all the logical combinations and provide all the relevant info?
The driver hardcore the name of volume control to bass when there are
two
Quoted 6 lines
Quoted 2 lines
speaker nodes for those 2.1
I do not see any controls for the bass volume in alsamixer
Quoted 11 lines
Quoted 11 lines
Quoted 11 lines
Quoted 11 lines
Quoted 11 lines
- I have found a couple of kernel bug reports for other ASUS models with
this chipset but they are both marked resolved. Should I open a new ticket
?https://bugzilla.kernel.org/show_bug.cgi?id=65091
https://bugzilla.kernel.org/show_bug.cgi?id=66271- I can hear static through the front speakers (with pulseaudio
test)
Quoted 6 lines
Quoted 6 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
if
I set pins0x19and0x1ato Line Out (Center/LFE) and Internal (Center/LFE) or vice versa with hdajackretask.For multi channel, the sequence number is ascending and the driver
expect
Quoted 2 lines
Quoted 2 lines
they have same type i.e, all speakers or all line out jacks
Pin Default 0x90170110: [Fixed] Speaker at Int N/A
Conn = Analog, Color = Unknown DefAssociation = 0x1, Sequence = 0x0 Misc = NO_PRESENCE
The rear speaker need same default association but sequence number higher than that of the front speaker
The external subwoofer may use [jack] speaker with same default association and higher sequence number if it can be detected
The driver won't use all of them for multi channel if you retasked it as line out
Re: Testing/Debugging alc668 with ASUS N750JK
Quoted 4 lines · Raymond Yau
You can use hda-verb
GET_PIN_SENSEto test all the pin complex nodes which pincap support DETECT
I have tried a few attempts but it's pretty confusing.
These ones don't do anything:
# hda-verb /dev/snd/hwC1D0 GET_PIN_SENSE # hda-verb /dev/snd/hwC1D0 0x0 GET_PIN_SENSE
I don't know what to make of this output:
# hda-verb /dev/snd/hwC1D0 0x0 GET_PIN_SENSE PIN_CAP nid = 0x0, verb = 0xf09, param = 0xc value = 0x0 # hda-verb /dev/snd/hwC0D0 0x0 GET_PIN_SENSE PIN_CAP nid = 0x0, verb = 0xf09, param = 0xc value = 0x0 # hda-verb /dev/snd/hwC0D0 0x16 GET_PIN_SENSE PIN_CAP nid = 0x16, verb = 0xf09, param = 0xc value = 0xffffffff # hda-verb /dev/snd/hwC0D0 0x19 GET_PIN_SENSE PIN_CAP nid = 0x19, verb = 0xf09, param = 0xc value = 0xffffffff # hda-verb /dev/snd/hwC0D0 0x1a GET_PIN_SENSE PIN_CAP nid = 0x1a, verb = 0xf09, param = 0xc value = 0xffffffff # hda-verb /dev/snd/hwC0D0 0x1b GET_PIN_SENSE PIN_CAP nid = 0x1b, verb = 0xf09, param = 0xc value = 0xffffffff
Quoted 11 lines
Quoted 10 lines
Quoted 2 lines
Do surround 2.1 works ?
It says it is working but I do not get sound out of the sub woofer. I can
hear static(whitenoise) through the front speakers (with pulseaudio test)
if I set pins0x19and0x1ato Line Out (Center/LFE) and Internal (Center/LFE) or vice versa with hdajackretask.
Quoted 5 lines
http://git.alsa-project.org/?p=alsa-tools.git;a=blob;f=hdajackretask/README;hb=HEAD
Did you use apply button(dyanmic reconfiguartion) or installment boot override (early patching) ?
I have tried both options.
After rebooting with the apply option set I don't hear any static or audio with the PA test app.
Quoted 7 lines
Quoted 4 lines
I do not see any controls for the bass volume in alsamixer
I have checked alsamixer again after the last round of tinkering with hdajackretask and" Speaker CLFE" is now showing up but it does not have volume control just mute on/off.
I see the following new controls
Speaker CFLE (mute only)
Speaker Front (mute + vol)
Speaker Side (mute only)
Speaker Surround (mute + vol)
Quoted 29 lines
Quoted 13 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
- I have found a couple of kernel bug reports for other ASUS
models
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
with
this chipset but they are both marked resolved. Should I open anew
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
ticket
?https://bugzilla.kernel.org/show_bug.cgi?id=65091
https://bugzilla.kernel.org/show_bug.cgi?id=66271- I can hear static through the front speakers (with pulseaudio
test)
Quoted 6 lines
Quoted 6 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
if
I set pins0x19and0x1ato Line Out (Center/LFE) and Internal (Center/LFE) or vice versa with hdajackretask.For multi channel, the sequence number is ascending and the driver
expect
Quoted 2 lines
Quoted 2 lines
they have same type i.e, all speakers or all line out jacks
Pin Default
0x90170110: [Fixed] Speaker at Int N/A
Conn = Analog, Color = Unknown DefAssociation =0x1, Sequence =0x0Misc =NO_PRESENCE
Quoted 9 lines
The rear speaker need same default association but sequence number higher than that of the front speaker
The external subwoofer may use [jack] speaker with same default association and higher sequence number if it can be detected
The driver won't use all of them for multi channel if you retasked it as line out
I have tried several combinations with hdajackretask
I am not able to get audio out of the physical rear speakers or sonic master output.
I can get audio to play back in the front l/c/r speakers with varying combinations.
ex.
7.1 side l/r plays through front l/r or front c
4.0 rear r/l plays through front l/r
2.1 l/r plays through front l/r
2.1 subwoofer plays white noise through front c
Most of the time it is only front left/right that make any sound. Sometimes there is no sound on one audio profile but it works on a couple of channels on another profile.
Any time that the Center LFE works it produces white noise.
I have tried with both options: apply and patch/reboot
I can keep playing around with the settings until I eventually stumble on a combination that works but it seems like this process should be scriptable. Given that I will probably spend hours of my time on the test process and I have already spent 4 separate sessions on testing it seems like it would be better value for my time and others going forward to write a test script.
So what do I need to do to write a script that will test all the combinations and play audio through them? Or am I missing something that someone else has already written for this purpose?
Currently I am using this process:
1: hdajackretask - modify params
2: pulseaudio -k
3: hdajackretask : apply settings
4: pulseaudio -D
5: open PA audio config
6: select audio output option and press test speakers button 7: manually press every button
Rinse and repeat.
Surely there is a more humane method for testing the variations ;-)
--
Patrick Shirkey
Boost Hardware Ltd
Re: Testing/Debugging alc668 with ASUS N750JK
Have you try the fix ?
Quoted 3 lines
Quoted 3 lines
You can use hda-verb
GET_PIN_SENSEto test all the pin complex nodes
which
Quoted 5 lines
Quoted 2 lines
pincap support DETECT
I have tried a few attempts but it's pretty confusing.
Quoted 7 lines
These ones don't do anything:
# hda-verb /dev/snd/hwC1D0 GET_PIN_SENSE # hda-verb /dev/snd/hwC1D0 0x0 GET_PIN_SENSEI don't know what to make of this output:
Bit 31 is PD
VALUE should return 0 when Jack is UNplugged and 0x80000000 when Jack is plugged for those pin which support DETECT
Quoted 11 lines
# hda-verb /dev/snd/hwC1D0 0x0 GET_PIN_SENSE PIN_CAP nid = 0x0, verb = 0xf09, param = 0xc value = 0x0 # hda-verb /dev/snd/hwC0D0 0x0 GET_PIN_SENSE PIN_CAP nid = 0x0, verb = 0xf09, param = 0xc value = 0x0 # hda-verb /dev/snd/hwC0D0 0x16 GET_PIN_SENSE PIN_CAP nid = 0x16, verb = 0xf09, param = 0xc value = 0xffffffff # hda-verb /dev/snd/hwC0D0 0x19 GET_PIN_SENSE PIN_CAP
Quoted 9 lines
nid = 0x19, verb = 0xf09, param = 0xc value = 0xffffffff # hda-verb /dev/snd/hwC0D0 0x1a GET_PIN_SENSE PIN_CAP nid = 0x1a, verb = 0xf09, param = 0xc value = 0xffffffff # hda-verb /dev/snd/hwC0D0 0x1b GET_PIN_SENSE PIN_CAP nid = 0x1b, verb = 0xf09, param = 0xc value = 0xffffffff
But your alc668 is on card 1 , the second hda controller
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 4 lines
Do surround 2.1 works ?
Quoted 9 lines
Quoted 9 lines
Quoted 7 lines
It says it is working but I do not get sound out of the sub woofer. I can
hear static(whitenoise) through the front speakers (with pulseaudio test)
if I set pins0x19and0x1ato Line Out (Center/LFE) and Internal (Center/LFE) or vice versa with hdajackretask.
http://git.alsa-project.org/?p=alsa-tools.git;a=blob;f=hdajackretask/README;hb=HEAD
Quoted 16 lines
Quoted 4 lines
Did you use apply button(dyanmic reconfiguartion) or installment boot override (early patching) ?
I have tried both options.
After rebooting with the apply option set I don't hear any static or audio with the PA test app.
Quoted 6 lines
Quoted 4 lines
I do not see any controls for the bass volume in alsamixer
Quoted 6 lines
Quoted 1 line
I have checked alsamixer again after the last round of tinkering with hdajackretask and" Speaker CLFE" is now showing up but it does not have volume control just mute on/off.
Quoted 6 lines
I see the following new controls
Speaker CFLE (mute only)
Speaker Front (mute + vol)
Speaker Side (mute only)
Speaker Surround (mute + vol)
hda-jack-retask won't check whether your codec have enough audio output if you changed all the nodes to speaker
But the driver expect multiout support up to 8 channels when parsing the pin
As alc668 only support 6 channels, hda_generic.c just assign audio output and create volume control but Jack detection controls and mute switch are created according to the number of parsed pins which support Jack detect and mute switch
Do the headphone still work with pulseaudio since there is no headphone playback volume and headphone is share SPEAKER FRONT PLAYBAACK VOLUME control with front speaker ?
Quoted 53 lines
Quoted 31 lines
Quoted 15 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
- I have found a couple of kernel bug reports for other ASUS
models
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
with
this chipset but they are both marked resolved. Should I open anew
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
ticket
?https://bugzilla.kernel.org/show_bug.cgi?id=65091
https://bugzilla.kernel.org/show_bug.cgi?id=66271- I can hear static through the front speakers (with pulseaudio
test)
Quoted 6 lines
Quoted 6 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
if
I set pins0x19and0x1ato Line Out (Center/LFE) and Internal (Center/LFE) or vice versa with hdajackretask.For multi channel, the sequence number is ascending and the driver
expect
Quoted 2 lines
Quoted 2 lines
they have same type i.e, all speakers or all line out jacks
Pin Default
0x90170110: [Fixed] Speaker at Int N/A
Conn = Analog, Color = Unknown DefAssociation =0x1, Sequence =0x0Misc =NO_PRESENCEQuoted 9 lines
The rear speaker need same default association but sequence number higher than that of the front speaker
The external subwoofer may use [jack] speaker with same default association and higher sequence number if it can be detected
The driver won't use all of them for multi channel if you retasked it as line out
I have tried several combinations with hdajackretask
I am not able to get audio out of the physical rear speakers or sonic master output.
:So what do I need to do to write a script that will test all the combinations and play audio through them? Or am I missing something that someone else has already written for this purpose?
Currently I am using this process:
Quoted 8 lines
1: hdajackretask - modify params
2: pulseaudio -k
3: hdajackretask : apply settings
4: pulseaudio -D
5: open PA audio config
6: select audio output option and press test speakers button 7: manually press every button
Use install boot option and reboot to test the driver with hda-jack-retask.fw patch
Should not use pulseaudio when testing
speaker-test -c2 -t wav -D hw:1,0
speaker-test -c4 -t wav -D hw:1,0
Test 6 channel only after you find both rear speaker and subwoofer
speaker-test -c6 -t wav -D hw:1,0
if the connected retasked pin is not the correct pin
,you can use hda_analyzer to change the pin ctls of the remaining unconnected pin to OUT, unmute and coonect the pin to second/third dac through audio mixers
Re: Testing/Debugging alc668 with ASUS N750JK
Quoted 4 lines · Raymond Yau
Have you try the fix ?
Quoted 1 line
I did not see that update.
run.py works now without any modifications on this machine.
I have generated a graph.
http://boosthardware.com/hda_graph-1.png
Quoted 16 lines
Quoted 2 lines
Quoted 2 lines
You can use hda-verb
GET_PIN_SENSEto test all the pin complex nodeswhich
Quoted 5 lines
Quoted 2 lines
pincap support DETECT
I have tried a few attempts but it's pretty confusing.
Quoted 7 lines
These ones don't do anything:
# hda-verb /dev/snd/hwC1D0 GET_PIN_SENSE # hda-verb /dev/snd/hwC1D0 0x0 GET_PIN_SENSEI don't know what to make of this output:
Quoted 8 lines
Bit 31 is PD
VALUE should return 0 when Jack is UNplugged and
0x80000000when Jack is plugged for those pin which support DETECTBut your alc668 is on card 1 , the second hda controller
Sorry. Missed that one.
# hda-verb /dev/snd/hwC1D0 0x16 GET_PIN_SENSE PIN_CAP nid = 0x16, verb = 0xf09, param = 0xc value = 0x0 # hda-verb /dev/snd/hwC1D0 0x19 GET_PIN_SENSE PIN_CAP nid = 0x19, verb = 0xf09, param = 0xc value = 0x0 # hda-verb /dev/snd/hwC1D0 0x11a GET_PIN_SENSE PIN_CAP invalid nid 0x11a # hda-verb /dev/snd/hwC1D0 0x1a GET_PIN_SENSE PIN_CAP nid = 0x1a, verb = 0xf09, param = 0xc value = 0x0 # hda-verb /dev/snd/hwC1D0 0x1b GET_PIN_SENSE PIN_CAP nid = 0x1b, verb = 0xf09, param = 0xc value = 0x0
Quoted 13 lines
Quoted 6 lines
I see the following new controls
Speaker CFLE (mute only)
Speaker Front (mute + vol)
Speaker Side (mute only)
Speaker Surround (mute + vol)hda-jack-retask won't check whether your codec have enough audio output if you changed all the nodes to speaker
But the driver expect multiout support up to 8 channels when parsing the pin
Quoted 9 lines
As alc668 only support 6 channels,
hda_generic.cjust assign audio output and create volume control but Jack detection controls and mute switch are created according to the number of parsed pins which support Jack detect and mute switchDo the headphone still work with pulseaudio since there is no headphone playback volume and headphone is share SPEAKER FRONT PLAYBAACK VOLUME control with front speaker ?
With speaker-test I can hear audio on the right channel
speaker-test -c2 -t wav -D hw:1,0
audio comes out of front left/right
speaker-test -c4 -t wav -D hw:1,0
front left/right has no audio
rear left/right audio comes out of front left/right speakers
# speaker-test -c6 -t wav -D hw:1,0
speaker-test 1.0.28
Playback device is hw:1,0
Stream parameters are 48000Hz, S16_LE, 6 channels
WAV file(s)
Channels count (6) not available for playbacks: Invalid argument Setting of hwparams failed: Invalid argument
Quoted 6 lines
if the connected retasked pin is not the correct pin
,you can usehda_analyzerto change the pin ctls of the remaining unconnected pin to OUT, unmute and coonect the pin to second/third dac through audio mixers
This is a bit confusing to master. How should I approach it given the layout of the graph linked above?
--
Patrick Shirkey
Boost Hardware Ltd
Re: Testing/Debugging alc668 with ASUS N750JK
Quoted 1 line
Quoted 1 line
Quoted 4 lines
Quoted 3 lines
Have you try the fix ?
Quoted 1 line
Quoted 29 lines
I did not see that update.
run.pyworks now without any modifications on this machine.I have generated a graph.
http://boosthardware.com/hda_graph-1.png
Quoted 19 lines
Quoted 2 lines
Quoted 2 lines
You can use hda-verb
GET_PIN_SENSEto test all the pin complex nodeswhich
Quoted 5 lines
Quoted 2 lines
pincap support DETECT
I have tried a few attempts but it's pretty confusing.
Quoted 7 lines
These ones don't do anything:
# hda-verb /dev/snd/hwC1D0 GET_PIN_SENSE # hda-verb /dev/snd/hwC1D0 0x0 GET_PIN_SENSEI don't know what to make of this output:
Bit 31 is PD
VALUE should return 0 when Jack is UNplugged and
0x80000000when Jack
is
Quoted 8 lines
Quoted 5 lines
plugged for those pin which support DETECT
But your alc668 is on card 1 , the second hda controller
Sorry. Missed that one.
Quoted 16 lines
# hda-verb /dev/snd/hwC1D0 0x16 GET_PIN_SENSE PIN_CAP nid = 0x16, verb = 0xf09, param = 0xc value = 0x0 # hda-verb /dev/snd/hwC1D0 0x19 GET_PIN_SENSE PIN_CAP nid = 0x19, verb = 0xf09, param = 0xc value = 0x0 # hda-verb /dev/snd/hwC1D0 0x11a GET_PIN_SENSE PIN_CAP invalid nid 0x11a # hda-verb /dev/snd/hwC1D0 0x1a GET_PIN_SENSE PIN_CAP nid = 0x1a, verb = 0xf09, param = 0xc value = 0x0 # hda-verb /dev/snd/hwC1D0 0x1b GET_PIN_SENSE PIN_CAP nid = 0x1b, verb = 0xf09, param = 0xc value = 0x0
Do you mean the plugging of subwoofer cannot be detected
hda-jack-sense-test -c 1 -a
Quoted 8 lines
Quoted 8 lines
Quoted 6 lines
I see the following new controls
Speaker CFLE (mute only)
Speaker Front (mute + vol)
Speaker Side (mute only)
Speaker Surround (mute + vol)hda-jack-retask won't check whether your codec have enough audio output
if
Quoted 6 lines
Quoted 6 lines
you changed all the nodes to speaker
But the driver expect multiout support up to 8 channels when parsing the pin
As alc668 only support 6 channels,
hda_generic.cjust assign audio
output
Quoted 1 line
Quoted 1 line
and create volume control but Jack detection controls and mute switch
are
Quoted 21 lines
Quoted 7 lines
created according to the number of parsed pins which support Jack detect and mute switch
Do the headphone still work with pulseaudio since there is no headphone playback volume and headphone is share SPEAKER FRONT PLAYBAACK VOLUME control with front speaker ?
With speaker-test I can hear audio on the right channel
speaker-test -c2 -t wav -D hw:1,0
audio comes out of front left/right
speaker-test -c4 -t wav -D hw:1,0
front left/right has no audio
rear left/right audio comes out of front left/right speakers# speaker-test -c6 -t wav -D hw:1,0
Quoted 8 lines
speaker-test 1.0.28
Playback device is hw:1,0
Stream parameters are 48000Hz,S16_LE, 6 channels
WAV file(s)
Channels count (6) not available for playbacks: Invalid argument Setting of hwparams failed: Invalid argument
The graph don't contain enough into for debugg
Post output of alsa-info.sh after retasked
Seem headphone is more important than multichannel speaker when evaluating the badness of config
You may need to configure alsa driver --with-debug=verbose to produce more information in system log about how it evaluate the badness
Re: Testing/Debugging alc668 with ASUS N750JK
Quoted 1 line · Raymond Yau
alsa-info:
retask and apply
http://boosthardware.com/alsa-info1.txt
store and reboot
http://boosthardware.com/alsa-info2.txt
Quoted 5 lines
Do you mean the plugging of subwoofer cannot be detected
hda-jack-sense-test -c 1 -a
prior to latest changes with hdajackretask:
# python alsa-jack-sense-test.py -c 1 -a Pin 0x12 (Internal Mic): present = No Pin 0x14 (Internal Speaker): present = No Pin 0x15 (Black HP Out): present = No Pin 0x16 (Not connected): present = No Pin 0x18 (Black Mic): present = No Pin 0x19 (Not connected): present = No Pin 0x1a (Not connected): present = No Pin 0x1b (Not connected): present = No Pin 0x1d (Not connected): present = No Pin 0x1e (Black SPDIF Out): present = No Pin 0x1f (Not connected): present = No
headset connected:
# python alsa-jack-sense-test.py -c 1 -a Pin 0x12 (Internal Mic): present = No Pin 0x14 (Internal Speaker): present = No Pin 0x15 (Black HP Out): present = Yes Pin 0x16 (Not connected): present = No Pin 0x18 (Black Mic): present = No Pin 0x19 (Not connected): present = No Pin 0x1a (Not connected): present = No Pin 0x1b (Not connected): present = No Pin 0x1d (Not connected): present = No Pin 0x1e (Black SPDIF Out): present = No Pin 0x1f (Not connected): present = No
after latest reboot (alsa-info2.txt):
# python alsa-jack-sense-test.py -c 1 -a Pin 0x12 (Internal Mic): present = No Pin 0x14 (Internal Speaker): present = No Pin 0x15 (Black HP Out): present = No Pin 0x16 (Not connected): present = No Pin 0x18 (Black Mic): present = No Pin 0x19 (Not connected): present = No Pin 0x1a (Not connected): present = No Pin 0x1b (Not connected): present = No Pin 0x1d (Not connected): present = No Pin 0x1e (Black SPDIF Out): present = No Pin 0x1f (Not connected): present = No
headset connected:
# python alsa-jack-sense-test.py -c 1 -a Pin 0x12 (Internal Mic): present = No Pin 0x14 (Internal Speaker): present = No Pin 0x15 (Black HP Out): present = Yes Pin 0x16 (Not connected): present = No Pin 0x18 (Black Mic): present = No Pin 0x19 (Not connected): present = No Pin 0x1a (Not connected): present = No Pin 0x1b (Not connected): present = No Pin 0x1d (Not connected): present = No Pin 0x1e (Black SPDIF Out): present = No Pin 0x1f (Not connected): present = No
Quoted 11 lines
The graph don't contain enough into for debugg
Post output of
alsa-info.shafter retaskedSeem headphone is more important than multichannel speaker when evaluating the badness of config
You may need to configure alsa driver --with-debug=verbose to produce more information in system log about how it evaluate the badness
Easier said than done. I have to build a custom kernel in order to get custom alsa-drivers to build on this machine so at the moment I am stuck with whatever I got in 3.14.1. From the list above can you make a recommendation for the best options to test?
According to hdajackretask the pins I can retask for output are the following:
Pin 0x14 (Internal Speaker): present = No Pin 0x15 (Black HP Out): present = No Pin 0x16 (Not connected): present = No Pin 0x18 (Black Mic): present = No Pin 0x19 (Not connected): present = No Pin 0x1a (Not connected): present = No
- The other pins present just a few options for input ex, mic, line in, spdif.
--
Patrick Shirkey
Boost Hardware Ltd
Re: Testing/Debugging alc668 with ASUS N750JK
Quoted 10 lines
alsa-info:
retask and apply
http://boosthardware.com/alsa-info1.txtstore and reboot
http://boosthardware.com/alsa-info2.txt
Any reason to use asus-mode4 and hda-jack-retask at the same time ?
Try model=auto when you use patch=,hda-jack-retask.fw
Your alsa-info missing many important info , need all info from alsactl, amixer, sysfs about the driver init pins and user init pins, allay/arecord -l
No information about which Jack have been retasked
Re: Testing/Debugging alc668 with ASUS N750JK
Quoted 6 lines · Raymond Yau
Quoted 6 lines
alsa-info:
retask and apply
http://boosthardware.com/alsa-info1.txt
Quoted 7 lines
Quoted 4 lines
store and reboot
http://boosthardware.com/alsa-info2.txtAny reason to use asus-mode4 and hda-jack-retask at the same time ?
I had it in place because at one point it seemed to allow PA to have addition profiles other than stereo. However the line below seems to be a better combination.
Quoted 2 lines
Try model=auto when you use patch=,hda-jack-retask.fw
That nugget of information seems to have enabled the bass speaker in alsa after the last reboot.
/etc/modprobe.d/alsa-base.conf
options snd-hda-intel model=auto patch=,hda-jack-retask.fw
Quoted 4 lines
Your alsa-info missing many important info , need all info from alsactl, amixer, sysfs about the driver init pins and user init pins, allay/arecord -l
http://boosthardware.com/alsa-info4.txt
Quoted 2 lines
No information about which Jack have been retasked
For the info file above I have the following retask assignments:
0x14 Line out (front)0x15 Line out (center/LFE)0x16 Line Out (Back)0x18 Internal Speaker0x19 Internal Speaker(Back)0x1a Internal mic
- With the following command I can hear "rear center" through the sonic master speaker when channel 5 is testing.
speaker-test -D hw:1 -c 6 -t wav
- I do not hear any sound when rear left/right is testing.
- I do not hear any audio through the LFE with PA test on any of the audio profiles.
- I will play around with the retask assignments now that something seems to be working. Looks like I'm on the right track now.
Thanks for all your help so far.
--
Patrick Shirkey
Boost Hardware Ltd