Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c3a73b6c authored by Lucille Sylvester's avatar Lucille Sylvester
Browse files

msm: kgsl: bus modifier computation



Use the vbif performance counter which counts bus busy cycles
to determine the requested bus bandwidth vote at a given
GPU frequency.

Change-Id: I18915ef8a2be75a7ef5795a6030a1f2ddd09a967
CRs-fixed: 574420
Signed-off-by: default avatarLucille Sylvester <lsylvest@codeaurora.org>
parent a282eba1
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ DCVS Core info
Optional Properties:
- qcom,initial-powerlevel: This value indicates which qcom,gpu-pwrlevel should be used at start time
			   and when coming back out of resume
- qcom,step-pwrlevel:	   How many qcom,gpu-pwrlevel should be decremented at once
- qcom,bus-control:	   Boolean. Enables an independent bus vote from the gpu frequency
- qcom,idle-timeout:	   This property represents the time in microseconds for idle timeout.
- qcom,chipid:		   If it exists this property is used to replace
			   the chip identification read from the GPU hardware.
+9 −21
Original line number Diff line number Diff line
@@ -22,8 +22,7 @@

		qcom,chipid = <0x03030000>;

		qcom,initial-pwrlevel = <2>;
		qcom,step-pwrlevel = <2>;
		qcom,initial-pwrlevel = <1>;

		qcom,idle-timeout = <8>; //<HZ/12>
		qcom,strtstp-sleepwake;
@@ -31,14 +30,17 @@

		/* Bus Scale Settings */
		qcom,msm-bus,name = "grp3d";
		qcom,msm-bus,num-cases = <6>;
		qcom,msm-bus,num-cases = <9>;
		qcom,msm-bus,num-paths = <2>;
		qcom,msm-bus,vectors-KBps =
				<26 512 0 0>, <89 604 0 0>,
				<26 512 0 1600000>, <89 604 0 3000000>,
				<26 512 0 2200000>, <89 604 0 3000000>,
				<26 512 0 4000000>, <89 604 0 3000000>,
				<26 512 0 2200000>, <89 604 0 4500000>,
				<26 512 0 4000000>, <89 604 0 4500000>,
				<26 512 0 6400000>, <89 604 0 4500000>,
				<26 512 0 4000000>, <89 604 0 7600000>,
				<26 512 0 6400000>, <89 604 0 7600000>;

		/* GDSC oxili regulators */
