aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/cs46xx/dsp_spos.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/pci/cs46xx/dsp_spos.c')
-rw-r--r--sound/pci/cs46xx/dsp_spos.c126
1 files changed, 79 insertions, 47 deletions
diff --git a/sound/pci/cs46xx/dsp_spos.c b/sound/pci/cs46xx/dsp_spos.c
index 1686b4f4c44f..1c4a0fb3ffef 100644
--- a/sound/pci/cs46xx/dsp_spos.c
+++ b/sound/pci/cs46xx/dsp_spos.c
@@ -85,12 +85,15 @@ static int shadow_and_reallocate_code (struct snd_cs46xx * chip, u32 * data, u32
85 address = (hival & 0x00FFF) << 5; 85 address = (hival & 0x00FFF) << 5;
86 address |= loval >> 15; 86 address |= loval >> 15;
87 87
88 snd_printdd("handle_wideop[1]: %05x:%05x addr %04x\n",hival,loval,address); 88 dev_dbg(chip->card->dev,
89 "handle_wideop[1]: %05x:%05x addr %04x\n",
90 hival, loval, address);
89 91
90 if ( !(address & 0x8000) ) { 92 if ( !(address & 0x8000) ) {
91 address += (ins->code.offset / 2) - overlay_begin_address; 93 address += (ins->code.offset / 2) - overlay_begin_address;
92 } else { 94 } else {
93 snd_printdd("handle_wideop[1]: ROM symbol not reallocated\n"); 95 dev_dbg(chip->card->dev,
96 "handle_wideop[1]: ROM symbol not reallocated\n");
94 } 97 }
95 98
96 hival &= 0xFF000; 99 hival &= 0xFF000;
@@ -102,8 +105,9 @@ static int shadow_and_reallocate_code (struct snd_cs46xx * chip, u32 * data, u32
102 address = (hival & 0x00FFF) << 5; 105 address = (hival & 0x00FFF) << 5;
103 address |= loval >> 15; 106 address |= loval >> 15;
104 107
105 snd_printdd("handle_wideop:[2] %05x:%05x addr %04x\n",hival,loval,address); 108 dev_dbg(chip->card->dev,
106 nreallocated ++; 109 "handle_wideop:[2] %05x:%05x addr %04x\n",
110 hival, loval, address); nreallocated++;
107 } /* wide_opcodes[j] == wide_op */ 111 } /* wide_opcodes[j] == wide_op */
108 } /* for */ 112 } /* for */
109 } /* mod_type == 0 ... */ 113 } /* mod_type == 0 ... */
@@ -113,7 +117,8 @@ static int shadow_and_reallocate_code (struct snd_cs46xx * chip, u32 * data, u32
113 ins->code.data[ins->code.size++] = hival; 117 ins->code.data[ins->code.size++] = hival;
114 } 118 }
115 119
116 snd_printdd("dsp_spos: %d instructions reallocated\n",nreallocated); 120 dev_dbg(chip->card->dev,
121 "dsp_spos: %d instructions reallocated\n", nreallocated);
117 return nreallocated; 122 return nreallocated;
118} 123}
119 124
@@ -157,7 +162,8 @@ static int add_symbols (struct snd_cs46xx * chip, struct dsp_module_desc * modul
157 162
158 for (i = 0;i < module->symbol_table.nsymbols; ++i) { 163 for (i = 0;i < module->symbol_table.nsymbols; ++i) {
159 if (ins->symbol_table.nsymbols == (DSP_MAX_SYMBOLS - 1)) { 164 if (ins->symbol_table.nsymbols == (DSP_MAX_SYMBOLS - 1)) {
160 snd_printk(KERN_ERR "dsp_spos: symbol table is full\n"); 165 dev_err(chip->card->dev,
166 "dsp_spos: symbol table is full\n");
161 return -ENOMEM; 167 return -ENOMEM;
162 } 168 }
163 169
@@ -176,8 +182,11 @@ static int add_symbols (struct snd_cs46xx * chip, struct dsp_module_desc * modul
176 182
177 ins->symbol_table.nsymbols++; 183 ins->symbol_table.nsymbols++;
178 } else { 184 } else {
179 /* if (0) printk ("dsp_spos: symbol <%s> duplicated, probably nothing wrong with that (Cirrus?)\n", 185#if 0
180 module->symbol_table.symbols[i].symbol_name); */ 186 dev_dbg(chip->card->dev,
187 "dsp_spos: symbol <%s> duplicated, probably nothing wrong with that (Cirrus?)\n",
188 module->symbol_table.symbols[i].symbol_name); */
189#endif
181 } 190 }
182 } 191 }
183 192
@@ -192,14 +201,15 @@ add_symbol (struct snd_cs46xx * chip, char * symbol_name, u32 address, int type)
192 int index; 201 int index;
193 202
194 if (ins->symbol_table.nsymbols == (DSP_MAX_SYMBOLS - 1)) { 203 if (ins->symbol_table.nsymbols == (DSP_MAX_SYMBOLS - 1)) {
195 snd_printk(KERN_ERR "dsp_spos: symbol table is full\n"); 204 dev_err(chip->card->dev, "dsp_spos: symbol table is full\n");
196 return NULL; 205 return NULL;
197 } 206 }
198 207
199 if (cs46xx_dsp_lookup_symbol(chip, 208 if (cs46xx_dsp_lookup_symbol(chip,
200 symbol_name, 209 symbol_name,
201 type) != NULL) { 210 type) != NULL) {
202 snd_printk(KERN_ERR "dsp_spos: symbol <%s> duplicated\n", symbol_name); 211 dev_err(chip->card->dev,
212 "dsp_spos: symbol <%s> duplicated\n", symbol_name);
203 return NULL; 213 return NULL;
204 } 214 }
205 215
@@ -305,19 +315,20 @@ static int dsp_load_parameter(struct snd_cs46xx *chip,
305 u32 doffset, dsize; 315 u32 doffset, dsize;
306 316
307 if (!parameter) { 317 if (!parameter) {
308 snd_printdd("dsp_spos: module got no parameter segment\n"); 318 dev_dbg(chip->card->dev,
319 "dsp_spos: module got no parameter segment\n");
309 return 0; 320 return 0;
310 } 321 }
311 322
312 doffset = (parameter->offset * 4 + DSP_PARAMETER_BYTE_OFFSET); 323 doffset = (parameter->offset * 4 + DSP_PARAMETER_BYTE_OFFSET);
313 dsize = parameter->size * 4; 324 dsize = parameter->size * 4;
314 325
315 snd_printdd("dsp_spos: " 326 dev_dbg(chip->card->dev,
316 "downloading parameter data to chip (%08x-%08x)\n", 327 "dsp_spos: downloading parameter data to chip (%08x-%08x)\n",
317 doffset,doffset + dsize); 328 doffset,doffset + dsize);
318 if (snd_cs46xx_download (chip, parameter->data, doffset, dsize)) { 329 if (snd_cs46xx_download (chip, parameter->data, doffset, dsize)) {
319 snd_printk(KERN_ERR "dsp_spos: " 330 dev_err(chip->card->dev,
320 "failed to download parameter data to DSP\n"); 331 "dsp_spos: failed to download parameter data to DSP\n");
321 return -EINVAL; 332 return -EINVAL;
322 } 333 }
323 return 0; 334 return 0;
@@ -329,18 +340,21 @@ static int dsp_load_sample(struct snd_cs46xx *chip,
329 u32 doffset, dsize; 340 u32 doffset, dsize;
330 341
331 if (!sample) { 342 if (!sample) {
332 snd_printdd("dsp_spos: module got no sample segment\n"); 343 dev_dbg(chip->card->dev,
344 "dsp_spos: module got no sample segment\n");
333 return 0; 345 return 0;
334 } 346 }
335 347
336 doffset = (sample->offset * 4 + DSP_SAMPLE_BYTE_OFFSET); 348 doffset = (sample->offset * 4 + DSP_SAMPLE_BYTE_OFFSET);
337 dsize = sample->size * 4; 349 dsize = sample->size * 4;
338 350
339 snd_printdd("dsp_spos: downloading sample data to chip (%08x-%08x)\n", 351 dev_dbg(chip->card->dev,
352 "dsp_spos: downloading sample data to chip (%08x-%08x)\n",
340 doffset,doffset + dsize); 353 doffset,doffset + dsize);
341 354
342 if (snd_cs46xx_download (chip,sample->data,doffset,dsize)) { 355 if (snd_cs46xx_download (chip,sample->data,doffset,dsize)) {
343 snd_printk(KERN_ERR "dsp_spos: failed to sample data to DSP\n"); 356 dev_err(chip->card->dev,
357 "dsp_spos: failed to sample data to DSP\n");
344 return -EINVAL; 358 return -EINVAL;
345 } 359 }
346 return 0; 360 return 0;
@@ -354,14 +368,16 @@ int cs46xx_dsp_load_module (struct snd_cs46xx * chip, struct dsp_module_desc * m
354 int err; 368 int err;
355 369
356 if (ins->nmodules == DSP_MAX_MODULES - 1) { 370 if (ins->nmodules == DSP_MAX_MODULES - 1) {
357 snd_printk(KERN_ERR "dsp_spos: to many modules loaded into DSP\n"); 371 dev_err(chip->card->dev,
372 "dsp_spos: to many modules loaded into DSP\n");
358 return -ENOMEM; 373 return -ENOMEM;
359 } 374 }
360 375
361 snd_printdd("dsp_spos: loading module %s into DSP\n", module->module_name); 376 dev_dbg(chip->card->dev,
377 "dsp_spos: loading module %s into DSP\n", module->module_name);
362 378
363 if (ins->nmodules == 0) { 379 if (ins->nmodules == 0) {
364 snd_printdd("dsp_spos: clearing parameter area\n"); 380 dev_dbg(chip->card->dev, "dsp_spos: clearing parameter area\n");
365 snd_cs46xx_clear_BA1(chip, DSP_PARAMETER_BYTE_OFFSET, DSP_PARAMETER_BYTE_SIZE); 381 snd_cs46xx_clear_BA1(chip, DSP_PARAMETER_BYTE_OFFSET, DSP_PARAMETER_BYTE_SIZE);
366 } 382 }
367 383
@@ -371,7 +387,7 @@ int cs46xx_dsp_load_module (struct snd_cs46xx * chip, struct dsp_module_desc * m
371 return err; 387 return err;
372 388
373 if (ins->nmodules == 0) { 389 if (ins->nmodules == 0) {
374 snd_printdd("dsp_spos: clearing sample area\n"); 390 dev_dbg(chip->card->dev, "dsp_spos: clearing sample area\n");
375 snd_cs46xx_clear_BA1(chip, DSP_SAMPLE_BYTE_OFFSET, DSP_SAMPLE_BYTE_SIZE); 391 snd_cs46xx_clear_BA1(chip, DSP_SAMPLE_BYTE_OFFSET, DSP_SAMPLE_BYTE_SIZE);
376 } 392 }
377 393
@@ -381,15 +397,17 @@ int cs46xx_dsp_load_module (struct snd_cs46xx * chip, struct dsp_module_desc * m
381 return err; 397 return err;
382 398
383 if (ins->nmodules == 0) { 399 if (ins->nmodules == 0) {
384 snd_printdd("dsp_spos: clearing code area\n"); 400 dev_dbg(chip->card->dev, "dsp_spos: clearing code area\n");
385 snd_cs46xx_clear_BA1(chip, DSP_CODE_BYTE_OFFSET, DSP_CODE_BYTE_SIZE); 401 snd_cs46xx_clear_BA1(chip, DSP_CODE_BYTE_OFFSET, DSP_CODE_BYTE_SIZE);
386 } 402 }
387 403
388 if (code == NULL) { 404 if (code == NULL) {
389 snd_printdd("dsp_spos: module got no code segment\n"); 405 dev_dbg(chip->card->dev,
406 "dsp_spos: module got no code segment\n");
390 } else { 407 } else {
391 if (ins->code.offset + code->size > DSP_CODE_BYTE_SIZE) { 408 if (ins->code.offset + code->size > DSP_CODE_BYTE_SIZE) {
392 snd_printk(KERN_ERR "dsp_spos: no space available in DSP\n"); 409 dev_err(chip->card->dev,
410 "dsp_spos: no space available in DSP\n");
393 return -ENOMEM; 411 return -ENOMEM;
394 } 412 }
395 413
@@ -401,19 +419,22 @@ int cs46xx_dsp_load_module (struct snd_cs46xx * chip, struct dsp_module_desc * m
401 if (snd_BUG_ON(!module->symbol_table.symbols)) 419 if (snd_BUG_ON(!module->symbol_table.symbols))
402 return -ENOMEM; 420 return -ENOMEM;
403 if (add_symbols(chip,module)) { 421 if (add_symbols(chip,module)) {
404 snd_printk(KERN_ERR "dsp_spos: failed to load symbol table\n"); 422 dev_err(chip->card->dev,
423 "dsp_spos: failed to load symbol table\n");
405 return -ENOMEM; 424 return -ENOMEM;
406 } 425 }
407 426
408 doffset = (code->offset * 4 + ins->code.offset * 4 + DSP_CODE_BYTE_OFFSET); 427 doffset = (code->offset * 4 + ins->code.offset * 4 + DSP_CODE_BYTE_OFFSET);
409 dsize = code->size * 4; 428 dsize = code->size * 4;
410 snd_printdd("dsp_spos: downloading code to chip (%08x-%08x)\n", 429 dev_dbg(chip->card->dev,
430 "dsp_spos: downloading code to chip (%08x-%08x)\n",
411 doffset,doffset + dsize); 431 doffset,doffset + dsize);
412 432
413 module->nfixups = shadow_and_reallocate_code(chip,code->data,code->size,module->overlay_begin_address); 433 module->nfixups = shadow_and_reallocate_code(chip,code->data,code->size,module->overlay_begin_address);
414 434
415 if (snd_cs46xx_download (chip,(ins->code.data + ins->code.offset),doffset,dsize)) { 435 if (snd_cs46xx_download (chip,(ins->code.data + ins->code.offset),doffset,dsize)) {
416 snd_printk(KERN_ERR "dsp_spos: failed to download code to DSP\n"); 436 dev_err(chip->card->dev,
437 "dsp_spos: failed to download code to DSP\n");
417 return -EINVAL; 438 return -EINVAL;
418 } 439 }
419 440
@@ -447,7 +468,7 @@ cs46xx_dsp_lookup_symbol (struct snd_cs46xx * chip, char * symbol_name, int symb
447 } 468 }
448 469
449#if 0 470#if 0
450 printk ("dsp_spos: symbol <%s> type %02x not found\n", 471 dev_err(chip->card->dev, "dsp_spos: symbol <%s> type %02x not found\n",
451 symbol_name,symbol_type); 472 symbol_name,symbol_type);
452#endif 473#endif
453 474
@@ -910,7 +931,6 @@ int cs46xx_dsp_proc_done (struct snd_cs46xx *chip)
910} 931}
911#endif /* CONFIG_PROC_FS */ 932#endif /* CONFIG_PROC_FS */
912 933
913static int debug_tree;
914static void _dsp_create_task_tree (struct snd_cs46xx *chip, u32 * task_data, 934static void _dsp_create_task_tree (struct snd_cs46xx *chip, u32 * task_data,
915 u32 dest, int size) 935 u32 dest, int size)
916{ 936{
@@ -919,13 +939,13 @@ static void _dsp_create_task_tree (struct snd_cs46xx *chip, u32 * task_data,
919 int i; 939 int i;
920 940
921 for (i = 0; i < size; ++i) { 941 for (i = 0; i < size; ++i) {
922 if (debug_tree) printk ("addr %p, val %08x\n",spdst,task_data[i]); 942 dev_dbg(chip->card->dev, "addr %p, val %08x\n",
943 spdst, task_data[i]);
923 writel(task_data[i],spdst); 944 writel(task_data[i],spdst);
924 spdst += sizeof(u32); 945 spdst += sizeof(u32);
925 } 946 }
926} 947}
927 948
928static int debug_scb;
929static void _dsp_create_scb (struct snd_cs46xx *chip, u32 * scb_data, u32 dest) 949static void _dsp_create_scb (struct snd_cs46xx *chip, u32 * scb_data, u32 dest)
930{ 950{
931 void __iomem *spdst = chip->region.idx[1].remap_addr + 951 void __iomem *spdst = chip->region.idx[1].remap_addr +
@@ -933,7 +953,8 @@ static void _dsp_create_scb (struct snd_cs46xx *chip, u32 * scb_data, u32 dest)
933 int i; 953 int i;
934 954
935 for (i = 0; i < 0x10; ++i) { 955 for (i = 0; i < 0x10; ++i) {
936 if (debug_scb) printk ("addr %p, val %08x\n",spdst,scb_data[i]); 956 dev_dbg(chip->card->dev, "addr %p, val %08x\n",
957 spdst, scb_data[i]);
937 writel(scb_data[i],spdst); 958 writel(scb_data[i],spdst);
938 spdst += sizeof(u32); 959 spdst += sizeof(u32);
939 } 960 }
@@ -960,7 +981,8 @@ static struct dsp_scb_descriptor * _map_scb (struct snd_cs46xx *chip, char * nam
960 int index; 981 int index;
961 982
962 if (ins->nscb == DSP_MAX_SCB_DESC - 1) { 983 if (ins->nscb == DSP_MAX_SCB_DESC - 1) {
963 snd_printk(KERN_ERR "dsp_spos: got no place for other SCB\n"); 984 dev_err(chip->card->dev,
985 "dsp_spos: got no place for other SCB\n");
964 return NULL; 986 return NULL;
965 } 987 }
966 988
@@ -991,7 +1013,8 @@ _map_task_tree (struct snd_cs46xx *chip, char * name, u32 dest, u32 size)
991 struct dsp_task_descriptor * desc = NULL; 1013 struct dsp_task_descriptor * desc = NULL;
992 1014
993 if (ins->ntask == DSP_MAX_TASK_DESC - 1) { 1015 if (ins->ntask == DSP_MAX_TASK_DESC - 1) {
994 snd_printk(KERN_ERR "dsp_spos: got no place for other TASK\n"); 1016 dev_err(chip->card->dev,
1017 "dsp_spos: got no place for other TASK\n");
995 return NULL; 1018 return NULL;
996 } 1019 }
997 1020
@@ -1031,7 +1054,7 @@ cs46xx_dsp_create_scb (struct snd_cs46xx *chip, char * name, u32 * scb_data, u32
1031 desc->data = scb_data; 1054 desc->data = scb_data;
1032 _dsp_create_scb(chip,scb_data,dest); 1055 _dsp_create_scb(chip,scb_data,dest);
1033 } else { 1056 } else {
1034 snd_printk(KERN_ERR "dsp_spos: failed to map SCB\n"); 1057 dev_err(chip->card->dev, "dsp_spos: failed to map SCB\n");
1035#ifdef CONFIG_PM_SLEEP 1058#ifdef CONFIG_PM_SLEEP
1036 kfree(scb_data); 1059 kfree(scb_data);
1037#endif 1060#endif
@@ -1052,7 +1075,7 @@ cs46xx_dsp_create_task_tree (struct snd_cs46xx *chip, char * name, u32 * task_da
1052 desc->data = task_data; 1075 desc->data = task_data;
1053 _dsp_create_task_tree(chip,task_data,dest,size); 1076 _dsp_create_task_tree(chip,task_data,dest,size);
1054 } else { 1077 } else {
1055 snd_printk(KERN_ERR "dsp_spos: failed to map TASK\n"); 1078 dev_err(chip->card->dev, "dsp_spos: failed to map TASK\n");
1056 } 1079 }
1057 1080
1058 return desc; 1081 return desc;
@@ -1105,31 +1128,36 @@ int cs46xx_dsp_scb_and_task_init (struct snd_cs46xx *chip)
1105 1128
1106 null_algorithm = cs46xx_dsp_lookup_symbol(chip, "NULLALGORITHM", SYMBOL_CODE); 1129 null_algorithm = cs46xx_dsp_lookup_symbol(chip, "NULLALGORITHM", SYMBOL_CODE);
1107 if (null_algorithm == NULL) { 1130 if (null_algorithm == NULL) {
1108 snd_printk(KERN_ERR "dsp_spos: symbol NULLALGORITHM not found\n"); 1131 dev_err(chip->card->dev,
1132 "dsp_spos: symbol NULLALGORITHM not found\n");
1109 return -EIO; 1133 return -EIO;
1110 } 1134 }
1111 1135
1112 fg_task_tree_header_code = cs46xx_dsp_lookup_symbol(chip, "FGTASKTREEHEADERCODE", SYMBOL_CODE); 1136 fg_task_tree_header_code = cs46xx_dsp_lookup_symbol(chip, "FGTASKTREEHEADERCODE", SYMBOL_CODE);
1113 if (fg_task_tree_header_code == NULL) { 1137 if (fg_task_tree_header_code == NULL) {
1114 snd_printk(KERN_ERR "dsp_spos: symbol FGTASKTREEHEADERCODE not found\n"); 1138 dev_err(chip->card->dev,
1139 "dsp_spos: symbol FGTASKTREEHEADERCODE not found\n");
1115 return -EIO; 1140 return -EIO;
1116 } 1141 }
1117 1142
1118 task_tree_header_code = cs46xx_dsp_lookup_symbol(chip, "TASKTREEHEADERCODE", SYMBOL_CODE); 1143 task_tree_header_code = cs46xx_dsp_lookup_symbol(chip, "TASKTREEHEADERCODE", SYMBOL_CODE);
1119 if (task_tree_header_code == NULL) { 1144 if (task_tree_header_code == NULL) {
1120 snd_printk(KERN_ERR "dsp_spos: symbol TASKTREEHEADERCODE not found\n"); 1145 dev_err(chip->card->dev,
1146 "dsp_spos: symbol TASKTREEHEADERCODE not found\n");
1121 return -EIO; 1147 return -EIO;
1122 } 1148 }
1123 1149
1124 task_tree_thread = cs46xx_dsp_lookup_symbol(chip, "TASKTREETHREAD", SYMBOL_CODE); 1150 task_tree_thread = cs46xx_dsp_lookup_symbol(chip, "TASKTREETHREAD", SYMBOL_CODE);
1125 if (task_tree_thread == NULL) { 1151 if (task_tree_thread == NULL) {
1126 snd_printk(KERN_ERR "dsp_spos: symbol TASKTREETHREAD not found\n"); 1152 dev_err(chip->card->dev,
1153 "dsp_spos: symbol TASKTREETHREAD not found\n");
1127 return -EIO; 1154 return -EIO;
1128 } 1155 }
1129 1156
1130 magic_snoop_task = cs46xx_dsp_lookup_symbol(chip, "MAGICSNOOPTASK", SYMBOL_CODE); 1157 magic_snoop_task = cs46xx_dsp_lookup_symbol(chip, "MAGICSNOOPTASK", SYMBOL_CODE);
1131 if (magic_snoop_task == NULL) { 1158 if (magic_snoop_task == NULL) {
1132 snd_printk(KERN_ERR "dsp_spos: symbol MAGICSNOOPTASK not found\n"); 1159 dev_err(chip->card->dev,
1160 "dsp_spos: symbol MAGICSNOOPTASK not found\n");
1133 return -EIO; 1161 return -EIO;
1134 } 1162 }
1135 1163
@@ -1476,7 +1504,7 @@ int cs46xx_dsp_scb_and_task_init (struct snd_cs46xx *chip)
1476 return 0; 1504 return 0;
1477 1505
1478 _fail_end: 1506 _fail_end:
1479 snd_printk(KERN_ERR "dsp_spos: failed to setup SCB's in DSP\n"); 1507 dev_err(chip->card->dev, "dsp_spos: failed to setup SCB's in DSP\n");
1480 return -EINVAL; 1508 return -EINVAL;
1481} 1509}
1482 1510
@@ -1491,18 +1519,21 @@ static int cs46xx_dsp_async_init (struct snd_cs46xx *chip,
1491 1519
1492 s16_async_codec_input_task = cs46xx_dsp_lookup_symbol(chip, "S16_ASYNCCODECINPUTTASK", SYMBOL_CODE); 1520 s16_async_codec_input_task = cs46xx_dsp_lookup_symbol(chip, "S16_ASYNCCODECINPUTTASK", SYMBOL_CODE);
1493 if (s16_async_codec_input_task == NULL) { 1521 if (s16_async_codec_input_task == NULL) {
1494 snd_printk(KERN_ERR "dsp_spos: symbol S16_ASYNCCODECINPUTTASK not found\n"); 1522 dev_err(chip->card->dev,
1523 "dsp_spos: symbol S16_ASYNCCODECINPUTTASK not found\n");
1495 return -EIO; 1524 return -EIO;
1496 } 1525 }
1497 spdifo_task = cs46xx_dsp_lookup_symbol(chip, "SPDIFOTASK", SYMBOL_CODE); 1526 spdifo_task = cs46xx_dsp_lookup_symbol(chip, "SPDIFOTASK", SYMBOL_CODE);
1498 if (spdifo_task == NULL) { 1527 if (spdifo_task == NULL) {
1499 snd_printk(KERN_ERR "dsp_spos: symbol SPDIFOTASK not found\n"); 1528 dev_err(chip->card->dev,
1529 "dsp_spos: symbol SPDIFOTASK not found\n");
1500 return -EIO; 1530 return -EIO;
1501 } 1531 }
1502 1532
1503 spdifi_task = cs46xx_dsp_lookup_symbol(chip, "SPDIFITASK", SYMBOL_CODE); 1533 spdifi_task = cs46xx_dsp_lookup_symbol(chip, "SPDIFITASK", SYMBOL_CODE);
1504 if (spdifi_task == NULL) { 1534 if (spdifi_task == NULL) {
1505 snd_printk(KERN_ERR "dsp_spos: symbol SPDIFITASK not found\n"); 1535 dev_err(chip->card->dev,
1536 "dsp_spos: symbol SPDIFITASK not found\n");
1506 return -EIO; 1537 return -EIO;
1507 } 1538 }
1508 1539
@@ -1883,7 +1914,8 @@ int cs46xx_poke_via_dsp (struct snd_cs46xx *chip, u32 address, u32 data)
1883 } 1914 }
1884 1915
1885 if (i == 25) { 1916 if (i == 25) {
1886 snd_printk(KERN_ERR "dsp_spos: SPIOWriteTask not responding\n"); 1917 dev_err(chip->card->dev,
1918 "dsp_spos: SPIOWriteTask not responding\n");
1887 return -EBUSY; 1919 return -EBUSY;
1888 } 1920 }
1889 1921