/drivers/net/wimax/i2400m/sysfs.c
http://github.com/mirrors/linux · C · 65 lines · 42 code · 9 blank · 14 comment · 9 complexity · 1ee69571c0a199e4fd90f63bb64916e8 MD5 · raw file
- // SPDX-License-Identifier: GPL-2.0-only
- /*
- * Intel Wireless WiMAX Connection 2400m
- * Sysfs interfaces to show driver and device information
- *
- * Copyright (C) 2007 Intel Corporation <linux-wimax@intel.com>
- * Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
- */
- #include <linux/netdevice.h>
- #include <linux/etherdevice.h>
- #include <linux/spinlock.h>
- #include <linux/device.h>
- #include "i2400m.h"
- #define D_SUBMODULE sysfs
- #include "debug-levels.h"
- /*
- * Set the idle timeout (msecs)
- *
- * FIXME: eventually this should be a common WiMAX stack method, but
- * would like to wait to see how other devices manage it.
- */
- static
- ssize_t i2400m_idle_timeout_store(struct device *dev,
- struct device_attribute *attr,
- const char *buf, size_t size)
- {
- ssize_t result;
- struct i2400m *i2400m = net_dev_to_i2400m(to_net_dev(dev));
- unsigned val;
- result = -EINVAL;
- if (sscanf(buf, "%u\n", &val) != 1)
- goto error_no_unsigned;
- if (val != 0 && (val < 100 || val > 300000 || val % 100 != 0)) {
- dev_err(dev, "idle_timeout: %u: invalid msecs specification; "
- "valid values are 0, 100-300000 in 100 increments\n",
- val);
- goto error_bad_value;
- }
- result = i2400m_set_idle_timeout(i2400m, val);
- if (result >= 0)
- result = size;
- error_no_unsigned:
- error_bad_value:
- return result;
- }
- static
- DEVICE_ATTR_WO(i2400m_idle_timeout);
- static
- struct attribute *i2400m_dev_attrs[] = {
- &dev_attr_i2400m_idle_timeout.attr,
- NULL,
- };
- struct attribute_group i2400m_dev_attr_group = {
- .name = NULL, /* we want them in the same directory */
- .attrs = i2400m_dev_attrs,
- };