From patchwork Wed Mar 19 15:30:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Griffin X-Patchwork-Id: 14022789 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (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 CFA5C1D54D6 for ; Wed, 19 Mar 2025 15:30:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742398234; cv=none; b=Kur+BVKKbEyMFhj9vsWgPpQCjQvOzVyy3Hxbl3DqRdWgZUIAsWokuBOqTh7cvwtgB260NuJxaXB73bit4T0fU5Uc+06D+uNfpYL9uzy73kLsuY/8zzMfaLPlsRMTdKwVUmieKZ+j/gvUgC0evxgfVWj6U4Fp9a8XAeSrgPbL99g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742398234; c=relaxed/simple; bh=03nXe96Gz68DXY2H0Ujds8952wDZmWtW9nwe7BZ34Ws=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=PuTu/PGGAvzlN9YqdqKf9VpiEVNhSKO6gbEbLXQJZNiNMXNubI3Uax/1AcV3x63XB6fm+q+NNgtCrrMKQzu81tWm8/0T0SqJ6AdjOAokKDKOuxUccQvnvHI49IcEW1nFdW0SRperM3XbggiF7M4QQ3UYi9tV18Z93f9MtH70UuA= 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=b9hbaBie; arc=none smtp.client-ip=209.85.128.43 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="b9hbaBie" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-43cfa7e7f54so6249365e9.1 for ; Wed, 19 Mar 2025 08:30:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1742398230; x=1743003030; 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=kwjbmevRcW4yMfkA4dX1AKUxaSG8vNc+QBgPKteOh5Q=; b=b9hbaBieY6xkd24eowA06DhvK10O67DQdqezVgbHDd+/Kj1B5+9tBgw9jK5mN179F9 kx7MLSV0TS87JFRaaNAWdBEn9DxzjB5rrMMplxKKCTX7F7f6Uh6kd/ky1Iwr+5KTwspo jBmjuFm48pYN7xfgaz5e6+emtoVepUWesYYrFKtSQwVTI7blnXQ1xHpEtxja8sHOajNg eogcGTgkNeUX00hyf6X10yF6Qxj8NBosoHTZ1fuEnd+LRI8tVuKD7zh3vf7S6DAe1kyc 9w2+2wSYHiseokhx36iiCmicFKjshzGkRVJeSm8M0cWNgax45YqBjZ1M0Detes+SEhD2 tg1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742398230; x=1743003030; 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=kwjbmevRcW4yMfkA4dX1AKUxaSG8vNc+QBgPKteOh5Q=; b=o1wfrWuIKAquMT42Ns5AAKRVZfRnMiFoiXymTD4zaXVaSX6tqpx05jJZy9tAmFIQsd gkUfPT9uFmGLAV6THRPJFa3XwzrZkHTl5JcqSo6ekpGnT0ymongkbiK4qETKQFdtGljY OJ6i+WAtcM0ef7iCUeREFLraxwTGc2rf1lu7k7t69DBnzY0gfOoQdV+ual5y7+zz+MN4 MbfVRD/jZUHMvvg/c2+Hb9ncQgcFhfWVy/NqzNoq5KJMo5nPNcAqIntr2vC7JB2aEpKh v70COQ5WlC0O9Zr24YFWP1b5UEflkudyvyw5Of0zHZ3mQ92GgZ/s7StH3cAHdighDLsJ un7A== X-Gm-Message-State: AOJu0Yxvu/edssHf8bLxB90kILEE6FbkYeTIgjBB7y0/5tuM4l43ye1K yESp8IrJSBNOzOYeCmSVx7b8mS8tQRst+UG59xGuP8AyUJiC85ibc8Tt7qTAFMQ= X-Gm-Gg: ASbGncvzzYIdMipN98GhhaesFLAapW1+6W4vOPJ5jeHjCDI3nPyWm8p/f2DBKM5wzS3 O0gdZf8wFj8GUjFsZ7MVwH8F22Zcn8HSNznIRSSxtklCaKdj9CW5JmKNG0v72zFKAHAqH0Lfzw8 m/uzoe9i6UjhFVA+5U1hsa15JLasw8kk875v7iAYRRLMy3X93dpZCNFGjPyC1IVRgEbCKu9fUfR 3cjZWsCo8DK1poRePH/gH2/0+gRVi9/OsHxNw06LZ9F4k4fm0MrZd4mLBQ/TMK6DURrO/RFY/Bt 9Rwz5Cd9aQmZRO0ig74Lyj7TpEEaaCQglLfC5K6BthmaqtOEC4Vh0wQx2wHgNBL/vV01p7ju36W +L0Yn9vWbbRo= X-Google-Smtp-Source: AGHT+IGMbhvAoKZ5MZTSGuKQwWBy+XHvI6tDwhUHbcw9eJrBgGY8SFOMgUHG77gsUcqyh9kE5lpXWA== X-Received: by 2002:a05:600c:5856:b0:43b:bfa7:c7d with SMTP id 5b1f17b1804b1-43d3b95f76fmr61386045e9.2.1742398229831; Wed, 19 Mar 2025 08:30:29 -0700 (PDT) Received: from gpeter-l.roam.corp.google.com ([212.105.145.136]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43d43fdaca8sm22590635e9.28.2025.03.19.08.30.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Mar 2025 08:30:29 -0700 (PDT) From: Peter Griffin Date: Wed, 19 Mar 2025 15:30:18 +0000 Subject: [PATCH v2 1/7] scsi: ufs: exynos: ensure pre_link() executes before exynos_ufs_phy_init() Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250319-exynos-ufs-stability-fixes-v2-1-96722cc2ba1b@linaro.org> References: <20250319-exynos-ufs-stability-fixes-v2-0-96722cc2ba1b@linaro.org> In-Reply-To: <20250319-exynos-ufs-stability-fixes-v2-0-96722cc2ba1b@linaro.org> To: Alim Akhtar , "James E.J. Bottomley" , "Martin K. Petersen" , Krzysztof Kozlowski , Chanho Park Cc: linux-scsi@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Krzysztof Kozlowski , Eric Biggers , Bart Van Assche , willmcvicker@google.com, kernel-team@android.com, tudor.ambarus@linaro.org, andre.draszik@linaro.org, Peter Griffin X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1417; i=peter.griffin@linaro.org; h=from:subject:message-id; bh=03nXe96Gz68DXY2H0Ujds8952wDZmWtW9nwe7BZ34Ws=; b=owEBbQKS/ZANAwAKAc7ouNYCNHK6AcsmYgBn2uMQZlA3NYaC9iaL3h/pGHUSlEutMRvCD5thM 9WKscPfzzGJAjMEAAEKAB0WIQQO/I5vVXh1DVa1SfzO6LjWAjRyugUCZ9rjEAAKCRDO6LjWAjRy ugjPD/97aGZqjPkj2/fwPbyQRgsv1vpdcmhpXOfwtWmb1QyfOW6/ACBPRX1BjM4Fb32yZ7mz8hW qS5ca003v2iZhlO/pxyOsaJswTIzUNpY+/X51cAEjIOA3eizjndOKzl5Sa/+pmuXvoW0MU2D64Z 0fDE2rkK6C63xBtMv9vSyeGWP0xMGtjrXH28QjH7O7OUgpBpAlQIlDY2W+3ywbWDpvBLPObLiki f4RVMFgRf1mT43lig0UDqf4IKyDyAQClKCXMF7Ml7QKnYjorn0i5eFd/MjJGhXkOyxRcsBqsw8v UlR92f8uBwlQDtgiV2odpELxZUNQyspLFbzlzx1nXCS3J7tBuwmnyfipWMKB5d1UwL4Ccaj4yMa PsVfbR33+4w6vVl0q/0GCouG4KaeM9Ps6fgUpUh5t/C0RHhKTDQeru7yf2LKcTLOoy1L2mrvsLA XKBSjaQkfMctqQlBP6o8k9iViVBtn0ulX9Ug4dGcjyXzpOZl2QAuIAKvLFTK55Vem54BuYf+mL0 1O00+Y3F/x6U3qLelrsYoQtxfVD/X7Tmh4nxSPO5iMorpfIwCHe+aIrkjFL/VJWRDvzZP8nmkjv fgC4v4xpypP3/70b6R/Pii7WMujV8WGTIpmoTrbE9XvBnkcEwQdB3o0Iu8VZouSWkgm2P5J/9cl LX5cV3J9ueEAxVw== X-Developer-Key: i=peter.griffin@linaro.org; a=openpgp; fpr=0EFC8E6F5578750D56B549FCCEE8B8D6023472BA Ensure clocks are enabled before configuring unipro. Additionally move the pre_link() hook before the exynos_ufs_phy_init() calls. This means the register write sequence more closely resembles the ordering of the downstream driver. Signed-off-by: Peter Griffin --- drivers/ufs/host/ufs-exynos.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/ufs/host/ufs-exynos.c b/drivers/ufs/host/ufs-exynos.c index d7539cda97da5023ec8a2852ff3f5191642ffd37..0c8c2e41e851cdbefc80a66d87273b7e8fcf9d4d 100644 --- a/drivers/ufs/host/ufs-exynos.c +++ b/drivers/ufs/host/ufs-exynos.c @@ -1049,9 +1049,14 @@ static int exynos_ufs_pre_link(struct ufs_hba *hba) exynos_ufs_config_intr(ufs, DFES_DEF_L4_ERRS, UNIPRO_L4); exynos_ufs_set_unipro_pclk_div(ufs); + exynos_ufs_setup_clocks(hba, true, PRE_CHANGE); + /* unipro */ exynos_ufs_config_unipro(ufs); + if (ufs->drv_data->pre_link) + ufs->drv_data->pre_link(ufs); + /* m-phy */ exynos_ufs_phy_init(ufs); if (!(ufs->opts & EXYNOS_UFS_OPT_SKIP_CONFIG_PHY_ATTR)) { @@ -1059,11 +1064,6 @@ static int exynos_ufs_pre_link(struct ufs_hba *hba) exynos_ufs_config_phy_cap_attr(ufs); } - exynos_ufs_setup_clocks(hba, true, PRE_CHANGE); - - if (ufs->drv_data->pre_link) - ufs->drv_data->pre_link(ufs); - return 0; } From patchwork Wed Mar 19 15:30:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Griffin X-Patchwork-Id: 14022790 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (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 563CE1D5CD7 for ; Wed, 19 Mar 2025 15:30:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742398235; cv=none; b=hAd1zz81Ypn0JHTMepmEggf3lbqHF6l5fMcJaO+i5XOdlRoZHIlTF3Vt8eGAwivYAWd6G4jiXKsDGtdpEO4FR/Gu3AZBlwp4KSVxp5j5zHUpk5S3DeI8fpPndmOzSTs1cnyoJ4dLgk1Hg4hZ+YtGkQMrp04cV1pE/t+PBqNMYw4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742398235; c=relaxed/simple; bh=kk2fMHoWjrLcXHxUi5sF6uFu10/CFkKdnFWw4ZC84VE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=aRqYFbcDm46rAJ8q0fM7IgYNL/SV1P6PtKf3caMQZ1urfK0h6Sk1AqRWwfel9X+/hCMNd26mypX5Xlz6Ov63WIcXyeBw0wT7PvbQqfjQzMMtBsC9wLNymsTSr8XKLu5bu5i2qjeEgNJNf2rlNl6eLGHf4ZLMYBP3/NijnZQcwFE= 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=xGrx0gRJ; arc=none smtp.client-ip=209.85.128.50 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="xGrx0gRJ" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-4394a0c65fcso42679415e9.1 for ; Wed, 19 Mar 2025 08:30:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1742398231; x=1743003031; 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=CbRxaKlUuHAcCVOLOqHWcjXZo8Uzm/9NfQH6A8RUPPo=; b=xGrx0gRJusIhma5VwQDItBNyzSTMtmptBA8xPYrb28W7TR2ZYo0mbPYs12AepDsAhp ISLezKhUmrO5uGm83hdb0B0s8j2Gl+xj39kEz2dtdvxw3hNk57NEX6odtEZOFB8nWCWz PQgOQGetJYjMe1wD1uHbTCVe766Mo9KHxYDxLBw0rKAFMhJhX8ALPTtGBVzMQ2d9lnEU RB9lktxZiCnwWAdmBUkpB23mU0TY7s+Lof3onNcqD62XaEEd39biXjgQ1JcuVVw3VU08 B1GLvhNKmaf8BUJ9OmH1ArxAe42Y3FbrbPWIdFwTEI/RFhbaExt9qioGNY/R/d4zQ2Py ppDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742398231; x=1743003031; 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=CbRxaKlUuHAcCVOLOqHWcjXZo8Uzm/9NfQH6A8RUPPo=; b=oyxwbOA7BQ8iJDQfmOKwuCEaMPhz7Ul8tmieUAEccUm7z8LlKoK1rqGrMtIxMobG0m 7AKljEzoGn1FqQds0RNVC/9CGC5ELbmtbVwlCpfAjZT+3Aj5tw4ktE1t+/PDZOH/SXRE kZKs7oHbRPOLQEjPnDVt1ED6h8z5DG8oJoJdJxaSCVn3iR7/tDquu44N0x+dk3XWiS8E 01BDZurZbhW+17CbBV8Oc741RLgMaA5USMsivtF2VP3830xrdeY+ESYlWJdODtqagrbr GVIa1lC4dv607DIfmHdMiK6m80HTshfcEkt8axJ9NwAv5mRXW7XugXYTtX/GAt9Vzljm LtjA== X-Gm-Message-State: AOJu0YySBzqQUi/kYadmqiz+I2SxCC1Wc1tuZC7SAOLBSAkQwo16LSS/ xKx5sYHuT74i7aF8nFpGZIT6hdFgAk6Rpu2pEffzXdwKC3TfwKaz0m+zBv0nusQ= X-Gm-Gg: ASbGncuZhAxGXXSlGsa1Fb2HoBPCtihOvc7eyHbl/SjNArPfTYu0QIAXoVqu/+uuCp3 4bIyIx/vWxKOX0eeUSFEJXvobs8u1qBXIVFyUmAzA0bSb9wlPl5eoWkzY3qIV1G/ypWAIH/InQi r1+pYj6A5CjjRCAy80vVZBn9GMpbPeH3T1dP/QQ4OQf9+17O+tBryV5XFK5luVTHf7B/cfGS86j galdEX6kY9cDWJx+ejprZRW2+Gvi3n35Z9Q5Yz68+xEZTLRpCdSbm/CLJfdR2yk+9fQumUuc55w /vpgzC9EBRcwJ8o6lN3MQeBY0wZMWuuJ7Zji3g5PrzTaMereKXgVoRtFcBLQ/iTRUswF1g8eNeb O X-Google-Smtp-Source: AGHT+IELKtB9DSmyHJ5USLUFwjbcpHPlTWl70nzCTJQEQMbPy4AR/0qWpG/lQtpCuf9vNJ/yfeJDGw== X-Received: by 2002:a05:600c:1d18:b0:43c:ec28:d31b with SMTP id 5b1f17b1804b1-43d4875087cmr10638485e9.10.1742398231440; Wed, 19 Mar 2025 08:30:31 -0700 (PDT) Received: from gpeter-l.roam.corp.google.com ([212.105.145.136]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43d43fdaca8sm22590635e9.28.2025.03.19.08.30.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Mar 2025 08:30:30 -0700 (PDT) From: Peter Griffin Date: Wed, 19 Mar 2025 15:30:19 +0000 Subject: [PATCH v2 2/7] scsi: ufs: exynos: move ufs shareability value to drvdata Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250319-exynos-ufs-stability-fixes-v2-2-96722cc2ba1b@linaro.org> References: <20250319-exynos-ufs-stability-fixes-v2-0-96722cc2ba1b@linaro.org> In-Reply-To: <20250319-exynos-ufs-stability-fixes-v2-0-96722cc2ba1b@linaro.org> To: Alim Akhtar , "James E.J. Bottomley" , "Martin K. Petersen" , Krzysztof Kozlowski , Chanho Park Cc: linux-scsi@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Krzysztof Kozlowski , Eric Biggers , Bart Van Assche , willmcvicker@google.com, kernel-team@android.com, tudor.ambarus@linaro.org, andre.draszik@linaro.org, Peter Griffin , stable@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3658; i=peter.griffin@linaro.org; h=from:subject:message-id; bh=kk2fMHoWjrLcXHxUi5sF6uFu10/CFkKdnFWw4ZC84VE=; b=kA0DAAoBzui41gI0croByyZiAGfa4xDIJTsN0uisLZOrLYYCRsUsZ9bj4xzs6meMp1naqn+9m IkCMwQAAQoAHRYhBA78jm9VeHUNVrVJ/M7ouNYCNHK6BQJn2uMQAAoJEM7ouNYCNHK626MP/RX1 hguCvwUaqq1KsdNef95QH4hzFhmOnCDMHgq6vkV/3KzUCesSc5/uIcRUjzonwsuY/X8Z6SuoDWl fRguDV0JgQjP9AQWyoPuorF6XLuZBGlFe1uoueH8WgK8A4nE445OeRNb9g5Qxs6vChRvbPZryVD x7Z3L5Kgdv+25WRmpp2NxMcUl26IywhKBGw0a69w43ERY315QLo539L0eUhdO2LrJl7Y52DShDl O/CgBENeYlvos96Z5QM6pqVw5h4aM2FQAHnK1B3ItnXZQNxP93ACgYNJX6Uub5Dm1ECCZuRyDig idFAShyOwK/LsU70tQQR97PRYlkGIqEMQiM0BGS/TtJ0+FZbKcEAuMdo9QRwVQEKizkIKQu1PSH hugssFgNx5yQDMOK2bj1JVCvYe/FuIAW3RdthgoO+15dBxjY9SXt9Dy+uT1opsf6E6l+SG1Qys+ k/JeytF/wU98FfsW3cqStRGEyShGp82LwY+4yPog6OVxfU+0T0E85e59Jqpo1n/sytK6XVbWE8t 2akSDrZTd7mNmrAgwjOQ1pDs3UVOSHayKeMYSYzNjdJCv64uWdalQfozeCwIHKAnepCiHK21+4i XbNhRMDt6YcpeoSfc/RYNE7XcRSqpA1rD+ib8NY8qYObuzk4sGVH1+K8HdvxDsADpHyGiJsJZ5/ KC1Ax X-Developer-Key: i=peter.griffin@linaro.org; a=openpgp; fpr=0EFC8E6F5578750D56B549FCCEE8B8D6023472BA gs101 IO coherency shareability bits differ from exynosauto SoC. To support both SoCs move this info the SoC drvdata. Currently both the value and mask are the same for both gs101 and exynosauto, thus we use the same value. Signed-off-by: Peter Griffin Fixes: d11e0a318df8 ("scsi: ufs: exynos: Add support for Tensor gs101 SoC") Cc: stable@vger.kernel.org --- drivers/ufs/host/ufs-exynos.c | 20 ++++++++++++++------ drivers/ufs/host/ufs-exynos.h | 2 ++ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/drivers/ufs/host/ufs-exynos.c b/drivers/ufs/host/ufs-exynos.c index 0c8c2e41e851cdbefc80a66d87273b7e8fcf9d4d..f393d42a659f821225e67e3e5d323478456ca3af 100644 --- a/drivers/ufs/host/ufs-exynos.c +++ b/drivers/ufs/host/ufs-exynos.c @@ -92,11 +92,16 @@ UIC_TRANSPORT_NO_CONNECTION_RX |\ UIC_TRANSPORT_BAD_TC) -/* FSYS UFS Shareability */ -#define UFS_WR_SHARABLE BIT(2) -#define UFS_RD_SHARABLE BIT(1) -#define UFS_SHARABLE (UFS_WR_SHARABLE | UFS_RD_SHARABLE) -#define UFS_SHAREABILITY_OFFSET 0x710 +/* UFS Shareability */ +#define UFS_EXYNOSAUTO_WR_SHARABLE BIT(2) +#define UFS_EXYNOSAUTO_RD_SHARABLE BIT(1) +#define UFS_EXYNOSAUTO_SHARABLE (UFS_EXYNOSAUTO_WR_SHARABLE | \ + UFS_EXYNOSAUTO_RD_SHARABLE) +#define UFS_GS101_WR_SHARABLE BIT(1) +#define UFS_GS101_RD_SHARABLE BIT(0) +#define UFS_GS101_SHARABLE (UFS_GS101_WR_SHARABLE | \ + UFS_GS101_RD_SHARABLE) +#define UFS_SHAREABILITY_OFFSET 0x710 /* Multi-host registers */ #define MHCTRL 0xC4 @@ -210,7 +215,7 @@ static int exynos_ufs_shareability(struct exynos_ufs *ufs) if (ufs->sysreg) { return regmap_update_bits(ufs->sysreg, ufs->shareability_reg_offset, - UFS_SHARABLE, UFS_SHARABLE); + ufs->iocc_mask, ufs->iocc_mask); } return 0; @@ -1174,6 +1179,7 @@ static int exynos_ufs_parse_dt(struct device *dev, struct exynos_ufs *ufs) } } + ufs->iocc_mask = ufs->drv_data->iocc_mask; ufs->pclk_avail_min = PCLK_AVAIL_MIN; ufs->pclk_avail_max = PCLK_AVAIL_MAX; @@ -2035,6 +2041,7 @@ static const struct exynos_ufs_drv_data exynosauto_ufs_drvs = { .opts = EXYNOS_UFS_OPT_BROKEN_AUTO_CLK_CTRL | EXYNOS_UFS_OPT_SKIP_CONFIG_PHY_ATTR | EXYNOS_UFS_OPT_BROKEN_RX_SEL_IDX, + .iocc_mask = UFS_EXYNOSAUTO_SHARABLE, .drv_init = exynosauto_ufs_drv_init, .post_hce_enable = exynosauto_ufs_post_hce_enable, .pre_link = exynosauto_ufs_pre_link, @@ -2136,6 +2143,7 @@ static const struct exynos_ufs_drv_data gs101_ufs_drvs = { .opts = EXYNOS_UFS_OPT_SKIP_CONFIG_PHY_ATTR | EXYNOS_UFS_OPT_UFSPR_SECURE | EXYNOS_UFS_OPT_TIMER_TICK_SELECT, + .iocc_mask = UFS_GS101_SHARABLE, .drv_init = gs101_ufs_drv_init, .pre_link = gs101_ufs_pre_link, .post_link = gs101_ufs_post_link, diff --git a/drivers/ufs/host/ufs-exynos.h b/drivers/ufs/host/ufs-exynos.h index aac5172761899a5dd8ad98f9ee34b1671dd27880..17696b3768debd641188b5089585b6d303de7451 100644 --- a/drivers/ufs/host/ufs-exynos.h +++ b/drivers/ufs/host/ufs-exynos.h @@ -181,6 +181,7 @@ struct exynos_ufs_drv_data { struct exynos_ufs_uic_attr *uic_attr; unsigned int quirks; unsigned int opts; + u32 iocc_mask; /* SoC's specific operations */ int (*drv_init)(struct exynos_ufs *ufs); int (*pre_link)(struct exynos_ufs *ufs); @@ -231,6 +232,7 @@ struct exynos_ufs { const struct exynos_ufs_drv_data *drv_data; struct regmap *sysreg; u32 shareability_reg_offset; + u32 iocc_mask; u32 opts; #define EXYNOS_UFS_OPT_HAS_APB_CLK_CTRL BIT(0) From patchwork Wed Mar 19 15:30:20 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Griffin X-Patchwork-Id: 14022791 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 E71571D8DF6 for ; Wed, 19 Mar 2025 15:30:34 +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=1742398237; cv=none; b=mMOqDJeG32Rw2mMbomfxrvgJtPpjrqOAU2dDK+q/KxhR29M0Ri0V+1PLj5WoBdKUiR5ULeYc5FaiqKhTyHCNoOmz+aQj2o0HiZp6mWX1s1E1t7UyMcsyf759eO6Kuix0htwvCq7TSyXahfnbKh8NxpP32eho702MiOIDcEy5bzI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742398237; c=relaxed/simple; bh=Jb70gmFrO795pq6l4lVz8akO7b7EaG1IPq1SXiJvoDo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NeLzoML7haROykzP6paCdXYTgZr9tFn/hnCiWJYjEgawf7qzmeJuRnwCL+UnC5PZOzSmBlxKJ1gsRRJkQJnVVt3uMwA5kBCwSbFAGLjJX2ZmPJoXrPV3HmxtL3Z/edVHq/w+GISddieVSYbOoVaf2fsM1HsdsYvq6pS0PaPoTD4= 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=yGa41IL3; 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="yGa41IL3" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-43d2d952eb1so31569615e9.1 for ; Wed, 19 Mar 2025 08:30:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1742398233; x=1743003033; 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=xvO2MTCEp0zB1O4o3Tqb0ypgsyFb3UygQBlr47/GWsw=; b=yGa41IL3dgwVabl7wjk5518EIUb3wtjo/7fGb3XYBGidBM30QdEC0t/DCtPqDN3CUs e1IocQbb4RR2GgOrAioIQzukrREpCQwnU7NlJRmMJhxA+kNaPnH5kD5rN4LLhN+bcr5W 5soKtWBj0v6y0YYJjQiVhubTC6AmeN8sPLPeBgCyqIAv4GXPT62A9ffhrkiqSqCjRqAs vj56JZblloOHmGb2QM/h1XMSh4CBEE3bqLC29aSep3ymVkfV0HI27hPh2Ij9m4gq9p3L f7DwnCjN7ntwI69FbUgayBATDfWcM4K+uUOoE25JMfvxCdaJ9BV2BOCFTuzEOTvpJagM zJVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742398233; x=1743003033; 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=xvO2MTCEp0zB1O4o3Tqb0ypgsyFb3UygQBlr47/GWsw=; b=WWLytgXwhh5AND8VhPfn9XY8pAxx2xffKYJ8P00MqzsctwpffmHtLbdKDFmmbMUGvN DIw1GApTHBI+fD85aTrX77Sf6+k+QvHhEUhqHkIL8JRPFZHht2Sbnv/d9lv5NK6jabpj +a275OxWh5aZ3HbM0taGglGev+uYZUmV9O6keCszw43uWyM/y7ULtuYguF+eEXiJfy4J bai81OVAmWj9xmzEdrCHrbAJCWLHC+qL4YoNiDueRrW5lmxnGAxkvS3EVcdQjrbZpuAq 7i8+uVrTwYu/pFD9im4nGujrIRQTt7UJLuu1Rcuv/jW3pQKA3Cvur5pPYAHagKctEdun 1PKg== X-Gm-Message-State: AOJu0YxRiw2Qxto/ioO1bO4FpbmBKAyIM67PDgFexuTjveT6ABgK893t 5sKIfIs7T+UuPZdW6F2AwSO1/nqmMwE88dlhYm4/s5CtJEJ41VM8y16ri1fjVnE= X-Gm-Gg: ASbGncuLRo4AlRGBMsqTcLSv3W9aK2p2SE5GaC8w0azqKV+GQUQTuO+RHd3G4d6f521 CrAPThK/yWQV3K5x6ceLI3N08YHPawhW/4vXpcrCrG68sHXNFneUSmULdL6l949Py7o9KZGx13V wp+dOtJr8rzFcQ0lCsSDcndCBeAqnTYqAS2qTIlnwqiwtC73C8Yoq4Zgr+inqsndFFtke9+3/u4 bUeYWH9j9IIZeIxtT2zu5TMj1MDbgvIFbhEIwzym24Zv0fpMiBfA/1IGMb+tOlB0SNebVcbsFUH oUXATZv/LBEhNXUcBaCwgqIl0YtGv5ftZuw9XuaJlN/SuFPFBJoJeQIPaw1TUS5Swbf/vcDyXHn l X-Google-Smtp-Source: AGHT+IEck0zvlF4mA6c/4a1WmAWWk69t4E90tBTeEQDggA6Dvagy19sFXvzCIF2qVQD5IG+HaMrWDA== X-Received: by 2002:a05:600c:4f86:b0:43d:42b:e186 with SMTP id 5b1f17b1804b1-43d4378b49bmr26833505e9.8.1742398233118; Wed, 19 Mar 2025 08:30:33 -0700 (PDT) Received: from gpeter-l.roam.corp.google.com ([212.105.145.136]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43d43fdaca8sm22590635e9.28.2025.03.19.08.30.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Mar 2025 08:30:32 -0700 (PDT) From: Peter Griffin Date: Wed, 19 Mar 2025 15:30:20 +0000 Subject: [PATCH v2 3/7] scsi: ufs: exynos: disable iocc if dma-coherent property isn't set Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250319-exynos-ufs-stability-fixes-v2-3-96722cc2ba1b@linaro.org> References: <20250319-exynos-ufs-stability-fixes-v2-0-96722cc2ba1b@linaro.org> In-Reply-To: <20250319-exynos-ufs-stability-fixes-v2-0-96722cc2ba1b@linaro.org> To: Alim Akhtar , "James E.J. Bottomley" , "Martin K. Petersen" , Krzysztof Kozlowski , Chanho Park Cc: linux-scsi@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Krzysztof Kozlowski , Eric Biggers , Bart Van Assche , willmcvicker@google.com, kernel-team@android.com, tudor.ambarus@linaro.org, andre.draszik@linaro.org, Peter Griffin , stable@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2684; i=peter.griffin@linaro.org; h=from:subject:message-id; bh=Jb70gmFrO795pq6l4lVz8akO7b7EaG1IPq1SXiJvoDo=; b=owEBbQKS/ZANAwAKAc7ouNYCNHK6AcsmYgBn2uMQZjsaOtKjGo7lobraBsTsDeP+7mpJ30581 SJ5trpIFZCJAjMEAAEKAB0WIQQO/I5vVXh1DVa1SfzO6LjWAjRyugUCZ9rjEAAKCRDO6LjWAjRy ukYxEACIl1Ea5bUkcLZGzc6ZA0OO/h7+Se39yd6wIuAMUSpmswvUV3Qb0bAsYwxo3+GplmGD4NC GE0K+EJwXJuPeUC/bM5ws5vvl3Ju9VuaX1q4tdZQsTbxv+b6Zkh+Xecklhh0JbEe5a+M9cB0ck1 kcSm4RaJv/yfB/lfK4pKQhEBXXnORI/uRSVOylkEJt5gQydTgTACqAfeAdtvjnkRortPSkWWouh 16SPfnBNlmtgTfvG0oqjMupL1ahKe7xKGiCZiV1X3XMIiQpHO3/wAphY6NQXltTyPWK327QWomm /nlVikpDZgWmlV3R3bqfvMZYe4XLX1nYDy2gwi3Nt6mQUCLundOtLwLz6l1M+1T++1nZsaD7fD+ 5Vw7NKpj1PHyr5Yo4XT9B33Ee/qzk41FZYpKyAecvFYKOfL3/yXTk90uWYYSUJsL3E75OVNuhhf hneoGmsPvUdFJj5PULxpS41lQJoZX6Iy6vCHrD0dzYZ1LvJj/6MWlbpT9FMl4Gd1QdM6D+L/+VE xZgKHQ0B6p0p82l+KF4ix/ccLMRt9zCxMgSHLekM23BMkxVjNl6QBKV1J9+iZoZM8JyucNtpKNp wvMMpaHQI2jWkUPHCVJKfszB/96IMvpxk2DJk5m19jR8BRYl0hdfT4NtIC2kUY2/R1BTJmispT3 F7l81PGxEltoqgw== X-Developer-Key: i=peter.griffin@linaro.org; a=openpgp; fpr=0EFC8E6F5578750D56B549FCCEE8B8D6023472BA If dma-coherent property isn't set then descriptors are non-cacheable and the iocc shareability bits should be disabled. Without this UFS can end up in an incompatible configuration and suffer from random cache related stability issues. Suggested-by: Bart Van Assche Fixes: cc52e15397cc ("scsi: ufs: ufs-exynos: Support ExynosAuto v9 UFS") Signed-off-by: Peter Griffin Cc: Chanho Park Cc: stable@vger.kernel.org --- drivers/ufs/host/ufs-exynos.c | 17 +++++++++++++---- drivers/ufs/host/ufs-exynos.h | 3 ++- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/drivers/ufs/host/ufs-exynos.c b/drivers/ufs/host/ufs-exynos.c index f393d42a659f821225e67e3e5d323478456ca3af..61b03e493cc1ddba17179a9f22e5b59ece02458b 100644 --- a/drivers/ufs/host/ufs-exynos.c +++ b/drivers/ufs/host/ufs-exynos.c @@ -214,8 +214,8 @@ static int exynos_ufs_shareability(struct exynos_ufs *ufs) /* IO Coherency setting */ if (ufs->sysreg) { return regmap_update_bits(ufs->sysreg, - ufs->shareability_reg_offset, - ufs->iocc_mask, ufs->iocc_mask); + ufs->iocc_offset, + ufs->iocc_mask, ufs->iocc_val); } return 0; @@ -1173,13 +1173,22 @@ static int exynos_ufs_parse_dt(struct device *dev, struct exynos_ufs *ufs) ufs->sysreg = NULL; else { if (of_property_read_u32_index(np, "samsung,sysreg", 1, - &ufs->shareability_reg_offset)) { + &ufs->iocc_offset)) { dev_warn(dev, "can't get an offset from sysreg. Set to default value\n"); - ufs->shareability_reg_offset = UFS_SHAREABILITY_OFFSET; + ufs->iocc_offset = UFS_SHAREABILITY_OFFSET; } } ufs->iocc_mask = ufs->drv_data->iocc_mask; + /* + * no 'dma-coherent' property means the descriptors are + * non-cacheable so iocc shareability should be disabled. + */ + if (of_dma_is_coherent(dev->of_node)) + ufs->iocc_val = ufs->iocc_mask; + else + ufs->iocc_val = 0; + ufs->pclk_avail_min = PCLK_AVAIL_MIN; ufs->pclk_avail_max = PCLK_AVAIL_MAX; diff --git a/drivers/ufs/host/ufs-exynos.h b/drivers/ufs/host/ufs-exynos.h index 17696b3768debd641188b5089585b6d303de7451..a345809af79dc528ad518d3572fe8be034341ee0 100644 --- a/drivers/ufs/host/ufs-exynos.h +++ b/drivers/ufs/host/ufs-exynos.h @@ -231,8 +231,9 @@ struct exynos_ufs { ktime_t entry_hibern8_t; const struct exynos_ufs_drv_data *drv_data; struct regmap *sysreg; - u32 shareability_reg_offset; + u32 iocc_offset; u32 iocc_mask; + u32 iocc_val; u32 opts; #define EXYNOS_UFS_OPT_HAS_APB_CLK_CTRL BIT(0) From patchwork Wed Mar 19 15:30:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Griffin X-Patchwork-Id: 14022792 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (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 574A81CAA7D for ; Wed, 19 Mar 2025 15:30:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742398238; cv=none; b=b5aobLMerez6+xv8HfNW/Yxqawlyq0OM0T8FXR15kggaasHjaq2IrU+YM3VTD/xaxN/IEu9jUD+CfRjRResvzqG4k/xytnY7eVy2RiUkmURNIbmo9Lomu1CoyKBEWI2Ez+APHtbCHyus9X6Mmow9++g+/qgOryyUJDL7nHzvYe0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742398238; c=relaxed/simple; bh=3SI4bC7ybL3N2FRvbuwPacvlxHEWeD8IolpWQSN1KPw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tkke2+f6L4EnlQhW+9/FW0p4oKIw2b8CRwH3YoPLqkCuC4BmESnmfTZXKBO11olekyc7lPDfWFiq/Et1e3EgTIIPA/h1ZeJmSJYhFvZGwS2ETIEOl29LRnpDqU2EJyR8b7hdOzmAQmNT4W3bdJ7DhxFQ+dJuIx0aOVKA9kuUGB4= 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=Lwz2QgCP; arc=none smtp.client-ip=209.85.128.45 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="Lwz2QgCP" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-4394345e4d5so33363445e9.0 for ; Wed, 19 Mar 2025 08:30:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1742398235; x=1743003035; 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=MFAUALr8nAtye3+ZWjuqCa8ix3cqHAZ7WDjEfM5Mp+M=; b=Lwz2QgCP1fjGoso0X3obFi84svUz3wxpvDYJClyOKcINmg5oCz+CeXEIkCe+NMhhGQ 2/qSltYMBzqhhpUltVXwVq/ibTUe/rzR0YmCpTxPez6H8ZEXLeFPDWfGDqAKJM21keSO +iyy6283eg8hhB6y7acMUFnR7cQ57voY0RFiQNTmKX8gvPYXhILT9augvTauZ1A1PBBj S2orWYkMrbkplGpcH3nyLy6FhrBfEYRAmI8bEjv47H584asEIaPciO/K+NZJPLc8B2dW C+akQoz1IkUjMJWCdKPeSRdl9jmxrC1yGE7y4tgJLIgeD8OAuI3/7JFDJ4PSCwNDh4pM N1RA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742398235; x=1743003035; 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=MFAUALr8nAtye3+ZWjuqCa8ix3cqHAZ7WDjEfM5Mp+M=; b=X5OVR0A3puyHFFEhVAuGUkbJMFuFichvfXjhaud+SyDDylkMH9A8zCH4C6kr3f1b1g GrC/vZqER0LD+X9QO4d8UjVBk+Ze6YWTHqwudN5GClhVkfy65xA32i4ECcoD5bpZLjhK Fk+5mJlTbv4/hfwhqU5WCC/cWSAuY9VxXFKbLMeig4AkylFk+q8SBNs0mq9PhwKrxMTE 3QPZEj3cW58/dB0K+eAycHY0TxnUMtYcIQzxtUkfQbBxi6u3Cz19LaxKxGCxbg0W9B4g LsfJXSbPXTXAX0JRzfxojWPSo/AhGYHG/c5tkKw8tv6QPiajvowTeHycBqZowL95MI3J vduQ== X-Gm-Message-State: AOJu0Ywo4g7dTnIgFRibZmHSKmEXu/3ep/nvwzU7y8C/kTE42539N0q8 TROFqKqQ3zOIeDJv/YGoD26V/r8kynyPatWzSaNPxyzgErxkRuFnG3+dC5KNk+Q= X-Gm-Gg: ASbGnct3+z9ZUdU/+v1LvTK3t85x29dYYXkmrwytDCJu2f+4i8xHgEojuCYB/I5vW6v sE6G/VMWkCqt+8+OXz/Z9xwDwbAyDziUmcb4mF5b5+RghUxkJho3AJFEA4tcpNdGoEeNhytHI6X X+K3s6ZynbStAVfQWbZgzWn1fINU1aqXRIM+Y1b/hlUWCarP3lkkTLggp1BDsEkgFSO9B8jbyOl 7b7lodlQSad6cGiJ2H1PSJUjStiVIFA2Y0yf9Sh1PgBST8cYVku9gndK8m2dMOF4B12jFdMP/ZZ 6gdH5p/4M4QqfxsyiohxWQIhnGG4FHHMNxhziQa/rcShe2j+FSKt3A2A6dKbntkPHluXPAjV316 FPOSHOOm/0HY= X-Google-Smtp-Source: AGHT+IEHXtC0EIKTh5C5yDLtKnopzR+kKj3o5MrwB8zEIjbuESCbAMxGj1QGIrHhGz+ceqR8jXdneA== X-Received: by 2002:a05:600c:3509:b0:43d:79:ae1b with SMTP id 5b1f17b1804b1-43d437a9541mr31446495e9.14.1742398234649; Wed, 19 Mar 2025 08:30:34 -0700 (PDT) Received: from gpeter-l.roam.corp.google.com ([212.105.145.136]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43d43fdaca8sm22590635e9.28.2025.03.19.08.30.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Mar 2025 08:30:34 -0700 (PDT) From: Peter Griffin Date: Wed, 19 Mar 2025 15:30:21 +0000 Subject: [PATCH v2 4/7] scsi: ufs: exynos: ensure consistent phy reference counts Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250319-exynos-ufs-stability-fixes-v2-4-96722cc2ba1b@linaro.org> References: <20250319-exynos-ufs-stability-fixes-v2-0-96722cc2ba1b@linaro.org> In-Reply-To: <20250319-exynos-ufs-stability-fixes-v2-0-96722cc2ba1b@linaro.org> To: Alim Akhtar , "James E.J. Bottomley" , "Martin K. Petersen" , Krzysztof Kozlowski , Chanho Park Cc: linux-scsi@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Krzysztof Kozlowski , Eric Biggers , Bart Van Assche , willmcvicker@google.com, kernel-team@android.com, tudor.ambarus@linaro.org, andre.draszik@linaro.org, Peter Griffin , stable@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1228; i=peter.griffin@linaro.org; h=from:subject:message-id; bh=3SI4bC7ybL3N2FRvbuwPacvlxHEWeD8IolpWQSN1KPw=; b=owEBbQKS/ZANAwAKAc7ouNYCNHK6AcsmYgBn2uMR7Gt6GMiUHhQ9tNeB1ryvfLXf0f6hKBg7Z AIUaxYvoPqJAjMEAAEKAB0WIQQO/I5vVXh1DVa1SfzO6LjWAjRyugUCZ9rjEQAKCRDO6LjWAjRy uhgZD/44yhmeYZZzFKVFFjq28rha6NHqeREb1/qoxysPC7HrGnjsYlpYk7SLWHWWcyjtwhG/gMt O1lVZxIDu8c7fSHM8+Z80aiXDkcsmEARfOUrD7rvRCij6LS61K5swgmRoawpJUwVvovpsoSW0g5 ABdLqjCx+iqyCQMidJfzV25UAHL4ymc/kVXCFeiVTBnnTndKQIathuUUcIEm/D2p1t+jRbp1ouj psGLVwlAg4zg8pKpXLOUq9qzcfjC45NB8RsIepMMqtHXKaJISGMHXLd5hVa/TNrEeTA/cPK42UC gzzSTMDl+u11SC4wzQJW1pGjPumuXTS5esnkGul/VvG0fkXHdp3YuGBE3rnUUwFqjGqOmH5yoXs Y70vVU28KnxP2Fnhhl1lONhMkR2STrszNmC6huHjeZtsh4TFCSmXHmLJh0xpisMoQmlN/30pOcl RRN4m1DK7nUiauvbcCVaPdj5P6RmbOYJtDqUCqON9M/eQo7wP4JYkQZi5YQHNXvOx1YZ7jHq5jc mfPzh2Tq80p/hi0O56Kgz0Ehub3xxNXIikH/CGYwVORuo/Gmg8U1YYHcER1HhltRaAp1JQPrDw/ c1f/EAeGILL0PZnv5PKrNi3kkPLIv224YLEkUbnDCaWb9v3eW95YQeb7mFh8wcQGHiwEF+mqTl6 hymvqaPAm/4Doyw== X-Developer-Key: i=peter.griffin@linaro.org; a=openpgp; fpr=0EFC8E6F5578750D56B549FCCEE8B8D6023472BA ufshcd_link_startup() can call ufshcd_vops_link_startup_notify() multiple times when retrying. This causes the phy reference count to keep increasing and the phy to not properly re-initialize. If the phy has already been previously powered on, first issue a phy_power_off() and phy_exit(), before re-initializing and powering on again. Signed-off-by: Peter Griffin Fixes: 3d73b200f989 ("scsi: ufs: ufs-exynos: Change ufs phy control sequence") Cc: stable@vger.kernel.org --- drivers/ufs/host/ufs-exynos.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/ufs/host/ufs-exynos.c b/drivers/ufs/host/ufs-exynos.c index 61b03e493cc1ddba17179a9f22e5b59ece02458b..34e16e198830d086cbdb6cb0b027ca92687b2ae6 100644 --- a/drivers/ufs/host/ufs-exynos.c +++ b/drivers/ufs/host/ufs-exynos.c @@ -962,6 +962,12 @@ static int exynos_ufs_phy_init(struct exynos_ufs *ufs) } phy_set_bus_width(generic_phy, ufs->avail_ln_rx); + + if (generic_phy->power_count) { + phy_power_off(generic_phy); + phy_exit(generic_phy); + } + ret = phy_init(generic_phy); if (ret) { dev_err(hba->dev, "%s: phy init failed, ret = %d\n", From patchwork Wed Mar 19 15:30:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Griffin X-Patchwork-Id: 14022793 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.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 E39851DE884 for ; Wed, 19 Mar 2025 15:30:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742398239; cv=none; b=mSJuwhLLi4DSKmRM5dcFm14V7l+3xOT7IOQSw+ztLvHPztC9s8orZXeIY67uGDTxvXOswK9HN4whziL/nixsunDPNjLBzNXmD1yePBN/P18aG+7I6QqMBy2kczQzwzojnPBSP8CmFQ6IVa/XmUsH/+0Qp+iS1rUQ9AyfdYU3lIU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742398239; c=relaxed/simple; bh=meJ2NRXYTrgH1O0PZsicJBELBIeyADpQnFr+0uBOXCw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=E+WUwHWX+UY1GPieuUokxEfM4Dgfsj78KpjiDqfZYMF0MlEFbdLGwPtdbbMYfc3PPjsjI6/zvS10uSYd/BbFBt0U1/yZhB0p8s04az8tb3XP8/LcoYhkQxpz1taqXqymG1rZsLoYE6HGQjOAq/e+BUJRzxanF0O9Ijpgh20U66Q= 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=b9lEonAp; arc=none smtp.client-ip=209.85.128.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="b9lEonAp" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-43690d4605dso32782485e9.0 for ; Wed, 19 Mar 2025 08:30:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1742398236; x=1743003036; 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=x9eSGRpGRsI7cZDtS5Yy4CgMDaMHl5lqU7SxcNwGqzg=; b=b9lEonAp1vrqGFYKT7Z+0w/MImvPfC5wwu3Uw7msJBigEwtX9pE/D2DE2O/xxQPBUH D4DkeBh1GNtkmF4gm26GC+HNqgfDI+X8+f4DYLGVBQZJCqsbehNywG7wJApn5v+wIvIH YJHV6jUjrAZU9X88mswbpH5O6c8muVdOPWnshfngDvGqhuWXu0ZtlhBNWdXe7HZn18g2 UnG96/yxE/pPiAIfLcQJjfhcXBOIPOexPk/blIY0nKCnR4E7kx22wFQn6PzbgNVqzv9g mI2lNfz/zDarcKgeNerAn1c4WSih29FTiYe86N7AVbuOpBWefmg3cFU+IS7lPKH1b0j1 BnwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742398236; x=1743003036; 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=x9eSGRpGRsI7cZDtS5Yy4CgMDaMHl5lqU7SxcNwGqzg=; b=bo8nMwnaEVj9xMw/y9FgCAE7c9QfLDNFJzvR2bByzAY+Ws7EDvE0sIIfl9f6oFBXRo RQXLcCyy86m2Wuk8sv23Q+olqzICsOHOxI8ipSq7z8KAXq9ZNiV714PGsEuhX0dWhHcY +sIPze6hIJPLc0vjv7STfu68xsStJszz0Oxvn1ALWjm07VvmgDWtbKBWK3HHOLfFLVAP W0nHWxRUCsux/EuOffIiByrSvC6dZ+vLk3wppWub8QskQq+/+MoZZ74S56fkfSKctrpd Khg2SmSPICCWfPb3kYu7BwiTNYeRShbE2rKAKco27tkVz4KOeV+dA9YSO5skXGRfE+6L DyYw== X-Gm-Message-State: AOJu0YyQ273yxWo1M/fpgeKmNUexTO6hNRwePhbZtX9MlNG9r9rtU7Yo uxx5W9rK8XCYbAykbxKtapMh3zeVPyic/RLUwq2yj5H1d9/cT5TBQFRFKs42WyQ= X-Gm-Gg: ASbGncuSoxg3oYNXWUQW8GWzINUN0cYk1OLllw8Vv8KhXQVC7WbNLdSnnaDkJ+JYnkw rJnmftqSVD3d43oW4F/zZKah1FTG4tAkbChnNq3mO/gsWW4FzEnGED9xH8gW1jhQKhfuBsH2rVN 2RZc25YoQT1skzFM1deN3MTzJDcVF6G1hknYM95/qy/xd4tBddeyP7rQH78IBirZiicem+eUGQJ TAqX6a4GFz80YyV518ORlqEd0BSmqnYwyWr2/47vNACBMQeOzXXJTlpRQfYdllESDEYLf6WVwY9 TLLBxL5lhmyKuRtSbFgS6osGIi6mN1HTx+xExXDjRbrncwdNoPZMzxmW9VQSM/TBF7QWocicr9x VVobLcH7KUVs= X-Google-Smtp-Source: AGHT+IG9lKVl9ggOk268CWWDmgKFxbPbR+Kt9zHqmVimmqFce/v8krfj/anJNbYuVt/uhkH4oSO4OA== X-Received: by 2002:a05:600c:a00e:b0:43d:2230:303b with SMTP id 5b1f17b1804b1-43d43815fb5mr29107145e9.20.1742398235982; Wed, 19 Mar 2025 08:30:35 -0700 (PDT) Received: from gpeter-l.roam.corp.google.com ([212.105.145.136]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43d43fdaca8sm22590635e9.28.2025.03.19.08.30.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Mar 2025 08:30:35 -0700 (PDT) From: Peter Griffin Date: Wed, 19 Mar 2025 15:30:22 +0000 Subject: [PATCH v2 5/7] scsi: ufs: exynos: Enable PRDT pre-fetching with UFSHCD_CAP_CRYPTO Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250319-exynos-ufs-stability-fixes-v2-5-96722cc2ba1b@linaro.org> References: <20250319-exynos-ufs-stability-fixes-v2-0-96722cc2ba1b@linaro.org> In-Reply-To: <20250319-exynos-ufs-stability-fixes-v2-0-96722cc2ba1b@linaro.org> To: Alim Akhtar , "James E.J. Bottomley" , "Martin K. Petersen" , Krzysztof Kozlowski , Chanho Park Cc: linux-scsi@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Krzysztof Kozlowski , Eric Biggers , Bart Van Assche , willmcvicker@google.com, kernel-team@android.com, tudor.ambarus@linaro.org, andre.draszik@linaro.org, Peter Griffin X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1888; i=peter.griffin@linaro.org; h=from:subject:message-id; bh=meJ2NRXYTrgH1O0PZsicJBELBIeyADpQnFr+0uBOXCw=; b=owEBbQKS/ZANAwAKAc7ouNYCNHK6AcsmYgBn2uMRE20Q5ANasCRwuFnlZzMwCdJvDbk0vH/NI 8dr9BquauWJAjMEAAEKAB0WIQQO/I5vVXh1DVa1SfzO6LjWAjRyugUCZ9rjEQAKCRDO6LjWAjRy ui5vEACXBq0bqFMkUCLc92+siadp/QAjpVDOeVSbJHwT+Cmk7B9ZsJZTrROLNYvOfzD8gBNB5PN zzYuFEYIUSQchIQGiwl62xCh3YJ2vvxH+L2FuqiILWVx9aztYZ4vgv/xjQbJiwXMDYNfOKppURe T4hKRWySn2olNQ5K5tL+at0tIES0oYCOl1gMe3i5F6EdHDkauNsACg0x9cp49mwNTvaHXoKG1+K HdH9Y1VAmkF6xfCM+He7BlylF5t4hLDLhraMjf1avMM8+6JSZdEzvYWwbxW/htvWeS4ebKh9MsT sH6lwEDjT+XeErUt+BFGQdsxVTb0xxbuC3vEqsJtbCbH+RC6Qb28ksiN+zhSSGtldjO8Eid2dc8 4P1y5ijkVlVQF+aOw+/AjmYq+DhbQfVAORWLzGiDSz/4xUVbceDx8J2DHEHBGO/Y8PxkPpwpOwp OSaxshVmG8YagyrVTpc2ZaSC5Ryso+cgXsNzObgLUS1Oj91x+q1EpG1p2OwLXsmpxJCpPjKq/Ak xWC3tqrFD1Qx7uoWwEXlLiSduuX3aRzE6uwScIig984D0O2VDipXBrx8t/CF78Mu8vZoJ2JcqtG gDF6rMO2dbXrlY7PxeeBA7cPioGiCPg3+RZm2GgQV6pTO9rNqSHlw7KcCFccM2etD+g4CNlOBmS w63Hm9SJISK8soQ== X-Developer-Key: i=peter.griffin@linaro.org; a=openpgp; fpr=0EFC8E6F5578750D56B549FCCEE8B8D6023472BA PRDT_PREFETCH_ENABLE[31] bit should be set when desctype field of fmpsecurity0 register is type2 (double file encryption) or type3 (support for file and disk encryption). Setting this bit enables PRDT pre-fetching on both TXPRDT and RXPRDT. Signed-off-by: Peter Griffin --- Changes since v1: * Update PRDT_PREFECT_EN to PRDT_PREFETCH_EN (Bart) * Update commit description for desctype type 3 (Eric) --- drivers/ufs/host/ufs-exynos.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/ufs/host/ufs-exynos.c b/drivers/ufs/host/ufs-exynos.c index 34e16e198830d086cbdb6cb0b027ca92687b2ae6..f6980f05bd5555b351070fe33d0afda469fe498c 100644 --- a/drivers/ufs/host/ufs-exynos.c +++ b/drivers/ufs/host/ufs-exynos.c @@ -34,7 +34,7 @@ * Exynos's Vendor specific registers for UFSHCI */ #define HCI_TXPRDT_ENTRY_SIZE 0x00 -#define PRDT_PREFECT_EN BIT(31) +#define PRDT_PREFETCH_EN BIT(31) #define HCI_RXPRDT_ENTRY_SIZE 0x04 #define HCI_1US_TO_CNT_VAL 0x0C #define CNT_VAL_1US_MASK 0x3FF @@ -1098,12 +1098,17 @@ static int exynos_ufs_post_link(struct ufs_hba *hba) struct exynos_ufs *ufs = ufshcd_get_variant(hba); struct phy *generic_phy = ufs->phy; struct exynos_ufs_uic_attr *attr = ufs->drv_data->uic_attr; + u32 val = ilog2(DATA_UNIT_SIZE); exynos_ufs_establish_connt(ufs); exynos_ufs_fit_aggr_timeout(ufs); hci_writel(ufs, 0xa, HCI_DATA_REORDER); - hci_writel(ufs, ilog2(DATA_UNIT_SIZE), HCI_TXPRDT_ENTRY_SIZE); + + if (hba->caps & UFSHCD_CAP_CRYPTO) + val |= PRDT_PREFETCH_EN; + hci_writel(ufs, val, HCI_TXPRDT_ENTRY_SIZE); + hci_writel(ufs, ilog2(DATA_UNIT_SIZE), HCI_RXPRDT_ENTRY_SIZE); hci_writel(ufs, (1 << hba->nutrs) - 1, HCI_UTRL_NEXUS_TYPE); hci_writel(ufs, (1 << hba->nutmrs) - 1, HCI_UTMRL_NEXUS_TYPE); From patchwork Wed Mar 19 15:30:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Griffin X-Patchwork-Id: 14022794 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 824171CCEE2 for ; Wed, 19 Mar 2025 15:30:39 +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=1742398241; cv=none; b=oEWZPd1WpswN83jWg+OojguKLKoftVddU71kzYN8/Sd+51fES7r1UA9EoH/mHJvOrEdkqU/Xjxu5FmFH6lXBKSQ/VKvYzgI0pmL+TC8bG765h8NutlT1AUtRtTG30DiyC1BjjVQ3RD7nt7tL4EoXAWOIk2GAhI56rFF3c1PVnuQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742398241; c=relaxed/simple; bh=7s8ZG7rjsKFwjxleGe/WV0LjRuAvxIjVXT4DqwU66xo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RekKR/IHV++/dmcC6ltwFel1M/IcpcZx5pJfDttcdbcgqTccmeUYam/PECdQK5L2i69AOVh3bMSDuBuV/F0Hqi9ZeJXI6c1CyMImTllZzB4J2KQElLTtynPpiGh5tymIhwEvi1XRztkAkwjUtViZxVHs9eMYPh0cB1/uELCroYc= 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=bqGEeb7F; 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="bqGEeb7F" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-43cebe06e9eso34141925e9.3 for ; Wed, 19 Mar 2025 08:30:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1742398238; x=1743003038; 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=AjZnmCYHxYj5r8o21deMPmCGzUUBOqv2gFKI29/i6QI=; b=bqGEeb7FN5igMVZoq3oBECyI2rjLfn6F6icrO66PL+ZcuLS5yQJl/bJB+tY5XkSRKF p+U/aF/mCtLgYfXn+lQsnLX9CmItyDR6Yc9IPnOU6KSy76KHo17GFupGHTi0hSQ+TC10 eRmcsUfLmuQ+14iPSk1jSwN9H4B6CknbODCGWrMA0ViZnPcmcYWJuIYNFsKglijYkl9F jMstYTQLUlpyvkMflg0279bRTfdl9YMl6qfSZeW7V5pRdXsXaEXcmKBrvOGFJ9TahUuC VVNNMr3PukK1PEPGG02VvnwtVwjU414SkEIfVNTU+A8ndHoAZe3hGQXegcv9gAlkjypw rObg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742398238; x=1743003038; 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=AjZnmCYHxYj5r8o21deMPmCGzUUBOqv2gFKI29/i6QI=; b=GmTMTsD3gSQZA7IcSSBT/qml/iDg0DDjDFbWiS0vwSDTVOX3m6Eqx4lg6sF8dACT8n kD9QGocUyJ1UcCFJlVcL71N9KVH1G2AxPv7gY3OPjUx5nav6/bv1hAWpKp9I2iMXUgwM zRhObl4Z44/C2XTMZvif8sARcgPpWXOWk6X/uWk0FkA55khLHOfIoVSsCl5MQ2u5uwUF tKpoafkRxPWemR6dKp4OPwlKXv19oQOxTkd66AsXzHfutzr5AxrGTlw1pCnYXfuLIH1C BOtR4OLqCZijM2cEn2v+K+FlzpnHlAhAdsFMfgtiiutZQE3R9Olj68tvwjwQtWE4VjLc vvgg== X-Gm-Message-State: AOJu0YzvaiOXMtFCrVbjHfvMpwcY13Ut2PaRynccFe+ni1zhbo8Nxrzo /OfJH9pWIDYG61Yk6JMzZHRavJuMLQLsxf1KxbqLc1UgSbEKRN+moHc69JogmYs= X-Gm-Gg: ASbGncsEe12ycLa7E3MBr3WbnqCjKGjPTu1/8dBPwXLdkJ0WcqSIrrby53tbSV4cmuE YQn1cV+/7A+8cE/q+2TFTfFY6Vjw+X+Co5UDI9L26/n8jvx01gxJYxDJRJXY/SdE2ElZzv1a1US 46kW6xFTLTwzFOsEbxu8FoWFvffcuDe68A7ZAdDpDelVabmWBczHz3h2r5MFSF7Un1pmnOR7gb3 fbAdQYcnmywnTeqhF9IZ6Q0lZ2F92OfzPyAuj3HkzZFbFChWP1ynRoik4wt5kLahi3hT7TVXdxZ YD4AHfogxNHxS98Svq8LoL7nl9If2We0LUra27loeKgA3Z7sg79NIQAOXzpq7laeGX54gLRwV9H m X-Google-Smtp-Source: AGHT+IE0imvyWtevoay+Nl/n+MDQ7Wc9dHAjRMpT6TT9WUssTSaTHXR2b/vx1TkCs65IxfQ/y6FOaA== X-Received: by 2002:a05:600c:5250:b0:43c:f8fc:f69a with SMTP id 5b1f17b1804b1-43d437822abmr34547135e9.4.1742398237671; Wed, 19 Mar 2025 08:30:37 -0700 (PDT) Received: from gpeter-l.roam.corp.google.com ([212.105.145.136]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43d43fdaca8sm22590635e9.28.2025.03.19.08.30.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Mar 2025 08:30:37 -0700 (PDT) From: Peter Griffin Date: Wed, 19 Mar 2025 15:30:23 +0000 Subject: [PATCH v2 6/7] scsi: ufs: exynos: Move phy calls to .exit() callback Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250319-exynos-ufs-stability-fixes-v2-6-96722cc2ba1b@linaro.org> References: <20250319-exynos-ufs-stability-fixes-v2-0-96722cc2ba1b@linaro.org> In-Reply-To: <20250319-exynos-ufs-stability-fixes-v2-0-96722cc2ba1b@linaro.org> To: Alim Akhtar , "James E.J. Bottomley" , "Martin K. Petersen" , Krzysztof Kozlowski , Chanho Park Cc: linux-scsi@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Krzysztof Kozlowski , Eric Biggers , Bart Van Assche , willmcvicker@google.com, kernel-team@android.com, tudor.ambarus@linaro.org, andre.draszik@linaro.org, Peter Griffin X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2041; i=peter.griffin@linaro.org; h=from:subject:message-id; bh=7s8ZG7rjsKFwjxleGe/WV0LjRuAvxIjVXT4DqwU66xo=; b=owEBbQKS/ZANAwAKAc7ouNYCNHK6AcsmYgBn2uMSf5uvm/FpEyh5swIHxpa/LmHezM6/OP2QY 9MVZvxOExKJAjMEAAEKAB0WIQQO/I5vVXh1DVa1SfzO6LjWAjRyugUCZ9rjEgAKCRDO6LjWAjRy usXDD/964vJN7mBdCt96LUDow36KDCH5cAm1CeGbPUFo3LIj1nznxlwic31P+sgdl6J5xOMvwII o0eYSKMGFDWNfQdX3FfNxw+PZVH1OA0egJvAGXyexEqQOYurjEDOIc8sRRrvIwEjKWh6MnR8E+n m/QjkL4SExk/7n4wBVcXoaXRTdru6lc5aPBhD+yMLnL458WalOljyLsQbiR2/GPFARN1aOQDStE pqxmX4ZZYgXEsbOAyLbJ8NVtW4Kg+rXLu/O0xyLiya/XuDVHxwHo2GsbdfEBO8JI8k45lOPNv6w L+CLx4JGdpyDyqHLQdkgIJ98a2+jlptKgutUToX8hJ+SsUVseDZ4YRZimfoS/OCXPesRhk+5RV3 WBkh2zeaQAYssWGALYLYsloNK4aZVJLjOnw2KkT6X6Zc9BjY/hxcl91iaq0tkjMPnyCUHa6ZfpU hPtucZXsPnrYWGm0rTAWhFxV33fa5FAbwWyKBEnMtqwUzfheLVvYTSa5Cxxs3D8566pYJ8Ec/QC z4wTcwnW+EWOjF3B023GowJ5sPoTjN0Dlg7p9ogQsMsIr4hX49/QLEqyiDo10nb7sspJf+Az+Rh NuX49wWgzfYuvxpS6Z0VQmWrfWY98RRjqrtI9Ul3478tgvm5yJCJTKIEDIMxAOAw0RkeLgsobwK kXo7n/Z9gZNzzBg== X-Developer-Key: i=peter.griffin@linaro.org; a=openpgp; fpr=0EFC8E6F5578750D56B549FCCEE8B8D6023472BA ufshcd_pltfrm_remove() calls ufshcd_remove(hba) which in turn calls ufshcd_hba_exit(). By moving the phy_power_off() and phy_exit() calls to the newly created .exit callback they get called by ufshcd_variant_hba_exit() before ufshcd_hba_exit() turns off the regulators. This is also similar flow to the ufs-qcom driver. Signed-off-by: Peter Griffin --- Changes since v1: * Remove superfluous blank line (Bart) --- drivers/ufs/host/ufs-exynos.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/ufs/host/ufs-exynos.c b/drivers/ufs/host/ufs-exynos.c index f6980f05bd5555b351070fe33d0afda469fe498c..81a1f04411c0426d6fae931e75db5f4c8693daca 100644 --- a/drivers/ufs/host/ufs-exynos.c +++ b/drivers/ufs/host/ufs-exynos.c @@ -1523,6 +1523,14 @@ static int exynos_ufs_init(struct ufs_hba *hba) return ret; } +static void exynos_ufs_exit(struct ufs_hba *hba) +{ + struct exynos_ufs *ufs = ufshcd_get_variant(hba); + + phy_power_off(ufs->phy); + phy_exit(ufs->phy); +} + static int exynos_ufs_host_reset(struct ufs_hba *hba) { struct exynos_ufs *ufs = ufshcd_get_variant(hba); @@ -1978,6 +1986,7 @@ static int gs101_ufs_pre_pwr_change(struct exynos_ufs *ufs, static const struct ufs_hba_variant_ops ufs_hba_exynos_ops = { .name = "exynos_ufs", .init = exynos_ufs_init, + .exit = exynos_ufs_exit, .hce_enable_notify = exynos_ufs_hce_enable_notify, .link_startup_notify = exynos_ufs_link_startup_notify, .pwr_change_notify = exynos_ufs_pwr_change_notify, @@ -2016,13 +2025,7 @@ static int exynos_ufs_probe(struct platform_device *pdev) static void exynos_ufs_remove(struct platform_device *pdev) { - struct ufs_hba *hba = platform_get_drvdata(pdev); - struct exynos_ufs *ufs = ufshcd_get_variant(hba); - ufshcd_pltfrm_remove(pdev); - - phy_power_off(ufs->phy); - phy_exit(ufs->phy); } static struct exynos_ufs_uic_attr exynos7_uic_attr = { From patchwork Wed Mar 19 15:30:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Griffin X-Patchwork-Id: 14022795 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (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 D04D01B423B for ; Wed, 19 Mar 2025 15:30:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742398242; cv=none; b=RPU0nwLE7+GTgm+A3UzLs462I+BQOZCsihsJ5ZN1OLg4VDAye93flQlJEMTBmvIAnNkubIszAHZP4747tGBOZFUYn8rgLv+5jL/ef1eT31Q/6A73woEq50g0d9aXcU5xNplU3mZqoWdtGoyJh/BPzBao1SRS2O2SZJa4EO2VuSI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742398242; c=relaxed/simple; bh=yJnKhyDbjuMSM1Ff1EJun3ay62EPsTJc6TdUJCfxORQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=F13A6OeNETCj2xNu54ux79Pkx1Ee4znmR/9KVmJXja2bcn+c8N4/+SH5YtnMutTHBBQWB2bKUuqSxFxSzT0FhTCRwRezPfDdXHeZzRZwdmnXwGiRPzJkHFWyVYhqumQWYpMLiejGRranaLW4aqciQZiG1haWIyfUSYW9Q9jNZlI= 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=ksiAIyL9; arc=none smtp.client-ip=209.85.128.53 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="ksiAIyL9" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-43cfebc343dso34330575e9.2 for ; Wed, 19 Mar 2025 08:30:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1742398239; x=1743003039; 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=PbHlg80z6jqmhLLd1L66LTBtWxEQiwbO7Uhwer7oAeU=; b=ksiAIyL9YSVTVGHtzrvp7irdvR7lW564chAoJu9ZSVU/Kv4HtaidPmdmO5TShuUEiX AJ3TG7/zQ3Q8WZoMcwO3lU9qUGtdG/oAtp8gNg+52O33mxl164uzQAJJYfgHjkVSuBqM NWEN3twW4qZ0z9cbp7+P48h4lSxiTuNUjmox/j2my6Q7axeI1T1sFojL7StuUWNQEIvh XmyfVOGUIKtABTHB5ybBVljMx2By5nw9o99SmaVvj6HfGi72x9TEcyVGeVN7wP2dyzvL q14i7D2k9pDW4E05Fgglc0LQ4zxdzIIWESZT035174AMDlBjlyoNugBBn97qYAFqanxY z7+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742398239; x=1743003039; 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=PbHlg80z6jqmhLLd1L66LTBtWxEQiwbO7Uhwer7oAeU=; b=T2ndh2PBjqhprm8AlZFbLWtjYAwLxx9e28K8FHj5G30d9yGuxMDfy134/yEDEqbFve QBpkPwocd5fqMS8E0Quqjhyo546ug98K70EXvuPPzwtmrFP9K4HWPbiKAORQ16VIWNa7 PGEOGMt0N2NmjACmXQmiKgsOTz1GujnnU2cyVmBgUdGXrvOqiyCo4gjhqZpJYSs6e01g yQwh5BNtokGkQ2NcdwAkLtkj9y5ZGxPJGzuNI1rI9x0EqS+iHDA75xH1j1aQDf6RpXi2 OdIa8W4Je7EPNXlDD9CuyHUFJIB6dYgVet13lRm01/G4obI23qRG9OqvZNNItWMBAIIB oBpA== X-Gm-Message-State: AOJu0YzuAIWuEeZIG+yLa60kYPnm3HcRATcWdrCKL3YIbhaGz7ckug0h uKWwIH0MO0gTqQE7t23KSblUkcdeVxrADhxS35Yi6MOukmS4muIW0c5JvnGCLoo= X-Gm-Gg: ASbGncuRDL8fBCNyW+VJOqmQV7NyCBpo3qjbNOBdRxbihKQmIdDhbDbfW7/Hfgddslm B6Tofcvh5y+/eMkGkltiRk18sZhJgWZdzhke9VLrU+FOfgfFewTmzkZciNj31F3x54Ns5mzKKl7 l/+wW+ZWd/Y7dmEai3PaEVcRcwVCxAvrqnahcx1meSLm1yOzv3yKRVCuJt79frUspmNu4VuiW/X voFZ3pzjsKFqXVEB3kKUJ3l1+Pdk+cBpCpZlzGV2niwYc56VD0x1uEqnCDKaxGGMNBy2eu0CKxe PTTC8/yqnQeNN7EOohbPWzv7PwzfuC1kXKQXb3cWb8ktgxwyYHipIVEgfCaMmcIpPa+YrbX3chR Z X-Google-Smtp-Source: AGHT+IFH6HDxs5aq0bCI3BQSvyCek2NUloG5zCiL2aSkRDxgyBByvj1TpypZ0XveUFi/4iUswd0wtg== X-Received: by 2002:a05:600c:b95:b0:43c:fe15:41e1 with SMTP id 5b1f17b1804b1-43d437801e2mr30519805e9.4.1742398239241; Wed, 19 Mar 2025 08:30:39 -0700 (PDT) Received: from gpeter-l.roam.corp.google.com ([212.105.145.136]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43d43fdaca8sm22590635e9.28.2025.03.19.08.30.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Mar 2025 08:30:38 -0700 (PDT) From: Peter Griffin Date: Wed, 19 Mar 2025 15:30:24 +0000 Subject: [PATCH v2 7/7] scsi: ufs: exynos: gs101: put ufs device in reset on .suspend() Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250319-exynos-ufs-stability-fixes-v2-7-96722cc2ba1b@linaro.org> References: <20250319-exynos-ufs-stability-fixes-v2-0-96722cc2ba1b@linaro.org> In-Reply-To: <20250319-exynos-ufs-stability-fixes-v2-0-96722cc2ba1b@linaro.org> To: Alim Akhtar , "James E.J. Bottomley" , "Martin K. Petersen" , Krzysztof Kozlowski , Chanho Park Cc: linux-scsi@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Krzysztof Kozlowski , Eric Biggers , Bart Van Assche , willmcvicker@google.com, kernel-team@android.com, tudor.ambarus@linaro.org, andre.draszik@linaro.org, Peter Griffin X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2297; i=peter.griffin@linaro.org; h=from:subject:message-id; bh=yJnKhyDbjuMSM1Ff1EJun3ay62EPsTJc6TdUJCfxORQ=; b=owEBbQKS/ZANAwAKAc7ouNYCNHK6AcsmYgBn2uMSwowE0bRT4zvqbxBWw9dUeVGZZKu4Ym7xN +fcA14VK/2JAjMEAAEKAB0WIQQO/I5vVXh1DVa1SfzO6LjWAjRyugUCZ9rjEgAKCRDO6LjWAjRy unRwEACNFynmoh/Od8OsSL+v+R3VOZ5EhLQWh/zEalRrVfSznj7xGHHOO+QGYWXTh9SBvPi39Lh /ixcq4t1wpzvy+7dTB2YncN1A41ca+Uc1qRAU1d3ClP9dINkx2Z3CEViuynkL89pmfIXlg17eOa 1ZHC+8L924hsjNI9wd0bZZ6QYfE6z/ga2jKUtE84/ZCtGLA04ceOiYMVrzosqjAsQYxM01iTKEt sF7z65HxIPtt0Ap/ZOa6b6Q+QlTpOi1ViVHWnyelTmsHUrbOHDCmd/+HaiI6KPiVEUOXVpjiyu/ c3NLTuPpQWuoAK5/J1uQUF/xM4vmGK1peAkGACze4eDJYKDilAJyPEe6yPbXGrcIuDWYW16ivhO U+qf1zDabJw3EBU86Dr6p4OWJjyX1EaNULwwKRS+z6AVHyxmeUL2G5S90/7lLJwxo2iJy7qxKF4 GED2oZxQxxGUSlFsLCUZ2OJgp887kZIEde5HCP5Fpccz8qwihbrCKi2q0HXqZ12VqEtMltfXk0R e/EwXltRRYJeguCopXeJtSkUsFShyOAm6jbpggId+H7NiGvcqw5mqfG8RHbP/kIm0y2jlgr/Ip7 IAj/USYA+81iCutxZJ+fmVYvl5qZ/vSX1N19HtcFHVXjnxHImUwYLCxDr2K7ETIqw2CN8psTenQ 1pAbZohC7qCMHpw== X-Developer-Key: i=peter.griffin@linaro.org; a=openpgp; fpr=0EFC8E6F5578750D56B549FCCEE8B8D6023472BA GPIO_OUT[0] is connected to the reset pin of embedded UFS device. Before powering off the phy assert the reset signal. This is added as a gs101 specific suspend hook so as not to have any unintended consequences for other SoCs supported by this driver. Signed-off-by: Peter Griffin --- Changes since v1: * Add a gs101 specific suspend hook (Bart) * Drop asserting GPIO_OUT in .exit (Peter) --- drivers/ufs/host/ufs-exynos.c | 10 ++++++++++ drivers/ufs/host/ufs-exynos.h | 1 + 2 files changed, 11 insertions(+) diff --git a/drivers/ufs/host/ufs-exynos.c b/drivers/ufs/host/ufs-exynos.c index 81a1f04411c0426d6fae931e75db5f4c8693daca..3e545af536e53e06b66c624ed0dc6dc7de13549f 100644 --- a/drivers/ufs/host/ufs-exynos.c +++ b/drivers/ufs/host/ufs-exynos.c @@ -1701,6 +1701,12 @@ static void exynos_ufs_hibern8_notify(struct ufs_hba *hba, } } +static int gs101_ufs_suspend(struct exynos_ufs *ufs) +{ + hci_writel(ufs, 0 << 0, HCI_GPIO_OUT); + return 0; +} + static int exynos_ufs_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op, enum ufs_notify_change_status status) { @@ -1709,6 +1715,9 @@ static int exynos_ufs_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op, if (status == PRE_CHANGE) return 0; + if (ufs->drv_data->suspend) + ufs->drv_data->suspend(ufs); + if (!ufshcd_is_link_active(hba)) phy_power_off(ufs->phy); @@ -2171,6 +2180,7 @@ static const struct exynos_ufs_drv_data gs101_ufs_drvs = { .pre_link = gs101_ufs_pre_link, .post_link = gs101_ufs_post_link, .pre_pwr_change = gs101_ufs_pre_pwr_change, + .suspend = gs101_ufs_suspend, }; static const struct of_device_id exynos_ufs_of_match[] = { diff --git a/drivers/ufs/host/ufs-exynos.h b/drivers/ufs/host/ufs-exynos.h index a345809af79dc528ad518d3572fe8be034341ee0..abe7e472759e94fef353e9a97bc9b55f6a0324c1 100644 --- a/drivers/ufs/host/ufs-exynos.h +++ b/drivers/ufs/host/ufs-exynos.h @@ -192,6 +192,7 @@ struct exynos_ufs_drv_data { const struct ufs_pa_layer_attr *pwr); int (*pre_hce_enable)(struct exynos_ufs *ufs); int (*post_hce_enable)(struct exynos_ufs *ufs); + int (*suspend)(struct exynos_ufs *ufs); }; struct ufs_phy_time_cfg {