[PATCH 1/9] staging/sb105x: coding style fixes

Samuel Iglesias Gonsalvez siglesias at igalia.com
Tue Mar 19 09:51:22 UTC 2013


No change in the logic of the driver

Signed-off-by: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
---
 drivers/staging/sb105x/sb_pci_mp.c |  974 +++++++++++++++++-------------------
 1 file changed, 449 insertions(+), 525 deletions(-)

diff --git a/drivers/staging/sb105x/sb_pci_mp.c b/drivers/staging/sb105x/sb_pci_mp.c
index f75ee1d..660ec9c 100644
--- a/drivers/staging/sb105x/sb_pci_mp.c
+++ b/drivers/staging/sb105x/sb_pci_mp.c
@@ -141,25 +141,24 @@ static int sb1053a_get_interface(struct mp_port *mtpt, int port_num)
 	unsigned long option_base_addr = mtpt->option_base_addr;
 	unsigned int  interface = 0;
 
-	switch (port_num)
-	{
-		case 0:
-		case 1:
-			/* set GPO[1:0] = 00 */
-			outb(0x00, option_base_addr + MP_OPTR_GPODR);
-			break;
-		case 2:
-		case 3:
-			/* set GPO[1:0] = 01 */
-			outb(0x01, option_base_addr + MP_OPTR_GPODR);
-			break;
-		case 4:
-		case 5:
-			/* set GPO[1:0] = 10 */
-			outb(0x02, option_base_addr + MP_OPTR_GPODR);
-			break;
-		default:
-			break;
+	switch (port_num) {
+	case 0:
+	case 1:
+		/* set GPO[1:0] = 00 */
+		outb(0x00, option_base_addr + MP_OPTR_GPODR);
+		break;
+	case 2:
+	case 3:
+		/* set GPO[1:0] = 01 */
+		outb(0x01, option_base_addr + MP_OPTR_GPODR);
+		break;
+	case 4:
+	case 5:
+		/* set GPO[1:0] = 10 */
+		outb(0x02, option_base_addr + MP_OPTR_GPODR);
+		break;
+	default:
+		break;
 	}
 
 	port_num &= 0x1;
@@ -172,7 +171,7 @@ static int sb1053a_get_interface(struct mp_port *mtpt, int port_num)
 
 	return (interface);
 }
