mirror of
https://github.com/torvalds/linux
synced 2024-09-29 07:50:45 +00:00
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);
|
kfree(ring);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void qxl_ring_init_hdr(struct qxl_ring *ring)
|
||||||
|
{
|
||||||
|
ring->ring->header.notify_on_prod = ring->n_elements;
|
||||||
|
}
|
||||||
|
|
||||||
struct qxl_ring *
|
struct qxl_ring *
|
||||||
qxl_ring_create(struct qxl_ring_header *header,
|
qxl_ring_create(struct qxl_ring_header *header,
|
||||||
int element_size,
|
int element_size,
|
||||||
|
@ -69,7 +74,7 @@ qxl_ring_create(struct qxl_ring_header *header,
|
||||||
ring->prod_notify = prod_notify;
|
ring->prod_notify = prod_notify;
|
||||||
ring->push_event = push_event;
|
ring->push_event = push_event;
|
||||||
if (set_prod_notify)
|
if (set_prod_notify)
|
||||||
header->notify_on_prod = ring->n_elements;
|
qxl_ring_init_hdr(ring);
|
||||||
spin_lock_init(&ring->lock);
|
spin_lock_init(&ring->lock);
|
||||||
return ring;
|
return ring;
|
||||||
}
|
}
|
||||||
|
@ -87,7 +92,7 @@ static int qxl_check_header(struct qxl_ring *ring)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int qxl_check_idle(struct qxl_ring *ring)
|
int qxl_check_idle(struct qxl_ring *ring)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
struct qxl_ring_header *header = &(ring->ring->header);
|
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,
|
bool set_prod_notify,
|
||||||
wait_queue_head_t *push_event);
|
wait_queue_head_t *push_event);
|
||||||
void qxl_ring_free(struct qxl_ring *ring);
|
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 *
|
static inline void *
|
||||||
qxl_fb_virtual_address(struct qxl_device *qdev, unsigned long physical)
|
qxl_fb_virtual_address(struct qxl_device *qdev, unsigned long physical)
|
||||||
|
|
Loading…
Reference in a new issue