From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) (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 D9FBC246BCD for ; Tue, 28 Jul 2026 01:31:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.173 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785202302; cv=none; b=lEzG5ZqOaPu7H69sVzVp7fokxUTRQLXWDmccXhUnMW3GxgwlKrCINo9sd6fbSNFOMa0MGcId06wAd0bSG6eGwXZETOf0oj8S4+CeRSz49BvGyT1pMoHzuUz1W5EDsXYEOBXF+0k0p74oxS5fNC9y33GDA4ne5K0vauti2orW4wg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785202302; c=relaxed/simple; bh=xN3XdDgIGoruQW2AwPCdjZ3rcxzT9LsA5JnV72gCxjo=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=RtzWQdmlC3Y8n6ZFofMrlKziyfoUapH1Kb3W665FLcVzOOnQo6zTz7OemniWp3KL3xWq2E5uDc3JVtVYLVorzIfdpWRoJWU1Ukm3LxuYOb64gxtzkGEbV59bQbETj5om4mD10FY0b5nYvQrPy9hXf7juJvOt3O2ObxHTwEsAydc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=quora.org; spf=pass smtp.mailfrom=quora.org; dkim=pass (1024-bit key) header.d=quora.org header.i=@quora.org header.b=VsalMrGt; arc=none smtp.client-ip=209.85.214.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=quora.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quora.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=quora.org header.i=@quora.org header.b="VsalMrGt" Received: by mail-pl1-f173.google.com with SMTP id d9443c01a7336-2cc7e86e7aeso37134295ad.2 for ; Mon, 27 Jul 2026 18:31:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quora.org; s=google; t=1785202300; x=1785807100; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=NV9OX3HfsztmSf4OIPL5ZR2O39v4TxztWNESgaKRtxg=; b=VsalMrGtZM96C3PiFobwI3SVpMlEHO6538kUUbPGmCus3AdlG/rwYyMIl2oaEAXgGd ESB3+nbelD31swgMz7wHwiZxpUTTCTpSdPenyIs6rap0Sx9J9N4wPgO+cgLoKHV80IuX H3dIsu1KGoxBBIQcn+wwbSgYjMuTMVE6jsAko= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785202300; x=1785807100; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=NV9OX3HfsztmSf4OIPL5ZR2O39v4TxztWNESgaKRtxg=; b=QqtB49T2c609VS5dg8NjVb8DMx6tBlD1Rh857XyhrInrZ6iQVxdnOFNr6fIZ3ePF3a SqivQvyOGLU8YJhPShq1wMujCbal/WB4M9t9J08fBPn6/WcOAB/lrqp7XzCz6NPXKBe4 XFIfaevoOiv0yCGLZpWB6NGxzD4odXyRtdV0w1w7tNBrykrzYsJggeVe5BKLk3YWTT/0 Plq7GKbwQ5SCXTjdWKU5ap/PL9y6Jsbq3YEMLWBMGEfegvoHJF/HWtZbjlCG0vHI9IVT kjrgR88485hFRUaw9FQES5r2azxpmNxFTE4lTW4nTp4fdMzDD6pE47NQUnvKmE6qsahn AoMg== X-Forwarded-Encrypted: i=1; AHgh+Rr8O4UvxQ5+bz0yyFDrToTRlAxK/dFS7PDiwfDC5xteMTyzSeHlkQHT2ygC5l5/nUmJn4xrtYewlyjSt6A=@vger.kernel.org X-Gm-Message-State: AOJu0YxGkm7JqkEFhNk5HEcH+Xnxm/Eif7TY4uOLYOBZwCWmrID1TVHO VOABbln8Tb175wsGngtCcnIJBnIOe/U0mMJZWkX9brQHTvqaOymly1RbakHwE5ycIs4= X-Gm-Gg: AR+sD11PBtYHc9rGocOu0RgJa1iMsI3jtcpB7BKj/c15R43nJ1Dc8+XGl5it98jDieS HJEtKhZLO9QN4Z7nTcvqGt6hUXn2vw8BLJ3BZ2jYP5roz0QGHl8t/aTq2i7Ip/T17/ufRBCOnqt 38d/q5Fcrhd412saa8lQ/T+2rueld1FQGij+dNfqSvSU+9+E/j5kU6Yq45ZAp1ULbkApWuXQlLu lPclv8NSIlAkoB5RWpaqNhZMcgI+lO6pnOlBhrZZEBuGgB7A4G9JljySRndOozdBhJZi5J97oED IpgZGoTs1ts3Dt/RpHdCYS+pgMqp8p6tepzqT8+Lk33aeyfcYPnwlzrLIX8EV8Hk8L9EoWEP71b E6WYYIoJXepAFn/CVASEeWM//PmUKQdIC0krqvv+xmYPMP6bfulV5evt6TA4Tdy229DzU0mt7uC cZKjPmIEFd/9sePwMNZs1gJ/WUDE0vZYDAcr7dcpCxGUY5QmU8E1RcPUxew8+h3qe8XSIwoWLAr iyyGUu4QNE1jh7qlxHlmpatpSSigQIA5lLaAdmbUaYkAKJFXYHVcEfaXsgFcnfQStsKtTaU6obd NAVYksHlobjwKWIBRMWolk0tQEp/ePZXhDhSRljDqLXTiZXQ9oxL5h1+WRlcq2cIHeuD4lGCPgw dcAW61sJjZI7FNR5SwVjoO9ww9w== X-Received: by 2002:a17:903:b8f:b0:2ca:3e3f:4956 with SMTP id d9443c01a7336-2d015d43f76mr3129095ad.44.1785202300262; Mon, 27 Jul 2026 18:31:40 -0700 (PDT) Received: from aegis ([2001:fd8:4d03:6b00:7871:9297:7799:ea22]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2cfde81cd27sm43655545ad.79.2026.07.27.18.31.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Jul 2026 18:31:39 -0700 (PDT) From: Daniel J Blueman To: Bjorn Andersson Cc: Konrad Dybcio , Neil Armstrong , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Daniel J Blueman , stable@vger.kernel.org Subject: [PATCH] soc: qcom: pmic_glink_altmode: use a freezable workqueue Date: Tue, 28 Jul 2026 09:25:49 +0800 Message-ID: <20260728012549.14502-1-daniel@quora.org> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit On suspend wake, the DisplayPort altmode setup often executes before devices have compeleted resuming; this triggers a legitimate warning: i2c i2c-2: Transfer while suspended WARNING: drivers/i2c/i2c-core.h:57 at __i2c_transfer+0xc0/0x9a8 Workqueue: events pmic_glink_altmode_worker Call trace: __i2c_transfer i2c_transfer regmap_i2c_read ... ps883x_sw_set typec_switch_set pmic_glink_altmode_worker The setup doesn't succeed, leaving the DP-alt monitor non-working. Fix this by queuing the work on the freezable workqueue instead, deferring the setup until devices have resumed. Observed and validated on a Lenovo Yoga Slim 7x X1E80100 when waking from suspend with a USB-C DisplayPort monitor. Fixes: 080b4e24852b ("soc: qcom: pmic_glink: Introduce altmode support") Cc: stable@vger.kernel.org Signed-off-by: Daniel J Blueman --- drivers/soc/qcom/pmic_glink_altmode.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/soc/qcom/pmic_glink_altmode.c b/drivers/soc/qcom/pmic_glink_altmode.c index 619bad2c27ee..939a444ebe6e 100644 --- a/drivers/soc/qcom/pmic_glink_altmode.c +++ b/drivers/soc/qcom/pmic_glink_altmode.c @@ -450,7 +450,7 @@ static void pmic_glink_altmode_sc8180xp_notify(struct pmic_glink_altmode *altmod alt_port->mode = mode; alt_port->hpd_state = hpd_state; alt_port->hpd_irq = hpd_irq; - schedule_work(&alt_port->work); + queue_work(system_freezable_wq, &alt_port->work); } #define SC8280XP_DPAM_MASK 0x3f @@ -501,7 +501,7 @@ static void pmic_glink_altmode_sc8280xp_notify(struct pmic_glink_altmode *altmod alt_port->tbt_data = *tbt; } - schedule_work(&alt_port->work); + queue_work(system_freezable_wq, &alt_port->work); } static void pmic_glink_altmode_callback(const void *data, size_t len, void *priv) -- 2.53.0