diff options
-rw-r--r-- | drivers/tty/rocket.c | 40 |
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 | /*************************************************************************** |
2523 | Function: sPCIInitController | 2524 | Function: sPCIInitController |
2524 | Purpose: Initialization of controller global registers and controller | 2525 | Purpose: 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 */ | ||
2644 | static 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 | /*************************************************************************** |
2643 | Function: sReadAiopID | 2664 | Function: sReadAiopID |
2644 | Purpose: Read the AIOP idenfication number directly from an AIOP. | 2665 | Purpose: 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 */ | ||
3132 | static 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 */ |
3151 | static unsigned char GetLineNumber(int ctrl, int aiop, int ch) | 3153 | static unsigned char GetLineNumber(int ctrl, int aiop, int ch) |
3152 | { | 3154 | { |