Loading drivers/net/tokenring/tms380tr.c +67 −112 Original line number Diff line number Diff line Loading @@ -1525,10 +1525,8 @@ static void tms380tr_chk_outstanding_cmds(struct net_device *dev) /* Check if adapter is opened, avoiding COMMAND_REJECT * interrupt by the adapter! */ if(tp->AdapterOpenFlag == 0) { if(tp->CMDqueue & OC_OPEN) { if (tp->AdapterOpenFlag == 0) { if (tp->CMDqueue & OC_OPEN) { /* Execute OPEN command */ tp->CMDqueue ^= OC_OPEN; Loading @@ -1536,21 +1534,17 @@ static void tms380tr_chk_outstanding_cmds(struct net_device *dev) tp->scb.Parm[0] = LOWORD(Addr); tp->scb.Parm[1] = HIWORD(Addr); tp->scb.CMD = OPEN; } else } else /* No OPEN command queued, but adapter closed. Note: * We'll try to re-open the adapter in DriverPoll() */ return; /* No adapter command issued */ } else { } else { /* Adapter is open; evaluate command queue: try to execute * outstanding commands (depending on priority!) CLOSE * command queued */ if(tp->CMDqueue & OC_CLOSE) { if (tp->CMDqueue & OC_CLOSE) { tp->CMDqueue ^= OC_CLOSE; tp->AdapterOpenFlag = 0; tp->scb.Parm[0] = 0; /* Parm[0], Parm[1] are ignored */ Loading @@ -1560,21 +1554,13 @@ static void tms380tr_chk_outstanding_cmds(struct net_device *dev) tp->CMDqueue |= OC_OPEN; /* re-open adapter */ else tp->CMDqueue = 0; /* no more commands */ } else { if(tp->CMDqueue & OC_RECEIVE) { } else if (tp->CMDqueue & OC_RECEIVE) { tp->CMDqueue ^= OC_RECEIVE; Addr = htonl(((char *)tp->RplHead - (char *)tp) + tp->dmabuffer); tp->scb.Parm[0] = LOWORD(Addr); tp->scb.Parm[1] = HIWORD(Addr); tp->scb.CMD = RECEIVE; } else { if(tp->CMDqueue & OC_TRANSMIT_HALT) { } else if (tp->CMDqueue & OC_TRANSMIT_HALT) { /* NOTE: TRANSMIT.HALT must be checked * before TRANSMIT. */ Loading @@ -1586,18 +1572,12 @@ static void tms380tr_chk_outstanding_cmds(struct net_device *dev) */ tp->scb.Parm[0] = 0; tp->scb.Parm[1] = 0; } else { if(tp->CMDqueue & OC_TRANSMIT) { } else if (tp->CMDqueue & OC_TRANSMIT) { /* NOTE: TRANSMIT must be * checked after TRANSMIT.HALT */ if(tp->TransmitCommandActive) { if(!tp->TransmitHaltScheduled) { if (tp->TransmitCommandActive) { if (!tp->TransmitHaltScheduled) { tp->TransmitHaltScheduled = 1; tms380tr_exec_cmd(dev, OC_TRANSMIT_HALT); } Loading @@ -1612,59 +1592,34 @@ static void tms380tr_chk_outstanding_cmds(struct net_device *dev) tp->scb.Parm[1] = HIWORD(Addr); tp->scb.CMD = TRANSMIT; tp->TransmitCommandActive = 1; } else { if(tp->CMDqueue & OC_MODIFY_OPEN_PARMS) { } else if (tp->CMDqueue & OC_MODIFY_OPEN_PARMS) { tp->CMDqueue ^= OC_MODIFY_OPEN_PARMS; tp->scb.Parm[0] = tp->ocpl.OPENOptions; /* new OPEN options*/ tp->scb.Parm[0] |= ENABLE_FULL_DUPLEX_SELECTION; tp->scb.Parm[1] = 0; /* is ignored but should be zero */ tp->scb.CMD = MODIFY_OPEN_PARMS; } else { if(tp->CMDqueue & OC_SET_FUNCT_ADDR) { } else if (tp->CMDqueue & OC_SET_FUNCT_ADDR) { tp->CMDqueue ^= OC_SET_FUNCT_ADDR; tp->scb.Parm[0] = LOWORD(tp->ocpl.FunctAddr); tp->scb.Parm[1] = HIWORD(tp->ocpl.FunctAddr); tp->scb.CMD = SET_FUNCT_ADDR; } else { if(tp->CMDqueue & OC_SET_GROUP_ADDR) { } else if (tp->CMDqueue & OC_SET_GROUP_ADDR) { tp->CMDqueue ^= OC_SET_GROUP_ADDR; tp->scb.Parm[0] = LOWORD(tp->ocpl.GroupAddr); tp->scb.Parm[1] = HIWORD(tp->ocpl.GroupAddr); tp->scb.CMD = SET_GROUP_ADDR; } else { if(tp->CMDqueue & OC_READ_ERROR_LOG) { } else if (tp->CMDqueue & OC_READ_ERROR_LOG) { tp->CMDqueue ^= OC_READ_ERROR_LOG; Addr = htonl(((char *)&tp->errorlogtable - (char *)tp) + tp->dmabuffer); tp->scb.Parm[0] = LOWORD(Addr); tp->scb.Parm[1] = HIWORD(Addr); tp->scb.CMD = READ_ERROR_LOG; } else { } else { printk(KERN_WARNING "CheckForOutstandingCommand: unknown Command\n"); tp->CMDqueue = 0; return; } } } } } } } } } tp->ScbInUse = 1; /* Set semaphore: SCB in use. */ Loading Loading
drivers/net/tokenring/tms380tr.c +67 −112 Original line number Diff line number Diff line Loading @@ -1525,10 +1525,8 @@ static void tms380tr_chk_outstanding_cmds(struct net_device *dev) /* Check if adapter is opened, avoiding COMMAND_REJECT * interrupt by the adapter! */ if(tp->AdapterOpenFlag == 0) { if(tp->CMDqueue & OC_OPEN) { if (tp->AdapterOpenFlag == 0) { if (tp->CMDqueue & OC_OPEN) { /* Execute OPEN command */ tp->CMDqueue ^= OC_OPEN; Loading @@ -1536,21 +1534,17 @@ static void tms380tr_chk_outstanding_cmds(struct net_device *dev) tp->scb.Parm[0] = LOWORD(Addr); tp->scb.Parm[1] = HIWORD(Addr); tp->scb.CMD = OPEN; } else } else /* No OPEN command queued, but adapter closed. Note: * We'll try to re-open the adapter in DriverPoll() */ return; /* No adapter command issued */ } else { } else { /* Adapter is open; evaluate command queue: try to execute * outstanding commands (depending on priority!) CLOSE * command queued */ if(tp->CMDqueue & OC_CLOSE) { if (tp->CMDqueue & OC_CLOSE) { tp->CMDqueue ^= OC_CLOSE; tp->AdapterOpenFlag = 0; tp->scb.Parm[0] = 0; /* Parm[0], Parm[1] are ignored */ Loading @@ -1560,21 +1554,13 @@ static void tms380tr_chk_outstanding_cmds(struct net_device *dev) tp->CMDqueue |= OC_OPEN; /* re-open adapter */ else tp->CMDqueue = 0; /* no more commands */ } else { if(tp->CMDqueue & OC_RECEIVE) { } else if (tp->CMDqueue & OC_RECEIVE) { tp->CMDqueue ^= OC_RECEIVE; Addr = htonl(((char *)tp->RplHead - (char *)tp) + tp->dmabuffer); tp->scb.Parm[0] = LOWORD(Addr); tp->scb.Parm[1] = HIWORD(Addr); tp->scb.CMD = RECEIVE; } else { if(tp->CMDqueue & OC_TRANSMIT_HALT) { } else if (tp->CMDqueue & OC_TRANSMIT_HALT) { /* NOTE: TRANSMIT.HALT must be checked * before TRANSMIT. */ Loading @@ -1586,18 +1572,12 @@ static void tms380tr_chk_outstanding_cmds(struct net_device *dev) */ tp->scb.Parm[0] = 0; tp->scb.Parm[1] = 0; } else { if(tp->CMDqueue & OC_TRANSMIT) { } else if (tp->CMDqueue & OC_TRANSMIT) { /* NOTE: TRANSMIT must be * checked after TRANSMIT.HALT */ if(tp->TransmitCommandActive) { if(!tp->TransmitHaltScheduled) { if (tp->TransmitCommandActive) { if (!tp->TransmitHaltScheduled) { tp->TransmitHaltScheduled = 1; tms380tr_exec_cmd(dev, OC_TRANSMIT_HALT); } Loading @@ -1612,59 +1592,34 @@ static void tms380tr_chk_outstanding_cmds(struct net_device *dev) tp->scb.Parm[1] = HIWORD(Addr); tp->scb.CMD = TRANSMIT; tp->TransmitCommandActive = 1; } else { if(tp->CMDqueue & OC_MODIFY_OPEN_PARMS) { } else if (tp->CMDqueue & OC_MODIFY_OPEN_PARMS) { tp->CMDqueue ^= OC_MODIFY_OPEN_PARMS; tp->scb.Parm[0] = tp->ocpl.OPENOptions; /* new OPEN options*/ tp->scb.Parm[0] |= ENABLE_FULL_DUPLEX_SELECTION; tp->scb.Parm[1] = 0; /* is ignored but should be zero */ tp->scb.CMD = MODIFY_OPEN_PARMS; } else { if(tp->CMDqueue & OC_SET_FUNCT_ADDR) { } else if (tp->CMDqueue & OC_SET_FUNCT_ADDR) { tp->CMDqueue ^= OC_SET_FUNCT_ADDR; tp->scb.Parm[0] = LOWORD(tp->ocpl.FunctAddr); tp->scb.Parm[1] = HIWORD(tp->ocpl.FunctAddr); tp->scb.CMD = SET_FUNCT_ADDR; } else { if(tp->CMDqueue & OC_SET_GROUP_ADDR) { } else if (tp->CMDqueue & OC_SET_GROUP_ADDR) { tp->CMDqueue ^= OC_SET_GROUP_ADDR; tp->scb.Parm[0] = LOWORD(tp->ocpl.GroupAddr); tp->scb.Parm[1] = HIWORD(tp->ocpl.GroupAddr); tp->scb.CMD = SET_GROUP_ADDR; } else { if(tp->CMDqueue & OC_READ_ERROR_LOG) { } else if (tp->CMDqueue & OC_READ_ERROR_LOG) { tp->CMDqueue ^= OC_READ_ERROR_LOG; Addr = htonl(((char *)&tp->errorlogtable - (char *)tp) + tp->dmabuffer); tp->scb.Parm[0] = LOWORD(Addr); tp->scb.Parm[1] = HIWORD(Addr); tp->scb.CMD = READ_ERROR_LOG; } else { } else { printk(KERN_WARNING "CheckForOutstandingCommand: unknown Command\n"); tp->CMDqueue = 0; return; } } } } } } } } } tp->ScbInUse = 1; /* Set semaphore: SCB in use. */ Loading