Lines Matching refs:vport

186 static int sc6000_wait_data(char __iomem *vport)  in sc6000_wait_data()  argument
192 val = ioread8(vport + DSP_DATAVAIL); in sc6000_wait_data()
201 static int sc6000_read(char __iomem *vport) in sc6000_read() argument
203 if (sc6000_wait_data(vport)) in sc6000_read()
206 return ioread8(vport + DSP_READ); in sc6000_read()
210 static int sc6000_write(char __iomem *vport, int cmd) in sc6000_write() argument
216 val = ioread8(vport + DSP_STATUS); in sc6000_write()
221 iowrite8(cmd, vport + DSP_COMMAND); in sc6000_write()
232 static int sc6000_dsp_get_answer(char __iomem *vport, int command, in sc6000_dsp_get_answer() argument
237 if (sc6000_write(vport, command)) { in sc6000_dsp_get_answer()
243 int val = sc6000_read(vport); in sc6000_dsp_get_answer()
259 static int sc6000_dsp_reset(char __iomem *vport) in sc6000_dsp_reset() argument
261 iowrite8(1, vport + DSP_RESET); in sc6000_dsp_reset()
263 iowrite8(0, vport + DSP_RESET); in sc6000_dsp_reset()
265 if (sc6000_read(vport) == 0xaa) in sc6000_dsp_reset()
271 static int sc6000_hw_cfg_write(char __iomem *vport, const int *cfg) in sc6000_hw_cfg_write() argument
273 if (sc6000_write(vport, COMMAND_6C) < 0) { in sc6000_hw_cfg_write()
277 if (sc6000_write(vport, COMMAND_5C) < 0) { in sc6000_hw_cfg_write()
281 if (sc6000_write(vport, cfg[0]) < 0) { in sc6000_hw_cfg_write()
285 if (sc6000_write(vport, cfg[1]) < 0) { in sc6000_hw_cfg_write()
289 if (sc6000_write(vport, COMMAND_C5) < 0) { in sc6000_hw_cfg_write()
297 static int sc6000_cfg_write(char __iomem *vport, unsigned char softcfg) in sc6000_cfg_write() argument
300 if (sc6000_write(vport, WRITE_MDIRQ_CFG)) { in sc6000_cfg_write()
304 if (sc6000_write(vport, softcfg)) { in sc6000_cfg_write()
311 static int sc6000_setup_board(char __iomem *vport, int config) in sc6000_setup_board() argument
316 if (sc6000_write(vport, COMMAND_88)) { in sc6000_setup_board()
321 } while ((sc6000_wait_data(vport) < 0) && loop--); in sc6000_setup_board()
323 if (sc6000_read(vport) < 0) { in sc6000_setup_board()
329 if (sc6000_cfg_write(vport, config)) in sc6000_setup_board()
335 static int sc6000_init_mss(char __iomem *vport, int config, in sc6000_init_mss() argument
338 if (sc6000_write(vport, DSP_INIT_MSS)) { in sc6000_init_mss()
346 if (sc6000_cfg_write(vport, config)) in sc6000_init_mss()
354 static void sc6000_hw_cfg_encode(char __iomem *vport, int *cfg, in sc6000_hw_cfg_encode() argument
376 static int sc6000_init_board(char __iomem *vport, in sc6000_init_board() argument
388 err = sc6000_dsp_reset(vport); in sc6000_init_board()
395 err = sc6000_dsp_get_answer(vport, GET_DSP_COPYRIGHT, answer, 15); in sc6000_init_board()
407 if (sc6000_dsp_get_answer(vport, GET_DSP_VERSION, version, 2) < 2) { in sc6000_init_board()
415 sc6000_write(vport, COMMAND_5C); in sc6000_init_board()
416 if (sc6000_read(vport) < 0) in sc6000_init_board()
421 sc6000_hw_cfg_encode(vport, &cfg[0], port[dev], mpu_port[dev], in sc6000_init_board()
423 if (sc6000_hw_cfg_write(vport, cfg) < 0) { in sc6000_init_board()
428 err = sc6000_setup_board(vport, config); in sc6000_init_board()
434 sc6000_dsp_reset(vport); in sc6000_init_board()
437 sc6000_write(vport, COMMAND_60); in sc6000_init_board()
438 sc6000_write(vport, 0x02); in sc6000_init_board()
439 sc6000_dsp_reset(vport); in sc6000_init_board()
442 err = sc6000_setup_board(vport, config); in sc6000_init_board()
447 err = sc6000_init_mss(vport, config, vmss_port, mss_config); in sc6000_init_board()
545 char __iomem **vport; in snd_sc6000_probe() local
550 sizeof(vport), &card); in snd_sc6000_probe()
554 vport = card->private_data; in snd_sc6000_probe()
579 *vport = devm_ioport_map(devptr, port[dev], 0x10); in snd_sc6000_probe()
580 if (*vport == NULL) { in snd_sc6000_probe()
606 err = sc6000_init_board(*vport, vmss_port, dev); in snd_sc6000_probe()
666 sc6000_setup_board(*vport, 0); in snd_sc6000_probe()
678 char __iomem **vport = card->private_data; in snd_sc6000_remove() local
680 if (sc6000_setup_board(*vport, 0) < 0) in snd_sc6000_remove()