aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/tty/rocket.c40
1 files changed, 21 insertions, 19 deletions
diff --git a/drivers/tty/rocket.c b/drivers/tty/rocket.c
index f5abc2888821..82d35c5a58fd 100644
--- a/drivers/tty/rocket.c
+++ b/drivers/tty/rocket.c
@@ -2519,6 +2519,7 @@ static int sInitController(CONTROLLER_T * CtlP, int CtlNum, ByteIO_t MudbacIO,
2519 return (CtlP->NumAiop); 2519 return (CtlP->NumAiop);
2520} 2520}
2521 2521
2522#ifdef CONFIG_PCI
2522/*************************************************************************** 2523/***************************************************************************
2523Function: sPCIInitController 2524Function: sPCIInitController
2524Purpose: Initialization of controller global registers and controller 2525Purpose: Initialization of controller global registers and controller
@@ -2639,6 +2640,26 @@ static int sPCIInitController(CONTROLLER_T * CtlP, int CtlNum,
2639 return (CtlP->NumAiop); 2640 return (CtlP->NumAiop);
2640} 2641}
2641 2642
2643/* Resets the speaker controller on RocketModem II and III devices */
2644static void rmSpeakerReset(CONTROLLER_T * CtlP, unsigned long model)
2645{
2646 ByteIO_t addr;
2647
2648 /* RocketModem II speaker control is at the 8th port location of offset 0x40 */
2649 if ((model == MODEL_RP4M) || (model == MODEL_RP6M)) {
2650 addr = CtlP->AiopIO[0] + 0x4F;
2651 sOutB(addr, 0);
2652 }
2653
2654 /* RocketModem III speaker control is at the 1st port location of offset 0x80 */
2655 if ((model == MODEL_UPCI_RM3_8PORT)
2656 || (model == MODEL_UPCI_RM3_4PORT)) {
2657 addr = CtlP->AiopIO[0] + 0x88;
2658 sOutB(addr, 0);
2659 }
2660}
2661#endif
2662
2642/*************************************************************************** 2663/***************************************************************************
2643Function: sReadAiopID 2664Function: sReadAiopID
2644Purpose: Read the AIOP idenfication number directly from an AIOP. 2665Purpose: Read the AIOP idenfication number directly from an AIOP.
@@ -3128,25 +3149,6 @@ static void sPCIModemReset(CONTROLLER_T * CtlP, int chan, int on)
3128 sOutB(addr + chan, 0); /* apply or remove reset */ 3149 sOutB(addr + chan, 0); /* apply or remove reset */
3129} 3150}
3130 3151
3131/* Resets the speaker controller on RocketModem II and III devices */
3132static void rmSpeakerReset(CONTROLLER_T * CtlP, unsigned long model)
3133{
3134 ByteIO_t addr;
3135
3136 /* RocketModem II speaker control is at the 8th port location of offset 0x40 */
3137 if ((model == MODEL_RP4M) || (model == MODEL_RP6M)) {
3138 addr = CtlP->AiopIO[0] + 0x4F;
3139 sOutB(addr, 0);
3140 }
3141
3142 /* RocketModem III speaker control is at the 1st port location of offset 0x80 */
3143 if ((model == MODEL_UPCI_RM3_8PORT)
3144 || (model == MODEL_UPCI_RM3_4PORT)) {
3145 addr = CtlP->AiopIO[0] + 0x88;
3146 sOutB(addr, 0);
3147 }
3148}
3149
3150/* Returns the line number given the controller (board), aiop and channel number */ 3152/* Returns the line number given the controller (board), aiop and channel number */
3151static unsigned char GetLineNumber(int ctrl, int aiop, int ch) 3153static unsigned char GetLineNumber(int ctrl, int aiop, int ch)
3152{ 3154{