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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>> 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux