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

Commit 6d1d1698 authored by Alan Cox's avatar Alan Cox Committed by Linus Torvalds
Browse files

tty-usb-ipw: Coding style

parent eb6215cc
Loading
Loading
Loading
Loading
+144 −135
Original line number Original line Diff line number Diff line
@@ -47,7 +47,7 @@
#include <linux/spinlock.h>
#include <linux/spinlock.h>
#include <linux/usb.h>
#include <linux/usb.h>
#include <linux/usb/serial.h>
#include <linux/usb/serial.h>
#include <asm/uaccess.h>
#include <linux/uaccess.h>


/*
/*
 * Version Information
 * Version Information
@@ -94,33 +94,34 @@ enum {


/* data bits */
/* data bits */
#define ipw_dtb_7		0x700
#define ipw_dtb_7		0x700
#define ipw_dtb_8		0x810	// ok so the define is misleading, I know, but forces 8,n,1
#define ipw_dtb_8		0x810	/* ok so the define is misleading, I know, but forces 8,n,1 */
					// I mean, is there a point to any other setting these days? :)	
					/* I mean, is there a point to any other setting these days? :) */


/* usb control request types : */
/* usb control request types : */
#define IPW_SIO_RXCTL		0x00	// control bulk rx channel transmissions, value=1/0 (on/off)
#define IPW_SIO_RXCTL		0x00	/* control bulk rx channel transmissions, value=1/0 (on/off) */
#define IPW_SIO_SET_BAUD	0x01	// set baud, value=requested ipw_sio_bxxxx
#define IPW_SIO_SET_BAUD	0x01	/* set baud, value=requested ipw_sio_bxxxx */
#define IPW_SIO_SET_LINE	0x03	// set databits, parity. value=ipw_dtb_x
#define IPW_SIO_SET_LINE	0x03	/* set databits, parity. value=ipw_dtb_x */
#define IPW_SIO_SET_PIN		0x03	// set/clear dtr/rts value=ipw_pin_xxx
#define IPW_SIO_SET_PIN		0x03	/* set/clear dtr/rts value=ipw_pin_xxx */
#define IPW_SIO_POLL		0x08	// get serial port status byte, call with value=0
#define IPW_SIO_POLL		0x08	/* get serial port status byte, call with value=0 */
#define IPW_SIO_INIT		0x11	// initializes ? value=0 (appears as first thing todo on open)
#define IPW_SIO_INIT		0x11	/* initializes ? value=0 (appears as first thing todo on open) */
#define IPW_SIO_PURGE		0x12	// purge all transmissions?, call with value=numchar_to_purge
#define IPW_SIO_PURGE		0x12	/* purge all transmissions?, call with value=numchar_to_purge */
#define IPW_SIO_HANDFLOW	0x13	// set xon/xoff limits value=0, and a buffer of 0x10 bytes
#define IPW_SIO_HANDFLOW	0x13	/* set xon/xoff limits value=0, and a buffer of 0x10 bytes */
#define IPW_SIO_SETCHARS	0x13	// set the flowcontrol special chars, value=0, buf=6 bytes, 
#define IPW_SIO_SETCHARS	0x13	/* set the flowcontrol special chars, value=0, buf=6 bytes, */
					// last 2 bytes contain flowcontrol chars e.g. 00 00 00 00 11 13
					/* last 2 bytes contain flowcontrol chars e.g. 00 00 00 00 11 13 */


/* values used for request IPW_SIO_SET_PIN */
/* values used for request IPW_SIO_SET_PIN */
#define IPW_PIN_SETDTR		0x101
#define IPW_PIN_SETDTR		0x101
#define IPW_PIN_SETRTS		0x202
#define IPW_PIN_SETRTS		0x202
#define IPW_PIN_CLRDTR		0x100
#define IPW_PIN_CLRDTR		0x100
#define IPW_PIN_CLRRTS		0x200 // unconfirmed
#define IPW_PIN_CLRRTS		0x200 /* unconfirmed */


/* values used for request IPW_SIO_RXCTL */
/* values used for request IPW_SIO_RXCTL */
#define IPW_RXBULK_ON		1
#define IPW_RXBULK_ON		1
#define IPW_RXBULK_OFF		0
#define IPW_RXBULK_OFF		0


/* various 16 byte hardcoded transferbuffers used by flow control */
/* various 16 byte hardcoded transferbuffers used by flow control */
#define IPW_BYTES_FLOWINIT	{ 0x01, 0, 0, 0, 0x40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
#define IPW_BYTES_FLOWINIT	{ 0x01, 0, 0, 0, 0x40, 0, 0, 0, \
					0, 0, 0, 0, 0, 0, 0, 0 }


/* Interpretation of modem status lines */
/* Interpretation of modem status lines */
/* These need sorting out by individually connecting pins and checking
/* These need sorting out by individually connecting pins and checking
@@ -132,17 +133,6 @@ enum {
#define IPW_CTS			((1<<5) | (1<<4))
#define IPW_CTS			((1<<5) | (1<<4))


#define IPW_WANTS_TO_SEND	0x30
#define IPW_WANTS_TO_SEND	0x30
//#define IPW_DTR			/* Data Terminal Ready */
//#define IPW_CTS			/* Clear To Send */
//#define IPW_CD			/* Carrier Detect */
//#define IPW_DSR			/* Data Set Ready */
//#define IPW_RxD			/* Receive pin */

//#define IPW_LE
//#define IPW_RTS		
//#define IPW_ST		
//#define IPW_SR		
//#define IPW_RI			/* Ring Indicator */


static struct usb_device_id usb_ipw_ids[] = {
static struct usb_device_id usb_ipw_ids[] = {
	{ USB_DEVICE(IPW_VID, IPW_PID) },
	{ USB_DEVICE(IPW_VID, IPW_PID) },
@@ -177,7 +167,8 @@ static void ipw_read_bulk_callback(struct urb *urb)
		return;
		return;
	}
	}


	usb_serial_debug_data(debug, &port->dev, __func__, urb->actual_length, data);
	usb_serial_debug_data(debug, &port->dev, __func__,
					urb->actual_length, data);


	tty = port->port.tty;
	tty = port->port.tty;
	if (tty && urb->actual_length) {
	if (tty && urb->actual_length) {
@@ -195,7 +186,9 @@ static void ipw_read_bulk_callback(struct urb *urb)
			  ipw_read_bulk_callback, port);
			  ipw_read_bulk_callback, port);
	result = usb_submit_urb(port->read_urb, GFP_ATOMIC);
	result = usb_submit_urb(port->read_urb, GFP_ATOMIC);
	if (result)
	if (result)
		dev_err(&port->dev, "%s - failed resubmitting read urb, error %d\n", __func__, result);
		dev_err(&port->dev,
			"%s - failed resubmitting read urb, error %d\n",
							__func__, result);
	return;
	return;
}
}


