diff mbox

[2/2] drm/radeon: allow zero sized BOs for fences

Message ID 1407421833-3309-2-git-send-email-deathsimple@vodafone.de (mailing list archive)
State New, archived
Headers show

Commit Message

Christian König Aug. 7, 2014, 2:30 p.m. UTC
From: Christian König <christian.koenig@amd.com>

Signed-off-by: Christian König <christian.koenig@amd.com>
---
 drivers/gpu/drm/radeon/radeon_drv.c    | 3 ++-
 drivers/gpu/drm/radeon/radeon_object.c | 2 +-
 drivers/gpu/drm/radeon/radeon_vm.c     | 3 +++
 3 files changed, 6 insertions(+), 2 deletions(-)

Comments

Jerome Glisse Aug. 7, 2014, 3:01 p.m. UTC | #1
On Thu, Aug 07, 2014 at 04:30:33PM +0200, Christian König wrote:
> From: Christian König <christian.koenig@amd.com>


Can we get proper change log with motivation for doing that, use case,
why it can not be done any other ways ...

Change log is invaluable information and empty change log is the worst
thing ever.

> 
> Signed-off-by: Christian König <christian.koenig@amd.com>
> ---
>  drivers/gpu/drm/radeon/radeon_drv.c    | 3 ++-
>  drivers/gpu/drm/radeon/radeon_object.c | 2 +-
>  drivers/gpu/drm/radeon/radeon_vm.c     | 3 +++
>  3 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
> index a773830..f788170 100644
> --- a/drivers/gpu/drm/radeon/radeon_drv.c
> +++ b/drivers/gpu/drm/radeon/radeon_drv.c
> @@ -84,9 +84,10 @@
>   *   2.39.0 - Add INFO query for number of active CUs
>   *   2.40.0 - Add RADEON_GEM_GTT_WC/UC, flush HDP cache before submitting
>   *            CS to GPU
> + *   2.41.0 - Allow zero sized BOs
>   */
>  #define KMS_DRIVER_MAJOR	2
> -#define KMS_DRIVER_MINOR	40
> +#define KMS_DRIVER_MINOR	41
>  #define KMS_DRIVER_PATCHLEVEL	0
>  int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags);
>  int radeon_driver_unload_kms(struct drm_device *dev);
> diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
> index 480c87d..9dd670e 100644
> --- a/drivers/gpu/drm/radeon/radeon_object.c
> +++ b/drivers/gpu/drm/radeon/radeon_object.c
> @@ -154,7 +154,7 @@ int radeon_bo_create(struct radeon_device *rdev,
>  
>  	size = ALIGN(size, PAGE_SIZE);
>  
> -	if (kernel) {
> +	if (kernel || size == 0) {
>  		type = ttm_bo_type_kernel;
>  	} else if (sg) {
>  		type = ttm_bo_type_sg;
> diff --git a/drivers/gpu/drm/radeon/radeon_vm.c b/drivers/gpu/drm/radeon/radeon_vm.c
> index ccae4d9..a80f856 100644
> --- a/drivers/gpu/drm/radeon/radeon_vm.c
> +++ b/drivers/gpu/drm/radeon/radeon_vm.c
> @@ -877,6 +877,9 @@ int radeon_vm_bo_update(struct radeon_device *rdev,
>  	uint32_t flags;
>  	int r;
>  
> +	if (bo_va->bo && radeon_bo_size(bo_va->bo) == 0)
> +		return 0;
> +
>  	if (!bo_va->it.start) {
>  		dev_err(rdev->dev, "bo %p don't has a mapping in vm %p\n",
>  			bo_va->bo, vm);
> -- 
> 1.9.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
Christian König Aug. 7, 2014, 3:52 p.m. UTC | #2
Am 07.08.2014 um 17:01 schrieb Jerome Glisse:
> On Thu, Aug 07, 2014 at 04:30:33PM +0200, Christian König wrote:
>> From: Christian König <christian.koenig@amd.com>
>
> Can we get proper change log with motivation for doing that, use case,
> why it can not be done any other ways ...
>
> Change log is invaluable information and empty change log is the worst
> thing ever.

Yeah, sorry. Actually wanted to send out only the first one to get an 
opinion on that before proceeding.

Going to add a proper commit message,
Christian.

>
>> Signed-off-by: Christian König <christian.koenig@amd.com>
>> ---
>>   drivers/gpu/drm/radeon/radeon_drv.c    | 3 ++-
>>   drivers/gpu/drm/radeon/radeon_object.c | 2 +-
>>   drivers/gpu/drm/radeon/radeon_vm.c     | 3 +++
>>   3 files changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
>> index a773830..f788170 100644
>> --- a/drivers/gpu/drm/radeon/radeon_drv.c
>> +++ b/drivers/gpu/drm/radeon/radeon_drv.c
>> @@ -84,9 +84,10 @@
>>    *   2.39.0 - Add INFO query for number of active CUs
>>    *   2.40.0 - Add RADEON_GEM_GTT_WC/UC, flush HDP cache before submitting
>>    *            CS to GPU
>> + *   2.41.0 - Allow zero sized BOs
>>    */
>>   #define KMS_DRIVER_MAJOR	2
>> -#define KMS_DRIVER_MINOR	40
>> +#define KMS_DRIVER_MINOR	41
>>   #define KMS_DRIVER_PATCHLEVEL	0
>>   int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags);
>>   int radeon_driver_unload_kms(struct drm_device *dev);
>> diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
>> index 480c87d..9dd670e 100644
>> --- a/drivers/gpu/drm/radeon/radeon_object.c
>> +++ b/drivers/gpu/drm/radeon/radeon_object.c
>> @@ -154,7 +154,7 @@ int radeon_bo_create(struct radeon_device *rdev,
>>   
>>   	size = ALIGN(size, PAGE_SIZE);
>>   
>> -	if (kernel) {
>> +	if (kernel || size == 0) {
>>   		type = ttm_bo_type_kernel;
>>   	} else if (sg) {
>>   		type = ttm_bo_type_sg;
>> diff --git a/drivers/gpu/drm/radeon/radeon_vm.c b/drivers/gpu/drm/radeon/radeon_vm.c
>> index ccae4d9..a80f856 100644
>> --- a/drivers/gpu/drm/radeon/radeon_vm.c
>> +++ b/drivers/gpu/drm/radeon/radeon_vm.c
>> @@ -877,6 +877,9 @@ int radeon_vm_bo_update(struct radeon_device *rdev,
>>   	uint32_t flags;
>>   	int r;
>>   
>> +	if (bo_va->bo && radeon_bo_size(bo_va->bo) == 0)
>> +		return 0;
>> +
>>   	if (!bo_va->it.start) {
>>   		dev_err(rdev->dev, "bo %p don't has a mapping in vm %p\n",
>>   			bo_va->bo, vm);
>> -- 
>> 1.9.1
>>
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox

Patch

diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
index a773830..f788170 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -84,9 +84,10 @@ 
  *   2.39.0 - Add INFO query for number of active CUs
  *   2.40.0 - Add RADEON_GEM_GTT_WC/UC, flush HDP cache before submitting
  *            CS to GPU
+ *   2.41.0 - Allow zero sized BOs
  */
 #define KMS_DRIVER_MAJOR	2
-#define KMS_DRIVER_MINOR	40
+#define KMS_DRIVER_MINOR	41
 #define KMS_DRIVER_PATCHLEVEL	0
 int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags);
 int radeon_driver_unload_kms(struct drm_device *dev);
diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
index 480c87d..9dd670e 100644
--- a/drivers/gpu/drm/radeon/radeon_object.c
+++ b/drivers/gpu/drm/radeon/radeon_object.c
@@ -154,7 +154,7 @@  int radeon_bo_create(struct radeon_device *rdev,
 
 	size = ALIGN(size, PAGE_SIZE);
 
-	if (kernel) {
+	if (kernel || size == 0) {
 		type = ttm_bo_type_kernel;
 	} else if (sg) {
 		type = ttm_bo_type_sg;
diff --git a/drivers/gpu/drm/radeon/radeon_vm.c b/drivers/gpu/drm/radeon/radeon_vm.c
index ccae4d9..a80f856 100644
--- a/drivers/gpu/drm/radeon/radeon_vm.c
+++ b/drivers/gpu/drm/radeon/radeon_vm.c
@@ -877,6 +877,9 @@  int radeon_vm_bo_update(struct radeon_device *rdev,
 	uint32_t flags;
 	int r;
 
+	if (bo_va->bo && radeon_bo_size(bo_va->bo) == 0)
+		return 0;
+
 	if (!bo_va->it.start) {
 		dev_err(rdev->dev, "bo %p don't has a mapping in vm %p\n",
 			bo_va->bo, vm);