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

Commit 7e976a60 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: kgsl: Make reclaim an adreno feature instead of a Kconfig option"

parents 2d283e35 d52d2057
Loading
Loading
Loading
Loading
+0 −20
Original line number Diff line number Diff line
@@ -26,23 +26,3 @@ config QCOM_ADRENO_DEFAULT_GOVERNOR
config QCOM_KGSL_IOMMU
	bool
	default y if QCOM_KGSL && (MSM_IOMMU || ARM_SMMU)

config QCOM_KGSL_USE_SHMEM
	bool "Enable using shmem for memory allocations"
	depends on QCOM_KGSL
	help
	  Say 'Y' to enable using shmem for memory allocations. If enabled,
	  there will be no support for the memory pools and higher order pages.
	  But using shmem will help in making kgsl pages available for
	  reclaiming.

config QCOM_KGSL_PROCESS_RECLAIM
	bool "Make driver pages available for reclaim"
	depends on QCOM_KGSL && PROCESS_RECLAIM
	select QCOM_KGSL_USE_SHMEM
	help
	  Say 'Y' to make driver pages available for reclaiming. If enabled,
	  shmem will be used for allocation. kgsl would know the process
	  foreground/background activity through the sysfs entry exposed per
	  process. Based on this kgsl can unpin the pages of the process and
	  make those pages available to the Per Process Reclaim (PPR).
+3 −6
Original line number Diff line number Diff line
@@ -15,17 +15,14 @@ msm_kgsl_core-y = \
	kgsl_gmu_core.o \
	kgsl_gmu.o \
	kgsl_rgmu.o \
	kgsl_hfi.o
	kgsl_hfi.o \
	kgsl_pool.o \
	kgsl_reclaim.o

msm_kgsl_core-$(CONFIG_QCOM_KGSL_IOMMU) += kgsl_iommu.o
msm_kgsl_core-$(CONFIG_DEBUG_FS) += kgsl_debugfs.o
msm_kgsl_core-$(CONFIG_SYNC_FILE) += kgsl_sync.o
msm_kgsl_core-$(CONFIG_COMPAT) += kgsl_compat.o
msm_kgsl_core-$(CONFIG_QCOM_KGSL_PROCESS_RECLAIM) += kgsl_reclaim.o

ifndef CONFIG_QCOM_KGSL_USE_SHMEM
	msm_kgsl_core-y += kgsl_pool.o
endif

msm_adreno-y += \
	adreno_ioctl.o \
+2 −1
Original line number Diff line number Diff line
@@ -1460,7 +1460,8 @@ static const struct adreno_a6xx_core adreno_gpu_core_a702 = {
	.base = {
		DEFINE_ADRENO_REV(ADRENO_REV_A702, 7, 0, 2, ANY_ID),
		.features = ADRENO_64BIT | ADRENO_CONTENT_PROTECTION |
			ADRENO_APRIV | ADRENO_PREEMPTION,
			ADRENO_APRIV | ADRENO_PREEMPTION |
			ADRENO_PROCESS_RECLAIM,
		.gpudev = &adreno_a6xx_gpudev,
		.gmem_size = SZ_128K,
		.busy_mask = 0xfffffffe,
+8 −0
Original line number Diff line number Diff line
@@ -1442,6 +1442,14 @@ static int adreno_probe(struct platform_device *pdev)
	if (adreno_is_a6xx(adreno_dev))
		device->mmu.features |= KGSL_MMU_SMMU_APERTURE;

	if (ADRENO_FEATURE(adreno_dev, ADRENO_USE_SHMEM))
		device->flags |= KGSL_FLAG_USE_SHMEM;

	if (ADRENO_FEATURE(adreno_dev, ADRENO_PROCESS_RECLAIM)) {
		device->flags |= KGSL_FLAG_USE_SHMEM;
		device->flags |= KGSL_FLAG_PROCESS_RECLAIM;
	}

	device->pwrctrl.bus_width = adreno_dev->gpucore->bus_width;

	status = kgsl_device_platform_probe(device);
+14 −0
Original line number Diff line number Diff line
@@ -109,6 +109,20 @@
#define ADRENO_DEPRECATED BIT(20)
/* The target supports ringbuffer level APRIV */
#define ADRENO_APRIV BIT(21)
/*
 * Use SHMEM for page allocation. There will be no support
 * for pools and higher order pages.
 */
#define ADRENO_USE_SHMEM BIT(22)
/*
 * Make pages available for reclaim. Process foreground/background
 * activity is known through sysfs exposed per process. Based on
 * this, pages are unpinned and made available to Per Process
 * Reclaim (PPR). SHMEM is used for allocation of pages and
 * support for pools is removed.
 */
#define ADRENO_PROCESS_RECLAIM BIT(23)

/*
 * Adreno GPU quirks - control bits for various workarounds
 */
Loading