Lines Matching refs:irq

77  * later even the link is disable. Instead, we just repick the active irq
93 struct acpi_pci_link_irq irq;
119 struct acpi_resource_irq *p = &resource->data.irq;
134 link->irq.possible[i] = p->interrupts[i];
135 link->irq.possible_count++;
137 link->irq.triggering = p->triggering;
138 link->irq.polarity = p->polarity;
139 link->irq.resource_type = ACPI_RESOURCE_TYPE_IRQ;
160 link->irq.possible[i] = p->interrupts[i];
161 link->irq.possible_count++;
163 link->irq.triggering = p->triggering;
164 link->irq.polarity = p->polarity;
165 link->irq.resource_type = ACPI_RESOURCE_TYPE_EXTENDED_IRQ;
190 link->irq.possible_count));
198 int *irq = context;
206 struct acpi_resource_irq *p = &resource->data.irq;
216 *irq = p->interrupts[0];
232 *irq = p->interrupts[0];
246 * Run _CRS and set link->irq.active
256 int irq = 0;
258 link->irq.active = 0;
280 acpi_pci_link_check_current, &irq);
287 if (acpi_strict && !irq) {
292 link->irq.active = irq;
294 ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Link at IRQ %d \n", link->irq.active));
300 static int acpi_pci_link_set(struct acpi_pci_link *link, int irq)
310 if (!irq)
320 switch (link->irq.resource_type) {
324 resource->res.data.irq.triggering = link->irq.triggering;
325 resource->res.data.irq.polarity =
326 link->irq.polarity;
327 if (link->irq.triggering == ACPI_EDGE_SENSITIVE)
328 resource->res.data.irq.sharable =
331 resource->res.data.irq.sharable = ACPI_SHARED;
332 resource->res.data.irq.interrupt_count = 1;
333 resource->res.data.irq.interrupts[0] = irq;
342 link->irq.triggering;
344 link->irq.polarity;
345 if (link->irq.triggering == ACPI_EDGE_SENSITIVE)
346 resource->res.data.irq.sharable =
349 resource->res.data.irq.sharable = ACPI_SHARED;
351 resource->res.data.extended_irq.interrupts[0] = irq;
355 printk(KERN_ERR PREFIX "Invalid Resource_type %d\n", link->irq.resource_type);
385 /* Query _CRS, set link->irq.active */
393 * set link->irq.active
395 if (link->irq.active != irq) {
403 acpi_device_bid(link->device), link->irq.active, irq);
404 link->irq.active = irq;
407 ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Set IRQ %d\n", link->irq.active));
493 if (link->irq.possible_count) {
496 link->irq.possible_count;
498 for (i = 0; i < link->irq.possible_count; i++) {
499 if (link->irq.possible[i] < ACPI_MAX_ISA_IRQ)
500 acpi_irq_penalty[link->irq.
505 } else if (link->irq.active) {
506 acpi_irq_penalty[link->irq.active] +=
519 int irq;
522 if (link->irq.initialized) {
525 acpi_pci_link_set(link, link->irq.active);
532 for (i = 0; i < link->irq.possible_count; ++i) {
533 if (link->irq.active == link->irq.possible[i])
539 if (i == link->irq.possible_count) {
542 " in _PRS\n", link->irq.active);
543 link->irq.active = 0;
549 if (link->irq.active)
550 irq = link->irq.active;
552 irq = link->irq.possible[link->irq.possible_count - 1];
554 if (acpi_irq_balance || !link->irq.active) {
559 for (i = (link->irq.possible_count - 1); i >= 0; i--) {
560 if (acpi_irq_penalty[irq] >
561 acpi_irq_penalty[link->irq.possible[i]])
562 irq = link->irq.possible[i];
567 if (acpi_pci_link_set(link, irq)) {
574 acpi_irq_penalty[link->irq.active] += PIRQ_PENALTY_PCI_USING;
577 acpi_device_bid(link->device), link->irq.active);
580 link->irq.initialized = 1;
620 if (!link->irq.active) {
629 *triggering = link->irq.triggering;
631 *polarity = link->irq.polarity;
637 return (link->irq.active);
641 * We don't change link's irq information here. After it is reenabled, we
663 if (!link->irq.initialized) {
688 return (link->irq.active);
716 /* query and set link->irq.active */
721 for (i = 0; i < link->irq.possible_count; i++) {
722 if (link->irq.active == link->irq.possible[i]) {
723 printk(" *%d", link->irq.possible[i]);
726 printk(" %d", link->irq.possible[i]);
732 printk(" *%d", link->irq.active);
754 if (link->refcnt && link->irq.active && link->irq.initialized)
755 return (acpi_pci_link_set(link, link->irq.active));
792 int irq;
794 retval = get_option(&str, &irq);
799 if (irq < 0)
802 if (irq >= ARRAY_SIZE(acpi_irq_penalty))
806 acpi_irq_penalty[irq] += PIRQ_PENALTY_ISA_USED;
808 acpi_irq_penalty[irq] = PIRQ_PENALTY_PCI_AVAILABLE;
823 void acpi_penalize_isa_irq(int irq, int active)
825 if (irq >= 0 && irq < ARRAY_SIZE(acpi_irq_penalty)) {
827 acpi_irq_penalty[irq] += PIRQ_PENALTY_ISA_USED;
829 acpi_irq_penalty[irq] += PIRQ_PENALTY_PCI_USING;