vmwgfx: Add support for depth 8
Signed-off-by: Michel Dänzer <daenzer@vmware.com> Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
committed by
Dave Airlie
parent
654a4ef07a
commit
f01b7ba0eb
@@ -567,6 +567,9 @@ static int vmw_kms_new_framebuffer_surface(struct vmw_private *dev_priv,
|
|||||||
case 15:
|
case 15:
|
||||||
format = SVGA3D_A1R5G5B5;
|
format = SVGA3D_A1R5G5B5;
|
||||||
break;
|
break;
|
||||||
|
case 8:
|
||||||
|
format = SVGA3D_LUMINANCE8;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
DRM_ERROR("Invalid color depth: %d\n", mode_cmd->depth);
|
DRM_ERROR("Invalid color depth: %d\n", mode_cmd->depth);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
@@ -83,6 +83,15 @@ static void vmw_ldu_crtc_gamma_set(struct drm_crtc *crtc,
|
|||||||
u16 *r, u16 *g, u16 *b,
|
u16 *r, u16 *g, u16 *b,
|
||||||
uint32_t start, uint32_t size)
|
uint32_t start, uint32_t size)
|
||||||
{
|
{
|
||||||
|
struct vmw_private *dev_priv = vmw_priv(crtc->dev);
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < size; i++) {
|
||||||
|
DRM_DEBUG("%d r/g/b = 0x%04x / 0x%04x / 0x%04x\n", i, r[i], g[i], b[i]);
|
||||||
|
vmw_write(dev_priv, SVGA_PALETTE_BASE + i * 3 + 0, r[i] >> 8);
|
||||||
|
vmw_write(dev_priv, SVGA_PALETTE_BASE + i * 3 + 1, g[i] >> 8);
|
||||||
|
vmw_write(dev_priv, SVGA_PALETTE_BASE + i * 3 + 2, b[i] >> 8);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void vmw_ldu_crtc_destroy(struct drm_crtc *crtc)
|
static void vmw_ldu_crtc_destroy(struct drm_crtc *crtc)
|
||||||
@@ -547,6 +556,8 @@ static int vmw_ldu_init(struct vmw_private *dev_priv, unsigned unit)
|
|||||||
|
|
||||||
drm_crtc_init(dev, crtc, &vmw_legacy_crtc_funcs);
|
drm_crtc_init(dev, crtc, &vmw_legacy_crtc_funcs);
|
||||||
|
|
||||||
|
drm_mode_crtc_set_gamma_size(crtc, 256);
|
||||||
|
|
||||||
drm_connector_attach_property(connector,
|
drm_connector_attach_property(connector,
|
||||||
dev->mode_config.dirty_info_property,
|
dev->mode_config.dirty_info_property,
|
||||||
1);
|
1);
|
||||||
|
Reference in New Issue
Block a user