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

Commit b1edd98c authored by Raghu Ananya Arabolu's avatar Raghu Ananya Arabolu
Browse files

msm: kgsl: Set weights for bicubic filtering



Write TPL1_BICUBIC_WEIGHTS_TABLE registers with hard coded values.
The value of these registers are weights that are required for bicubic
filtering. These weights are static.

Change-Id: Ib05b64d30fcb0c8804c1090ff83758fa3caebb17
Signed-off-by: default avatarRaghu Ananya Arabolu <rarabolu@codeaurora.org>
parent 93df147c
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -750,6 +750,11 @@
/* TP registers */
#define A6XX_TPL1_ADDR_MODE_CNTL            0xB601
#define A6XX_TPL1_NC_MODE_CNTL              0xB604
#define A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_0   0xB608
#define A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_1   0xB609
#define A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_2   0xB60A
#define A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_3   0xB60B
#define A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_4   0xB60C
#define A6XX_TPL1_PERFCTR_TP_SEL_0          0xB610
#define A6XX_TPL1_PERFCTR_TP_SEL_1          0xB611
#define A6XX_TPL1_PERFCTR_TP_SEL_2          0xB612
+13 −0
Original line number Diff line number Diff line
@@ -1044,6 +1044,19 @@ static void a6xx_start(struct adreno_device *adreno_dev)

	kgsl_regwrite(device, A6XX_UCHE_CLIENT_PF, 1);

	/* Set weights for bicubic filtering */
	if (adreno_is_a650_family(adreno_dev)) {
		kgsl_regwrite(device, A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_0, 0);
		kgsl_regwrite(device, A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_1,
			0x3FE05FF4);
		kgsl_regwrite(device, A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_2,
			0x3FA0EBEE);
		kgsl_regwrite(device, A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_3,
			0x3F5193ED);
		kgsl_regwrite(device, A6XX_TPL1_BICUBIC_WEIGHTS_TABLE_4,
			0x3F0243F0);
	}

	/* Set TWOPASSUSEWFI in A6XX_PC_DBG_ECO_CNTL if requested */
	if (ADRENO_QUIRK(adreno_dev, ADRENO_QUIRK_TWO_PASS_USE_WFI))
		kgsl_regrmw(device, A6XX_PC_DBG_ECO_CNTL, 0, (1 << 8));