ALSA: emu10k1: Use standard printk helpers
Convert with dev_err() and co from snd_printk(), etc. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
		
					parent
					
						
							
								26bc6964f9
							
						
					
				
			
			
				commit
				
					
						6f002b0216
					
				
			
		
					 13 changed files with 137 additions and 93 deletions
				
			
		| 
						 | 
					@ -170,7 +170,8 @@ static int snd_card_emu10k1_probe(struct pci_dev *pci,
 | 
				
			||||||
	if (snd_seq_device_new(card, 1, SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH,
 | 
						if (snd_seq_device_new(card, 1, SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH,
 | 
				
			||||||
			       sizeof(struct snd_emu10k1_synth_arg), &wave) < 0 ||
 | 
								       sizeof(struct snd_emu10k1_synth_arg), &wave) < 0 ||
 | 
				
			||||||
	    wave == NULL) {
 | 
						    wave == NULL) {
 | 
				
			||||||
		snd_printk(KERN_WARNING "can't initialize Emu10k1 wavetable synth\n");
 | 
							dev_warn(emu->card->dev,
 | 
				
			||||||
 | 
								 "can't initialize Emu10k1 wavetable synth\n");
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		struct snd_emu10k1_synth_arg *arg;
 | 
							struct snd_emu10k1_synth_arg *arg;
 | 
				
			||||||
		arg = SNDRV_SEQ_DEVICE_ARGPTR(wave);
 | 
							arg = SNDRV_SEQ_DEVICE_ARGPTR(wave);
 | 
				
			||||||
| 
						 | 
					@ -247,8 +248,7 @@ static int snd_emu10k1_resume(struct device *dev)
 | 
				
			||||||
	pci_set_power_state(pci, PCI_D0);
 | 
						pci_set_power_state(pci, PCI_D0);
 | 
				
			||||||
	pci_restore_state(pci);
 | 
						pci_restore_state(pci);
 | 
				
			||||||
	if (pci_enable_device(pci) < 0) {
 | 
						if (pci_enable_device(pci) < 0) {
 | 
				
			||||||
		printk(KERN_ERR "emu10k1: pci_enable_device failed, "
 | 
							dev_err(dev, "pci_enable_device failed, disabling device\n");
 | 
				
			||||||
		       "disabling device\n");
 | 
					 | 
				
			||||||
		snd_card_disconnect(card);
 | 
							snd_card_disconnect(card);
 | 
				
			||||||
		return -EIO;
 | 
							return -EIO;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -105,7 +105,7 @@ snd_emu10k1_synth_get_voice(struct snd_emu10k1 *hw)
 | 
				
			||||||
			vp = &emu->voices[best[i].voice];
 | 
								vp = &emu->voices[best[i].voice];
 | 
				
			||||||
			if ((ch = vp->ch) < 0) {
 | 
								if ((ch = vp->ch) < 0) {
 | 
				
			||||||
				/*
 | 
									/*
 | 
				
			||||||
				printk(KERN_WARNING
 | 
									dev_warn(emu->card->dev,
 | 
				
			||||||
				       "synth_get_voice: ch < 0 (%d) ??", i);
 | 
									       "synth_get_voice: ch < 0 (%d) ??", i);
 | 
				
			||||||
				*/
 | 
									*/
 | 
				
			||||||
				continue;
 | 
									continue;
 | 
				
			||||||
| 
						 | 
					@ -339,7 +339,7 @@ start_voice(struct snd_emux_voice *vp)
 | 
				
			||||||
		return -EINVAL;
 | 
							return -EINVAL;
 | 
				
			||||||
	emem->map_locked++;
 | 
						emem->map_locked++;
 | 
				
			||||||
	if (snd_emu10k1_memblk_map(hw, emem) < 0) {
 | 
						if (snd_emu10k1_memblk_map(hw, emem) < 0) {
 | 
				
			||||||
		/* printk(KERN_ERR "emu: cannot map!\n"); */
 | 
							/* dev_err(hw->card->devK, "emu: cannot map!\n"); */
 | 
				
			||||||
		return -ENOMEM;
 | 
							return -ENOMEM;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	mapped_offset = snd_emu10k1_memblk_offset(emem) >> 1;
 | 
						mapped_offset = snd_emu10k1_memblk_offset(emem) >> 1;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -217,7 +217,7 @@ static int snd_emu10k1_init(struct snd_emu10k1 *emu, int enable_ir, int resume)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (emu->card_capabilities->ca0108_chip) { /* audigy2 Value */
 | 
						if (emu->card_capabilities->ca0108_chip) { /* audigy2 Value */
 | 
				
			||||||
		/* Hacks for Alice3 to work independent of haP16V driver */
 | 
							/* Hacks for Alice3 to work independent of haP16V driver */
 | 
				
			||||||
		snd_printk(KERN_INFO "Audigy2 value: Special config.\n");
 | 
							dev_info(emu->card->dev, "Audigy2 value: Special config.\n");
 | 
				
			||||||
		/* Setup SRCMulti_I2S SamplingRate */
 | 
							/* Setup SRCMulti_I2S SamplingRate */
 | 
				
			||||||
		tmp = snd_emu10k1_ptr_read(emu, A_SPDIF_SAMPLERATE, 0);
 | 
							tmp = snd_emu10k1_ptr_read(emu, A_SPDIF_SAMPLERATE, 0);
 | 
				
			||||||
		tmp &= 0xfffff1ff;
 | 
							tmp &= 0xfffff1ff;
 | 
				
			||||||
| 
						 | 
					@ -723,7 +723,8 @@ static int emu1010_firmware_thread(void *data)
 | 
				
			||||||
		if (reg & EMU_HANA_OPTION_DOCK_OFFLINE) {
 | 
							if (reg & EMU_HANA_OPTION_DOCK_OFFLINE) {
 | 
				
			||||||
			/* Audio Dock attached */
 | 
								/* Audio Dock attached */
 | 
				
			||||||
			/* Return to Audio Dock programming mode */
 | 
								/* Return to Audio Dock programming mode */
 | 
				
			||||||
			snd_printk(KERN_INFO "emu1010: Loading Audio Dock Firmware\n");
 | 
								dev_info(emu->card->dev,
 | 
				
			||||||
 | 
									 "emu1010: Loading Audio Dock Firmware\n");
 | 
				
			||||||
			snd_emu1010_fpga_write(emu, EMU_HANA_FPGA_CONFIG, EMU_HANA_FPGA_CONFIG_AUDIODOCK);
 | 
								snd_emu1010_fpga_write(emu, EMU_HANA_FPGA_CONFIG, EMU_HANA_FPGA_CONFIG_AUDIODOCK);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if (!emu->dock_fw) {
 | 
								if (!emu->dock_fw) {
 | 
				
			||||||
| 
						 | 
					@ -756,19 +757,25 @@ static int emu1010_firmware_thread(void *data)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			snd_emu1010_fpga_write(emu, EMU_HANA_FPGA_CONFIG, 0);
 | 
								snd_emu1010_fpga_write(emu, EMU_HANA_FPGA_CONFIG, 0);
 | 
				
			||||||
			snd_emu1010_fpga_read(emu, EMU_HANA_IRQ_STATUS, ®);
 | 
								snd_emu1010_fpga_read(emu, EMU_HANA_IRQ_STATUS, ®);
 | 
				
			||||||
			snd_printk(KERN_INFO "emu1010: EMU_HANA+DOCK_IRQ_STATUS = 0x%x\n", reg);
 | 
								dev_info(emu->card->dev,
 | 
				
			||||||
 | 
									 "emu1010: EMU_HANA+DOCK_IRQ_STATUS = 0x%x\n",
 | 
				
			||||||
 | 
									 reg);
 | 
				
			||||||
			/* ID, should read & 0x7f = 0x55 when FPGA programmed. */
 | 
								/* ID, should read & 0x7f = 0x55 when FPGA programmed. */
 | 
				
			||||||
			snd_emu1010_fpga_read(emu, EMU_HANA_ID, ®);
 | 
								snd_emu1010_fpga_read(emu, EMU_HANA_ID, ®);
 | 
				
			||||||
			snd_printk(KERN_INFO "emu1010: EMU_HANA+DOCK_ID = 0x%x\n", reg);
 | 
								dev_info(emu->card->dev,
 | 
				
			||||||
 | 
									 "emu1010: EMU_HANA+DOCK_ID = 0x%x\n", reg);
 | 
				
			||||||
			if ((reg & 0x1f) != 0x15) {
 | 
								if ((reg & 0x1f) != 0x15) {
 | 
				
			||||||
				/* FPGA failed to be programmed */
 | 
									/* FPGA failed to be programmed */
 | 
				
			||||||
				snd_printk(KERN_INFO "emu1010: Loading Audio Dock Firmware file failed, reg = 0x%x\n", reg);
 | 
									dev_info(emu->card->dev,
 | 
				
			||||||
 | 
										 "emu1010: Loading Audio Dock Firmware file failed, reg = 0x%x\n",
 | 
				
			||||||
 | 
										 reg);
 | 
				
			||||||
				continue;
 | 
									continue;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			snd_printk(KERN_INFO "emu1010: Audio Dock Firmware loaded\n");
 | 
								dev_info(emu->card->dev,
 | 
				
			||||||
 | 
									 "emu1010: Audio Dock Firmware loaded\n");
 | 
				
			||||||
			snd_emu1010_fpga_read(emu, EMU_DOCK_MAJOR_REV, &tmp);
 | 
								snd_emu1010_fpga_read(emu, EMU_DOCK_MAJOR_REV, &tmp);
 | 
				
			||||||
			snd_emu1010_fpga_read(emu, EMU_DOCK_MINOR_REV, &tmp2);
 | 
								snd_emu1010_fpga_read(emu, EMU_DOCK_MINOR_REV, &tmp2);
 | 
				
			||||||
			snd_printk(KERN_INFO "Audio Dock ver: %u.%u\n",
 | 
								dev_info(emu->card->dev, "Audio Dock ver: %u.%u\n",
 | 
				
			||||||
				   tmp, tmp2);
 | 
									   tmp, tmp2);
 | 
				
			||||||
			/* Sync clocking between 1010 and Dock */
 | 
								/* Sync clocking between 1010 and Dock */
 | 
				
			||||||
			/* Allow DLL to settle */
 | 
								/* Allow DLL to settle */
 | 
				
			||||||
| 
						 | 
					@ -777,7 +784,7 @@ static int emu1010_firmware_thread(void *data)
 | 
				
			||||||
			snd_emu1010_fpga_write(emu, EMU_HANA_UNMUTE, EMU_UNMUTE);
 | 
								snd_emu1010_fpga_write(emu, EMU_HANA_UNMUTE, EMU_UNMUTE);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	snd_printk(KERN_INFO "emu1010: firmware thread stopping\n");
 | 
						dev_info(emu->card->dev, "emu1010: firmware thread stopping\n");
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -818,7 +825,7 @@ static int snd_emu10k1_emu1010_init(struct snd_emu10k1 *emu)
 | 
				
			||||||
	u32 tmp, tmp2, reg;
 | 
						u32 tmp, tmp2, reg;
 | 
				
			||||||
	int err;
 | 
						int err;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	snd_printk(KERN_INFO "emu1010: Special config.\n");
 | 
						dev_info(emu->card->dev, "emu1010: Special config.\n");
 | 
				
			||||||
	/* AC97 2.1, Any 16Meg of 4Gig address, Auto-Mute, EMU32 Slave,
 | 
						/* AC97 2.1, Any 16Meg of 4Gig address, Auto-Mute, EMU32 Slave,
 | 
				
			||||||
	 * Lock Sound Memory Cache, Lock Tank Memory Cache,
 | 
						 * Lock Sound Memory Cache, Lock Tank Memory Cache,
 | 
				
			||||||
	 * Mute all codecs.
 | 
						 * Mute all codecs.
 | 
				
			||||||
| 
						 | 
					@ -843,7 +850,7 @@ static int snd_emu10k1_emu1010_init(struct snd_emu10k1 *emu)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* ID, should read & 0x7f = 0x55. (Bit 7 is the IRQ bit) */
 | 
						/* ID, should read & 0x7f = 0x55. (Bit 7 is the IRQ bit) */
 | 
				
			||||||
	snd_emu1010_fpga_read(emu, EMU_HANA_ID, ®);
 | 
						snd_emu1010_fpga_read(emu, EMU_HANA_ID, ®);
 | 
				
			||||||
	snd_printdd("reg1 = 0x%x\n", reg);
 | 
						dev_dbg(emu->card->dev, "reg1 = 0x%x\n", reg);
 | 
				
			||||||
	if ((reg & 0x3f) == 0x15) {
 | 
						if ((reg & 0x3f) == 0x15) {
 | 
				
			||||||
		/* FPGA netlist already present so clear it */
 | 
							/* FPGA netlist already present so clear it */
 | 
				
			||||||
		/* Return to programming mode */
 | 
							/* Return to programming mode */
 | 
				
			||||||
| 
						 | 
					@ -851,13 +858,14 @@ static int snd_emu10k1_emu1010_init(struct snd_emu10k1 *emu)
 | 
				
			||||||
		snd_emu1010_fpga_write(emu, EMU_HANA_FPGA_CONFIG, 0x02);
 | 
							snd_emu1010_fpga_write(emu, EMU_HANA_FPGA_CONFIG, 0x02);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	snd_emu1010_fpga_read(emu, EMU_HANA_ID, ®);
 | 
						snd_emu1010_fpga_read(emu, EMU_HANA_ID, ®);
 | 
				
			||||||
	snd_printdd("reg2 = 0x%x\n", reg);
 | 
						dev_dbg(emu->card->dev, "reg2 = 0x%x\n", reg);
 | 
				
			||||||
	if ((reg & 0x3f) == 0x15) {
 | 
						if ((reg & 0x3f) == 0x15) {
 | 
				
			||||||
		/* FPGA failed to return to programming mode */
 | 
							/* FPGA failed to return to programming mode */
 | 
				
			||||||
		snd_printk(KERN_INFO "emu1010: FPGA failed to return to programming mode\n");
 | 
							dev_info(emu->card->dev,
 | 
				
			||||||
 | 
								 "emu1010: FPGA failed to return to programming mode\n");
 | 
				
			||||||
		return -ENODEV;
 | 
							return -ENODEV;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	snd_printk(KERN_INFO "emu1010: EMU_HANA_ID = 0x%x\n", reg);
 | 
						dev_info(emu->card->dev, "emu1010: EMU_HANA_ID = 0x%x\n", reg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!emu->firmware) {
 | 
						if (!emu->firmware) {
 | 
				
			||||||
		const char *filename;
 | 
							const char *filename;
 | 
				
			||||||
| 
						 | 
					@ -880,16 +888,19 @@ static int snd_emu10k1_emu1010_init(struct snd_emu10k1 *emu)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		err = request_firmware(&emu->firmware, filename, &emu->pci->dev);
 | 
							err = request_firmware(&emu->firmware, filename, &emu->pci->dev);
 | 
				
			||||||
		if (err != 0) {
 | 
							if (err != 0) {
 | 
				
			||||||
			snd_printk(KERN_ERR "emu1010: firmware: %s not found. Err = %d\n", filename, err);
 | 
								dev_info(emu->card->dev,
 | 
				
			||||||
 | 
									 "emu1010: firmware: %s not found. Err = %d\n",
 | 
				
			||||||
 | 
									 filename, err);
 | 
				
			||||||
			return err;
 | 
								return err;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		snd_printk(KERN_INFO "emu1010: firmware file = %s, size = 0x%zx\n",
 | 
							dev_info(emu->card->dev,
 | 
				
			||||||
 | 
								 "emu1010: firmware file = %s, size = 0x%zx\n",
 | 
				
			||||||
			   filename, emu->firmware->size);
 | 
								   filename, emu->firmware->size);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	err = snd_emu1010_load_firmware(emu, emu->firmware);
 | 
						err = snd_emu1010_load_firmware(emu, emu->firmware);
 | 
				
			||||||
	if (err != 0) {
 | 
						if (err != 0) {
 | 
				
			||||||
		snd_printk(KERN_INFO "emu1010: Loading Firmware failed\n");
 | 
							dev_info(emu->card->dev, "emu1010: Loading Firmware failed\n");
 | 
				
			||||||
		return err;
 | 
							return err;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -897,21 +908,23 @@ static int snd_emu10k1_emu1010_init(struct snd_emu10k1 *emu)
 | 
				
			||||||
	snd_emu1010_fpga_read(emu, EMU_HANA_ID, ®);
 | 
						snd_emu1010_fpga_read(emu, EMU_HANA_ID, ®);
 | 
				
			||||||
	if ((reg & 0x3f) != 0x15) {
 | 
						if ((reg & 0x3f) != 0x15) {
 | 
				
			||||||
		/* FPGA failed to be programmed */
 | 
							/* FPGA failed to be programmed */
 | 
				
			||||||
		snd_printk(KERN_INFO "emu1010: Loading Hana Firmware file failed, reg = 0x%x\n", reg);
 | 
							dev_info(emu->card->dev,
 | 
				
			||||||
 | 
								 "emu1010: Loading Hana Firmware file failed, reg = 0x%x\n",
 | 
				
			||||||
 | 
								 reg);
 | 
				
			||||||
		return -ENODEV;
 | 
							return -ENODEV;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	snd_printk(KERN_INFO "emu1010: Hana Firmware loaded\n");
 | 
						dev_info(emu->card->dev, "emu1010: Hana Firmware loaded\n");
 | 
				
			||||||
	snd_emu1010_fpga_read(emu, EMU_HANA_MAJOR_REV, &tmp);
 | 
						snd_emu1010_fpga_read(emu, EMU_HANA_MAJOR_REV, &tmp);
 | 
				
			||||||
	snd_emu1010_fpga_read(emu, EMU_HANA_MINOR_REV, &tmp2);
 | 
						snd_emu1010_fpga_read(emu, EMU_HANA_MINOR_REV, &tmp2);
 | 
				
			||||||
	snd_printk(KERN_INFO "emu1010: Hana version: %u.%u\n", tmp, tmp2);
 | 
						dev_info(emu->card->dev, "emu1010: Hana version: %u.%u\n", tmp, tmp2);
 | 
				
			||||||
	/* Enable 48Volt power to Audio Dock */
 | 
						/* Enable 48Volt power to Audio Dock */
 | 
				
			||||||
	snd_emu1010_fpga_write(emu, EMU_HANA_DOCK_PWR, EMU_HANA_DOCK_PWR_ON);
 | 
						snd_emu1010_fpga_write(emu, EMU_HANA_DOCK_PWR, EMU_HANA_DOCK_PWR_ON);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	snd_emu1010_fpga_read(emu, EMU_HANA_OPTION_CARDS, ®);
 | 
						snd_emu1010_fpga_read(emu, EMU_HANA_OPTION_CARDS, ®);
 | 
				
			||||||
	snd_printk(KERN_INFO "emu1010: Card options = 0x%x\n", reg);
 | 
						dev_info(emu->card->dev, "emu1010: Card options = 0x%x\n", reg);
 | 
				
			||||||
	snd_emu1010_fpga_read(emu, EMU_HANA_OPTION_CARDS, ®);
 | 
						snd_emu1010_fpga_read(emu, EMU_HANA_OPTION_CARDS, ®);
 | 
				
			||||||
	snd_printk(KERN_INFO "emu1010: Card options = 0x%x\n", reg);
 | 
						dev_info(emu->card->dev, "emu1010: Card options = 0x%x\n", reg);
 | 
				
			||||||
	snd_emu1010_fpga_read(emu, EMU_HANA_OPTICAL_TYPE, &tmp);
 | 
						snd_emu1010_fpga_read(emu, EMU_HANA_OPTICAL_TYPE, &tmp);
 | 
				
			||||||
	/* Optical -> ADAT I/O  */
 | 
						/* Optical -> ADAT I/O  */
 | 
				
			||||||
	/* 0 : SPDIF
 | 
						/* 0 : SPDIF
 | 
				
			||||||
| 
						 | 
					@ -950,7 +963,7 @@ static int snd_emu10k1_emu1010_init(struct snd_emu10k1 *emu)
 | 
				
			||||||
	snd_emu1010_fpga_write(emu, EMU_HANA_IRQ_ENABLE, 0x00);
 | 
						snd_emu1010_fpga_write(emu, EMU_HANA_IRQ_ENABLE, 0x00);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	snd_emu1010_fpga_read(emu, EMU_HANA_OPTION_CARDS, ®);
 | 
						snd_emu1010_fpga_read(emu, EMU_HANA_OPTION_CARDS, ®);
 | 
				
			||||||
	snd_printk(KERN_INFO "emu1010: Card options3 = 0x%x\n", reg);
 | 
						dev_info(emu->card->dev, "emu1010: Card options3 = 0x%x\n", reg);
 | 
				
			||||||
	/* Default WCLK set to 48kHz. */
 | 
						/* Default WCLK set to 48kHz. */
 | 
				
			||||||
	snd_emu1010_fpga_write(emu, EMU_HANA_DEFCLOCK, 0x00);
 | 
						snd_emu1010_fpga_write(emu, EMU_HANA_DEFCLOCK, 0x00);
 | 
				
			||||||
	/* Word Clock source, Internal 48kHz x1 */
 | 
						/* Word Clock source, Internal 48kHz x1 */
 | 
				
			||||||
| 
						 | 
					@ -1808,7 +1821,9 @@ int snd_emu10k1_create(struct snd_card *card,
 | 
				
			||||||
	emu->revision = pci->revision;
 | 
						emu->revision = pci->revision;
 | 
				
			||||||
	pci_read_config_dword(pci, PCI_SUBSYSTEM_VENDOR_ID, &emu->serial);
 | 
						pci_read_config_dword(pci, PCI_SUBSYSTEM_VENDOR_ID, &emu->serial);
 | 
				
			||||||
	pci_read_config_word(pci, PCI_SUBSYSTEM_ID, &emu->model);
 | 
						pci_read_config_word(pci, PCI_SUBSYSTEM_ID, &emu->model);
 | 
				
			||||||
	snd_printdd("vendor = 0x%x, device = 0x%x, subsystem_vendor_id = 0x%x, subsystem_id = 0x%x\n", pci->vendor, pci->device, emu->serial, emu->model);
 | 
						dev_dbg(card->dev,
 | 
				
			||||||
 | 
							"vendor = 0x%x, device = 0x%x, subsystem_vendor_id = 0x%x, subsystem_id = 0x%x\n",
 | 
				
			||||||
 | 
							pci->vendor, pci->device, emu->serial, emu->model);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (c = emu_chip_details; c->vendor; c++) {
 | 
						for (c = emu_chip_details; c->vendor; c++) {
 | 
				
			||||||
		if (c->vendor == pci->vendor && c->device == pci->device) {
 | 
							if (c->vendor == pci->vendor && c->device == pci->device) {
 | 
				
			||||||
| 
						 | 
					@ -1827,21 +1842,21 @@ int snd_emu10k1_create(struct snd_card *card,
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (c->vendor == 0) {
 | 
						if (c->vendor == 0) {
 | 
				
			||||||
		snd_printk(KERN_ERR "emu10k1: Card not recognised\n");
 | 
							dev_err(card->dev, "emu10k1: Card not recognised\n");
 | 
				
			||||||
		kfree(emu);
 | 
							kfree(emu);
 | 
				
			||||||
		pci_disable_device(pci);
 | 
							pci_disable_device(pci);
 | 
				
			||||||
		return -ENOENT;
 | 
							return -ENOENT;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	emu->card_capabilities = c;
 | 
						emu->card_capabilities = c;
 | 
				
			||||||
	if (c->subsystem && !subsystem)
 | 
						if (c->subsystem && !subsystem)
 | 
				
			||||||
		snd_printdd("Sound card name = %s\n", c->name);
 | 
							dev_dbg(card->dev, "Sound card name = %s\n", c->name);
 | 
				
			||||||
	else if (subsystem)
 | 
						else if (subsystem)
 | 
				
			||||||
		snd_printdd("Sound card name = %s, "
 | 
							dev_dbg(card->dev, "Sound card name = %s, "
 | 
				
			||||||
			"vendor = 0x%x, device = 0x%x, subsystem = 0x%x. "
 | 
								"vendor = 0x%x, device = 0x%x, subsystem = 0x%x. "
 | 
				
			||||||
			"Forced to subsystem = 0x%x\n",	c->name,
 | 
								"Forced to subsystem = 0x%x\n",	c->name,
 | 
				
			||||||
			pci->vendor, pci->device, emu->serial, c->subsystem);
 | 
								pci->vendor, pci->device, emu->serial, c->subsystem);
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
		snd_printdd("Sound card name = %s, "
 | 
							dev_dbg(card->dev, "Sound card name = %s, "
 | 
				
			||||||
			"vendor = 0x%x, device = 0x%x, subsystem = 0x%x.\n",
 | 
								"vendor = 0x%x, device = 0x%x, subsystem = 0x%x.\n",
 | 
				
			||||||
			c->name, pci->vendor, pci->device,
 | 
								c->name, pci->vendor, pci->device,
 | 
				
			||||||
			emu->serial);
 | 
								emu->serial);
 | 
				
			||||||
| 
						 | 
					@ -1869,7 +1884,9 @@ int snd_emu10k1_create(struct snd_card *card,
 | 
				
			||||||
	emu->dma_mask = is_audigy ? AUDIGY_DMA_MASK : EMU10K1_DMA_MASK;
 | 
						emu->dma_mask = is_audigy ? AUDIGY_DMA_MASK : EMU10K1_DMA_MASK;
 | 
				
			||||||
	if (pci_set_dma_mask(pci, emu->dma_mask) < 0 ||
 | 
						if (pci_set_dma_mask(pci, emu->dma_mask) < 0 ||
 | 
				
			||||||
	    pci_set_consistent_dma_mask(pci, emu->dma_mask) < 0) {
 | 
						    pci_set_consistent_dma_mask(pci, emu->dma_mask) < 0) {
 | 
				
			||||||
		snd_printk(KERN_ERR "architecture does not support PCI busmaster DMA with mask 0x%lx\n", emu->dma_mask);
 | 
							dev_err(card->dev,
 | 
				
			||||||
 | 
								"architecture does not support PCI busmaster DMA with mask 0x%lx\n",
 | 
				
			||||||
 | 
								emu->dma_mask);
 | 
				
			||||||
		kfree(emu);
 | 
							kfree(emu);
 | 
				
			||||||
		pci_disable_device(pci);
 | 
							pci_disable_device(pci);
 | 
				
			||||||
		return -ENXIO;
 | 
							return -ENXIO;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -50,7 +50,8 @@ snd_emu10k1_sample_new(struct snd_emux *rec, struct snd_sf_sample *sp,
 | 
				
			||||||
		return -EINVAL;
 | 
							return -EINVAL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (sp->v.size == 0) {
 | 
						if (sp->v.size == 0) {
 | 
				
			||||||
		snd_printd("emu: rom font for sample %d\n", sp->v.sample);
 | 
							dev_dbg(emu->card->dev,
 | 
				
			||||||
 | 
								"emu: rom font for sample %d\n", sp->v.sample);
 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -92,7 +93,8 @@ snd_emu10k1_sample_new(struct snd_emux *rec, struct snd_sf_sample *sp,
 | 
				
			||||||
		blocksize *= 2;
 | 
							blocksize *= 2;
 | 
				
			||||||
	sp->block = snd_emu10k1_synth_alloc(emu, blocksize);
 | 
						sp->block = snd_emu10k1_synth_alloc(emu, blocksize);
 | 
				
			||||||
	if (sp->block == NULL) {
 | 
						if (sp->block == NULL) {
 | 
				
			||||||
		snd_printd("emu10k1: synth malloc failed (size=%d)\n", blocksize);
 | 
							dev_dbg(emu->card->dev,
 | 
				
			||||||
 | 
								"synth malloc failed (size=%d)\n", blocksize);
 | 
				
			||||||
		/* not ENOMEM (for compatibility with OSS) */
 | 
							/* not ENOMEM (for compatibility with OSS) */
 | 
				
			||||||
		return -ENOSPC;
 | 
							return -ENOSPC;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1547,7 +1547,7 @@ A_OP(icode, &ptr, iMAC0, A_GPR(var), A_GPR(var), A_GPR(vol), A_EXTIN(input))
 | 
				
			||||||
	/* A_PUT_STEREO_OUTPUT(A_EXTOUT_FRONT_L, A_EXTOUT_FRONT_R, playback + SND_EMU10K1_PLAYBACK_CHANNELS); */
 | 
						/* A_PUT_STEREO_OUTPUT(A_EXTOUT_FRONT_L, A_EXTOUT_FRONT_R, playback + SND_EMU10K1_PLAYBACK_CHANNELS); */
 | 
				
			||||||
	if (emu->card_capabilities->emu_model) {
 | 
						if (emu->card_capabilities->emu_model) {
 | 
				
			||||||
		/* EMU1010 Outputs from PCM Front, Rear, Center, LFE, Side */
 | 
							/* EMU1010 Outputs from PCM Front, Rear, Center, LFE, Side */
 | 
				
			||||||
		snd_printk(KERN_INFO "EMU outputs on\n");
 | 
							dev_info(emu->card->dev, "EMU outputs on\n");
 | 
				
			||||||
		for (z = 0; z < 8; z++) {
 | 
							for (z = 0; z < 8; z++) {
 | 
				
			||||||
			if (emu->card_capabilities->ca0108_chip) {
 | 
								if (emu->card_capabilities->ca0108_chip) {
 | 
				
			||||||
				A_OP(icode, &ptr, iACC3, A3_EMU32OUT(z), A_GPR(playback + SND_EMU10K1_PLAYBACK_CHANNELS + z), A_C_00000000, A_C_00000000);
 | 
									A_OP(icode, &ptr, iACC3, A3_EMU32OUT(z), A_GPR(playback + SND_EMU10K1_PLAYBACK_CHANNELS + z), A_C_00000000, A_C_00000000);
 | 
				
			||||||
| 
						 | 
					@ -1571,7 +1571,9 @@ A_OP(icode, &ptr, iMAC0, A_GPR(var), A_GPR(var), A_GPR(vol), A_EXTIN(input))
 | 
				
			||||||
		A_SWITCH(icode, &ptr, tmp + 1, playback + SND_EMU10K1_PLAYBACK_CHANNELS + z, tmp + 1);
 | 
							A_SWITCH(icode, &ptr, tmp + 1, playback + SND_EMU10K1_PLAYBACK_CHANNELS + z, tmp + 1);
 | 
				
			||||||
		if ((z==1) && (emu->card_capabilities->spdif_bug)) {
 | 
							if ((z==1) && (emu->card_capabilities->spdif_bug)) {
 | 
				
			||||||
			/* Due to a SPDIF output bug on some Audigy cards, this code delays the Right channel by 1 sample */
 | 
								/* Due to a SPDIF output bug on some Audigy cards, this code delays the Right channel by 1 sample */
 | 
				
			||||||
			snd_printk(KERN_INFO "Installing spdif_bug patch: %s\n", emu->card_capabilities->name);
 | 
								dev_info(emu->card->dev,
 | 
				
			||||||
 | 
									 "Installing spdif_bug patch: %s\n",
 | 
				
			||||||
 | 
									 emu->card_capabilities->name);
 | 
				
			||||||
			A_OP(icode, &ptr, iACC3, A_EXTOUT(A_EXTOUT_FRONT_L + z), A_GPR(gpr - 3), A_C_00000000, A_C_00000000);
 | 
								A_OP(icode, &ptr, iACC3, A_EXTOUT(A_EXTOUT_FRONT_L + z), A_GPR(gpr - 3), A_C_00000000, A_C_00000000);
 | 
				
			||||||
			A_OP(icode, &ptr, iACC3, A_GPR(gpr - 3), A_GPR(tmp + 0), A_GPR(tmp + 1), A_C_00000000);
 | 
								A_OP(icode, &ptr, iACC3, A_GPR(gpr - 3), A_GPR(tmp + 0), A_GPR(tmp + 1), A_C_00000000);
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
| 
						 | 
					@ -1595,7 +1597,7 @@ A_OP(icode, &ptr, iMAC0, A_GPR(var), A_GPR(var), A_GPR(vol), A_EXTIN(input))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (emu->card_capabilities->emu_model) {
 | 
						if (emu->card_capabilities->emu_model) {
 | 
				
			||||||
		if (emu->card_capabilities->ca0108_chip) {
 | 
							if (emu->card_capabilities->ca0108_chip) {
 | 
				
			||||||
			snd_printk(KERN_INFO "EMU2 inputs on\n");
 | 
								dev_info(emu->card->dev, "EMU2 inputs on\n");
 | 
				
			||||||
			for (z = 0; z < 0x10; z++) {
 | 
								for (z = 0; z < 0x10; z++) {
 | 
				
			||||||
				snd_emu10k1_audigy_dsp_convert_32_to_2x16( icode, &ptr, tmp, 
 | 
									snd_emu10k1_audigy_dsp_convert_32_to_2x16( icode, &ptr, tmp, 
 | 
				
			||||||
									bit_shifter16,
 | 
														bit_shifter16,
 | 
				
			||||||
| 
						 | 
					@ -1603,11 +1605,11 @@ A_OP(icode, &ptr, iMAC0, A_GPR(var), A_GPR(var), A_GPR(vol), A_EXTIN(input))
 | 
				
			||||||
									A_FXBUS2(z*2) );
 | 
														A_FXBUS2(z*2) );
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			snd_printk(KERN_INFO "EMU inputs on\n");
 | 
								dev_info(emu->card->dev, "EMU inputs on\n");
 | 
				
			||||||
			/* Capture 16 (originally 8) channels of S32_LE sound */
 | 
								/* Capture 16 (originally 8) channels of S32_LE sound */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			/*
 | 
								/*
 | 
				
			||||||
			printk(KERN_DEBUG "emufx.c: gpr=0x%x, tmp=0x%x\n",
 | 
								dev_dbg(emu->card->dev, "emufx.c: gpr=0x%x, tmp=0x%x\n",
 | 
				
			||||||
			       gpr, tmp);
 | 
								       gpr, tmp);
 | 
				
			||||||
			*/
 | 
								*/
 | 
				
			||||||
			/* For the EMU1010: How to get 32bit values from the DSP. High 16bits into L, low 16bits into R. */
 | 
								/* For the EMU1010: How to get 32bit values from the DSP. High 16bits into L, low 16bits into R. */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1853,8 +1853,10 @@ int snd_emu10k1_mixer(struct snd_emu10k1 *emu,
 | 
				
			||||||
		if ((err = snd_ac97_mixer(pbus, &ac97, &emu->ac97)) < 0) {
 | 
							if ((err = snd_ac97_mixer(pbus, &ac97, &emu->ac97)) < 0) {
 | 
				
			||||||
			if (emu->card_capabilities->ac97_chip == 1)
 | 
								if (emu->card_capabilities->ac97_chip == 1)
 | 
				
			||||||
				return err;
 | 
									return err;
 | 
				
			||||||
			snd_printd(KERN_INFO "emu10k1: AC97 is optional on this board\n");
 | 
								dev_info(emu->card->dev,
 | 
				
			||||||
			snd_printd(KERN_INFO"          Proceeding without ac97 mixers...\n");
 | 
									 "AC97 is optional on this board\n");
 | 
				
			||||||
 | 
								dev_info(emu->card->dev,
 | 
				
			||||||
 | 
									 "Proceeding without ac97 mixers...\n");
 | 
				
			||||||
			snd_device_free(emu->card, pbus);
 | 
								snd_device_free(emu->card, pbus);
 | 
				
			||||||
			goto no_ac97; /* FIXME: get rid of ugly gotos.. */
 | 
								goto no_ac97; /* FIXME: get rid of ugly gotos.. */
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -64,7 +64,9 @@ static void mpu401_clear_rx(struct snd_emu10k1 *emu, struct snd_emu10k1_midi *mp
 | 
				
			||||||
		mpu401_read_data(emu, mpu);
 | 
							mpu401_read_data(emu, mpu);
 | 
				
			||||||
#ifdef CONFIG_SND_DEBUG
 | 
					#ifdef CONFIG_SND_DEBUG
 | 
				
			||||||
	if (timeout <= 0)
 | 
						if (timeout <= 0)
 | 
				
			||||||
		snd_printk(KERN_ERR "cmd: clear rx timeout (status = 0x%x)\n", mpu401_read_stat(emu, mpu));
 | 
							dev_err(emu->card->dev,
 | 
				
			||||||
 | 
								"cmd: clear rx timeout (status = 0x%x)\n",
 | 
				
			||||||
 | 
								mpu401_read_stat(emu, mpu));
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -141,7 +143,8 @@ static int snd_emu10k1_midi_cmd(struct snd_emu10k1 * emu, struct snd_emu10k1_mid
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	spin_unlock_irqrestore(&midi->input_lock, flags);
 | 
						spin_unlock_irqrestore(&midi->input_lock, flags);
 | 
				
			||||||
	if (!ok) {
 | 
						if (!ok) {
 | 
				
			||||||
		snd_printk(KERN_ERR "midi_cmd: 0x%x failed at 0x%lx (status = 0x%x, data = 0x%x)!!!\n",
 | 
							dev_err(emu->card->dev,
 | 
				
			||||||
 | 
								"midi_cmd: 0x%x failed at 0x%lx (status = 0x%x, data = 0x%x)!!!\n",
 | 
				
			||||||
			   cmd, emu->port,
 | 
								   cmd, emu->port,
 | 
				
			||||||
			   mpu401_read_stat(emu, midi),
 | 
								   mpu401_read_stat(emu, midi),
 | 
				
			||||||
			   mpu401_read_data(emu, midi));
 | 
								   mpu401_read_data(emu, midi));
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -44,7 +44,8 @@ static void snd_emu10k1_pcm_interrupt(struct snd_emu10k1 *emu,
 | 
				
			||||||
	if (epcm->substream == NULL)
 | 
						if (epcm->substream == NULL)
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
#if 0
 | 
					#if 0
 | 
				
			||||||
	printk(KERN_DEBUG "IRQ: position = 0x%x, period = 0x%x, size = 0x%x\n",
 | 
						dev_dbg(emu->card->dev,
 | 
				
			||||||
 | 
							"IRQ: position = 0x%x, period = 0x%x, size = 0x%x\n",
 | 
				
			||||||
			epcm->substream->runtime->hw->pointer(emu, epcm->substream),
 | 
								epcm->substream->runtime->hw->pointer(emu, epcm->substream),
 | 
				
			||||||
			snd_pcm_lib_period_bytes(epcm->substream),
 | 
								snd_pcm_lib_period_bytes(epcm->substream),
 | 
				
			||||||
			snd_pcm_lib_buffer_bytes(epcm->substream));
 | 
								snd_pcm_lib_buffer_bytes(epcm->substream));
 | 
				
			||||||
| 
						 | 
					@ -147,7 +148,7 @@ static int snd_emu10k1_pcm_channel_alloc(struct snd_emu10k1_pcm * epcm, int voic
 | 
				
			||||||
					      &epcm->extra);
 | 
										      &epcm->extra);
 | 
				
			||||||
		if (err < 0) {
 | 
							if (err < 0) {
 | 
				
			||||||
			/*
 | 
								/*
 | 
				
			||||||
			printk(KERN_DEBUG "pcm_channel_alloc: "
 | 
								dev_dbg(emu->card->dev, "pcm_channel_alloc: "
 | 
				
			||||||
			       "failed extra: voices=%d, frame=%d\n",
 | 
								       "failed extra: voices=%d, frame=%d\n",
 | 
				
			||||||
			       voices, frame);
 | 
								       voices, frame);
 | 
				
			||||||
			*/
 | 
								*/
 | 
				
			||||||
| 
						 | 
					@ -761,7 +762,8 @@ static int snd_emu10k1_playback_trigger(struct snd_pcm_substream *substream,
 | 
				
			||||||
	int result = 0;
 | 
						int result = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
	printk(KERN_DEBUG "trigger - emu10k1 = 0x%x, cmd = %i, pointer = %i\n",
 | 
						dev_dbg(emu->card->dev,
 | 
				
			||||||
 | 
							"trigger - emu10k1 = 0x%x, cmd = %i, pointer = %i\n",
 | 
				
			||||||
	       (int)emu, cmd, substream->ops->pointer(substream))
 | 
						       (int)emu, cmd, substream->ops->pointer(substream))
 | 
				
			||||||
	*/
 | 
						*/
 | 
				
			||||||
	spin_lock(&emu->reg_lock);
 | 
						spin_lock(&emu->reg_lock);
 | 
				
			||||||
| 
						 | 
					@ -815,7 +817,7 @@ static int snd_emu10k1_capture_trigger(struct snd_pcm_substream *substream,
 | 
				
			||||||
		outl(epcm->capture_ipr, emu->port + IPR);
 | 
							outl(epcm->capture_ipr, emu->port + IPR);
 | 
				
			||||||
		snd_emu10k1_intr_enable(emu, epcm->capture_inte);
 | 
							snd_emu10k1_intr_enable(emu, epcm->capture_inte);
 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
		printk(KERN_DEBUG "adccr = 0x%x, adcbs = 0x%x\n",
 | 
							dev_dbg(emu->card->dev, "adccr = 0x%x, adcbs = 0x%x\n",
 | 
				
			||||||
		       epcm->adccr, epcm->adcbs);
 | 
							       epcm->adccr, epcm->adcbs);
 | 
				
			||||||
		*/
 | 
							*/
 | 
				
			||||||
		switch (epcm->type) {
 | 
							switch (epcm->type) {
 | 
				
			||||||
| 
						 | 
					@ -826,7 +828,10 @@ static int snd_emu10k1_capture_trigger(struct snd_pcm_substream *substream,
 | 
				
			||||||
			if (emu->audigy) {
 | 
								if (emu->audigy) {
 | 
				
			||||||
				snd_emu10k1_ptr_write(emu, A_FXWC1, 0, epcm->capture_cr_val);
 | 
									snd_emu10k1_ptr_write(emu, A_FXWC1, 0, epcm->capture_cr_val);
 | 
				
			||||||
				snd_emu10k1_ptr_write(emu, A_FXWC2, 0, epcm->capture_cr_val2);
 | 
									snd_emu10k1_ptr_write(emu, A_FXWC2, 0, epcm->capture_cr_val2);
 | 
				
			||||||
				snd_printdd("cr_val=0x%x, cr_val2=0x%x\n", epcm->capture_cr_val, epcm->capture_cr_val2);
 | 
									dev_dbg(emu->card->dev,
 | 
				
			||||||
 | 
										"cr_val=0x%x, cr_val2=0x%x\n",
 | 
				
			||||||
 | 
										epcm->capture_cr_val,
 | 
				
			||||||
 | 
										epcm->capture_cr_val2);
 | 
				
			||||||
			} else
 | 
								} else
 | 
				
			||||||
				snd_emu10k1_ptr_write(emu, FXWC, 0, epcm->capture_cr_val);
 | 
									snd_emu10k1_ptr_write(emu, FXWC, 0, epcm->capture_cr_val);
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
| 
						 | 
					@ -889,7 +894,7 @@ static snd_pcm_uframes_t snd_emu10k1_playback_pointer(struct snd_pcm_substream *
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
	printk(KERN_DEBUG
 | 
						dev_dbg(emu->card->dev,
 | 
				
			||||||
	       "ptr = 0x%lx, buffer_size = 0x%lx, period_size = 0x%lx\n",
 | 
						       "ptr = 0x%lx, buffer_size = 0x%lx, period_size = 0x%lx\n",
 | 
				
			||||||
	       (long)ptr, (long)runtime->buffer_size,
 | 
						       (long)ptr, (long)runtime->buffer_size,
 | 
				
			||||||
	       (long)runtime->period_size);
 | 
						       (long)runtime->period_size);
 | 
				
			||||||
| 
						 | 
					@ -1594,7 +1599,8 @@ static void snd_emu10k1_fx8010_playback_tram_poke1(unsigned short *dst_left,
 | 
				
			||||||
						   unsigned int tram_shift)
 | 
											   unsigned int tram_shift)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
	printk(KERN_DEBUG "tram_poke1: dst_left = 0x%p, dst_right = 0x%p, "
 | 
						dev_dbg(emu->card->dev,
 | 
				
			||||||
 | 
							"tram_poke1: dst_left = 0x%p, dst_right = 0x%p, "
 | 
				
			||||||
	       "src = 0x%p, count = 0x%x\n",
 | 
						       "src = 0x%p, count = 0x%x\n",
 | 
				
			||||||
	       dst_left, dst_right, src, count);
 | 
						       dst_left, dst_right, src, count);
 | 
				
			||||||
	*/
 | 
						*/
 | 
				
			||||||
| 
						 | 
					@ -1675,7 +1681,7 @@ static int snd_emu10k1_fx8010_playback_prepare(struct snd_pcm_substream *substre
 | 
				
			||||||
	unsigned int i;
 | 
						unsigned int i;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
	printk(KERN_DEBUG "prepare: etram_pages = 0x%p, dma_area = 0x%x, "
 | 
						dev_dbg(emu->card->dev, "prepare: etram_pages = 0x%p, dma_area = 0x%x, "
 | 
				
			||||||
	       "buffer_size = 0x%x (0x%x)\n",
 | 
						       "buffer_size = 0x%x (0x%x)\n",
 | 
				
			||||||
	       emu->fx8010.etram_pages, runtime->dma_area,
 | 
						       emu->fx8010.etram_pages, runtime->dma_area,
 | 
				
			||||||
	       runtime->buffer_size, runtime->buffer_size << 2);
 | 
						       runtime->buffer_size, runtime->buffer_size << 2);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -72,7 +72,7 @@ void snd_emu10k1_ptr_write(struct snd_emu10k1 *emu, unsigned int reg, unsigned i
 | 
				
			||||||
	unsigned int mask;
 | 
						unsigned int mask;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!emu) {
 | 
						if (!emu) {
 | 
				
			||||||
		snd_printk(KERN_ERR "ptr_write: emu is null!\n");
 | 
							dev_err(emu->card->dev, "ptr_write: emu is null!\n");
 | 
				
			||||||
		dump_stack();
 | 
							dump_stack();
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -199,7 +199,7 @@ int snd_emu10k1_i2c_write(struct snd_emu10k1 *emu,
 | 
				
			||||||
	int err = 0;
 | 
						int err = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((reg > 0x7f) || (value > 0x1ff)) {
 | 
						if ((reg > 0x7f) || (value > 0x1ff)) {
 | 
				
			||||||
		snd_printk(KERN_ERR "i2c_write: invalid values.\n");
 | 
							dev_err(emu->card->dev, "i2c_write: invalid values.\n");
 | 
				
			||||||
		return -EINVAL;
 | 
							return -EINVAL;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -227,7 +227,7 @@ int snd_emu10k1_i2c_write(struct snd_emu10k1 *emu,
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if (timeout > 1000) {
 | 
								if (timeout > 1000) {
 | 
				
			||||||
                		snd_printk(KERN_WARNING
 | 
									dev_warn(emu->card->dev,
 | 
				
			||||||
					   "emu10k1:I2C:timeout status=0x%x\n",
 | 
										   "emu10k1:I2C:timeout status=0x%x\n",
 | 
				
			||||||
					   status);
 | 
										   status);
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
| 
						 | 
					@ -239,8 +239,8 @@ int snd_emu10k1_i2c_write(struct snd_emu10k1 *emu,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (retry == 10) {
 | 
						if (retry == 10) {
 | 
				
			||||||
		snd_printk(KERN_ERR "Writing to ADC failed!\n");
 | 
							dev_err(emu->card->dev, "Writing to ADC failed!\n");
 | 
				
			||||||
		snd_printk(KERN_ERR "status=0x%x, reg=%d, value=%d\n",
 | 
							dev_err(emu->card->dev, "status=0x%x, reg=%d, value=%d\n",
 | 
				
			||||||
			status, reg, value);
 | 
								status, reg, value);
 | 
				
			||||||
		/* dump_stack(); */
 | 
							/* dump_stack(); */
 | 
				
			||||||
		err = -EINVAL;
 | 
							err = -EINVAL;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -41,11 +41,12 @@ irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id)
 | 
				
			||||||
		orig_status = status;
 | 
							orig_status = status;
 | 
				
			||||||
		handled = 1;
 | 
							handled = 1;
 | 
				
			||||||
		if ((status & 0xffffffff) == 0xffffffff) {
 | 
							if ((status & 0xffffffff) == 0xffffffff) {
 | 
				
			||||||
			snd_printk(KERN_INFO "snd-emu10k1: Suspected sound card removal\n");
 | 
								dev_info(emu->card->dev,
 | 
				
			||||||
 | 
									 "Suspected sound card removal\n");
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if (status & IPR_PCIERROR) {
 | 
							if (status & IPR_PCIERROR) {
 | 
				
			||||||
			snd_printk(KERN_ERR "interrupt: PCI error\n");
 | 
								dev_err(emu->card->dev, "interrupt: PCI error\n");
 | 
				
			||||||
			snd_emu10k1_intr_disable(emu, INTE_PCIERRORENABLE);
 | 
								snd_emu10k1_intr_disable(emu, INTE_PCIERRORENABLE);
 | 
				
			||||||
			status &= ~IPR_PCIERROR;
 | 
								status &= ~IPR_PCIERROR;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					@ -157,19 +158,22 @@ irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id)
 | 
				
			||||||
				struct snd_emu10k1_voice *pvoice = &(emu->p16v_voices[0]);
 | 
									struct snd_emu10k1_voice *pvoice = &(emu->p16v_voices[0]);
 | 
				
			||||||
				struct snd_emu10k1_voice *cvoice = &(emu->p16v_capture_voice);
 | 
									struct snd_emu10k1_voice *cvoice = &(emu->p16v_capture_voice);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				//printk(KERN_INFO "status2=0x%x\n", status2);
 | 
									/* dev_dbg(emu->card->dev, "status2=0x%x\n", status2); */
 | 
				
			||||||
				orig_status2 = status2;
 | 
									orig_status2 = status2;
 | 
				
			||||||
				if(status2 & mask) {
 | 
									if(status2 & mask) {
 | 
				
			||||||
					if(pvoice->use) {
 | 
										if(pvoice->use) {
 | 
				
			||||||
						snd_pcm_period_elapsed(pvoice->epcm->substream);
 | 
											snd_pcm_period_elapsed(pvoice->epcm->substream);
 | 
				
			||||||
					} else { 
 | 
										} else { 
 | 
				
			||||||
						snd_printk(KERN_ERR "p16v: status: 0x%08x, mask=0x%08x, pvoice=%p, use=%d\n", status2, mask, pvoice, pvoice->use);
 | 
											dev_err(emu->card->dev,
 | 
				
			||||||
 | 
												"p16v: status: 0x%08x, mask=0x%08x, pvoice=%p, use=%d\n",
 | 
				
			||||||
 | 
												status2, mask, pvoice,
 | 
				
			||||||
 | 
												pvoice->use);
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				if(status2 & 0x110000) {
 | 
									if(status2 & 0x110000) {
 | 
				
			||||||
					//printk(KERN_INFO "capture int found\n");
 | 
										/* dev_info(emu->card->dev, "capture int found\n"); */
 | 
				
			||||||
					if(cvoice->use) {
 | 
										if(cvoice->use) {
 | 
				
			||||||
						//printk(KERN_INFO "capture period_elapsed\n");
 | 
											/* dev_info(emu->card->dev, "capture period_elapsed\n"); */
 | 
				
			||||||
						snd_pcm_period_elapsed(cvoice->epcm->substream);
 | 
											snd_pcm_period_elapsed(cvoice->epcm->substream);
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
| 
						 | 
					@ -180,7 +184,8 @@ irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (status) {
 | 
							if (status) {
 | 
				
			||||||
			unsigned int bits;
 | 
								unsigned int bits;
 | 
				
			||||||
			snd_printk(KERN_ERR "emu10k1: unhandled interrupt: 0x%08x\n", status);
 | 
								dev_err(emu->card->dev,
 | 
				
			||||||
 | 
									"unhandled interrupt: 0x%08x\n", status);
 | 
				
			||||||
			//make sure any interrupts we don't handle are disabled:
 | 
								//make sure any interrupts we don't handle are disabled:
 | 
				
			||||||
			bits = INTE_FXDSPENABLE |
 | 
								bits = INTE_FXDSPENABLE |
 | 
				
			||||||
				INTE_PCIERRORENABLE |
 | 
									INTE_PCIERRORENABLE |
 | 
				
			||||||
| 
						 | 
					@ -202,7 +207,7 @@ irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id)
 | 
				
			||||||
		outl(orig_status, emu->port + IPR); /* ack all */
 | 
							outl(orig_status, emu->port + IPR); /* ack all */
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (timeout == 1000)
 | 
						if (timeout == 1000)
 | 
				
			||||||
		snd_printk(KERN_INFO "emu10k1 irq routine failure\n");
 | 
							dev_info(emu->card->dev, "emu10k1 irq routine failure\n");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return IRQ_RETVAL(handled);
 | 
						return IRQ_RETVAL(handled);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -236,11 +236,13 @@ __found_pages:
 | 
				
			||||||
static int is_valid_page(struct snd_emu10k1 *emu, dma_addr_t addr)
 | 
					static int is_valid_page(struct snd_emu10k1 *emu, dma_addr_t addr)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (addr & ~emu->dma_mask) {
 | 
						if (addr & ~emu->dma_mask) {
 | 
				
			||||||
		snd_printk(KERN_ERR "max memory size is 0x%lx (addr = 0x%lx)!!\n", emu->dma_mask, (unsigned long)addr);
 | 
							dev_err(emu->card->dev,
 | 
				
			||||||
 | 
								"max memory size is 0x%lx (addr = 0x%lx)!!\n",
 | 
				
			||||||
 | 
								emu->dma_mask, (unsigned long)addr);
 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (addr & (EMUPAGESIZE-1)) {
 | 
						if (addr & (EMUPAGESIZE-1)) {
 | 
				
			||||||
		snd_printk(KERN_ERR "page is not aligned\n");
 | 
							dev_err(emu->card->dev, "page is not aligned\n");
 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return 1;
 | 
						return 1;
 | 
				
			||||||
| 
						 | 
					@ -331,7 +333,8 @@ snd_emu10k1_alloc_pages(struct snd_emu10k1 *emu, struct snd_pcm_substream *subst
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
			addr = snd_pcm_sgbuf_get_addr(substream, ofs);
 | 
								addr = snd_pcm_sgbuf_get_addr(substream, ofs);
 | 
				
			||||||
		if (! is_valid_page(emu, addr)) {
 | 
							if (! is_valid_page(emu, addr)) {
 | 
				
			||||||
			printk(KERN_ERR "emu: failure page = %d\n", idx);
 | 
								dev_err(emu->card->dev,
 | 
				
			||||||
 | 
									"emu: failure page = %d\n", idx);
 | 
				
			||||||
			mutex_unlock(&hdr->block_mutex);
 | 
								mutex_unlock(&hdr->block_mutex);
 | 
				
			||||||
			return NULL;
 | 
								return NULL;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					@ -507,7 +510,8 @@ static inline void *offset_ptr(struct snd_emu10k1 *emu, int page, int offset)
 | 
				
			||||||
		return NULL;
 | 
							return NULL;
 | 
				
			||||||
	ptr = emu->page_ptr_table[page];
 | 
						ptr = emu->page_ptr_table[page];
 | 
				
			||||||
	if (! ptr) {
 | 
						if (! ptr) {
 | 
				
			||||||
		printk(KERN_ERR "emu10k1: access to NULL ptr: page = %d\n", page);
 | 
							dev_err(emu->card->dev,
 | 
				
			||||||
 | 
								"access to NULL ptr: page = %d\n", page);
 | 
				
			||||||
		return NULL;
 | 
							return NULL;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	ptr += offset & (PAGE_SIZE - 1);
 | 
						ptr += offset & (PAGE_SIZE - 1);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -168,7 +168,7 @@ static void snd_p16v_pcm_free_substream(struct snd_pcm_runtime *runtime)
 | 
				
			||||||
	struct snd_emu10k1_pcm *epcm = runtime->private_data;
 | 
						struct snd_emu10k1_pcm *epcm = runtime->private_data;
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
	if (epcm) {
 | 
						if (epcm) {
 | 
				
			||||||
        	/* snd_printk(KERN_DEBUG "epcm free: %p\n", epcm); */
 | 
							/* dev_dbg(emu->card->dev, "epcm free: %p\n", epcm); */
 | 
				
			||||||
		kfree(epcm);
 | 
							kfree(epcm);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -183,14 +183,14 @@ static int snd_p16v_pcm_open_playback_channel(struct snd_pcm_substream *substrea
 | 
				
			||||||
	int err;
 | 
						int err;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
 | 
						epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
 | 
				
			||||||
        /* snd_printk(KERN_DEBUG "epcm kcalloc: %p\n", epcm); */
 | 
						/* dev_dbg(emu->card->dev, "epcm kcalloc: %p\n", epcm); */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (epcm == NULL)
 | 
						if (epcm == NULL)
 | 
				
			||||||
		return -ENOMEM;
 | 
							return -ENOMEM;
 | 
				
			||||||
	epcm->emu = emu;
 | 
						epcm->emu = emu;
 | 
				
			||||||
	epcm->substream = substream;
 | 
						epcm->substream = substream;
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
	snd_printk(KERN_DEBUG "epcm device=%d, channel_id=%d\n",
 | 
						dev_dbg(emu->card->dev, "epcm device=%d, channel_id=%d\n",
 | 
				
			||||||
		   substream->pcm->device, channel_id);
 | 
							   substream->pcm->device, channel_id);
 | 
				
			||||||
	*/
 | 
						*/
 | 
				
			||||||
	runtime->private_data = epcm;
 | 
						runtime->private_data = epcm;
 | 
				
			||||||
| 
						 | 
					@ -203,10 +203,10 @@ static int snd_p16v_pcm_open_playback_channel(struct snd_pcm_substream *substrea
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        channel->use=1;
 | 
					        channel->use=1;
 | 
				
			||||||
#if 0 /* debug */
 | 
					#if 0 /* debug */
 | 
				
			||||||
	snd_printk(KERN_DEBUG
 | 
						dev_dbg(emu->card->dev,
 | 
				
			||||||
		   "p16v: open channel_id=%d, channel=%p, use=0x%x\n",
 | 
							   "p16v: open channel_id=%d, channel=%p, use=0x%x\n",
 | 
				
			||||||
		   channel_id, channel, channel->use);
 | 
							   channel_id, channel, channel->use);
 | 
				
			||||||
	printk(KERN_DEBUG "open:channel_id=%d, chip=%p, channel=%p\n",
 | 
						dev_dbg(emu->card->dev, "open:channel_id=%d, chip=%p, channel=%p\n",
 | 
				
			||||||
	       channel_id, chip, channel);
 | 
						       channel_id, chip, channel);
 | 
				
			||||||
#endif /* debug */
 | 
					#endif /* debug */
 | 
				
			||||||
	/* channel->interrupt = snd_p16v_pcm_channel_interrupt; */
 | 
						/* channel->interrupt = snd_p16v_pcm_channel_interrupt; */
 | 
				
			||||||
| 
						 | 
					@ -231,14 +231,14 @@ static int snd_p16v_pcm_open_capture_channel(struct snd_pcm_substream *substream
 | 
				
			||||||
	int err;
 | 
						int err;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
 | 
						epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
 | 
				
			||||||
	/* snd_printk(KERN_DEBUG "epcm kcalloc: %p\n", epcm); */
 | 
						/* dev_dbg(emu->card->dev, "epcm kcalloc: %p\n", epcm); */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (epcm == NULL)
 | 
						if (epcm == NULL)
 | 
				
			||||||
		return -ENOMEM;
 | 
							return -ENOMEM;
 | 
				
			||||||
	epcm->emu = emu;
 | 
						epcm->emu = emu;
 | 
				
			||||||
	epcm->substream = substream;
 | 
						epcm->substream = substream;
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
	snd_printk(KERN_DEBUG "epcm device=%d, channel_id=%d\n",
 | 
						dev_dbg(emu->card->dev, "epcm device=%d, channel_id=%d\n",
 | 
				
			||||||
		   substream->pcm->device, channel_id);
 | 
							   substream->pcm->device, channel_id);
 | 
				
			||||||
	*/
 | 
						*/
 | 
				
			||||||
	runtime->private_data = epcm;
 | 
						runtime->private_data = epcm;
 | 
				
			||||||
| 
						 | 
					@ -251,10 +251,10 @@ static int snd_p16v_pcm_open_capture_channel(struct snd_pcm_substream *substream
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	channel->use=1;
 | 
						channel->use=1;
 | 
				
			||||||
#if 0 /* debug */
 | 
					#if 0 /* debug */
 | 
				
			||||||
	snd_printk(KERN_DEBUG
 | 
						dev_dbg(emu->card->dev,
 | 
				
			||||||
		   "p16v: open channel_id=%d, channel=%p, use=0x%x\n",
 | 
							   "p16v: open channel_id=%d, channel=%p, use=0x%x\n",
 | 
				
			||||||
		   channel_id, channel, channel->use);
 | 
							   channel_id, channel, channel->use);
 | 
				
			||||||
	printk(KERN_DEBUG "open:channel_id=%d, chip=%p, channel=%p\n",
 | 
						dev_dbg(emu->card->dev, "open:channel_id=%d, chip=%p, channel=%p\n",
 | 
				
			||||||
	       channel_id, chip, channel);
 | 
						       channel_id, chip, channel);
 | 
				
			||||||
#endif /* debug */
 | 
					#endif /* debug */
 | 
				
			||||||
	/* channel->interrupt = snd_p16v_pcm_channel_interrupt; */
 | 
						/* channel->interrupt = snd_p16v_pcm_channel_interrupt; */
 | 
				
			||||||
| 
						 | 
					@ -349,15 +349,18 @@ static int snd_p16v_pcm_prepare_playback(struct snd_pcm_substream *substream)
 | 
				
			||||||
	u32 tmp;
 | 
						u32 tmp;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
#if 0 /* debug */
 | 
					#if 0 /* debug */
 | 
				
			||||||
	snd_printk(KERN_DEBUG "prepare:channel_number=%d, rate=%d, "
 | 
						dev_dbg(emu->card->dev,
 | 
				
			||||||
 | 
							"prepare:channel_number=%d, rate=%d, "
 | 
				
			||||||
		   "format=0x%x, channels=%d, buffer_size=%ld, "
 | 
							   "format=0x%x, channels=%d, buffer_size=%ld, "
 | 
				
			||||||
		   "period_size=%ld, periods=%u, frames_to_bytes=%d\n",
 | 
							   "period_size=%ld, periods=%u, frames_to_bytes=%d\n",
 | 
				
			||||||
		   channel, runtime->rate, runtime->format, runtime->channels,
 | 
							   channel, runtime->rate, runtime->format, runtime->channels,
 | 
				
			||||||
		   runtime->buffer_size, runtime->period_size,
 | 
							   runtime->buffer_size, runtime->period_size,
 | 
				
			||||||
		   runtime->periods, frames_to_bytes(runtime, 1));
 | 
							   runtime->periods, frames_to_bytes(runtime, 1));
 | 
				
			||||||
	snd_printk(KERN_DEBUG "dma_addr=%x, dma_area=%p, table_base=%p\n",
 | 
						dev_dbg(emu->card->dev,
 | 
				
			||||||
 | 
							"dma_addr=%x, dma_area=%p, table_base=%p\n",
 | 
				
			||||||
		   runtime->dma_addr, runtime->dma_area, table_base);
 | 
							   runtime->dma_addr, runtime->dma_area, table_base);
 | 
				
			||||||
	snd_printk(KERN_DEBUG "dma_addr=%x, dma_area=%p, dma_bytes(size)=%x\n",
 | 
						dev_dbg(emu->card->dev,
 | 
				
			||||||
 | 
							"dma_addr=%x, dma_area=%p, dma_bytes(size)=%x\n",
 | 
				
			||||||
		   emu->p16v_buffer.addr, emu->p16v_buffer.area,
 | 
							   emu->p16v_buffer.addr, emu->p16v_buffer.area,
 | 
				
			||||||
		   emu->p16v_buffer.bytes);
 | 
							   emu->p16v_buffer.bytes);
 | 
				
			||||||
#endif /* debug */
 | 
					#endif /* debug */
 | 
				
			||||||
| 
						 | 
					@ -405,7 +408,7 @@ static int snd_p16v_pcm_prepare_capture(struct snd_pcm_substream *substream)
 | 
				
			||||||
	u32 tmp;
 | 
						u32 tmp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
	printk(KERN_DEBUG "prepare capture:channel_number=%d, rate=%d, "
 | 
						dev_dbg(emu->card->dev, "prepare capture:channel_number=%d, rate=%d, "
 | 
				
			||||||
	       "format=0x%x, channels=%d, buffer_size=%ld, period_size=%ld, "
 | 
						       "format=0x%x, channels=%d, buffer_size=%ld, period_size=%ld, "
 | 
				
			||||||
	       "frames_to_bytes=%d\n",
 | 
						       "frames_to_bytes=%d\n",
 | 
				
			||||||
	       channel, runtime->rate, runtime->format, runtime->channels,
 | 
						       channel, runtime->rate, runtime->format, runtime->channels,
 | 
				
			||||||
| 
						 | 
					@ -491,13 +494,13 @@ static int snd_p16v_pcm_trigger_playback(struct snd_pcm_substream *substream,
 | 
				
			||||||
		runtime = s->runtime;
 | 
							runtime = s->runtime;
 | 
				
			||||||
		epcm = runtime->private_data;
 | 
							epcm = runtime->private_data;
 | 
				
			||||||
		channel = substream->pcm->device-emu->p16v_device_offset;
 | 
							channel = substream->pcm->device-emu->p16v_device_offset;
 | 
				
			||||||
		/* snd_printk(KERN_DEBUG "p16v channel=%d\n", channel); */
 | 
							/* dev_dbg(emu->card->dev, "p16v channel=%d\n", channel); */
 | 
				
			||||||
		epcm->running = running;
 | 
							epcm->running = running;
 | 
				
			||||||
		basic |= (0x1<<channel);
 | 
							basic |= (0x1<<channel);
 | 
				
			||||||
		inte |= (INTE2_PLAYBACK_CH_0_LOOP<<channel);
 | 
							inte |= (INTE2_PLAYBACK_CH_0_LOOP<<channel);
 | 
				
			||||||
                snd_pcm_trigger_done(s, substream);
 | 
					                snd_pcm_trigger_done(s, substream);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
	/* snd_printk(KERN_DEBUG "basic=0x%x, inte=0x%x\n", basic, inte); */
 | 
						/* dev_dbg(emu->card->dev, "basic=0x%x, inte=0x%x\n", basic, inte); */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	switch (cmd) {
 | 
						switch (cmd) {
 | 
				
			||||||
	case SNDRV_PCM_TRIGGER_START:
 | 
						case SNDRV_PCM_TRIGGER_START:
 | 
				
			||||||
| 
						 | 
					@ -588,10 +591,10 @@ snd_p16v_pcm_pointer_capture(struct snd_pcm_substream *substream)
 | 
				
			||||||
	ptr=ptr2;
 | 
						ptr=ptr2;
 | 
				
			||||||
	if (ptr >= runtime->buffer_size) {
 | 
						if (ptr >= runtime->buffer_size) {
 | 
				
			||||||
		ptr -= runtime->buffer_size;
 | 
							ptr -= runtime->buffer_size;
 | 
				
			||||||
		printk(KERN_WARNING "buffer capture limited!\n");
 | 
							dev_warn(emu->card->dev, "buffer capture limited!\n");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
	printk(KERN_DEBUG "ptr1 = 0x%lx, ptr2=0x%lx, ptr=0x%lx, "
 | 
						dev_dbg(emu->card->dev, "ptr1 = 0x%lx, ptr2=0x%lx, ptr=0x%lx, "
 | 
				
			||||||
	       "buffer_size = 0x%x, period_size = 0x%x, bits=%d, rate=%d\n",
 | 
						       "buffer_size = 0x%x, period_size = 0x%x, bits=%d, rate=%d\n",
 | 
				
			||||||
	       ptr1, ptr2, ptr, (int)runtime->buffer_size,
 | 
						       ptr1, ptr2, ptr, (int)runtime->buffer_size,
 | 
				
			||||||
	       (int)runtime->period_size, (int)runtime->frame_bits,
 | 
						       (int)runtime->period_size, (int)runtime->frame_bits,
 | 
				
			||||||
| 
						 | 
					@ -630,7 +633,7 @@ int snd_p16v_free(struct snd_emu10k1 *chip)
 | 
				
			||||||
	if (chip->p16v_buffer.area) {
 | 
						if (chip->p16v_buffer.area) {
 | 
				
			||||||
		snd_dma_free_pages(&chip->p16v_buffer);
 | 
							snd_dma_free_pages(&chip->p16v_buffer);
 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
		snd_printk(KERN_DEBUG "period lables free: %p\n",
 | 
							dev_dbg(chip->card->dev, "period lables free: %p\n",
 | 
				
			||||||
			   &chip->p16v_buffer);
 | 
								   &chip->p16v_buffer);
 | 
				
			||||||
		*/
 | 
							*/
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -644,7 +647,7 @@ int snd_p16v_pcm(struct snd_emu10k1 *emu, int device, struct snd_pcm **rpcm)
 | 
				
			||||||
	int err;
 | 
						int err;
 | 
				
			||||||
        int capture=1;
 | 
					        int capture=1;
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
	/* snd_printk(KERN_DEBUG "snd_p16v_pcm called. device=%d\n", device); */
 | 
						/* dev_dbg(emu->card->dev, "snd_p16v_pcm called. device=%d\n", device); */
 | 
				
			||||||
	emu->p16v_device_offset = device;
 | 
						emu->p16v_device_offset = device;
 | 
				
			||||||
	if (rpcm)
 | 
						if (rpcm)
 | 
				
			||||||
		*rpcm = NULL;
 | 
							*rpcm = NULL;
 | 
				
			||||||
| 
						 | 
					@ -672,7 +675,7 @@ int snd_p16v_pcm(struct snd_emu10k1 *emu, int device, struct snd_pcm **rpcm)
 | 
				
			||||||
							 ((65536 - 64) * 8), ((65536 - 64) * 8))) < 0) 
 | 
												 ((65536 - 64) * 8), ((65536 - 64) * 8))) < 0) 
 | 
				
			||||||
			return err;
 | 
								return err;
 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
		snd_printk(KERN_DEBUG
 | 
							dev_dbg(emu->card->dev,
 | 
				
			||||||
			   "preallocate playback substream: err=%d\n", err);
 | 
								   "preallocate playback substream: err=%d\n", err);
 | 
				
			||||||
		*/
 | 
							*/
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -686,7 +689,7 @@ int snd_p16v_pcm(struct snd_emu10k1 *emu, int device, struct snd_pcm **rpcm)
 | 
				
			||||||
	                                           65536 - 64, 65536 - 64)) < 0)
 | 
						                                           65536 - 64, 65536 - 64)) < 0)
 | 
				
			||||||
			return err;
 | 
								return err;
 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
		snd_printk(KERN_DEBUG
 | 
							dev_dbg(emu->card->dev,
 | 
				
			||||||
			   "preallocate capture substream: err=%d\n", err);
 | 
								   "preallocate capture substream: err=%d\n", err);
 | 
				
			||||||
		*/
 | 
							*/
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -55,7 +55,7 @@ static int voice_alloc(struct snd_emu10k1 *emu, int type, int number,
 | 
				
			||||||
	first_voice = last_voice = 0;
 | 
						first_voice = last_voice = 0;
 | 
				
			||||||
	for (i = emu->next_free_voice, j = 0; j < NUM_G ; i += number, j += number) {
 | 
						for (i = emu->next_free_voice, j = 0; j < NUM_G ; i += number, j += number) {
 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
		printk(KERN_DEBUG "i %d j %d next free %d!\n",
 | 
							dev_dbg(emu->card->dev, "i %d j %d next free %d!\n",
 | 
				
			||||||
		       i, j, emu->next_free_voice);
 | 
							       i, j, emu->next_free_voice);
 | 
				
			||||||
		*/
 | 
							*/
 | 
				
			||||||
		i %= NUM_G;
 | 
							i %= NUM_G;
 | 
				
			||||||
| 
						 | 
					@ -75,7 +75,7 @@ static int voice_alloc(struct snd_emu10k1 *emu, int type, int number,
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if (!skip) {
 | 
							if (!skip) {
 | 
				
			||||||
			/* printk(KERN_DEBUG "allocated voice %d\n", i); */
 | 
								/* dev_dbg(emu->card->dev, "allocated voice %d\n", i); */
 | 
				
			||||||
			first_voice = i;
 | 
								first_voice = i;
 | 
				
			||||||
			last_voice = (i + number) % NUM_G;
 | 
								last_voice = (i + number) % NUM_G;
 | 
				
			||||||
			emu->next_free_voice = last_voice;
 | 
								emu->next_free_voice = last_voice;
 | 
				
			||||||
| 
						 | 
					@ -89,7 +89,7 @@ static int voice_alloc(struct snd_emu10k1 *emu, int type, int number,
 | 
				
			||||||
	for (i = 0; i < number; i++) {
 | 
						for (i = 0; i < number; i++) {
 | 
				
			||||||
		voice = &emu->voices[(first_voice + i) % NUM_G];
 | 
							voice = &emu->voices[(first_voice + i) % NUM_G];
 | 
				
			||||||
		/*
 | 
							/*
 | 
				
			||||||
		printk(kERN_DEBUG "voice alloc - %i, %i of %i\n",
 | 
							dev_dbg(emu->card->dev, "voice alloc - %i, %i of %i\n",
 | 
				
			||||||
		       voice->number, idx-first_voice+1, number);
 | 
							       voice->number, idx-first_voice+1, number);
 | 
				
			||||||
		*/
 | 
							*/
 | 
				
			||||||
		voice->use = 1;
 | 
							voice->use = 1;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue