From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.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 5825E327214 for ; Mon, 17 Nov 2025 09:31:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.173 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763371910; cv=none; b=JZ4jDm4r5KqxpNjT7jHGpacfDxsQOpsRQKitbE3Q8eFIA0R0+ZmnxeCyNEwaqSUtL1I3rqToM6Tr1+kBg6uZyCqX4qyjFJu5yOP9I3nCX0UB6IyTe1kBPThukJE6LurbJ2f5WM0BUpCmhnfLjm9lIQesUJHLmVQUE0wez6h9LHM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763371910; c=relaxed/simple; bh=dXjhXxcv2DSmkvcEUVEFNc/Z7eefdDwfLTQ2w3IBppA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=cc2VGhKiP8kfxSQRTmRqHUlnfbrnQDgm7jFzZyCHhHLmTaWaf7W/varmd6GpMSZDn4xS4zrz7ZX1Fx7oMK4uAKhufDXiowuzhOLGYjKNcyW6++gYAg4uUF1a/dfEPEtD/C8zR+vyfRvdIf5VoMCnnCer5G4G4Buo2hPBL68lCzM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org; spf=pass smtp.mailfrom=chromium.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b=GW5Iv8+e; arc=none smtp.client-ip=209.85.210.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=chromium.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="GW5Iv8+e" Received: by mail-pf1-f173.google.com with SMTP id d2e1a72fcca58-7b8eff36e3bso5259133b3a.2 for ; Mon, 17 Nov 2025 01:31:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1763371906; x=1763976706; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=PmN9wGkOssBXv1ykVPZxf1HrUIUqtqrMhWFWgBL1Lrw=; b=GW5Iv8+eaPSy+z+B9cAkGA5+s+RRblWm8jfMy98rsTX8casdzKxfug47n13miwi4vk s8SoZ0D6zBjaHGsfttEZojb85aORnlfIVrcqgpf8Rb6AcvOLteOieAoTWNZg7qDMwmVr rKopBIxDYGNAa/NxnriTFfBPE+naEKP87ekWc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763371906; x=1763976706; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=PmN9wGkOssBXv1ykVPZxf1HrUIUqtqrMhWFWgBL1Lrw=; b=pocdcKU/yo/qAS1rirGc7O5n9WIMVj4wdCWDy2bRbTsfP6iupduaLyZ8GnpGc+6TDO i57f1jPoQA6lu6jaQZ8gUToTViNr9vnDKtEZBjVSn7Uq+3hk5zvZxz/+LnV8kwSJL1hU NaGseik/lBleRc/yWc5N/MjrDKRlIvi/xH7pp/7evRrJcg7cJPabDiaJCHMf442iz0VY 9M7X45+0dJgHwJvrB62OZsRUUDJfYKKRtnu97I63fcwS4PVBPCu79oPki2R2ERAI7QaD IsICTZkK5tswGqttiEXwcOTyu5zTCjRePKgY3NT1ZBna4HYMDK62sZ1y4n4o+SKb69fu w/kw== X-Forwarded-Encrypted: i=1; AJvYcCWk9kP23DHv7C6q6Mn0XJdbeKTCXnr0iXq7nmcm/Sc/JujnBkI9trEyS0rub/GbhlBWUu0KKMxuLdkN/ic=@vger.kernel.org X-Gm-Message-State: AOJu0YyaEJHoTbUc1mRbFV3/WRBQjVkBVvutS2ScrOknW+YlAhCsRlG3 8UEs4sH4zTgWTs5jR4gg4IbvoBkZ0UjsZR68+J+NNPiTQZ5yOwyP7wR9tY+N8F8NnaUd2fx4wCY ZeXRbIA== X-Gm-Gg: ASbGnct8ACWTJEB5HcOds270GiotHPDejV1LsWOkwEfCxkdyTTekqY6G0PZkF7K9wQR yMNE+9xqRfhluRlIUwXYKMvJEBKS4HQtQbN+w1PtaNBq1UZA7vjnN0WA8zjwjz77RvyvMLrnmJW NNz96kyd9XARgv1l5LAVBA14iFE6zh6yoNC//IbHveDg6braXtA2aZMs6EuHoV9Sl80InfMfTjt 5CmFwoXIS4yH0W6CBbQ++I9XToR3071ORclT9monNFpojvjznRSQvxypBmnhKxafbxNYkwgBDAg LwYDe/dCokrxPELiv/xm2LHR8OeLACT4PLzyR7+12pHJ+Gj+0AWWpbYKHAFUn0ehEpVKYp3xte2 LGBrXAiXBHGSUxoxtvFQpm+CyVaxo/mxXzlT72pkUyf1k0YJ/YldTTRXSpCT+DReNahIAc1vICi wpY1HAQrm2QNulNq+gvwJ31+c0WdqINoFEUsoTzWdHjXg7O78lgqx0hgyRZkvf9fxqB7HGHXd4d 6k2Tj1n8mqQgg5LjRTS0TAo X-Google-Smtp-Source: AGHT+IETxgyi9b03me3vPqS7pPWEHDlziAJ7UGXQh1YuS8eYyyreuanLOo8tykqNPIeqBIhxsho52A== X-Received: by 2002:a05:6a00:c93:b0:7ab:653a:ca0e with SMTP id d2e1a72fcca58-7ba3b7a9fb0mr11046343b3a.23.1763371906545; Mon, 17 Nov 2025 01:31:46 -0800 (PST) Received: from yuanhsinte-p620-1.tpe.corp.google.com ([2a00:79e0:201d:8:baac:e815:f422:b47b]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7b927151380sm12530794b3a.38.2025.11.17.01.31.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 17 Nov 2025 01:31:46 -0800 (PST) From: Hsin-Te Yuan Date: Mon, 17 Nov 2025 17:31:43 +0800 Subject: [PATCH] usb: typec: ucsi: Monitor connector change before getting connector status 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: 7bit Message-Id: <20251117-ucsi-v1-1-1dcbc5ea642b@chromium.org> X-B4-Tracking: v=1; b=H4sIAH7rGmkC/6tWKk4tykwtVrJSqFYqSi3LLM7MzwNyDHUUlJIzE vPSU3UzU4B8JSMDI1NDQ0Nz3dLk4kzdZKOUtFSLZAMDsxRzJaDSgqLUtMwKsDHRsbW1AEOw0Bl WAAAA X-Change-ID: 20251117-ucsi-c2dfe8c006d7 To: Heikki Krogerus , Greg Kroah-Hartman Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Hsin-Te Yuan X-Mailer: b4 0.14.2 Originally, the notification for connector change will be enabled after the first read of the connector status. Therefore, if the event happens during this window, it will be missing and make the status unsynced. Enable the notification for connector change before getting the connector status to ensure the status is synced. Signed-off-by: Hsin-Te Yuan --- drivers/usb/typec/ucsi/ucsi.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c index 3f568f790f39b0271667e80816270274b8dd3008..07290cd85b618b22cb989151079707dbe9f578a7 100644 --- a/drivers/usb/typec/ucsi/ucsi.c +++ b/drivers/usb/typec/ucsi/ucsi.c @@ -1565,7 +1565,7 @@ static int ucsi_register_port(struct ucsi *ucsi, struct ucsi_connector *con) struct typec_capability *cap = &con->typec_cap; enum typec_accessory *accessory = cap->accessory; enum usb_role u_role = USB_ROLE_NONE; - u64 command; + u64 command, ntfy; char *name; int ret; @@ -1659,6 +1659,15 @@ static int ucsi_register_port(struct ucsi *ucsi, struct ucsi_connector *con) goto out; } + /* Enable the notification for connector change before getting the connector status */ + ntfy = UCSI_ENABLE_NTFY_CMD_COMPLETE | UCSI_ENABLE_NTFY_ERROR | UCSI_ENABLE_NTFY_CONNECTOR_CHANGE; + command = UCSI_SET_NOTIFICATION_ENABLE | ntfy; + ret = ucsi_send_command(ucsi, command, NULL, 0); + if (ret < 0) { + dev_warn(ucsi->dev, "con%d: failed to enable the notification for connector change\n", + con->num); + } + /* Get the status */ ret = ucsi_get_connector_status(con, false); if (ret) { --- base-commit: 6a23ae0a96a600d1d12557add110e0bb6e32730c change-id: 20251117-ucsi-c2dfe8c006d7 Best regards, -- Hsin-Te Yuan