@@ -216,8 +209,9 @@ static int ipw_open(struct tty_struct *tty,
	if (tty)
	if (tty)
		tty->low_latency = 1;
		tty->low_latency = 1;


	/* --1: Tell the modem to initialize (we think) From sniffs this is always the
	/* --1: Tell the modem to initialize (we think) From sniffs this is
	 * first thing that gets sent to the modem during opening of the device */
	 *	always the first thing that gets sent to the modem during
	 *	opening of the device */
	dbg("%s: Sending SIO_INIT (we guess)", __func__);
	dbg("%s: Sending SIO_INIT (we guess)", __func__);
	result = usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
	result = usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
			 IPW_SIO_INIT,
			 IPW_SIO_INIT,
@@ -228,11 +222,14 @@ static int ipw_open(struct tty_struct *tty,
			 0,
			 0,
			 100000);
			 100000);
	if (result < 0)
	if (result < 0)
		dev_err(&port->dev, "Init of modem failed (error = %d)\n", result);
		dev_err(&port->dev,
			"Init of modem failed (error = %d)\n", result);


	/* reset the bulk pipes */
	/* reset the bulk pipes */
	usb_clear_halt(dev, usb_rcvbulkpipe(dev, port->bulk_in_endpointAddress));
	usb_clear_halt(dev,
	usb_clear_halt(dev, usb_sndbulkpipe(dev, port->bulk_out_endpointAddress));
			usb_rcvbulkpipe(dev, port->bulk_in_endpointAddress));
	usb_clear_halt(dev,
			usb_sndbulkpipe(dev, port->bulk_out_endpointAddress));


	/*--2: Start reading from the device */
	/*--2: Start reading from the device */
	dbg("%s: setting up bulk read callback", __func__);
	dbg("%s: setting up bulk read callback", __func__);
@@ -243,7 +240,8 @@ static int ipw_open(struct tty_struct *tty,
			  ipw_read_bulk_callback, port);
			  ipw_read_bulk_callback, port);
	result = usb_submit_urb(port->read_urb, GFP_KERNEL);
	result = usb_submit_urb(port->read_urb, GFP_KERNEL);
	if (result < 0)
	if (result < 0)
		dbg("%s - usb_submit_urb(read bulk) failed with status %d", __func__, result);
		dbg("%s - usb_submit_urb(read bulk) failed with status %d",
							__func__, result);


	/*--3: Tell the modem to open the floodgates on the rx bulk channel */
	/*--3: Tell the modem to open the floodgates on the rx bulk channel */
	dbg("%s:asking modem for RxRead (RXBULK_ON)", __func__);
	dbg("%s:asking modem for RxRead (RXBULK_ON)", __func__);
@@ -256,7 +254,8 @@ static int ipw_open(struct tty_struct *tty,
			 0,
			 0,
			 100000);
			 100000);
	if (result < 0)
	if (result < 0)
		dev_err(&port->dev, "Enabling bulk RxRead failed (error = %d)\n", result);
		dev_err(&port->dev,
			"Enabling bulk RxRead failed (error = %d)\n", result);


	/*--4: setup the initial flowcontrol */
	/*--4: setup the initial flowcontrol */
	dbg("%s:setting init flowcontrol (%s)", __func__, buf_flow_init);
	dbg("%s:setting init flowcontrol (%s)", __func__, buf_flow_init);
@@ -269,7 +268,8 @@ static int ipw_open(struct tty_struct *tty,
			 0x10,
			 0x10,
			 200000);
			 200000);
	if (result < 0)
	if (result < 0)
		dev_err(&port->dev, "initial flowcontrol failed (error = %d)\n", result);
		dev_err(&port->dev,
			"initial flowcontrol failed (error = %d)\n", result);




	/*--5: raise the dtr */
	/*--5: raise the dtr */
@@ -283,7 +283,8 @@ static int ipw_open(struct tty_struct *tty,
			 0,
			 0,
			 200000);
			 200000);
	if (result < 0)
	if (result < 0)
		dev_err(&port->dev, "setting dtr failed (error = %d)\n", result);
		dev_err(&port->dev,
				"setting dtr failed (error = %d)\n", result);


	/*--6: raise the rts */
	/*--6: raise the rts */
	dbg("%s:raising rts", __func__);
	dbg("%s:raising rts", __func__);
@@ -296,7 +297,8 @@ static int ipw_open(struct tty_struct *tty,
			 0,
			 0,
			 200000);
			 200000);
	if (result < 0)
	if (result < 0)
		dev_err(&port->dev, "setting dtr failed (error = %d)\n", result);
		dev_err(&port->dev,
				"setting dtr failed (error = %d)\n", result);


	kfree(buf_flow_init);
	kfree(buf_flow_init);
	return 0;
	return 0;
