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

Commit 65cde54b authored by Dmitry Torokhov's avatar Dmitry Torokhov
Browse files

Input: remove user counters from drivers/usb/input since input


       core takes care of calling open and close methods only
       when needed.

Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent 3108d42d
Loading
Loading
Loading
Loading
+2 −12
Original line number Diff line number Diff line
@@ -324,7 +324,6 @@ struct aiptek {
	struct aiptek_settings curSetting;	/* tablet's current programmable */
	struct aiptek_settings newSetting;	/* ... and new param settings    */
	unsigned int ifnum;			/* interface number for IO       */
	int openCount;				/* module use counter            */
	int diagnostic;				/* tablet diagnostic codes       */
	unsigned long eventCount;		/* event count                   */
	int inDelay;				/* jitter: in jitter delay?      */
@@ -814,15 +813,9 @@ static int aiptek_open(struct input_dev *inputdev)
{
	struct aiptek *aiptek = inputdev->private;

	if (aiptek->openCount++ > 0) {
		return 0;
	}

	aiptek->urb->dev = aiptek->usbdev;
	if (usb_submit_urb(aiptek->urb, GFP_KERNEL) != 0) {
		aiptek->openCount--;
	if (usb_submit_urb(aiptek->urb, GFP_KERNEL) != 0)
		return -EIO;
	}

	return 0;
}
@@ -834,10 +827,8 @@ static void aiptek_close(struct input_dev *inputdev)
{
	struct aiptek *aiptek = inputdev->private;

	if (--aiptek->openCount == 0) {
	usb_kill_urb(aiptek->urb);
}
}

/***********************************************************************
 * aiptek_set_report and aiptek_get_report() are borrowed from Linux 2.4.x,
@@ -2252,7 +2243,6 @@ static void aiptek_disconnect(struct usb_interface *intf)
				AIPTEK_PACKET_LENGTH,
				aiptek->data, aiptek->data_dma);
		kfree(aiptek);
		aiptek = NULL;
	}
}

+5 −23
Original line number Diff line number Diff line
@@ -113,11 +113,11 @@
#define DATA_BUFSIZE      63    /* size of URB data buffers */
#define ATI_INPUTNUM      1     /* Which input device to register as */

static unsigned long channel_mask = 0;
static unsigned long channel_mask;
module_param(channel_mask, ulong, 0444);
MODULE_PARM_DESC(channel_mask, "Bitmask of remote control channels to ignore");

static int debug = 0;
static int debug;
module_param(debug, int, 0444);
MODULE_PARM_DESC(debug, "Enable extra debug messages and information");

@@ -174,8 +174,6 @@ struct ati_remote {
	dma_addr_t inbuf_dma;
	dma_addr_t outbuf_dma;

	int open;                   /* open counter */

	unsigned char old_data[2];  /* Detect duplicate events */
	unsigned long old_jiffies;
	unsigned long acc_jiffies;  /* handle acceleration */
@@ -328,25 +326,16 @@ static void ati_remote_dump(unsigned char *data, unsigned int len)
static int ati_remote_open(struct input_dev *inputdev)
{
	struct ati_remote *ati_remote = inputdev->private;
	int retval = 0;

	down(&disconnect_sem);

	if (ati_remote->open++)
		goto exit;

	/* On first open, submit the read urb which was set up previously. */
	ati_remote->irq_urb->dev = ati_remote->udev;
	if (usb_submit_urb(ati_remote->irq_urb, GFP_KERNEL)) {
		dev_err(&ati_remote->interface->dev,
			"%s: usb_submit_urb failed!\n", __FUNCTION__);
		ati_remote->open--;
		retval = -EIO;
		return -EIO;
	}

exit:
	up(&disconnect_sem);
	return retval;
	return 0;
}

/*
@@ -356,7 +345,6 @@ static void ati_remote_close(struct input_dev *inputdev)
{
	struct ati_remote *ati_remote = inputdev->private;

	if (!--ati_remote->open)
	usb_kill_urb(ati_remote->irq_urb);
}

@@ -602,8 +590,6 @@ static void ati_remote_irq_in(struct urb *urb, struct pt_regs *regs)
 */
static void ati_remote_delete(struct ati_remote *ati_remote)
{
	if (!ati_remote) return;

	if (ati_remote->irq_urb)
		usb_kill_urb(ati_remote->irq_urb);

@@ -799,8 +785,6 @@ static void ati_remote_disconnect(struct usb_interface *interface)
{
	struct ati_remote *ati_remote;

	down(&disconnect_sem);

	ati_remote = usb_get_intfdata(interface);
	usb_set_intfdata(interface, NULL);
	if (!ati_remote) {
@@ -809,8 +793,6 @@ static void ati_remote_disconnect(struct usb_interface *interface)
	}

	ati_remote_delete(ati_remote);

	up(&disconnect_sem);
}

/*
+2 −8
Original line number Diff line number Diff line
@@ -137,15 +137,10 @@ static int itmtouch_open(struct input_dev *input)
{
	struct itmtouch_dev *itmtouch = input->private;

	if (itmtouch->users++)
		return 0;

	itmtouch->readurb->dev = itmtouch->usbdev;

	if (usb_submit_urb(itmtouch->readurb, GFP_KERNEL)) {
		itmtouch->users--;
	if (usb_submit_urb(itmtouch->readurb, GFP_KERNEL))
		return -EIO;
	}

	return 0;
}
@@ -154,7 +149,6 @@ static void itmtouch_close(struct input_dev *input)
{
	struct itmtouch_dev *itmtouch = input->private;

	if (!--itmtouch->users)
	usb_kill_urb(itmtouch->readurb);
}

+2 −9
Original line number Diff line number Diff line
@@ -36,7 +36,6 @@ struct kbtab {
	struct input_dev dev;
	struct usb_device *usbdev;
	struct urb *irq;
	int open;
	int x, y;
	int button;
	int pressure;
@@ -105,14 +104,9 @@ static int kbtab_open(struct input_dev *dev)
{
	struct kbtab *kbtab = dev->private;

	if (kbtab->open++)
		return 0;

	kbtab->irq->dev = kbtab->usbdev;
	if (usb_submit_urb(kbtab->irq, GFP_KERNEL)) {
		kbtab->open--;
	if (usb_submit_urb(kbtab->irq, GFP_KERNEL))
		return -EIO;
	}

	return 0;
}
@@ -121,7 +115,6 @@ static void kbtab_close(struct input_dev *dev)
{
	struct kbtab *kbtab = dev->private;

	if (!--kbtab->open)
	usb_kill_urb(kbtab->irq);
}

+2 −9
Original line number Diff line number Diff line
@@ -98,7 +98,6 @@ struct mtouch_usb {
	struct urb *irq;
	struct usb_device *udev;
	struct input_dev input;
	int open;
	char name[128];
	char phys[64];
};
@@ -155,15 +154,10 @@ static int mtouchusb_open(struct input_dev *input)
{
	struct mtouch_usb *mtouch = input->private;

	if (mtouch->open++)
		return 0;

	mtouch->irq->dev = mtouch->udev;

	if (usb_submit_urb(mtouch->irq, GFP_ATOMIC)) {
		mtouch->open--;
	if (usb_submit_urb(mtouch->irq, GFP_ATOMIC))
		return -EIO;
	}

	return 0;
}
@@ -172,7 +166,6 @@ static void mtouchusb_close(struct input_dev *input)
{
	struct mtouch_usb *mtouch = input->private;

	if (!--mtouch->open)
	usb_kill_urb(mtouch->irq);
}

Loading