[lkml]   [2012]   [Nov]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH 2/3] spi / ACPI: add ACPI enumeration support
On Mon, Nov 05, 2012 at 11:31:19AM +0100, Rafael J. Wysocki wrote:
> The general idea is to move the _CRS parsing routine from acpi_platform.c
> to scan.c and make it attach resource objects to struct acpi_device.
> I'm thinking about adding a list head to struct acpi_device pointing to a
> list of entries like:
> struct resource_list_entry {
> struct list_head node;
> struct resource *resources;
> unsigned int count;
> };
> where "resources" is an array of resources (e.g. interrupts) in the given
> entry and count is the size of that array.
> That list would contain common resources like ACPI_RESOURCE_TYPE_FIXED_MEMORY32,
> I think adding it would allow us to make acpi_create_platform_device(),
> acpi_spi_add_resources() and acpi_i2c_add_resources() more straightforward (and
> remove some code duplication between the last two routines).

This certainly sounds good to me.

> In addition to that, I'd add an entry containing serial bus information, if
> applicable, for the given struct acpi_device, something like:
> union acpi_resource_serial_bus {
> struct acpi_resource_common_serialbus;
> struct acpi_resource_spi_serialbus;
> struct acpi_resource_i2c_serialbus;
> struct acpi_resource_uart_serialbus;
> };
> struct acpi_device {
> ...
> union acpi_resource_serial_bus *serial;
> ...
> };

It is also possible to have several serial bus connectors on a single
device (although we've seen only one connector per device but it should not
be limited to that).

> Then, things like acpi_spi_add_resources() and acpi_i2c_add_resources() would
> be able to use struct acpi_device objects directly without running any AML.
> That could be done on top of the current series and I'm going to prepare a patch
> for that in the next few days if I find some time between the LCE sessions.

Cool :-) Let me know if you need any help, like testing the patches etc.

 \ /
  Last update: 2012-11-05 12:41    [W:0.133 / U:1.548 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site