usb: usbtmc: Remove sysfs group TermChar and auto_abort
authorGuido Kiener <guido@kiener-muenchen.de>
Wed, 12 Sep 2018 08:51:12 +0000 (10:51 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 20 Sep 2018 11:04:03 +0000 (13:04 +0200)
As all the properties of the usbtmc driver can now be
controlled on a per file descriptor basis by ioctl functions
the sysfs interface is of limited use.
We are not aware about applications that are using the sysfs
parameter TermChar, TermCharEnabled or auto_abort.

Signed-off-by: Guido Kiener <guido.kiener@rohde-schwarz.com>
Reviewed-by: Steve Bayless <steve_bayless@keysight.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Documentation/ABI/stable/sysfs-driver-usb-usbtmc
drivers/usb/class/usbtmc.c

index e960cd027e1e9685a83f3275ca859da7a793e116..a9e123ba32cd22d88edbc2407b18f26976740737 100644 (file)
@@ -25,38 +25,3 @@ Description:
                4.2.2.
 
                The files are read only.
-
-
-What:          /sys/bus/usb/drivers/usbtmc/*/TermChar
-Date:          August 2008
-Contact:       Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Description:
-               This file is the TermChar value to be sent to the USB TMC
-               device as described by the document, "Universal Serial Bus Test
-               and Measurement Class Specification
-               (USBTMC) Revision 1.0" as published by the USB-IF.
-
-               Note that the TermCharEnabled file determines if this value is
-               sent to the device or not.
-
-
-What:          /sys/bus/usb/drivers/usbtmc/*/TermCharEnabled
-Date:          August 2008
-Contact:       Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Description:
-               This file determines if the TermChar is to be sent to the
-               device on every transaction or not.  For more details about
-               this, please see the document, "Universal Serial Bus Test and
-               Measurement Class Specification (USBTMC) Revision 1.0" as
-               published by the USB-IF.
-
-
-What:          /sys/bus/usb/drivers/usbtmc/*/auto_abort
-Date:          August 2008
-Contact:       Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Description:
-               This file determines if the transaction of the USB TMC
-               device is to be automatically aborted if there is any error.
-               For more details about this, please see the document,
-               "Universal Serial Bus Test and Measurement Class Specification
-               (USBTMC) Revision 1.0" as published by the USB-IF.
index b9e505cbe6b465ab416d76190783a98c9c00c2c6..0fcb81a1399b463c3d6c7a189a792d3dedd8d058 100644 (file)
@@ -102,11 +102,6 @@ struct usbtmc_device_data {
        /* coalesced usb488_caps from usbtmc_dev_capabilities */
        __u8 usb488_caps;
 
-       /* attributes from the USB TMC spec for this device */
-       u8 TermChar;
-       bool TermCharEnabled;
-       bool auto_abort;
-
        bool zombie; /* fd of disconnected device */
 
        struct usbtmc_dev_capabilities  capabilities;
@@ -196,11 +191,10 @@ static int usbtmc_open(struct inode *inode, struct file *filp)
 
        atomic_set(&file_data->closing, 0);
 
-       /* copy default values from device settings */
        file_data->timeout = USBTMC_TIMEOUT;
-       file_data->term_char = data->TermChar;
-       file_data->term_char_enabled = data->TermCharEnabled;
-       file_data->auto_abort = data->auto_abort;
+       file_data->term_char = '\n';
+       file_data->term_char_enabled = 0;
+       file_data->auto_abort = 0;
        file_data->eom_val = 1;
 
        INIT_LIST_HEAD(&file_data->file_elem);
@@ -1851,72 +1845,6 @@ static const struct attribute_group capability_attr_grp = {
        .attrs = capability_attrs,
 };
 
-static ssize_t TermChar_show(struct device *dev,
-                            struct device_attribute *attr, char *buf)
-{
-       struct usb_interface *intf = to_usb_interface(dev);
-       struct usbtmc_device_data *data = usb_get_intfdata(intf);
-
-       return sprintf(buf, "%c\n", data->TermChar);
-}
-
-static ssize_t TermChar_store(struct device *dev,
-                             struct device_attribute *attr,
-                             const char *buf, size_t count)
-{
-       struct usb_interface *intf = to_usb_interface(dev);
-       struct usbtmc_device_data *data = usb_get_intfdata(intf);
-
-       if (count < 1)
-               return -EINVAL;
-       data->TermChar = buf[0];
-       return count;
-}
-static DEVICE_ATTR_RW(TermChar);
-
-#define data_attribute(name)                                           \
-static ssize_t name##_show(struct device *dev,                         \
-                          struct device_attribute *attr, char *buf)    \
-{                                                                      \
-       struct usb_interface *intf = to_usb_interface(dev);             \
-       struct usbtmc_device_data *data = usb_get_intfdata(intf);       \
-                                                                       \
-       return sprintf(buf, "%d\n", data->name);                        \
-}                                                                      \
-static ssize_t name##_store(struct device *dev,                                \
-                           struct device_attribute *attr,              \
-                           const char *buf, size_t count)              \
-{                                                                      \
-       struct usb_interface *intf = to_usb_interface(dev);             \
-       struct usbtmc_device_data *data = usb_get_intfdata(intf);       \
-       ssize_t result;                                                 \
-       unsigned val;                                                   \
-                                                                       \
-       result = sscanf(buf, "%u\n", &val);                             \
-       if (result != 1)                                                \
-               result = -EINVAL;                                       \
-       data->name = val;                                               \
-       if (result < 0)                                                 \
-               return result;                                          \
-       else                                                            \
-               return count;                                           \
-}                                                                      \
-static DEVICE_ATTR_RW(name)
-
-data_attribute(TermCharEnabled);
-data_attribute(auto_abort);
-
-static struct attribute *data_attrs[] = {
-       &dev_attr_TermChar.attr,
-       &dev_attr_TermCharEnabled.attr,
-       &dev_attr_auto_abort.attr,
-       NULL,
-};
-
-static const struct attribute_group data_attr_grp = {
-       .attrs = data_attrs,
-};
-
 static int usbtmc_ioctl_indicator_pulse(struct usbtmc_device_data *data)
 {
        struct device *dev;
@@ -2420,8 +2348,6 @@ static int usbtmc_probe(struct usb_interface *intf,
 
        /* Initialize USBTMC bTag and other fields */
        data->bTag      = 1;
-       data->TermCharEnabled = 0;
-       data->TermChar = '\n';
        /*  2 <= bTag <= 127   USBTMC-USB488 subclass specification 4.3.1 */
        data->iin_bTag = 2;
 
@@ -2495,8 +2421,6 @@ static int usbtmc_probe(struct usb_interface *intf,
                }
        }
 
-       retcode = sysfs_create_group(&intf->dev.kobj, &data_attr_grp);
-
        retcode = usb_register_dev(intf, &usbtmc_class);
        if (retcode) {
                dev_err(&intf->dev, "Not able to get a minor (base %u, slice default): %d\n",
@@ -2510,7 +2434,6 @@ static int usbtmc_probe(struct usb_interface *intf,
 
 error_register:
        sysfs_remove_group(&intf->dev.kobj, &capability_attr_grp);
-       sysfs_remove_group(&intf->dev.kobj, &data_attr_grp);
        usbtmc_free_int(data);
 err_put:
        kref_put(&data->kref, usbtmc_delete);
@@ -2524,7 +2447,6 @@ static void usbtmc_disconnect(struct usb_interface *intf)
 
        usb_deregister_dev(intf, &usbtmc_class);
        sysfs_remove_group(&intf->dev.kobj, &capability_attr_grp);
-       sysfs_remove_group(&intf->dev.kobj, &data_attr_grp);
        mutex_lock(&data->io_mutex);
        data->zombie = 1;
        wake_up_interruptible_all(&data->waitq);