Hi Matthew, Thomas, 於 二,2010-08-24 於 01:03 -0600,Joey Lee 提到: > Hi Matthew, > > 於 一,2010-08-23 於 18:51 +0100,Matthew Garrett 提到: > > On Mon, Aug 23, 2010 at 07:53:21PM +0200, Thomas Renninger wrote: > > > > > Hm, needing a module option to get a system running is not what the user expects. > > > By default, the system should run fine and a module option should be added > > > as a workaround or for debugging only. > > > > How about we do this instead: add a psb stub driver that does nothing > > other than call acpi_backlight_register()? > > > > The attached file is a draft stub driver for poulsbo. Like you said, it > will only call acpi_video_register and acpi_video_unregister when > initial and exit. > And I added the Poulsbo pci id in the module alias. > > It's works to me, where can we put the driver? in driver/staging ? or > put in driver/gpu/stub ? > The attached file is the patch to add a poulsbo stub module in drivers/gpu/stub. Please kindly review it and give me any suggestions. Thank's a lot! Joey Lee
>From 18d66ed453e4052874280ff0c17b68f5ce3cbc3a Mon Sep 17 00:00:00 2001 From: Lee, Chun-Yi <jlee@xxxxxxxxxx> Date: Tue, 24 Aug 2010 17:55:23 +0800 Subject: [PATCH] Add Intel Poulsbo Stub Driver Currently, there have no Poulsbo native video driver to support intel opregion. So, use this stub driver to call acpi_video_register to enable the acpi backlight control sysfs entry files. Signed-off-by: Lee, Chun-Yi <jlee@xxxxxxxxxx> --- drivers/gpu/Makefile | 2 +- drivers/gpu/stub/Kconfig | 13 +++++++++++++ drivers/gpu/stub/Makefile | 1 + drivers/gpu/stub/poulsbo.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ drivers/video/Kconfig | 2 ++ 5 files changed, 61 insertions(+), 1 deletions(-) create mode 100644 drivers/gpu/stub/Kconfig create mode 100644 drivers/gpu/stub/Makefile create mode 100644 drivers/gpu/stub/poulsbo.c diff --git a/drivers/gpu/Makefile b/drivers/gpu/Makefile index 30879df..cc92778 100644 --- a/drivers/gpu/Makefile +++ b/drivers/gpu/Makefile @@ -1 +1 @@ -obj-y += drm/ vga/ +obj-y += drm/ vga/ stub/ diff --git a/drivers/gpu/stub/Kconfig b/drivers/gpu/stub/Kconfig new file mode 100644 index 0000000..88fd919 --- /dev/null +++ b/drivers/gpu/stub/Kconfig @@ -0,0 +1,13 @@ +config STUB_POULSBO + tristate "Intel Poulsbo Stub Driver" + default m + # Poulsbo stub depends on ACPI_VIDEO when ACPI is enabled + # but for select to work, need to select ACPI_VIDEO's dependencies, ick + select ACPI_VIDEO if ACPI + help + Choose this option if you have a system that has Intel Poulsbo + integrated graphics. If M is selected, the module will be called + Poulsbo. This driver is a stub driver for Poulsbo that will call + acpi_video_register to enable the acpi backlight control sysfs + entry file because there have no poulsbo native driver can support + intel opregion. diff --git a/drivers/gpu/stub/Makefile b/drivers/gpu/stub/Makefile new file mode 100644 index 0000000..cd940cc --- /dev/null +++ b/drivers/gpu/stub/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_STUB_POULSBO) += poulsbo.o diff --git a/drivers/gpu/stub/poulsbo.c b/drivers/gpu/stub/poulsbo.c new file mode 100644 index 0000000..c93cd67 --- /dev/null +++ b/drivers/gpu/stub/poulsbo.c @@ -0,0 +1,44 @@ +/* + * Intel Poulsbo Stub + * + * Copyright (C) 2010 Novell <jlee@xxxxxxxxxx> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include <linux/module.h> +#include <acpi/video.h> + +static int __init poulsbo_init(void) +{ + printk(KERN_INFO "poulsbo: stub driver load.\n"); + return acpi_video_register(); +} + +static void __exit poulsbo_cleanup(void) +{ + acpi_video_unregister(); + printk(KERN_INFO "poulsbo: stub driver unloaded.\n"); +} + +module_init(poulsbo_init); +module_exit(poulsbo_cleanup); + +MODULE_AUTHOR("Lee, Chun-Yi <jlee@xxxxxxxxxx>"); +MODULE_DESCRIPTION("Poulsbo Stub Driver"); +MODULE_LICENSE("GPL"); + +MODULE_ALIAS("pci:v00008086d00008108sv*sd*bc*sc*i*"); +MODULE_ALIAS("pci:v00008086d00008109sv*sd*bc*sc*i*"); diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index 8b31fdf..8807ae5 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig @@ -17,6 +17,8 @@ source "drivers/gpu/vga/Kconfig" source "drivers/gpu/drm/Kconfig" +source "drivers/gpu/stub/Kconfig" + config VGASTATE tristate default n -- 1.6.0.2