RE: [PATCH 2.6.15.3 1/1] ACPI: Atlas ACPI driver

From: Yu, Luming
Date: Wed Mar 08 2006 - 01:15:05 EST



>> I just found this:
>> Device (SVG)
>> Device (LCD)
>> It looks too simple to fit video.c.
>
>I'm sorry but I'm confused. Do you mean that I shouldn't try to
>support the brightness using the default video driver (ie: leave it as
>a board specific driver because the board's ACPI implementation for
>video support is insufficient) or did you mean that it will be easy
>and simple to fit in video.c?

I think video.c is NOT a right solution for your problem.

>
>> But it is quite easy to implement in hotkey.c.
>> Because it has dedicated device with HID and ,
>> well-known method name.
>>
>
>I'm confused by hotkey here. I'm not sure how hotkey is involved here.

hotkey.c provide a generic way to register well-known acpi device, and
well-known methods that are mostly related to hotkey.

>The Atlas board has no keys physically. It has buttons which are

No differences between buttons and keys to me.

>hooked up using the ASIM HID and that is what I am trying to support
>since those physically exist on the board. Can you help me understand
>how hotkey is involved in this?

You have dedicated ACPI device and method for brightness control.
So hotkey.c is the right place for support Device LCD.

As for Device ASIM, I don't understand this code in your patch,
Care to explain. It looks strange to me.

+static acpi_status acpi_atlas_button_handler(u32 function,
+ acpi_physical_address address,
+ u32 bit_width, acpi_integer * value,
+ void *handler_context, void *region_context)
+{
+ acpi_status status;
+ struct acpi_device *dev;
+
+ dev = (struct acpi_device *) handler_context;
+ if (function == ACPI_WRITE)
+ status = acpi_bus_generate_event(dev, 0x80, address);
+ else {
+ printk(KERN_WARNING "atlas: shrugged on unexpected
function"
+ ":function=%x,address=%x,value=%x\n",
+ function, (u32)address, (u32)*value);
+ status = -EINVAL;
+ }
+
+ return status ;
+}
+
+static int atlas_acpi_button_add(struct acpi_device *device)
+{
+
+ /* hookup button handler */
+ return acpi_install_address_space_handler(device->handle,
+ 0x81, &acpi_atlas_button_handler,
+ &acpi_atlas_button_setup, device);
+}
+
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/