Enqueuing work onto this workqueue is actually very easy: use the INIT_WORK() macro! This macro takes two parameters:
#include <linux/workqueue.h>
INIT_WORK(struct work_struct *_work, work_func_t _func);
The work_struct structure is the workhorse structure for work queues (from the module/driver author's point of view, at least); you are to allocate memory to it and pass the pointer as the first parameter. The second parameter to INIT_WORK() is a pointer to the workqueue callback function – the function that will be consumed by the worker thread(s) of the workqueue! work_func_t is a typedef that specifies the signature for this function, which is void (*work_func_t)(struct work_struct *work).