* [PATCH v4 0/3] arm64: dts: qcom: add device tree for Asus Vivobook 16 X1607QA @ 2026-11-14 8:30 Daniel Carter 2026-11-14 8:30 ` [PATCH v4 1/3] dt-bindings: arm: qcom: document " Daniel Carter 0 siblings, 1 reply; 5+ messages in thread From: Daniel Carter @ 2026-11-14 8:30 UTC (permalink / raw) To: krzk, andersson, broonie, srini, konradybcio Cc: robh, conor+dt, vkoul, tiwai, perex, lgirdwood, pierre-louis.bossart, yung-chuan.liao, abelvesa, linux-arm-msm, linux-sound, devicetree, linux-kernel, yass27106 Hi Krzysztof, hi all, v4 of the series, now sent as a fresh thread (v3 was sent as replies inside the v2 thread, which made it easy to miss - apologies for that, and for v2 reaching you with the commit descriptions stripped by my mail setup; the commits themselves were always complete). Changes since v3: - Dropped the LPASS macro / SoundWire clock-retry patch following Mark Brown's review. The driver core already retriggers deferred probe when suppliers register, and a bounded retry loop open-coded in five drivers is not the right fix. - soundwire: the clk_prepare_enable() check now returns IRQ_NONE from the interrupt handler (the status is neither read nor cleared on that path), carries Fixes: tags, and the runtime resume error path returns the error without unmasking the level-high wake IRQ. - arm64/dts: style cleanups - status properties placed last, alphabetical ordering of DAI-link subnodes, continuation lines aligned to 8-column tabs, chassis-type no longer duplicated from the shared dtsi. - The bindings patch now uses the "dt-bindings: arm: qcom:" subject prefix. Series: [1/3] dt-bindings: arm: qcom: document Asus Vivobook 16 X1607QA [2/3] arm64: dts: qcom: add device tree for Asus Vivobook 16 X1607QA [3/3] soundwire: qcom: check clk_prepare_enable() return values Best regards, Daniel Carter ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v4 1/3] dt-bindings: arm: qcom: document Asus Vivobook 16 X1607QA 2026-11-14 8:30 [PATCH v4 0/3] arm64: dts: qcom: add device tree for Asus Vivobook 16 X1607QA Daniel Carter @ 2026-11-14 8:30 ` Daniel Carter 2026-11-14 8:30 ` [PATCH v4 2/3] arm64: dts: qcom: add device tree for " Daniel Carter 0 siblings, 1 reply; 5+ messages in thread From: Daniel Carter @ 2026-11-14 8:30 UTC (permalink / raw) To: krzk, andersson, broonie, srini, konradybcio Cc: robh, conor+dt, vkoul, tiwai, perex, lgirdwood, pierre-louis.bossart, yung-chuan.liao, abelvesa, linux-arm-msm, linux-sound, devicetree, linux-kernel, yass27106 Document the compatible for the Asus Vivobook 16 X1607QA laptop, based on the Qualcomm X1P42100 (Purwa) SoC. Signed-off-by: Daniel Carter <yass27106@gmail.com> --- Documentation/devicetree/bindings/arm/qcom.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml index 121ca557ce1..d22f1b0b4ef 100644 --- a/Documentation/devicetree/bindings/arm/qcom.yaml +++ b/Documentation/devicetree/bindings/arm/qcom.yaml @@ -1306,6 +1306,7 @@ properties: - items: - enum: + - asus,vivobook-16-x1607qa - asus,vivobook-s15-x1p4 - hp,omnibook-x14-fe1 - lenovo,thinkbook-16 -- 2.55.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v4 2/3] arm64: dts: qcom: add device tree for Asus Vivobook 16 X1607QA 2026-11-14 8:30 ` [PATCH v4 1/3] dt-bindings: arm: qcom: document " Daniel Carter @ 2026-11-14 8:30 ` Daniel Carter 2026-11-14 8:30 ` [PATCH v4 3/3] soundwire: qcom: check clk_prepare_enable() return values Daniel Carter 2026-11-14 8:41 ` [PATCH v4 2/3] arm64: dts: qcom: add device tree for Asus Vivobook 16 X1607QA sashiko-bot 0 siblings, 2 replies; 5+ messages in thread From: Daniel Carter @ 2026-11-14 8:30 UTC (permalink / raw) To: krzk, andersson, broonie, srini, konradybcio Cc: robh, conor+dt, vkoul, tiwai, perex, lgirdwood, pierre-louis.bossart, yung-chuan.liao, abelvesa, linux-arm-msm, linux-sound, devicetree, linux-kernel, yass27106 The Asus Vivobook 16 X1607QA is a 16-inch laptop based on the Qualcomm X1P-42-100 (Purwa) SoC, an 8-core derivative of the X1E80100 (hamoa) platform. Its board design is close to the Vivobook S 15 (X1P42100), so the device tree builds on the shared x1-asus-vivobook-s15.dtsi. Supported so far: - the 2x WSA8845 speaker and WCD9385 headset codec audio stack over SoundWire, including the VA macro DMIC input - the ADSP and CDSP remote processors with the ASUS firmware paths - the Adreno GPU with the zapped shader firmware The pmc8380_6 PMIC (and its thermal and die-temp nodes) belongs to the third CPU cluster, which is unpopulated on this 8-core part; its nodes are deleted as on the Vivobook S 15. Signed-off-by: Daniel Carter <yass27106@gmail.com> --- arch/arm64/boot/dts/qcom/Makefile | 2 + .../x1p42100-asus-vivobook-16-x1607qa.dts | 232 ++++++++++++++++++ 2 files changed, 234 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/x1p42100-asus-vivobook-16-x1607qa.dts diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile index 88230c4e00e..4405eaab62d 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -507,6 +507,8 @@ x1e80100-microsoft-romulus15-el2-dtbs := x1e80100-microsoft-romulus15.dtb x1-el2 dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus15.dtb x1e80100-microsoft-romulus15-el2.dtb x1e80100-qcp-el2-dtbs := x1e80100-qcp.dtb x1-el2.dtbo dtb-$(CONFIG_ARCH_QCOM) += x1e80100-qcp.dtb x1e80100-qcp-el2.dtb +x1p42100-asus-vivobook-16-x1607qa-el2-dtbs := x1p42100-asus-vivobook-16-x1607qa.dtb x1-el2.dtbo +dtb-$(CONFIG_ARCH_QCOM) += x1p42100-asus-vivobook-16-x1607qa.dtb x1p42100-asus-vivobook-16-x1607qa-el2.dtb x1p42100-asus-vivobook-s15-el2-dtbs := x1p42100-asus-vivobook-s15.dtb x1-el2.dtbo dtb-$(CONFIG_ARCH_QCOM) += x1p42100-asus-vivobook-s15.dtb x1p42100-asus-vivobook-s15-el2.dtb x1p42100-asus-zenbook-a14-el2-dtbs := x1p42100-asus-zenbook-a14.dtb x1-el2.dtbo diff --git a/arch/arm64/boot/dts/qcom/x1p42100-asus-vivobook-16-x1607qa.dts b/arch/arm64/boot/dts/qcom/x1p42100-asus-vivobook-16-x1607qa.dts new file mode 100644 index 00000000000..3877809dcb3 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/x1p42100-asus-vivobook-16-x1607qa.dts @@ -0,0 +1,232 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2026, Daniel Carter <yass27106@gmail.com> + */ + +/dts-v1/; + +#include "purwa.dtsi" +#include "x1-asus-vivobook-s15.dtsi" + +/delete-node/ &pmc8380_6; +/delete-node/ &pmc8380_6_thermal; +/delete-node/ &pmc8380_6_die_temp; + +/ { + model = "ASUS Vivobook 16 (X1607QA)"; + compatible = "asus,vivobook-16-x1607qa", "qcom,x1p42100"; + + wcd938x: audio-codec { + compatible = "qcom,wcd9385-codec"; + + pinctrl-0 = <&wcd_default>; + pinctrl-names = "default"; + + qcom,micbias1-microvolt = <1800000>; + qcom,micbias2-microvolt = <1800000>; + qcom,micbias3-microvolt = <1800000>; + qcom,micbias4-microvolt = <1800000>; + qcom,mbhc-buttons-vthreshold-microvolt = + <75000 150000 237000 500000 500000 500000 500000 500000>; + qcom,mbhc-headset-vthreshold-microvolt = <1700000>; + qcom,mbhc-headphone-vthreshold-microvolt = <50000>; + qcom,rx-device = <&wcd_rx>; + qcom,tx-device = <&wcd_tx>; + + reset-gpios = <&tlmm 191 GPIO_ACTIVE_LOW>; + + vdd-buck-supply = <&vreg_l15b_1p8>; + vdd-rxtx-supply = <&vreg_l15b_1p8>; + vdd-io-supply = <&vreg_l15b_1p8>; + vdd-mic-bias-supply = <&vreg_bob1>; + + #sound-dai-cells = <1>; + }; + + sound { + compatible = "qcom,x1e80100-sndcard"; + model = "X1P42100-ASUS-Vivobook-16"; + audio-routing = "SpkrLeft IN", "WSA WSA_SPK1 OUT", + "SpkrRight IN", "WSA WSA_SPK2 OUT", + "IN1_HPHL", "HPHL_OUT", + "IN2_HPHR", "HPHR_OUT", + "AMIC2", "MIC BIAS2", + "VA DMIC0", "MIC BIAS1", + "VA DMIC1", "MIC BIAS1", + "VA DMIC0", "VA MIC BIAS1", + "VA DMIC1", "VA MIC BIAS1", + "TX SWR_INPUT1", "ADC2_OUTPUT"; + + wcd-playback-dai-link { + link-name = "WCD Playback"; + + codec { + sound-dai = <&wcd938x 0>, <&swr1 0>, <&lpass_rxmacro 0>; + }; + + cpu { + sound-dai = <&q6apmbedai RX_CODEC_DMA_RX_0>; + }; + + platform { + sound-dai = <&q6apm>; + }; + }; + + wcd-capture-dai-link { + link-name = "WCD Capture"; + + codec { + sound-dai = <&wcd938x 1>, <&swr2 1>, <&lpass_txmacro 0>; + }; + + cpu { + sound-dai = <&q6apmbedai TX_CODEC_DMA_TX_3>; + }; + + platform { + sound-dai = <&q6apm>; + }; + }; + + va-dai-link { + link-name = "VA Capture"; + + codec { + sound-dai = <&lpass_vamacro 0>; + }; + + cpu { + sound-dai = <&q6apmbedai VA_CODEC_DMA_TX_0>; + }; + + platform { + sound-dai = <&q6apm>; + }; + }; + + wsa-dai-link { + link-name = "WSA Playback"; + + codec { + sound-dai = <&left_spkr>, <&right_spkr>, + <&swr0 0>, <&lpass_wsamacro 0>; + }; + + cpu { + sound-dai = <&q6apmbedai WSA_CODEC_DMA_RX_0>; + }; + + platform { + sound-dai = <&q6apm>; + }; + }; + }; +}; + +&apps_rsc { + regulators-0 { + vreg_l12b_1p2: ldo12 { + regulator-name = "vreg_l12b_1p2"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; + regulator-always-on; + }; + }; +}; + +&gpu_zap_shader { + firmware-name = "qcom/x1p42100/ASUSTeK/vivobook-16-x1607qa/qcdxkmsucpurwa.mbn"; +}; + +&lpass_tlmm { + spkr_01_sd_n_active: spkr-01-sd-n-active-state { + pins = "gpio12"; + function = "gpio"; + drive-strength = <16>; + bias-disable; + output-low; + }; +}; + +&lpass_vamacro { + pinctrl-0 = <&dmic01_default>; + pinctrl-names = "default"; + qcom,dmic-sample-rate = <4800000>; + vdd-micb-supply = <&vreg_bob1>; +}; + +&remoteproc_adsp { + firmware-name = "qcom/x1p42100/ASUSTeK/vivobook-16-x1607qa/qcadsp8380.mbn", + "qcom/x1p42100/ASUSTeK/vivobook-16-x1607qa/adsp_dtbs.elf"; + status = "okay"; +}; + +&remoteproc_cdsp { + firmware-name = "qcom/x1p42100/ASUSTeK/vivobook-16-x1607qa/qccdsp8380.mbn", + "qcom/x1p42100/ASUSTeK/vivobook-16-x1607qa/cdsp_dtbs.elf"; + status = "okay"; +}; + +&swr0 { + pinctrl-0 = <&wsa_swr_active>, <&spkr_01_sd_n_active>; + pinctrl-names = "default"; + status = "okay"; + + /* WSA8845, Left Speaker */ + left_spkr: speaker@0,0 { + compatible = "sdw20217020400"; + reg = <0 0>; + reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>; + #sound-dai-cells = <0>; + sound-name-prefix = "SpkrLeft"; + vdd-1p8-supply = <&vreg_l15b_1p8>; + vdd-io-supply = <&vreg_l12b_1p2>; + qcom,port-mapping = <1 2 3 7 10 13>; + }; + + /* WSA8845, Right Speaker */ + right_spkr: speaker@0,1 { + compatible = "sdw20217020400"; + reg = <0 1>; + reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>; + #sound-dai-cells = <0>; + sound-name-prefix = "SpkrRight"; + vdd-1p8-supply = <&vreg_l15b_1p8>; + vdd-io-supply = <&vreg_l12b_1p2>; + qcom,port-mapping = <4 5 6 7 11 13>; + }; +}; + +&swr1 { + status = "okay"; + + /* WCD9385 RX */ + wcd_rx: codec@0,4 { + compatible = "sdw20217010d00"; + reg = <0 4>; + qcom,rx-port-mapping = <1 2 3 4 5>; + }; +}; + +&swr2 { + status = "okay"; + + /* WCD9385 TX */ + wcd_tx: codec@0,3 { + compatible = "sdw20217010d00"; + reg = <0 3>; + qcom,tx-port-mapping = <2 2 3 4>; + }; +}; + +&tlmm { + wcd_default: wcd-reset-n-active-state { + pins = "gpio191"; + function = "gpio"; + drive-strength = <16>; + bias-disable; + output-low; + }; +}; -- 2.55.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v4 3/3] soundwire: qcom: check clk_prepare_enable() return values 2026-11-14 8:30 ` [PATCH v4 2/3] arm64: dts: qcom: add device tree for " Daniel Carter @ 2026-11-14 8:30 ` Daniel Carter 2026-11-14 8:41 ` [PATCH v4 2/3] arm64: dts: qcom: add device tree for Asus Vivobook 16 X1607QA sashiko-bot 1 sibling, 0 replies; 5+ messages in thread From: Daniel Carter @ 2026-11-14 8:30 UTC (permalink / raw) To: krzk, andersson, broonie, srini, konradybcio Cc: robh, conor+dt, vkoul, tiwai, perex, lgirdwood, pierre-louis.bossart, yung-chuan.liao, abelvesa, linux-arm-msm, linux-sound, devicetree, linux-kernel, yass27106 clk_prepare_enable() can fail; unchecked, the driver proceeds to touch registers with the interface clock off, which aborts on arm64. Check the return value in the interrupt handler (returning IRQ_NONE, as the interrupt status is not read or cleared on that path), in probe, and in the runtime resume path (returning the error without unmasking the level-high wake IRQ, which would storm while the slave keeps driving the line). Fixes: 02efb49aa805 ("soundwire: qcom: add support for SoundWire controller") Fixes: 74e79da9fd46 ("soundwire: qcom: add runtime pm support") Signed-off-by: Daniel Carter <yass27106@gmail.com> --- drivers/soundwire/qcom.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/drivers/soundwire/qcom.c b/drivers/soundwire/qcom.c index 6e0c5fb10ef..62a44f64dd8 100644 --- a/drivers/soundwire/qcom.c +++ b/drivers/soundwire/qcom.c @@ -778,7 +778,9 @@ static irqreturn_t qcom_swrm_irq_handler(int irq, void *dev_id) u32 i; int devnum; int ret = IRQ_HANDLED; - clk_prepare_enable(ctrl->hclk); + + if (clk_prepare_enable(ctrl->hclk)) + return IRQ_NONE; ctrl->reg_read(ctrl, ctrl->reg_layout[SWRM_REG_INTERRUPT_STATUS], &intr_sts); @@ -1675,7 +1677,11 @@ static int qcom_swrm_probe(struct platform_device *pdev) goto err_init; } - clk_prepare_enable(ctrl->hclk); + ret = clk_prepare_enable(ctrl->hclk); + if (ret) { + dev_err(dev, "unable to enable iface clock\n"); + goto err_init; + } ctrl->dev = dev; dev_set_drvdata(&pdev->dev, ctrl); @@ -1800,7 +1806,9 @@ static int __maybe_unused swrm_runtime_resume(struct device *dev) disable_irq_nosync(ctrl->wake_irq); } - clk_prepare_enable(ctrl->hclk); + ret = clk_prepare_enable(ctrl->hclk); + if (ret) + return ret; if (ctrl->clock_stop_not_supported) { reinit_completion(&ctrl->enumeration); -- 2.55.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v4 2/3] arm64: dts: qcom: add device tree for Asus Vivobook 16 X1607QA 2026-11-14 8:30 ` [PATCH v4 2/3] arm64: dts: qcom: add device tree for " Daniel Carter 2026-11-14 8:30 ` [PATCH v4 3/3] soundwire: qcom: check clk_prepare_enable() return values Daniel Carter @ 2026-11-14 8:41 ` sashiko-bot 1 sibling, 0 replies; 5+ messages in thread From: sashiko-bot @ 2026-11-14 8:41 UTC (permalink / raw) To: Daniel Carter; +Cc: linux-sound, devicetree, robh, conor+dt Thank you for your contribution! Sashiko AI review found 1 potential issue to consider: - [Medium] arm64: dts: qcom: x1607qa inherits 15.6-inch s15 eDP panel node -- commit 246e79ebfb4556e9bdaf80bc90837e339e322fb1 Author: Daniel Carter <yass27106@gmail.com> arm64: dts: qcom: add device tree for Asus Vivobook 16 X1607QA This commit adds the device tree for the 16-inch Asus Vivobook 16 X1607QA laptop based on the Qualcomm X1P-42-100 SoC, building on x1-asus-vivobook-s15.dtsi. > diff --git a/arch/arm64/boot/dts/qcom/x1p42100-asus-vivobook-16-x1607qa.dts b/arch/arm64/boot/dts/qcom/x1p42100-asus-vivobook-16-x1607qa.dts > new file mode 100644 > index 0000000000000..3877809dcb33a > --- /dev/null > +++ b/arch/arm64/boot/dts/qcom/x1p42100-asus-vivobook-16-x1607qa.dts > @@ -0,0 +1,232 @@ > +// SPDX-License-Identifier: BSD-3-Clause > +/* > + * Copyright (c) 2026, Daniel Carter <yass27106@gmail.com> > + */ > + > +/dts-v1/; > + > +#include "purwa.dtsi" > +#include "x1-asus-vivobook-s15.dtsi" > + > +/delete-node/ &pmc8380_6; > +/delete-node/ &pmc8380_6_thermal; > +/delete-node/ &pmc8380_6_die_temp; > + > +/ { > + model = "ASUS Vivobook 16 (X1607QA)"; > + compatible = "asus,vivobook-16-x1607qa", "qcom,x1p42100"; [Severity: Medium] Should this device tree override the eDP panel node under mdss_dp3 inherited from x1-asus-vivobook-s15.dtsi? arch/arm64/boot/dts/qcom/x1-asus-vivobook-s15.dtsi:&mdss_dp3 { ... aux-bus { panel { compatible = "samsung,atna56ac03", "samsung,atna33xc20"; enable-gpios = <&pmc8380_3_gpios 4 GPIO_ACTIVE_HIGH>; power-supply = <&vreg_edp_3p3>; ... } Per Documentation/devicetree/bindings/display/panel/samsung,atna33xc20.yaml, samsung,atna56ac03 is the 15.6-inch 3K (2880x1620) Samsung AMOLED panel for the Vivobook S 15, and samsung,atna33xc20 binds panel-samsung-atna33xc20.c, which applies Samsung AMOLED EL_ON3 power-cycling delays and DP AUX backlight control rather than standard eDP panel sequencing for this 16-inch laptop. -- Sashiko AI review · https://sashiko.dev/#/patchset/2dc9301fc1ec46cdb66dc49a85f721b1@gmail.com?part=2 ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-11-14 8:41 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-11-14 8:30 [PATCH v4 0/3] arm64: dts: qcom: add device tree for Asus Vivobook 16 X1607QA Daniel Carter 2026-11-14 8:30 ` [PATCH v4 1/3] dt-bindings: arm: qcom: document " Daniel Carter 2026-11-14 8:30 ` [PATCH v4 2/3] arm64: dts: qcom: add device tree for " Daniel Carter 2026-11-14 8:30 ` [PATCH v4 3/3] soundwire: qcom: check clk_prepare_enable() return values Daniel Carter 2026-11-14 8:41 ` [PATCH v4 2/3] arm64: dts: qcom: add device tree for Asus Vivobook 16 X1607QA sashiko-bot
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox