Message ID | 20221031180217.32512-7-manivannan.sadhasivam@linaro.org |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp2460560wru; Mon, 31 Oct 2022 11:04:30 -0700 (PDT) X-Google-Smtp-Source: AMsMyM69UfVgKierysfxlJ8UsWTqQJkQQxoq3NH9ey5wrZa3VEA6+6KPberNaV3p6WukO/SzGlBx X-Received: by 2002:aa7:9e1c:0:b0:56c:78fa:2a2 with SMTP id y28-20020aa79e1c000000b0056c78fa02a2mr15961838pfq.65.1667239470320; Mon, 31 Oct 2022 11:04:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1667239470; cv=none; d=google.com; s=arc-20160816; b=KeRQLzYCV/IsEg7T28Xi2lRGtapBrmwuLr/LChBAQM1qjvHKG+V4vaXY2DdXnN9DrP 4vLnnDfXla0ThlinfbLplJsjSpsWpqP0MM1UepC7xUcdMhHf4HIl0NhVA0Pwr8gOcsVa CTO0AU0/FN8CVdgJR7lNscrDqeq2eWjUVkmCPaHmA/jI00nzUg+KFfwEAMbV2UCPmtpd SiQwQw3/8dQnz5Pmd8LA+wcUoJWCzg80JpG5s6BShqz9ve6hWv/Eh2g5099xwg7Z8eLz oaKPsQCk6yAQK0ewn7rU1uE6eWUBdlrRYO4eI/bnJV+dzVt7IPVWfkm64dzinIYHb6+G HVSw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=i6bI2G8GIEEo0BDFgcfeWu7FnSciJmuXXXHS3QIkOfs=; b=b9/6A5eXWTz/BOZYU1fbNzGwcCcDsOy5+Z4vbU88nTKecdJ3gRYzvhB0K9FYTzNwU6 2Zv2rJ0jOV3dKiT+rIb2hiV7F3uZvfNyyaUIfju7+x39Ru5OvycZJsUzu/OSCvsxQrIz lSRMkWZQ0D9zSht6+xxvFxoOAZvqO5IFFt5DTC3dqIsYjFwVc/9q0/8G1uQK0tmh4jUZ o22BoB7xsPSpTQTfFmTlDeWvE5EqamNp148wHSotiW3qUgLd1JCghB2pjC8FuLQmZH8y T8DMgjyMlTiLpQGILlPGDDybBA2+9e6tebEhfo6hvyiY9VHVpXAUblbuKT9aSyiUcfpZ mjQw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=GYLJ5dP9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id lk2-20020a17090b33c200b002129a8204d2si10038371pjb.44.2022.10.31.11.04.16; Mon, 31 Oct 2022 11:04:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=GYLJ5dP9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230129AbiJaSDz (ORCPT <rfc822;kartikey406@gmail.com> + 99 others); Mon, 31 Oct 2022 14:03:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42960 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230162AbiJaSD3 (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Mon, 31 Oct 2022 14:03:29 -0400 Received: from mail-pg1-x52a.google.com (mail-pg1-x52a.google.com [IPv6:2607:f8b0:4864:20::52a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 60B1965C6 for <linux-kernel@vger.kernel.org>; Mon, 31 Oct 2022 11:03:23 -0700 (PDT) Received: by mail-pg1-x52a.google.com with SMTP id e129so11341211pgc.9 for <linux-kernel@vger.kernel.org>; Mon, 31 Oct 2022 11:03:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=i6bI2G8GIEEo0BDFgcfeWu7FnSciJmuXXXHS3QIkOfs=; b=GYLJ5dP9svMb4OtR4ddpG8ce6S4fq7m1mFNIV2Ttl46seLZqlFPwVeur7n5+ITO7Zg KgqlWPxuwvQ5CGGszgRz4BEOR8YmmcO2+e7aYai4ULMxdjndxV/F7WDcAjmii+2u03ng Ksg3Yx0yRUBnaBsk08DyNOKRxkexeJV3QuIjNJsmvBK64fideKnrc2959ouxzz4mNSy0 E1dsNDvdjTCV8U/JJFK1NtBSppUIjz8Q/zrg3Zw258BkkO2t0IWP1x3tFuYnaQ+ZBDU9 TV0YDyYvi/rH8MslglzzF+0gNh3JSFCa/h2ffTxJUDH+GkAgV+4KJ7lcmpu7K1Q9jKCu yF+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=i6bI2G8GIEEo0BDFgcfeWu7FnSciJmuXXXHS3QIkOfs=; b=oW6D5wDVBajb0rH7a5/PK44KBOgqrWeJKNP7cYtZAoAbFV33KkCvcobaJixvVPncy4 XTbdwU+LpxqWVvR/B1a4Odcsin+butKcEd/mWIIh6qc+yE8RKBvFly3SHdW7VuR0PalI TxYG9Uav4RkzqTPtH9eb86Hiov/kFZFBy4n+zsRlQHnEpJZEP3y2u4R06TLqeC5+9lZM uAznhqyg0YxvIO8IcomKAW2P4Ng786RCAOB+ljHnWHD7AvDftXji3Kpe1Y5+FSPSi1HO /BJmZxBfDIF963pdXvAmiqTWIeUdWqa4NkURihyUBxUynkIUk8VnHM3LjXNDcd4AfsUr rTZg== X-Gm-Message-State: ACrzQf2yUXR8IZBWTGqmmDqE80OhYvpHzr64PWrkcPF05gIVxldbLYom rf952rTKDT6ySb0ykVTyQxz5 X-Received: by 2002:a65:6148:0:b0:458:88cd:f46 with SMTP id o8-20020a656148000000b0045888cd0f46mr13451082pgv.303.1667239402882; Mon, 31 Oct 2022 11:03:22 -0700 (PDT) Received: from localhost.localdomain ([117.193.209.221]) by smtp.gmail.com with ESMTPSA id q14-20020a170902a3ce00b00186c6d2e7e3sm4742224plb.26.2022.10.31.11.03.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Oct 2022 11:03:19 -0700 (PDT) From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> To: martin.petersen@oracle.com, jejb@linux.ibm.com, andersson@kernel.org, vkoul@kernel.org, krzysztof.kozlowski+dt@linaro.org Cc: konrad.dybcio@somainline.org, robh+dt@kernel.org, quic_cang@quicinc.com, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-phy@lists.infradead.org, linux-scsi@vger.kernel.org, dmitry.baryshkov@linaro.org, ahalaney@redhat.com, Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Subject: [PATCH v2 06/15] dt-bindings: ufs: Add "max-device-gear" property for UFS device Date: Mon, 31 Oct 2022 23:32:08 +0530 Message-Id: <20221031180217.32512-7-manivannan.sadhasivam@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221031180217.32512-1-manivannan.sadhasivam@linaro.org> References: <20221031180217.32512-1-manivannan.sadhasivam@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1748227294649712105?= X-GMAIL-MSGID: =?utf-8?q?1748227294649712105?= |
Series |
ufs: qcom: Add HS-G4 support
|
|
Commit Message
Manivannan Sadhasivam
Oct. 31, 2022, 6:02 p.m. UTC
The maximum gear supported by the UFS device can be specified using the
"max-device-gear" property. This allows the UFS controller to configure the
TX/RX gear before starting communication with the UFS device.
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
---
Documentation/devicetree/bindings/ufs/ufs-common.yaml | 5 +++++
1 file changed, 5 insertions(+)
Comments
On Mon, Oct 31, 2022 at 11:32:08PM +0530, Manivannan Sadhasivam wrote: > The maximum gear supported by the UFS device can be specified using the > "max-device-gear" property. This allows the UFS controller to configure the > TX/RX gear before starting communication with the UFS device. > > Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> > --- > Documentation/devicetree/bindings/ufs/ufs-common.yaml | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/Documentation/devicetree/bindings/ufs/ufs-common.yaml b/Documentation/devicetree/bindings/ufs/ufs-common.yaml > index 47a4e9e1a775..5dcd14909ad5 100644 > --- a/Documentation/devicetree/bindings/ufs/ufs-common.yaml > +++ b/Documentation/devicetree/bindings/ufs/ufs-common.yaml > @@ -73,6 +73,11 @@ properties: > description: > Specifies max. load that can be drawn from VCCQ2 supply. > > + max-device-gear: Needs a type $ref > + description: > + Specifies max. gear the UFS device supports. > + enum: [1, 2, 3, 4, 5] > + > dependencies: > freq-table-hz: [ 'clocks' ] > > -- > 2.25.1 > >
On 31/10/2022 14:02, Manivannan Sadhasivam wrote: > The maximum gear supported by the UFS device can be specified using the > "max-device-gear" property. This allows the UFS controller to configure the > TX/RX gear before starting communication with the UFS device. This is confusing. The UFS PHY provides gear capability, so what is the "device" here? The attached memory? How could it report something else than phy? The last sentence also suggests that you statically encode gear to avoid runtime negotiation. Best regards, Krzysztof
On Wed, Nov 02, 2022 at 03:09:50PM -0400, Krzysztof Kozlowski wrote: > On 31/10/2022 14:02, Manivannan Sadhasivam wrote: > > The maximum gear supported by the UFS device can be specified using the > > "max-device-gear" property. This allows the UFS controller to configure the > > TX/RX gear before starting communication with the UFS device. > > This is confusing. The UFS PHY provides gear capability, so what is the > "device" here? The attached memory? How could it report something else > than phy? > This is the norm with any storage protocol, right? Both host and device (memory) can support different speeds and the OEM can choose to put any combinations (even though it might not be very efficient). For instance, PHY (G4) -> Device (G3) From the host perspective we know what the PHY can support but that's not the same with the device until probing it. And probing requires using a minimum supported gear. For sure we can use something like G2/G3 and reinit later but as I learnt, that approach was rejected by the community when submitted by Qualcomm earlier. > The last sentence also suggests that you statically encode gear to avoid > runtime negotiation. > Yes, the OEM should know what the max gear speed they want to run, so getting this info from DT makes sense. Thanks, Mani > Best regards, > Krzysztof >
On 03/11/2022 08:28, Manivannan Sadhasivam wrote: > On Wed, Nov 02, 2022 at 03:09:50PM -0400, Krzysztof Kozlowski wrote: >> On 31/10/2022 14:02, Manivannan Sadhasivam wrote: >>> The maximum gear supported by the UFS device can be specified using the >>> "max-device-gear" property. This allows the UFS controller to configure the >>> TX/RX gear before starting communication with the UFS device. >> >> This is confusing. The UFS PHY provides gear capability, so what is the >> "device" here? The attached memory? How could it report something else >> than phy? >> > > This is the norm with any storage protocol, right? Both host and device > (memory) can support different speeds and the OEM can choose to put any > combinations (even though it might not be very efficient). > > For instance, > > PHY (G4) -> Device (G3) Yes and look at MMC - no need to define "max mode" supported by eMMC. You define the modes supported by controller but the memory capabilities are being autodetected and negotiated. > > From the host perspective we know what the PHY can support but that's not the > same with the device until probing it. And probing requires using a minimum > supported gear. For sure we can use something like G2/G3 and reinit later but > as I learnt, that approach was rejected by the community when submitted > by Qualcomm earlier. It should be then referenced somewhere as it might be a reason to accept the property. > >> The last sentence also suggests that you statically encode gear to avoid >> runtime negotiation. >> > > Yes, the OEM should know what the max gear speed they want to run, so getting > this info from DT makes sense. Not really if it is auto-detectable. Just because things are static is not the sole reason to put them into DT. The reason is - they are not detectable by OS/firmware thus we must have them in DT to be able to know it. Best regards, Krzysztof
On Thu, Nov 03, 2022 at 11:23:17AM -0400, Krzysztof Kozlowski wrote: > On 03/11/2022 08:28, Manivannan Sadhasivam wrote: > > On Wed, Nov 02, 2022 at 03:09:50PM -0400, Krzysztof Kozlowski wrote: > >> On 31/10/2022 14:02, Manivannan Sadhasivam wrote: > >>> The maximum gear supported by the UFS device can be specified using the > >>> "max-device-gear" property. This allows the UFS controller to configure the > >>> TX/RX gear before starting communication with the UFS device. > >> > >> This is confusing. The UFS PHY provides gear capability, so what is the > >> "device" here? The attached memory? How could it report something else > >> than phy? > >> > > > > This is the norm with any storage protocol, right? Both host and device > > (memory) can support different speeds and the OEM can choose to put any > > combinations (even though it might not be very efficient). > > > > For instance, > > > > PHY (G4) -> Device (G3) > > Yes and look at MMC - no need to define "max mode" supported by eMMC. > You define the modes supported by controller but the memory capabilities > are being autodetected and negotiated. > > > > > From the host perspective we know what the PHY can support but that's not the > > same with the device until probing it. And probing requires using a minimum > > supported gear. For sure we can use something like G2/G3 and reinit later but > > as I learnt, that approach was rejected by the community when submitted > > by Qualcomm earlier. > > It should be then referenced somewhere as it might be a reason to accept > the property. > > > > >> The last sentence also suggests that you statically encode gear to avoid > >> runtime negotiation. > >> > > > > Yes, the OEM should know what the max gear speed they want to run, so getting > > this info from DT makes sense. > > Not really if it is auto-detectable. Just because things are static is > not the sole reason to put them into DT. The reason is - they are not > detectable by OS/firmware thus we must have them in DT to be able to > know it. > Since I'm not able to get a link to the previous discussion, I'm gonna implement the reinit support and post the next iteration. Let's see how it turns up. Thanks, Mani > > > Best regards, > Krzysztof >
diff --git a/Documentation/devicetree/bindings/ufs/ufs-common.yaml b/Documentation/devicetree/bindings/ufs/ufs-common.yaml index 47a4e9e1a775..5dcd14909ad5 100644 --- a/Documentation/devicetree/bindings/ufs/ufs-common.yaml +++ b/Documentation/devicetree/bindings/ufs/ufs-common.yaml @@ -73,6 +73,11 @@ properties: description: Specifies max. load that can be drawn from VCCQ2 supply. + max-device-gear: + description: + Specifies max. gear the UFS device supports. + enum: [1, 2, 3, 4, 5] + dependencies: freq-table-hz: [ 'clocks' ]