Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f01b7ba0 authored by Michel Dänzer's avatar Michel Dänzer Committed by Dave Airlie
Browse files

vmwgfx: Add support for depth 8

parent 654a4ef0
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -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;
+11 −0
Original line number Original line Diff line number Diff line
@@ -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);