Exemple #1
0
/* detection and initialization */
static int sc6000_hw_cfg_write(char __iomem *vport, const int *cfg)
{
	if (sc6000_write(vport, COMMAND_6C) < 0) {
		snd_printk(KERN_WARNING "CMD 0x%x: failed!\n", COMMAND_6C);
		return -EIO;
	}
	if (sc6000_write(vport, COMMAND_5C) < 0) {
		snd_printk(KERN_ERR "CMD 0x%x: failed!\n", COMMAND_5C);
		return -EIO;
	}
	if (sc6000_write(vport, cfg[0]) < 0) {
		snd_printk(KERN_ERR "DATA 0x%x: failed!\n", cfg[0]);
		return -EIO;
	}
	if (sc6000_write(vport, cfg[1]) < 0) {
		snd_printk(KERN_ERR "DATA 0x%x: failed!\n", cfg[1]);
		return -EIO;
	}
	if (sc6000_write(vport, COMMAND_C5) < 0) {
		snd_printk(KERN_ERR "CMD 0x%x: failed!\n", COMMAND_C5);
		return -EIO;
	}

	return 0;
}
Exemple #2
0
/* detection and initialization */
static int __devinit sc6000_hw_cfg_write(char __iomem *vport, const int *cfg)
{
	if (sc6000_write(vport, COMMAND_6C) < 0) {
#ifdef CONFIG_DEBUG_PRINTK
		snd_printk(KERN_WARNING "CMD 0x%x: failed!\n", COMMAND_6C);
#else
		;
#endif
		return -EIO;
	}
	if (sc6000_write(vport, COMMAND_5C) < 0) {
		snd_printk(KERN_ERR "CMD 0x%x: failed!\n", COMMAND_5C);
		return -EIO;
	}
	if (sc6000_write(vport, cfg[0]) < 0) {
		snd_printk(KERN_ERR "DATA 0x%x: failed!\n", cfg[0]);
		return -EIO;
	}
	if (sc6000_write(vport, cfg[1]) < 0) {
		snd_printk(KERN_ERR "DATA 0x%x: failed!\n", cfg[1]);
		return -EIO;
	}
	if (sc6000_write(vport, COMMAND_C5) < 0) {
		snd_printk(KERN_ERR "CMD 0x%x: failed!\n", COMMAND_C5);
		return -EIO;
	}

	return 0;
}
Exemple #3
0
/* detection and initialization */
static int __devinit sc6000_hw_cfg_write(char __iomem *vport, const int *cfg)
{
	if (sc6000_write(vport, COMMAND_6C) < 0) {
;
		return -EIO;
	}
	if (sc6000_write(vport, COMMAND_5C) < 0) {
;
		return -EIO;
	}
	if (sc6000_write(vport, cfg[0]) < 0) {
;
		return -EIO;
	}
	if (sc6000_write(vport, cfg[1]) < 0) {
;
		return -EIO;
	}
	if (sc6000_write(vport, COMMAND_C5) < 0) {
;
		return -EIO;
	}

	return 0;
}
Exemple #4
0
static int sc6000_cfg_write(char __iomem *vport, unsigned char softcfg)
{

	if (sc6000_write(vport, WRITE_MDIRQ_CFG)) {
		snd_printk(KERN_ERR "CMD 0x%x: failed!\n", WRITE_MDIRQ_CFG);
		return -EIO;
	}
	if (sc6000_write(vport, softcfg)) {
		snd_printk(KERN_ERR "sc6000_cfg_write: failed!\n");
		return -EIO;
	}
	return 0;
}
Exemple #5
0
static int sc6000_cfg_write(char __iomem *vport, unsigned char softcfg)
{

	if (sc6000_write(vport, WRITE_MDIRQ_CFG)) {
;
		return -EIO;
	}
	if (sc6000_write(vport, softcfg)) {
;
		return -EIO;
	}
	return 0;
}
Exemple #6
0
static int sc6000_dsp_get_answer(char __iomem *vport, int command,
				 char *data, int data_len)
{
	int len = 0;

	if (sc6000_write(vport, command)) {
		snd_printk(KERN_ERR "CMD 0x%x: failed!\n", command);
		return -EIO;
	}

	do {
		int val = sc6000_read(vport);

		if (val < 0)
			break;

		data[len++] = val;

	} while (len < data_len);

	/*
	 * If no more data available, return to the caller, no error if len>0.
	 * We have no other way to know when the string is finished.
	 */
	return len ? len : -EIO;
}
Exemple #7
0
static int sc6000_init_mss(char __iomem *vport, int config,
			   char __iomem *vmss_port, int mss_config)
{
	if (sc6000_write(vport, DSP_INIT_MSS)) {
		snd_printk(KERN_ERR "sc6000_init_mss [0x%x]: failed!\n",
			   DSP_INIT_MSS);
		return -EIO;
	}

	msleep(10);

	if (sc6000_cfg_write(vport, config))
		return -EIO;

	iowrite8(mss_config, vmss_port);

	return 0;
}
Exemple #8
0
static int sc6000_setup_board(char __iomem *vport, int config)
{
	int loop = 10;

	do {
		if (sc6000_write(vport, COMMAND_88)) {
			snd_printk(KERN_ERR "CMD 0x%x: failed!\n",
				   COMMAND_88);
			return -EIO;
		}
	} while ((sc6000_wait_data(vport) < 0) && loop--);

	if (sc6000_read(vport) < 0) {
		snd_printk(KERN_ERR "sc6000_read after CMD 0x%x: failed\n",
			   COMMAND_88);
		return -EIO;
	}

	if (sc6000_cfg_write(vport, config))
		return -ENODEV;

	return 0;
}