@@ -324,25 +326,29 @@ static void ipw_close(struct tty_struct *tty,
			 0,
			 0,
			 200000);
			 200000);
	if (result < 0)
	if (result < 0)
		dev_err(&port->dev, "dropping dtr failed (error = %d)\n", result);
		dev_err(&port->dev, "dropping dtr failed (error = %d)\n",
								result);


	/*--2: drop the rts */
	/*--2: drop the rts */
	dbg("%s:dropping rts", __func__);
	dbg("%s:dropping rts", __func__);
	result = usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
	result = usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
				 IPW_SIO_SET_PIN, USB_TYPE_VENDOR | USB_RECIP_INTERFACE | USB_DIR_OUT,
			 IPW_SIO_SET_PIN, USB_TYPE_VENDOR |
			 		USB_RECIP_INTERFACE | USB_DIR_OUT,
			 IPW_PIN_CLRRTS,
			 IPW_PIN_CLRRTS,
			 0,
			 0,
			 NULL,
			 NULL,
			 0,
			 0,
			 200000);
			 200000);
	if (result < 0)
	if (result < 0)
		dev_err(&port->dev, "dropping rts failed (error = %d)\n", result);
		dev_err(&port->dev,
				"dropping rts failed (error = %d)\n", result);




	/*--3: purge */
	/*--3: purge */
	dbg("%s:sending purge", __func__);
	dbg("%s:sending purge", __func__);
	result = usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
	result = usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
				 IPW_SIO_PURGE, USB_TYPE_VENDOR | USB_RECIP_INTERFACE | USB_DIR_OUT,
			 IPW_SIO_PURGE, USB_TYPE_VENDOR |
			 		USB_RECIP_INTERFACE | USB_DIR_OUT,
			 0x03,
			 0x03,
			 0,
			 0,
			 NULL,
			 NULL,
@@ -352,7 +358,8 @@ static void ipw_close(struct tty_struct *tty,
		dev_err(&port->dev, "purge failed (error = %d)\n", result);
		dev_err(&port->dev, "purge failed (error = %d)\n", result);




	/* send RXBULK_off (tell modem to stop transmitting bulk data on rx chan) */
	/* send RXBULK_off (tell modem to stop transmitting bulk data on
	   rx chan) */
	result = usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
	result = usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
			 IPW_SIO_RXCTL,
			 IPW_SIO_RXCTL,
			 USB_TYPE_VENDOR | USB_RECIP_INTERFACE | USB_DIR_OUT,
			 USB_TYPE_VENDOR | USB_RECIP_INTERFACE | USB_DIR_OUT,
@@ -363,7 +370,8 @@ static void ipw_close(struct tty_struct *tty,
			 100000);
			 100000);


	if (result < 0)
	if (result < 0)
		dev_err(&port->dev, "Disabling bulk RxRead failed (error = %d)\n", result);
		dev_err(&port->dev,
			"Disabling bulk RxRead failed (error = %d)\n", result);


	/* shutdown any in-flight urbs that we know about */
	/* shutdown any in-flight urbs that we know about */
	usb_kill_urb(port->read_urb);
	usb_kill_urb(port->read_urb);
@@ -424,7 +432,8 @@ static int ipw_write(struct tty_struct *tty, struct usb_serial_port *port,
	ret = usb_submit_urb(port->write_urb, GFP_ATOMIC);
	ret = usb_submit_urb(port->write_urb, GFP_ATOMIC);
	if (ret != 0) {
	if (ret != 0) {
		port->write_urb_busy = 0;
		port->write_urb_busy = 0;
		dbg("%s - usb_submit_urb(write bulk) failed with error = %d", __func__, ret);
		dbg("%s - usb_submit_urb(write bulk) failed with error = %d",
								__func__, ret);
		return ret;
		return ret;
	}
	}