diff options
Diffstat (limited to 'drivers/gpu/drm/tegra/fb.c')
| -rw-r--r-- | drivers/gpu/drm/tegra/fb.c | 10 | 
1 files changed, 10 insertions, 0 deletions
| diff --git a/drivers/gpu/drm/tegra/fb.c b/drivers/gpu/drm/tegra/fb.c index 01939c57fc74..cae8b8cbe9dd 100644 --- a/drivers/gpu/drm/tegra/fb.c +++ b/drivers/gpu/drm/tegra/fb.c @@ -44,6 +44,15 @@ int tegra_fb_get_tiling(struct drm_framebuffer *framebuffer,  {  	uint64_t modifier = framebuffer->modifier; +	if ((modifier >> 56) == DRM_FORMAT_MOD_VENDOR_NVIDIA) { +		if ((modifier & DRM_FORMAT_MOD_NVIDIA_SECTOR_LAYOUT) == 0) +			tiling->sector_layout = TEGRA_BO_SECTOR_LAYOUT_TEGRA; +		else +			tiling->sector_layout = TEGRA_BO_SECTOR_LAYOUT_GPU; + +		modifier &= ~DRM_FORMAT_MOD_NVIDIA_SECTOR_LAYOUT; +	} +  	switch (modifier) {  	case DRM_FORMAT_MOD_LINEAR:  		tiling->mode = TEGRA_BO_TILING_MODE_PITCH; @@ -86,6 +95,7 @@ int tegra_fb_get_tiling(struct drm_framebuffer *framebuffer,  		break;  	default: +		DRM_DEBUG_KMS("unknown format modifier: %llx\n", modifier);  		return -EINVAL;  	} | 
