1e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi/*
2e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi * Intel Poulsbo Stub driver
3e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi *
4e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi * Copyright (C) 2010 Novell <jlee@novell.com>
5e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi *
6e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi * This program is free software; you can redistribute it and/or modify it
7e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi * under the terms of the GNU General Public License version 2 as published by
8e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi * the Free Software Foundation.
9e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi *
10e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi */
11e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi
12e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi#include <linux/module.h>
13e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi#include <linux/pci.h>
14e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi#include <linux/acpi.h>
15e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi#include <acpi/video.h>
16e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi
17e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi#define DRIVER_NAME "poulsbo"
18e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi
19e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yienum {
20e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi	CHIP_PSB_8108 = 0,
21e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi	CHIP_PSB_8109 = 1,
22e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi};
23e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi
24e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yistatic DEFINE_PCI_DEVICE_TABLE(pciidlist) = {
25e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi	{0x8086, 0x8108, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PSB_8108}, \
26e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi	{0x8086, 0x8109, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PSB_8109}, \
27e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi	{0, 0, 0}
28e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi};
29e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi
30e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yistatic int poulsbo_probe(struct pci_dev *pdev, const struct pci_device_id *id)
31e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi{
32e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi	return acpi_video_register();
33e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi}
34e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi
35e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yistatic void poulsbo_remove(struct pci_dev *pdev)
36e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi{
37e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi	acpi_video_unregister();
38e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi}
39e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi
40e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yistatic struct pci_driver poulsbo_driver = {
41e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi	.name = DRIVER_NAME,
42e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi	.id_table = pciidlist,
43e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi	.probe = poulsbo_probe,
44e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi	.remove = poulsbo_remove,
45e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi};
46e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi
47e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yistatic int __init poulsbo_init(void)
48e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi{
49e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi	return pci_register_driver(&poulsbo_driver);
50e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi}
51e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi
52e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yistatic void __exit poulsbo_exit(void)
53e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi{
54e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi	pci_unregister_driver(&poulsbo_driver);
55e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi}
56e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi
57e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yimodule_init(poulsbo_init);
58e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yimodule_exit(poulsbo_exit);
59e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi
60e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-YiMODULE_AUTHOR("Lee, Chun-Yi <jlee@novell.com>");
61e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-YiMODULE_DESCRIPTION("Poulsbo Stub Driver");
62e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-YiMODULE_LICENSE("GPL");
63e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-Yi
64e26fd1199ebab0d469fc3e037da5932d382f0669Lee, Chun-YiMODULE_DEVICE_TABLE(pci, pciidlist);
65