Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'staging-4.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging

Pull staging driver fixes from Greg KH:
"Here are a number of iio and staging driver fixes for reported issues
for 4.2-rc4.

All have been in linux-next for a while with no problems"

* tag 'staging-4.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (34 commits)
iio:light:stk3310: make endianness independent of host
iio:light:stk3310: move device register to end of probe
iio: mma8452: use iio event type IIO_EV_TYPE_MAG
iio: mcp320x: Fix NULL pointer dereference
iio: adc: vf610: fix the adc register read fail issue
iio: mlx96014: Replace offset sign
iio: magnetometer: mmc35240: fix SET/RESET sequence
iio: magnetometer: mmc35240: Fix SET/RESET mask
iio: magnetometer: mmc35240: Fix crash in pm suspend
iio:magnetometer:bmc150_magn: output intended variable
iio:magnetometer:bmc150_magn: add regmap dependency
staging: vt6656: check ieee80211_bss_conf bssid not NULL
staging: vt6655: check ieee80211_bss_conf bssid not NULL
iio: tmp006: Check channel info on write
iio: sx9500: Add missing init in sx9500_buffer_pre{en,dis}able()
iio:light:ltr501: fix regmap dependency
iio:light:ltr501: fix variable in ltr501_init
iio: sx9500: fix bug in compensation code
iio: sx9500: rework error handling of raw readings
iio: magnetometer: mmc35240: fix available sampling frequencies
...

