Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2d4d4a8d authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull staging driver fixes from Greg KH:
 "Here are some bugfixes for the staging and IIO drivers for 3.13-rc3.

  The resolve the vm memory issue in the tidspbridge driver, fix a
  much-reported build failure in an ARM driver, and some other IIO
  bugfixes that have been reported"

* tag 'staging-3.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
  Staging: TIDSPBRIDGE: Use vm_iomap_memory for mmap-ing instead of remap_pfn_range
  Fix build failure for gp2ap020a00f.c
  iio: hid-sensors: Fix power and report state
  HID: hid-sensor-hub: Add logical min and max
parents f64001ef 55ef003e
Loading
Loading
Loading
Loading
+8 −12
Original line number Diff line number Diff line
@@ -112,13 +112,15 @@ static int sensor_hub_get_physical_device_count(

static void sensor_hub_fill_attr_info(
		struct hid_sensor_hub_attribute_info *info,
		s32 index, s32 report_id, s32 units, s32 unit_expo, s32 size)
		s32 index, s32 report_id, struct hid_field *field)
{
	info->index = index;
	info->report_id = report_id;
	info->units = units;
	info->unit_expo = unit_expo;
	info->size = size/8;
	info->units = field->unit;
	info->unit_expo = field->unit_exponent;
	info->size = (field->report_size * field->report_count)/8;
	info->logical_minimum = field->logical_minimum;
	info->logical_maximum = field->logical_maximum;
}

static struct hid_sensor_hub_callbacks *sensor_hub_get_callback(
@@ -325,9 +327,7 @@ int sensor_hub_input_get_attribute_info(struct hid_sensor_hub_device *hsdev,
			if (field->physical == usage_id &&
				field->logical == attr_usage_id) {
				sensor_hub_fill_attr_info(info, i, report->id,
					field->unit, field->unit_exponent,
					field->report_size *
							field->report_count);
							  field);
				ret = 0;
			} else {
				for (j = 0; j < field->maxusage; ++j) {
@@ -336,11 +336,7 @@ int sensor_hub_input_get_attribute_info(struct hid_sensor_hub_device *hsdev,
					field->usage[j].collection_index ==
					collection_index) {
						sensor_hub_fill_attr_info(info,
							i, report->id,
							field->unit,
							field->unit_exponent,
							field->report_size *
							field->report_count);
							  i, report->id, field);
						ret = 0;
						break;
					}
+0 −9
Original line number Diff line number Diff line
@@ -25,13 +25,4 @@ config HID_SENSOR_IIO_TRIGGER
	  If this driver is compiled as a module, it will be named
	  hid-sensor-trigger.

config HID_SENSOR_ENUM_BASE_QUIRKS
	bool "ENUM base quirks for HID Sensor IIO drivers"
	depends on HID_SENSOR_IIO_COMMON
	help
	  Say yes here to build support for sensor hub FW using
	  enumeration, which is using 1 as base instead of 0.
	  Since logical minimum is still set 0 instead of 1,
	  there is no easy way to differentiate.

endmenu
+15 −5
Original line number Diff line number Diff line
@@ -33,24 +33,34 @@ static int hid_sensor_data_rdy_trigger_set_state(struct iio_trigger *trig,
{
	struct hid_sensor_common *st = iio_trigger_get_drvdata(trig);
	int state_val;
	int report_val;

	if (state) {
		if (sensor_hub_device_open(st->hsdev))
			return -EIO;
	} else
		state_val =
		HID_USAGE_SENSOR_PROP_POWER_STATE_D0_FULL_POWER_ENUM;
		report_val =
		HID_USAGE_SENSOR_PROP_REPORTING_STATE_ALL_EVENTS_ENUM;

	} else {
		sensor_hub_device_close(st->hsdev);
		state_val =
		HID_USAGE_SENSOR_PROP_POWER_STATE_D4_POWER_OFF_ENUM;
		report_val =
		HID_USAGE_SENSOR_PROP_REPORTING_STATE_NO_EVENTS_ENUM;
	}

	state_val = state ? 1 : 0;
	if (IS_ENABLED(CONFIG_HID_SENSOR_ENUM_BASE_QUIRKS))
		++state_val;
	st->data_ready = state;
	state_val += st->power_state.logical_minimum;
	report_val += st->report_state.logical_minimum;
	sensor_hub_set_feature(st->hsdev, st->power_state.report_id,
					st->power_state.index,
					(s32)state_val);

	sensor_hub_set_feature(st->hsdev, st->report_state.report_id,
					st->report_state.index,
					(s32)state_val);
					(s32)report_val);

	return 0;
}
+1 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ config GP2AP020A00F
	depends on I2C
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	select IRQ_WORK
	help
	  Say Y here if you have a Sharp GP2AP020A00F proximity/ALS combo-chip
	  hooked to an I2C bus.
+5 −8
Original line number Diff line number Diff line
@@ -258,7 +258,8 @@ static long bridge_ioctl(struct file *filp, unsigned int code,
/* This function maps kernel space memory to user space memory. */
static int bridge_mmap(struct file *filp, struct vm_area_struct *vma)
{
	u32 status;
	struct omap_dsp_platform_data *pdata =
					omap_dspbridge_dev->dev.platform_data;

	/* VM_IO | VM_DONTEXPAND | VM_DONTDUMP are set by remap_pfn_range() */
	vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
@@ -268,13 +269,9 @@ static int bridge_mmap(struct file *filp, struct vm_area_struct *vma)
		vma->vm_start, vma->vm_end, vma->vm_page_prot,
		vma->vm_flags);

	status = remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff,
				 vma->vm_end - vma->vm_start,
				 vma->vm_page_prot);
	if (status != 0)
		status = -EAGAIN;

	return status;
	return vm_iomap_memory(vma,
			       pdata->phys_mempool_base,
			       pdata->phys_mempool_size);
}

static const struct file_operations bridge_fops = {
Loading