diff options
| -rw-r--r-- | drivers/gpu/drm/panfrost/panfrost_device.h | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/panfrost/panfrost_drv.c | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/panfrost/panfrost_gpu.c | 1 | ||||
| -rw-r--r-- | drivers/gpu/drm/panfrost/panfrost_regs.h | 1 | ||||
| -rw-r--r-- | include/uapi/drm/panfrost_drm.h | 1 | 
5 files changed, 7 insertions, 1 deletions
| diff --git a/drivers/gpu/drm/panfrost/panfrost_device.h b/drivers/gpu/drm/panfrost/panfrost_device.h index 597cf1459b0a..f614e98771e4 100644 --- a/drivers/gpu/drm/panfrost/panfrost_device.h +++ b/drivers/gpu/drm/panfrost/panfrost_device.h @@ -45,6 +45,7 @@ struct panfrost_features {  	u32 thread_max_workgroup_sz;  	u32 thread_max_barrier_sz;  	u32 coherency_features; +	u32 afbc_features;  	u32 texture_features[4];  	u32 js_features[16]; diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c index ca07098a6141..1596559f3d14 100644 --- a/drivers/gpu/drm/panfrost/panfrost_drv.c +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c @@ -63,6 +63,7 @@ static int panfrost_ioctl_get_param(struct drm_device *ddev, void *data, struct  		PANFROST_FEATURE(THREAD_MAX_BARRIER_SZ,  				thread_max_barrier_sz);  		PANFROST_FEATURE(COHERENCY_FEATURES, coherency_features); +		PANFROST_FEATURE(AFBC_FEATURES, afbc_features);  		PANFROST_FEATURE_ARRAY(TEXTURE_FEATURES, texture_features, 3);  		PANFROST_FEATURE_ARRAY(JS_FEATURES, js_features, 15);  		PANFROST_FEATURE(NR_CORE_GROUPS, nr_core_groups); @@ -547,6 +548,7 @@ DEFINE_DRM_GEM_FOPS(panfrost_drm_driver_fops);   * Panfrost driver version:   * - 1.0 - initial interface   * - 1.1 - adds HEAP and NOEXEC flags for CREATE_BO + * - 1.2 - adds AFBC_FEATURES query   */  static const struct drm_driver panfrost_drm_driver = {  	.driver_features	= DRIVER_RENDER | DRIVER_GEM | DRIVER_SYNCOBJ, @@ -559,7 +561,7 @@ static const struct drm_driver panfrost_drm_driver = {  	.desc			= "panfrost DRM",  	.date			= "20180908",  	.major			= 1, -	.minor			= 1, +	.minor			= 2,  	.gem_create_object	= panfrost_gem_create_object,  	.prime_handle_to_fd	= drm_gem_prime_handle_to_fd, diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c b/drivers/gpu/drm/panfrost/panfrost_gpu.c index 2aae636f1cf5..0e70e27fd8c3 100644 --- a/drivers/gpu/drm/panfrost/panfrost_gpu.c +++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c @@ -228,6 +228,7 @@ static void panfrost_gpu_init_features(struct panfrost_device *pfdev)  	pfdev->features.thread_max_workgroup_sz = gpu_read(pfdev, GPU_THREAD_MAX_WORKGROUP_SIZE);  	pfdev->features.thread_max_barrier_sz = gpu_read(pfdev, GPU_THREAD_MAX_BARRIER_SIZE);  	pfdev->features.coherency_features = gpu_read(pfdev, GPU_COHERENCY_FEATURES); +	pfdev->features.afbc_features = gpu_read(pfdev, GPU_AFBC_FEATURES);  	for (i = 0; i < 4; i++)  		pfdev->features.texture_features[i] = gpu_read(pfdev, GPU_TEXTURE_FEATURES(i)); diff --git a/drivers/gpu/drm/panfrost/panfrost_regs.h b/drivers/gpu/drm/panfrost/panfrost_regs.h index eddaa62ad8b0..dc9df5457f1c 100644 --- a/drivers/gpu/drm/panfrost/panfrost_regs.h +++ b/drivers/gpu/drm/panfrost/panfrost_regs.h @@ -82,6 +82,7 @@  #define GPU_TEXTURE_FEATURES(n)		(0x0B0 + ((n) * 4))  #define GPU_JS_FEATURES(n)		(0x0C0 + ((n) * 4)) +#define GPU_AFBC_FEATURES		(0x4C)	/* (RO) AFBC support on Bifrost */  #define GPU_SHADER_PRESENT_LO		0x100	/* (RO) Shader core present bitmap, low word */  #define GPU_SHADER_PRESENT_HI		0x104	/* (RO) Shader core present bitmap, high word */ diff --git a/include/uapi/drm/panfrost_drm.h b/include/uapi/drm/panfrost_drm.h index ec19db1eead8..061e700dd06c 100644 --- a/include/uapi/drm/panfrost_drm.h +++ b/include/uapi/drm/panfrost_drm.h @@ -171,6 +171,7 @@ enum drm_panfrost_param {  	DRM_PANFROST_PARAM_JS_FEATURES15,  	DRM_PANFROST_PARAM_NR_CORE_GROUPS,  	DRM_PANFROST_PARAM_THREAD_TLS_ALLOC, +	DRM_PANFROST_PARAM_AFBC_FEATURES,  };  struct drm_panfrost_get_param { | 
