drm/qxl: use surface_id 0 for primary surface on all monitors
authorDavid Mansfield <spice@dm.cobite.com>
Wed, 4 Jun 2014 02:12:15 +0000 (12:12 +1000)
committerDave Airlie <airlied@redhat.com>
Wed, 4 Jun 2014 02:13:22 +0000 (12:13 +1000)
commit52571ad5f4c57067ac593a6bdb1f7a35ed032d27
tree0d3ced34dd9fea55f97bc26a7b6553b5bebefaa1
parentfa7f517cb26eb1a1a1f0baffcced39f6c3ec3337
drm/qxl: use surface_id 0 for primary surface on all monitors

spice-server and downstream code expect that the primary surface
will always have surface_id = 0, while in reality, once allocated, the
surface_id in qxl.ko is NEVER 0.  In a dual head environment, all
monitors render portions of the primary surface.

However, when the monitor config events are generated and sent,
the primary surface is only mapped to the correct identifier
(i.e. 0) for the primary head (where crtc index is 0).

The fix is to look at the "primary" flag in the bo and always
use id 0, irrespective of which head is being configured.

[airlied: qxl hw really needs to be fixed to scanout surfaces]

Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/qxl/qxl_display.c