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

Commit e26fd119 authored by Lee, Chun-Yi's avatar Lee, Chun-Yi Committed by Dave Airlie
Browse files

gpu: Add Intel GMA500(Poulsbo) Stub Driver



Currently, there have no GMA500(Poulsbo) native video driver to support
intel opregion. So, use this stub driver to enable the acpi backlight
control sysfs entry files by requrest acpi_video_register.

[airlied: fix warnings]

Signed-off-by: default avatarLee, Chun-Yi <jlee@novell.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent b7d8cce5
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
obj-y			+= drm/ vga/
obj-y			+= drm/ vga/ stub/
+13 −0
Original line number Diff line number Diff line
config STUB_POULSBO
	tristate "Intel GMA500 Stub Driver"
	depends on PCI
	# 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 GMA500
	  (Poulsbo) integrated graphics. If M is selected, the module will
	  be called Poulsbo. This driver is a stub driver for Poulsbo that
	  will call poulsbo.ko to enable the acpi backlight control sysfs
	  entry file because there have no poulsbo native driver can support
	  intel opregion.
+1 −0
Original line number Diff line number Diff line
obj-$(CONFIG_STUB_POULSBO) += poulsbo.o
+64 −0
Original line number Diff line number Diff line
/*
 * Intel Poulsbo Stub driver
 *
 * Copyright (C) 2010 Novell <jlee@novell.com>
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 as published by
 * the Free Software Foundation.
 *
 */

#include <linux/module.h>
#include <linux/pci.h>
#include <linux/acpi.h>
#include <acpi/video.h>

#define DRIVER_NAME "poulsbo"

enum {
	CHIP_PSB_8108 = 0,
	CHIP_PSB_8109 = 1,
};

static DEFINE_PCI_DEVICE_TABLE(pciidlist) = {
	{0x8086, 0x8108, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PSB_8108}, \
	{0x8086, 0x8109, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PSB_8109}, \
	{0, 0, 0}
};

static int poulsbo_probe(struct pci_dev *pdev, const struct pci_device_id *id)
{
	return acpi_video_register();
}

static void poulsbo_remove(struct pci_dev *pdev)
{
	acpi_video_unregister();
}

static struct pci_driver poulsbo_driver = {
	.name = DRIVER_NAME,
	.id_table = pciidlist,
	.probe = poulsbo_probe,
	.remove = poulsbo_remove,
};

static int __init poulsbo_init(void)
{
	return pci_register_driver(&poulsbo_driver);
}

static void __exit poulsbo_exit(void)
{
	pci_unregister_driver(&poulsbo_driver);
}

module_init(poulsbo_init);
module_exit(poulsbo_exit);

MODULE_AUTHOR("Lee, Chun-Yi <jlee@novell.com>");
MODULE_DESCRIPTION("Poulsbo Stub Driver");
MODULE_LICENSE("GPL");

MODULE_DEVICE_TABLE(pci, pciidlist);
+2 −0
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@ source "drivers/gpu/vga/Kconfig"

source "drivers/gpu/drm/Kconfig"

source "drivers/gpu/stub/Kconfig"

config VGASTATE
       tristate
       default n