Re: [PATCH v3 3/5] usb: qcserial: refactor device layout selection

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Apr 27, 2014 at 04:47:44PM +0200, Bjørn Mork wrote:
> From: Bjørn Mork <bjorn@xxxxxxx>
> 
> Preparing for more supported standard device layouts. Keeping
> the matching macros unchanged to avoid breaking stable
> backporting of new device additions.
> 
> Signed-off-by: Bjørn Mork <bjorn@xxxxxxx>

Signed-off-by: Johan Hovold <jhovold@xxxxxxxxx>

> ---
>  drivers/usb/serial/qcserial.c | 22 ++++++++++++++++------
>  1 file changed, 16 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/usb/serial/qcserial.c b/drivers/usb/serial/qcserial.c
> index e282155dd4a1..217e29ccde52 100644
> --- a/drivers/usb/serial/qcserial.c
> +++ b/drivers/usb/serial/qcserial.c
> @@ -22,8 +22,14 @@
>  #define DRIVER_AUTHOR "Qualcomm Inc"
>  #define DRIVER_DESC "Qualcomm USB Serial driver"
>  
> +/* standard device layouts supported by this driver */
> +enum qcserial_layouts {
> +	QCSERIAL_G2K = 0,	/* Gobi 2000 */
> +	QCSERIAL_G1K = 1,	/* Gobi 1000 */
> +};
> +
>  #define DEVICE_G1K(v, p) \
> -	USB_DEVICE(v, p), .driver_info = 1
> +	USB_DEVICE(v, p), .driver_info = QCSERIAL_G1K
>  
>  static const struct usb_device_id id_table[] = {
>  	/* Gobi 1000 devices */
> @@ -178,11 +184,8 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)
>  	int retval = -ENODEV;
>  	__u8 nintf;
>  	__u8 ifnum;
> -	bool is_gobi1k = id->driver_info ? true : false;
>  	int altsetting = -1;
>  
> -	dev_dbg(dev, "Is Gobi 1000 = %d\n", is_gobi1k);
> -
>  	nintf = serial->dev->actconfig->desc.bNumInterfaces;
>  	dev_dbg(dev, "Num Interfaces = %d\n", nintf);
>  	ifnum = intf->desc.bInterfaceNumber;
> @@ -230,7 +233,8 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)
>  	 * gets handled by other drivers.
>  	 */
>  
> -	if (is_gobi1k) {
> +	switch (id->driver_info) {
> +	case QCSERIAL_G1K:
>  		/*
>  		 * Gobi 1K USB layout:
>  		 * 0: DM/DIAG (use libqcdm from ModemManager for communication)
> @@ -245,7 +249,8 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)
>  			dev_dbg(dev, "Modem port found\n");
>  		else
>  			altsetting = -1;
> -	} else {
> +		break;
> +	case QCSERIAL_G2K:
>  		/*
>  		 * Gobi 2K+ USB layout:
>  		 * 0: QMI/net
> @@ -273,6 +278,11 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)
>  			dev_dbg(dev, "Gobi 2K+ NMEA GPS interface found\n");
>  			break;
>  		}
> +		break;
> +	default:
> +		dev_err(dev, "unsupported device layout type: %lu\n",
> +			id->driver_info);
> +		break;
>  	}
>  
>  done:
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux