Lines Matching refs:vport

199 static int sc6000_wait_data(char __iomem *vport)  in sc6000_wait_data()  argument
205 val = ioread8(vport + DSP_DATAVAIL); in sc6000_wait_data()
214 static int sc6000_read(char __iomem *vport) in sc6000_read() argument
216 if (sc6000_wait_data(vport)) in sc6000_read()
219 return ioread8(vport + DSP_READ); in sc6000_read()
223 static int sc6000_write(char __iomem *vport, int cmd) in sc6000_write() argument
229 val = ioread8(vport + DSP_STATUS); in sc6000_write()
234 iowrite8(cmd, vport + DSP_COMMAND); in sc6000_write()
245 static int sc6000_dsp_get_answer(char __iomem *vport, int command, in sc6000_dsp_get_answer() argument
250 if (sc6000_write(vport, command)) { in sc6000_dsp_get_answer()
256 int val = sc6000_read(vport); in sc6000_dsp_get_answer()
272 static int sc6000_dsp_reset(char __iomem *vport) in sc6000_dsp_reset() argument
274 iowrite8(1, vport + DSP_RESET); in sc6000_dsp_reset()
276 iowrite8(0, vport + DSP_RESET); in sc6000_dsp_reset()
278 if (sc6000_read(vport) == 0xaa) in sc6000_dsp_reset()
284 static int sc6000_hw_cfg_write(char __iomem *vport, const int *cfg) in sc6000_hw_cfg_write() argument
286 if (sc6000_write(vport, COMMAND_6C) < 0) { in sc6000_hw_cfg_write()
290 if (sc6000_write(vport, COMMAND_5C) < 0) { in sc6000_hw_cfg_write()
294 if (sc6000_write(vport, cfg[0]) < 0) { in sc6000_hw_cfg_write()
298 if (sc6000_write(vport, cfg[1]) < 0) { in sc6000_hw_cfg_write()
302 if (sc6000_write(vport, COMMAND_C5) < 0) { in sc6000_hw_cfg_write()
310 static int sc6000_cfg_write(char __iomem *vport, unsigned char softcfg) in sc6000_cfg_write() argument
313 if (sc6000_write(vport, WRITE_MDIRQ_CFG)) { in sc6000_cfg_write()
317 if (sc6000_write(vport, softcfg)) { in sc6000_cfg_write()
324 static int sc6000_setup_board(char __iomem *vport, int config) in sc6000_setup_board() argument
329 if (sc6000_write(vport, COMMAND_88)) { in sc6000_setup_board()
334 } while ((sc6000_wait_data(vport) < 0) && loop--); in sc6000_setup_board()
336 if (sc6000_read(vport) < 0) { in sc6000_setup_board()
342 if (sc6000_cfg_write(vport, config)) in sc6000_setup_board()
348 static int sc6000_init_mss(char __iomem *vport, int config, in sc6000_init_mss() argument
351 if (sc6000_write(vport, DSP_INIT_MSS)) { in sc6000_init_mss()
359 if (sc6000_cfg_write(vport, config)) in sc6000_init_mss()
367 static void sc6000_hw_cfg_encode(char __iomem *vport, int *cfg, in sc6000_hw_cfg_encode() argument
389 static int sc6000_init_board(char __iomem *vport, in sc6000_init_board() argument
401 err = sc6000_dsp_reset(vport); in sc6000_init_board()
408 err = sc6000_dsp_get_answer(vport, GET_DSP_COPYRIGHT, answer, 15); in sc6000_init_board()
420 if (sc6000_dsp_get_answer(vport, GET_DSP_VERSION, version, 2) < 2) { in sc6000_init_board()
428 sc6000_write(vport, COMMAND_5C); in sc6000_init_board()
429 if (sc6000_read(vport) < 0) in sc6000_init_board()
434 sc6000_hw_cfg_encode(vport, &cfg[0], port[dev], mpu_port[dev], in sc6000_init_board()
436 if (sc6000_hw_cfg_write(vport, cfg) < 0) { in sc6000_init_board()
441 err = sc6000_setup_board(vport, config); in sc6000_init_board()
447 sc6000_dsp_reset(vport); in sc6000_init_board()
450 sc6000_write(vport, COMMAND_60); in sc6000_init_board()
451 sc6000_write(vport, 0x02); in sc6000_init_board()
452 sc6000_dsp_reset(vport); in sc6000_init_board()
455 err = sc6000_setup_board(vport, config); in sc6000_init_board()
460 err = sc6000_init_mss(vport, config, vmss_port, mss_config); in sc6000_init_board()
558 char __iomem **vport; in snd_sc6000_probe() local
563 sizeof(vport), &card); in snd_sc6000_probe()
567 vport = card->private_data; in snd_sc6000_probe()
592 *vport = devm_ioport_map(devptr, port[dev], 0x10); in snd_sc6000_probe()
593 if (*vport == NULL) { in snd_sc6000_probe()
619 err = sc6000_init_board(*vport, vmss_port, dev); in snd_sc6000_probe()
679 sc6000_setup_board(*vport, 0); in snd_sc6000_probe()
691 char __iomem **vport = card->private_data; in snd_sc6000_remove() local
693 if (sc6000_setup_board(*vport, 0) < 0) in snd_sc6000_remove()