#include <asm/io.h>
#include <linux/delay.h>
#include <linux/errno.h>
#include <linux/ioport.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/slab.h>
#include <linux/gameport.h>
#define PCI_VENDOR_ID_FORTEMEDIA …
#define PCI_DEVICE_ID_FM801_GP …
#define HAVE_COOKED
struct fm801_gp { … };
#ifdef HAVE_COOKED
static int fm801_gp_cooked_read(struct gameport *gameport, int *axes, int *buttons)
{ … }
#endif
static int fm801_gp_open(struct gameport *gameport, int mode)
{ … }
static int fm801_gp_probe(struct pci_dev *pci, const struct pci_device_id *id)
{ … }
static void fm801_gp_remove(struct pci_dev *pci)
{ … }
static const struct pci_device_id fm801_gp_id_table[] = …;
MODULE_DEVICE_TABLE(pci, fm801_gp_id_table);
static struct pci_driver fm801_gp_driver = …;
module_pci_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;