Lines Matching defs:reply_q
1539 * @reply_q: per IRQ's reply queue object.
1545 _base_process_reply_queue(struct adapter_reply_queue *reply_q)
1553 u8 msix_index = reply_q->msix_index;
1554 struct MPT3SAS_ADAPTER *ioc = reply_q->ioc;
1559 if (!atomic_add_unless(&reply_q->busy, 1, 1))
1562 rpf = &reply_q->reply_post_free[reply_q->reply_post_host_index];
1566 atomic_dec(&reply_q->busy);
1633 reply_q->reply_post_host_index =
1634 (reply_q->reply_post_host_index ==
1636 reply_q->reply_post_host_index + 1;
1638 reply_q->reply_post_free[reply_q->reply_post_host_index].
1648 writel(reply_q->reply_post_host_index |
1653 writel(reply_q->reply_post_host_index |
1658 if (!reply_q->irq_poll_scheduled) {
1659 reply_q->irq_poll_scheduled = true;
1660 irq_poll_sched(&reply_q->irqpoll);
1662 atomic_dec(&reply_q->busy);
1667 if (!reply_q->reply_post_host_index)
1668 rpf = reply_q->reply_post_free;
1676 atomic_dec(&reply_q->busy);
1681 writel(reply_q->reply_post_host_index,
1683 atomic_dec(&reply_q->busy);
1703 writel(reply_q->reply_post_host_index | ((msix_index & 7) <<
1707 writel(reply_q->reply_post_host_index | (msix_index <<
1710 atomic_dec(&reply_q->busy);
1724 struct adapter_reply_queue *reply_q = bus_id;
1725 struct MPT3SAS_ADAPTER *ioc = reply_q->ioc;
1729 if (reply_q->irq_poll_scheduled)
1731 return ((_base_process_reply_queue(reply_q) > 0) ?
1745 struct adapter_reply_queue *reply_q;
1748 reply_q = container_of(irqpoll, struct adapter_reply_queue,
1750 if (reply_q->irq_line_enable) {
1751 disable_irq_nosync(reply_q->os_irq);
1752 reply_q->irq_line_enable = false;
1754 num_entries = _base_process_reply_queue(reply_q);
1757 reply_q->irq_poll_scheduled = false;
1758 reply_q->irq_line_enable = true;
1759 enable_irq(reply_q->os_irq);
1766 _base_process_reply_queue(reply_q);
1781 struct adapter_reply_queue *reply_q, *next;
1786 list_for_each_entry_safe(reply_q, next, &ioc->reply_queue_list, list) {
1787 irq_poll_init(&reply_q->irqpoll,
1789 reply_q->irq_poll_scheduled = false;
1790 reply_q->irq_line_enable = true;
1791 reply_q->os_irq = pci_irq_vector(ioc->pdev,
1792 reply_q->msix_index);
1821 struct adapter_reply_queue *reply_q;
1829 list_for_each_entry(reply_q, &ioc->reply_queue_list, list) {
1834 if (reply_q->msix_index == 0)
1836 synchronize_irq(pci_irq_vector(ioc->pdev, reply_q->msix_index));
1837 if (reply_q->irq_poll_scheduled) {
1841 irq_poll_disable(&reply_q->irqpoll);
1842 irq_poll_enable(&reply_q->irqpoll);
1846 if (reply_q->irq_poll_scheduled) {
1847 reply_q->irq_poll_scheduled = false;
1848 reply_q->irq_line_enable = true;
1849 enable_irq(reply_q->os_irq);
1854 _base_process_reply_queue(reply_q);
2933 struct adapter_reply_queue *reply_q, *next;
2938 list_for_each_entry_safe(reply_q, next, &ioc->reply_queue_list, list) {
2939 list_del(&reply_q->list);
2942 reply_q->msix_index), NULL);
2943 free_irq(pci_irq_vector(ioc->pdev, reply_q->msix_index),
2944 reply_q);
2945 kfree(reply_q);
2960 struct adapter_reply_queue *reply_q;
2963 reply_q = kzalloc(sizeof(struct adapter_reply_queue), GFP_KERNEL);
2964 if (!reply_q) {
2969 reply_q->ioc = ioc;
2970 reply_q->msix_index = index;
2972 atomic_set(&reply_q->busy, 0);
2974 snprintf(reply_q->name, MPT_NAME_LENGTH, "%s%d-msix%d",
2977 snprintf(reply_q->name, MPT_NAME_LENGTH, "%s%d",
2980 IRQF_SHARED, reply_q->name, reply_q);
2983 reply_q->name, pci_irq_vector(pdev, index));
2984 kfree(reply_q);
2988 INIT_LIST_HEAD(&reply_q->list);
2989 list_add_tail(&reply_q->list, &ioc->reply_queue_list);
3006 struct adapter_reply_queue *reply_q;
3038 list_for_each_entry(reply_q, &ioc->reply_queue_list, list) {
3041 if (reply_q->msix_index < ioc->high_iops_queues)
3045 reply_q->msix_index);
3048 reply_q->msix_index);
3055 ioc->cpu_msix_table[cpu] = reply_q->msix_index;
3066 list_for_each_entry(reply_q, &ioc->reply_queue_list, list) {
3069 if (reply_q->msix_index < ioc->high_iops_queues)
3079 ioc->cpu_msix_table[cpu] = reply_q->msix_index;
3355 struct adapter_reply_queue *reply_q;
3470 list_for_each_entry(reply_q, &ioc->reply_queue_list, list)
3472 reply_q->name,
3474 pci_irq_vector(ioc->pdev, reply_q->msix_index));
7101 struct adapter_reply_queue *reply_q;
7173 list_for_each_entry(reply_q, &ioc->reply_queue_list, list) {
7179 reply_q->reply_post_free =
7182 reply_q->reply_post_free = reply_post_free_contig;
7186 reply_q->reply_post_host_index = 0;
7188 reply_q->reply_post_free[i].Words =
7215 list_for_each_entry(reply_q, &ioc->reply_queue_list, list) {
7217 writel((reply_q->msix_index & 7)<<
7219 ioc->replyPostRegisterIndex[reply_q->msix_index/8]);
7221 writel(reply_q->msix_index <<