]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge 4.3-rc7 into staging-next
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 27 Oct 2015 00:13:38 +0000 (09:13 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 27 Oct 2015 00:13:38 +0000 (09:13 +0900)
We want the other staging patches in this branch as well.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1  2 
MAINTAINERS
drivers/iio/accel/st_accel_core.c
drivers/staging/iio/accel/sca3000_ring.c
drivers/staging/iio/adc/mxs-lradc.c
drivers/staging/lustre/lustre/llite/dir.c

diff --combined MAINTAINERS
index 56215b0b8944b35850b25bb8b307c35768627858,9de185da5f5b0dfe1be0730b8248b3aff44e0c84..84921177d58a9ed92351524e0e1eb724625f3593
@@@ -894,11 -894,12 +894,12 @@@ M:      Lennert Buytenhek <kernel@wantstofly
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
  
- ARM/Allwinner A1X SoC support
+ ARM/Allwinner sunXi SoC support
  M:    Maxime Ripard <maxime.ripard@free-electrons.com>
+ M:    Chen-Yu Tsai <wens@csie.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
- N:    sun[x4567]i
+ N:    sun[x456789]i
  
  ARM/Allwinner SoC Clock Support
  M:    Emilio López <emilio@elopez.com.ar>
@@@ -3591,6 -3592,13 +3592,13 @@@ F:    drivers/gpu/drm/i915
  F:    include/drm/i915*
  F:    include/uapi/drm/i915*
  
+ DRM DRIVERS FOR ATMEL HLCDC
+ M:    Boris Brezillon <boris.brezillon@free-electrons.com>
+ L:    dri-devel@lists.freedesktop.org
+ S:    Supported
+ F:    drivers/gpu/drm/atmel-hlcdc/
+ F:    Documentation/devicetree/bindings/drm/atmel/
  DRM DRIVERS FOR EXYNOS
  M:    Inki Dae <inki.dae@samsung.com>
  M:    Joonyoung Shim <jy0922.shim@samsung.com>
@@@ -3619,6 -3627,14 +3627,14 @@@ S:    Maintaine
  F:    drivers/gpu/drm/imx/
  F:    Documentation/devicetree/bindings/drm/imx/
  
+ DRM DRIVERS FOR GMA500 (Poulsbo, Moorestown and derivative chipsets)
+ M:    Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
+ L:    dri-devel@lists.freedesktop.org
+ T:    git git://github.com/patjak/drm-gma500
+ S:    Maintained
+ F:    drivers/gpu/drm/gma500
+ F:    include/drm/gma500*
  DRM DRIVERS FOR NVIDIA TEGRA
  M:    Thierry Reding <thierry.reding@gmail.com>
  M:    Terje Bergström <tbergstrom@nvidia.com>
@@@ -6682,12 -6698,6 +6698,12 @@@ W:    http://linuxtv.or
  S:    Maintained
  F:    drivers/media/radio/radio-maxiradio*
  
 +MCP4531 MICROCHIP DIGITAL POTENTIOMETER DRIVER
 +M:    Peter Rosin <peda@axentia.se>
 +L:    linux-iio@vger.kernel.org
 +S:    Maintained
 +F:    drivers/iio/potentiometer/mcp4531.c
 +
  MEDIA DRIVERS FOR RENESAS - VSP1
  M:    Laurent Pinchart <laurent.pinchart@ideasonboard.com>
  L:    linux-media@vger.kernel.org
@@@ -6784,7 -6794,6 +6800,6 @@@ F:      drivers/scsi/megaraid
  
  MELLANOX ETHERNET DRIVER (mlx4_en)
  M:    Amir Vadai <amirv@mellanox.com>
- M:    Ido Shamay <idos@mellanox.com>
  L:    netdev@vger.kernel.org
  S:    Supported
  W:    http://www.mellanox.com
@@@ -6924,13 -6933,6 +6939,13 @@@ S:    Supporte
  F:    include/linux/mlx5/
  F:    drivers/infiniband/hw/mlx5/
  
 +MELEXIS MLX90614 DRIVER
 +M:    Crt Mori <cmo@melexis.com>
 +L:    linux-iio@vger.kernel.org
 +W:    http://www.melexis.com
 +S:    Supported
 +F:    drivers/iio/temperature/mlx90614.c
 +
  MN88472 MEDIA DRIVER
  M:    Antti Palosaari <crope@iki.fi>
  L:    linux-media@vger.kernel.org
@@@ -9114,6 -9116,15 +9129,15 @@@ S: Supporte
  F: Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt
  F: drivers/net/ethernet/synopsys/dwc_eth_qos.c
  
+ SYNOPSYS DESIGNWARE I2C DRIVER
+ M:    Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+ M:    Jarkko Nikula <jarkko.nikula@linux.intel.com>
+ M:    Mika Westerberg <mika.westerberg@linux.intel.com>
+ L:    linux-i2c@vger.kernel.org
+ S:    Maintained
+ F:    drivers/i2c/busses/i2c-designware-*
+ F:    include/linux/platform_data/i2c-designware.h
  SYNOPSYS DESIGNWARE MMC/SD/SDIO DRIVER
  M:    Seungwon Jeon <tgih.jun@samsung.com>
  M:    Jaehoon Chung <jh80.chung@samsung.com>
@@@ -9991,10 -10002,8 +10015,10 @@@ F:  drivers/staging/vt665?
  STAGING - WILC1000 WIFI DRIVER
  M:    Johnny Kim <johnny.kim@atmel.com>
  M:    Rachel Kim <rachel.kim@atmel.com>
 -M:    Dean Lee <dean.lee@atmel.com>
  M:    Chris Park <chris.park@atmel.com>
 +M:    Tony Cho <tony.cho@atmel.com>
 +M:    Glen Lee <glen.lee@atmel.com>
 +M:    Leo Kim <leo.kim@atmel.com>
  L:    linux-wireless@vger.kernel.org
  S:    Supported
  F:    drivers/staging/wilc1000/
@@@ -11666,6 -11675,7 +11690,7 @@@ F:   drivers/tty/serial/zs.
  ZSMALLOC COMPRESSED SLAB MEMORY ALLOCATOR
  M:    Minchan Kim <minchan@kernel.org>
  M:    Nitin Gupta <ngupta@vflare.org>
+ R:    Sergey Senozhatsky <sergey.senozhatsky.work@gmail.com>
  L:    linux-mm@kvack.org
  S:    Maintained
  F:    mm/zsmalloc.c
index dab8b76c14270564efa0eae3665bfa9d716765dc,fb93111104249bcc93d390e7492c96f4c211ac27..197a08b4e2f3634ad48af3f246fb855d04f8b12d
  #define ST_ACCEL_4_BDU_MASK                   0x40
  #define ST_ACCEL_4_DRDY_IRQ_ADDR              0x21
  #define ST_ACCEL_4_DRDY_IRQ_INT1_MASK         0x04
- #define ST_ACCEL_4_IG1_EN_ADDR                        0x21
- #define ST_ACCEL_4_IG1_EN_MASK                        0x08
  #define ST_ACCEL_4_MULTIREAD_BIT              true
  
  /* CUSTOM VALUES FOR SENSOR 5 */
@@@ -489,10 -487,6 +487,6 @@@ static const struct st_sensor_settings 
                .drdy_irq = {
                        .addr = ST_ACCEL_4_DRDY_IRQ_ADDR,
                        .mask_int1 = ST_ACCEL_4_DRDY_IRQ_INT1_MASK,
-                       .ig1 = {
-                               .en_addr = ST_ACCEL_4_IG1_EN_ADDR,
-                               .en_mask = ST_ACCEL_4_IG1_EN_MASK,
-                       },
                },
                .multi_read_bit = ST_ACCEL_4_MULTIREAD_BIT,
                .bootime = 2, /* guess */
@@@ -618,7 -612,6 +612,7 @@@ static const struct iio_info accel_inf
        .attrs = &st_accel_attribute_group,
        .read_raw = &st_accel_read_raw,
        .write_raw = &st_accel_write_raw,
 +      .debugfs_reg_access = &st_sensors_debugfs_reg_access,
  };
  
  #ifdef CONFIG_IIO_TRIGGER
index 6d19e127cf406257d8d49b7b58ba867bb989b035,bd2c69f85949ba6ce40b80c588a2e6a4036964a2..ac35d031f81b44c699c0948ebe3b8dea5342c746
@@@ -116,7 -116,7 +116,7 @@@ static int sca3000_read_first_n_hw_rb(s
        if (ret)
                goto error_ret;
  
-       for (i = 0; i < num_read; i++)
+       for (i = 0; i < num_read / sizeof(u16); i++)
                *(((u16 *)rx) + i) = be16_to_cpup((__be16 *)rx + i);
  
        if (copy_to_user(buf, rx, num_read))
@@@ -267,7 -267,7 +267,7 @@@ int sca3000_configure_ring(struct iio_d
        struct iio_buffer *buffer;
  
        buffer = sca3000_rb_allocate(indio_dev);
 -      if (buffer == NULL)
 +      if (!buffer)
                return -ENOMEM;
        indio_dev->modes |= INDIO_BUFFER_HARDWARE;
  
index 407d4a2c8eda0887af8e5c949d98657c69357747,47fc00a3f63bc9e5106f0c77354c7cf8e309f36e..d997d9c74ca824740a825cc5399c12be5d491875
@@@ -108,12 -108,12 +108,12 @@@ static const char * const mx28_lradc_ir
  struct mxs_lradc_of_config {
        const int               irq_count;
        const char * const      *irq_name;
 -      const uint32_t          *vref_mv;
 +      const u32               *vref_mv;
  };
  
  #define VREF_MV_BASE 1850
  
 -static const uint32_t mx23_vref_mv[LRADC_MAX_TOTAL_CHANS] = {
 +static const u32 mx23_vref_mv[LRADC_MAX_TOTAL_CHANS] = {
        VREF_MV_BASE,           /* CH0 */
        VREF_MV_BASE,           /* CH1 */
        VREF_MV_BASE,           /* CH2 */
        VREF_MV_BASE * 4,       /* CH15 VDD5V */
  };
  
 -static const uint32_t mx28_vref_mv[LRADC_MAX_TOTAL_CHANS] = {
 +static const u32 mx28_vref_mv[LRADC_MAX_TOTAL_CHANS] = {
        VREF_MV_BASE,           /* CH0 */
        VREF_MV_BASE,           /* CH1 */
        VREF_MV_BASE,           /* CH2 */
@@@ -198,14 -198,14 +198,14 @@@ struct mxs_lradc 
  
        struct clk              *clk;
  
 -      uint32_t                *buffer;
 +      u32                     *buffer;
        struct iio_trigger      *trig;
  
        struct mutex            lock;
  
        struct completion       completion;
  
 -      const uint32_t          *vref_mv;
 +      const u32               *vref_mv;
        struct mxs_lradc_scale  scale_avail[LRADC_MAX_TOTAL_CHANS][2];
        unsigned long           is_divided;
  
@@@ -425,7 -425,7 +425,7 @@@ static void mxs_lradc_map_channel(struc
                                  unsigned ch)
  {
        mxs_lradc_reg_clear(lradc, LRADC_CTRL4_LRADCSELECT_MASK(vch),
 -                              LRADC_CTRL4);
 +                          LRADC_CTRL4);
        mxs_lradc_reg_set(lradc, LRADC_CTRL4_LRADCSELECT(vch, ch), LRADC_CTRL4);
  }
  
@@@ -440,8 -440,8 +440,8 @@@ static void mxs_lradc_setup_ts_channel(
         * otherwise, the IRQs will not fire."
         */
        mxs_lradc_reg_wrt(lradc, LRADC_CH_ACCUMULATE |
 -                      LRADC_CH_NUM_SAMPLES(lradc->over_sample_cnt - 1),
 -                      LRADC_CH(ch));
 +                        LRADC_CH_NUM_SAMPLES(lradc->over_sample_cnt - 1),
 +                        LRADC_CH(ch));
  
        /* from the datasheet:
         * "Software must clear this register in preparation for a
         * the LRADC will not trigger the delay group."
         */
        mxs_lradc_reg_wrt(lradc, LRADC_DELAY_TRIGGER(1 << ch) |
 -              LRADC_DELAY_TRIGGER_DELAYS(0) |
 -              LRADC_DELAY_LOOP(lradc->over_sample_cnt - 1) |
 -              LRADC_DELAY_DELAY(lradc->over_sample_delay - 1),
 -                      LRADC_DELAY(3));
 +                        LRADC_DELAY_TRIGGER_DELAYS(0) |
 +                        LRADC_DELAY_LOOP(lradc->over_sample_cnt - 1) |
 +                        LRADC_DELAY_DELAY(lradc->over_sample_delay - 1),
 +                        LRADC_DELAY(3));
  
        mxs_lradc_reg_clear(lradc, LRADC_CTRL1_LRADC_IRQ(ch), LRADC_CTRL1);
  
         * SoC's delay unit and start the conversion later
         * and automatically.
         */
 -      mxs_lradc_reg_wrt(lradc,
 +      mxs_lradc_reg_wrt(
 +              lradc,
                LRADC_DELAY_TRIGGER(0) | /* don't trigger ADC */
                LRADC_DELAY_TRIGGER_DELAYS(BIT(3)) | /* trigger DELAY unit#3 */
                LRADC_DELAY_KICK |
                LRADC_DELAY_DELAY(lradc->settling_delay),
 -                      LRADC_DELAY(2));
 +              LRADC_DELAY(2));
  }
  
  /*
   * hardware report one interrupt if both conversions are done
   */
  static void mxs_lradc_setup_ts_pressure(struct mxs_lradc *lradc, unsigned ch1,
 -                                                      unsigned ch2)
 +                                      unsigned ch2)
  {
        u32 reg;
  
        mxs_lradc_reg_clear(lradc, LRADC_CH_VALUE_MASK, LRADC_CH(ch2));
  
        /* prepare the delay/loop unit according to the oversampling count */
 -      mxs_lradc_reg_wrt(lradc, LRADC_DELAY_TRIGGER(1 << ch1) |
 -              LRADC_DELAY_TRIGGER(1 << ch2) | /* start both channels */
 -              LRADC_DELAY_TRIGGER_DELAYS(0) |
 -              LRADC_DELAY_LOOP(lradc->over_sample_cnt - 1) |
 -              LRADC_DELAY_DELAY(lradc->over_sample_delay - 1),
 -                                      LRADC_DELAY(3));
 +      mxs_lradc_reg_wrt(
 +                  lradc,
 +                  LRADC_DELAY_TRIGGER(1 << ch1) |
 +                  LRADC_DELAY_TRIGGER(1 << ch2) | /* start both channels */
 +                  LRADC_DELAY_TRIGGER_DELAYS(0) |
 +                  LRADC_DELAY_LOOP(lradc->over_sample_cnt - 1) |
 +                  LRADC_DELAY_DELAY(lradc->over_sample_delay - 1),
 +                  LRADC_DELAY(3));
  
        mxs_lradc_reg_clear(lradc, LRADC_CTRL1_LRADC_IRQ(ch2), LRADC_CTRL1);
  
         * SoC's delay unit and start the conversion later
         * and automatically.
         */
 -      mxs_lradc_reg_wrt(lradc,
 +      mxs_lradc_reg_wrt(
 +              lradc,
                LRADC_DELAY_TRIGGER(0) | /* don't trigger ADC */
                LRADC_DELAY_TRIGGER_DELAYS(BIT(3)) | /* trigger DELAY unit#3 */
                LRADC_DELAY_KICK |
  }
  
  static unsigned mxs_lradc_read_raw_channel(struct mxs_lradc *lradc,
 -                                                      unsigned channel)
 +                                         unsigned channel)
  {
        u32 reg;
        unsigned num_samples, val;
  }
  
  static unsigned mxs_lradc_read_ts_pressure(struct mxs_lradc *lradc,
 -                                              unsigned ch1, unsigned ch2)
 +                                         unsigned ch1, unsigned ch2)
  {
        u32 reg, mask;
        unsigned pressure, m1, m2;
@@@ -611,7 -607,7 +611,7 @@@ static void mxs_lradc_setup_touch_detec
         */
        mxs_lradc_reg_clear(lradc, mxs_lradc_plate_mask(lradc), LRADC_CTRL0);
        mxs_lradc_reg_set(lradc, mxs_lradc_touch_detect_bit(lradc),
 -                              LRADC_CTRL0);
 +                        LRADC_CTRL0);
  }
  
  /*
@@@ -679,7 -675,7 +679,7 @@@ static void mxs_lradc_prepare_pressure(
        mxs_lradc_map_channel(lradc, TOUCHSCREEN_VCHANNEL1, TS_CH_YM);
        mxs_lradc_map_channel(lradc, TOUCHSCREEN_VCHANNEL2, TS_CH_XP);
        mxs_lradc_setup_ts_pressure(lradc, TOUCHSCREEN_VCHANNEL2,
 -                                              TOUCHSCREEN_VCHANNEL1);
 +                                  TOUCHSCREEN_VCHANNEL1);
  }
  
  static void mxs_lradc_enable_touch_detection(struct mxs_lradc *lradc)
  
        lradc->cur_plate = LRADC_TOUCH;
        mxs_lradc_reg_clear(lradc, LRADC_CTRL1_TOUCH_DETECT_IRQ |
 -                              LRADC_CTRL1_TOUCH_DETECT_IRQ_EN, LRADC_CTRL1);
 +                          LRADC_CTRL1_TOUCH_DETECT_IRQ_EN, LRADC_CTRL1);
        mxs_lradc_reg_set(lradc, LRADC_CTRL1_TOUCH_DETECT_IRQ_EN, LRADC_CTRL1);
  }
  
  static void mxs_lradc_start_touch_event(struct mxs_lradc *lradc)
  {
 -      mxs_lradc_reg_clear(lradc, LRADC_CTRL1_TOUCH_DETECT_IRQ_EN,
 -                              LRADC_CTRL1);
 +      mxs_lradc_reg_clear(lradc,
 +                          LRADC_CTRL1_TOUCH_DETECT_IRQ_EN,
 +                          LRADC_CTRL1);
        mxs_lradc_reg_set(lradc,
 -              LRADC_CTRL1_LRADC_IRQ_EN(TOUCHSCREEN_VCHANNEL1), LRADC_CTRL1);
 +                        LRADC_CTRL1_LRADC_IRQ_EN(TOUCHSCREEN_VCHANNEL1),
 +                        LRADC_CTRL1);
        /*
         * start with the Y-pos, because it uses nearly the same plate
         * settings like the touch detection
@@@ -726,14 -720,12 +726,14 @@@ static void mxs_lradc_complete_touch_ev
         */
        mxs_lradc_reg_wrt(lradc, 0, LRADC_CH(TOUCHSCREEN_VCHANNEL1));
        mxs_lradc_reg_clear(lradc,
 -              LRADC_CTRL1_LRADC_IRQ(TOUCHSCREEN_VCHANNEL1) |
 -              LRADC_CTRL1_LRADC_IRQ(TOUCHSCREEN_VCHANNEL2), LRADC_CTRL1);
 -      mxs_lradc_reg_wrt(lradc,
 -              LRADC_DELAY_TRIGGER(1 << TOUCHSCREEN_VCHANNEL1) |
 -              LRADC_DELAY_KICK | LRADC_DELAY_DELAY(10), /* waste 5 ms */
 -                      LRADC_DELAY(2));
 +                          LRADC_CTRL1_LRADC_IRQ(TOUCHSCREEN_VCHANNEL1) |
 +                          LRADC_CTRL1_LRADC_IRQ(TOUCHSCREEN_VCHANNEL2),
 +                          LRADC_CTRL1);
 +      mxs_lradc_reg_wrt(
 +                  lradc,
 +                  LRADC_DELAY_TRIGGER(1 << TOUCHSCREEN_VCHANNEL1) |
 +                  LRADC_DELAY_KICK | LRADC_DELAY_DELAY(10), /* waste 5 ms */
 +                  LRADC_DELAY(2));
  }
  
  /*
@@@ -765,11 -757,9 +765,11 @@@ static void mxs_lradc_finish_touch_even
        lradc->cur_plate = LRADC_TOUCH;
        mxs_lradc_reg_wrt(lradc, 0, LRADC_DELAY(2));
        mxs_lradc_reg_wrt(lradc, 0, LRADC_DELAY(3));
 -      mxs_lradc_reg_clear(lradc, LRADC_CTRL1_TOUCH_DETECT_IRQ |
 -              LRADC_CTRL1_LRADC_IRQ_EN(TOUCHSCREEN_VCHANNEL1) |
 -              LRADC_CTRL1_LRADC_IRQ(TOUCHSCREEN_VCHANNEL1), LRADC_CTRL1);
 +      mxs_lradc_reg_clear(lradc,
 +                          LRADC_CTRL1_TOUCH_DETECT_IRQ |
 +                          LRADC_CTRL1_LRADC_IRQ_EN(TOUCHSCREEN_VCHANNEL1) |
 +                          LRADC_CTRL1_LRADC_IRQ(TOUCHSCREEN_VCHANNEL1),
 +                          LRADC_CTRL1);
        mxs_lradc_reg_set(lradc, LRADC_CTRL1_TOUCH_DETECT_IRQ_EN, LRADC_CTRL1);
  }
  
@@@ -781,28 -771,25 +781,28 @@@ static void mxs_lradc_handle_touch(stru
                if (mxs_lradc_check_touch_event(lradc))
                        mxs_lradc_start_touch_event(lradc);
                mxs_lradc_reg_clear(lradc, LRADC_CTRL1_TOUCH_DETECT_IRQ,
 -                                      LRADC_CTRL1);
 +                                  LRADC_CTRL1);
                return;
  
        case LRADC_SAMPLE_Y:
 -              lradc->ts_y_pos = mxs_lradc_read_raw_channel(lradc,
 -                                                      TOUCHSCREEN_VCHANNEL1);
 +              lradc->ts_y_pos =
 +                  mxs_lradc_read_raw_channel(lradc,
 +                                             TOUCHSCREEN_VCHANNEL1);
                mxs_lradc_prepare_x_pos(lradc);
                return;
  
        case LRADC_SAMPLE_X:
 -              lradc->ts_x_pos = mxs_lradc_read_raw_channel(lradc,
 -                                                      TOUCHSCREEN_VCHANNEL1);
 +              lradc->ts_x_pos =
 +                  mxs_lradc_read_raw_channel(lradc,
 +                                             TOUCHSCREEN_VCHANNEL1);
                mxs_lradc_prepare_pressure(lradc);
                return;
  
        case LRADC_SAMPLE_PRESSURE:
 -              lradc->ts_pressure = mxs_lradc_read_ts_pressure(lradc,
 -                                                      TOUCHSCREEN_VCHANNEL2,
 -                                                      TOUCHSCREEN_VCHANNEL1);
 +              lradc->ts_pressure =
 +                  mxs_lradc_read_ts_pressure(lradc,
 +                                             TOUCHSCREEN_VCHANNEL2,
 +                                             TOUCHSCREEN_VCHANNEL1);
                mxs_lradc_complete_touch_event(lradc);
                return;
  
@@@ -839,22 -826,20 +839,22 @@@ static int mxs_lradc_read_single(struc
         */
        if (lradc->soc == IMX28_LRADC)
                mxs_lradc_reg_clear(lradc, LRADC_CTRL1_LRADC_IRQ_EN(0),
 -                      LRADC_CTRL1);
 +                                  LRADC_CTRL1);
        mxs_lradc_reg_clear(lradc, 0x1, LRADC_CTRL0);
  
        /* Enable / disable the divider per requirement */
        if (test_bit(chan, &lradc->is_divided))
 -              mxs_lradc_reg_set(lradc, 1 << LRADC_CTRL2_DIVIDE_BY_TWO_OFFSET,
 -                      LRADC_CTRL2);
 +              mxs_lradc_reg_set(lradc,
 +                                1 << LRADC_CTRL2_DIVIDE_BY_TWO_OFFSET,
 +                                LRADC_CTRL2);
        else
                mxs_lradc_reg_clear(lradc,
 -                      1 << LRADC_CTRL2_DIVIDE_BY_TWO_OFFSET, LRADC_CTRL2);
 +                                  1 << LRADC_CTRL2_DIVIDE_BY_TWO_OFFSET,
 +                                  LRADC_CTRL2);
  
        /* Clean the slot's previous content, then set new one. */
        mxs_lradc_reg_clear(lradc, LRADC_CTRL4_LRADCSELECT_MASK(0),
 -                      LRADC_CTRL4);
 +                          LRADC_CTRL4);
        mxs_lradc_reg_set(lradc, chan, LRADC_CTRL4);
  
        mxs_lradc_reg_wrt(lradc, 0, LRADC_CH(0));
