staging:iio:magnetometer:ak8975: remove 'mode' attribute
authorLeed Aguilar <leed.aguilar@ti.com>
Wed, 6 Jun 2012 20:16:02 +0000 (16:16 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 7 Jun 2012 05:32:59 +0000 (14:32 +0900)
The raw data reading process (ak8975_read_axis) sets the
single measurement mode to take a sample and once the
conversion is completed the device enters into power-down
mode automatically, therefore there is no need to enable
a flag for this to happen.

Signed-off-by: Leed Aguilar <leed.aguilar@ti.com>
Acked-by: Jonathan Cameron <jic23@kernel.org>
Acked-by: Laxman Dewangan <ldewangan@nvidia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/iio/magnetometer/ak8975.c

index 11bde3fd93b5e2d182e10755e466909faa69ce25..01b4b07c227b3be1c94827b094afad5fed4e7ecf 100644 (file)
@@ -92,7 +92,6 @@ struct ak8975_data {
        struct mutex            lock;
        u8                      asa[3];
        long                    raw_to_gauss[3];
-       bool                    mode;
        u8                      reg_cache[AK8975_MAX_REGS];
        int                     eoc_gpio;
        int                     eoc_irq;
@@ -247,60 +246,6 @@ static int ak8975_setup(struct i2c_client *client)
        return 0;
 }
 
-/*
- * Shows the device's mode.  0 = off, 1 = on.
- */
-static ssize_t show_mode(struct device *dev, struct device_attribute *devattr,
-                        char *buf)
-{
-       struct iio_dev *indio_dev = dev_to_iio_dev(dev);
-       struct ak8975_data *data = iio_priv(indio_dev);
-
-       return sprintf(buf, "%u\n", data->mode);
-}
-
-/*
- * Sets the device's mode.  0 = off, 1 = on.  The device's mode must be on
- * for the magn raw attributes to be available.
- */
-static ssize_t store_mode(struct device *dev, struct device_attribute *devattr,
-                         const char *buf, size_t count)
-{
-       struct iio_dev *indio_dev = dev_to_iio_dev(dev);
-       struct ak8975_data *data = iio_priv(indio_dev);
-       struct i2c_client *client = data->client;
-       bool value;
-       int ret;
-
-       /* Convert mode string and do some basic sanity checking on it.
-          only 0 or 1 are valid. */
-       ret = strtobool(buf, &value);
-       if (ret < 0)
-               return ret;
-
-       mutex_lock(&data->lock);
-
-       /* Write the mode to the device. */
-       if (data->mode != value) {
-               ret = ak8975_write_data(client,
-                                       AK8975_REG_CNTL,
-                                       (u8)value,
-                                       AK8975_REG_CNTL_MODE_MASK,
-                                       AK8975_REG_CNTL_MODE_SHIFT);
-
-               if (ret < 0) {
-                       dev_err(&client->dev, "Error in setting mode\n");
-                       mutex_unlock(&data->lock);
-                       return ret;
-               }
-               data->mode = value;
-       }
-
-       mutex_unlock(&data->lock);
-
-       return count;
-}
-
 static int wait_conversion_complete_gpio(struct ak8975_data *data)
 {
        struct i2c_client *client = data->client;
@@ -368,12 +313,6 @@ static int ak8975_read_axis(struct iio_dev *indio_dev, int index, int *val)
 
        mutex_lock(&data->lock);
 
-       if (data->mode == 0) {
-               dev_err(&client->dev, "Operating mode is in power down mode\n");
-               ret = -EBUSY;
-               goto exit;
-       }
-
        /* Set up the device for taking a sample. */
        ret = ak8975_write_data(client,
                                AK8975_REG_CNTL,
@@ -465,19 +404,7 @@ static const struct iio_chan_spec ak8975_channels[] = {
        AK8975_CHANNEL(X, 0), AK8975_CHANNEL(Y, 1), AK8975_CHANNEL(Z, 2),
 };
 
-static IIO_DEVICE_ATTR(mode, S_IRUGO | S_IWUSR, show_mode, store_mode, 0);
-
-static struct attribute *ak8975_attr[] = {
-       &iio_dev_attr_mode.dev_attr.attr,
-       NULL
-};
-
-static struct attribute_group ak8975_attr_group = {
-       .attrs = ak8975_attr,
-};
-
 static const struct iio_info ak8975_info = {
-       .attrs = &ak8975_attr_group,
        .read_raw = &ak8975_read_raw,
        .driver_module = THIS_MODULE,
 };