|
@@ -1276,17 +1276,12 @@ static int viafb_dfph_proc_open(struct inode *inode, struct file *file)
|
|
|
static ssize_t viafb_dfph_proc_write(struct file *file,
|
|
|
const char __user *buffer, size_t count, loff_t *pos)
|
|
|
{
|
|
|
- char buf[20];
|
|
|
- u8 reg_val = 0;
|
|
|
- unsigned long length;
|
|
|
- if (count < 1)
|
|
|
- return -EINVAL;
|
|
|
- length = count > 20 ? 20 : count;
|
|
|
- if (copy_from_user(&buf[0], buffer, length))
|
|
|
- return -EFAULT;
|
|
|
- buf[length - 1] = '\0'; /*Ensure end string */
|
|
|
- if (kstrtou8(buf, 0, ®_val) < 0)
|
|
|
- return -EINVAL;
|
|
|
+ int err;
|
|
|
+ u8 reg_val;
|
|
|
+ err = kstrtou8_from_user(buffer, count, 0, ®_val);
|
|
|
+ if (err)
|
|
|
+ return err;
|
|
|
+
|
|
|
viafb_write_reg_mask(CR97, VIACR, reg_val, 0x0f);
|
|
|
return count;
|
|
|
}
|
|
@@ -1316,17 +1311,12 @@ static int viafb_dfpl_proc_open(struct inode *inode, struct file *file)
|
|
|
static ssize_t viafb_dfpl_proc_write(struct file *file,
|
|
|
const char __user *buffer, size_t count, loff_t *pos)
|
|
|
{
|
|
|
- char buf[20];
|
|
|
- u8 reg_val = 0;
|
|
|
- unsigned long length;
|
|
|
- if (count < 1)
|
|
|
- return -EINVAL;
|
|
|
- length = count > 20 ? 20 : count;
|
|
|
- if (copy_from_user(&buf[0], buffer, length))
|
|
|
- return -EFAULT;
|
|
|
- buf[length - 1] = '\0'; /*Ensure end string */
|
|
|
- if (kstrtou8(buf, 0, ®_val) < 0)
|
|
|
- return -EINVAL;
|
|
|
+ int err;
|
|
|
+ u8 reg_val;
|
|
|
+ err = kstrtou8_from_user(buffer, count, 0, ®_val);
|
|
|
+ if (err)
|
|
|
+ return err;
|
|
|
+
|
|
|
viafb_write_reg_mask(CR99, VIACR, reg_val, 0x0f);
|
|
|
return count;
|
|
|
}
|