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

Commit ae911191 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: jornada720_ts - fix build error ( LONG() usage )
  Input: bcm5974 - switch back to normal mode when closing
parents 18f22fbb 1577e4b7
Loading
Loading
Loading
Loading
+9 −4
Original line number Original line Diff line number Diff line
@@ -351,8 +351,9 @@ static int report_tp_state(struct bcm5974 *dev, int size)
#define BCM5974_WELLSPRING_MODE_REQUEST_VALUE		0x300
#define BCM5974_WELLSPRING_MODE_REQUEST_VALUE		0x300
#define BCM5974_WELLSPRING_MODE_REQUEST_INDEX		0
#define BCM5974_WELLSPRING_MODE_REQUEST_INDEX		0
#define BCM5974_WELLSPRING_MODE_VENDOR_VALUE		0x01
#define BCM5974_WELLSPRING_MODE_VENDOR_VALUE		0x01
#define BCM5974_WELLSPRING_MODE_NORMAL_VALUE		0x08


static int bcm5974_wellspring_mode(struct bcm5974 *dev)
static int bcm5974_wellspring_mode(struct bcm5974 *dev, bool on)
{
{
	char *data = kmalloc(8, GFP_KERNEL);
	char *data = kmalloc(8, GFP_KERNEL);
	int retval = 0, size;
	int retval = 0, size;
@@ -377,7 +378,9 @@ static int bcm5974_wellspring_mode(struct bcm5974 *dev)
	}
	}


	/* apply the mode switch */
	/* apply the mode switch */
	data[0] = BCM5974_WELLSPRING_MODE_VENDOR_VALUE;
	data[0] = on ?
		BCM5974_WELLSPRING_MODE_VENDOR_VALUE :
		BCM5974_WELLSPRING_MODE_NORMAL_VALUE;


	/* write configuration */
	/* write configuration */
	size = usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0),
	size = usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0),
@@ -392,7 +395,8 @@ static int bcm5974_wellspring_mode(struct bcm5974 *dev)
		goto out;
		goto out;
	}
	}


	dprintk(2, "bcm5974: switched to wellspring mode.\n");
	dprintk(2, "bcm5974: switched to %s mode.\n",
		on ? "wellspring" : "normal");


 out:
 out:
	kfree(data);
	kfree(data);
@@ -481,7 +485,7 @@ static void bcm5974_irq_trackpad(struct urb *urb)
 */
 */
static int bcm5974_start_traffic(struct bcm5974 *dev)
static int bcm5974_start_traffic(struct bcm5974 *dev)
{
{
	if (bcm5974_wellspring_mode(dev)) {
	if (bcm5974_wellspring_mode(dev, true)) {
		dprintk(1, "bcm5974: mode switch failed\n");
		dprintk(1, "bcm5974: mode switch failed\n");
		goto error;
		goto error;
	}
	}
@@ -504,6 +508,7 @@ static void bcm5974_pause_traffic(struct bcm5974 *dev)
{
{
	usb_kill_urb(dev->tp_urb);
	usb_kill_urb(dev->tp_urb);
	usb_kill_urb(dev->bt_urb);
	usb_kill_urb(dev->bt_urb);
	bcm5974_wellspring_mode(dev, false);
}
}


/*
/*
+2 −2
Original line number Original line Diff line number Diff line
@@ -119,8 +119,8 @@ static int __devinit jornada720_ts_probe(struct platform_device *pdev)
	input_dev->id.bustype = BUS_HOST;
	input_dev->id.bustype = BUS_HOST;
	input_dev->dev.parent = &pdev->dev;
	input_dev->dev.parent = &pdev->dev;


	input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_ABS);
	input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
	input_dev->keybit[LONG(BTN_TOUCH)] = BIT(BTN_TOUCH);
	input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
	input_set_abs_params(input_dev, ABS_X, 270, 3900, 0, 0);
	input_set_abs_params(input_dev, ABS_X, 270, 3900, 0, 0);
	input_set_abs_params(input_dev, ABS_Y, 180, 3700, 0, 0);
	input_set_abs_params(input_dev, ABS_Y, 180, 3700, 0, 0);