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