14 #include <linux/module.h>
26 static ssize_t wiidebug_eeprom_read(
struct file *
f,
char __user *
u,
size_t s,
43 ret = wiimote_cmd_acquire(wdata);
48 wdata->
state.cmd_read_size =
s;
52 spin_unlock_irqrestore(&wdata->
state.lock, flags);
54 ret = wiimote_cmd_wait(wdata);
56 size = wdata->
state.cmd_read_size;
60 spin_unlock_irqrestore(&wdata->
state.lock, flags);
62 wiimote_cmd_release(wdata);
81 .read = wiidebug_eeprom_read,
85 static const char *wiidebug_drmmap[] = {
101 static int wiidebug_drm_show(
struct seq_file *
f,
void *
p)
109 drm = dbg->
wdata->state.drm;
110 spin_unlock_irqrestore(&dbg->
wdata->state.lock, flags);
113 str = wiidebug_drmmap[
drm];
122 static int wiidebug_drm_open(
struct inode *
i,
struct file *f)
127 static ssize_t wiidebug_drm_write(
struct file *f,
const char __user *
u,
128 size_t s, loff_t *off)
139 len =
min((
size_t) 15, s);
146 if (!wiidebug_drmmap[i])
152 if (i == WIIPROTO_REQ_MAX)
157 spin_unlock_irqrestore(&dbg->
wdata->state.lock, flags);
164 .open = wiidebug_drm_open,
167 .write = wiidebug_drm_write,
184 dbg->
wdata->hdev->debug_dir, dbg, &wiidebug_eeprom_fops);
189 dbg->
wdata->hdev->debug_dir, dbg, &wiidebug_drm_fops);
195 spin_unlock_irqrestore(&wdata->
state.lock, flags);
216 spin_unlock_irqrestore(&wdata->
state.lock, flags);