Commit b32abf8f authored by Guido Kiener's avatar Guido Kiener Committed by Greg Kroah-Hartman

usb: usbtmc: Remove sysfs group TermChar and auto_abort

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: default avatarGuido Kiener <guido.kiener@rohde-schwarz.com>
Reviewed-by: default avatarSteve Bayless <steve_bayless@keysight.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 58488283
...@@ -25,38 +25,3 @@ Description: ...@@ -25,38 +25,3 @@ Description:
4.2.2. 4.2.2.
The files are read only. 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.
...@@ -102,11 +102,6 @@ struct usbtmc_device_data { ...@@ -102,11 +102,6 @@ struct usbtmc_device_data {
/* coalesced usb488_caps from usbtmc_dev_capabilities */ /* coalesced usb488_caps from usbtmc_dev_capabilities */
__u8 usb488_caps; __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 */ bool zombie; /* fd of disconnected device */
struct usbtmc_dev_capabilities capabilities; struct usbtmc_dev_capabilities capabilities;
...@@ -196,11 +191,10 @@ static int usbtmc_open(struct inode *inode, struct file *filp) ...@@ -196,11 +191,10 @@ static int usbtmc_open(struct inode *inode, struct file *filp)
atomic_set(&file_data->closing, 0); atomic_set(&file_data->closing, 0);
/* copy default values from device settings */
file_data->timeout = USBTMC_TIMEOUT; file_data->timeout = USBTMC_TIMEOUT;
file_data->term_char = data->TermChar; file_data->term_char = '\n';
file_data->term_char_enabled = data->TermCharEnabled; file_data->term_char_enabled = 0;
file_data->auto_abort = data->auto_abort; file_data->auto_abort = 0;
file_data->eom_val = 1; file_data->eom_val = 1;
INIT_LIST_HEAD(&file_data->file_elem); INIT_LIST_HEAD(&file_data->file_elem);
...@@ -1851,72 +1845,6 @@ static const struct attribute_group capability_attr_grp = { ...@@ -1851,72 +1845,6 @@ static const struct attribute_group capability_attr_grp = {
.attrs = capability_attrs, .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) static int usbtmc_ioctl_indicator_pulse(struct usbtmc_device_data *data)
{ {
struct device *dev; struct device *dev;
...@@ -2420,8 +2348,6 @@ static int usbtmc_probe(struct usb_interface *intf, ...@@ -2420,8 +2348,6 @@ static int usbtmc_probe(struct usb_interface *intf,
/* Initialize USBTMC bTag and other fields */ /* Initialize USBTMC bTag and other fields */
data->bTag = 1; data->bTag = 1;
data->TermCharEnabled = 0;
data->TermChar = '\n';
/* 2 <= bTag <= 127 USBTMC-USB488 subclass specification 4.3.1 */ /* 2 <= bTag <= 127 USBTMC-USB488 subclass specification 4.3.1 */
data->iin_bTag = 2; data->iin_bTag = 2;
...@@ -2495,8 +2421,6 @@ static int usbtmc_probe(struct usb_interface *intf, ...@@ -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); retcode = usb_register_dev(intf, &usbtmc_class);
if (retcode) { if (retcode) {
dev_err(&intf->dev, "Not able to get a minor (base %u, slice default): %d\n", 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, ...@@ -2510,7 +2434,6 @@ static int usbtmc_probe(struct usb_interface *intf,
error_register: error_register:
sysfs_remove_group(&intf->dev.kobj, &capability_attr_grp); sysfs_remove_group(&intf->dev.kobj, &capability_attr_grp);
sysfs_remove_group(&intf->dev.kobj, &data_attr_grp);
usbtmc_free_int(data); usbtmc_free_int(data);
err_put: err_put:
kref_put(&data->kref, usbtmc_delete); kref_put(&data->kref, usbtmc_delete);
...@@ -2524,7 +2447,6 @@ static void usbtmc_disconnect(struct usb_interface *intf) ...@@ -2524,7 +2447,6 @@ static void usbtmc_disconnect(struct usb_interface *intf)
usb_deregister_dev(intf, &usbtmc_class); usb_deregister_dev(intf, &usbtmc_class);
sysfs_remove_group(&intf->dev.kobj, &capability_attr_grp); sysfs_remove_group(&intf->dev.kobj, &capability_attr_grp);
sysfs_remove_group(&intf->dev.kobj, &data_attr_grp);
mutex_lock(&data->io_mutex); mutex_lock(&data->io_mutex);
data->zombie = 1; data->zombie = 1;
wake_up_interruptible_all(&data->waitq); wake_up_interruptible_all(&data->waitq);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment