Lines Matching refs:mq
121 void (*callback) (struct mapleq *mq),
139 struct mapleq *mq;
142 mq = mdev->mq;
143 kmem_cache_free(maple_queue_cache, mq->recvbuf);
144 kfree(mq);
171 mdev->mq->command = command;
172 mdev->mq->length = length;
175 mdev->mq->sendbuf = sendbuf;
178 list_add_tail(&mdev->mq->list, &maple_waitq);
187 struct mapleq *mq;
189 mq = kzalloc(sizeof(*mq), GFP_KERNEL);
190 if (!mq)
193 INIT_LIST_HEAD(&mq->list);
194 mq->dev = mdev;
195 mq->recvbuf = kmem_cache_zalloc(maple_queue_cache, GFP_KERNEL);
196 if (!mq->recvbuf)
198 mq->recvbuf->buf = &((mq->recvbuf->bufx)[0]);
200 return mq;
203 kfree(mq);
224 mdev->mq = maple_allocq(mdev);
226 if (!mdev->mq) {
238 kmem_cache_free(maple_queue_cache, mdev->mq->recvbuf);
239 kfree(mdev->mq);
246 static void maple_build_block(struct mapleq *mq)
249 unsigned long *lsendbuf = mq->sendbuf;
251 port = mq->dev->port & 3;
252 unit = mq->dev->unit;
253 len = mq->length;
261 *maple_sendptr++ = virt_to_phys(mq->recvbuf->buf);
263 mq->command | (to << 8) | (from << 16) | (len << 24);
272 struct mapleq *mq, *nmq;
292 list_for_each_entry_safe(mq, nmq, &maple_waitq, list) {
293 maple_build_block(mq);
294 list_del_init(&mq->list);
295 list_add_tail(&mq->list, &maple_sentq);
336 recvbuf = mdev->mq->recvbuf->buf;
632 struct mapleq *mq, *nmq;
641 list_for_each_entry_safe(mq, nmq, &maple_sentq, list) {
642 mdev = mq->dev;
643 recvbuf = mq->recvbuf->buf;
647 kfree(mq->sendbuf);
648 list_del_init(&mq->list);
661 mdev->callback(mq);