-static ssize_t rtl8366rb_read_debugfs_reg(struct file *file,
- char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct rtl8366rb *rtl = (struct rtl8366rb *)file->private_data;
- struct rtl8366_smi *smi = &rtl->smi;
- u32 t, reg = gl_dbg_reg;
- int err, len = 0;
- char *buf = rtl->buf;
-
- memset(buf, '\0', sizeof(rtl->buf));
-
- err = rtl8366_smi_read_reg(smi, reg, &t);
- if (err) {
- len += snprintf(buf, sizeof(rtl->buf),
- "Read failed (reg: 0x%04x)\n", reg);
- return simple_read_from_buffer(user_buf, count, ppos, buf, len);
- }
-
- len += snprintf(buf, sizeof(rtl->buf), "reg = 0x%04x, val = 0x%04x\n",
- reg, t);
-
- return simple_read_from_buffer(user_buf, count, ppos, buf, len);
-}
-
-static ssize_t rtl8366rb_write_debugfs_reg(struct file *file,
- const char __user *user_buf,
- size_t count, loff_t *ppos)
-{
- struct rtl8366rb *rtl = (struct rtl8366rb *)file->private_data;
- struct rtl8366_smi *smi = &rtl->smi;
- unsigned long data;
- u32 reg = gl_dbg_reg;
- int err;
- size_t len;
- char *buf = rtl->buf;
-
- len = min(count, sizeof(rtl->buf) - 1);
- if (copy_from_user(buf, user_buf, len)) {
- dev_err(rtl->parent, "copy from user failed\n");
- return -EFAULT;
- }
-
- buf[len] = '\0';
- if (len > 0 && buf[len - 1] == '\n')
- buf[len - 1] = '\0';
-
-
- if (strict_strtoul(buf, 16, &data)) {
- dev_err(rtl->parent, "Invalid reg value %s\n", buf);
- } else {
- err = rtl8366_smi_write_reg(smi, reg, data);
- if (err) {
- dev_err(rtl->parent,
- "writing reg 0x%04x val 0x%04lx failed\n",
- reg, data);
- }
- }
-
- return count;
-}
-
-static const struct file_operations fops_rtl8366rb_regs = {
- .read = rtl8366rb_read_debugfs_reg,
- .write = rtl8366rb_write_debugfs_reg,
- .open = rtl8366rb_debugfs_open,
- .owner = THIS_MODULE
-};
-
-static const struct file_operations fops_rtl8366rb_vlan_mc = {
- .read = rtl8366rb_read_debugfs_vlan_mc,
- .open = rtl8366rb_debugfs_open,
- .owner = THIS_MODULE
-};
-