Google
  Web www.spinics.net

Re: [patch 1/8] belkin_sa: clean up for new style termios and speed handling, plus style

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


On Thursday 13 December 2007, akpm@xxxxxxxxxxxxxxxxxxxx wrote:
>From: Alan Cox <alan@xxxxxxxxxxxxxxxxxxx>
>
>A tester with actual hardware would be useful
>
What hardware, Alan?  I have one of their ups's, and my pci usb card is a 
belkin.  But an lsmod does not show belkin_sa as being loaded.  Running 
2.6.24-rc5 ATM.

>Signed-off-by: Alan Cox <alan@xxxxxxxxxx>
>Cc: Greg KH <greg@xxxxxxxxx>
>Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
>---
>
> drivers/usb/serial/belkin_sa.c |   35 +++++++++++++------------------
> 1 file changed, 15 insertions(+), 20 deletions(-)
>
>diff -puN
> drivers/usb/serial/belkin_sa.c~belkin_sa-clean-up-for-new-style-termios-and
>-speed drivers/usb/serial/belkin_sa.c ---
> a/drivers/usb/serial/belkin_sa.c~belkin_sa-clean-up-for-new-style-termios-a
>nd-speed +++ a/drivers/usb/serial/belkin_sa.c
>@@ -350,14 +350,12 @@ static void belkin_sa_set_termios (struc
> 	unsigned long control_state;
> 	int bad_flow_control;
> 	speed_t baud;
>+	struct ktermios *termios = port->tty->termios;
>
>-	if ((!port->tty) || (!port->tty->termios)) {
>-		dbg ("%s - no tty or termios structure", __FUNCTION__);
>-		return;
>-	}
>+	iflag = termios->c_iflag;
>+	cflag = termios->c_cflag;
>
>-	iflag = port->tty->termios->c_iflag;
>-	cflag = port->tty->termios->c_cflag;
>+	termios->c_cflag &= ~CMSPAR;
>
> 	/* get a local copy of the current port settings */
> 	spin_lock_irqsave(&priv->lock, flags);
>@@ -369,33 +367,30 @@ static void belkin_sa_set_termios (struc
> 	old_cflag = old_termios->c_cflag;
>
> 	/* Set the baud rate */
>-	if( (cflag&CBAUD) != (old_cflag&CBAUD) ) {
>+	if ((cflag & CBAUD) != (old_cflag & CBAUD)) {
> 		/* reassert DTR and (maybe) RTS on transition from B0 */
> 		if( (old_cflag&CBAUD) == B0 ) {
> 			control_state |= (TIOCM_DTR|TIOCM_RTS);
> 			if (BSA_USB_CMD(BELKIN_SA_SET_DTR_REQUEST, 1) < 0)
> 				err("Set DTR error");
> 			/* don't set RTS if using hardware flow control */
>-			if (!(old_cflag&CRTSCTS) )
>+			if (!(old_cflag & CRTSCTS))
> 				if (BSA_USB_CMD(BELKIN_SA_SET_RTS_REQUEST, 1) < 0)
> 					err("Set RTS error");
> 		}
> 	}
>
> 	baud = tty_get_baud_rate(port->tty);
>-	if (baud == 0) {
>-		dbg("%s - tty_get_baud_rate says 0 baud", __FUNCTION__);
>-		return;
>-	}
>-	urb_value = BELKIN_SA_BAUD(baud);
>-	/* Clip to maximum speed */
>-	if (urb_value == 0)
>-		urb_value = 1;
>-	/* Turn it back into a resulting real baud rate */
>-	baud = BELKIN_SA_BAUD(urb_value);
>-	/* FIXME: Once the tty updates are done then push this back to the tty */
>+	if (baud) {
>+		urb_value = BELKIN_SA_BAUD(baud);
>+		/* Clip to maximum speed */
>+		if (urb_value == 0)
>+			urb_value = 1;
>+		/* Turn it back into a resulting real baud rate */
>+		baud = BELKIN_SA_BAUD(urb_value);
>
>-	if ((cflag & CBAUD) != B0 ) {
>+		/* Report the actual baud rate back to the caller */
>+		tty_encode_baud_rate(port->tty, baud, baud);
> 		if (BSA_USB_CMD(BELKIN_SA_SET_BAUDRATE_REQUEST, urb_value) < 0)
> 			err("Set baudrate error");
> 	} else {
>_
>
>-------------------------------------------------------------------------
>SF.Net email is sponsored by:
>Check out the new SourceForge.net Marketplace.
>It's the best place to buy or sell services
>for just about anything Open Source.
>http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
>_______________________________________________
>linux-usb-devel@xxxxxxxxxxxxxxxxxxxxx
>To unsubscribe, use the last form field at:
>https://lists.sourceforge.net/lists/listinfo/linux-usb-devel



-- 
Cheers, Gene
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
Electricians made popcorn in the power supply

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
linux-usb-devel@xxxxxxxxxxxxxxxxxxxxx
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

[Home]     [Video for Linux]     [Photo]     [Yosemite Forum]     [Yosemite Photos]    [Video Projectors]     [PDAs]     [Hacking TiVo]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Devices]     [Big List of Linux Books]     [Free Dating]

  Powered by Linux