linux/drivers/hid/hid-wiimote-modules.c

46 lines
1.7 KiB
C
Raw Normal View History

/*
* Device Modules for Nintendo Wii / Wii U HID Driver
* Copyright (c) 2011-2013 David Herrmann <dh.herrmann@gmail.com>
*/
/*
* 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.
*/
/*
* Wiimote Modules
* Nintendo devices provide different peripherals and many new devices lack
* initial features like the IR camera. Therefore, each peripheral device is
* implemented as an independent module and we probe on each device only the
* modules for the hardware that really is available.
*
* Module registration is sequential. Unregistration is done in reverse order.
* After device detection, the needed modules are loaded. Users can trigger
* re-detection which causes all modules to be unloaded and then reload the
* modules for the new detected device.
*
* wdata->input is a shared input device. It is always initialized prior to
* module registration. If at least one registered module is marked as
* WIIMOD_FLAG_INPUT, then the input device will get registered after all
* modules were registered.
* Please note that it is unregistered _before_ the "remove" callbacks are
* called. This guarantees that no input interaction is done, anymore. However,
* the wiimote core keeps a reference to the input device so it is freed only
* after all modules were removed. It is safe to send events to unregistered
* input devices.
*/
#include <linux/device.h>
#include <linux/hid.h>
#include <linux/input.h>
#include <linux/spinlock.h>
#include "hid-wiimote.h"
/* module table */
const struct wiimod_ops *wiimod_table[WIIMOD_NUM] = {
};