forked from Minki/linux
USB: qcserial: Use generic USB wwan code
Make qcserial use the generic USB wwan code. This should result in a performance improvement. Signed-off-by: Matthew Garrett <mjg@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
8b4c6a3ab5
commit
3d7e59ad88
@ -485,6 +485,7 @@ config USB_SERIAL_QCAUX
|
||||
|
||||
config USB_SERIAL_QUALCOMM
|
||||
tristate "USB Qualcomm Serial modem"
|
||||
select USB_SERIAL_WWAN
|
||||
help
|
||||
Say Y here if you have a Qualcomm USB modem device. These are
|
||||
usually wireless cellular modems.
|
||||
|
@ -15,6 +15,8 @@
|
||||
#include <linux/tty_flip.h>
|
||||
#include <linux/usb.h>
|
||||
#include <linux/usb/serial.h>
|
||||
#include <linux/slab.h>
|
||||
#include "usb-wwan.h"
|
||||
|
||||
#define DRIVER_AUTHOR "Qualcomm Inc"
|
||||
#define DRIVER_DESC "Qualcomm USB Serial driver"
|
||||
@ -92,6 +94,7 @@ static struct usb_driver qcdriver = {
|
||||
|
||||
static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)
|
||||
{
|
||||
struct usb_wwan_intf_private *data;
|
||||
int retval = -ENODEV;
|
||||
__u8 nintf;
|
||||
__u8 ifnum;
|
||||
@ -103,6 +106,13 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)
|
||||
ifnum = serial->interface->cur_altsetting->desc.bInterfaceNumber;
|
||||
dbg("This Interface = %d", ifnum);
|
||||
|
||||
data = serial->private = kzalloc(sizeof(struct usb_wwan_intf_private),
|
||||
GFP_KERNEL);
|
||||
if (!data)
|
||||
return -ENOMEM;
|
||||
|
||||
spin_lock_init(&data->susp_lock);
|
||||
|
||||
switch (nintf) {
|
||||
case 1:
|
||||
/* QDL mode */
|
||||
@ -161,6 +171,18 @@ static struct usb_serial_driver qcdevice = {
|
||||
.usb_driver = &qcdriver,
|
||||
.num_ports = 1,
|
||||
.probe = qcprobe,
|
||||
.open = usb_wwan_open,
|
||||
.close = usb_wwan_close,
|
||||
.write = usb_wwan_write,
|
||||
.write_room = usb_wwan_write_room,
|
||||
.chars_in_buffer = usb_wwan_chars_in_buffer,
|
||||
.attach = usb_wwan_startup,
|
||||
.disconnect = usb_wwan_disconnect,
|
||||
.release = usb_wwan_release,
|
||||
#ifdef CONFIG_PM
|
||||
.suspend = usb_wwan_suspend,
|
||||
.resume = usb_wwan_resume,
|
||||
#endif
|
||||
};
|
||||
|
||||
static int __init qcinit(void)
|
||||
|
Loading…
Reference in New Issue
Block a user