Re: [PATCH v10 4/6] arm64: dts: qcom: sm8450: Add OPP table support to PCIe

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Apr 22, 2024 at 10:25:06PM +0530, Krishna Chaitanya Chundru wrote:
> 
> 
> On 4/22/2024 8:14 PM, Manivannan Sadhasivam wrote:
> > On Tue, Apr 09, 2024 at 03:43:22PM +0530, Krishna chaitanya chundru wrote:
> > > PCIe needs to choose the appropriate performance state of RPMh power
> > 
> > 'PCIe host controller driver'
> > 
> > > domain and interconnect bandwidth based up on the PCIe data rate.
> > 
> > 'based on the PCIe data rate'
> > 
> > > 
> > > Add the OPP table support to specify RPMh performance states and
> > 
> > 'Hence, add...'
> > 
> > > interconnect peak bandwidth.
> > > 
> > > Different link configurations may share the same aggregate bandwidth,
> > 
> > 'It should be noted that the different...'
> > 
> > > e.g., a 2.5 GT/s x2 link and a 5.0 GT/s x1 link have the same bandwidth
> > > and share the same OPP entry.
> > > 
> > > Signed-off-by: Krishna chaitanya chundru <quic_krichai@xxxxxxxxxxx>
> > > ---
> > >   arch/arm64/boot/dts/qcom/sm8450.dtsi | 77 ++++++++++++++++++++++++++++++++++++
> > >   1 file changed, 77 insertions(+)
> > > 
> > > diff --git a/arch/arm64/boot/dts/qcom/sm8450.dtsi b/arch/arm64/boot/dts/qcom/sm8450.dtsi
> > > index 615296e13c43..9dfe16012726 100644
> > > --- a/arch/arm64/boot/dts/qcom/sm8450.dtsi
> > > +++ b/arch/arm64/boot/dts/qcom/sm8450.dtsi
> > > @@ -1855,7 +1855,35 @@ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
> > >   			pinctrl-names = "default";
> > >   			pinctrl-0 = <&pcie0_default_state>;
> > > +			operating-points-v2 = <&pcie0_opp_table>;
> > > +
> > >   			status = "disabled";
> > > +
> > > +			pcie0_opp_table: opp-table {
> > > +				compatible = "operating-points-v2";
> > > +
> > > +				/* GEN 1 x1 */
> > > +				opp-2500000 {
> > > +					opp-hz = /bits/ 64 <2500000>;
> > > +					required-opps = <&rpmhpd_opp_low_svs>;
> > > +					opp-peak-kBps = <250000 1>;
> > > +				};
> > > +
> > > +				/* GEN 2 x1 */
> > > +				opp-5000000 {
> > > +					opp-hz = /bits/ 64 <5000000>;
> > > +					required-opps = <&rpmhpd_opp_low_svs>;
> > > +					opp-peak-kBps = <500000 1>;
> > > +				};
> > > +
> > > +				/* GEN 3 x1 */
> > > +				opp-8000000 {
> > > +					opp-hz = /bits/ 64 <8000000>;
> > 
> > I doubt this value. See below...
> > 
> > > +					required-opps = <&rpmhpd_opp_nom>;
> > > +					opp-peak-kBps = <984500 1>;
> > > +				};
> > > +			};
> > > +
> > >   		};
> > >   		pcie0_phy: phy@1c06000 {
> > > @@ -1982,7 +2010,56 @@ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
> > >   			pinctrl-names = "default";
> > >   			pinctrl-0 = <&pcie1_default_state>;
> > > +			operating-points-v2 = <&pcie1_opp_table>;
> > > +
> > >   			status = "disabled";
> > > +
> > > +			pcie1_opp_table: opp-table {
> > > +				compatible = "operating-points-v2";
> > > +
> > > +				/* GEN 1 x1 */
> > > +				opp-2500000 {
> > > +					opp-hz = /bits/ 64 <2500000>;
> > > +					required-opps = <&rpmhpd_opp_low_svs>;
> > > +					opp-peak-kBps = <250000 1>;
> > > +				};
> > > +
> > > +				/* GEN 1 x2 GEN 2 x1 */
> > > +				opp-5000000 {
> > > +					opp-hz = /bits/ 64 <5000000>;
> > > +					required-opps = <&rpmhpd_opp_low_svs>;
> > > +					opp-peak-kBps = <500000 1>;
> > > +				};
> > > +
> > > +				/* GEN 2 x2 */
> > > +				opp-10000000 {
> > > +					opp-hz = /bits/ 64 <10000000>;
> > > +					required-opps = <&rpmhpd_opp_low_svs>;
> > > +					opp-peak-kBps = <1000000 1>;
> > > +				};
> > > +
> > > +				/* GEN 3 x1 */
> > > +				opp-8000000 {
> > > +					opp-hz = /bits/ 64 <8000000>;
> > 
> > GEN 3 x1 frequency is lower than GEN 2 x2? This looks strange. Both should be of
> > same frequency.
> > 
> Gen2 is 5GT/s where as GEN3 is 8GT/s. so the freq for 3 x1(8 x1 GT/s) is
> less than Gen2 x2(5 x2 GT/s)
> 

Sorry, that's my bad. I missed the fact that the spec doubled the data rate
starting from GEN 3 only.

- Mani

-- 
மணிவண்ணன் சதாசிவம்




[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux