|
@@ -275,11 +275,16 @@ static int resize_async_buffer(struct comedi_device *dev,
|
|
|
static ssize_t show_max_read_buffer_kb(struct device *csdev,
|
|
|
struct device_attribute *attr, char *buf)
|
|
|
{
|
|
|
- struct comedi_file_info *info = dev_get_drvdata(csdev);
|
|
|
+ unsigned int minor = MINOR(csdev->devt);
|
|
|
+ struct comedi_file_info *info;
|
|
|
struct comedi_device *dev;
|
|
|
struct comedi_subdevice *s;
|
|
|
unsigned int size = 0;
|
|
|
|
|
|
+ info = comedi_file_info_from_minor(minor);
|
|
|
+ if (!info)
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
dev = info->device;
|
|
|
mutex_lock(&dev->mutex);
|
|
|
s = comedi_read_subdevice(info);
|
|
@@ -294,7 +299,8 @@ static ssize_t store_max_read_buffer_kb(struct device *csdev,
|
|
|
struct device_attribute *attr,
|
|
|
const char *buf, size_t count)
|
|
|
{
|
|
|
- struct comedi_file_info *info = dev_get_drvdata(csdev);
|
|
|
+ unsigned int minor = MINOR(csdev->devt);
|
|
|
+ struct comedi_file_info *info;
|
|
|
struct comedi_device *dev;
|
|
|
struct comedi_subdevice *s;
|
|
|
unsigned int size;
|
|
@@ -307,6 +313,10 @@ static ssize_t store_max_read_buffer_kb(struct device *csdev,
|
|
|
return -EINVAL;
|
|
|
size *= 1024;
|
|
|
|
|
|
+ info = comedi_file_info_from_minor(minor);
|
|
|
+ if (!info)
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
dev = info->device;
|
|
|
mutex_lock(&dev->mutex);
|
|
|
s = comedi_read_subdevice(info);
|
|
@@ -322,11 +332,16 @@ static ssize_t store_max_read_buffer_kb(struct device *csdev,
|
|
|
static ssize_t show_read_buffer_kb(struct device *csdev,
|
|
|
struct device_attribute *attr, char *buf)
|
|
|
{
|
|
|
- struct comedi_file_info *info = dev_get_drvdata(csdev);
|
|
|
+ unsigned int minor = MINOR(csdev->devt);
|
|
|
+ struct comedi_file_info *info;
|
|
|
struct comedi_device *dev;
|
|
|
struct comedi_subdevice *s;
|
|
|
unsigned int size = 0;
|
|
|
|
|
|
+ info = comedi_file_info_from_minor(minor);
|
|
|
+ if (!info)
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
dev = info->device;
|
|
|
mutex_lock(&dev->mutex);
|
|
|
s = comedi_read_subdevice(info);
|
|
@@ -341,7 +356,8 @@ static ssize_t store_read_buffer_kb(struct device *csdev,
|
|
|
struct device_attribute *attr,
|
|
|
const char *buf, size_t count)
|
|
|
{
|
|
|
- struct comedi_file_info *info = dev_get_drvdata(csdev);
|
|
|
+ unsigned int minor = MINOR(csdev->devt);
|
|
|
+ struct comedi_file_info *info;
|
|
|
struct comedi_device *dev;
|
|
|
struct comedi_subdevice *s;
|
|
|
unsigned int size;
|
|
@@ -354,6 +370,10 @@ static ssize_t store_read_buffer_kb(struct device *csdev,
|
|
|
return -EINVAL;
|
|
|
size *= 1024;
|
|
|
|
|
|
+ info = comedi_file_info_from_minor(minor);
|
|
|
+ if (!info)
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
dev = info->device;
|
|
|
mutex_lock(&dev->mutex);
|
|
|
s = comedi_read_subdevice(info);
|
|
@@ -370,11 +390,16 @@ static ssize_t show_max_write_buffer_kb(struct device *csdev,
|
|
|
struct device_attribute *attr,
|
|
|
char *buf)
|
|
|
{
|
|
|
- struct comedi_file_info *info = dev_get_drvdata(csdev);
|
|
|
+ unsigned int minor = MINOR(csdev->devt);
|
|
|
+ struct comedi_file_info *info;
|
|
|
struct comedi_device *dev;
|
|
|
struct comedi_subdevice *s;
|
|
|
unsigned int size = 0;
|
|
|
|
|
|
+ info = comedi_file_info_from_minor(minor);
|
|
|
+ if (!info)
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
dev = info->device;
|
|
|
mutex_lock(&dev->mutex);
|
|
|
s = comedi_write_subdevice(info);
|
|
@@ -389,7 +414,8 @@ static ssize_t store_max_write_buffer_kb(struct device *csdev,
|
|
|
struct device_attribute *attr,
|
|
|
const char *buf, size_t count)
|
|
|
{
|
|
|
- struct comedi_file_info *info = dev_get_drvdata(csdev);
|
|
|
+ unsigned int minor = MINOR(csdev->devt);
|
|
|
+ struct comedi_file_info *info;
|
|
|
struct comedi_device *dev;
|
|
|
struct comedi_subdevice *s;
|
|
|
unsigned int size;
|
|
@@ -402,6 +428,10 @@ static ssize_t store_max_write_buffer_kb(struct device *csdev,
|
|
|
return -EINVAL;
|
|
|
size *= 1024;
|
|
|
|
|
|
+ info = comedi_file_info_from_minor(minor);
|
|
|
+ if (!info)
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
dev = info->device;
|
|
|
mutex_lock(&dev->mutex);
|
|
|
s = comedi_write_subdevice(info);
|
|
@@ -417,11 +447,16 @@ static ssize_t store_max_write_buffer_kb(struct device *csdev,
|
|
|
static ssize_t show_write_buffer_kb(struct device *csdev,
|
|
|
struct device_attribute *attr, char *buf)
|
|
|
{
|
|
|
- struct comedi_file_info *info = dev_get_drvdata(csdev);
|
|
|
+ unsigned int minor = MINOR(csdev->devt);
|
|
|
+ struct comedi_file_info *info;
|
|
|
struct comedi_device *dev;
|
|
|
struct comedi_subdevice *s;
|
|
|
unsigned int size = 0;
|
|
|
|
|
|
+ info = comedi_file_info_from_minor(minor);
|
|
|
+ if (!info)
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
dev = info->device;
|
|
|
mutex_lock(&dev->mutex);
|
|
|
s = comedi_write_subdevice(info);
|
|
@@ -436,7 +471,8 @@ static ssize_t store_write_buffer_kb(struct device *csdev,
|
|
|
struct device_attribute *attr,
|
|
|
const char *buf, size_t count)
|
|
|
{
|
|
|
- struct comedi_file_info *info = dev_get_drvdata(csdev);
|
|
|
+ unsigned int minor = MINOR(csdev->devt);
|
|
|
+ struct comedi_file_info *info;
|
|
|
struct comedi_device *dev;
|
|
|
struct comedi_subdevice *s;
|
|
|
unsigned int size;
|
|
@@ -449,6 +485,10 @@ static ssize_t store_write_buffer_kb(struct device *csdev,
|
|
|
return -EINVAL;
|
|
|
size *= 1024;
|
|
|
|
|
|
+ info = comedi_file_info_from_minor(minor);
|
|
|
+ if (!info)
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
dev = info->device;
|
|
|
mutex_lock(&dev->mutex);
|
|
|
s = comedi_write_subdevice(info);
|
|
@@ -2416,7 +2456,6 @@ struct comedi_device *comedi_alloc_board_minor(struct device *hardware_device)
|
|
|
MKDEV(COMEDI_MAJOR, i), NULL, "comedi%i", i);
|
|
|
if (!IS_ERR(csdev))
|
|
|
dev->class_dev = csdev;
|
|
|
- dev_set_drvdata(csdev, info);
|
|
|
|
|
|
/* Note: dev->mutex needs to be unlocked by the caller. */
|
|
|
return dev;
|
|
@@ -2482,7 +2521,6 @@ int comedi_alloc_subdevice_minor(struct comedi_subdevice *s)
|
|
|
dev->minor, s->index);
|
|
|
if (!IS_ERR(csdev))
|
|
|
s->class_dev = csdev;
|
|
|
- dev_set_drvdata(csdev, info);
|
|
|
|
|
|
return 0;
|
|
|
}
|