Commit ff9046ac authored by Al Viro's avatar Al Viro

bfin_adv7393: switch to proc_create_data()

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent a69755b1
...@@ -333,29 +333,23 @@ static int proc_output(char *buf) ...@@ -333,29 +333,23 @@ static int proc_output(char *buf)
return p - buf; return p - buf;
} }
static int static ssize_t
adv7393_read_proc(char *page, char **start, off_t off, adv7393_read_proc(struct file *file, char __user *buf,
int count, int *eof, void *data) size_t size, loff_t *ppos)
{ {
int len; static const char message[] = "Usage:\n"
"echo 0x[REG][Value] > adv7393\n"
len = proc_output(page); "example: echo 0x1234 >adv7393\n"
if (len <= off + count) "writes 0x34 into Register 0x12\n";
*eof = 1; return simple_read_from_buffer(buf, size, ppos, message,
*start = page + off; sizeof(message));
len -= off;
if (len > count)
len = count;
if (len < 0)
len = 0;
return len;
} }
static int static ssize_t
adv7393_write_proc(struct file *file, const char __user * buffer, adv7393_write_proc(struct file *file, const char __user * buffer,
size_t count, void *data) size_t count, loff_t *ppos)
{ {
struct adv7393fb_device *fbdev = data; struct adv7393fb_device *fbdev = PDE(file_inode(file))->data;
unsigned int val; unsigned int val;
int ret; int ret;
...@@ -368,6 +362,12 @@ adv7393_write_proc(struct file *file, const char __user * buffer, ...@@ -368,6 +362,12 @@ adv7393_write_proc(struct file *file, const char __user * buffer,
return count; return count;
} }
static const struct file_operations fops = {
.read = adv7393_read_proc,
.write = adv7393_write_proc,
.llseek = default_llseek,
};
static int bfin_adv7393_fb_probe(struct i2c_client *client, static int bfin_adv7393_fb_probe(struct i2c_client *client,
const struct i2c_device_id *id) const struct i2c_device_id *id)
{ {
...@@ -506,17 +506,12 @@ static int bfin_adv7393_fb_probe(struct i2c_client *client, ...@@ -506,17 +506,12 @@ static int bfin_adv7393_fb_probe(struct i2c_client *client,
fbdev->info.node, fbdev->info.fix.id); fbdev->info.node, fbdev->info.fix.id);
dev_info(&client->dev, "fb memory address : 0x%p\n", fbdev->fb_mem); dev_info(&client->dev, "fb memory address : 0x%p\n", fbdev->fb_mem);
entry = create_proc_entry("driver/adv7393", 0, NULL); entry = proc_create_data("driver/adv7393", 0, NULL, &fops, fbdev);
if (!entry) { if (!entry) {
dev_err(&client->dev, "unable to create /proc entry\n"); dev_err(&client->dev, "unable to create /proc entry\n");
ret = -EFAULT; ret = -EFAULT;
goto free_fb; goto free_fb;
} }
entry->read_proc = adv7393_read_proc;
entry->write_proc = adv7393_write_proc;
entry->data = fbdev;
return 0; return 0;
free_fb: free_fb:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment