Lines Matching full:a
32 extern int diva_card_read_xlog(diva_os_xdi_adapter_t *a);
41 static int diva_pri_cleanup_adapter(diva_os_xdi_adapter_t *a);
42 static int diva_pri_cmd_card_proc(struct _diva_os_xdi_adapter *a,
44 static int pri_get_serial_number(diva_os_xdi_adapter_t *a);
45 static int diva_pri_stop_adapter(diva_os_xdi_adapter_t *a);
46 static dword diva_pri_detect_dsps(diva_os_xdi_adapter_t *a);
61 static void diva_pri_set_addresses(diva_os_xdi_adapter_t *a) in diva_pri_set_addresses() argument
63 a->resources.pci.mem_type_id[MEM_TYPE_ADDRESS] = 0; in diva_pri_set_addresses()
64 a->resources.pci.mem_type_id[MEM_TYPE_CONTROL] = 2; in diva_pri_set_addresses()
65 a->resources.pci.mem_type_id[MEM_TYPE_CONFIG] = 4; in diva_pri_set_addresses()
66 a->resources.pci.mem_type_id[MEM_TYPE_RAM] = 0; in diva_pri_set_addresses()
67 a->resources.pci.mem_type_id[MEM_TYPE_RESET] = 2; in diva_pri_set_addresses()
68 a->resources.pci.mem_type_id[MEM_TYPE_CFG] = 4; in diva_pri_set_addresses()
69 a->resources.pci.mem_type_id[MEM_TYPE_PROM] = 3; in diva_pri_set_addresses()
71 a->xdi_adapter.Address = a->resources.pci.addr[0]; in diva_pri_set_addresses()
72 a->xdi_adapter.Control = a->resources.pci.addr[2]; in diva_pri_set_addresses()
73 a->xdi_adapter.Config = a->resources.pci.addr[4]; in diva_pri_set_addresses()
75 a->xdi_adapter.ram = a->resources.pci.addr[0]; in diva_pri_set_addresses()
76 a->xdi_adapter.ram += MP_SHARED_RAM_OFFSET; in diva_pri_set_addresses()
78 a->xdi_adapter.reset = a->resources.pci.addr[2]; in diva_pri_set_addresses()
79 a->xdi_adapter.reset += MP_RESET; in diva_pri_set_addresses()
81 a->xdi_adapter.cfg = a->resources.pci.addr[4]; in diva_pri_set_addresses()
82 a->xdi_adapter.cfg += MP_IRQ_RESET; in diva_pri_set_addresses()
84 a->xdi_adapter.sdram_bar = a->resources.pci.bar[0]; in diva_pri_set_addresses()
86 a->xdi_adapter.prom = a->resources.pci.addr[3]; in diva_pri_set_addresses()
96 int diva_pri_init_card(diva_os_xdi_adapter_t *a) in diva_pri_init_card() argument
108 pri_rev_2 = pri_is_rev_2_card(a->CardOrdinal); in diva_pri_init_card()
116 a->xdi_adapter.Properties = CardProperties[a->CardOrdinal]; in diva_pri_init_card()
117 DBG_LOG(("Load %s", a->xdi_adapter.Properties.Name)) in diva_pri_init_card()
124 a->resources.pci.bar[bar] = in diva_pri_init_card()
125 divasa_get_pci_bar(a->resources.pci.bus, in diva_pri_init_card()
126 a->resources.pci.func, bar, in diva_pri_init_card()
127 a->resources.pci.hdev); in diva_pri_init_card()
128 if (!a->resources.pci.bar[bar] in diva_pri_init_card()
129 || (a->resources.pci.bar[bar] == 0xFFFFFFF0)) { in diva_pri_init_card()
130 DBG_ERR(("A: invalid bar[%d]=%08x", bar, in diva_pri_init_card()
131 a->resources.pci.bar[bar])) in diva_pri_init_card()
135 a->resources.pci.irq = in diva_pri_init_card()
136 (byte) divasa_get_pci_irq(a->resources.pci.bus, in diva_pri_init_card()
137 a->resources.pci.func, in diva_pri_init_card()
138 a->resources.pci.hdev); in diva_pri_init_card()
139 if (!a->resources.pci.irq) { in diva_pri_init_card()
140 DBG_ERR(("A: invalid irq")); in diva_pri_init_card()
148 a->resources.pci.addr[bar] = in diva_pri_init_card()
149 divasa_remap_pci_bar(a, bar, a->resources.pci.bar[bar], in diva_pri_init_card()
151 if (!a->resources.pci.addr[bar]) { in diva_pri_init_card()
152 DBG_ERR(("A: A(%d), can't map bar[%d]", in diva_pri_init_card()
153 a->controller, bar)) in diva_pri_init_card()
154 diva_pri_cleanup_adapter(a); in diva_pri_init_card()
162 diva_pri_set_addresses(a); in diva_pri_init_card()
167 if (pri_get_serial_number(a)) { in diva_pri_init_card()
169 serNo = a->resources.pci.bar[1] & 0xffff0000; in diva_pri_init_card()
170 serNo |= ((dword) a->resources.pci.bus) << 8; in diva_pri_init_card()
171 serNo += (a->resources.pci.func + a->controller + 1); in diva_pri_init_card()
172 a->xdi_adapter.serialNo = serNo & ~0xFF000000; in diva_pri_init_card()
173 DBG_ERR(("A: A(%d) can't get Serial Number, generated serNo=%ld", in diva_pri_init_card()
174 a->controller, a->xdi_adapter.serialNo)) in diva_pri_init_card()
181 if (diva_os_initialize_spin_lock(&a->xdi_adapter.isr_spin_lock, "isr")) { in diva_pri_init_card()
182 diva_pri_cleanup_adapter(a); in diva_pri_init_card()
186 (&a->xdi_adapter.data_spin_lock, "data")) { in diva_pri_init_card()
187 diva_pri_cleanup_adapter(a); in diva_pri_init_card()
191 strcpy(a->xdi_adapter.req_soft_isr.dpc_thread_name, "kdivasprid"); in diva_pri_init_card()
193 if (diva_os_initialize_soft_isr(&a->xdi_adapter.req_soft_isr, in diva_pri_init_card()
194 DIDpcRoutine, &a->xdi_adapter)) { in diva_pri_init_card()
195 diva_pri_cleanup_adapter(a); in diva_pri_init_card()
202 a->xdi_adapter.isr_soft_isr.object = in diva_pri_init_card()
203 a->xdi_adapter.req_soft_isr.object; in diva_pri_init_card()
209 a->xdi_adapter.Channels = CardProperties[a->CardOrdinal].Channels; in diva_pri_init_card()
210 a->xdi_adapter.e_max = CardProperties[a->CardOrdinal].E_info; in diva_pri_init_card()
212 a->xdi_adapter.e_tbl = in diva_pri_init_card()
213 diva_os_malloc(0, a->xdi_adapter.e_max * sizeof(E_INFO)); in diva_pri_init_card()
214 if (!a->xdi_adapter.e_tbl) { in diva_pri_init_card()
215 diva_pri_cleanup_adapter(a); in diva_pri_init_card()
218 memset(a->xdi_adapter.e_tbl, 0x00, a->xdi_adapter.e_max * sizeof(E_INFO)); in diva_pri_init_card()
220 a->xdi_adapter.a.io = &a->xdi_adapter; in diva_pri_init_card()
221 a->xdi_adapter.DIRequest = request; in diva_pri_init_card()
222 a->interface.cleanup_adapter_proc = diva_pri_cleanup_adapter; in diva_pri_init_card()
223 a->interface.cmd_proc = diva_pri_cmd_card_proc; in diva_pri_init_card()
226 prepare_pri2_functions(&a->xdi_adapter); in diva_pri_init_card()
228 prepare_pri_functions(&a->xdi_adapter); in diva_pri_init_card()
231 a->dsp_mask = diva_pri_detect_dsps(a); in diva_pri_init_card()
237 diva_init_dma_map(a->resources.pci.hdev, in diva_pri_init_card()
238 (struct _diva_dma_map_entry **) &a->xdi_adapter.dma_map, 32); in diva_pri_init_card()
244 a->xdi_adapter.irq_info.irq_nr = a->resources.pci.irq; in diva_pri_init_card()
245 sprintf(a->xdi_adapter.irq_info.irq_name, in diva_pri_init_card()
246 "DIVA PRI %ld", (long) a->xdi_adapter.serialNo); in diva_pri_init_card()
248 if (diva_os_register_irq(a, a->xdi_adapter.irq_info.irq_nr, in diva_pri_init_card()
249 a->xdi_adapter.irq_info.irq_name)) { in diva_pri_init_card()
250 diva_pri_cleanup_adapter(a); in diva_pri_init_card()
253 a->xdi_adapter.irq_info.registered = 1; in diva_pri_init_card()
255 diva_log_info("%s IRQ:%d SerNo:%d", a->xdi_adapter.Properties.Name, in diva_pri_init_card()
256 a->resources.pci.irq, a->xdi_adapter.serialNo); in diva_pri_init_card()
261 static int diva_pri_cleanup_adapter(diva_os_xdi_adapter_t *a) in diva_pri_cleanup_adapter() argument
268 if (a->xdi_adapter.Initialized) { in diva_pri_cleanup_adapter()
269 diva_pri_stop_adapter(a); in diva_pri_cleanup_adapter()
275 if (a->xdi_adapter.irq_info.registered) { in diva_pri_cleanup_adapter()
276 diva_os_remove_irq(a, a->xdi_adapter.irq_info.irq_nr); in diva_pri_cleanup_adapter()
278 a->xdi_adapter.irq_info.registered = 0; in diva_pri_cleanup_adapter()
284 if (a->resources.pci.bar[bar] in diva_pri_cleanup_adapter()
285 && a->resources.pci.addr[bar]) { in diva_pri_cleanup_adapter()
286 divasa_unmap_pci_bar(a->resources.pci.addr[bar]); in diva_pri_cleanup_adapter()
287 a->resources.pci.bar[bar] = 0; in diva_pri_cleanup_adapter()
288 a->resources.pci.addr[bar] = NULL; in diva_pri_cleanup_adapter()
295 diva_os_cancel_soft_isr(&a->xdi_adapter.isr_soft_isr); in diva_pri_cleanup_adapter()
296 diva_os_cancel_soft_isr(&a->xdi_adapter.req_soft_isr); in diva_pri_cleanup_adapter()
298 diva_os_remove_soft_isr(&a->xdi_adapter.req_soft_isr); in diva_pri_cleanup_adapter()
299 a->xdi_adapter.isr_soft_isr.object = NULL; in diva_pri_cleanup_adapter()
301 diva_os_destroy_spin_lock(&a->xdi_adapter.isr_spin_lock, "rm"); in diva_pri_cleanup_adapter()
302 diva_os_destroy_spin_lock(&a->xdi_adapter.data_spin_lock, "rm"); in diva_pri_cleanup_adapter()
307 if (a->xdi_adapter.e_tbl) { in diva_pri_cleanup_adapter()
308 diva_os_free(0, a->xdi_adapter.e_tbl); in diva_pri_cleanup_adapter()
309 a->xdi_adapter.e_tbl = NULL; in diva_pri_cleanup_adapter()
311 a->xdi_adapter.Channels = 0; in diva_pri_cleanup_adapter()
312 a->xdi_adapter.e_max = 0; in diva_pri_cleanup_adapter()
318 diva_free_dma_map(a->resources.pci.hdev, in diva_pri_cleanup_adapter()
319 (struct _diva_dma_map_entry *) a->xdi_adapter. in diva_pri_cleanup_adapter()
321 a->xdi_adapter.dma_map = NULL; in diva_pri_cleanup_adapter()
343 DBG_ERR(("A: A(%d) can't reset PRI adapter - please stop first", in diva_pri_reset_adapter()
362 DBG_ERR(("A: A(%d) CPU on PRI %ld is not alive!", in diva_pri_reset_adapter()
367 DBG_ERR(("A: A(%d) PRI %ld Board Selftest failed, error=%08lx", in diva_pri_reset_adapter()
388 memset(&IoAdapter->a.IdTable[0], 0x00, in diva_pri_reset_adapter()
389 sizeof(IoAdapter->a.IdTable)); in diva_pri_reset_adapter()
390 memset(&IoAdapter->a.IdTypeTable[0], 0x00, in diva_pri_reset_adapter()
391 sizeof(IoAdapter->a.IdTypeTable)); in diva_pri_reset_adapter()
392 memset(&IoAdapter->a.FlowControlIdTable[0], 0x00, in diva_pri_reset_adapter()
393 sizeof(IoAdapter->a.FlowControlIdTable)); in diva_pri_reset_adapter()
394 memset(&IoAdapter->a.FlowControlSkipTable[0], 0x00, in diva_pri_reset_adapter()
395 sizeof(IoAdapter->a.FlowControlSkipTable)); in diva_pri_reset_adapter()
396 memset(&IoAdapter->a.misc_flags_table[0], 0x00, in diva_pri_reset_adapter()
397 sizeof(IoAdapter->a.misc_flags_table)); in diva_pri_reset_adapter()
398 memset(&IoAdapter->a.rx_stream[0], 0x00, in diva_pri_reset_adapter()
399 sizeof(IoAdapter->a.rx_stream)); in diva_pri_reset_adapter()
400 memset(&IoAdapter->a.tx_stream[0], 0x00, in diva_pri_reset_adapter()
401 sizeof(IoAdapter->a.tx_stream)); in diva_pri_reset_adapter()
402 memset(&IoAdapter->a.tx_pos[0], 0x00, sizeof(IoAdapter->a.tx_pos)); in diva_pri_reset_adapter()
403 memset(&IoAdapter->a.rx_pos[0], 0x00, sizeof(IoAdapter->a.rx_pos)); in diva_pri_reset_adapter()
418 DBG_ERR(("A: A(%d) write PRI address=0x%08lx", in diva_pri_write_sdram_block()
441 ADAPTER *a = &IoAdapter->a; in diva_pri_start_adapter() local
445 DBG_ERR(("A: A(%d) pri_start_adapter, adapter already running", in diva_pri_start_adapter()
451 DBG_ERR(("A: PRI %ld can't start, adapter not mapped", in diva_pri_start_adapter()
456 sprintf(IoAdapter->Name, "A(%d)", (int) IoAdapter->ANum); in diva_pri_start_adapter()
457 DBG_LOG(("A(%d) start PRI at 0x%08lx", IoAdapter->ANum, in diva_pri_start_adapter()
466 DBG_LOG(("A(%d) Protocol startup time %d.%02d seconds", in diva_pri_start_adapter()
479 DBG_ERR(("A(%d) Adapter start failed 0x%08lx, TrapId=%08lx, debug=%08lx", in diva_pri_start_adapter()
500 a->ReadyInt = 1; in diva_pri_start_adapter()
501 a->ram_out(a, &PR_RAM->ReadyInt, 1); in diva_pri_start_adapter()
506 DBG_ERR(("A: A(%d) interrupt test failed", in diva_pri_start_adapter()
517 DBG_LOG(("A(%d) PRI adapter successfully started", IoAdapter->ANum)) in diva_pri_start_adapter()
526 static void diva_pri_clear_interrupts(diva_os_xdi_adapter_t *a) in diva_pri_clear_interrupts() argument
528 PISDN_ADAPTER IoAdapter = &a->xdi_adapter; in diva_pri_clear_interrupts()
535 IoAdapter->tst_irq(&IoAdapter->a); in diva_pri_clear_interrupts()
536 IoAdapter->clr_irq(&IoAdapter->a); in diva_pri_clear_interrupts()
537 IoAdapter->tst_irq(&IoAdapter->a); in diva_pri_clear_interrupts()
550 static int diva_pri_stop_adapter(diva_os_xdi_adapter_t *a) in diva_pri_stop_adapter() argument
552 PISDN_ADAPTER IoAdapter = &a->xdi_adapter; in diva_pri_stop_adapter()
559 DBG_ERR(("A: A(%d) can't stop PRI adapter - not running", in diva_pri_stop_adapter()
573 a->clear_interrupts_proc = diva_pri_clear_interrupts; in diva_pri_stop_adapter()
574 IoAdapter->a.ReadyInt = 1; in diva_pri_stop_adapter()
575 IoAdapter->a.ram_inc(&IoAdapter->a, &PR_RAM->ReadyInt); in diva_pri_stop_adapter()
578 } while (i-- && a->clear_interrupts_proc); in diva_pri_stop_adapter()
580 if (a->clear_interrupts_proc) { in diva_pri_stop_adapter()
581 diva_pri_clear_interrupts(a); in diva_pri_stop_adapter()
582 a->clear_interrupts_proc = NULL; in diva_pri_stop_adapter()
583 DBG_ERR(("A: A(%d) no final interrupt from PRI adapter", in diva_pri_stop_adapter()
586 IoAdapter->a.ReadyInt = 0; in diva_pri_stop_adapter()
603 diva_pri_cmd_card_proc(struct _diva_os_xdi_adapter *a, in diva_pri_cmd_card_proc() argument
608 if (cmd->adapter != a->controller) { in diva_pri_cmd_card_proc()
609 DBG_ERR(("A: pri_cmd, invalid controller=%d != %d", in diva_pri_cmd_card_proc()
610 cmd->adapter, a->controller)) in diva_pri_cmd_card_proc()
616 a->xdi_mbox.data_length = sizeof(dword); in diva_pri_cmd_card_proc()
617 a->xdi_mbox.data = in diva_pri_cmd_card_proc()
618 diva_os_malloc(0, a->xdi_mbox.data_length); in diva_pri_cmd_card_proc()
619 if (a->xdi_mbox.data) { in diva_pri_cmd_card_proc()
620 *(dword *) a->xdi_mbox.data = in diva_pri_cmd_card_proc()
621 (dword) a->CardOrdinal; in diva_pri_cmd_card_proc()
622 a->xdi_mbox.status = DIVA_XDI_MBOX_BUSY; in diva_pri_cmd_card_proc()
628 a->xdi_mbox.data_length = sizeof(dword); in diva_pri_cmd_card_proc()
629 a->xdi_mbox.data = in diva_pri_cmd_card_proc()
630 diva_os_malloc(0, a->xdi_mbox.data_length); in diva_pri_cmd_card_proc()
631 if (a->xdi_mbox.data) { in diva_pri_cmd_card_proc()
632 *(dword *) a->xdi_mbox.data = in diva_pri_cmd_card_proc()
633 (dword) a->xdi_adapter.serialNo; in diva_pri_cmd_card_proc()
634 a->xdi_mbox.status = DIVA_XDI_MBOX_BUSY; in diva_pri_cmd_card_proc()
640 a->xdi_mbox.data_length = sizeof(dword) * 9; in diva_pri_cmd_card_proc()
641 a->xdi_mbox.data = in diva_pri_cmd_card_proc()
642 diva_os_malloc(0, a->xdi_mbox.data_length); in diva_pri_cmd_card_proc()
643 if (a->xdi_mbox.data) { in diva_pri_cmd_card_proc()
645 dword *data = (dword *) a->xdi_mbox.data; in diva_pri_cmd_card_proc()
648 *data++ = a->resources.pci.bar[i]; in diva_pri_cmd_card_proc()
650 *data++ = (dword) a->resources.pci.irq; in diva_pri_cmd_card_proc()
651 a->xdi_mbox.status = DIVA_XDI_MBOX_BUSY; in diva_pri_cmd_card_proc()
657 ret = diva_pri_reset_adapter(&a->xdi_adapter); in diva_pri_cmd_card_proc()
661 ret = diva_pri_write_sdram_block(&a->xdi_adapter, in diva_pri_cmd_card_proc()
667 pri_is_rev_2_card(a-> in diva_pri_cmd_card_proc()
674 ret = diva_pri_stop_adapter(a); in diva_pri_cmd_card_proc()
678 ret = diva_pri_start_adapter(&a->xdi_adapter, in diva_pri_cmd_card_proc()
686 a->xdi_adapter.features = in diva_pri_cmd_card_proc()
688 a->xdi_adapter.a.protocol_capabilities = in diva_pri_cmd_card_proc()
689 a->xdi_adapter.features; in diva_pri_cmd_card_proc()
691 a->xdi_adapter.features)) in diva_pri_cmd_card_proc()
696 a->xdi_mbox.data_length = sizeof(dword); in diva_pri_cmd_card_proc()
697 a->xdi_mbox.data = in diva_pri_cmd_card_proc()
698 diva_os_malloc(0, a->xdi_mbox.data_length); in diva_pri_cmd_card_proc()
699 if (a->xdi_mbox.data) { in diva_pri_cmd_card_proc()
700 dword *data = (dword *) a->xdi_mbox.data; in diva_pri_cmd_card_proc()
701 if (!a->xdi_adapter.ram || in diva_pri_cmd_card_proc()
702 !a->xdi_adapter.reset || in diva_pri_cmd_card_proc()
703 !a->xdi_adapter.cfg) { in diva_pri_cmd_card_proc()
705 } else if (a->xdi_adapter.trapped) { in diva_pri_cmd_card_proc()
707 } else if (a->xdi_adapter.Initialized) { in diva_pri_cmd_card_proc()
712 a->xdi_mbox.status = DIVA_XDI_MBOX_BUSY; in diva_pri_cmd_card_proc()
718 ret = diva_card_read_xlog(a); in diva_pri_cmd_card_proc()
722 if (a->xdi_adapter.Address) { in diva_pri_cmd_card_proc()
724 (a->xdi_mbox.data_length = in diva_pri_cmd_card_proc()
727 (a->xdi_mbox.data_length + in diva_pri_cmd_card_proc()
729 a->xdi_adapter.MemorySize) { in diva_pri_cmd_card_proc()
730 a->xdi_mbox.data = in diva_pri_cmd_card_proc()
732 a->xdi_mbox. in diva_pri_cmd_card_proc()
734 if (a->xdi_mbox.data) { in diva_pri_cmd_card_proc()
735 byte __iomem *p = DIVA_OS_MEM_ATTACH_ADDRESS(&a->xdi_adapter); in diva_pri_cmd_card_proc()
737 byte *dst = a->xdi_mbox.data; in diva_pri_cmd_card_proc()
738 dword len = a->xdi_mbox.data_length; in diva_pri_cmd_card_proc()
745 a->xdi_mbox.status = DIVA_XDI_MBOX_BUSY; in diva_pri_cmd_card_proc()
746 DIVA_OS_MEM_DETACH_ADDRESS(&a->xdi_adapter, p); in diva_pri_cmd_card_proc()
755 DBG_ERR(("A: A(%d) invalid cmd=%d", a->controller, in diva_pri_cmd_card_proc()
765 static int pri_get_serial_number(diva_os_xdi_adapter_t *a) in pri_get_serial_number() argument
777 config = DIVA_OS_MEM_ATTACH_CONFIG(&a->xdi_adapter); in pri_get_serial_number()
784 DIVA_OS_MEM_DETACH_CONFIG(&a->xdi_adapter, config); in pri_get_serial_number()
789 flash = DIVA_OS_MEM_ATTACH_PROM(&a->xdi_adapter); in pri_get_serial_number()
793 DIVA_OS_MEM_DETACH_PROM(&a->xdi_adapter, flash); in pri_get_serial_number()
795 config = DIVA_OS_MEM_ATTACH_CONFIG(&a->xdi_adapter); in pri_get_serial_number()
798 DIVA_OS_MEM_DETACH_CONFIG(&a->xdi_adapter, config); in pri_get_serial_number()
807 addr4 = a->resources.pci.bar[4]; in pri_get_serial_number()
808 addr3 = a->resources.pci.bar[3]; /* flash */ in pri_get_serial_number()
809 addr1 = a->resources.pci.bar[1]; /* unused */ in pri_get_serial_number()
811 DBG_ERR(("A: apply Compaq BIOS workaround")) in pri_get_serial_number()
816 Bus = a->resources.pci.bus; in pri_get_serial_number()
817 Slot = a->resources.pci.func; in pri_get_serial_number()
818 hdev = a->resources.pci.hdev; in pri_get_serial_number()
827 addr = a->resources.pci.addr[1]; in pri_get_serial_number()
828 a->resources.pci.addr[1] = a->resources.pci.addr[4]; in pri_get_serial_number()
829 a->resources.pci.addr[4] = addr; in pri_get_serial_number()
831 addr1 = a->resources.pci.bar[1]; in pri_get_serial_number()
832 a->resources.pci.bar[1] = a->resources.pci.bar[4]; in pri_get_serial_number()
833 a->resources.pci.bar[4] = addr1; in pri_get_serial_number()
840 config = DIVA_OS_MEM_ATTACH_CONFIG(&a->xdi_adapter); in pri_get_serial_number()
846 DIVA_OS_MEM_DETACH_CONFIG(&a->xdi_adapter, config); in pri_get_serial_number()
849 flash = DIVA_OS_MEM_ATTACH_PROM(&a->xdi_adapter); in pri_get_serial_number()
853 DIVA_OS_MEM_ATTACH_PROM(&a->xdi_adapter, flash); in pri_get_serial_number()
854 config = DIVA_OS_MEM_ATTACH_CONFIG(&a->xdi_adapter); in pri_get_serial_number()
857 DIVA_OS_MEM_DETACH_CONFIG(&a->xdi_adapter, config); in pri_get_serial_number()
860 DBG_ERR(("A: failed to read serial number")) in pri_get_serial_number()
867 DBG_ERR(("A: failed to read DIVA signature word")) in pri_get_serial_number()
876 a->xdi_adapter.serialNo = in pri_get_serial_number()
879 if (!a->xdi_adapter.serialNo in pri_get_serial_number()
880 || (a->xdi_adapter.serialNo == 0xffffffff)) { in pri_get_serial_number()
881 a->xdi_adapter.serialNo = 0; in pri_get_serial_number()
882 DBG_ERR(("A: failed to read serial number")) in pri_get_serial_number()
886 DBG_LOG(("Serial No. : %ld", a->xdi_adapter.serialNo)) in pri_get_serial_number()
936 DBG_ERR(("A: DSP[%d] %04x(is) != %04x(should)", in dsp_check_presence()
956 static dword diva_pri_detect_dsps(diva_os_xdi_adapter_t *a) in diva_pri_detect_dsps() argument
975 if (!a->xdi_adapter.Control || !a->xdi_adapter.reset) { in diva_pri_detect_dsps()
979 p = DIVA_OS_MEM_ATTACH_RESET(&a->xdi_adapter); in diva_pri_detect_dsps()
981 DIVA_OS_MEM_DETACH_RESET(&a->xdi_adapter, p); in diva_pri_detect_dsps()
984 base = DIVA_OS_MEM_ATTACH_CONTROL(&a->xdi_adapter); in diva_pri_detect_dsps()
1004 DIVA_OS_MEM_DETACH_CONTROL(&a->xdi_adapter, base); in diva_pri_detect_dsps()
1006 p = DIVA_OS_MEM_ATTACH_RESET(&a->xdi_adapter); in diva_pri_detect_dsps()
1008 DIVA_OS_MEM_DETACH_RESET(&a->xdi_adapter, p); in diva_pri_detect_dsps()
1019 DBG_ERR(("A: MODULE[%d]-DSP[%d] failed", in diva_pri_detect_dsps()
1028 DBG_ERR(("A: ON BOARD-DSP[1] failed")) in diva_pri_detect_dsps()
1031 DBG_ERR(("A: ON BOARD-DSP[2] failed")) in diva_pri_detect_dsps()