Lines Matching refs:rmh
153 * vx_read_status - return the status rmh
154 * @rmh: rmh record to store the status
160 static int vx_read_status(struct vx_core *chip, struct vx_rmh *rmh)
165 if (rmh->DspStat == RMH_SSIZE_FIXED && rmh->LgStat == 0)
181 switch (rmh->DspStat) {
184 rmh->Stat[0] = val & 0xffff00;
185 rmh->LgStat = size + 1;
189 rmh->Stat[0] = val;
196 rmh->LgStat = size + 1;
200 size = rmh->LgStat;
201 rmh->Stat[0] = val; /* Val is the status 1st word */
220 rmh->Stat[i] = vx_inb(chip, RXH) << 16;
221 rmh->Stat[i] |= vx_inb(chip, RXM) << 8;
222 rmh->Stat[i] |= vx_inb(chip, RXL);
234 * @rmh: the rmh record to send and receive
241 int vx_send_msg_nolock(struct vx_core *chip, struct vx_rmh *rmh)
254 if (rmh->LgCmd > 1)
255 rmh->Cmd[0] |= MASK_MORE_THAN_1_WORD_COMMAND;
257 rmh->Cmd[0] &= MASK_1_WORD_COMMAND;
266 vx_outb(chip, TXH, (rmh->Cmd[0] >> 16) & 0xff);
267 vx_outb(chip, TXM, (rmh->Cmd[0] >> 8) & 0xff);
268 vx_outb(chip, TXL, rmh->Cmd[0] & 0xff);
295 if (rmh->LgCmd > 1) {
296 for (i = 1; i < rmh->LgCmd; i++) {
304 vx_outb(chip, TXH, (rmh->Cmd[i] >> 16) & 0xff);
305 vx_outb(chip, TXM, (rmh->Cmd[i] >> 8) & 0xff);
306 vx_outb(chip, TXL, rmh->Cmd[i] & 0xff);
325 return vx_read_status(chip, rmh);
331 * @rmh: the rmh record to send and receive
336 int vx_send_msg(struct vx_core *chip, struct vx_rmh *rmh)
342 err = vx_send_msg_nolock(chip, rmh);