@@@ -900,8 -885,8 +900,8 @@@ static int mxs_lradc_read_temp(struct i
  }
  
  static int mxs_lradc_read_raw(struct iio_dev *iio_dev,
 -                      const struct iio_chan_spec *chan,
 -                      int *val, int *val2, long m)
 +                            const struct iio_chan_spec *chan,
 +                            int *val, int *val2, long m)
  {
        struct mxs_lradc *lradc = iio_priv(iio_dev);
  
        case IIO_CHAN_INFO_OFFSET:
                if (chan->type == IIO_TEMP) {
                        /* The calculated value from the ADC is in Kelvin, we
-                        * want Celsius for hwmon so the offset is
-                        * -272.15 * scale
+                        * want Celsius for hwmon so the offset is -273.15
+                        * The offset is applied before scaling so it is
+                        * actually -213.15 * 4 / 1.012 = -1079.644268
                         */
-                       *val = -1075;
-                       *val2 = 691699;
+                       *val = -1079;
+                       *val2 = 644268;
  
                        return IIO_VAL_INT_PLUS_MICRO;
                }
@@@ -995,9 -981,9 +996,9 @@@ static int mxs_lradc_write_raw_get_fmt(
  }
  
  static ssize_t mxs_lradc_show_scale_available_ch(struct device *dev,
 -              struct device_attribute *attr,
 -              char *buf,
 -              int ch)
 +                                               struct device_attribute *attr,
 +                                               char *buf,
 +                                               int ch)
  {
        struct iio_dev *iio = dev_to_iio_dev(dev);
        struct mxs_lradc *lradc = iio_priv(iio);
  }
  
  static ssize_t mxs_lradc_show_scale_available(struct device *dev,
 -              struct device_attribute *attr,
 -              char *buf)
 +                                            struct device_attribute *attr,
 +                                            char *buf)
  {
        struct iio_dev_attr *iio_attr = to_iio_dev_attr(attr);
  
@@@ -1153,8 -1139,8 +1154,8 @@@ static irqreturn_t mxs_lradc_handle_irq
        struct iio_dev *iio = data;
        struct mxs_lradc *lradc = iio_priv(iio);
        unsigned long reg = readl(lradc->base + LRADC_CTRL1);
 -      uint32_t clr_irq = mxs_lradc_irq_mask(lradc);
 -      const uint32_t ts_irq_mask =
 +      u32 clr_irq = mxs_lradc_irq_mask(lradc);
 +      const u32 ts_irq_mask =
                LRADC_CTRL1_TOUCH_DETECT_IRQ |
                LRADC_CTRL1_LRADC_IRQ(TOUCHSCREEN_VCHANNEL1) |
                LRADC_CTRL1_LRADC_IRQ(TOUCHSCREEN_VCHANNEL2);
@@@ -1190,7 -1176,7 +1191,7 @@@ static irqreturn_t mxs_lradc_trigger_ha
        struct iio_poll_func *pf = p;
        struct iio_dev *iio = pf->indio_dev;
        struct mxs_lradc *lradc = iio_priv(iio);
 -      const uint32_t chan_value = LRADC_CH_ACCUMULATE |
 +      const u32 chan_value = LRADC_CH_ACCUMULATE |
                ((LRADC_DELAY_TIMER_LOOP - 1) << LRADC_CH_NUM_SAMPLES_OFFSET);
        unsigned int i, j = 0;
  
@@@ -1213,7 -1199,7 +1214,7 @@@ static int mxs_lradc_configure_trigger(
  {
        struct iio_dev *iio = iio_trigger_get_drvdata(trig);
        struct mxs_lradc *lradc = iio_priv(iio);
 -      const uint32_t st = state ? STMP_OFFSET_REG_SET : STMP_OFFSET_REG_CLR;
 +      const u32 st = state ? STMP_OFFSET_REG_SET : STMP_OFFSET_REG_CLR;
  
        mxs_lradc_reg_wrt(lradc, LRADC_DELAY_KICK, LRADC_DELAY(0) + st);
  
@@@ -1232,7 -1218,7 +1233,7 @@@ static int mxs_lradc_trigger_init(struc
        struct mxs_lradc *lradc = iio_priv(iio);
  
        trig = iio_trigger_alloc("%s-dev%i", iio->name, iio->id);
 -      if (trig == NULL)
 +      if (!trig)
                return -ENOMEM;
  
        trig->dev.parent = lradc->dev;
@@@ -1263,10 -1249,10 +1264,10 @@@ static int mxs_lradc_buffer_preenable(s
        struct mxs_lradc *lradc = iio_priv(iio);
        int ret = 0, chan, ofs = 0;
        unsigned long enable = 0;
 -      uint32_t ctrl4_set = 0;
 -      uint32_t ctrl4_clr = 0;
 -      uint32_t ctrl1_irq = 0;
 -      const uint32_t chan_value = LRADC_CH_ACCUMULATE |
 +      u32 ctrl4_set = 0;
 +      u32 ctrl4_clr = 0;
 +      u32 ctrl1_irq = 0;
 +      const u32 chan_value = LRADC_CH_ACCUMULATE |
                ((LRADC_DELAY_TIMER_LOOP - 1) << LRADC_CH_NUM_SAMPLES_OFFSET);
        const int len = bitmap_weight(iio->active_scan_mask,
                        LRADC_MAX_TOTAL_CHANS);
        }
  
        if (lradc->soc == IMX28_LRADC)
 -              mxs_lradc_reg_clear(lradc,
 +              mxs_lradc_reg_clear(
 +                      lradc,
                        lradc->buffer_vchans << LRADC_CTRL1_LRADC_IRQ_EN_OFFSET,
                        LRADC_CTRL1);
        mxs_lradc_reg_clear(lradc, lradc->buffer_vchans, LRADC_CTRL0);
        }
  
        mxs_lradc_reg_clear(lradc, LRADC_DELAY_TRIGGER_LRADCS_MASK |
 -                                      LRADC_DELAY_KICK, LRADC_DELAY(0));
 +                          LRADC_DELAY_KICK, LRADC_DELAY(0));
        mxs_lradc_reg_clear(lradc, ctrl4_clr, LRADC_CTRL4);
        mxs_lradc_reg_set(lradc, ctrl4_set, LRADC_CTRL4);
        mxs_lradc_reg_set(lradc, ctrl1_irq, LRADC_CTRL1);
        mxs_lradc_reg_set(lradc, enable << LRADC_DELAY_TRIGGER_LRADCS_OFFSET,
 -                                      LRADC_DELAY(0));
 +                        LRADC_DELAY(0));
  
        return 0;
  
@@@ -1324,12 -1309,11 +1325,12 @@@ static int mxs_lradc_buffer_postdisable
        struct mxs_lradc *lradc = iio_priv(iio);
  
        mxs_lradc_reg_clear(lradc, LRADC_DELAY_TRIGGER_LRADCS_MASK |
 -                                      LRADC_DELAY_KICK, LRADC_DELAY(0));
 +                          LRADC_DELAY_KICK, LRADC_DELAY(0));
  
        mxs_lradc_reg_clear(lradc, lradc->buffer_vchans, LRADC_CTRL0);
        if (lradc->soc == IMX28_LRADC)
 -              mxs_lradc_reg_clear(lradc,
 +              mxs_lradc_reg_clear(
 +                      lradc,
                        lradc->buffer_vchans << LRADC_CTRL1_LRADC_IRQ_EN_OFFSET,
                        LRADC_CTRL1);
  
  }
  
  static bool mxs_lradc_validate_scan_mask(struct iio_dev *iio,
 -                                      const unsigned long *mask)
 +                                       const unsigned long *mask)
  {
        struct mxs_lradc *lradc = iio_priv(iio);
        const int map_chans = bitmap_weight(mask, LRADC_MAX_TOTAL_CHANS);
@@@ -1473,7 -1457,7 +1474,7 @@@ static const struct iio_chan_spec mx28_
  static int mxs_lradc_hw_init(struct mxs_lradc *lradc)
  {
        /* The ADC always uses DELAY CHANNEL 0. */
 -      const uint32_t adc_cfg =
 +      const u32 adc_cfg =
                (1 << (LRADC_DELAY_TRIGGER_DELAYS_OFFSET + 0)) |
                (LRADC_DELAY_TIMER_PER << LRADC_DELAY_DELAY_OFFSET);
  
        /* Configure the touchscreen type */
        if (lradc->soc == IMX28_LRADC) {
                mxs_lradc_reg_clear(lradc, LRADC_CTRL0_MX28_TOUCH_SCREEN_TYPE,
 -                                                      LRADC_CTRL0);
 +                                  LRADC_CTRL0);
  
        if (lradc->use_touchscreen == MXS_LRADC_TOUCHSCREEN_5WIRE)
                mxs_lradc_reg_set(lradc, LRADC_CTRL0_MX28_TOUCH_SCREEN_TYPE,
 -                              LRADC_CTRL0);
 +                                LRADC_CTRL0);
        }
  
        /* Start internal temperature sensing. */
