From nobody Mon Feb 9 12:44:54 2026 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1EFCC2F83C2 for ; Thu, 23 Oct 2025 09:03:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761210183; cv=none; b=dg62CgnTyzISrr6B9NBkkWZpULGLnlCNaME0lFbbR2pZ97O7BMUiEnIKEIagE8rSOPWDEmfEutoKZsPC43t6t0WC5fEPEqgZiw8a809FaCe4OlUTlBdGXLgfZwIeVmShj67MG1uzwFaA1u1HMFdoNmSUV121XNXxzxOewKveRzw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761210183; c=relaxed/simple; bh=jXxdH9C9VRkWHmRxwJrP71pcIAmNs6ZOMX71pm29Z44=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sx4fTrJXyzLEvoctA9SAdYWAs8zcEsceFE4YgEpKFnZ20lnV584JpbSvdLspgKbo9g8gGcSuxa12onxgd30SUXRAL82It6m1Sa2QWmgm/fWsakfYPY/TTDFL03toYTfmX7mPHMKCdR5eh4nk1F7K2Nv1a62/ejtJkDC+SU8lHdc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=oNw875Nr; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="oNw875Nr" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-471d83da4d1so147915e9.3 for ; Thu, 23 Oct 2025 02:03:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1761210179; x=1761814979; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=+ajwFUpC7vS5vEhz6078UzbCI957Tmu1QENJG9qhlY0=; b=oNw875NrTmF+mqKnbDrMWz3M6AjwUmEAa500NqdCqaunoYEbw1WtqzM9Vg02QfJW3q qyzIBDbfKOEzuLZcVmaUTOFq6Ms1CDfSqfxJx6ph8hyb9tHewqBSljIJtuST+S4iYX7f 9QUCgq0gIL5HSzzIc0Jn5+FVZZfPKez1+nL607rnF/ORBiv4u7Vu2JPLBrwVMuwvAXHK 8Kz1IjMTE+o1k2RwpdFlssOHq1Lje0rKCU7D7begJPRL79R2G8sc/RW3WYiiDkmJEjht 8JJskEbKVBjuERnxseRpMYJ1mWSXyESBRJi6Ya2ML9+1yvJ6NRm+w8im2o3JF3n+675Y 3U/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761210179; x=1761814979; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+ajwFUpC7vS5vEhz6078UzbCI957Tmu1QENJG9qhlY0=; b=wB3AicatYoumTqzYZ1oRn+FABBgXN/deSXtXP3Gjwzfx31f/tk+xMZKj0M9NGJUT+Z kWLu00Y3PHis8BPy2sYHqnI1R7iIFyk/0zrNJPQE8g3tVJOTQAWBC2E7sp3OjSh3zTlX hzgKuBYlWzVwGQ6blzz4DKePIMVeBwA7yihC4v18p6T+XMhD9AV+YcpHJkmnva0u+iG/ fYzeg/wxQkNXVuII+DbQLGIHfTXw38159WE6RzXRtC3tlLZaHLXOjL6K8rDVKvFnqzcv IdX/OASSdv7h4/a4DFIt5V8/UjtsicA3/3Pk801To8WuI8S630IlP1b2aS+AgoeheOpJ 2KMQ== X-Forwarded-Encrypted: i=1; AJvYcCVa0qvIeDk3Q3IIQfy5echIriKRcayy6mjEUHe5AU6Fza/djXIZr1hu0t4yxZq4kWE/j1sz2coErL1S35w=@vger.kernel.org X-Gm-Message-State: AOJu0YyYpXEGr8LATjqPIjKksp3cVbhSbs3GRijWLW6lFX0M1u6EAIr2 Lxc3uu1kaXKaOJYbTxYB5s2k0XcbltgAxZ09ojTu33qyE27CUMTCV38xDx9n0bf5HgQ= X-Gm-Gg: ASbGnctgbOh/tC4KrQ6G6qDaURhpOsp7n5EjmBAOUKnUdloIHAHuRVZPXjRTQJ/awPV 0qETXHcKjh6ULijeO5C7aCbJpJuX5aXBmNgO3bb5zr5LE7YlVZ1spHBgZ72gtjluBaTz2ru1z5r wCZiXWlm3viyuCLgCYoSOzwl9w29nv6S0EEPHXTevZ9m6RV0VeRK8tS5t77pt746cJQN4NEVHYl PR0YMU7ewOUD1feXYP/K4xGh4cYOsJqrsHuvRyCvLQ44XCYxzuPfwSQEqXL3GNkumVBBmP5gsYR GloeZpa0+813Z/PuuHEzXDUhAi284K1RFJG2Pqvps4q7jZDLIUJbtEwpYq6RUw6nXU+bjqRfL3A xkyivjdef0NCIpC92o0NnphZp8EqsG4M0sBiRKIOAs2FouKSjAEKuJhRyRY979v34SWdSxm6eg1 bg0m+CjaA1HISPtcyhZ7uD9dahcnI= X-Google-Smtp-Source: AGHT+IFIDJeI7KdMoHZzpPuK/TfFYTJzUBOwoSONQ4K1+PSV8rXTrleDHFGEfjcVdzkdeAHs/hDY7w== X-Received: by 2002:a05:600c:138c:b0:46f:ab96:58e9 with SMTP id 5b1f17b1804b1-475d04bbd06mr766395e9.0.1761210179390; Thu, 23 Oct 2025 02:02:59 -0700 (PDT) Received: from [127.0.1.1] ([178.197.219.123]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-474949e0a3csm57557415e9.0.2025.10.23.02.02.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Oct 2025 02:02:58 -0700 (PDT) From: Krzysztof Kozlowski Date: Thu, 23 Oct 2025 11:02:50 +0200 Subject: [PATCH RFC 1/2] ASoC: codecs: pm4125: Fix potential conflict when probing two devices Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251023-asoc-regmap-irq-chip-v1-1-17ad32680913@linaro.org> References: <20251023-asoc-regmap-irq-chip-v1-0-17ad32680913@linaro.org> In-Reply-To: <20251023-asoc-regmap-irq-chip-v1-0-17ad32680913@linaro.org> To: Srinivas Kandagatla , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Alexey Klimov Cc: Srinivas Kandagatla , linux-sound@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Krzysztof Kozlowski X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2978; i=krzysztof.kozlowski@linaro.org; h=from:subject:message-id; bh=jXxdH9C9VRkWHmRxwJrP71pcIAmNs6ZOMX71pm29Z44=; b=owEBbQKS/ZANAwAKAcE3ZuaGi4PXAcsmYgBo+e8+tMXWrX40+I3SxPj9c5jdiNmGgPS6Wu2OJ ojjRX1HrRqJAjMEAAEKAB0WIQTd0mIoPREbIztuuKjBN2bmhouD1wUCaPnvPgAKCRDBN2bmhouD 14gSD/9d54lBZMgKOcrwvwcPhtrFnzb25RJBzD70oFTlEftG+qpo5Dcr6hMHQ68dQimu9mlv7wi UcxlcQkt85UrKwX4CSS4n7QXK0s3blKwxFWecGDqkrWVRO/lole8wizQYYWvUzKKZueo/qB7HBH 8UTiHMH4lN6Xfk3whgscRQS2hRwS8PnuzBNainoRwuvvxRxbSrjjG8TRw7YBQnAsLQxf7FdaDLP vSEe+q78IYZd+hnisL5mpaUeXcIJT+e6PcMs2u5lTjkLqHxF23fhUZyYMNWi4tKNQMV9tfhWhnp NhS8ipeA71FzIZ26PeP9tT+K3HtPjuIYgQiduipQYnXJ5svH0Q7s7Oj9Xc8iE3/HuYUyV6YQkSW jBxC4b8ENFatXretxqy7Y0OqUxIYVF2taG7qHBaKdP1LpfqCh9TGcqS8yqOX+jLFwyEzps09T2a I4/vsvws40jZuRBMycUNJLuXMlg4NWttnhM/bX17Ep9hNcPH1jK7Qrd6ItdstarkknGd2Befai4 RruvEEmttA0cgJogE9PxdwUoIWdYJsiHhlYEh1oDHrjnWEspRW/dqw3Q0Ka8tJHUfqn7eOlbbtg VfgHy/XT6Pyr8Z6nvhr1Ar4JDirygaIMex/X0LznAijWk4KW+idr8B1+eWLeL/MKh7SWNIL4aY/ cN0cP8KhVKqZo4g== X-Developer-Key: i=krzysztof.kozlowski@linaro.org; a=openpgp; fpr=9BD07E0E0C51F8D59677B7541B93437D3B41629B Qualcomm PM4125 codec is always a single device on the board, however nothing stops board designers to have two of them, thus same device driver could probe twice. Device driver is not ready for that case, because it allocates statically 'struct regmap_irq_chip' as non-const and stores during component bind in 'irq_drv_data' member a pointer to per-probe state container ('struct pm4125_priv'). Second component bind would overwrite the 'irq_drv_data' from previous device probe, so interrupts would be executed in wrong context. The fix makes use of currently unused 'struct pm4125_priv' member 'pm4125_regmap_irq_chip', but renames it to a shorter name. Fixes: 8ad529484937 ("ASoC: codecs: add new pm4125 audio codec driver") Cc: Signed-off-by: Krzysztof Kozlowski --- Not tested on hardware --- sound/soc/codecs/pm4125.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/sound/soc/codecs/pm4125.c b/sound/soc/codecs/pm4125.c index e8d00d85106e..410b2fa5246e 100644 --- a/sound/soc/codecs/pm4125.c +++ b/sound/soc/codecs/pm4125.c @@ -70,7 +70,7 @@ struct pm4125_priv { struct wcd_mbhc_config mbhc_cfg; struct wcd_mbhc_intr intr_ids; struct irq_domain *virq; - const struct regmap_irq_chip *pm4125_regmap_irq_chip; + const struct regmap_irq_chip *chip_desc; struct regmap_irq_chip_data *irq_chip; struct snd_soc_jack *jack; unsigned long status_mask; @@ -179,7 +179,7 @@ static const u32 pm4125_config_regs[] =3D { PM4125_DIG_SWR_INTR_LEVEL_0, }; =20 -static struct regmap_irq_chip pm4125_regmap_irq_chip =3D { +static const struct regmap_irq_chip pm4125_regmap_irq_chip =3D { .name =3D "pm4125", .irqs =3D pm4125_irqs, .num_irqs =3D ARRAY_SIZE(pm4125_irqs), @@ -1320,10 +1320,8 @@ static int pm4125_irq_init(struct pm4125_priv *pm412= 5, struct device *dev) return -EINVAL; } =20 - pm4125_regmap_irq_chip.irq_drv_data =3D pm4125; - return devm_regmap_add_irq_chip(dev, pm4125->regmap, irq_create_mapping(p= m4125->virq, 0), - IRQF_ONESHOT, 0, &pm4125_regmap_irq_chip, + IRQF_ONESHOT, 0, pm4125->chip_desc, &pm4125->irq_chip); } =20 @@ -1695,6 +1693,7 @@ static int pm4125_probe(struct platform_device *pdev) { struct component_match *match =3D NULL; struct device *dev =3D &pdev->dev; + struct regmap_irq_chip *chip_desc; struct pm4125_priv *pm4125; struct wcd_mbhc_config *cfg; int ret; @@ -1705,6 +1704,14 @@ static int pm4125_probe(struct platform_device *pdev) =20 dev_set_drvdata(dev, pm4125); =20 + chip_desc =3D devm_kmemdup(dev, &pm4125_regmap_irq_chip, + sizeof(pm4125_regmap_irq_chip), + GFP_KERNEL); + if (!chip_desc) + return -ENOMEM; + chip_desc->irq_drv_data =3D pm4125; + pm4125->chip_desc =3D chip_desc; + ret =3D devm_regulator_bulk_get_enable(dev, ARRAY_SIZE(pm4125_power_suppl= ies), pm4125_power_supplies); if (ret) --=20 2.48.1 From nobody Mon Feb 9 12:44:54 2026 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A4B252FB98F for ; Thu, 23 Oct 2025 09:03:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761210185; cv=none; b=G6v5m+40LS2GAGNEmRFl4xBdGkBYqJtQ5Y42f/kvE5KN0zgTEDb+Ym3V+Js29QBXtABra13+PG5Gt0HwcZE3oLUqzn3VHFuyKl9krF+DiUmPvlEs04bj+InKE+EMJW9/X+pUNkTl0ZOCItQuADs9knTazQ46RBjtMTe6LrNDkcE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761210185; c=relaxed/simple; bh=RvB0QfII4NieHlSWxal5DHWC4pQUcZHC+PzTz/++OqI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fnfQOMirUg08CDXAlWbneZK403zR3TcmzTtVeuLZcRp7HH9UpP86khT8lMrsgwsRhSdFrNj4KkBkKRKz8N1F/yG6wkj9fjKjUBOFMgYokZxJWwkjEB0t/PsJWMQ6q0ndO2G74RcI5TUpPNok8Yrpr/N6j7ghAJUnBf4xWrOaItc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=TbbCE/yT; arc=none smtp.client-ip=209.85.221.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="TbbCE/yT" Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-4271234b49cso81916f8f.3 for ; Thu, 23 Oct 2025 02:03:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1761210182; x=1761814982; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=B0lmo2gSK6dC5/iKwrS24Z1fB1vhkVWE57DPvqhuyE4=; b=TbbCE/yTNL1Fyu0hWMxzS+f5RoV8ls2DrB4pC0p2xW75nNF4HUfRVDJWSOYePU9Ysm 6C5YqRso6lG6ZTJDZN51R6VnbJzPEe5Enthe9ZYK1v5fyD7dBLGPKDeUaZpVV0WTeB7Q dgzqzdhCCTCseNMaETuVxidt6pcCIM3uu+j6XxpG3hZep9yryhPjzAPFjfYHbODoXQQl S7gtIV1DQKDH3/e3iBjnifwFHI3A8t+2HXyuh+CXjPGScDuuWfRke1NU+x02OPtUN3Hg 2lANTJizQmy2YEHOg2Nu/C2NxnDqtZSI+BEMJWq/W4pmKSml4uBdGUeLGBtcmOraeP3U P88w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761210182; x=1761814982; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=B0lmo2gSK6dC5/iKwrS24Z1fB1vhkVWE57DPvqhuyE4=; b=cmFcQt7S5ZNv+6s0RkMR+N15OqwJHvPtdp36er8JePAQXeg/07kF0zAxjaMd/wrTIH dOet0q2dtPOs87ny/yXU+YLhLMUdfEIk1H72p+OH2wLsldUfD3YoHIqAU7R/nnY0erZO rxnBUKp2QSMWSsEfQBJ7Ua8SRFWFNsZYr77cMERwQ7RapzfEbA71nDN6uP8Dg2BtiKbV 2RFTehy/atzacDi9MvpeP1smO/Q7JWVcvxfr8xNcA17KmB/GfWBShbLkPw8gCiiRsP06 Aazu9bOAd//x7LS/xFWTObadc2b6NrsTiSg4cm1sOvhrFcgKr/0P3trGpuPlHdO2/zSe PK7A== X-Forwarded-Encrypted: i=1; AJvYcCW6LHibXhoraES/DksHNcMfW+4FYAxF6Tbuvf+45zQqErraKJwf0igD7aU95BVfJ6/6JE77vPdVj4RqNxs=@vger.kernel.org X-Gm-Message-State: AOJu0YzEKoRbejMItqYdst6cbzhJd4W3w4ZRcxJhCvlL95zVj4ny+CgE 5bQ/CKTx5c83e2VmOQgiHyTMar/iYi/ep2gBGNlGdcuSUoDP6mPlMx8pmcxjjifHxZ4= X-Gm-Gg: ASbGncu7tVMCFRTr4mBrhVmETr/AKzGkXgWZdD5mytsbCGXg0Yyys3RZC9HGfw6roky ZNkKg+Z5gj8fzzXQ35gRkl7bAAsv7zPWDppHXsq36favWHdna5hhfr+Us0m8wSzXGufQktBjjMt ztlWpYDoeRyf6u1TIBHOMrWtNzJyz0lRyoVSdtHL56TDptRkHwFj+tZ8eK0Ne/fytYR1ndgQIhI 65ulsu+5KAMoGAqnHg5/pFqEVs2DXf4Lm6YLFJr2/nRdzMIZ81Z1Huq6YjVIGwZJZpouq7ASkLA WQGsyJm2w1VfJ0IrorszV+Q2YDncrYC7nuTrfZZQArmsgDami5mp1f6WwEPigt231vLnEG/IMCN X8VidAkzV0YC+bE1sFZUs2W3xUqPosfT95YZwrCf8Vg/dInZMQvTHIl+1O7QCjjmkt5GFzX/XaI Z2eypKIpuP61gfMuyKUTHVQU9ahvk= X-Google-Smtp-Source: AGHT+IED6vyXHphp1/qY9Tno4NQeRDekE0RdTtSCtP7Dt4LSJrXcGljAhWwqEXuSADOQSeczj7tsKg== X-Received: by 2002:a05:600c:3b02:b0:471:161b:4244 with SMTP id 5b1f17b1804b1-4749439ec9cmr42438295e9.5.1761210181644; Thu, 23 Oct 2025 02:03:01 -0700 (PDT) Received: from [127.0.1.1] ([178.197.219.123]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-474949e0a3csm57557415e9.0.2025.10.23.02.02.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Oct 2025 02:03:01 -0700 (PDT) From: Krzysztof Kozlowski Date: Thu, 23 Oct 2025 11:02:51 +0200 Subject: [PATCH RFC 2/2] ASoC: codecs: pm4125: Remove irq_chip on component unbind Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251023-asoc-regmap-irq-chip-v1-2-17ad32680913@linaro.org> References: <20251023-asoc-regmap-irq-chip-v1-0-17ad32680913@linaro.org> In-Reply-To: <20251023-asoc-regmap-irq-chip-v1-0-17ad32680913@linaro.org> To: Srinivas Kandagatla , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Alexey Klimov Cc: Srinivas Kandagatla , linux-sound@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Krzysztof Kozlowski X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1144; i=krzysztof.kozlowski@linaro.org; h=from:subject:message-id; bh=RvB0QfII4NieHlSWxal5DHWC4pQUcZHC+PzTz/++OqI=; b=owEBbQKS/ZANAwAKAcE3ZuaGi4PXAcsmYgBo+e8/GYFUijdJAKhixCgluMcrMSqaCUzWEFwMT hCKiKSlid6JAjMEAAEKAB0WIQTd0mIoPREbIztuuKjBN2bmhouD1wUCaPnvPwAKCRDBN2bmhouD 1zXxD/9SorjfLptnntRhhKS9ae8uP8iYdmgGaYBh++xUoDagGf60z/a0/ECNV7RHSNIp/ievlC8 UH7q7SGN0HS9OkjQiD0atioUjpLpDfMIg2MoY4Q8BxDzG7MKFB2pC/vXDJW/tgL24rZmKjWevR2 asW1KbgrTl2iuR56NbyDcfoT1cQ3HQUHk+gcgHtyi4MKElbcS2uyCbhe/4cevCpyeGPxOh8pKvz IkX3RwocFPza8PSe7egItdTLKsnKy5XBBFJaSox9kc0ErH0+ee13/vQHr7zLuAZnnymRJN/P3Dl WieCTZebuLgIHT6Plh6inXm7mk1j7WGhzdpSYoo5Etl9Tb+SWxBi5wYlGqTIY28TTm+tMCj1Vut n9M6aBnaodiyw5NHhY28HYmvBLonxHQMyu9aq1G7dIE3IotfR608K8hWGCsQa6ao0STrqzpOWUE ANsBjjBeSdNcShYtHxNl76GFqINCCDlfG9qjH5G7Kax4a4B7I2Q9bzmC5AuWurL9MwRbL/457OT 4aP+fZp2oZbi9xpQt5tb2BJHxtqJLhdhQ+Sw0DzsKgEkcq0Kr/MfnCSyGMB3L268D4T1QZ4LYzP uA7mrxWuk+iPgtz/5Cb7pru2gYoCJ2QxhsMYAT4HvxhrjL13/LosFZ5eTFQcZWmN7LG1HvelzpP Z7zVyu6HaBmXmLw== X-Developer-Key: i=krzysztof.kozlowski@linaro.org; a=openpgp; fpr=9BD07E0E0C51F8D59677B7541B93437D3B41629B Component bind uses devm_regmap_add_irq_chip() to add IRQ chip, so it will be removed only during driver unbind, not component unbind. A component unbind-bind cycle for the same Linux device lifetime would result in two chips added. Fix this by manually removing the IRQ chip during component unbind. Fixes: 8ad529484937 ("ASoC: codecs: add new pm4125 audio codec driver") Cc: Signed-off-by: Krzysztof Kozlowski --- sound/soc/codecs/pm4125.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sound/soc/codecs/pm4125.c b/sound/soc/codecs/pm4125.c index 410b2fa5246e..c5ac2e6bb44d 100644 --- a/sound/soc/codecs/pm4125.c +++ b/sound/soc/codecs/pm4125.c @@ -1658,6 +1658,8 @@ static void pm4125_unbind(struct device *dev) struct pm4125_priv *pm4125 =3D dev_get_drvdata(dev); =20 snd_soc_unregister_component(dev); + devm_regmap_del_irq_chip(dev, irq_find_mapping(pm4125->virq, 0), + pm4125->irq_chip); device_link_remove(dev, pm4125->txdev); device_link_remove(dev, pm4125->rxdev); device_link_remove(pm4125->rxdev, pm4125->txdev); --=20 2.48.1