aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/emu10k1
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2005-11-07 11:09:02 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2005-11-07 11:09:02 -0500
commit8f0cb147b2fb12427bf6abef7fed2b604557a41e (patch)
treefb5ba437ee74b900fab9686c8c7df18abcd7640b /sound/pci/emu10k1
parent8e33ba49765484bc6de3a2f8143733713fa93bc1 (diff)
parentb00e8443c3eece823052d06ae1c7cb797ab0ddf5 (diff)
Merge master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa
Diffstat (limited to 'sound/pci/emu10k1')
-rw-r--r--sound/pci/emu10k1/emu10k1.c2
-rw-r--r--sound/pci/emu10k1/emu10k1_callback.c4
-rw-r--r--sound/pci/emu10k1/emu10k1x.c6
-rw-r--r--sound/pci/emu10k1/emufx.c59
-rw-r--r--sound/pci/emu10k1/emupcm.c3
-rw-r--r--sound/pci/emu10k1/irq.c2
-rw-r--r--sound/pci/emu10k1/memory.c6
-rw-r--r--sound/pci/emu10k1/p16v.c2
8 files changed, 56 insertions, 28 deletions
diff --git a/sound/pci/emu10k1/emu10k1.c b/sound/pci/emu10k1/emu10k1.c
index b0e00f0a7c2f..dd1ea9d3b81a 100644
--- a/sound/pci/emu10k1/emu10k1.c
+++ b/sound/pci/emu10k1/emu10k1.c
@@ -188,7 +188,7 @@ static int __devinit snd_card_emu10k1_probe(struct pci_dev *pci,
188 if (snd_seq_device_new(card, 1, SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH, 188 if (snd_seq_device_new(card, 1, SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH,
189 sizeof(snd_emu10k1_synth_arg_t), &wave) < 0 || 189 sizeof(snd_emu10k1_synth_arg_t), &wave) < 0 ||
190 wave == NULL) { 190 wave == NULL) {
191 snd_printk("can't initialize Emu10k1 wavetable synth\n"); 191 snd_printk(KERN_WARNING "can't initialize Emu10k1 wavetable synth\n");
192 } else { 192 } else {
193 snd_emu10k1_synth_arg_t *arg; 193 snd_emu10k1_synth_arg_t *arg;
194 arg = SNDRV_SEQ_DEVICE_ARGPTR(wave); 194 arg = SNDRV_SEQ_DEVICE_ARGPTR(wave);
diff --git a/sound/pci/emu10k1/emu10k1_callback.c b/sound/pci/emu10k1/emu10k1_callback.c
index 7cf2f908eed9..6589bf24abcd 100644
--- a/sound/pci/emu10k1/emu10k1_callback.c
+++ b/sound/pci/emu10k1/emu10k1_callback.c
@@ -241,7 +241,7 @@ lookup_voices(snd_emux_t *emu, emu10k1_t *hw, best_voice_t *best, int active_onl
241 else if (state == SNDRV_EMUX_ST_RELEASED || 241 else if (state == SNDRV_EMUX_ST_RELEASED ||
242 state == SNDRV_EMUX_ST_PENDING) { 242 state == SNDRV_EMUX_ST_PENDING) {
243 bp = best + V_RELEASED; 243 bp = best + V_RELEASED;
244#if 0 244#if 1
245 val = snd_emu10k1_ptr_read(hw, CVCF_CURRENTVOL, vp->ch); 245 val = snd_emu10k1_ptr_read(hw, CVCF_CURRENTVOL, vp->ch);
246 if (! val) 246 if (! val)
247 bp = best + V_OFF; 247 bp = best + V_OFF;
@@ -349,7 +349,7 @@ start_voice(snd_emux_voice_t *vp)
349 } 349 }
350 350
351 /* channel to be silent and idle */ 351 /* channel to be silent and idle */
352 snd_emu10k1_ptr_write(hw, DCYSUSV, ch, 0x0080); 352 snd_emu10k1_ptr_write(hw, DCYSUSV, ch, 0x0000);
353 snd_emu10k1_ptr_write(hw, VTFT, ch, 0x0000FFFF); 353 snd_emu10k1_ptr_write(hw, VTFT, ch, 0x0000FFFF);
354 snd_emu10k1_ptr_write(hw, CVCF, ch, 0x0000FFFF); 354 snd_emu10k1_ptr_write(hw, CVCF, ch, 0x0000FFFF);
355 snd_emu10k1_ptr_write(hw, PTRX, ch, 0); 355 snd_emu10k1_ptr_write(hw, PTRX, ch, 0);
diff --git a/sound/pci/emu10k1/emu10k1x.c b/sound/pci/emu10k1/emu10k1x.c
index ad15755a63c3..cbb689474e7d 100644
--- a/sound/pci/emu10k1/emu10k1x.c
+++ b/sound/pci/emu10k1/emu10k1x.c
@@ -759,10 +759,8 @@ static int snd_emu10k1x_free(emu10k1x_t *chip)
759 outl(HCFG_LOCKSOUNDCACHE, chip->port + HCFG); 759 outl(HCFG_LOCKSOUNDCACHE, chip->port + HCFG);
760 760
761 // release the i/o port 761 // release the i/o port
762 if (chip->res_port) { 762 release_and_free_resource(chip->res_port);
763 release_resource(chip->res_port); 763
764 kfree_nocheck(chip->res_port);
765 }
766 // release the irq 764 // release the irq
767 if (chip->irq >= 0) 765 if (chip->irq >= 0)
768 free_irq(chip->irq, (void *)chip); 766 free_irq(chip->irq, (void *)chip);
diff --git a/sound/pci/emu10k1/emufx.c b/sound/pci/emu10k1/emufx.c
index 646b5d972e6f..03e8c1678952 100644
--- a/sound/pci/emu10k1/emufx.c
+++ b/sound/pci/emu10k1/emufx.c
@@ -364,12 +364,18 @@ static int snd_emu10k1_gpr_ctl_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value
364 snd_emu10k1_ptr_write(emu, emu->gpr_base + ctl->gpr[i], 0, db_table[val]); 364 snd_emu10k1_ptr_write(emu, emu->gpr_base + ctl->gpr[i], 0, db_table[val]);
365 break; 365 break;
366 case EMU10K1_GPR_TRANSLATION_BASS: 366 case EMU10K1_GPR_TRANSLATION_BASS:
367 snd_runtime_check((ctl->count % 5) == 0 && (ctl->count / 5) == ctl->vcount, change = -EIO; goto __error); 367 if ((ctl->count % 5) != 0 || (ctl->count / 5) != ctl->vcount) {
368 change = -EIO;
369 goto __error;
370 }
368 for (j = 0; j < 5; j++) 371 for (j = 0; j < 5; j++)
369 snd_emu10k1_ptr_write(emu, emu->gpr_base + ctl->gpr[j * ctl->vcount + i], 0, bass_table[val][j]); 372 snd_emu10k1_ptr_write(emu, emu->gpr_base + ctl->gpr[j * ctl->vcount + i], 0, bass_table[val][j]);
370 break; 373 break;
371 case EMU10K1_GPR_TRANSLATION_TREBLE: 374 case EMU10K1_GPR_TRANSLATION_TREBLE:
372 snd_runtime_check((ctl->count % 5) == 0 && (ctl->count / 5) == ctl->vcount, change = -EIO; goto __error); 375 if ((ctl->count % 5) != 0 || (ctl->count / 5) != ctl->vcount) {
376 change = -EIO;
377 goto __error;
378 }
373 for (j = 0; j < 5; j++) 379 for (j = 0; j < 5; j++)
374 snd_emu10k1_ptr_write(emu, emu->gpr_base + ctl->gpr[j * ctl->vcount + i], 0, treble_table[val][j]); 380 snd_emu10k1_ptr_write(emu, emu->gpr_base + ctl->gpr[j * ctl->vcount + i], 0, treble_table[val][j]);
375 break; 381 break;
@@ -412,8 +418,6 @@ int snd_emu10k1_fx8010_register_irq_handler(emu10k1_t *emu,
412 snd_emu10k1_fx8010_irq_t *irq; 418 snd_emu10k1_fx8010_irq_t *irq;
413 unsigned long flags; 419 unsigned long flags;
414 420
415 snd_runtime_check(emu, return -EINVAL);
416 snd_runtime_check(handler, return -EINVAL);
417 irq = kmalloc(sizeof(*irq), GFP_ATOMIC); 421 irq = kmalloc(sizeof(*irq), GFP_ATOMIC);
418 if (irq == NULL) 422 if (irq == NULL)
419 return -ENOMEM; 423 return -ENOMEM;
@@ -442,7 +446,6 @@ int snd_emu10k1_fx8010_unregister_irq_handler(emu10k1_t *emu,
442 snd_emu10k1_fx8010_irq_t *tmp; 446 snd_emu10k1_fx8010_irq_t *tmp;
443 unsigned long flags; 447 unsigned long flags;
444 448
445 snd_runtime_check(irq, return -EINVAL);
446 spin_lock_irqsave(&emu->fx8010.irq_lock, flags); 449 spin_lock_irqsave(&emu->fx8010.irq_lock, flags);
447 if ((tmp = emu->fx8010.irq_handlers) == irq) { 450 if ((tmp = emu->fx8010.irq_handlers) == irq) {
448 emu->fx8010.irq_handlers = tmp->next; 451 emu->fx8010.irq_handlers = tmp->next;
@@ -717,9 +720,15 @@ static int snd_emu10k1_add_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *icode
717 err = -EFAULT; 720 err = -EFAULT;
718 goto __error; 721 goto __error;
719 } 722 }
720 snd_runtime_check(gctl->id.iface == SNDRV_CTL_ELEM_IFACE_MIXER || 723 if (gctl->id.iface != SNDRV_CTL_ELEM_IFACE_MIXER &&
721 gctl->id.iface == SNDRV_CTL_ELEM_IFACE_PCM, err = -EINVAL; goto __error); 724 gctl->id.iface != SNDRV_CTL_ELEM_IFACE_PCM) {
722 snd_runtime_check(gctl->id.name[0] != '\0', err = -EINVAL; goto __error); 725 err = -EINVAL;
726 goto __error;
727 }
728 if (! gctl->id.name[0]) {
729 err = -EINVAL;
730 goto __error;
731 }
723 ctl = snd_emu10k1_look_for_ctl(emu, &gctl->id); 732 ctl = snd_emu10k1_look_for_ctl(emu, &gctl->id);
724 memset(&knew, 0, sizeof(knew)); 733 memset(&knew, 0, sizeof(knew));
725 knew.iface = gctl->id.iface; 734 knew.iface = gctl->id.iface;
@@ -783,7 +792,8 @@ static int snd_emu10k1_del_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *icode
783 792
784 for (i = 0, _id = icode->gpr_del_controls; 793 for (i = 0, _id = icode->gpr_del_controls;
785 i < icode->gpr_del_control_count; i++, _id++) { 794 i < icode->gpr_del_control_count; i++, _id++) {
786 snd_runtime_check(copy_from_user(&id, _id, sizeof(id)) == 0, return -EFAULT); 795 if (copy_from_user(&id, _id, sizeof(id)))
796 return -EFAULT;
787 down_write(&card->controls_rwsem); 797 down_write(&card->controls_rwsem);
788 ctl = snd_emu10k1_look_for_ctl(emu, &id); 798 ctl = snd_emu10k1_look_for_ctl(emu, &id);
789 if (ctl) 799 if (ctl)
@@ -964,8 +974,8 @@ static int snd_emu10k1_ipcm_peek(emu10k1_t *emu, emu10k1_fx8010_pcm_t *ipcm)
964 return err; 974 return err;
965} 975}
966 976
967#define SND_EMU10K1_GPR_CONTROLS 41 977#define SND_EMU10K1_GPR_CONTROLS 44
968#define SND_EMU10K1_INPUTS 10 978#define SND_EMU10K1_INPUTS 12
969#define SND_EMU10K1_PLAYBACK_CHANNELS 8 979#define SND_EMU10K1_PLAYBACK_CHANNELS 8
970#define SND_EMU10K1_CAPTURE_CHANNELS 4 980#define SND_EMU10K1_CAPTURE_CHANNELS 4
971 981
@@ -1382,7 +1392,7 @@ A_OP(icode, &ptr, iMAC0, A_GPR(var), A_GPR(var), A_GPR(vol), A_EXTIN(input))
1382 A_SWITCH(icode, &ptr, tmp + 1, playback + SND_EMU10K1_PLAYBACK_CHANNELS + z, tmp + 1); 1392 A_SWITCH(icode, &ptr, tmp + 1, playback + SND_EMU10K1_PLAYBACK_CHANNELS + z, tmp + 1);
1383 if ((z==1) && (emu->card_capabilities->spdif_bug)) { 1393 if ((z==1) && (emu->card_capabilities->spdif_bug)) {
1384 /* Due to a SPDIF output bug on some Audigy cards, this code delays the Right channel by 1 sample */ 1394 /* Due to a SPDIF output bug on some Audigy cards, this code delays the Right channel by 1 sample */
1385 snd_printk("Installing spdif_bug patch: %s\n", emu->card_capabilities->name); 1395 snd_printk(KERN_INFO "Installing spdif_bug patch: %s\n", emu->card_capabilities->name);
1386 A_OP(icode, &ptr, iACC3, A_EXTOUT(A_EXTOUT_FRONT_L + z), A_GPR(gpr - 3), A_C_00000000, A_C_00000000); 1396 A_OP(icode, &ptr, iACC3, A_EXTOUT(A_EXTOUT_FRONT_L + z), A_GPR(gpr - 3), A_C_00000000, A_C_00000000);
1387 A_OP(icode, &ptr, iACC3, A_GPR(gpr - 3), A_GPR(tmp + 0), A_GPR(tmp + 1), A_C_00000000); 1397 A_OP(icode, &ptr, iACC3, A_GPR(gpr - 3), A_GPR(tmp + 0), A_GPR(tmp + 1), A_C_00000000);
1388 } else { 1398 } else {
@@ -1527,7 +1537,7 @@ static int __devinit _snd_emu10k1_init_efx(emu10k1_t *emu)
1527 1537
1528 strcpy(icode->name, "SB Live! FX8010 code for ALSA v1.2 by Jaroslav Kysela"); 1538 strcpy(icode->name, "SB Live! FX8010 code for ALSA v1.2 by Jaroslav Kysela");
1529 ptr = 0; i = 0; 1539 ptr = 0; i = 0;
1530 /* we have 10 inputs */ 1540 /* we have 12 inputs */
1531 playback = SND_EMU10K1_INPUTS; 1541 playback = SND_EMU10K1_INPUTS;
1532 /* we have 6 playback channels and tone control doubles */ 1542 /* we have 6 playback channels and tone control doubles */
1533 capture = playback + (SND_EMU10K1_PLAYBACK_CHANNELS * 2); 1543 capture = playback + (SND_EMU10K1_PLAYBACK_CHANNELS * 2);
@@ -1551,6 +1561,8 @@ static int __devinit _snd_emu10k1_init_efx(emu10k1_t *emu)
1551 OP(icode, &ptr, iMACINT0, GPR(7), C_00000000, FXBUS(FXBUS_PCM_LFE), C_00000004); 1561 OP(icode, &ptr, iMACINT0, GPR(7), C_00000000, FXBUS(FXBUS_PCM_LFE), C_00000004);
1552 OP(icode, &ptr, iMACINT0, GPR(8), C_00000000, C_00000000, C_00000000); /* S/PDIF left */ 1562 OP(icode, &ptr, iMACINT0, GPR(8), C_00000000, C_00000000, C_00000000); /* S/PDIF left */
1553 OP(icode, &ptr, iMACINT0, GPR(9), C_00000000, C_00000000, C_00000000); /* S/PDIF right */ 1563 OP(icode, &ptr, iMACINT0, GPR(9), C_00000000, C_00000000, C_00000000); /* S/PDIF right */
1564 OP(icode, &ptr, iMACINT0, GPR(10), C_00000000, FXBUS(FXBUS_PCM_LEFT_FRONT), C_00000004);
1565 OP(icode, &ptr, iMACINT0, GPR(11), C_00000000, FXBUS(FXBUS_PCM_RIGHT_FRONT), C_00000004);
1554 1566
1555 /* Raw S/PDIF PCM */ 1567 /* Raw S/PDIF PCM */
1556 ipcm->substream = 0; 1568 ipcm->substream = 0;
@@ -1697,6 +1709,21 @@ static int __devinit _snd_emu10k1_init_efx(emu10k1_t *emu)
1697 VOLUME_ADD(icode, &ptr, playback + 5, 7, gpr); 1709 VOLUME_ADD(icode, &ptr, playback + 5, 7, gpr);
1698 snd_emu10k1_init_mono_control(controls + i++, "LFE Digital Playback Volume", gpr++, 100); 1710 snd_emu10k1_init_mono_control(controls + i++, "LFE Digital Playback Volume", gpr++, 100);
1699 1711
1712 /* Front Playback Volume */
1713 for (z = 0; z < 2; z++)
1714 VOLUME_ADD(icode, &ptr, playback + z, 10 + z, gpr + z);
1715 snd_emu10k1_init_stereo_control(controls + i++, "Front Playback Volume", gpr, 100);
1716 gpr += 2;
1717
1718 /* Front Capture Volume + Switch */
1719 for (z = 0; z < 2; z++) {
1720 SWITCH(icode, &ptr, tmp + 0, 10 + z, gpr + 2);
1721 VOLUME_ADD(icode, &ptr, capture + z, tmp + 0, gpr + z);
1722 }
1723 snd_emu10k1_init_stereo_control(controls + i++, "Front Capture Volume", gpr, 0);
1724 snd_emu10k1_init_mono_onoff_control(controls + i++, "Front Capture Switch", gpr + 2, 0);
1725 gpr += 3;
1726
1700 /* 1727 /*
1701 * Process inputs 1728 * Process inputs
1702 */ 1729 */
@@ -2058,14 +2085,16 @@ void snd_emu10k1_free_efx(emu10k1_t *emu)
2058#if 0 // FIXME: who use them? 2085#if 0 // FIXME: who use them?
2059int snd_emu10k1_fx8010_tone_control_activate(emu10k1_t *emu, int output) 2086int snd_emu10k1_fx8010_tone_control_activate(emu10k1_t *emu, int output)
2060{ 2087{
2061 snd_runtime_check(output >= 0 && output < 6, return -EINVAL); 2088 if (output < 0 || output >= 6)
2089 return -EINVAL;
2062 snd_emu10k1_ptr_write(emu, emu->gpr_base + 0x94 + output, 0, 1); 2090 snd_emu10k1_ptr_write(emu, emu->gpr_base + 0x94 + output, 0, 1);
2063 return 0; 2091 return 0;
2064} 2092}
2065 2093
2066int snd_emu10k1_fx8010_tone_control_deactivate(emu10k1_t *emu, int output) 2094int snd_emu10k1_fx8010_tone_control_deactivate(emu10k1_t *emu, int output)
2067{ 2095{
2068 snd_runtime_check(output >= 0 && output < 6, return -EINVAL); 2096 if (output < 0 || output >= 6)
2097 return -EINVAL;
2069 snd_emu10k1_ptr_write(emu, emu->gpr_base + 0x94 + output, 0, 0); 2098 snd_emu10k1_ptr_write(emu, emu->gpr_base + 0x94 + output, 0, 0);
2070 return 0; 2099 return 0;
2071} 2100}
diff --git a/sound/pci/emu10k1/emupcm.c b/sound/pci/emu10k1/emupcm.c
index 66ba27afe962..bf7490dae09b 100644
--- a/sound/pci/emu10k1/emupcm.c
+++ b/sound/pci/emu10k1/emupcm.c
@@ -965,7 +965,8 @@ static void snd_emu10k1_pcm_mixer_notify1(emu10k1_t *emu, snd_kcontrol_t *kctl,
965{ 965{
966 snd_ctl_elem_id_t id; 966 snd_ctl_elem_id_t id;
967 967
968 snd_runtime_check(kctl != NULL, return); 968 if (! kctl)
969 return;
969 if (activate) 970 if (activate)
970 kctl->vd[idx].access &= ~SNDRV_CTL_ELEM_ACCESS_INACTIVE; 971 kctl->vd[idx].access &= ~SNDRV_CTL_ELEM_ACCESS_INACTIVE;
971 else 972 else
diff --git a/sound/pci/emu10k1/irq.c b/sound/pci/emu10k1/irq.c
index cd8460d56752..594ea063b140 100644
--- a/sound/pci/emu10k1/irq.c
+++ b/sound/pci/emu10k1/irq.c
@@ -41,7 +41,7 @@ irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs)
41 orig_status = status; 41 orig_status = status;
42 handled = 1; 42 handled = 1;
43 if (status & IPR_PCIERROR) { 43 if (status & IPR_PCIERROR) {
44 snd_printk("interrupt: PCI error\n"); 44 snd_printk(KERN_ERR "interrupt: PCI error\n");
45 snd_emu10k1_intr_disable(emu, INTE_PCIERRORENABLE); 45 snd_emu10k1_intr_disable(emu, INTE_PCIERRORENABLE);
46 status &= ~IPR_PCIERROR; 46 status &= ~IPR_PCIERROR;
47 } 47 }
diff --git a/sound/pci/emu10k1/memory.c b/sound/pci/emu10k1/memory.c
index 6afeaeab3e13..d42e4aeaa73a 100644
--- a/sound/pci/emu10k1/memory.c
+++ b/sound/pci/emu10k1/memory.c
@@ -232,11 +232,11 @@ __found_pages:
232static int is_valid_page(emu10k1_t *emu, dma_addr_t addr) 232static int is_valid_page(emu10k1_t *emu, dma_addr_t addr)
233{ 233{
234 if (addr & ~emu->dma_mask) { 234 if (addr & ~emu->dma_mask) {
235 snd_printk("max memory size is 0x%lx (addr = 0x%lx)!!\n", emu->dma_mask, (unsigned long)addr); 235 snd_printk(KERN_ERR "max memory size is 0x%lx (addr = 0x%lx)!!\n", emu->dma_mask, (unsigned long)addr);
236 return 0; 236 return 0;
237 } 237 }
238 if (addr & (EMUPAGESIZE-1)) { 238 if (addr & (EMUPAGESIZE-1)) {
239 snd_printk("page is not aligned\n"); 239 snd_printk(KERN_ERR "page is not aligned\n");
240 return 0; 240 return 0;
241 } 241 }
242 return 1; 242 return 1;
@@ -501,7 +501,7 @@ static inline void *offset_ptr(emu10k1_t *emu, int page, int offset)
501 snd_assert(page >= 0 && page < emu->max_cache_pages, return NULL); 501 snd_assert(page >= 0 && page < emu->max_cache_pages, return NULL);
502 ptr = emu->page_ptr_table[page]; 502 ptr = emu->page_ptr_table[page];
503 if (! ptr) { 503 if (! ptr) {
504 printk("emu10k1: access to NULL ptr: page = %d\n", page); 504 printk(KERN_ERR "emu10k1: access to NULL ptr: page = %d\n", page);
505 return NULL; 505 return NULL;
506 } 506 }
507 ptr += offset & (PAGE_SIZE - 1); 507 ptr += offset & (PAGE_SIZE - 1);
diff --git a/sound/pci/emu10k1/p16v.c b/sound/pci/emu10k1/p16v.c
index d59c7f345ad6..e27ebb9bb74a 100644
--- a/sound/pci/emu10k1/p16v.c
+++ b/sound/pci/emu10k1/p16v.c
@@ -546,7 +546,7 @@ snd_p16v_pcm_pointer_capture(snd_pcm_substream_t *substream)
546 ptr=ptr2; 546 ptr=ptr2;
547 if (ptr >= runtime->buffer_size) { 547 if (ptr >= runtime->buffer_size) {
548 ptr -= runtime->buffer_size; 548 ptr -= runtime->buffer_size;
549 printk("buffer capture limited!\n"); 549 printk(KERN_WARNING "buffer capture limited!\n");
550 } 550 }
551 //printk("ptr1 = 0x%lx, ptr2=0x%lx, ptr=0x%lx, buffer_size = 0x%x, period_size = 0x%x, bits=%d, rate=%d\n", ptr1, ptr2, ptr, (int)runtime->buffer_size, (int)runtime->period_size, (int)runtime->frame_bits, (int)runtime->rate); 551 //printk("ptr1 = 0x%lx, ptr2=0x%lx, ptr=0x%lx, buffer_size = 0x%x, period_size = 0x%x, bits=%d, rate=%d\n", ptr1, ptr2, ptr, (int)runtime->buffer_size, (int)runtime->period_size, (int)runtime->frame_bits, (int)runtime->rate);
552 552