Pull staging/IIO fixes from Greg KH: "Here are a few small staging and IIO driver fixes for 4.18-rc3. Nothing major or big, all just fixes for reported problems since 4.18-rc1. All of these have been in linux-next this week with no reported problems" * tag 'staging-4.18-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: staging: android: ion: Return an ERR_PTR in ion_map_kernel staging: comedi: quatech_daqp_cs: fix no-op loop daqp_ao_insn_write() iio: imu: inv_mpu6050: Fix probe() failure on older ACPI based machines iio: buffer: fix the function signature to match implementation iio: mma8452: Fix ignoring MMA8452_INT_DRDY iio: tsl2x7x/tsl2772: avoid potential division by zero iio: pressure: bmp280: fix relative humidity unit
Unified · Split
| @@ -1053,7 +1053,7 @@ static irqreturn_t mma8452_interrupt(int irq, void *p) · 1052 unmodified lines | ||
| 1053 | 1053 | if (src < 0) |
| 1054 | 1054 | return IRQ_NONE; |
| 1055 | 1055 | |
| 1056 | − if (!(src & data->chip_info->enabled_events)) | |
| 1056 | + if (!(src & (data->chip_info->enabled_events | MMA8452_INT_DRDY))) | |
| 1057 | 1057 | return IRQ_NONE; |
| 1058 | 1058 | |
| 1059 | 1059 | if (src & MMA8452_INT_DRDY) { |
| @@ -959,6 +959,8 @@ int inv_mpu_core_probe(struct regmap *regmap, int irq, const char *name, · 958 unmodified lines | ||
| 959 | 959 | } |
| 960 | 960 | |
| 961 | 961 | irq_type = irqd_get_trigger_type(desc); |
| 962 | + if (!irq_type) | |
| 963 | + irq_type = IRQF_TRIGGER_RISING; | |
| 962 | 964 | if (irq_type == IRQF_TRIGGER_RISING) |
| 963 | 965 | st->irq_mask = INV_MPU6050_ACTIVE_HIGH; |
| 964 | 966 | else if (irq_type == IRQF_TRIGGER_FALLING) |
| @@ -582,6 +582,8 @@ static int tsl2772_als_calibrate(struct iio_dev *indio_dev) · 581 unmodified lines | ||
| 582 | 582 | "%s: failed to get lux\n", __func__); |
| 583 | 583 | return lux_val; |
| 584 | 584 | } |
| 585 | + if (lux_val == 0) | |
| 586 | + return -ERANGE; | |
| 585 | 587 | |
| 586 | 588 | ret = (chip->settings.als_cal_target * chip->settings.als_gain_trim) / |
| 587 | 589 | lux_val; |
| @@ -415,10 +415,9 @@ static int bmp280_read_humid(struct bmp280_data *data, int *val, int *val2) · 414 unmodified lines | ||
| 415 | 415 | } |
| 416 | 416 | comp_humidity = bmp280_compensate_humidity(data, adc_humidity); |
| 417 | 417 | |
| 418 | − *val = comp_humidity; | |
| 419 | − *val2 = 1024; | |
| 418 | + *val = comp_humidity * 1000 / 1024; | |
| 420 | 419 | |
| 421 | − return IIO_VAL_FRACTIONAL; | |
| 420 | + return IIO_VAL_INT; | |
| 422 | 421 | } |
| 423 | 422 | |
| 424 | 423 | static int bmp280_read_raw(struct iio_dev *indio_dev, |
| @@ -30,7 +30,7 @@ void *ion_heap_map_kernel(struct ion_heap *heap, · 29 unmodified lines | ||
| 30 | 30 | struct page **tmp = pages; |
| 31 | 31 | |
| 32 | 32 | if (!pages) |
| 33 | − return NULL; | |
| 33 | + return ERR_PTR(-ENOMEM); | |
| 34 | 34 | |
| 35 | 35 | if (buffer->flags & ION_FLAG_CACHED) |
| 36 | 36 | pgprot = PAGE_KERNEL; |
| @@ -642,7 +642,7 @@ static int daqp_ao_insn_write(struct comedi_device *dev, · 641 unmodified lines | ||
| 642 | 642 | /* Make sure D/A update mode is direct update */ |
| 643 | 643 | outb(0, dev->iobase + DAQP_AUX_REG); |
| 644 | 644 | |
| 645 | − for (i = 0; i > insn->n; i++) { | |
| 645 | + for (i = 0; i < insn->n; i++) { | |
| 646 | 646 | unsigned int val = data[i]; |
| 647 | 647 | int ret; |
| 648 | 648 | |
| @@ -141,7 +141,7 @@ int iio_dma_buffer_read(struct iio_buffer *buffer, size_t n, · 140 unmodified lines | ||
| 141 | 141 | char __user *user_buffer); |
| 142 | 142 | size_t iio_dma_buffer_data_available(struct iio_buffer *buffer); |
| 143 | 143 | int iio_dma_buffer_set_bytes_per_datum(struct iio_buffer *buffer, size_t bpd); |
| 144 | −int iio_dma_buffer_set_length(struct iio_buffer *buffer, int length); | |
| 144 | +int iio_dma_buffer_set_length(struct iio_buffer *buffer, unsigned int length); | |
| 145 | 145 | int iio_dma_buffer_request_update(struct iio_buffer *buffer); |
| 146 | 146 | |
| 147 | 147 | int iio_dma_buffer_init(struct iio_dma_buffer_queue *queue, |