@@ -67,40 +69,26 @@
			qcom,gpu-pwrlevel@0 {
				reg = <0>;
				qcom,gpu-freq = <450000000>;
				qcom,bus-freq = <5>;
				qcom,bus-freq = <8>;
				qcom,io-fraction = <33>;
			};

			qcom,gpu-pwrlevel@1 {
				reg = <1>;
				qcom,gpu-freq = <320000000>;
				qcom,bus-freq = <4>;
				qcom,bus-freq = <5>;
				qcom,io-fraction = <66>;
			};

			qcom,gpu-pwrlevel@2 {
				reg = <2>;
				qcom,gpu-freq = <320000000>;
				qcom,bus-freq = <3>;
				qcom,io-fraction = <66>;
			};

			qcom,gpu-pwrlevel@3 {
				reg = <3>;
				qcom,gpu-freq = <200000000>;
				qcom,bus-freq = <2>;
				qcom,io-fraction = <100>;
			};

			qcom,gpu-pwrlevel@4 {
				reg = <4>;
				qcom,gpu-freq = <200000000>;
				qcom,bus-freq = <1>;
				qcom,io-fraction = <100>;
			};

			qcom,gpu-pwrlevel@5 {
				reg = <5>;
			qcom,gpu-pwrlevel@3 {
				reg = <3>;
				qcom,gpu-freq = <27000000>;
				qcom,bus-freq = <0>;
				qcom,io-fraction = <0>;
+13 −28
Original line number Diff line number Diff line
@@ -23,20 +23,26 @@
	/* Updated chip ID */
	qcom,chipid = <0x03030001>;

	qcom,initial-pwrlevel = <4>;
	qcom,initial-pwrlevel = <2>;

	/* Updated bus bandwidth requirements */
	qcom,msm-bus,vectors-KBps =
		/* Off */
		<26 512 0 0>, <89 604 0 0>,
		/* Sub-SVS / SVS */
		<26 512 0 1600000>, <89 604 0 3000000>,
		/* SVS */
		<26 512 0 2400000>, <89 604 0 3000000>,
		/* Nominal / SVS */
		<26 512 0 4656000>, <89 604 0 3000000>,
		/* SVS / Nominal */
		<26 512 0 2400000>, <89 604 0 5120000>,
		/* Nominal */
		<26 512 0 4656000>, <89 604 0 5120000>,
		/* Turbo / Nominal */
		<26 512 0 7464000>, <89 604 0 5120000>,
		/* Nominal / Turbo */
		<26 512 0 4656000>, <89 604 0 6400000>,
		/* Turbo */
		<26 512 0 7464000>, <89 604 0 6400000>;

@@ -49,54 +55,33 @@
		qcom,gpu-pwrlevel@0 {
			reg = <0>;
			qcom,gpu-freq = <450000000>;
			qcom,bus-freq = <5>;
			qcom,bus-freq = <8>;
			qcom,io-fraction = <33>;
		};

		qcom,gpu-pwrlevel@1 {
			reg = <1>;
			qcom,gpu-freq = <389000000>;
			qcom,bus-freq = <4>;
			qcom,bus-freq = <5>;
			qcom,io-fraction = <33>;
		};

		qcom,gpu-pwrlevel@2 {
			reg = <2>;
			qcom,gpu-freq = <389000000>;
			qcom,bus-freq = <3>;
			qcom,gpu-freq = <320000000>;
			qcom,bus-freq = <5>;
			qcom,io-fraction = <66>;
		};

		qcom,gpu-pwrlevel@3 {
			reg = <3>;
			qcom,gpu-freq = <320000000>;
			qcom,bus-freq = <4>;
			qcom,io-fraction = <66>;
		};

		qcom,gpu-pwrlevel@4 {
			reg = <4>;
			qcom,gpu-freq = <320000000>;
			qcom,bus-freq = <3>;
			qcom,io-fraction = <66>;
		};

		qcom,gpu-pwrlevel@5 {
			reg = <5>;
			qcom,gpu-freq = <200000000>;
			qcom,bus-freq = <2>;
			qcom,io-fraction = <100>;
		};

		qcom,gpu-pwrlevel@6 {
			reg = <6>;
			qcom,gpu-freq = <200000000>;
			qcom,bus-freq = <1>;
			qcom,io-fraction = <100>;
		};

		qcom,gpu-pwrlevel@7 {
			reg = <7>;
		qcom,gpu-pwrlevel@4 {
			reg = <4>;
			qcom,gpu-freq = <27000000>;
			qcom,bus-freq = <0>;
			qcom,io-fraction = <0>;
+8 −2
Original line number Diff line number Diff line
@@ -66,14 +66,20 @@
	qcom,msm-bus,vectors-KBps =
		/* Off */
		<26 512 0 0>, <89 604 0 0>,
		/* Sub-SVS / SVS */
		<26 512 0 1600000>, <89 604 0 3000000>,
		/* SVS */
		<26 512 0 2400000>, <89 604 0 3000000>,
		/* Nominal / SVS */
		<26 512 0 4656000>, <89 604 0 3000000>,
		<26 512 0 4912000>, <89 604 0 3000000>,
		/* SVS / Nominal */
		<26 512 0 2400000>, <89 604 0 5120000>,
		/* Nominal */
		<26 512 0 4656000>, <89 604 0 5120000>,
		<26 512 0 4912000>, <89 604 0 5120000>,
		/* Turbo / Nominal */
		<26 512 0 7464000>, <89 604 0 5120000>,
		/* Nominal / Turbo */
		<26 512 0 4912000>, <89 604 0 6400000>,
		/* Turbo */
		<26 512 0 7464000>, <89 604 0 6400000>;
};
+42 −60
Original line number Diff line number Diff line
@@ -1580,31 +1580,41 @@
&msm_gpu {
	/* Updated chip ID */
	qcom,chipid = <0x03030002>;
	qcom,msm-bus,num-cases = <15>;
	qcom,bus-control;
	qcom,initial-pwrlevel = <3>;

	qcom,initial-pwrlevel = <6>;

	qcom,msm-bus,num-cases = <10>;
	/* Updated bus bandwidth requirements */
	qcom,msm-bus,vectors-KBps =
		/* Off */
		<26 512 0 0>, <89 604 0 0>,
		/* Sub-SVS / SVS */
		<26 512 0 1600000>, <89 604 0 3200000>,
		/* SVS */
		<26 512 0 2400000>, <89 604 0 3200000>,
		/* Nominal / SVS */
		<26 512 0 2456000>, <89 604 0 3200000>,
		/* low Nominal / SVS */
		<26 512 0 3680000>, <89 604 0 3200000>,
		/* Nominal / Nominal */
		/* SVS / low Nominal */
		<26 512 0 2456000>, <89 604 0 5280000>,
		/* low Nominal / low Nominal */
		<26 512 0 3680000>, <89 604 0 5280000>,
		/* Nominal / Nominal */
		/* Nominal / low Nominal */
		<26 512 0 4912000>, <89 604 0 5280000>,
		/* Nominal / Turbo */
		/* low Nominal / Nominal */
		<26 512 0 3680000>, <89 604 0 6224000>,
		/* Nominal / Nominal */
		<26 512 0 4912000>, <89 604 0 6224000>,
		/* Turbo / Turbo */
		<26 512 0 7464000>, <89 604 0 6224000>,
		/* low Turbo / Nominal */
		<26 512 0 6400000>, <89 604 0 6224000>,
		/* Nominal / low Turbo */
		<26 512 0 4912000>, <89 604 0 7398000>,
		/* low Turbo / low Turbo */
		<26 512 0 6400000>, <89 604 0 7398000>,
		/* Turbo / low Turbo */
		<26 512 0 7464000>, <89 604 0 7398000>,
		/* Nominal / Turbo */
		<26 512 0 4912000>, <89 604 0 7400000>,
		/* Turbo */
		<26 512 0 7464000>, <89 604 0 7400000>,
		/* Turbo */
		<26 512 0 4912000>, <89 604 0 9248000>,
		/* Turbo / Turbo */
		<26 512 0 7464000>, <89 604 0 9248000>;

       qcom,gpu-pwrlevels {
@@ -1616,68 +1626,40 @@
               qcom,gpu-pwrlevel@0 {
                       reg = <0>;
                       qcom,gpu-freq = <578000000>;
                       qcom,bus-freq = <9>;
                       qcom,bus-freq = <14>;
                       qcom,io-fraction = <33>;
               };

               qcom,gpu-pwrlevel@1 {
                       reg = <1>;
                       qcom,gpu-freq = <462400000>;
			qcom,bus-freq = <8>;
			qcom,io-fraction = <33>;
                       qcom,bus-freq = <11>;
                       qcom,io-fraction = <66>;
               };

               qcom,gpu-pwrlevel@2 {
                       reg = <2>;
			qcom,gpu-freq = <462400000>;
			qcom,bus-freq = <7>;
                       qcom,gpu-freq = <389000000>;
                       qcom,bus-freq = <8>;
                       qcom,io-fraction = <66>;
               };

               qcom,gpu-pwrlevel@3 {
                       reg = <3>;
			qcom,gpu-freq = <389000000>;
			qcom,bus-freq = <6>;
			qcom,io-fraction = <66>;
                       qcom,gpu-freq = <320000000>;
                       qcom,bus-freq = <5>;
                       qcom,io-fraction = <100>;
               };

               qcom,gpu-pwrlevel@4 {
                       reg = <4>;
			qcom,gpu-freq = <389000000>;
			qcom,bus-freq = <5>;
			qcom,io-fraction = <66>;
		};

               qcom,gpu-pwrlevel@5 {
                       reg = <5>;
                       qcom,gpu-freq = <330000000>;
                       qcom,bus-freq = <4>;
                       qcom,io-fraction = <66>;
               };

               qcom,gpu-pwrlevel@6 {
                       reg = <6>;
                       qcom,gpu-freq = <330000000>;
                       qcom,bus-freq = <3>;
                       qcom,io-fraction = <66>;
               };

               qcom,gpu-pwrlevel@7 {
                       reg = <7>;
                       qcom,gpu-freq = <200000000>;
                       qcom,bus-freq = <2>;
                       qcom,io-fraction = <100>;
               };

               qcom,gpu-pwrlevel@8 {
                       reg = <8>;
                       qcom,gpu-freq = <200000000>;
                       qcom,bus-freq = <1>;
                       qcom,io-fraction = <100>;
               };

               qcom,gpu-pwrlevel@9 {
                       reg = <9>;
               qcom,gpu-pwrlevel@5 {
                       reg = <5>;
                       qcom,gpu-freq = <27000000>;
                       qcom,bus-freq = <0>;
                       qcom,io-fraction = <0>;
Loading