qxl: add ring prep code for s/r
This prepare the ring code for s/r additions, the release ring will need reinitialising. Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
c9fdda2a2b
commit
1e209117db
|
@ -49,6 +49,11 @@ void qxl_ring_free(struct qxl_ring *ring)
|
|||
kfree(ring);
|
||||
}
|
||||
|
||||
void qxl_ring_init_hdr(struct qxl_ring *ring)
|
||||
{
|
||||
ring->ring->header.notify_on_prod = ring->n_elements;
|
||||
}
|
||||
|
||||
struct qxl_ring *
|
||||
qxl_ring_create(struct qxl_ring_header *header,
|
||||
int element_size,
|
||||
|
@ -69,7 +74,7 @@ qxl_ring_create(struct qxl_ring_header *header,
|
|||
ring->prod_notify = prod_notify;
|
||||
ring->push_event = push_event;
|
||||
if (set_prod_notify)
|
||||
header->notify_on_prod = ring->n_elements;
|
||||
qxl_ring_init_hdr(ring);
|
||||
spin_lock_init(&ring->lock);
|
||||
return ring;
|
||||
}
|
||||
|
@ -87,7 +92,7 @@ static int qxl_check_header(struct qxl_ring *ring)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static int qxl_check_idle(struct qxl_ring *ring)
|
||||
int qxl_check_idle(struct qxl_ring *ring)
|
||||
{
|
||||
int ret;
|
||||
struct qxl_ring_header *header = &(ring->ring->header);
|
||||
|
|
|
@ -340,6 +340,8 @@ struct qxl_ring *qxl_ring_create(struct qxl_ring_header *header,
|
|||
bool set_prod_notify,
|
||||
wait_queue_head_t *push_event);
|
||||
void qxl_ring_free(struct qxl_ring *ring);
|
||||
void qxl_ring_init_hdr(struct qxl_ring *ring);
|
||||
int qxl_check_idle(struct qxl_ring *ring);
|
||||
|
||||
static inline void *
|
||||
qxl_fb_virtual_address(struct qxl_device *qdev, unsigned long physical)
|
||||
|
|
Loading…
Reference in a new issue