Lines Matching defs:reply_q

1681  * @reply_q: per IRQ's reply queue object.
1687 _base_process_reply_queue(struct adapter_reply_queue *reply_q)
1695 u8 msix_index = reply_q->msix_index;
1696 struct MPT3SAS_ADAPTER *ioc = reply_q->ioc;
1701 if (!atomic_add_unless(&reply_q->busy, 1, 1))
1704 rpf = &reply_q->reply_post_free[reply_q->reply_post_host_index];
1708 atomic_dec(&reply_q->busy);
1775 reply_q->reply_post_host_index =
1776 (reply_q->reply_post_host_index ==
1778 reply_q->reply_post_host_index + 1;
1780 reply_q->reply_post_free[reply_q->reply_post_host_index].
1790 writel(reply_q->reply_post_host_index |
1795 writel(reply_q->reply_post_host_index |
1800 if (!reply_q->is_iouring_poll_q &&
1801 !reply_q->irq_poll_scheduled) {
1802 reply_q->irq_poll_scheduled = true;
1803 irq_poll_sched(&reply_q->irqpoll);
1805 atomic_dec(&reply_q->busy);
1810 if (!reply_q->reply_post_host_index)
1811 rpf = reply_q->reply_post_free;
1819 atomic_dec(&reply_q->busy);
1824 writel(reply_q->reply_post_host_index,
1826 atomic_dec(&reply_q->busy);
1846 writel(reply_q->reply_post_host_index | ((msix_index & 7) <<
1850 writel(reply_q->reply_post_host_index | (msix_index <<
1853 atomic_dec(&reply_q->busy);
1868 struct adapter_reply_queue *reply_q;
1876 reply_q = ioc->io_uring_poll_queues[qid].reply_q;
1878 num_entries = _base_process_reply_queue(reply_q);
1894 struct adapter_reply_queue *reply_q = bus_id;
1895 struct MPT3SAS_ADAPTER *ioc = reply_q->ioc;
1899 if (reply_q->irq_poll_scheduled)
1901 return ((_base_process_reply_queue(reply_q) > 0) ?
1915 struct adapter_reply_queue *reply_q;
1918 reply_q = container_of(irqpoll, struct adapter_reply_queue,
1920 if (reply_q->irq_line_enable) {
1921 disable_irq_nosync(reply_q->os_irq);
1922 reply_q->irq_line_enable = false;
1924 num_entries = _base_process_reply_queue(reply_q);
1927 reply_q->irq_poll_scheduled = false;
1928 reply_q->irq_line_enable = true;
1929 enable_irq(reply_q->os_irq);
1936 _base_process_reply_queue(reply_q);
1951 struct adapter_reply_queue *reply_q, *next;
1956 list_for_each_entry_safe(reply_q, next, &ioc->reply_queue_list, list) {
1957 if (reply_q->is_iouring_poll_q)
1959 irq_poll_init(&reply_q->irqpoll,
1961 reply_q->irq_poll_scheduled = false;
1962 reply_q->irq_line_enable = true;
1963 reply_q->os_irq = pci_irq_vector(ioc->pdev,
1964 reply_q->msix_index);
1993 struct adapter_reply_queue *reply_q;
2001 list_for_each_entry(reply_q, &ioc->reply_queue_list, list) {
2006 if (reply_q->msix_index == 0)
2009 if (reply_q->is_iouring_poll_q) {
2010 _base_process_reply_queue(reply_q);
2014 synchronize_irq(pci_irq_vector(ioc->pdev, reply_q->msix_index));
2015 if (reply_q->irq_poll_scheduled) {
2019 irq_poll_disable(&reply_q->irqpoll);
2020 irq_poll_enable(&reply_q->irqpoll);
2024 if (reply_q->irq_poll_scheduled) {
2025 reply_q->irq_poll_scheduled = false;
2026 reply_q->irq_line_enable = true;
2027 enable_irq(reply_q->os_irq);
2032 _base_process_reply_queue(reply_q);
3101 struct adapter_reply_queue *reply_q, *next;
3106 list_for_each_entry_safe(reply_q, next, &ioc->reply_queue_list, list) {
3107 list_del(&reply_q->list);
3108 if (reply_q->is_iouring_poll_q) {
3109 kfree(reply_q);
3114 irq = pci_irq_vector(ioc->pdev, reply_q->msix_index);
3117 free_irq(pci_irq_vector(ioc->pdev, reply_q->msix_index),
3118 reply_q);
3119 kfree(reply_q);
3134 struct adapter_reply_queue *reply_q;
3137 reply_q = kzalloc(sizeof(struct adapter_reply_queue), GFP_KERNEL);
3138 if (!reply_q) {
3143 reply_q->ioc = ioc;
3144 reply_q->msix_index = index;
3146 atomic_set(&reply_q->busy, 0);
3150 snprintf(reply_q->name, MPT_NAME_LENGTH, "%s%d-mq-poll%d",
3152 reply_q->is_iouring_poll_q = 1;
3153 ioc->io_uring_poll_queues[qid].reply_q = reply_q;
3159 snprintf(reply_q->name, MPT_NAME_LENGTH, "%s%d-msix%d",
3162 snprintf(reply_q->name, MPT_NAME_LENGTH, "%s%d",
3165 IRQF_SHARED, reply_q->name, reply_q);
3168 reply_q->name, pci_irq_vector(pdev, index));
3169 kfree(reply_q);
3173 INIT_LIST_HEAD(&reply_q->list);
3174 list_add_tail(&reply_q->list, &ioc->reply_queue_list);
3188 struct adapter_reply_queue *reply_q;
3222 list_for_each_entry(reply_q, &ioc->reply_queue_list, list) {
3225 if (reply_q->msix_index < ioc->high_iops_queues ||
3226 reply_q->msix_index >= ioc->iopoll_q_start_index)
3230 reply_q->msix_index);
3233 reply_q->msix_index);
3240 ioc->cpu_msix_table[cpu] = reply_q->msix_index;
3251 list_for_each_entry(reply_q, &ioc->reply_queue_list, list) {
3254 if (reply_q->msix_index < ioc->high_iops_queues ||
3255 reply_q->msix_index >= ioc->iopoll_q_start_index)
3265 ioc->cpu_msix_table[cpu] = reply_q->msix_index;
3612 struct adapter_reply_queue *reply_q;
3732 list_for_each_entry(reply_q, &ioc->reply_queue_list, list) {
3733 if (reply_q->msix_index >= ioc->iopoll_q_start_index) {
3735 reply_q->name, reply_q->msix_index);
3740 reply_q->name,
3742 pci_irq_vector(ioc->pdev, reply_q->msix_index));
8146 struct adapter_reply_queue *reply_q;
8218 list_for_each_entry(reply_q, &ioc->reply_queue_list, list) {
8224 reply_q->reply_post_free =
8227 reply_q->reply_post_free = reply_post_free_contig;
8231 reply_q->reply_post_host_index = 0;
8233 reply_q->reply_post_free[i].Words =
8260 list_for_each_entry(reply_q, &ioc->reply_queue_list, list) {
8262 writel((reply_q->msix_index & 7)<<
8264 ioc->replyPostRegisterIndex[reply_q->msix_index/8]);
8266 writel(reply_q->msix_index <<