1. 16 7月, 2012 1 次提交
    • P
      iio: fix pointer cast warning · 79587623
      Peter Meerwald 提交于
      fix compile warning reported by Fengguang Wu:
      
      drivers/iio/light/adjd_s311.c: In function 'adjd_s311_trigger_handler':
      drivers/iio/light/adjd_s311.c:188:12: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
      drivers/iio/light/adjd_s311.c:188:4: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
      
         185              }
         186
         187              if (indio_dev->scan_timestamp)
       > 188                      *(s64 *)((phys_addr_t)data->buffer + ALIGN(len, sizeof(s64)))
         189                              = time_ns;
         190              iio_push_to_buffer(buffer, (u8 *)data->buffer, time_ns);
         191
      Signed-off-by: NPeter Meerwald <pmeerw@pmeerw.net>
      Reported-by: NFengguang Wu <fengguang.wu@intel.com>
      Signed-off-by: NJonathan Cameron <jic23@kernel.org>
      79587623
  2. 14 7月, 2012 4 次提交
    • L
      staging:iio:tsl2x7x: Ensure request_irq and free_irq dev_id parameter match · d291d5f6
      Lars-Peter Clausen 提交于
      The data parameters for request_irq and free_irq have to match, otherwise the
      IRQ wont be freed.
      
      The issue has been discovered using the following coccinelle patch:
      
      // <smpl>
      @r1@
      type T;
      T data;
      @@
      (
      request_irq(..., (void *)data)
      |
      request_irq(..., data)
      |
      request_threaded_irq(..., (void *)data)
      |
      request_threaded_irq(..., data)
      )
      
      @r2@
      type r1.T;
      T data;
      position p;
      @@
      (
      free_irq@p(..., (void *)data)
      |
      free_irq@p(..., data)
      )
      
      @depends on r1@
      position p != r2.p;
      @@
      *free_irq@p(...)
      
      // </smpl>
      
      Cc: Jon Brenner <jbrenner@taosinc.com>
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NJonathan Cameron <jic23@kernel.org>
      d291d5f6
    • L
      staging:iio:lpc32xx_adc: Ensure request_irq and free_irq dev_id parameter match · 165d0c52
      Lars-Peter Clausen 提交于
      The data parameters for request_irq and free_irq have to match, otherwise the
      IRQ wont be freed.
      
      The issue has been discovered using the following coccinelle patch:
      
      // <smpl>
      @r1@
      type T;
      T data;
      @@
      (
      request_irq(..., (void *)data)
      |
      request_irq(..., data)
      |
      request_threaded_irq(..., (void *)data)
      |
      request_threaded_irq(..., data)
      )
      
      @r2@
      type r1.T;
      T data;
      position p;
      @@
      (
      free_irq@p(..., (void *)data)
      |
      free_irq@p(..., data)
      )
      
      @depends on r1@
      position p != r2.p;
      @@
      *free_irq@p(...)
      
      // </smpl>
      
      Cc: Roland Stigge <stigge@antcom.de>
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NJonathan Cameron <jic23@kernel.org>
      165d0c52
    • L
      staging:iio:tsl2x7x: Fix client data inconsistency · 79d2a6bd
      Lars-Peter Clausen 提交于
      In probe the I2C client data is set to the iio_dev struct in probe(), but
      assumed to be the tsl2X7X_chip struct in remove(). Fix this by reading the
      client data back as iio_dev as well.
      
      The issue has been discovered using the following coccinelle patch:
      
      // <smpl>
      @r1@
      type T;
      T data;
      expression dev;
      @@
      (
      i2c_set_clientdata(dev, (void *)data)
      |
      i2c_set_clientdata(dev, data)
      )
      
      @r2@
      type r1.T;
      T data;
      position p;
      expression dev;
      @@
      data = i2c_get_clientdata@p(dev)
      
      @depends on r1@
      position p != r2.p;
      expression dev;
      identifier data;
      @@
      *data = i2c_get_clientdata@p(dev)
      // </smpl>
      
      Cc: Jon Brenner <jbrenner@taosinc.com>
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NJonathan Cameron <jic23@kernel.org>
      79d2a6bd
    • L
      staging:iio:adis16260: Fix drvdata inconsistency · 97271c3b
      Lars-Peter Clausen 提交于
      The SPI drvdata is set to adis16260_state struct in probe(), but assumed to be
      the iio_dev struct in remove(). Fix this by setting it to the iio_dev in
      probe().
      
      The issue has been discovered using the following coccinelle patch:
      
      // <smpl>
      @r1@
      type T;
      T data;
      expression dev;
      @@
      (
      spi_set_drvdata(dev, (void *)data)
      |
      spi_set_drvdata(dev, data)
      )
      
      @r2@
      type r1.T;
      T data;
      position p;
      expression dev;
      @@
      data = spi_get_drvdata@p(dev)
      
      @depends on r1@
      position p != r2.p;
      expression dev;
      identifier data;
      @@
      *data = spi_get_drvdata@p(dev)
      // </smpl>
      Signed-off-by: NLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: NJonathan Cameron <jic23@kernel.org>
      97271c3b
  3. 13 7月, 2012 35 次提交