Lines Matching defs:txgbe

141 static int txgbe_request_gpio_irq(struct txgbe *txgbe)
143 txgbe->gpio_irq = irq_find_mapping(txgbe->misc.domain, TXGBE_IRQ_GPIO);
144 return request_threaded_irq(txgbe->gpio_irq, NULL,
146 IRQF_ONESHOT, "txgbe-gpio-irq", txgbe);
149 static int txgbe_request_link_irq(struct txgbe *txgbe)
151 txgbe->link_irq = irq_find_mapping(txgbe->misc.domain, TXGBE_IRQ_LINK);
152 return request_threaded_irq(txgbe->link_irq, NULL,
154 IRQF_ONESHOT, "txgbe-link-irq", txgbe);
158 .name = "txgbe-misc-irq",
165 struct txgbe *txgbe = d->host_data;
167 irq_set_chip_data(irq, txgbe);
168 irq_set_chip(irq, &txgbe->misc.chip);
181 struct txgbe *txgbe = data;
182 struct wx *wx = txgbe->wx;
189 sub_irq = irq_find_mapping(txgbe->misc.domain, TXGBE_IRQ_GPIO);
195 sub_irq = irq_find_mapping(txgbe->misc.domain, TXGBE_IRQ_LINK);
204 static void txgbe_del_irq_domain(struct txgbe *txgbe)
208 for (hwirq = 0; hwirq < txgbe->misc.nirqs; hwirq++) {
209 virq = irq_find_mapping(txgbe->misc.domain, hwirq);
213 irq_domain_remove(txgbe->misc.domain);
216 void txgbe_free_misc_irq(struct txgbe *txgbe)
218 free_irq(txgbe->gpio_irq, txgbe);
219 free_irq(txgbe->link_irq, txgbe);
220 free_irq(txgbe->misc.irq, txgbe);
221 txgbe_del_irq_domain(txgbe);
224 int txgbe_setup_misc_irq(struct txgbe *txgbe)
226 struct wx *wx = txgbe->wx;
229 txgbe->misc.nirqs = 2;
230 txgbe->misc.domain = irq_domain_add_simple(NULL, txgbe->misc.nirqs, 0,
231 &txgbe_misc_irq_domain_ops, txgbe);
232 if (!txgbe->misc.domain)
235 for (hwirq = 0; hwirq < txgbe->misc.nirqs; hwirq++)
236 irq_create_mapping(txgbe->misc.domain, hwirq);
238 txgbe->misc.chip = txgbe_irq_chip;
240 txgbe->misc.irq = wx->msix_entry->vector;
242 txgbe->misc.irq = wx->pdev->irq;
244 err = request_threaded_irq(txgbe->misc.irq, NULL,
247 wx->netdev->name, txgbe);
251 err = txgbe_request_gpio_irq(txgbe);
255 err = txgbe_request_link_irq(txgbe);
262 free_irq(txgbe->gpio_irq, txgbe);
264 free_irq(txgbe->misc.irq, txgbe);
266 txgbe_del_irq_domain(txgbe);