-		
+
 static int sb1054_get_register(struct sb_uart_port * port, int page, int reg)
 {
 	int ret = 0;
@@ -180,115 +179,112 @@ static int sb1054_get_register(struct sb_uart_port * port, int page, int reg)
 	unsigned int mcr = 0;
 	unsigned int tmp = 0;
 
-	if( page <= 0)
-	{
+	if (page <= 0) {
 		printk(" page 0 can not use this fuction\n");
 		return -1;
 	}
 
-	switch(page)
-	{
-		case 1:
-			lcr = SB105X_GET_LCR(port);
-			tmp = lcr | SB105X_LCR_DLAB;
-			SB105X_PUT_LCR(port, tmp);
-
-			tmp = SB105X_GET_LCR(port);
-
-			ret = SB105X_GET_REG(port,reg);
-			SB105X_PUT_LCR(port,lcr);
-			break;
-		case 2:
-			mcr = SB105X_GET_MCR(port);
-			tmp = mcr | SB105X_MCR_P2S;
-			SB105X_PUT_MCR(port,tmp);
-
-			ret = SB105X_GET_REG(port,reg);
-
-			SB105X_PUT_MCR(port,mcr);
-			break;
-		case 3:
-			lcr = SB105X_GET_LCR(port);
-			tmp = lcr | SB105X_LCR_BF;
-			SB105X_PUT_LCR(port,tmp);
-			SB105X_PUT_REG(port,SB105X_PSR,SB105X_PSR_P3KEY);
-
-			ret = SB105X_GET_REG(port,reg);
-
-			SB105X_PUT_LCR(port,lcr);
-			break;
-		case 4:
-			lcr = SB105X_GET_LCR(port);
-			tmp = lcr | SB105X_LCR_BF;
-			SB105X_PUT_LCR(port,tmp);
-			SB105X_PUT_REG(port,SB105X_PSR,SB105X_PSR_P4KEY);
-
-			ret = SB105X_GET_REG(port,reg);
-
-			SB105X_PUT_LCR(port,lcr);
-			break;
-		default:
-			printk(" error invalid page number \n");
-			return -1;
+	switch(page) {
+	case 1:
+		lcr = SB105X_GET_LCR(port);
+		tmp = lcr | SB105X_LCR_DLAB;
+		SB105X_PUT_LCR(port, tmp);
+
+		tmp = SB105X_GET_LCR(port);
+
+		ret = SB105X_GET_REG(port,reg);
+		SB105X_PUT_LCR(port,lcr);
+		break;
+	case 2:
+		mcr = SB105X_GET_MCR(port);
+		tmp = mcr | SB105X_MCR_P2S;
+		SB105X_PUT_MCR(port,tmp);
+
+		ret = SB105X_GET_REG(port,reg);
+
+		SB105X_PUT_MCR(port,mcr);
+		break;
+	case 3:
+		lcr = SB105X_GET_LCR(port);
+		tmp = lcr | SB105X_LCR_BF;
+		SB105X_PUT_LCR(port,tmp);
+		SB105X_PUT_REG(port,SB105X_PSR,SB105X_PSR_P3KEY);
+
+		ret = SB105X_GET_REG(port,reg);
+
+		SB105X_PUT_LCR(port,lcr);
+		break;
+	case 4:
+		lcr = SB105X_GET_LCR(port);
+		tmp = lcr | SB105X_LCR_BF;
+		SB105X_PUT_LCR(port,tmp);
+		SB105X_PUT_REG(port,SB105X_PSR,SB105X_PSR_P4KEY);
+
+		ret = SB105X_GET_REG(port,reg);
+
+		SB105X_PUT_LCR(port,lcr);
+		break;
+	default:
+		printk(" error invalid page number \n");
+		return -1;
 	}
 
 	return ret;
 }
 
 static int sb1054_set_register(struct sb_uart_port * port, int page, int reg, int value)
-{  
+{
 	int lcr = 0;
 	int mcr = 0;
 	int ret = 0;
 
-	if( page <= 0)
-	{
+	if (page <= 0) {
 		printk(" page 0 can not use this fuction\n");
 		return -1;
 	}
-	switch(page)
-	{
-		case 1:
-			lcr = SB105X_GET_LCR(port);
-			SB105X_PUT_LCR(port, lcr | SB105X_LCR_DLAB);
 
-			SB105X_PUT_REG(port,reg,value);
+	switch(page) {
+	case 1:
+		lcr = SB105X_GET_LCR(port);
+		SB105X_PUT_LCR(port, lcr | SB105X_LCR_DLAB);
 
-			SB105X_PUT_LCR(port, lcr);
-			ret = 1;
-			break;
-		case 2:
-			mcr = SB105X_GET_MCR(port);
-			SB105X_PUT_MCR(port, mcr | SB105X_MCR_P2S);
+		SB105X_PUT_REG(port,reg,value);
 
-			SB105X_PUT_REG(port,reg,value);
+		SB105X_PUT_LCR(port, lcr);
+		ret = 1;
+		break;
+	case 2:
+		mcr = SB105X_GET_MCR(port);
+		SB105X_PUT_MCR(port, mcr | SB105X_MCR_P2S);
 
-			SB105X_PUT_MCR(port, mcr);
-			ret = 1;
-			break;
-		case 3:
-			lcr = SB105X_GET_LCR(port);
-			SB105X_PUT_LCR(port, lcr | SB105X_LCR_BF);
-			SB105X_PUT_PSR(port, SB105X_PSR_P3KEY);
+		SB105X_PUT_REG(port,reg,value);
 
-			SB105X_PUT_REG(port,reg,value);
+		SB105X_PUT_MCR(port, mcr);
+		ret = 1;
+		break;
+	case 3:
+		lcr = SB105X_GET_LCR(port);
+		SB105X_PUT_LCR(port, lcr | SB105X_LCR_BF);
+		SB105X_PUT_PSR(port, SB105X_PSR_P3KEY);
 
-			SB105X_PUT_LCR(port, lcr);
-			ret = 1;
-			break;
-		case 4:
-			lcr = SB105X_GET_LCR(port);
-			SB105X_PUT_LCR(port, lcr | SB105X_LCR_BF);
-			SB105X_PUT_PSR(port, SB105X_PSR_P4KEY);
+		SB105X_PUT_REG(port,reg,value);
 
-			SB105X_PUT_REG(port,reg,value);
+		SB105X_PUT_LCR(port, lcr);
+		ret = 1;
+		break;
+	case 4:
+		lcr = SB105X_GET_LCR(port);
+		SB105X_PUT_LCR(port, lcr | SB105X_LCR_BF);
+		SB105X_PUT_PSR(port, SB105X_PSR_P4KEY);
 
-			SB105X_PUT_LCR(port, lcr);
-			ret = 1;
-			break;
-		default:
-			printk(" error invalid page number \n");
-			return -1;
+		SB105X_PUT_REG(port,reg,value);
+
+		SB105X_PUT_LCR(port, lcr);
+		ret = 1;
+		break;
+	default:
+		printk(" error invalid page number \n");
+		return -1;
 	}
 
 	return ret;
@@ -298,13 +294,11 @@ static int set_multidrop_mode(struct sb_uart_port *port, unsigned int mode)
 {
 	int mdr = SB105XA_MDR_NPS;
 
-	if (mode & MDMODE_ENABLE)
-	{
+	if (mode & MDMODE_ENABLE) {
 		mdr |= SB105XA_MDR_MDE;
 	}
 
-	if (1) //(mode & MDMODE_AUTO)
-	{
+	if (1) { //(mode & MDMODE_AUTO)
 		int efr = 0;
 		mdr |= SB105XA_MDR_AME;
 		efr = sb1054_get_register(port, PAGE_3, SB105X_EFR);
@@ -346,9 +340,9 @@ static void SendATCommand(struct mp_port * mtpt)
 	serial_outp(mtpt,UART_DLM,(Divisor & 0xff00)>>8); //baudrate is 4800
 
 
-	serial_outp(mtpt,UART_LCR,lineControl);	
+	serial_outp(mtpt,UART_LCR,lineControl);
 	serial_outp(mtpt,UART_LCR,0x03); // N-8-1
-	serial_outp(mtpt,UART_FCR,7); 
+	serial_outp(mtpt,UART_FCR,7);
 	serial_outp(mtpt,UART_MCR,0x3);
 	while(ch[i]){
 		while((serial_inp(mtpt,UART_LSR) & 0x60) !=0x60){
@@ -366,19 +360,15 @@ static int set_deep_fifo(struct sb_uart_port * port, int status)
 	afr_status = sb1054_get_register(port, PAGE_4, SB105X_AFR);
 
 	if(status == ENABLE)
-	{
 		afr_status |= SB105X_AFR_AFEN;
-	}
 	else
-	{
 		afr_status &= ~SB105X_AFR_AFEN;
-	}
-		
+
 	sb1054_set_register(port,PAGE_4,SB105X_AFR,afr_status);
-	sb1054_set_register(port,PAGE_4,SB105X_TTR,ttr[port->line]); 
-	sb1054_set_register(port,PAGE_4,SB105X_RTR,rtr[port->line]); 
+	sb1054_set_register(port,PAGE_4,SB105X_TTR,ttr[port->line]);
+	sb1054_set_register(port,PAGE_4,SB105X_RTR,rtr[port->line]);
 	afr_status = sb1054_get_register(port, PAGE_4, SB105X_AFR);
-		
+
 	return afr_status;
 }
 
@@ -387,35 +377,29 @@ static int get_device_type(int arg)
 	int ret;
         ret = inb(mp_devs[arg].option_reg_addr+MP_OPTR_DIR0);
         ret = (ret & 0xf0) >> 4;
-        switch (ret)
-        {
-               case DIR_UART_16C550:
-                    return PORT_16C55X;
-               case DIR_UART_16C1050:
-                    return PORT_16C105X;
-               case DIR_UART_16C1050A:
-               /*
-               if (mtpt->port.line < 2)
-               {
-                    return PORT_16C105XA;
-               }
-               else
-               {
-                   if (mtpt->device->device_id & 0x50)
-                   {
-                       return PORT_16C55X;
-                   }
-                   else
-                   {
-                       return PORT_16C105X;
-                   }
-               }*/
-               return PORT_16C105XA;
-               default:
-                    return PORT_UNKNOWN;
-        }
+        switch (ret) {
+	case DIR_UART_16C550:
+		return PORT_16C55X;
+	case DIR_UART_16C1050:
+		return PORT_16C105X;
+	case DIR_UART_16C1050A:
+#if 0
+		if (mtpt->port.line < 2) {
+			return PORT_16C105XA;
+		} else {
+			if (mtpt->device->device_id & 0x50)
+				return PORT_16C55X;
+			else
+				return PORT_16C105X;
 
+		}
+#endif
+		return PORT_16C105XA;
+	default:
+		return PORT_UNKNOWN;
+	}
 }
+
 static int get_deep_fifo(struct sb_uart_port * port)
 {
 	int afr_status = 0;
@@ -438,23 +422,22 @@ static int set_auto_rts(struct sb_uart_port *port, int status)
 	sb1054_set_register(port,PAGE_3,SB105X_EFR,efr_status);
 	efr_status = sb1054_get_register(port, PAGE_3, SB105X_EFR);
 #endif
-		
+
 //ATR
 	atr_status = sb1054_get_register(port, PAGE_3, SB105X_ATR);
-	switch(status)
-	{
-		case RS422PTP:
-			atr_status = (SB105X_ATR_TPS) | (SB105X_ATR_A80);
-			break;
-		case RS422MD:
-			atr_status = (SB105X_ATR_TPS) | (SB105X_ATR_TCMS) | (SB105X_ATR_A80);
-			break;
-		case RS485NE:
-			atr_status = (SB105X_ATR_RCMS) | (SB105X_ATR_TPS) | (SB105X_ATR_TCMS) | (SB105X_ATR_A80);
-			break;
-		case RS485ECHO:
-			atr_status = (SB105X_ATR_TPS) | (SB105X_ATR_TCMS) | (SB105X_ATR_A80);
-			break;
+	switch(status) {
+	case RS422PTP:
+		atr_status = (SB105X_ATR_TPS) | (SB105X_ATR_A80);
+		break;
+	case RS422MD:
+		atr_status = (SB105X_ATR_TPS) | (SB105X_ATR_TCMS) | (SB105X_ATR_A80);
+		break;
+	case RS485NE:
+		atr_status = (SB105X_ATR_RCMS) | (SB105X_ATR_TPS) | (SB105X_ATR_TCMS) | (SB105X_ATR_A80);
+		break;
+	case RS485ECHO:
+		atr_status = (SB105X_ATR_TPS) | (SB105X_ATR_TCMS) | (SB105X_ATR_A80);
+		break;
 	}
 
 	sb1054_set_register(port,PAGE_3,SB105X_ATR,atr_status);
@@ -534,7 +517,7 @@ static int mp_startup(struct sb_uart_state *state, int init_hw)
 			return -ENOMEM;
 
 		info->xmit.buf = (unsigned char *) page;
-			
+
 		uart_circ_clear(&info->xmit);
 	}
 
@@ -645,24 +628,23 @@ static int mp_write(struct tty_struct *tty, const unsigned char * buf, int count
 	struct circ_buf *circ;
 	int c, ret = 0;
 
-	if (!state || !state->info) {
+	if (!state || !state->info)
 		return -EL3HLT;
-	}
 
 	port = state->port;
 	circ = &state->info->xmit;
 
 	if (!circ->buf)
 		return 0;
-		
+
 	while (1) {
 		c = CIRC_SPACE_TO_END(circ->head, circ->tail, UART_XMIT_SIZE);
 		if (count < c)
 			c = count;
 		if (c <= 0)
 			break;
-	memcpy(circ->buf + circ->head, buf, c);
 
+		memcpy(circ->buf + circ->head, buf, c);
 		circ->head = (circ->head + c) & (UART_XMIT_SIZE - 1);
 		buf += c;
 		count -= c;
@@ -692,9 +674,8 @@ static void mp_flush_buffer(struct tty_struct *tty)
 	struct sb_uart_port *port;
 	unsigned long flags;
 
-	if (!state || !state->info) {
+	if (!state || !state->info)
 		return;
-	}
 
 	port = state->port;
 	spin_lock_irqsave(&port->lock, flags);
@@ -710,9 +691,9 @@ static void mp_send_xchar(struct tty_struct *tty, char ch)
 	struct sb_uart_port *port = state->port;
 	unsigned long flags;
 
-	if (port->ops->send_xchar)
+	if (port->ops->send_xchar) {
 		port->ops->send_xchar(port, ch);
-	else {
+	} else {
 		port->x_char = ch;
 		if (ch) {
 			spin_lock_irqsave(&port->lock, flags);
@@ -1094,138 +1075,129 @@ static int mp_ioctl(struct tty_struct *tty, unsigned int cmd, unsigned long arg)
 
 
 	switch (cmd) {
-		case TIOCSMULTIDROP:
-			/* set multi-drop mode enable or disable, and default operation mode is H/W mode */
-			if (info->port.type == PORT_16C105XA)
-			{
-				//arg &= ~0x6;
-				//state->port->mdmode = 0;
-				return set_multidrop_mode((struct sb_uart_port *)info, (unsigned int)arg);
-			}
-			ret = -ENOTSUPP;
-			break;
-		case GETDEEPFIFO:
-			ret = get_deep_fifo(state->port);
-			return ret;
-		case SETDEEPFIFO:
-			ret = set_deep_fifo(state->port,arg);
-			deep[state->port->line] = arg;
-			return ret;
-		case SETTTR:
-			if (info->port.type == PORT_16C105X || info->port.type == PORT_16C105XA){
-				ret = sb1054_set_register(state->port,PAGE_4,SB105X_TTR,arg);
-				ttr[state->port->line] = arg;
-			}
-			return ret;
-		case SETRTR:
-			if (info->port.type == PORT_16C105X || info->port.type == PORT_16C105XA){
-				ret = sb1054_set_register(state->port,PAGE_4,SB105X_RTR,arg);
-				rtr[state->port->line] = arg;
-			}
-			return ret;
-		case GETTTR:
-			if (info->port.type == PORT_16C105X || info->port.type == PORT_16C105XA){
-				ret = sb1054_get_register(state->port,PAGE_4,SB105X_TTR);
-			}
-			return ret;
-		case GETRTR:
-			if (info->port.type == PORT_16C105X || info->port.type == PORT_16C105XA){
-				ret = sb1054_get_register(state->port,PAGE_4,SB105X_RTR);
-			}
-			return ret;
-
-		case SETFCR:
-			if (info->port.type == PORT_16C105X || info->port.type == PORT_16C105XA){
-				ret = sb1054_set_register(state->port,PAGE_1,SB105X_FCR,arg);
-			}
-			else{
-				serial_out(info,2,arg);
-			}
-
-			return ret;
-		case TIOCSMDADDR:
-			/* set multi-drop address */
-			if (info->port.type == PORT_16C105XA)
-			{
-				state->port->mdmode |= MDMODE_ADDR;
-				return set_multidrop_addr((struct sb_uart_port *)info, (unsigned int)arg);
-			}
-			ret = -ENOTSUPP;
-			break;
+	case TIOCSMULTIDROP:
+		/* set multi-drop mode enable or disable, and default operation mode is H/W mode */
+		if (info->port.type == PORT_16C105XA)
+		{
+			//arg &= ~0x6;
+			//state->port->mdmode = 0;
+			return set_multidrop_mode((struct sb_uart_port *)info, (unsigned int)arg);
+		}
+		ret = -ENOTSUPP;
+		break;
+	case GETDEEPFIFO:
+		ret = get_deep_fifo(state->port);
+		return ret;
+	case SETDEEPFIFO:
+		ret = set_deep_fifo(state->port,arg);
+		deep[state->port->line] = arg;
+		return ret;
+	case SETTTR:
+		if (info->port.type == PORT_16C105X || info->port.type == PORT_16C105XA){
+			ret = sb1054_set_register(state->port,PAGE_4,SB105X_TTR,arg);
+			ttr[state->port->line] = arg;
+		}
+		return ret;
+	case SETRTR:
+		if (info->port.type == PORT_16C105X || info->port.type == PORT_16C105XA){
+			ret = sb1054_set_register(state->port,PAGE_4,SB105X_RTR,arg);
+			rtr[state->port->line] = arg;
+		}
+		return ret;
+	case GETTTR:
+		if (info->port.type == PORT_16C105X || info->port.type == PORT_16C105XA){
+			ret = sb1054_get_register(state->port,PAGE_4,SB105X_TTR);
+		}
+		return ret;
+	case GETRTR:
+		if (info->port.type == PORT_16C105X || info->port.type == PORT_16C105XA){
+			ret = sb1054_get_register(state->port,PAGE_4,SB105X_RTR);
+		}
+		return ret;
 
-		case TIOCGMDADDR:
-			/* set multi-drop address */
-			if ((info->port.type == PORT_16C105XA) && (state->port->mdmode & MDMODE_ADDR))
-			{
-				return get_multidrop_addr((struct sb_uart_port *)info);
-			}
-			ret = -ENOTSUPP;
-			break;
+	case SETFCR:
+		if (info->port.type == PORT_16C105X || info->port.type == PORT_16C105XA)
+			ret = sb1054_set_register(state->port,PAGE_1,SB105X_FCR,arg);
+		else
+			serial_out(info,2,arg);
 
-		case TIOCSENDADDR:
-			/* send address in multi-drop mode */
-			if ((info->port.type == PORT_16C105XA) 
-					&& (state->port->mdmode & (MDMODE_ENABLE)))
-			{
-				if (mp_chars_in_buffer(tty) > 0)
-				{
-					tty_wait_until_sent(tty, 0);
-				}
-				//while ((serial_in(info, UART_LSR) & 0x60) != 0x60);
-				//while (sb1054_get_register(state->port, PAGE_2, SB105X_TFCR) != 0);
-				while ((serial_in(info, UART_LSR) & 0x60) != 0x60);
-				serial_out(info, UART_SCR, (int)arg);
-			}
-			break;
+		return ret;
+	case TIOCSMDADDR:
+		/* set multi-drop address */
+		if (info->port.type == PORT_16C105XA)
+		{
+			state->port->mdmode |= MDMODE_ADDR;
+			return set_multidrop_addr((struct sb_uart_port *)info, (unsigned int)arg);
+		}
+		ret = -ENOTSUPP;
+		break;
+
+	case TIOCGMDADDR:
+		/* set multi-drop address */
+		if ((info->port.type == PORT_16C105XA) && (state->port->mdmode & MDMODE_ADDR))
+			return get_multidrop_addr((struct sb_uart_port *)info);
+		ret = -ENOTSUPP;
+		break;
+
+	case TIOCSENDADDR:
+		/* send address in multi-drop mode */
+		if ((info->port.type == PORT_16C105XA)
+				&& (state->port->mdmode & (MDMODE_ENABLE)))
+		{
+			if (mp_chars_in_buffer(tty) > 0)
+				tty_wait_until_sent(tty, 0);
+			//while ((serial_in(info, UART_LSR) & 0x60) != 0x60);
+			//while (sb1054_get_register(state->port, PAGE_2, SB105X_TFCR) != 0);
+			while ((serial_in(info, UART_LSR) & 0x60) != 0x60);
+			serial_out(info, UART_SCR, (int)arg);
+		}
+		break;
 
-		case TIOCGSERIAL:
-			ret = mp_get_info(state, (struct serial_struct *)arg);
-			break;
+	case TIOCGSERIAL:
+		ret = mp_get_info(state, (struct serial_struct *)arg);
+		break;
 
-		case TIOCSSERIAL:
-			ret = mp_set_info(state, (struct serial_struct *)arg);
-			break;
+	case TIOCSSERIAL:
+		ret = mp_set_info(state, (struct serial_struct *)arg);
+		break;
 
-		case TIOCSERCONFIG:
-			ret = mp_do_autoconfig(state);
-			break;
+	case TIOCSERCONFIG:
+		ret = mp_do_autoconfig(state);
+		break;
 
-		case TIOCSERGWILD: /* obsolete */
-		case TIOCSERSWILD: /* obsolete */
-			ret = 0;
-			break;
-			/* for Multiport */
-		case TIOCGNUMOFPORT: /* Get number of ports */
-			return NR_PORTS;
-		case TIOCGGETDEVID:
-			return mp_devs[arg].device_id;
-		case TIOCGGETREV:
-			return mp_devs[arg].revision;
-		case TIOCGGETNRPORTS:
-			return mp_devs[arg].nr_ports;
-		case TIOCGGETBDNO:
-			return NR_BOARD;
-		case TIOCGGETINTERFACE:
-			if (mp_devs[arg].revision == 0xc0)
-			{
-				/* for SB16C1053APCI */
-				return (sb1053a_get_interface(info, info->port.line));
-			}
-			else
-			{
-				return (inb(mp_devs[arg].option_reg_addr+MP_OPTR_IIR0+(state->port->line/8)));
-			}
-		case TIOCGGETPORTTYPE:
-			ret = get_device_type(arg);;
-			return ret;
-		case TIOCSMULTIECHO: /* set to multi-drop mode(RS422) or echo mode(RS485)*/
-			outb( ( inb(info->interface_config_addr) & ~0x03 ) | 0x01 ,  
-					info->interface_config_addr);
-			return 0;
-		case TIOCSPTPNOECHO: /* set to multi-drop mode(RS422) or echo mode(RS485) */
-			outb( ( inb(info->interface_config_addr) & ~0x03 )  ,             
-					info->interface_config_addr);
-			return 0;
+	case TIOCSERGWILD: /* obsolete */
+	case TIOCSERSWILD: /* obsolete */
+		ret = 0;
+		break;
+		/* for Multiport */
+	case TIOCGNUMOFPORT: /* Get number of ports */
+		return NR_PORTS;
+	case TIOCGGETDEVID:
+		return mp_devs[arg].device_id;
+	case TIOCGGETREV:
+		return mp_devs[arg].revision;
+	case TIOCGGETNRPORTS:
+		return mp_devs[arg].nr_ports;
+	case TIOCGGETBDNO:
+		return NR_BOARD;
+	case TIOCGGETINTERFACE:
+		if (mp_devs[arg].revision == 0xc0) {
+			/* for SB16C1053APCI */
+			return (sb1053a_get_interface(info, info->port.line));
+		} else {
+			return (inb(mp_devs[arg].option_reg_addr+MP_OPTR_IIR0+(state->port->line/8)));
+		}
+	case TIOCGGETPORTTYPE:
+		ret = get_device_type(arg);;
+		return ret;
+	case TIOCSMULTIECHO: /* set to multi-drop mode(RS422) or echo mode(RS485)*/
+		outb( ( inb(info->interface_config_addr) & ~0x03 ) | 0x01 ,
+				info->interface_config_addr);
+		return 0;
+	case TIOCSPTPNOECHO: /* set to multi-drop mode(RS422) or echo mode(RS485) */
+		outb( ( inb(info->interface_config_addr) & ~0x03 )  ,
+				info->interface_config_addr);
+		return 0;
 	}
 
 	if (ret != -ENOIOCTLCMD)
@@ -1237,13 +1209,13 @@ static int mp_ioctl(struct tty_struct *tty, unsigned int cmd, unsigned long arg)
 	}
 
 	switch (cmd) {
-		case TIOCMIWAIT:
-			ret = mp_wait_modem_status(state, arg);
-			break;
+	case TIOCMIWAIT:
+		ret = mp_wait_modem_status(state, arg);
+		break;
 
-		case TIOCGICOUNT:
-			ret = mp_get_count(state, (struct serial_icounter_struct *)arg);
-			break;
+	case TIOCGICOUNT:
+		ret = mp_get_count(state, (struct serial_icounter_struct *)arg);
+		break;
 	}
 
 	if (ret != -ENOIOCTLCMD)
@@ -1251,16 +1223,17 @@ static int mp_ioctl(struct tty_struct *tty, unsigned int cmd, unsigned long arg)
 
 	MP_STATE_LOCK(state);
 	switch (cmd) {
-		case TIOCSERGETLSR: /* Get line status register */
-			ret = mp_get_lsr_info(state, (unsigned int *)arg);
-			break;
+	case TIOCSERGETLSR: /* Get line status register */
+		ret = mp_get_lsr_info(state, (unsigned int *)arg);
+		break;
 
-		default: {
-					struct sb_uart_port *port = state->port;
-					if (port->ops->ioctl)
-						ret = port->ops->ioctl(port, cmd, arg);
-					break;
-				}
+	default:
+		{
+			struct sb_uart_port *port = state->port;
+			if (port->ops->ioctl)
+				ret = port->ops->ioctl(port, cmd, arg);
+			break;
+		}
 	}
 
 	MP_STATE_UNLOCK(state);
@@ -1365,7 +1338,7 @@ static void mp_close(struct tty_struct *tty, struct file *filp)
 	tty_ldisc_flush(tty);
 	tty->closing = 0;
 	state->info->tty = NULL;
-	if (state->info->blocked_open) 
+	if (state->info->blocked_open)
 	{
 		if (state->close_delay)
 		{
@@ -1761,7 +1734,7 @@ static int mp_register_driver(struct uart_driver *drv)
 	normal->major		= drv->major;
 	normal->minor_start	= drv->minor;
 
-	normal->num		= MAX_MP_PORT ; 
+	normal->num		= MAX_MP_PORT ;
 
 	normal->type		= TTY_DRIVER_TYPE_SERIAL;
 	normal->subtype		= SERIAL_TYPE_NORMAL;
@@ -1775,8 +1748,8 @@ static int mp_register_driver(struct uart_driver *drv)
 for (i = 0; i < drv->nr; i++) {
 	struct sb_uart_state *state = drv->state + i;
 
-	state->close_delay     = 500;   
-	state->closing_wait    = 30000; 
+	state->close_delay     = 500;
+	state->closing_wait    = 30000;
 
 	mutex_init(&state->mutex);
 	}
@@ -1929,7 +1902,7 @@ static void autoconfig(struct mp_port *mtpt, unsigned int probeflags)
 	DEBUG_AUTOCONF("iir=%d ", scratch);
 	if(mtpt->device->nr_ports >= 8)
 		b_ret = read_option_register(mtpt,(MP_OPTR_DIR0 + ((mtpt->port.line)/8)));
-	else	
+	else
 		b_ret = read_option_register(mtpt,MP_OPTR_DIR0);
 	u_type = (b_ret & 0xf0) >> 4;
 	if(mtpt->port.type == PORT_UNKNOWN )
@@ -1959,7 +1932,7 @@ static void autoconfig(struct mp_port *mtpt, unsigned int probeflags)
 					}
 				}
 				break;
-			default:	
+			default:
 				mtpt->port.type = PORT_UNKNOWN;
 				break;
 		}
@@ -2086,12 +2059,12 @@ static _INLINE_ void receive_chars(struct mp_port *mtpt, int *status )
 		{
 			ch = serial_inp(mtpt, UART_RX);
 		}
-		else if (lsr & UART_LSR_SPECIAL) 
+		else if (lsr & UART_LSR_SPECIAL)
 		{
 			flag = 0;
 			ch = serial_inp(mtpt, UART_RX);
 
-			if (lsr & UART_LSR_BI) 
+			if (lsr & UART_LSR_BI)
 			{
 
 				mtpt->port.icount.brk++;
@@ -2099,7 +2072,7 @@ static _INLINE_ void receive_chars(struct mp_port *mtpt, int *status )
 
 				if (sb_uart_handle_break(&mtpt->port))
 					goto ignore_char;
-			} 
+			}
 			if (lsr & UART_LSR_PE)
 			{
 				mtpt->port.icount.parity++;
@@ -2216,7 +2189,7 @@ static inline void multi_handle_port(struct mp_port *mtpt)
 		{
 			if (mtpt->interface >= RS485NE)
 				uart_set_mctrl(&mtpt->port, TIOCM_RTS);
-			
+
 			transmit_chars(mtpt);
 
 
@@ -2246,10 +2219,10 @@ static irqreturn_t multi_interrupt(int irq, void *dev_id)
 		unsigned int iir;
 
 		mtpt = list_entry(lhead, struct mp_port, list);
-		
+
 		iir = serial_in(mtpt, UART_IIR);
 		printk("intrrupt! port %d, iir 0x%x\n", mtpt->port.line, iir); //wlee
-		if (!(iir & UART_IIR_NO_INT)) 
+		if (!(iir & UART_IIR_NO_INT))
 		{
 			printk("interrupt handle\n");
 			spin_lock(&mtpt->port.lock);
@@ -2261,7 +2234,7 @@ static irqreturn_t multi_interrupt(int irq, void *dev_id)
 			end = lhead;
 
 		lhead = lhead->next;
-		if (lhead == iinfo->head && pass_counter++ > PASS_LIMIT) 
+		if (lhead == iinfo->head && pass_counter++ > PASS_LIMIT)
 		{
 			printk(KERN_ERR "multi: too much work for "
 					"irq%d\n", irq);
@@ -2325,9 +2298,8 @@ static void serial_unlink_irq_chain(struct mp_port *mtpt)
 	struct irq_info *i = irq_lists + mtpt->port.irq;
 
 	if (list_empty(i->head))
-	{
 		free_irq(mtpt->port.irq, i);
-	}
+
 	serial_do_unlink(i, mtpt);
 }
 
@@ -2453,9 +2425,7 @@ static int multi_startup(struct sb_uart_port *port)
 
 		mtpt->timer.data = (unsigned long)mtpt;
 		mod_timer(&mtpt->timer, jiffies + timeout);
-	} 
-	else 
-	{
+	} else {
 		retval = serial_link_irq_chain(mtpt);
 		if (retval)
 			return retval;
@@ -2470,7 +2440,7 @@ static int multi_startup(struct sb_uart_port *port)
 	multi_set_mctrl(&mtpt->port, mtpt->port.mctrl);
 	spin_unlock_irqrestore(&mtpt->port.lock, flags);
 
-	
+
 	mtpt->ier = UART_IER_RLSI | UART_IER_RDI;
 	serial_outp(mtpt, UART_IER, mtpt->ier);
 
@@ -2509,13 +2479,9 @@ static void multi_shutdown(struct sb_uart_port *port)
 	(void) serial_in(mtpt, UART_RX);
 
 	if ((!is_real_interrupt(mtpt->port.irq))||(mtpt->poll_type==TYPE_POLL))
-	{
 		del_timer_sync(&mtpt->timer);
-	}
 	else
-	{
 		serial_unlink_irq_chain(mtpt);
-	}
 }
 
 
@@ -2547,19 +2513,19 @@ static void multi_set_termios(struct sb_uart_port *port, struct MP_TERMIOS *term
 	unsigned int baud, quot;
 
 	switch (termios->c_cflag & CSIZE) {
-		case CS5:
-			cval = 0x00;
-			break;
-		case CS6:
-			cval = 0x01;
-			break;
-		case CS7:
-			cval = 0x02;
-			break;
-		default:
-		case CS8:
-			cval = 0x03;
-			break;
+	case CS5:
+		cval = 0x00;
+		break;
+	case CS6:
+		cval = 0x01;
+		break;
+	case CS7:
+		cval = 0x02;
+		break;
+	default:
+	case CS8:
+		cval = 0x03;
+		break;
 	}
 
 	if (termios->c_cflag & CSTOPB)
@@ -2646,20 +2612,16 @@ static void multi_set_termios(struct sb_uart_port *port, struct MP_TERMIOS *term
 		if (mtpt->interface != RS232)
 			set_auto_rts(port,mtpt->interface);
 
-	}
-	else
-	{
+	} else {
 		if (mtpt->interface >= RS485NE)
-		{
 			uart_clear_mctrl(&mtpt->port, TIOCM_RTS);
-		}
 	}
 
-	if(mtpt->device->device_id == PCI_DEVICE_ID_MP4M)
-	{
+	if(mtpt->device->device_id == PCI_DEVICE_ID_MP4M) {
 		SendATCommand(mtpt);
 		printk("SendATCommand\n");
-	}	
+	}
+
 	multi_set_mctrl(&mtpt->port, mtpt->port.mctrl);
 	spin_unlock_irqrestore(&mtpt->port.lock, flags);
 }
@@ -2680,9 +2642,7 @@ static void multi_pm(struct sb_uart_port *port, unsigned int state, unsigned int
 
 		if (mtpt->pm)
 			mtpt->pm(port, state, oldstate);
-	} 
-	else 
-	{
+	} else {
 		if (mtpt->capabilities & UART_STARTECH) {
 			serial_outp(mtpt, UART_LCR, 0xBF);
 			serial_outp(mtpt, UART_EFR, UART_EFR_ECB);
@@ -2789,7 +2749,7 @@ static struct uart_driver multi_reg = {
 	.dev_name       = "ttyMP",
 	.major          = SB_TTY_MP_MAJOR,
 	.minor          = 0,
-	.nr             = MAX_MP_PORT, 
+	.nr             = MAX_MP_PORT,
 	.cons           = NULL,
 };
 
@@ -2800,19 +2760,19 @@ static void __init multi_init_ports(void)
 	int i,j,k;
 	unsigned char osc;
 	unsigned char b_ret = 0;
-	static struct mp_device_t * sbdev; 
+	static struct mp_device_t * sbdev;
 
 	if (!first)
 		return;
 	first = 0;
 
-	mtpt = multi_ports; 
+	mtpt = multi_ports;
 
 	for (k=0;k<NR_BOARD;k++)
 	{
 		sbdev = &mp_devs[k];
 
-		for (i = 0; i < sbdev->nr_ports; i++, mtpt++) 
+		for (i = 0; i < sbdev->nr_ports; i++, mtpt++)
 		{
 			mtpt->device 		= sbdev;
 			mtpt->port.iobase   = sbdev->uart_access_addr + 8*i;
@@ -2834,19 +2794,16 @@ static void __init multi_init_ports(void)
 			osc = inb(sbdev->option_reg_addr + MP_OPTR_DIR0 + i/8) & 0x0F;
 			if (osc==0x0f)
 				osc = 0;
-			for(j=0;j<osc;j++)
+			for (j = 0; j < osc; j++)
 				mtpt->port.uartclk *= 2;
 			mtpt->port.flags    |= STD_COM_FLAGS | UPF_SHARE_IRQ ;
 			mtpt->port.iotype   = UPIO_PORT;
 			mtpt->port.ops      = &multi_pops;
 
-			if (sbdev->revision == 0xc0)
-			{
+			if (sbdev->revision == 0xc0) {
 				/* for SB16C1053APCI */
 				b_ret = sb1053a_get_interface(mtpt, i);
-			}
-			else
-			{
+			} else {
 				b_ret = read_option_register(mtpt,(MP_OPTR_IIR0 + i/8));
 				printk("IIR_RET = %x\n",b_ret);
 			}
@@ -2885,13 +2842,13 @@ static void __init multi_register_ports(struct uart_driver *drv)
  *  pcidev  - pci_dev structure address
  *  offset  - BAR offset PCI_BASE_ADDRESS_0 ~ PCI_BASE_ADDRESS_4
  *  address - address to be changed BAR value
- *  size	- size of address space 
+ *  size	- size of address space
  *
  * RETURNS
  *  If this function performs successful, it returns 0. Otherwise, It returns -1.
  */
-static int pci_remap_base(struct pci_dev *pcidev, unsigned int offset, 
-		unsigned int address, unsigned int size) 
+static int pci_remap_base(struct pci_dev *pcidev, unsigned int offset,
+		unsigned int address, unsigned int size)
 {
 #if 0
 	struct resource *root;
@@ -2929,18 +2886,14 @@ static int init_mp_dev(struct pci_dev *pcidev, mppcibrd_t brd)
 	sbdev->uart_access_addr = pcidev->resource[0].start & PCI_BASE_ADDRESS_IO_MASK;
 
 	/* check revision. The SB16C1053APCI's option i/o address is BAR4 */
-	if (sbdev->revision == 0xc0)
-	{
+	if (sbdev->revision == 0xc0) {
 		/* SB16C1053APCI */
 		sbdev->option_reg_addr = pcidev->resource[4].start & PCI_BASE_ADDRESS_IO_MASK;
-	}
-	else
-	{
+	} else {
 		sbdev->option_reg_addr = pcidev->resource[1].start & PCI_BASE_ADDRESS_IO_MASK;
 	}
-#if 1	
-	if (sbdev->revision == 0xc0)
-	{
+#if 1
+	if (sbdev->revision == 0xc0) {
 		outb(0x00, sbdev->option_reg_addr + MP_OPTR_GPOCR);
 		inb(sbdev->option_reg_addr + MP_OPTR_GPOCR);
 		outb(0x83, sbdev->option_reg_addr + MP_OPTR_GPOCR);
@@ -2949,151 +2902,137 @@ static int init_mp_dev(struct pci_dev *pcidev, mppcibrd_t brd)
 
 	sbdev->irq = pcidev->irq;
 
-	if ((brd.device_id & 0x0800) || !(brd.device_id &0xff00))
-	{
+	if ((brd.device_id & 0x0800) || !(brd.device_id &0xff00)) {
 		sbdev->poll_type = TYPE_INTERRUPT;
-	}
-	else
-	{
+	} else {
 		sbdev->poll_type = TYPE_POLL;
 	}
 
 	/* codes which is specific to each board*/
 	switch(brd.device_id){
-		case PCI_DEVICE_ID_MP1 :
-		case PCIE_DEVICE_ID_MP1 :
-		case PCIE_DEVICE_ID_MP1E :
-		case PCIE_DEVICE_ID_GT_MP1 :
-			sbdev->nr_ports = 1;
-			break;
-		case PCI_DEVICE_ID_MP2 :
-		case PCIE_DEVICE_ID_MP2 :
-		case PCIE_DEVICE_ID_GT_MP2 :
-		case PCIE_DEVICE_ID_MP2B :
-		case PCIE_DEVICE_ID_MP2E :
-			sbdev->nr_ports = 2;
-
-			/* serial base address remap */
-			if (sbdev->revision == 0xc0)
-			{
-				int prev_port_addr = 0;
+	case PCI_DEVICE_ID_MP1 :
+	case PCIE_DEVICE_ID_MP1 :
+	case PCIE_DEVICE_ID_MP1E :
+	case PCIE_DEVICE_ID_GT_MP1 :
+		sbdev->nr_ports = 1;
+		break;
+	case PCI_DEVICE_ID_MP2 :
+	case PCIE_DEVICE_ID_MP2 :
+	case PCIE_DEVICE_ID_GT_MP2 :
+	case PCIE_DEVICE_ID_MP2B :
+	case PCIE_DEVICE_ID_MP2E :
+		sbdev->nr_ports = 2;
+
+		/* serial base address remap */
+		if (sbdev->revision == 0xc0) {
+			int prev_port_addr = 0;
+
+			pci_read_config_dword(pcidev, PCI_BASE_ADDRESS_0, &prev_port_addr);
+			pci_remap_base(pcidev, PCI_BASE_ADDRESS_1, prev_port_addr + 8, 8);
+		}
+		break;
+	case PCI_DEVICE_ID_MP4 :
+	case PCI_DEVICE_ID_MP4A :
+	case PCIE_DEVICE_ID_MP4 :
+	case PCI_DEVICE_ID_GT_MP4 :
+	case PCI_DEVICE_ID_GT_MP4A :
+	case PCIE_DEVICE_ID_GT_MP4 :
+	case PCI_DEVICE_ID_MP4M :
+	case PCIE_DEVICE_ID_MP4B :
+		sbdev->nr_ports = 4;
+
+		if(sbdev->revision == 0x91){
+			sbdev->reserved_addr[0] = pcidev->resource[0].start & PCI_BASE_ADDRESS_IO_MASK;
+			outb(0x03 , sbdev->reserved_addr[0] + 0x01);
+			outb(0x03 , sbdev->reserved_addr[0] + 0x02);
+			outb(0x01 , sbdev->reserved_addr[0] + 0x20);
+			outb(0x00 , sbdev->reserved_addr[0] + 0x21);
+			request_region(sbdev->reserved_addr[0], 32, sbdev->name);
+			sbdev->uart_access_addr = pcidev->resource[1].start & PCI_BASE_ADDRESS_IO_MASK;
+			sbdev->option_reg_addr = pcidev->resource[2].start & PCI_BASE_ADDRESS_IO_MASK;
+		}
 
-				pci_read_config_dword(pcidev, PCI_BASE_ADDRESS_0, &prev_port_addr);
-				pci_remap_base(pcidev, PCI_BASE_ADDRESS_1, prev_port_addr + 8, 8);
-			}
-			break;
-		case PCI_DEVICE_ID_MP4 :
-		case PCI_DEVICE_ID_MP4A :
-		case PCIE_DEVICE_ID_MP4 :
-		case PCI_DEVICE_ID_GT_MP4 :
-		case PCI_DEVICE_ID_GT_MP4A :
-		case PCIE_DEVICE_ID_GT_MP4 :
-		case PCI_DEVICE_ID_MP4M :
-		case PCIE_DEVICE_ID_MP4B :
-			sbdev->nr_ports = 4;
-
-			if(sbdev->revision == 0x91){
-				sbdev->reserved_addr[0] = pcidev->resource[0].start & PCI_BASE_ADDRESS_IO_MASK;
-				outb(0x03 , sbdev->reserved_addr[0] + 0x01);
-				outb(0x03 , sbdev->reserved_addr[0] + 0x02);
-				outb(0x01 , sbdev->reserved_addr[0] + 0x20);
-				outb(0x00 , sbdev->reserved_addr[0] + 0x21);
-				request_region(sbdev->reserved_addr[0], 32, sbdev->name);
-				sbdev->uart_access_addr = pcidev->resource[1].start & PCI_BASE_ADDRESS_IO_MASK;
-				sbdev->option_reg_addr = pcidev->resource[2].start & PCI_BASE_ADDRESS_IO_MASK;
-			}
+		/* SB16C1053APCI */
+		if (sbdev->revision == 0xc0)
+		{
+			int prev_port_addr = 0;
 
-			/* SB16C1053APCI */
-			if (sbdev->revision == 0xc0)
-			{
-				int prev_port_addr = 0;
+			pci_read_config_dword(pcidev, PCI_BASE_ADDRESS_0, &prev_port_addr);
+			pci_remap_base(pcidev, PCI_BASE_ADDRESS_1, prev_port_addr + 8, 8);
+			pci_remap_base(pcidev, PCI_BASE_ADDRESS_2, prev_port_addr + 16, 8);
+			pci_remap_base(pcidev, PCI_BASE_ADDRESS_3, prev_port_addr + 24, 8);
+		}
+		break;
+	case PCI_DEVICE_ID_MP6 :
+	case PCI_DEVICE_ID_MP6A :
+	case PCI_DEVICE_ID_GT_MP6 :
+	case PCI_DEVICE_ID_GT_MP6A :
+		sbdev->nr_ports = 6;
 
-				pci_read_config_dword(pcidev, PCI_BASE_ADDRESS_0, &prev_port_addr);
-				pci_remap_base(pcidev, PCI_BASE_ADDRESS_1, prev_port_addr + 8, 8);
-				pci_remap_base(pcidev, PCI_BASE_ADDRESS_2, prev_port_addr + 16, 8);
-				pci_remap_base(pcidev, PCI_BASE_ADDRESS_3, prev_port_addr + 24, 8);
-			}
-			break;
-		case PCI_DEVICE_ID_MP6 :
-		case PCI_DEVICE_ID_MP6A :
-		case PCI_DEVICE_ID_GT_MP6 :
-		case PCI_DEVICE_ID_GT_MP6A :
-			sbdev->nr_ports = 6;
-
-			/* SB16C1053APCI */
-			if (sbdev->revision == 0xc0)
-			{
-				int prev_port_addr = 0;
+		/* SB16C1053APCI */
+		if (sbdev->revision == 0xc0) {
+			int prev_port_addr = 0;
 
-				pci_read_config_dword(pcidev, PCI_BASE_ADDRESS_0, &prev_port_addr);
-				pci_remap_base(pcidev, PCI_BASE_ADDRESS_1, prev_port_addr + 8, 8);
-				pci_remap_base(pcidev, PCI_BASE_ADDRESS_2, prev_port_addr + 16, 16);
-				pci_remap_base(pcidev, PCI_BASE_ADDRESS_3, prev_port_addr + 32, 16);
-			}
-			break;
-		case PCI_DEVICE_ID_MP8 :
-		case PCIE_DEVICE_ID_MP8 :
-		case PCI_DEVICE_ID_GT_MP8 :
-		case PCIE_DEVICE_ID_GT_MP8 :
-		case PCIE_DEVICE_ID_MP8B :
-			sbdev->nr_ports = 8;
-			break;
-		case PCI_DEVICE_ID_MP32 :
-		case PCIE_DEVICE_ID_MP32 :
-		case PCI_DEVICE_ID_GT_MP32 :
-		case PCIE_DEVICE_ID_GT_MP32 :
-			{
-				int portnum_hex=0;
-				portnum_hex = inb(sbdev->option_reg_addr);
-				sbdev->nr_ports = ((portnum_hex/16)*10) + (portnum_hex % 16);
-			}
-			break;
+			pci_read_config_dword(pcidev, PCI_BASE_ADDRESS_0, &prev_port_addr);
+			pci_remap_base(pcidev, PCI_BASE_ADDRESS_1, prev_port_addr + 8, 8);
+			pci_remap_base(pcidev, PCI_BASE_ADDRESS_2, prev_port_addr + 16, 16);
+			pci_remap_base(pcidev, PCI_BASE_ADDRESS_3, prev_port_addr + 32, 16);
+		}
+		break;
+	case PCI_DEVICE_ID_MP8 :
+	case PCIE_DEVICE_ID_MP8 :
+	case PCI_DEVICE_ID_GT_MP8 :
+	case PCIE_DEVICE_ID_GT_MP8 :
+	case PCIE_DEVICE_ID_MP8B :
+		sbdev->nr_ports = 8;
+		break;
+	case PCI_DEVICE_ID_MP32 :
+	case PCIE_DEVICE_ID_MP32 :
+	case PCI_DEVICE_ID_GT_MP32 :
+	case PCIE_DEVICE_ID_GT_MP32 :
+		{
+			int portnum_hex=0;
+			portnum_hex = inb(sbdev->option_reg_addr);
+			sbdev->nr_ports = ((portnum_hex/16)*10) + (portnum_hex % 16);
+		}
+		break;
 #ifdef CONFIG_PARPORT_PC
-		case PCI_DEVICE_ID_MP2S1P :
-			sbdev->nr_ports = 2;
+	case PCI_DEVICE_ID_MP2S1P :
+		sbdev->nr_ports = 2;
 
-			/* SB16C1053APCI */
-			if (sbdev->revision == 0xc0)
-			{
-				int prev_port_addr = 0;
+		/* SB16C1053APCI */
+		if (sbdev->revision == 0xc0) {
+			int prev_port_addr = 0;
 
-				pci_read_config_dword(pcidev, PCI_BASE_ADDRESS_0, &prev_port_addr);
-				pci_remap_base(pcidev, PCI_BASE_ADDRESS_1, prev_port_addr + 8, 8);
-			}
+			pci_read_config_dword(pcidev, PCI_BASE_ADDRESS_0, &prev_port_addr);
+			pci_remap_base(pcidev, PCI_BASE_ADDRESS_1, prev_port_addr + 8, 8);
+		}
 
-			/* add PC compatible parallel port */
-			parport_pc_probe_port(pcidev->resource[2].start, pcidev->resource[3].start, PARPORT_IRQ_NONE, PARPORT_DMA_NONE, &pcidev->dev, 0);
-			break;
-		case PCI_DEVICE_ID_MP1P :
-			/* add PC compatible parallel port */
-			parport_pc_probe_port(pcidev->resource[2].start, pcidev->resource[3].start, PARPORT_IRQ_NONE, PARPORT_DMA_NONE, &pcidev->dev, 0);
-			break;
+		/* add PC compatible parallel port */
+		parport_pc_probe_port(pcidev->resource[2].start, pcidev->resource[3].start, PARPORT_IRQ_NONE, PARPORT_DMA_NONE, &pcidev->dev, 0);
+		break;
+	case PCI_DEVICE_ID_MP1P :
+		/* add PC compatible parallel port */
+		parport_pc_probe_port(pcidev->resource[2].start, pcidev->resource[3].start, PARPORT_IRQ_NONE, PARPORT_DMA_NONE, &pcidev->dev, 0);
+		break;
 #endif
 	}
 
 	ret = request_region(sbdev->uart_access_addr, (8*sbdev->nr_ports), sbdev->name);
 
 	if (sbdev->revision == 0xc0)
-	{
 		ret = request_region(sbdev->option_reg_addr, 0x40, sbdev->name);
-	}
 	else
-	{
 		ret = request_region(sbdev->option_reg_addr, 0x20, sbdev->name);
-	}
-
 
 	NR_BOARD++;
 	NR_PORTS += sbdev->nr_ports;
 
 	/* Enable PCI interrupt */
 	addr = sbdev->option_reg_addr + MP_OPTR_IMR0;
-	for(j=0; j < (sbdev->nr_ports/8)+1; j++)
-	{
+	for ( j = 0; j < (sbdev->nr_ports/8)+1; j++) {
 		if (sbdev->poll_type == TYPE_INTERRUPT)
-		{
 			outb(0xff,addr +j);
-		}
 	}
 	sbdev++;
 
@@ -3105,62 +3044,47 @@ static int __init multi_init(void)
 	int ret, i;
 	struct pci_dev  *dev = NULL;
 
-	if(fcr_count==0)
-	{
-		for(i=0;i<256;i++)
-		{
+	if(fcr_count==0) {
+		for (i = 0; i < 256; i++)
 			fcr_arr[i] = 0x01;
-			
-		}
+
 	}
-	if(deep_count==0)
-	{
-		for(i=0;i<256;i++)
-		{
+	if(deep_count==0) {
+		for (i = 0; i < 256; i++)
 			deep[i] = 1;
-			
-		}
+
 	}
-	if(rtr_count==0)
-        {
-                for(i=0;i<256;i++)
-                {
+	if(rtr_count==0) {
+                for (i = 0; i < 256; i++)
                         rtr[i] = 0x10;
-                }
         }
-	if(ttr_count==0)
-        {
-                for(i=0;i<256;i++)
-                {
+	if(ttr_count==0) {
+                for (i = 0; i < 256; i++)
                         ttr[i] = 0x38;
-                }
         }
 
 
-printk("MULTI INIT\n");
-	for( i=0; i< mp_nrpcibrds; i++)
+	printk("MULTI INIT\n");
+	for( i = 0; i < mp_nrpcibrds; i++)
 	{
 
-		while( (dev = pci_get_device(mp_pciboards[i].vendor_id, mp_pciboards[i].device_id, dev) ) )
-
-		{
-printk("FOUND~~~\n");
+		while( (dev = pci_get_device(mp_pciboards[i].vendor_id, mp_pciboards[i].device_id, dev) ) ) {
+		printk("FOUND~~~\n");
 //	Cent OS bug fix
 //			if (mp_pciboards[i].device_id & 0x0800)
 			{
 				int status;
 	        		pci_disable_device(dev);
 	        		status = pci_enable_device(dev);
-            
-	   		     	if (status != 0)
-        			{ 
-               				printk("Multiport Board Enable Fail !\n\n");
+
+				if (status != 0) {
+					printk("Multiport Board Enable Fail !\n\n");
                				status = -ENXIO;
                 			return status;
            			}
 			}
 
-			init_mp_dev(dev, mp_pciboards[i]);	
+			init_mp_dev(dev, mp_pciboards[i]);
 		}
 	}
 
-- 
1.7.10.4




More information about the devel mailing list