@@@ -1524,13 -1508,13 +1525,13 @@@ static const struct of_device_id mxs_lr
  MODULE_DEVICE_TABLE(of, mxs_lradc_dt_ids);
  
  static int mxs_lradc_probe_touchscreen(struct mxs_lradc *lradc,
 -                                              struct device_node *lradc_node)
 +                                     struct device_node *lradc_node)
  {
        int ret;
        u32 ts_wires = 0, adapt;
  
        ret = of_property_read_u32(lradc_node, "fsl,lradc-touchscreen-wires",
 -                              &ts_wires);
 +                                 &ts_wires);
        if (ret)
                return -ENODEV; /* touchscreen feature disabled */
  
@@@ -1600,7 -1584,7 +1601,7 @@@ static int mxs_lradc_probe(struct platf
        struct resource *iores;
        int ret = 0, touch_ret;
        int i, s;
 -      uint64_t scale_uv;
 +      u64 scale_uv;
  
        /* Allocate the IIO device. */
        iio = devm_iio_device_alloc(dev, sizeof(*lradc));
                }
  
                ret = devm_request_irq(dev, lradc->irq[i],
 -                                      mxs_lradc_handle_irq, 0,
 -                                      of_cfg->irq_name[i], iio);
 +                                     mxs_lradc_handle_irq, 0,
 +                                     of_cfg->irq_name[i], iio);
                if (ret)
                        goto err_clk;
        }
        }
  
        ret = iio_triggered_buffer_setup(iio, &iio_pollfunc_store_time,
 -                              &mxs_lradc_trigger_handler,
 -                              &mxs_lradc_buffer_ops);
 +                                       &mxs_lradc_trigger_handler,
 +                                       &mxs_lradc_buffer_ops);
        if (ret)
                goto err_clk;
  
