aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/ctxfi
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2009-05-14 09:19:30 -0400
committerTakashi Iwai <tiwai@suse.de>2009-05-14 09:19:30 -0400
commitb3e0afe61e8271a8d082478752a67e5c279c8f23 (patch)
tree697242a45d03482983caf8ba2d9c00d6e7b9e33a /sound/pci/ctxfi
parent35b053becb64eba13f3ea5c8c51023997169ff34 (diff)
ALSA: ctxfi - Add prefix to debug prints
Added ctxfi: prefix to each debug print. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/ctxfi')
-rw-r--r--sound/pci/ctxfi/ctamixer.c4
-rw-r--r--sound/pci/ctxfi/ctatc.c16
-rw-r--r--sound/pci/ctxfi/cthw20k2.c17
-rw-r--r--sound/pci/ctxfi/ctmixer.c6
-rw-r--r--sound/pci/ctxfi/ctpcm.c6
-rw-r--r--sound/pci/ctxfi/ctresource.c20
-rw-r--r--sound/pci/ctxfi/ctsrc.c4
-rw-r--r--sound/pci/ctxfi/ctvmem.c7
-rw-r--r--sound/pci/ctxfi/xfi.c15
9 files changed, 52 insertions, 43 deletions
diff --git a/sound/pci/ctxfi/ctamixer.c b/sound/pci/ctxfi/ctamixer.c
index 119791aa70eb..859e996ad728 100644
--- a/sound/pci/ctxfi/ctamixer.c
+++ b/sound/pci/ctxfi/ctamixer.c
@@ -259,7 +259,7 @@ static int get_amixer_rsc(struct amixer_mgr *mgr,
259 } 259 }
260 spin_unlock_irqrestore(&mgr->mgr_lock, flags); 260 spin_unlock_irqrestore(&mgr->mgr_lock, flags);
261 if (err) { 261 if (err) {
262 printk(KERN_ERR "Can't meet AMIXER resource request!\n"); 262 printk(KERN_ERR "ctxfi: Can't meet AMIXER resource request!\n");
263 goto error; 263 goto error;
264 } 264 }
265 265
@@ -413,7 +413,7 @@ static int get_sum_rsc(struct sum_mgr *mgr,
413 } 413 }
414 spin_unlock_irqrestore(&mgr->mgr_lock, flags); 414 spin_unlock_irqrestore(&mgr->mgr_lock, flags);
415 if (err) { 415 if (err) {
416 printk(KERN_ERR "Can't meet SUM resource request!\n"); 416 printk(KERN_ERR "ctxfi: Can't meet SUM resource request!\n");
417 goto error; 417 goto error;
418 } 418 }
419 419
diff --git a/sound/pci/ctxfi/ctatc.c b/sound/pci/ctxfi/ctatc.c
index f52345002334..ead104ea1e35 100644
--- a/sound/pci/ctxfi/ctatc.c
+++ b/sound/pci/ctxfi/ctatc.c
@@ -191,7 +191,7 @@ static unsigned int convert_format(snd_pcm_format_t snd_format)
191 case SNDRV_PCM_FORMAT_S32_LE: 191 case SNDRV_PCM_FORMAT_S32_LE:
192 return SRC_SF_S32; 192 return SRC_SF_S32;
193 default: 193 default:
194 printk(KERN_ERR "not recognized snd format is %d \n", 194 printk(KERN_ERR "ctxfi: not recognized snd format is %d \n",
195 snd_format); 195 snd_format);
196 return SRC_SF_S16; 196 return SRC_SF_S16;
197 } 197 }
@@ -1254,7 +1254,8 @@ static int ct_create_alsa_devs(struct ct_atc *atc)
1254 err = alsa_dev_funcs[i].create(atc, i, 1254 err = alsa_dev_funcs[i].create(atc, i,
1255 alsa_dev_funcs[i].public_name); 1255 alsa_dev_funcs[i].public_name);
1256 if (err) { 1256 if (err) {
1257 printk(KERN_ERR "Creating alsa device %d failed!\n", i); 1257 printk(KERN_ERR "ctxfi: "
1258 "Creating alsa device %d failed!\n", i);
1258 return err; 1259 return err;
1259 } 1260 }
1260 } 1261 }
@@ -1289,7 +1290,8 @@ static int atc_create_hw_devs(struct ct_atc *atc)
1289 1290
1290 err = rsc_mgr_funcs[i].create(atc->hw, &atc->rsc_mgrs[i]); 1291 err = rsc_mgr_funcs[i].create(atc->hw, &atc->rsc_mgrs[i]);
1291 if (err) { 1292 if (err) {
1292 printk(KERN_ERR "Failed to create rsc_mgr %d!!!\n", i); 1293 printk(KERN_ERR "ctxfi: "
1294 "Failed to create rsc_mgr %d!!!\n", i);
1293 return err; 1295 return err;
1294 } 1296 }
1295 } 1297 }
@@ -1333,7 +1335,7 @@ static int atc_get_resources(struct ct_atc *atc)
1333 err = daio_mgr->get_daio(daio_mgr, &da_desc, 1335 err = daio_mgr->get_daio(daio_mgr, &da_desc,
1334 (struct daio **)&atc->daios[i]); 1336 (struct daio **)&atc->daios[i]);
1335 if (err) { 1337 if (err) {
1336 printk(KERN_ERR "Failed to get DAIO " 1338 printk(KERN_ERR "ctxfi: Failed to get DAIO "
1337 "resource %d!!!\n", i); 1339 "resource %d!!!\n", i);
1338 return err; 1340 return err;
1339 } 1341 }
@@ -1349,7 +1351,7 @@ static int atc_get_resources(struct ct_atc *atc)
1349 err = daio_mgr->get_daio(daio_mgr, &da_desc, 1351 err = daio_mgr->get_daio(daio_mgr, &da_desc,
1350 (struct daio **)&atc->daios[i]); 1352 (struct daio **)&atc->daios[i]);
1351 if (err) { 1353 if (err) {
1352 printk(KERN_ERR "Failed to get S/PDIF-in resource!!!\n"); 1354 printk(KERN_ERR "ctxfi: Failed to get S/PDIF-in resource!!!\n");
1353 return err; 1355 return err;
1354 } 1356 }
1355 atc->n_daio++; 1357 atc->n_daio++;
@@ -1400,7 +1402,7 @@ static int atc_get_resources(struct ct_atc *atc)
1400 1402
1401 err = ct_mixer_create(atc, (struct ct_mixer **)&atc->mixer); 1403 err = ct_mixer_create(atc, (struct ct_mixer **)&atc->mixer);
1402 if (err) { 1404 if (err) {
1403 printk(KERN_ERR "Failed to create mixer obj!!!\n"); 1405 printk(KERN_ERR "ctxfi: Failed to create mixer obj!!!\n");
1404 return err; 1406 return err;
1405 } 1407 }
1406 1408
@@ -1600,7 +1602,7 @@ int ct_atc_create(struct snd_card *card, struct pci_dev *pci,
1600 1602
1601error1: 1603error1:
1602 ct_atc_destroy(atc); 1604 ct_atc_destroy(atc);
1603 printk(KERN_ERR "Something wrong!!!\n"); 1605 printk(KERN_ERR "ctxfi: Something wrong!!!\n");
1604 return err; 1606 return err;
1605} 1607}
1606 1608
diff --git a/sound/pci/ctxfi/cthw20k2.c b/sound/pci/ctxfi/cthw20k2.c
index 9c2d38b4faa1..7c24c2ca96bd 100644
--- a/sound/pci/ctxfi/cthw20k2.c
+++ b/sound/pci/ctxfi/cthw20k2.c
@@ -1144,7 +1144,7 @@ static int hw_daio_init(struct hw *hw, const struct daio_conf *info)
1144 hw_write_20kx(hw, AUDIO_IO_TX_BLRCLK, 0x11111111); 1144 hw_write_20kx(hw, AUDIO_IO_TX_BLRCLK, 0x11111111);
1145 hw_write_20kx(hw, AUDIO_IO_RX_BLRCLK, 0); 1145 hw_write_20kx(hw, AUDIO_IO_RX_BLRCLK, 0);
1146 } else { 1146 } else {
1147 printk(KERN_ALERT "ERROR!!! Invalid sampling rate!!!\n"); 1147 printk(KERN_ALERT "ctxfi: ERROR!!! Invalid sampling rate!!!\n");
1148 return -EINVAL; 1148 return -EINVAL;
1149 } 1149 }
1150 1150
@@ -1197,7 +1197,8 @@ static int hw_trn_init(struct hw *hw, const struct trn_conf *info)
1197 1197
1198 /* Set up device page table */ 1198 /* Set up device page table */
1199 if ((~0UL) == info->vm_pgt_phys) { 1199 if ((~0UL) == info->vm_pgt_phys) {
1200 printk(KERN_ALERT "Wrong device page table page address!!!\n"); 1200 printk(KERN_ALERT "ctxfi: "
1201 "Wrong device page table page address!!!\n");
1201 return -1; 1202 return -1;
1202 } 1203 }
1203 1204
@@ -1314,7 +1315,7 @@ static int hw_pll_init(struct hw *hw, unsigned int rsr)
1314 break; 1315 break;
1315 } 1316 }
1316 if (i >= 1000) { 1317 if (i >= 1000) {
1317 printk(KERN_ALERT "PLL initialization failed!!!\n"); 1318 printk(KERN_ALERT "ctxfi: PLL initialization failed!!!\n");
1318 return -EBUSY; 1319 return -EBUSY;
1319 } 1320 }
1320 1321
@@ -1338,7 +1339,7 @@ static int hw_auto_init(struct hw *hw)
1338 break; 1339 break;
1339 } 1340 }
1340 if (!get_field(gctl, GCTL_AID)) { 1341 if (!get_field(gctl, GCTL_AID)) {
1341 printk(KERN_ALERT "Card Auto-init failed!!!\n"); 1342 printk(KERN_ALERT "ctxfi: Card Auto-init failed!!!\n");
1342 return -EBUSY; 1343 return -EBUSY;
1343 } 1344 }
1344 1345
@@ -1762,7 +1763,7 @@ static int hw_adc_init(struct hw *hw, const struct adc_conf *info)
1762 /* Initialize I2C */ 1763 /* Initialize I2C */
1763 err = I2CInit(hw, 0x1A, 1, 1); 1764 err = I2CInit(hw, 0x1A, 1, 1);
1764 if (err < 0) { 1765 if (err < 0) {
1765 printk(KERN_ALERT "Failure to acquire I2C!!!\n"); 1766 printk(KERN_ALERT "ctxfi: Failure to acquire I2C!!!\n");
1766 goto error; 1767 goto error;
1767 } 1768 }
1768 1769
@@ -1782,7 +1783,7 @@ static int hw_adc_init(struct hw *hw, const struct adc_conf *info)
1782 I2CWrite(hw, MAKE_WM8775_ADDR(WM8775_MMC, 0x0A), 1783 I2CWrite(hw, MAKE_WM8775_ADDR(WM8775_MMC, 0x0A),
1783 MAKE_WM8775_DATA(0x0A)); 1784 MAKE_WM8775_DATA(0x0A));
1784 } else { 1785 } else {
1785 printk(KERN_ALERT "Invalid master sampling " 1786 printk(KERN_ALERT "ctxfi: Invalid master sampling "
1786 "rate (msr %d)!!!\n", info->msr); 1787 "rate (msr %d)!!!\n", info->msr);
1787 err = -EINVAL; 1788 err = -EINVAL;
1788 goto error; 1789 goto error;
@@ -1820,7 +1821,7 @@ static int hw_adc_init(struct hw *hw, const struct adc_conf *info)
1820 I2CWrite(hw, MAKE_WM8775_ADDR(WM8775_AADCR, 0xCF), 1821 I2CWrite(hw, MAKE_WM8775_ADDR(WM8775_AADCR, 0xCF),
1821 MAKE_WM8775_DATA(0xCF)); /* No boost */ 1822 MAKE_WM8775_DATA(0xCF)); /* No boost */
1822 } else { 1823 } else {
1823 printk(KERN_ALERT "ERROR!!! Invalid input mux!!!\n"); 1824 printk(KERN_ALERT "ctxfi: ERROR!!! Invalid input mux!!!\n");
1824 err = -EINVAL; 1825 err = -EINVAL;
1825 goto error; 1826 goto error;
1826 } 1827 }
@@ -1852,7 +1853,7 @@ static int hw_card_start(struct hw *hw)
1852 dma_mask = CT_XFI_DMA_MASK; 1853 dma_mask = CT_XFI_DMA_MASK;
1853 if (pci_set_dma_mask(pci, dma_mask) < 0 || 1854 if (pci_set_dma_mask(pci, dma_mask) < 0 ||
1854 pci_set_consistent_dma_mask(pci, dma_mask) < 0) { 1855 pci_set_consistent_dma_mask(pci, dma_mask) < 0) {
1855 printk(KERN_ERR "architecture does not support PCI " 1856 printk(KERN_ERR "ctxfi: architecture does not support PCI "
1856 "busmaster DMA with mask 0x%x\n", dma_mask); 1857 "busmaster DMA with mask 0x%x\n", dma_mask);
1857 err = -ENXIO; 1858 err = -ENXIO;
1858 goto error1; 1859 goto error1;
diff --git a/sound/pci/ctxfi/ctmixer.c b/sound/pci/ctxfi/ctmixer.c
index c80d692952f9..b7950768c3f8 100644
--- a/sound/pci/ctxfi/ctmixer.c
+++ b/sound/pci/ctxfi/ctmixer.c
@@ -760,7 +760,7 @@ static int ct_mixer_get_resources(struct ct_mixer *mixer)
760 for (i = 0; i < (NUM_CT_SUMS * CHN_NUM); i++) { 760 for (i = 0; i < (NUM_CT_SUMS * CHN_NUM); i++) {
761 err = sum_mgr->get_sum(sum_mgr, &sum_desc, &sum); 761 err = sum_mgr->get_sum(sum_mgr, &sum_desc, &sum);
762 if (err) { 762 if (err) {
763 printk(KERN_ERR "Failed to get sum resources for " 763 printk(KERN_ERR "ctxfi:Failed to get sum resources for "
764 "front output!\n"); 764 "front output!\n");
765 break; 765 break;
766 } 766 }
@@ -775,8 +775,8 @@ static int ct_mixer_get_resources(struct ct_mixer *mixer)
775 for (i = 0; i < (NUM_CT_AMIXERS * CHN_NUM); i++) { 775 for (i = 0; i < (NUM_CT_AMIXERS * CHN_NUM); i++) {
776 err = amixer_mgr->get_amixer(amixer_mgr, &am_desc, &amixer); 776 err = amixer_mgr->get_amixer(amixer_mgr, &am_desc, &amixer);
777 if (err) { 777 if (err) {
778 printk(KERN_ERR "Failed to get amixer resources for " 778 printk(KERN_ERR "ctxfi:Failed to get amixer resources "
779 "mixer obj!\n"); 779 "for mixer obj!\n");
780 break; 780 break;
781 } 781 }
782 mixer->amixers[i] = amixer; 782 mixer->amixers[i] = amixer;
diff --git a/sound/pci/ctxfi/ctpcm.c b/sound/pci/ctxfi/ctpcm.c
index 73d4fdbbb9f4..a64cb0ed8759 100644
--- a/sound/pci/ctxfi/ctpcm.c
+++ b/sound/pci/ctxfi/ctpcm.c
@@ -284,7 +284,7 @@ static int ct_pcm_playback_prepare(struct snd_pcm_substream *substream)
284 err = atc->pcm_playback_prepare(atc, apcm); 284 err = atc->pcm_playback_prepare(atc, apcm);
285 285
286 if (err < 0) { 286 if (err < 0) {
287 printk(KERN_ERR "Preparing pcm playback failed!!!\n"); 287 printk(KERN_ERR "ctxfi: Preparing pcm playback failed!!!\n");
288 return err; 288 return err;
289 } 289 }
290 290
@@ -389,7 +389,7 @@ static int ct_pcm_capture_prepare(struct snd_pcm_substream *substream)
389 389
390 err = atc->pcm_capture_prepare(atc, apcm); 390 err = atc->pcm_capture_prepare(atc, apcm);
391 if (err < 0) { 391 if (err < 0) {
392 printk(KERN_ERR "Preparing pcm capture failed!!!\n"); 392 printk(KERN_ERR "ctxfi: Preparing pcm capture failed!!!\n");
393 return err; 393 return err;
394 } 394 }
395 395
@@ -477,7 +477,7 @@ int ct_alsa_pcm_create(struct ct_atc *atc,
477 err = snd_pcm_new(atc->card, name, device, 477 err = snd_pcm_new(atc->card, name, device,
478 playback_count, capture_count, &pcm); 478 playback_count, capture_count, &pcm);
479 if (err < 0) { 479 if (err < 0) {
480 printk(KERN_ERR "snd_pcm_new failed!! Err=%d\n", err); 480 printk(KERN_ERR "ctxfi: snd_pcm_new failed!! Err=%d\n", err);
481 return err; 481 return err;
482 } 482 }
483 483
diff --git a/sound/pci/ctxfi/ctresource.c b/sound/pci/ctxfi/ctresource.c
index 414fc23267cd..da21a717a07a 100644
--- a/sound/pci/ctxfi/ctresource.c
+++ b/sound/pci/ctxfi/ctresource.c
@@ -162,12 +162,14 @@ int rsc_init(struct rsc *rsc, u32 idx, enum RSCTYP type, u32 msr, void *hw)
162 case DAIO: 162 case DAIO:
163 break; 163 break;
164 default: 164 default:
165 printk(KERN_ERR "Invalid resource type value %d!\n", type); 165 printk(KERN_ERR
166 "ctxfi: Invalid resource type value %d!\n", type);
166 return -EINVAL; 167 return -EINVAL;
167 } 168 }
168 169
169 if (err) { 170 if (err) {
170 printk(KERN_ERR "Failed to get resource control block!\n"); 171 printk(KERN_ERR
172 "ctxfi: Failed to get resource control block!\n");
171 return err; 173 return err;
172 } 174 }
173 175
@@ -190,8 +192,8 @@ int rsc_uninit(struct rsc *rsc)
190 case DAIO: 192 case DAIO:
191 break; 193 break;
192 default: 194 default:
193 printk(KERN_ERR "Invalid resource type value %d!\n", 195 printk(KERN_ERR "ctxfi: "
194 rsc->type); 196 "Invalid resource type value %d!\n", rsc->type);
195 break; 197 break;
196 } 198 }
197 199
@@ -233,13 +235,15 @@ int rsc_mgr_init(struct rsc_mgr *mgr, enum RSCTYP type,
233 case SUM: 235 case SUM:
234 break; 236 break;
235 default: 237 default:
236 printk(KERN_ERR "Invalid resource type value %d!\n", type); 238 printk(KERN_ERR
239 "ctxfi: Invalid resource type value %d!\n", type);
237 err = -EINVAL; 240 err = -EINVAL;
238 goto error; 241 goto error;
239 } 242 }
240 243
241 if (err) { 244 if (err) {
242 printk(KERN_ERR "Failed to get manager control block!\n"); 245 printk(KERN_ERR
246 "ctxfi: Failed to get manager control block!\n");
243 goto error; 247 goto error;
244 } 248 }
245 249
@@ -282,8 +286,8 @@ int rsc_mgr_uninit(struct rsc_mgr *mgr)
282 case SUM: 286 case SUM:
283 break; 287 break;
284 default: 288 default:
285 printk(KERN_ERR "Invalid resource type value %d!\n", 289 printk(KERN_ERR "ctxfi: "
286 mgr->type); 290 "Invalid resource type value %d!\n", mgr->type);
287 break; 291 break;
288 } 292 }
289 293
diff --git a/sound/pci/ctxfi/ctsrc.c b/sound/pci/ctxfi/ctsrc.c
index d3e0ad5ed9fb..77e118c5bc97 100644
--- a/sound/pci/ctxfi/ctsrc.c
+++ b/sound/pci/ctxfi/ctsrc.c
@@ -431,7 +431,7 @@ get_src_rsc(struct src_mgr *mgr, const struct src_desc *desc, struct src **rsrc)
431 431
432 spin_unlock_irqrestore(&mgr->mgr_lock, flags); 432 spin_unlock_irqrestore(&mgr->mgr_lock, flags);
433 if (err) { 433 if (err) {
434 printk(KERN_ERR "Can't meet SRC resource request!\n"); 434 printk(KERN_ERR "ctxfi: Can't meet SRC resource request!\n");
435 return err; 435 return err;
436 } 436 }
437 437
@@ -740,7 +740,7 @@ static int get_srcimp_rsc(struct srcimp_mgr *mgr,
740 } 740 }
741 spin_unlock_irqrestore(&mgr->mgr_lock, flags); 741 spin_unlock_irqrestore(&mgr->mgr_lock, flags);
742 if (err) { 742 if (err) {
743 printk(KERN_ERR "Can't meet SRCIMP resource request!\n"); 743 printk(KERN_ERR "ctxfi: Can't meet SRCIMP resource request!\n");
744 goto error1; 744 goto error1;
745 } 745 }
746 746
diff --git a/sound/pci/ctxfi/ctvmem.c b/sound/pci/ctxfi/ctvmem.c
index 46ca04ce9210..cecf77e3ee86 100644
--- a/sound/pci/ctxfi/ctvmem.c
+++ b/sound/pci/ctxfi/ctvmem.c
@@ -121,12 +121,13 @@ ct_vm_map(struct ct_vm *vm, void *host_addr, int size)
121 121
122 /* do mapping */ 122 /* do mapping */
123 if ((unsigned long)host_addr >= VMALLOC_START) { 123 if ((unsigned long)host_addr >= VMALLOC_START) {
124 printk(KERN_ERR "Fail! Not support vmalloced addr now!\n"); 124 printk(KERN_ERR "ctxfi: "
125 "Fail! Not support vmalloced addr now!\n");
125 return NULL; 126 return NULL;
126 } 127 }
127 128
128 if (size > vm->size) { 129 if (size > vm->size) {
129 printk(KERN_ERR "Fail! No sufficient device virtural " 130 printk(KERN_ERR "ctxfi: Fail! No sufficient device virtural "
130 "memory space available!\n"); 131 "memory space available!\n");
131 return NULL; 132 return NULL;
132 } 133 }
@@ -139,7 +140,7 @@ ct_vm_map(struct ct_vm *vm, void *host_addr, int size)
139 140
140 block = get_vm_block(vm, (pages << PAGE_SHIFT)); 141 block = get_vm_block(vm, (pages << PAGE_SHIFT));
141 if (block == NULL) { 142 if (block == NULL) {
142 printk(KERN_ERR "No virtual memory block that is big " 143 printk(KERN_ERR "ctxfi: No virtual memory block that is big "
143 "enough to allocate!\n"); 144 "enough to allocate!\n");
144 return NULL; 145 return NULL;
145 } 146 }
diff --git a/sound/pci/ctxfi/xfi.c b/sound/pci/ctxfi/xfi.c
index b7368fded53c..19310ed26e88 100644
--- a/sound/pci/ctxfi/xfi.c
+++ b/sound/pci/ctxfi/xfi.c
@@ -57,16 +57,17 @@ ct_card_probe(struct pci_dev *pci, const struct pci_device_id *pci_id)
57 if (err) 57 if (err)
58 return err; 58 return err;
59 if ((reference_rate != 48000) && (reference_rate != 44100)) { 59 if ((reference_rate != 48000) && (reference_rate != 44100)) {
60 printk(KERN_ERR "Invalid reference_rate value %u!!!\n" 60 printk(KERN_ERR "ctxfi: Invalid reference_rate value %u!!!\n",
61 "The valid values for reference_rate " 61 reference_rate);
62 "are 48000 and 44100.\nValue 48000 is " 62 printk(KERN_ERR "ctxfi: The valid values for reference_rate "
63 "assumed.\n", reference_rate); 63 "are 48000 and 44100, Value 48000 is assumed.\n");
64 reference_rate = 48000; 64 reference_rate = 48000;
65 } 65 }
66 if ((multiple != 1) && (multiple != 2)) { 66 if ((multiple != 1) && (multiple != 2)) {
67 printk(KERN_ERR "Invalid multiple value %u!!!\nThe valid " 67 printk(KERN_ERR "ctxfi: Invalid multiple value %u!!!\n",
68 "values for multiple are 1 and 2.\nValue 2 " 68 multiple);
69 "is assumed.\n", multiple); 69 printk(KERN_ERR "ctxfi: The valid values for multiple are "
70 "1 and 2, Value 2 is assumed.\n");
70 multiple = 2; 71 multiple = 2;
71 } 72 }
72 err = ct_atc_create(card, pci, reference_rate, multiple, &atc); 73 err = ct_atc_create(card, pci, reference_rate, multiple, &atc);