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

Commit 4ab55d8d authored by Bjorn Helgaas's avatar Bjorn Helgaas Committed by Len Brown
Browse files

PNP: remove more pnp_resource_table arguments



Stop passing around struct pnp_resource_table pointers.  In most cases,
the caller doesn't need to know how the resources are stored inside
the struct pnp_dev.

Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
Acked-By: default avatarRene Herman <rene.herman@gmail.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent 59284cb4
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -932,9 +932,9 @@ EXPORT_SYMBOL(isapnp_cfg_begin);
EXPORT_SYMBOL(isapnp_cfg_end);
EXPORT_SYMBOL(isapnp_write_byte);

static int isapnp_read_resources(struct pnp_dev *dev,
				 struct pnp_resource_table *res)
static int isapnp_read_resources(struct pnp_dev *dev)
{
	struct pnp_resource_table *res = &dev->res;
	int tmp, ret;

	dev->active = isapnp_read_byte(ISAPNP_CFG_ACTIVATE);
@@ -982,7 +982,7 @@ static int isapnp_get_resources(struct pnp_dev *dev)

	pnp_init_resource_table(&dev->res);
	isapnp_cfg_begin(dev->card->number, dev->number);
	ret = isapnp_read_resources(dev, &dev->res);
	ret = isapnp_read_resources(dev);
	isapnp_cfg_end();
	return ret;
}
+4 −7
Original line number Diff line number Diff line
@@ -77,8 +77,7 @@ static int pnpacpi_get_resources(struct pnp_dev *dev)
{
	acpi_status status;

	status = pnpacpi_parse_allocated_resource((acpi_handle) dev->data,
						  &dev->res);
	status = pnpacpi_parse_allocated_resource(dev);
	return ACPI_FAILURE(status) ? -ENODEV : 0;
}

