diff options
| author | Dmitry Torokhov <[email protected]> | 2023-08-30 16:06:38 -0700 | 
|---|---|---|
| committer | Dmitry Torokhov <[email protected]> | 2023-08-30 16:06:38 -0700 | 
| commit | 1ac731c529cd4d6adbce134754b51ff7d822b145 (patch) | |
| tree | 143ab3f35ca5f3b69f583c84e6964b17139c2ec1 /drivers/gpu/drm/radeon/radeon_gem.c | |
| parent | 07b4c950f27bef0362dc6ad7ee713aab61d58149 (diff) | |
| parent | 54116d442e001e1b6bd482122043b1870998a1f3 (diff) | |
Merge branch 'next' into for-linus
Prepare input updates for 6.6 merge window.
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_gem.c')
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_gem.c | 28 | 
1 files changed, 25 insertions, 3 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_gem.c b/drivers/gpu/drm/radeon/radeon_gem.c index 261fcbae88d7..d3f5ddbc1704 100644 --- a/drivers/gpu/drm/radeon/radeon_gem.c +++ b/drivers/gpu/drm/radeon/radeon_gem.c @@ -459,7 +459,6 @@ int radeon_gem_set_domain_ioctl(struct drm_device *dev, void *data,  	struct radeon_device *rdev = dev->dev_private;  	struct drm_radeon_gem_set_domain *args = data;  	struct drm_gem_object *gobj; -	struct radeon_bo *robj;  	int r;  	/* for now if someone requests domain CPU - @@ -472,13 +471,12 @@ int radeon_gem_set_domain_ioctl(struct drm_device *dev, void *data,  		up_read(&rdev->exclusive_lock);  		return -ENOENT;  	} -	robj = gem_to_radeon_bo(gobj);  	r = radeon_gem_set_domain(gobj, args->read_domains, args->write_domain);  	drm_gem_object_put(gobj);  	up_read(&rdev->exclusive_lock); -	r = radeon_gem_handle_lockup(robj->rdev, r); +	r = radeon_gem_handle_lockup(rdev, r);  	return r;  } @@ -822,6 +820,30 @@ out:  	return r;  } +int radeon_align_pitch(struct radeon_device *rdev, int width, int cpp, bool tiled) +{ +	int aligned = width; +	int align_large = (ASIC_IS_AVIVO(rdev)) || tiled; +	int pitch_mask = 0; + +	switch (cpp) { +	case 1: +		pitch_mask = align_large ? 255 : 127; +		break; +	case 2: +		pitch_mask = align_large ? 127 : 31; +		break; +	case 3: +	case 4: +		pitch_mask = align_large ? 63 : 15; +		break; +	} + +	aligned += pitch_mask; +	aligned &= ~pitch_mask; +	return aligned * cpp; +} +  int radeon_mode_dumb_create(struct drm_file *file_priv,  			    struct drm_device *dev,  			    struct drm_mode_create_dumb *args)  |