usb: chipidea: debug: remove redundant 'role' debug file
authorXu Yang <xu.yang_2@nxp.com>
Fri, 17 Mar 2023 06:16:51 +0000 (14:16 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 23 Mar 2023 16:27:46 +0000 (17:27 +0100)
Two 'role' file exist in different position but with totally same function.

1. /sys/devices/platform/soc@0/xxxxxxxx.usb/ci_hdrc.0/role
2. /sys/kernel/debug/usb/ci_hdrc.0/role

This will remove the 2rd redundant 'role' debug file (under debugfs) and
keep the one which is more closer to user.

Acked-by: Peter Chen <peter.chen@kernel.org>
Signed-off-by: Xu Yang <xu.yang_2@nxp.com>
Link: https://lore.kernel.org/r/20230317061651.2457567-1-xu.yang_2@nxp.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/chipidea/debug.c

index bbc610e5bd69c43750015edead6f1f82a5220b96..e72c43615d777283eb0bff060a79378228fbd525 100644 (file)
@@ -247,60 +247,6 @@ static int ci_otg_show(struct seq_file *s, void *unused)
 }
 DEFINE_SHOW_ATTRIBUTE(ci_otg);
 
-static int ci_role_show(struct seq_file *s, void *data)
-{
-       struct ci_hdrc *ci = s->private;
-
-       if (ci->role != CI_ROLE_END)
-               seq_printf(s, "%s\n", ci_role(ci)->name);
-
-       return 0;
-}
-
-static ssize_t ci_role_write(struct file *file, const char __user *ubuf,
-                            size_t count, loff_t *ppos)
-{
-       struct seq_file *s = file->private_data;
-       struct ci_hdrc *ci = s->private;
-       enum ci_role role;
-       char buf[8];
-       int ret;
-
-       if (copy_from_user(buf, ubuf, min_t(size_t, sizeof(buf) - 1, count)))
-               return -EFAULT;
-
-       for (role = CI_ROLE_HOST; role < CI_ROLE_END; role++)
-               if (ci->roles[role] &&
-                   !strncmp(buf, ci->roles[role]->name,
-                            strlen(ci->roles[role]->name)))
-                       break;
-
-       if (role == CI_ROLE_END || role == ci->role)
-               return -EINVAL;
-
-       pm_runtime_get_sync(ci->dev);
-       disable_irq(ci->irq);
-       ci_role_stop(ci);
-       ret = ci_role_start(ci, role);
-       enable_irq(ci->irq);
-       pm_runtime_put_sync(ci->dev);
-
-       return ret ? ret : count;
-}
-
-static int ci_role_open(struct inode *inode, struct file *file)
-{
-       return single_open(file, ci_role_show, inode->i_private);
-}
-
-static const struct file_operations ci_role_fops = {
-       .open           = ci_role_open,
-       .write          = ci_role_write,
-       .read           = seq_read,
-       .llseek         = seq_lseek,
-       .release        = single_release,
-};
-
 static int ci_registers_show(struct seq_file *s, void *unused)
 {
        struct ci_hdrc *ci = s->private;
@@ -354,7 +300,6 @@ void dbg_create_files(struct ci_hdrc *ci)
        if (ci_otg_is_fsm_mode(ci))
                debugfs_create_file("otg", S_IRUGO, dir, ci, &ci_otg_fops);
 
-       debugfs_create_file("role", S_IRUGO | S_IWUSR, dir, ci, &ci_role_fops);
        debugfs_create_file("registers", S_IRUGO, dir, ci, &ci_registers_fops);
 }