static void pnpacpi_encode_ext_irq(struct pnp_dev *dev, struct acpi_resource *resource, struct resource *p) { struct acpi_resource_extended_irq *extended_irq = &resource->data.extended_irq; int triggering, polarity, shareable; if (!pnp_resource_enabled(p)) { extended_irq->interrupt_count = 0; pnp_dbg(&dev->dev, " encode extended irq (%s)\n", p ? "disabled" : "missing"); return; } decode_irq_flags(dev, p->flags, &triggering, &polarity, &shareable); extended_irq->producer_consumer = ACPI_CONSUMER; extended_irq->triggering = triggering; extended_irq->polarity = polarity; extended_irq->sharable = shareable; extended_irq->interrupt_count = 1; extended_irq->interrupts[0] = p->start; pnp_dbg(&dev->dev, " encode irq %d %s %s %s\n", (int) p->start, triggering == ACPI_LEVEL_SENSITIVE ? "level" : "edge", polarity == ACPI_ACTIVE_LOW ? "low" : "high", extended_irq->sharable == ACPI_SHARED ? "shared" : "exclusive"); }
static void pnpacpi_encode_irq(struct pnp_dev *dev, struct acpi_resource *resource, struct resource *p) { struct acpi_resource_irq *irq = &resource->data.irq; int triggering, polarity, shareable; if (!pnp_resource_enabled(p)) { irq->interrupt_count = 0; pnp_dbg(&dev->dev, " encode irq (%s)\n", p ? "disabled" : "missing"); return; } decode_irq_flags(dev, p->flags, &triggering, &polarity, &shareable); irq->triggering = triggering; irq->polarity = polarity; irq->sharable = shareable; irq->interrupt_count = 1; irq->interrupts[0] = p->start; pnp_dbg(&dev->dev, " encode irq %d %s %s %s (%d-byte descriptor)\n", (int) p->start, triggering == ACPI_LEVEL_SENSITIVE ? "level" : "edge", polarity == ACPI_ACTIVE_LOW ? "low" : "high", irq->sharable == ACPI_SHARED ? "shared" : "exclusive", irq->descriptor_length); }
static void pnpacpi_encode_irq(struct acpi_resource *resource, struct resource *p) { int triggering, polarity; decode_irq_flags(p->flags & IORESOURCE_BITS, &triggering, &polarity); resource->data.irq.triggering = triggering; resource->data.irq.polarity = polarity; if (triggering == ACPI_EDGE_SENSITIVE) resource->data.irq.sharable = ACPI_EXCLUSIVE; else resource->data.irq.sharable = ACPI_SHARED; resource->data.irq.interrupt_count = 1; resource->data.irq.interrupts[0] = p->start; }
static void pnpacpi_encode_irq(struct acpi_resource *resource, struct resource *p) { int edge_level, active_high_low; decode_irq_flags(p->flags & IORESOURCE_BITS, &edge_level, &active_high_low); resource->id = ACPI_RSTYPE_IRQ; resource->length = sizeof(struct acpi_resource); resource->data.irq.edge_level = edge_level; resource->data.irq.active_high_low = active_high_low; if (edge_level == ACPI_EDGE_SENSITIVE) resource->data.irq.shared_exclusive = ACPI_EXCLUSIVE; else resource->data.irq.shared_exclusive = ACPI_SHARED; resource->data.irq.number_of_interrupts = 1; resource->data.irq.interrupts[0] = p->start; }