Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 784f01d5 authored by Bjorn Helgaas's avatar Bjorn Helgaas Committed by Len Brown
Browse files

PNP: add struct pnp_resource



This patch adds a "struct pnp_resource".  This currently
contains only a struct resource, but we will soon need
additional PNP-specific information.

Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent 06cb58a6
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -26,9 +26,13 @@ void pnp_init_resource(struct resource *res);
#define PNP_MAX_IRQ		 2
#define PNP_MAX_DMA		 2

struct pnp_resource {
	struct resource res;
};

struct pnp_resource_table {
	struct resource port_resource[PNP_MAX_PORT];
	struct resource mem_resource[PNP_MAX_MEM];
	struct resource dma_resource[PNP_MAX_DMA];
	struct resource irq_resource[PNP_MAX_IRQ];
	struct pnp_resource port[PNP_MAX_PORT];
	struct pnp_resource mem[PNP_MAX_MEM];
	struct pnp_resource dma[PNP_MAX_DMA];
	struct pnp_resource irq[PNP_MAX_IRQ];
};
+8 −8
Original line number Diff line number Diff line
@@ -247,22 +247,22 @@ void pnp_init_resources(struct pnp_dev *dev)
	int idx;

	for (idx = 0; idx < PNP_MAX_IRQ; idx++) {
		res = &dev->res->irq_resource[idx];
		res = &dev->res->irq[idx].res;
		res->flags = IORESOURCE_IRQ;
		pnp_init_resource(res);
	}
	for (idx = 0; idx < PNP_MAX_DMA; idx++) {
		res = &dev->res->dma_resource[idx];
		res = &dev->res->dma[idx].res;
		res->flags = IORESOURCE_DMA;
		pnp_init_resource(res);
	}
	for (idx = 0; idx < PNP_MAX_PORT; idx++) {
		res = &dev->res->port_resource[idx];
		res = &dev->res->port[idx].res;
		res->flags = IORESOURCE_IO;
		pnp_init_resource(res);
	}
	for (idx = 0; idx < PNP_MAX_MEM; idx++) {
		res = &dev->res->mem_resource[idx];
		res = &dev->res->mem[idx].res;
		res->flags = IORESOURCE_MEM;
		pnp_init_resource(res);
	}
@@ -278,28 +278,28 @@ static void pnp_clean_resource_table(struct pnp_dev *dev)
	int idx;

	for (idx = 0; idx < PNP_MAX_IRQ; idx++) {
		res = &dev->res->irq_resource[idx];
		res = &dev->res->irq[idx].res;
		if (res->flags & IORESOURCE_AUTO) {
			res->flags = IORESOURCE_IRQ;
			pnp_init_resource(res);
		}
	}
	for (idx = 0; idx < PNP_MAX_DMA; idx++) {
		res = &dev->res->dma_resource[idx];
		res = &dev->res->dma[idx].res;
		if (res->flags & IORESOURCE_AUTO) {
			res->flags = IORESOURCE_DMA;
			pnp_init_resource(res);
		}
	}
	for (idx = 0; idx < PNP_MAX_PORT; idx++) {
		res = &dev->res->port_resource[idx];
		res = &dev->res->port[idx].res;
		if (res->flags & IORESOURCE_AUTO) {
			res->flags = IORESOURCE_IO;
			pnp_init_resource(res);
		}
	}
	for (idx = 0; idx < PNP_MAX_MEM; idx++) {
		res = &dev->res->mem_resource[idx];
		res = &dev->res->mem[idx].res;
		if (res->flags & IORESOURCE_AUTO) {
			res->flags = IORESOURCE_MEM;
			pnp_init_resource(res);
+4 −4
Original line number Diff line number Diff line
@@ -508,19 +508,19 @@ struct resource *pnp_get_resource(struct pnp_dev *dev,
	case IORESOURCE_IO:
		if (num >= PNP_MAX_PORT)
			return NULL;
		return &res->port_resource[num];
		return &res->port[num].res;
	case IORESOURCE_MEM:
		if (num >= PNP_MAX_MEM)
			return NULL;
		return &res->mem_resource[num];
		return &res->mem[num].res;
	case IORESOURCE_IRQ:
		if (num >= PNP_MAX_IRQ)
			return NULL;
		return &res->irq_resource[num];
		return &res->irq[num].res;
	case IORESOURCE_DMA:
		if (num >= PNP_MAX_DMA)
			return NULL;
		return &res->dma_resource[num];
		return &res->dma[num].res;
	}
	return NULL;
}