| /* |
| * 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] = { |
| }; |