IB/core: Add support for modify CQ

Add support for modifying CQ parameters for controlling event
generation moderation.

Signed-off-by: Eli Cohen <eli@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
Eli Cohen 2008-04-16 21:09:33 -07:00 committed by Roland Dreier
parent 82c24c18af
commit 2dd5716227
2 changed files with 18 additions and 0 deletions

View file

@ -630,6 +630,13 @@ struct ib_cq *ib_create_cq(struct ib_device *device,
} }
EXPORT_SYMBOL(ib_create_cq); EXPORT_SYMBOL(ib_create_cq);
int ib_modify_cq(struct ib_cq *cq, u16 cq_count, u16 cq_period)
{
return cq->device->modify_cq ?
cq->device->modify_cq(cq, cq_count, cq_period) : -ENOSYS;
}
EXPORT_SYMBOL(ib_modify_cq);
int ib_destroy_cq(struct ib_cq *cq) int ib_destroy_cq(struct ib_cq *cq)
{ {
if (atomic_read(&cq->usecnt)) if (atomic_read(&cq->usecnt))

View file

@ -987,6 +987,8 @@ struct ib_device {
int comp_vector, int comp_vector,
struct ib_ucontext *context, struct ib_ucontext *context,
struct ib_udata *udata); struct ib_udata *udata);
int (*modify_cq)(struct ib_cq *cq, u16 cq_count,
u16 cq_period);
int (*destroy_cq)(struct ib_cq *cq); int (*destroy_cq)(struct ib_cq *cq);
int (*resize_cq)(struct ib_cq *cq, int cqe, int (*resize_cq)(struct ib_cq *cq, int cqe,
struct ib_udata *udata); struct ib_udata *udata);
@ -1391,6 +1393,15 @@ struct ib_cq *ib_create_cq(struct ib_device *device,
*/ */
int ib_resize_cq(struct ib_cq *cq, int cqe); int ib_resize_cq(struct ib_cq *cq, int cqe);
/**
* ib_modify_cq - Modifies moderation params of the CQ
* @cq: The CQ to modify.
* @cq_count: number of CQEs that will trigger an event
* @cq_period: max period of time in usec before triggering an event
*
*/
int ib_modify_cq(struct ib_cq *cq, u16 cq_count, u16 cq_period);
/** /**
* ib_destroy_cq - Destroys the specified CQ. * ib_destroy_cq - Destroys the specified CQ.
* @cq: The CQ to destroy. * @cq: The CQ to destroy.