+31 -26
+4 -4
drivers/iio/accel/mma8452.c
··· 557 557 if (src & MMA8452_TRANSIENT_SRC_XTRANSE) 558 558 iio_push_event(indio_dev, 559 559 IIO_MOD_EVENT_CODE(IIO_ACCEL, 0, IIO_MOD_X, 560 - IIO_EV_TYPE_THRESH, 560 + IIO_EV_TYPE_MAG, 561 561 IIO_EV_DIR_RISING), 562 562 ts); 563 563 564 564 if (src & MMA8452_TRANSIENT_SRC_YTRANSE) 565 565 iio_push_event(indio_dev, 566 566 IIO_MOD_EVENT_CODE(IIO_ACCEL, 0, IIO_MOD_Y, 567 - IIO_EV_TYPE_THRESH, 567 + IIO_EV_TYPE_MAG, 568 568 IIO_EV_DIR_RISING), 569 569 ts); 570 570 571 571 if (src & MMA8452_TRANSIENT_SRC_ZTRANSE) 572 572 iio_push_event(indio_dev, 573 573 IIO_MOD_EVENT_CODE(IIO_ACCEL, 0, IIO_MOD_Z, 574 - IIO_EV_TYPE_THRESH, 574 + IIO_EV_TYPE_MAG, 575 575 IIO_EV_DIR_RISING), 576 576 ts); 577 577 } ··· 644 644 645 645 static const struct iio_event_spec mma8452_transient_event[] = { 646 646 { 647 - .type = IIO_EV_TYPE_THRESH, 647 + .type = IIO_EV_TYPE_MAG, 648 648 .dir = IIO_EV_DIR_RISING, 649 649 .mask_separate = BIT(IIO_EV_INFO_ENABLE), 650 650 .mask_shared_by_type = BIT(IIO_EV_INFO_VALUE) |
+2
drivers/iio/adc/mcp320x.c
··· 299 299 indio_dev->channels = chip_info->channels; 300 300 indio_dev->num_channels = chip_info->num_channels; 301 301 302 + adc->chip_info = chip_info; 303 + 302 304 adc->transfer[0].tx_buf = &adc->tx_buf; 303 305 adc->transfer[0].len = sizeof(adc->tx_buf); 304 306 adc->transfer[1].rx_buf = adc->rx_buf;
+1 -1
drivers/iio/adc/vf610_adc.c
··· 635 635 struct vf610_adc *info = iio_priv(indio_dev); 636 636 637 637 if ((readval == NULL) || 638 - (!(reg % 4) || (reg > VF610_REG_ADC_PCTL))) 638 + ((reg % 4) || (reg > VF610_REG_ADC_PCTL))) 639 639 return -EINVAL; 640 640 641 641 *readval = readl(info->regs + reg);
+13 -13
drivers/iio/light/stk3310.c
··· 200 200 int *val, int *val2) 201 201 { 202 202 u8 reg; 203 - u16 buf; 203 + __be16 buf; 204 204 int ret; 205 205 struct stk3310_data *data = iio_priv(indio_dev); 206 206 ··· 222 222 dev_err(&data->client->dev, "register read failed\n"); 223 223 return ret; 224 224 } 225 - *val = swab16(buf); 225 + *val = be16_to_cpu(buf); 226 226 227 227 return IIO_VAL_INT; 228 228 } ··· 235 235 int val, int val2) 236 236 { 237 237 u8 reg; 238 - u16 buf; 238 + __be16 buf; 239 239 int ret; 240 240 unsigned int index; 241 241 struct stk3310_data *data = iio_priv(indio_dev); ··· 252 252 else 253 253 return -EINVAL; 254 254 255 - buf = swab16(val); 255 + buf = cpu_to_be16(val); 256 256 ret = regmap_bulk_write(data->regmap, reg, &buf, 2); 257 257 if (ret < 0) 258 258 dev_err(&client->dev, "failed to set PS threshold!\n"); ··· 301 301 int *val, int *val2, long mask) 302 302 { 303 303 u8 reg; 304 - u16 buf; 304 + __be16 buf; 305 305 int ret; 306 306 unsigned int index; 307 307 struct stk3310_data *data = iio_priv(indio_dev); ··· 322 322 mutex_unlock(&data->lock); 323 323 return ret; 324 324 } 325 - *val = swab16(buf); 325 + *val = be16_to_cpu(buf); 326 326 mutex_unlock(&data->lock); 327 327 return IIO_VAL_INT; 328 328 case IIO_CHAN_INFO_INT_TIME: ··· 608 608 if (ret < 0) 609 609 return ret; 610 610 611 - ret = iio_device_register(indio_dev); 612 - if (ret < 0) { 613 - dev_err(&client->dev, "device_register failed\n"); 614 - stk3310_set_state(data, STK3310_STATE_STANDBY); 615 - } 616 - 617 - if (client->irq <= 0) 611 + if (client->irq < 0) 618 612 client->irq = stk3310_gpio_probe(client); 619 613 620 614 if (client->irq >= 0) { ··· 621 627 if (ret < 0) 622 628 dev_err(&client->dev, "request irq %d failed\n", 623 629 client->irq); 630 + } 631 + 632 + ret = iio_device_register(indio_dev); 633 + if (ret < 0) { 634 + dev_err(&client->dev, "device_register failed\n"); 635 + stk3310_set_state(data, STK3310_STATE_STANDBY); 624 636 } 625 637 626 638 return ret;
+1
drivers/iio/magnetometer/Kconfig
··· 90 90 config BMC150_MAGN 91 91 tristate "Bosch BMC150 Magnetometer Driver" 92 92 depends on I2C 93 + select REGMAP_I2C 93 94 select IIO_BUFFER 94 95 select IIO_TRIGGERED_BUFFER 95 96 help
+2 -2
drivers/iio/magnetometer/bmc150_magn.c
··· 706 706 goto err_poweroff; 707 707 } 708 708 if (chip_id != BMC150_MAGN_CHIP_ID_VAL) { 709 - dev_err(&data->client->dev, "Invalid chip id 0x%x\n", ret); 709 + dev_err(&data->client->dev, "Invalid chip id 0x%x\n", chip_id); 710 710 ret = -ENODEV; 711 711 goto err_poweroff; 712 712 } 713 - dev_dbg(&data->client->dev, "Chip id %x\n", ret); 713 + dev_dbg(&data->client->dev, "Chip id %x\n", chip_id); 714 714 715 715 preset = bmc150_magn_presets_table[BMC150_MAGN_DEFAULT_PRESET]; 716 716 ret = bmc150_magn_set_odr(data, preset.odr);
+7 -5
drivers/iio/magnetometer/mmc35240.c
··· 202 202 coil_bit = MMC35240_CTRL0_RESET_BIT; 203 203 204 204 return regmap_update_bits(data->regmap, MMC35240_REG_CTRL0, 205 - MMC35240_CTRL0_REFILL_BIT, 206 - coil_bit); 205 + coil_bit, coil_bit); 206 + 207 207 } 208 208 209 209 static int mmc35240_init(struct mmc35240_data *data) ··· 222 222 223 223 /* 224 224 * make sure we restore sensor characteristics, by doing 225 - * a RESET/SET sequence 225 + * a SET/RESET sequence, the axis polarity being naturally 226 + * aligned after RESET 226 227 */ 227 - ret = mmc35240_hw_set(data, false); 228 + ret = mmc35240_hw_set(data, true); 228 229 if (ret < 0) 229 230 return ret; 230 231 usleep_range(MMC53240_WAIT_SET_RESET, MMC53240_WAIT_SET_RESET + 1); 231 232 232 - ret = mmc35240_hw_set(data, true); 233 + ret = mmc35240_hw_set(data, false); 233 234 if (ret < 0) 234 235 return ret; 235 236 ··· 504 503 } 505 504 506 505 data = iio_priv(indio_dev); 506 + i2c_set_clientdata(client, indio_dev); 507 507 data->client = client; 508 508 data->regmap = regmap; 509 509 data->res = MMC35240_16_BITS_SLOW;
+1 -1
drivers/iio/temperature/mlx90614.c
··· 204 204 *val = ret; 205 205 return IIO_VAL_INT; 206 206 case IIO_CHAN_INFO_OFFSET: 207 - *val = 13657; 207 + *val = -13657; 208 208 *val2 = 500000; 209 209 return IIO_VAL_INT_PLUS_MICRO; 210 210 case IIO_CHAN_INFO_SCALE: