diff options
| author | Ilia Mirkin <imirkin@alum.mit.edu> | 2013-11-15 11:26:43 -0500 | 
|---|---|---|
| committer | Ben Skeggs <bskeggs@redhat.com> | 2013-12-03 23:28:54 +1000 | 
| commit | efffa9841cf42ae8350d421070cea962b063df8c (patch) | |
| tree | 7460826b8b488af212f072091c73ba5b6edc4ba4 /drivers | |
| parent | 050828e9563d03cbaab950c16ae4aebaa02ff0de (diff) | |
| download | linux-efffa9841cf42ae8350d421070cea962b063df8c.tar.bz2 | |
drm/nv10/plane: some chipsets don't support NV12
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/gpu/drm/nouveau/dispnv04/overlay.c | 15 | 
1 files changed, 13 insertions, 2 deletions
diff --git a/drivers/gpu/drm/nouveau/dispnv04/overlay.c b/drivers/gpu/drm/nouveau/dispnv04/overlay.c index c14afb794147..32e7064b819b 100644 --- a/drivers/gpu/drm/nouveau/dispnv04/overlay.c +++ b/drivers/gpu/drm/nouveau/dispnv04/overlay.c @@ -58,8 +58,8 @@ struct nouveau_plane {  };  static uint32_t formats[] = { -	DRM_FORMAT_NV12,  	DRM_FORMAT_UYVY, +	DRM_FORMAT_NV12,  };  /* Sine can be approximated with @@ -254,14 +254,25 @@ nv10_overlay_init(struct drm_device *device)  {  	struct nouveau_device *dev = nouveau_dev(device);  	struct nouveau_plane *plane = kzalloc(sizeof(struct nouveau_plane), GFP_KERNEL); +	int num_formats = ARRAY_SIZE(formats);  	int ret;  	if (!plane)  		return; +	switch (dev->chipset) { +	case 0x10: +	case 0x11: +	case 0x15: +	case 0x1a: +	case 0x20: +		num_formats = 1; +		break; +	} +  	ret = drm_plane_init(device, &plane->base, 3 /* both crtc's */,  			     &nv10_plane_funcs, -			     formats, ARRAY_SIZE(formats), false); +			     formats, num_formats, false);  	if (ret)  		goto err;  |