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

Commit 6ed19149 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull input update from Dmitry Torokhov:
 "Updates for the input subsystem.  Just a couple of driver fixes this
  time."

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: gpio_keys - defer probing if GPIO probing is deferred
  Input: gpio_keys_polled - defer probing if GPIO probing is deferred
  Input: sentelic - only report position of first finger as ST coordinates
parents 25660142 e324ce61
Loading
Loading
Loading
Loading
+12 −1
Original line number Original line Diff line number Diff line
@@ -602,6 +602,7 @@ gpio_keys_get_devtree_pdata(struct device *dev)


	i = 0;
	i = 0;
	for_each_child_of_node(node, pp) {
	for_each_child_of_node(node, pp) {
		int gpio;
		enum of_gpio_flags flags;
		enum of_gpio_flags flags;


		if (!of_find_property(pp, "gpios", NULL)) {
		if (!of_find_property(pp, "gpios", NULL)) {
@@ -610,9 +611,19 @@ gpio_keys_get_devtree_pdata(struct device *dev)
			continue;
			continue;
		}
		}


		gpio = of_get_gpio_flags(pp, 0, &flags);
		if (gpio < 0) {
			error = gpio;
			if (error != -EPROBE_DEFER)
				dev_err(dev,
					"Failed to get gpio flags, error: %d\n",
					error);
			goto err_free_pdata;
		}

		button = &pdata->buttons[i++];
		button = &pdata->buttons[i++];


		button->gpio = of_get_gpio_flags(pp, 0, &flags);
		button->gpio = gpio;
		button->active_low = flags & OF_GPIO_ACTIVE_LOW;
		button->active_low = flags & OF_GPIO_ACTIVE_LOW;


		if (of_property_read_u32(pp, "linux,code", &button->code)) {
		if (of_property_read_u32(pp, "linux,code", &button->code)) {
+12 −1
Original line number Original line Diff line number Diff line
@@ -135,6 +135,7 @@ static struct gpio_keys_platform_data *gpio_keys_polled_get_devtree_pdata(struct


	i = 0;
	i = 0;
	for_each_child_of_node(node, pp) {
	for_each_child_of_node(node, pp) {
		int gpio;
		enum of_gpio_flags flags;
		enum of_gpio_flags flags;


		if (!of_find_property(pp, "gpios", NULL)) {
		if (!of_find_property(pp, "gpios", NULL)) {
@@ -143,9 +144,19 @@ static struct gpio_keys_platform_data *gpio_keys_polled_get_devtree_pdata(struct
			continue;
			continue;
		}
		}


		gpio = of_get_gpio_flags(pp, 0, &flags);
		if (gpio < 0) {
			error = gpio;
			if (error != -EPROBE_DEFER)
				dev_err(dev,
					"Failed to get gpio flags, error: %d\n",
					error);
			goto err_free_pdata;
		}

		button = &pdata->buttons[i++];
		button = &pdata->buttons[i++];


		button->gpio = of_get_gpio_flags(pp, 0, &flags);
		button->gpio = gpio;
		button->active_low = flags & OF_GPIO_ACTIVE_LOW;
		button->active_low = flags & OF_GPIO_ACTIVE_LOW;


		if (of_property_read_u32(pp, "linux,code", &button->code)) {
		if (of_property_read_u32(pp, "linux,code", &button->code)) {
+1 −1
Original line number Original line Diff line number Diff line
@@ -791,7 +791,7 @@ static psmouse_ret_t fsp_process_byte(struct psmouse *psmouse)
			fsp_set_slot(dev, 0, fgrs > 0, abs_x, abs_y);
			fsp_set_slot(dev, 0, fgrs > 0, abs_x, abs_y);
			fsp_set_slot(dev, 1, false, 0, 0);
			fsp_set_slot(dev, 1, false, 0, 0);
		}
		}
		if (fgrs > 0) {
		if (fgrs == 1 || (fgrs == 2 && !(packet[0] & FSP_PB0_MFMC_FGR2))) {
			input_report_abs(dev, ABS_X, abs_x);
			input_report_abs(dev, ABS_X, abs_x);
			input_report_abs(dev, ABS_Y, abs_y);
			input_report_abs(dev, ABS_Y, abs_y);
		}
		}