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

Commit 9865dd40 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "input: synaptics_dsx: fix conflicts with other drivers"

parents cbbcd776 fdd592e7
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -11,6 +11,8 @@ menuconfig INPUT_TOUCHSCREEN

if INPUT_TOUCHSCREEN

source "drivers/input/touchscreen/synaptics_dsx/Kconfig"

config TOUCHSCREEN_88PM860X
	tristate "Marvell 88PM860x touchscreen"
	depends on MFD_88PM860X
+1 −0
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ obj-$(CONFIG_TOUCHSCREEN_PIXCIR) += pixcir_i2c_ts.o
obj-$(CONFIG_TOUCHSCREEN_S3C2410)	+= s3c2410_ts.o
obj-$(CONFIG_TOUCHSCREEN_ST1232)	+= st1232.o
obj-$(CONFIG_TOUCHSCREEN_STMPE)		+= stmpe-ts.o
obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_v21) += synaptics_dsx/
obj-$(CONFIG_TOUCHSCREEN_TI_AM335X_TSC)	+= ti_am335x_tsc.o
obj-$(CONFIG_TOUCHSCREEN_TNETV107X)	+= tnetv107x-ts.o
obj-$(CONFIG_TOUCHSCREEN_TOUCHIT213)	+= touchit213.o
+29 −13
Original line number Diff line number Diff line
#
# Synaptics DSX touchscreen driver configuration
#
menuconfig TOUCHSCREEN_SYNAPTICS_DSX
menuconfig TOUCHSCREEN_SYNAPTICS_DSX_v21
	bool "Synaptics DSX touchscreen"
	default y
	help
@@ -10,22 +10,38 @@ menuconfig TOUCHSCREEN_SYNAPTICS_DSX

	  If unsure, say N.

if TOUCHSCREEN_SYNAPTICS_DSX
if TOUCHSCREEN_SYNAPTICS_DSX_v21

choice
	default TOUCHSCREEN_SYNAPTICS_DSX_I2C
	default TOUCHSCREEN_SYNAPTICS_DSX_I2C_v21
	prompt "Synaptics DSX touchscreen bus interface"
config TOUCHSCREEN_SYNAPTICS_DSX_I2C

config TOUCHSCREEN_SYNAPTICS_DSX_I2C_v21
	bool "I2C"
	depends on I2C
config TOUCHSCREEN_SYNAPTICS_DSX_SPI
	help
	  Say Y here if you have a Synaptics DSX touchscreen interfaced
	  to the host processor over I2C

	  If unsure, say N.

	  This module uses the services of DSX CORE

config TOUCHSCREEN_SYNAPTICS_DSX_SPI_v21
	bool "SPI"
	depends on SPI_MASTER
	help
	  Say Y here if you have a Synaptics DSX touchscreen interfaced
	  to the host processor over SPI

	  If unsure, say N.

	  This module uses the services of DSX CORE
endchoice

config TOUCHSCREEN_SYNAPTICS_DSX_CORE
config TOUCHSCREEN_SYNAPTICS_DSX_CORE_v21
	tristate "Synaptics DSX core driver module"
	depends on TOUCHSCREEN_SYNAPTICS_DSX_I2C || TOUCHSCREEN_SYNAPTICS_DSX_SPI
	depends on TOUCHSCREEN_SYNAPTICS_DSX_I2C_v21 || TOUCHSCREEN_SYNAPTICS_DSX_SPI_v21
	help
	  Say Y here to enable basic touch reporting functionalities.

@@ -34,9 +50,9 @@ config TOUCHSCREEN_SYNAPTICS_DSX_CORE
	  To compile this driver as a module, choose M here: the
	  module will be called synaptics_dsx_core.

config TOUCHSCREEN_SYNAPTICS_DSX_RMI_DEV
config TOUCHSCREEN_SYNAPTICS_DSX_RMI_DEV_v21
	tristate "Synaptics DSX touchscreen RMI device module"
	depends on TOUCHSCREEN_SYNAPTICS_DSX_CORE
	depends on TOUCHSCREEN_SYNAPTICS_DSX_CORE_v21
	help
	  Say Y here to enable support for direct RMI register access.

@@ -45,9 +61,9 @@ config TOUCHSCREEN_SYNAPTICS_DSX_RMI_DEV
	  To compile this driver as a module, choose M here: the
	  module will be called synaptics_dsx_rmi_dev.

config TOUCHSCREEN_SYNAPTICS_DSX_FW_UPDATE
config TOUCHSCREEN_SYNAPTICS_DSX_FW_UPDATE_v21
	tristate "Synaptics DSX touchscreen firmware update module"
	depends on TOUCHSCREEN_SYNAPTICS_DSX_CORE
	depends on TOUCHSCREEN_SYNAPTICS_DSX_CORE_v21
	help
	  Say Y here to enable support for carrying out firmware update.

@@ -56,9 +72,9 @@ config TOUCHSCREEN_SYNAPTICS_DSX_FW_UPDATE
	  To compile this driver as a module, choose M here: the
	  module will be called synaptics_dsx_fw_update.

config TOUCHSCREEN_SYNAPTICS_DSX_PROXIMITY
config TOUCHSCREEN_SYNAPTICS_DSX_PROXIMITY_v21
	tristate "Synaptics DSX touchscreen proximity module"
	depends on TOUCHSCREEN_SYNAPTICS_DSX_CORE
	depends on TOUCHSCREEN_SYNAPTICS_DSX_CORE_v21
	help
	  Say Y here to enable support for proximity functionalities.