index 0fe0c7135b73514b3c35cb633c6bb62b2ead5fc7,a9bc6e23fc2582f39c5a753638979fba15451e61..5c9502b5b3582ab98633dd88c480b2030b2f795c
@@@ -224,7 -224,7 +224,7 @@@ static int ll_dir_filler(void *_hash, s
  
                prefetchw(&page->flags);
                ret = add_to_page_cache_lru(page, inode->i_mapping, offset,
-                                           GFP_KERNEL);
+                                           GFP_NOFS);
                if (ret == 0) {
                        unlock_page(page);
                } else {
@@@ -660,7 -660,7 +660,7 @@@ static int ll_dir_setdirstripe(struct i
        int mode;
        int err;
  
 -      mode = (0755 & ~current_umask()) | S_IFDIR;
 +      mode = (~current_umask() & 0755) | S_IFDIR;
        op_data = ll_prep_md_op_data(NULL, dir, NULL, filename,
                                     strlen(filename), mode, LUSTRE_OPC_MKDIR,
                                     lump);
@@@ -838,11 -838,11 +838,11 @@@ int ll_dir_getstripe(struct inode *inod
        /* We don't swab objects for directories */
        switch (le32_to_cpu(lmm->lmm_magic)) {
        case LOV_MAGIC_V1:
 -              if (LOV_MAGIC != cpu_to_le32(LOV_MAGIC))
 +              if (cpu_to_le32(LOV_MAGIC) != LOV_MAGIC)
                        lustre_swab_lov_user_md_v1((struct lov_user_md_v1 *)lmm);
                break;
        case LOV_MAGIC_V3:
 -              if (LOV_MAGIC != cpu_to_le32(LOV_MAGIC))
 +              if (cpu_to_le32(LOV_MAGIC) != LOV_MAGIC)
                        lustre_swab_lov_user_md_v3((struct lov_user_md_v3 *)lmm);
                break;
        default:
@@@ -907,6 -907,7 +907,6 @@@ static int ll_ioc_copy_start(struct sup
        hpk.hpk_errval = 0;
        hpk.hpk_data_version = 0;
  
 -
        /* For archive request, we need to read the current file version. */
        if (copy->hc_hai.hai_action == HSMA_ARCHIVE) {
                struct inode    *inode;
@@@ -1046,6 -1047,7 +1046,6 @@@ progress
        return rc;
  }
  
 -
  static int copy_and_ioctl(int cmd, struct obd_export *exp,
                          const void __user *data, size_t size)
  {
@@@ -1552,7 -1554,7 +1552,7 @@@ out_req
  
                switch (lmm->lmm_magic) {
                case LOV_USER_MAGIC_V1:
 -                      if (LOV_USER_MAGIC_V1 == cpu_to_le32(LOV_USER_MAGIC_V1))
 +                      if (cpu_to_le32(LOV_USER_MAGIC_V1) == LOV_USER_MAGIC_V1)
                                break;
                        /* swab objects first so that stripes num will be sane */
                        lustre_swab_lov_user_md_objects(
                        lustre_swab_lov_user_md_v1((struct lov_user_md_v1 *)lmm);
                        break;
                case LOV_USER_MAGIC_V3:
 -                      if (LOV_USER_MAGIC_V3 == cpu_to_le32(LOV_USER_MAGIC_V3))
 +                      if (cpu_to_le32(LOV_USER_MAGIC_V3) == LOV_USER_MAGIC_V3)
                                break;
                        /* swab objects first so that stripes num will be sane */
                        lustre_swab_lov_user_md_objects(
@@@ -1732,9 -1734,6 +1732,9 @@@ out_quotactl
        }
        case OBD_IOC_CHANGELOG_SEND:
        case OBD_IOC_CHANGELOG_CLEAR:
 +              if (!capable(CFS_CAP_SYS_ADMIN))
 +                      return -EPERM;
 +
                rc = copy_and_ioctl(cmd, sbi->ll_md_exp, (void *)arg,
                                    sizeof(struct ioc_changelog));
                return rc;