@@ -92,7 +91,7 @@ static int pnpacpi_set_resources(struct pnp_dev *dev)
	ret = pnpacpi_build_resource_template(dev, &buffer);
	if (ret)
		return ret;
	ret = pnpacpi_encode_resources(&dev->res, &buffer);
	ret = pnpacpi_encode_resources(dev, &buffer);
	if (ret) {
		kfree(buffer.pointer);
		return ret;
@@ -183,8 +182,7 @@ static int __init pnpacpi_add_device(struct acpi_device *device)

	if (dev->active) {
		/* parse allocated resource */
		status = pnpacpi_parse_allocated_resource(device->handle,
							  &dev->res);
		status = pnpacpi_parse_allocated_resource(dev);
		if (ACPI_FAILURE(status) && (status != AE_NOT_FOUND)) {
			pnp_err("PnPACPI: METHOD_NAME__CRS failure for %s",
				acpi_device_hid(device));
@@ -192,8 +190,7 @@ static int __init pnpacpi_add_device(struct acpi_device *device)
	}

	if (dev->capabilities & PNP_CONFIGURABLE) {
		status = pnpacpi_parse_resource_option_data(device->handle,
							    dev);
		status = pnpacpi_parse_resource_option_data(dev);
		if (ACPI_FAILURE(status) && (status != AE_NOT_FOUND)) {
			pnp_err("PnPACPI: METHOD_NAME__PRS failure for %s",
				acpi_device_hid(device));
+3 −3
Original line number Diff line number Diff line
@@ -5,8 +5,8 @@
#include <linux/acpi.h>
#include <linux/pnp.h>

acpi_status pnpacpi_parse_allocated_resource(acpi_handle, struct pnp_resource_table*);
acpi_status pnpacpi_parse_resource_option_data(acpi_handle, struct pnp_dev*);
int pnpacpi_encode_resources(struct pnp_resource_table *, struct acpi_buffer *);
acpi_status pnpacpi_parse_allocated_resource(struct pnp_dev *);
acpi_status pnpacpi_parse_resource_option_data(struct pnp_dev *);
int pnpacpi_encode_resources(struct pnp_dev *, struct acpi_buffer *);
int pnpacpi_build_resource_template(struct pnp_dev *, struct acpi_buffer *);
#endif
+30 −25
Original line number Diff line number Diff line
@@ -76,10 +76,11 @@ static void decode_irq_flags(int flag, int *triggering, int *polarity)
	}
}

static void pnpacpi_parse_allocated_irqresource(struct pnp_resource_table *res,
static void pnpacpi_parse_allocated_irqresource(struct pnp_dev *dev,
						u32 gsi, int triggering,
						int polarity, int shareable)
{
	struct pnp_resource_table *res = &dev->res;
	int i = 0;
	int irq;
	int p, t;
@@ -172,9 +173,10 @@ static int dma_flags(int type, int bus_master, int transfer)
	return flags;
}

static void pnpacpi_parse_allocated_dmaresource(struct pnp_resource_table *res,
static void pnpacpi_parse_allocated_dmaresource(struct pnp_dev *dev,
						u32 dma, int flags)
{
	struct pnp_resource_table *res = &dev->res;
	int i = 0;
	static unsigned char warned;

@@ -197,9 +199,10 @@ static void pnpacpi_parse_allocated_dmaresource(struct pnp_resource_table *res,
	}
}

static void pnpacpi_parse_allocated_ioresource(struct pnp_resource_table *res,
static void pnpacpi_parse_allocated_ioresource(struct pnp_dev *dev,
					       u64 io, u64 len, int io_decode)
{
	struct pnp_resource_table *res = &dev->res;
	int i = 0;
	static unsigned char warned;

@@ -223,10 +226,11 @@ static void pnpacpi_parse_allocated_ioresource(struct pnp_resource_table *res,
	}
}

static void pnpacpi_parse_allocated_memresource(struct pnp_resource_table *res,
static void pnpacpi_parse_allocated_memresource(struct pnp_dev *dev,
						u64 mem, u64 len,
						int write_protect)
{
	struct pnp_resource_table *res = &dev->res;
	int i = 0;
	static unsigned char warned;

@@ -251,7 +255,7 @@ static void pnpacpi_parse_allocated_memresource(struct pnp_resource_table *res,
	}
}

static void pnpacpi_parse_allocated_address_space(struct pnp_resource_table *res_table,
static void pnpacpi_parse_allocated_address_space(struct pnp_dev *dev,
						  struct acpi_resource *res)
{
	struct acpi_resource_address64 addr, *p = &addr;
@@ -268,11 +272,11 @@ static void pnpacpi_parse_allocated_address_space(struct pnp_resource_table *res
		return;

	if (p->resource_type == ACPI_MEMORY_RANGE)
		pnpacpi_parse_allocated_memresource(res_table,
		pnpacpi_parse_allocated_memresource(dev,
			p->minimum, p->address_length,
			p->info.mem.write_protect);
	else if (p->resource_type == ACPI_IO_RANGE)
		pnpacpi_parse_allocated_ioresource(res_table,
		pnpacpi_parse_allocated_ioresource(dev,
			p->minimum, p->address_length,
			p->granularity == 0xfff ? ACPI_DECODE_10 :
				ACPI_DECODE_16);
@@ -281,7 +285,7 @@ static void pnpacpi_parse_allocated_address_space(struct pnp_resource_table *res
static acpi_status pnpacpi_allocated_resource(struct acpi_resource *res,
					      void *data)
{
	struct pnp_resource_table *res_table = data;
	struct pnp_dev *dev = data;
	struct acpi_resource_irq *irq;
	struct acpi_resource_dma *dma;
	struct acpi_resource_io *io;
@@ -300,7 +304,7 @@ static acpi_status pnpacpi_allocated_resource(struct acpi_resource *res,
		 */
		irq = &res->data.irq;
		for (i = 0; i < irq->interrupt_count; i++) {
			pnpacpi_parse_allocated_irqresource(res_table,
			pnpacpi_parse_allocated_irqresource(dev,
				irq->interrupts[i],
				irq->triggering,
				irq->polarity,
@@ -311,7 +315,7 @@ static acpi_status pnpacpi_allocated_resource(struct acpi_resource *res,
	case ACPI_RESOURCE_TYPE_DMA:
		dma = &res->data.dma;
		if (dma->channel_count > 0)
			pnpacpi_parse_allocated_dmaresource(res_table,
			pnpacpi_parse_allocated_dmaresource(dev,
				dma->channels[0],
				dma_flags(dma->type, dma->bus_master,
					  dma->transfer));
@@ -319,7 +323,7 @@ static acpi_status pnpacpi_allocated_resource(struct acpi_resource *res,

	case ACPI_RESOURCE_TYPE_IO:
		io = &res->data.io;
		pnpacpi_parse_allocated_ioresource(res_table,
		pnpacpi_parse_allocated_ioresource(dev,
			io->minimum,
			io->address_length,
			io->io_decode);
@@ -331,7 +335,7 @@ static acpi_status pnpacpi_allocated_resource(struct acpi_resource *res,

	case ACPI_RESOURCE_TYPE_FIXED_IO:
		fixed_io = &res->data.fixed_io;
		pnpacpi_parse_allocated_ioresource(res_table,
		pnpacpi_parse_allocated_ioresource(dev,
			fixed_io->address,
			fixed_io->address_length,
			ACPI_DECODE_10);
@@ -345,21 +349,21 @@ static acpi_status pnpacpi_allocated_resource(struct acpi_resource *res,

	case ACPI_RESOURCE_TYPE_MEMORY24:
		memory24 = &res->data.memory24;
		pnpacpi_parse_allocated_memresource(res_table,
		pnpacpi_parse_allocated_memresource(dev,
			memory24->minimum,
			memory24->address_length,
			memory24->write_protect);
		break;
	case ACPI_RESOURCE_TYPE_MEMORY32:
		memory32 = &res->data.memory32;
		pnpacpi_parse_allocated_memresource(res_table,
		pnpacpi_parse_allocated_memresource(dev,
			memory32->minimum,
			memory32->address_length,
			memory32->write_protect);
		break;
	case ACPI_RESOURCE_TYPE_FIXED_MEMORY32:
		fixed_memory32 = &res->data.fixed_memory32;
		pnpacpi_parse_allocated_memresource(res_table,
		pnpacpi_parse_allocated_memresource(dev,
			fixed_memory32->address,
			fixed_memory32->address_length,
			fixed_memory32->write_protect);
@@ -367,7 +371,7 @@ static acpi_status pnpacpi_allocated_resource(struct acpi_resource *res,
	case ACPI_RESOURCE_TYPE_ADDRESS16:
	case ACPI_RESOURCE_TYPE_ADDRESS32:
	case ACPI_RESOURCE_TYPE_ADDRESS64:
		pnpacpi_parse_allocated_address_space(res_table, res);
		pnpacpi_parse_allocated_address_space(dev, res);
		break;

	case ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64:
@@ -381,7 +385,7 @@ static acpi_status pnpacpi_allocated_resource(struct acpi_resource *res,
			return AE_OK;

		for (i = 0; i < extended_irq->interrupt_count; i++) {
			pnpacpi_parse_allocated_irqresource(res_table,
			pnpacpi_parse_allocated_irqresource(dev,
				extended_irq->interrupts[i],
				extended_irq->triggering,
				extended_irq->polarity,
@@ -400,14 +404,15 @@ static acpi_status pnpacpi_allocated_resource(struct acpi_resource *res,
	return AE_OK;
}

acpi_status pnpacpi_parse_allocated_resource(acpi_handle handle,
					     struct pnp_resource_table * res)
acpi_status pnpacpi_parse_allocated_resource(struct pnp_dev *dev)
{
	acpi_handle handle = dev->data;

	/* Blank the resource table values */
	pnp_init_resource_table(res);
	pnp_init_resource_table(&dev->res);

	return acpi_walk_resources(handle, METHOD_NAME__CRS,
				   pnpacpi_allocated_resource, res);
				   pnpacpi_allocated_resource, dev);
}

static __init void pnpacpi_parse_dma_option(struct pnp_dev *dev,
@@ -727,9 +732,9 @@ static __init acpi_status pnpacpi_option_resource(struct acpi_resource *res,
	return AE_OK;
}

acpi_status __init pnpacpi_parse_resource_option_data(acpi_handle handle,
						      struct pnp_dev *dev)
acpi_status __init pnpacpi_parse_resource_option_data(struct pnp_dev *dev)
{
	acpi_handle handle = dev->data;
	acpi_status status;
	struct acpipnp_parse_option_s parse_data;

@@ -959,9 +964,9 @@ static void pnpacpi_encode_fixed_mem32(struct acpi_resource *resource,
	fixed_memory32->address_length = p->end - p->start + 1;
}

int pnpacpi_encode_resources(struct pnp_resource_table *res_table,
			     struct acpi_buffer *buffer)
int pnpacpi_encode_resources(struct pnp_dev *dev, struct acpi_buffer *buffer)
{
	struct pnp_resource_table *res_table = &dev->res;
	int i = 0;
	/* pnpacpi_build_resource_template allocates extra mem */
	int res_cnt = (buffer->length - 1) / sizeof(struct acpi_resource) - 1;
+2 −2
Original line number Diff line number Diff line
@@ -219,7 +219,7 @@ static int pnpbios_get_resources(struct pnp_dev *dev)
		kfree(node);
		return -ENODEV;
	}
	pnpbios_read_resources_from_node(&dev->res, node);
	pnpbios_read_resources_from_node(dev, node);
	dev->active = pnp_is_active(dev);
	kfree(node);
	return 0;
@@ -241,7 +241,7 @@ static int pnpbios_set_resources(struct pnp_dev *dev)
		kfree(node);
		return -ENODEV;
	}
	if (pnpbios_write_resources_to_node(&dev->res, node) < 0) {
	if (pnpbios_write_resources_to_node(dev, node) < 0) {
		kfree(node);
		return -1;
	}
Loading