+6 −6
Original line number Diff line number Diff line
@@ -4,9 +4,9 @@

# Each configuration option enables a list of files.

obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_I2C) += synaptics_dsx_i2c.o
obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_SPI) += synaptics_dsx_spi.o
obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_CORE) += synaptics_dsx_core.o
obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_RMI_DEV) += synaptics_dsx_rmi_dev.o
obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_FW_UPDATE) += synaptics_dsx_fw_update.o
obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_PROXIMITY) += synaptics_dsx_proximity.o
obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_I2C_v21) += synaptics_dsx_i2c.o
obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_SPI_v21) += synaptics_dsx_spi.o
obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_CORE_v21) += synaptics_dsx_core.o
obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_RMI_DEV_v21) += synaptics_dsx_rmi_dev.o
obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_FW_UPDATE_v21) += synaptics_dsx_fw_update.o
obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_DSX_PROXIMITY_v21) += synaptics_dsx_proximity.o
+30 −10
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@
#include <linux/gpio.h>
#include <linux/platform_device.h>
#include <linux/regulator/consumer.h>
#include <linux/input/synaptics_dsx.h>
#include <linux/input/synaptics_dsx_v2.h>
#include "synaptics_dsx_core.h"
#ifdef KERNEL_ABOVE_2_6_38
#include <linux/input/mt.h>
@@ -2069,7 +2069,7 @@ static void synaptics_rmi4_set_params(struct synaptics_rmi4_data *rmi4_data)

#ifdef TYPE_B_PROTOCOL
	input_mt_init_slots(rmi4_data->input_dev,
			rmi4_data->num_of_fingers);
			rmi4_data->num_of_fingers, 0);
#endif

	f1a = NULL;
@@ -2419,7 +2419,7 @@ static void synaptics_rmi4_exp_fn_work(struct work_struct *work)
}

/**
* synaptics_rmi4_new_function()
* synaptics_rmi4_dsx_new_function()
*
* Called by other expansion Function modules in their module init and
* module exit functions.
@@ -2430,7 +2430,7 @@ static void synaptics_rmi4_exp_fn_work(struct work_struct *work)
* can be inserted or removed dynamically at module init and exit times,
* respectively.
*/
void synaptics_rmi4_new_function(struct synaptics_rmi4_exp_fn *exp_fn,
void synaptics_rmi4_dsx_new_function(struct synaptics_rmi4_exp_fn *exp_fn,
		bool insert)
{
	struct synaptics_rmi4_exp_fhandler *exp_fhandler;
@@ -2474,7 +2474,7 @@ exit:

	return;
}
EXPORT_SYMBOL(synaptics_rmi4_new_function);
EXPORT_SYMBOL(synaptics_rmi4_dsx_new_function);

 /**
 * synaptics_rmi4_probe()
@@ -2490,7 +2490,7 @@ EXPORT_SYMBOL(synaptics_rmi4_new_function);
 * and creates a work queue for detection of other expansion Function
 * modules.
 */
static int __devinit synaptics_rmi4_probe(struct platform_device *pdev)
static int synaptics_rmi4_probe(struct platform_device *pdev)
{
	int retval;
	unsigned char attr_count;
@@ -2532,7 +2532,11 @@ static int __devinit synaptics_rmi4_probe(struct platform_device *pdev)
			retval = PTR_ERR(rmi4_data->regulator);
			goto err_regulator;
		}
		regulator_enable(rmi4_data->regulator);
		retval = regulator_enable(rmi4_data->regulator);
		if (retval)
			dev_err(&pdev->dev,
				"%s: Failed to enable regulators\n",
				__func__);
		msleep(bdata->power_delay_ms);
	}

@@ -2676,7 +2680,7 @@ err_regulator:
 * frees the interrupt, unregisters the driver from the input subsystem,
 * turns off the power to the sensor, and frees other allocated resources.
 */
static int __devexit synaptics_rmi4_remove(struct platform_device *pdev)
static int synaptics_rmi4_remove(struct platform_device *pdev)
{
	unsigned char attr_count;
	struct synaptics_rmi4_data *rmi4_data = platform_get_drvdata(pdev);
@@ -2972,7 +2976,11 @@ static int synaptics_rmi4_resume(struct device *dev)
		return 0;

	if (rmi4_data->regulator) {
		regulator_enable(rmi4_data->regulator);
		retval = regulator_enable(rmi4_data->regulator);
		if (retval)
			dev_err(rmi4_data->pdev->dev.parent,
				"%s: Failed to enable regulators\n",
				__func__);
		msleep(bdata->reset_delay_ms);
		rmi4_data->current_page = MASK_8BIT;
	}
@@ -3004,6 +3012,18 @@ static const struct dev_pm_ops synaptics_rmi4_dev_pm_ops = {
	.suspend = synaptics_rmi4_suspend,
	.resume  = synaptics_rmi4_resume,
};
#else
static int synaptics_rmi4_suspend(struct device *dev)
{
	dev_err(dev, "PM not supported\n");
	return -EINVAL;
}

static int synaptics_rmi4_resume(struct device *dev)
{
	dev_err(dev, "PM not supported\n");
	return -EINVAL;
}
#endif

static struct platform_driver synaptics_rmi4_driver = {
@@ -3015,7 +3035,7 @@ static struct platform_driver synaptics_rmi4_driver = {
#endif
	},
	.probe = synaptics_rmi4_probe,
	.remove = __devexit_p(synaptics_rmi4_remove),
	.remove = synaptics_rmi4_remove,
};

 /**
Loading