Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
 #include <linux/init.h>
 #include <linux/slab.h>
 #include <linux/wait.h>
+#include <linux/fs.h>
 #include <linux/module.h>
 #include <linux/usb.h>
 #include <linux/delay.h>
 }
 
 static ssize_t stc_read(struct file *file, char *buf, size_t count,
-                loff_t * offset)
+                loff_t *offset)
 {
-       int tc = count;
-
-       if ((tc + *offset) > 8192)
-               tc = 8192 - *offset;
-
-       if (tc < 0)
-               return 0;
-
-       if (copy_to_user(buf, stc_firmware + *offset, tc))
-               return -EFAULT;
-
-       *offset += tc;
-
-       return tc;
+       return simple_read_from_buffer(buf, count, offset, stc_firmware, 8192);
 }
 
 static int stc_release(struct inode *inode, struct file *file)