nsc_gpio.c (b22364c8eec89e6b0c081a237f3b6348df87796f) nsc_gpio.c (496ad9aa8ef448058e36ca7a787c61f2e63f0f54)
1/* linux/drivers/char/nsc_gpio.c
2
3 National Semiconductor common GPIO device-file/VFS methods.
4 Allows a user space process to control the GPIO pins.
5
6 Copyright (c) 2001,2002 Christer Weinigel <wingel@nano-system.com>
7 Copyright (c) 2005 Jim Cromie <jim.cromie@gmail.com>
8*/

--- 27 unchanged lines hidden (view full) ---

36 (config & 64) ? "DEBOUNCE" : "", /* debounce */
37
38 amp->gpio_get(index), amp->gpio_current(index));
39}
40
41ssize_t nsc_gpio_write(struct file *file, const char __user *data,
42 size_t len, loff_t *ppos)
43{
1/* linux/drivers/char/nsc_gpio.c
2
3 National Semiconductor common GPIO device-file/VFS methods.
4 Allows a user space process to control the GPIO pins.
5
6 Copyright (c) 2001,2002 Christer Weinigel <wingel@nano-system.com>
7 Copyright (c) 2005 Jim Cromie <jim.cromie@gmail.com>
8*/

--- 27 unchanged lines hidden (view full) ---

36 (config & 64) ? "DEBOUNCE" : "", /* debounce */
37
38 amp->gpio_get(index), amp->gpio_current(index));
39}
40
41ssize_t nsc_gpio_write(struct file *file, const char __user *data,
42 size_t len, loff_t *ppos)
43{
44 unsigned m = iminor(file->f_path.dentry->d_inode);
44 unsigned m = iminor(file_inode(file));
45 struct nsc_gpio_ops *amp = file->private_data;
46 struct device *dev = amp->dev;
47 size_t i;
48 int err = 0;
49
50 for (i = 0; i < len; ++i) {
51 char c;
52 if (get_user(c, data + i))

--- 46 unchanged lines hidden (view full) ---

99 return -EINVAL; /* full string handled, report error */
100
101 return len;
102}
103
104ssize_t nsc_gpio_read(struct file *file, char __user * buf,
105 size_t len, loff_t * ppos)
106{
45 struct nsc_gpio_ops *amp = file->private_data;
46 struct device *dev = amp->dev;
47 size_t i;
48 int err = 0;
49
50 for (i = 0; i < len; ++i) {
51 char c;
52 if (get_user(c, data + i))

--- 46 unchanged lines hidden (view full) ---

99 return -EINVAL; /* full string handled, report error */
100
101 return len;
102}
103
104ssize_t nsc_gpio_read(struct file *file, char __user * buf,
105 size_t len, loff_t * ppos)
106{
107 unsigned m = iminor(file->f_path.dentry->d_inode);
107 unsigned m = iminor(file_inode(file));
108 int value;
109 struct nsc_gpio_ops *amp = file->private_data;
110
111 value = amp->gpio_get(m);
112 if (put_user(value ? '1' : '0', buf))
113 return -EFAULT;
114
115 return 1;

--- 24 unchanged lines hidden ---
108 int value;
109 struct nsc_gpio_ops *amp = file->private_data;
110
111 value = amp->gpio_get(m);
112 if (put_user(value ? '1' : '0', buf))
113 return -EFAULT;
114
115 return 1;

--- 24 unchanged lines hidden ---