Lines Matching defs:pao
134 static u16 adapter_boot_load_dsp(struct hpi_adapter_obj *pao,
137 static u16 message_response_sequence(struct hpi_adapter_obj *pao,
140 static void hw_message(struct hpi_adapter_obj *pao, struct hpi_message *phm,
147 static void adapter_delete(struct hpi_adapter_obj *pao,
150 static u16 create_adapter_obj(struct hpi_adapter_obj *pao,
153 static void delete_adapter_obj(struct hpi_adapter_obj *pao);
155 static int adapter_irq_query_and_clear(struct hpi_adapter_obj *pao,
158 static void outstream_host_buffer_allocate(struct hpi_adapter_obj *pao,
161 static void outstream_host_buffer_get_info(struct hpi_adapter_obj *pao,
164 static void outstream_host_buffer_free(struct hpi_adapter_obj *pao,
166 static void outstream_write(struct hpi_adapter_obj *pao,
169 static void outstream_get_info(struct hpi_adapter_obj *pao,
172 static void outstream_start(struct hpi_adapter_obj *pao,
175 static void outstream_open(struct hpi_adapter_obj *pao,
178 static void outstream_reset(struct hpi_adapter_obj *pao,
181 static void instream_host_buffer_allocate(struct hpi_adapter_obj *pao,
184 static void instream_host_buffer_get_info(struct hpi_adapter_obj *pao,
187 static void instream_host_buffer_free(struct hpi_adapter_obj *pao,
190 static void instream_read(struct hpi_adapter_obj *pao,
193 static void instream_get_info(struct hpi_adapter_obj *pao,
196 static void instream_start(struct hpi_adapter_obj *pao,
199 static u32 boot_loader_read_mem32(struct hpi_adapter_obj *pao, int dsp_index,
202 static void boot_loader_write_mem32(struct hpi_adapter_obj *pao,
205 static u16 boot_loader_config_emif(struct hpi_adapter_obj *pao,
208 static u16 boot_loader_test_memory(struct hpi_adapter_obj *pao, int dsp_index,
211 static u16 boot_loader_test_internal_memory(struct hpi_adapter_obj *pao,
214 static u16 boot_loader_test_external_memory(struct hpi_adapter_obj *pao,
217 static u16 boot_loader_test_pld(struct hpi_adapter_obj *pao, int dsp_index);
221 static void subsys_message(struct hpi_adapter_obj *pao,
234 static void control_message(struct hpi_adapter_obj *pao,
238 struct hpi_hw_obj *phw = pao->priv;
243 if (pao->has_control_cache) {
252 hw_message(pao, phm, phr);
257 hw_message(pao, phm, phr);
260 hw_message(pao, phm, phr);
261 if (pao->has_control_cache)
271 static void adapter_message(struct hpi_adapter_obj *pao,
276 adapter_delete(pao, phm, phr);
279 hw_message(pao, phm, phr);
284 static void outstream_message(struct hpi_adapter_obj *pao,
299 outstream_write(pao, phm, phr);
302 outstream_get_info(pao, phm, phr);
305 outstream_host_buffer_allocate(pao, phm, phr);
308 outstream_host_buffer_get_info(pao, phm, phr);
311 outstream_host_buffer_free(pao, phm, phr);
314 outstream_start(pao, phm, phr);
317 outstream_open(pao, phm, phr);
320 outstream_reset(pao, phm, phr);
323 hw_message(pao, phm, phr);
328 static void instream_message(struct hpi_adapter_obj *pao,
343 instream_read(pao, phm, phr);
346 instream_get_info(pao, phm, phr);
349 instream_host_buffer_allocate(pao, phm, phr);
352 instream_host_buffer_get_info(pao, phm, phr);
355 instream_host_buffer_free(pao, phm, phr);
358 instream_start(pao, phm, phr);
361 hw_message(pao, phm, phr);
371 void _HPI_6205(struct hpi_adapter_obj *pao, struct hpi_message *phm,
374 if (pao && (pao->dsp_crashed >= 10)
393 subsys_message(pao, phm, phr);
397 adapter_message(pao, phm, phr);
401 control_message(pao, phm, phr);
405 outstream_message(pao, phm, phr);
409 instream_message(pao, phm, phr);
413 hw_message(pao, phm, phr);
426 struct hpi_adapter_obj *pao = NULL;
430 pao = hpi_find_adapter(phm->adapter_index);
437 if (pao)
438 _HPI_6205(pao, phm, phr);
491 static void adapter_delete(struct hpi_adapter_obj *pao,
496 if (!pao) {
500 phw = pao->priv;
503 boot_loader_write_mem32(pao, 0, C6205_BAR0_TIMER1_CTL, 0);
507 delete_adapter_obj(pao);
508 hpi_delete_adapter(pao);
515 static u16 create_adapter_obj(struct hpi_adapter_obj *pao,
518 struct hpi_hw_obj *phw = pao->priv;
525 pao->dsp_crashed = 0;
532 pao->pci.ap_mem_base[1] +
533 C6205_BAR1_HSR / sizeof(*pao->pci.ap_mem_base[1]);
535 pao->pci.ap_mem_base[1] +
536 C6205_BAR1_HDCR / sizeof(*pao->pci.ap_mem_base[1]);
538 pao->pci.ap_mem_base[1] +
539 C6205_BAR1_DSPP / sizeof(*pao->pci.ap_mem_base[1]);
541 pao->has_control_cache = 0;
545 pao->pci.pci_dev))
560 err = adapter_boot_load_dsp(pao, pos_error_code);
580 /* Note that *pao, *phw are zeroed after allocation,
589 pao->pci.pci_dev);
615 pao->has_control_cache = 1;
619 pao->has_control_cache = 0;
639 err = message_response_sequence(pao, &hm, &hr);
648 pao->type = hr.u.ax.info.adapter_type;
649 pao->index = hr.u.ax.info.adapter_index;
658 phw->p_cache->adap_idx = pao->index;
662 pao->irq_query_and_clear = adapter_irq_query_and_clear;
663 pao->instream_host_buffer_status =
665 pao->outstream_host_buffer_status =
668 return hpi_add_adapter(pao);
675 static void delete_adapter_obj(struct hpi_adapter_obj *pao)
677 struct hpi_hw_obj *phw = pao->priv;
708 static int adapter_irq_query_and_clear(struct hpi_adapter_obj *pao,
711 struct hpi_hw_obj *phw = pao->priv;
729 static void outstream_host_buffer_allocate(struct hpi_adapter_obj *pao,
734 struct hpi_hw_obj *phw = pao->priv;
766 pao->pci.pci_dev);
819 hw_message(pao, phm, phr);
831 static void outstream_host_buffer_get_info(struct hpi_adapter_obj *pao,
834 struct hpi_hw_obj *phw = pao->priv;
860 static void outstream_host_buffer_free(struct hpi_adapter_obj *pao,
863 struct hpi_hw_obj *phw = pao->priv;
870 hw_message(pao, phm, phr);
892 static void outstream_write(struct hpi_adapter_obj *pao,
895 struct hpi_hw_obj *phw = pao->priv;
902 hw_message(pao, phm, phr);
957 hw_message(pao, phm, phr); /* send the format to the DSP */
966 static void outstream_get_info(struct hpi_adapter_obj *pao,
969 struct hpi_hw_obj *phw = pao->priv;
974 hw_message(pao, phm, phr);
992 static void outstream_start(struct hpi_adapter_obj *pao,
995 hw_message(pao, phm, phr);
998 static void outstream_reset(struct hpi_adapter_obj *pao,
1001 struct hpi_hw_obj *phw = pao->priv;
1003 hw_message(pao, phm, phr);
1006 static void outstream_open(struct hpi_adapter_obj *pao,
1009 outstream_reset(pao, phm, phr);
1015 static void instream_host_buffer_allocate(struct hpi_adapter_obj *pao,
1020 struct hpi_hw_obj *phw = pao->priv;
1048 pao->pci.pci_dev);
1096 hw_message(pao, phm, phr);
1108 static void instream_host_buffer_get_info(struct hpi_adapter_obj *pao,
1111 struct hpi_hw_obj *phw = pao->priv;
1137 static void instream_host_buffer_free(struct hpi_adapter_obj *pao,
1140 struct hpi_hw_obj *phw = pao->priv;
1147 hw_message(pao, phm, phr);
1165 static void instream_start(struct hpi_adapter_obj *pao,
1168 hw_message(pao, phm, phr);
1176 static void instream_read(struct hpi_adapter_obj *pao,
1179 struct hpi_hw_obj *phw = pao->priv;
1188 hw_message(pao, phm, phr);
1227 static void instream_get_info(struct hpi_adapter_obj *pao,
1230 struct hpi_hw_obj *phw = pao->priv;
1234 hw_message(pao, phm, phr);
1256 static u16 adapter_boot_load_dsp(struct hpi_adapter_obj *pao,
1259 struct hpi_hw_obj *phw = pao->priv;
1268 boot_code_id[1] = pao->pci.pci_dev->subsystem_device;
1341 boot_loader_write_mem32(pao, 0, 0x018C0024, 0x00002202);
1344 boot_loader_write_mem32(pao, 0, C6205_BAR0_TIMER1_CTL, 0);
1346 if (0 != (boot_loader_read_mem32(pao, 0,
1352 boot_loader_write_mem32(pao, 0, C6205_BAR0_TIMER1_CTL, 4);
1353 if (4 != (boot_loader_read_mem32(pao, 0,
1364 err = boot_loader_config_emif(pao, dsp);
1368 err = boot_loader_test_internal_memory(pao, dsp);
1372 err = boot_loader_test_external_memory(pao, dsp);
1376 err = boot_loader_test_pld(pao, dsp);
1381 err = hpi_dsp_code_open(boot_code_id[dsp], pao->pci.pci_dev,
1409 boot_loader_write_mem32(pao, dsp, address,
1414 boot_loader_read_mem32(pao, dsp,
1444 data = boot_loader_read_mem32(pao, dsp,
1484 boot_loader_write_mem32(pao, 0,
1488 boot_loader_read_mem32(pao, 0,
1512 static u32 boot_loader_read_mem32(struct hpi_adapter_obj *pao, int dsp_index,
1515 struct hpi_hw_obj *phw = pao->priv;
1523 p_data = pao->pci.ap_mem_base[1] +
1525 sizeof(*pao->pci.ap_mem_base[1]);
1538 p_data = pao->pci.ap_mem_base[0] +
1545 boot_loader_write_mem32(pao, 0, HPIAL_ADDR, address);
1546 boot_loader_write_mem32(pao, 0, HPIAH_ADDR, address >> 16);
1547 lsb = boot_loader_read_mem32(pao, 0, HPIDL_ADDR);
1548 data = boot_loader_read_mem32(pao, 0, HPIDH_ADDR);
1554 static void boot_loader_write_mem32(struct hpi_adapter_obj *pao,
1557 struct hpi_hw_obj *phw = pao->priv;
1566 p_data = pao->pci.ap_mem_base[1] +
1568 sizeof(*pao->pci.ap_mem_base[1]);
1580 p_data = pao->pci.ap_mem_base[0] +
1586 boot_loader_write_mem32(pao, 0, HPIAL_ADDR, address);
1587 boot_loader_write_mem32(pao, 0, HPIAH_ADDR, address >> 16);
1590 boot_loader_read_mem32(pao, 0, 0);
1592 boot_loader_write_mem32(pao, 0, HPIDL_ADDR, data);
1593 boot_loader_write_mem32(pao, 0, HPIDH_ADDR, data >> 16);
1596 boot_loader_read_mem32(pao, 0, 0);
1600 static u16 boot_loader_config_emif(struct hpi_adapter_obj *pao, int dsp_index)
1615 boot_loader_write_mem32(pao, dsp_index, 0x01800000, 0x3779);
1626 boot_loader_write_mem32(pao, dsp_index, 0x01800008, setting);
1627 if (setting != boot_loader_read_mem32(pao, dsp_index,
1639 boot_loader_write_mem32(pao, dsp_index, 0x01800004, setting);
1640 if (setting != boot_loader_read_mem32(pao, dsp_index,
1651 boot_loader_write_mem32(pao, dsp_index, 0x01800010, setting);
1652 if (setting != boot_loader_read_mem32(pao, dsp_index,
1662 boot_loader_write_mem32(pao, dsp_index, 0x01800014, setting);
1663 if (setting != boot_loader_read_mem32(pao, dsp_index,
1669 boot_loader_write_mem32(pao, dsp_index, 0x01800018,
1674 boot_loader_write_mem32(pao, dsp_index, 0x0180001C,
1683 boot_loader_write_mem32(pao, 0, HPICL_ADDR, write_data);
1684 boot_loader_write_mem32(pao, 0, HPICH_ADDR, write_data);
1687 0xFFF7 & boot_loader_read_mem32(pao, 0, HPICL_ADDR);
1696 boot_loader_write_mem32(pao, 0, HPIAL_ADDR,
1698 boot_loader_write_mem32(pao, 0, HPIAH_ADDR,
1701 0xFFFF & boot_loader_read_mem32(pao, 0,
1705 boot_loader_read_mem32(pao, 0,
1724 boot_loader_write_mem32(pao, dsp_index, 0x01B7C100, 0x0000);
1727 boot_loader_write_mem32(pao, dsp_index, 0x01B7C120, 0x8002);
1729 boot_loader_write_mem32(pao, dsp_index, 0x01B7C11C, 0x8001);
1731 boot_loader_write_mem32(pao, dsp_index, 0x01B7C118, 0x8000);
1736 boot_loader_write_mem32(pao, 0, (0x018C0024L), 0x00002A0A);
1738 boot_loader_write_mem32(pao, dsp_index, 0x01B7C100, 0x0001);
1741 boot_loader_write_mem32(pao, 0, (0x018C0024L), 0x00002A02);
1745 boot_loader_write_mem32(pao, 0, 0x01800004, /* CE1 */
1754 if ((boot_loader_read_mem32(pao, dsp_index, 0x01B7C100) & 0xF)
1760 boot_loader_write_mem32(pao, dsp_index, C6713_EMIF_GCTL,
1774 boot_loader_write_mem32(pao, dsp_index, C6713_EMIF_CE0,
1796 boot_loader_write_mem32(pao, dsp_index, C6713_EMIF_SDRAMEXT,
1816 boot_loader_write_mem32(pao, dsp_index, C6713_EMIF_SDRAMCTL,
1822 boot_loader_write_mem32(pao, dsp_index,
1833 static u16 boot_loader_test_memory(struct hpi_adapter_obj *pao, int dsp_index,
1850 boot_loader_write_mem32(pao, dsp_index, test_addr,
1852 data = boot_loader_read_mem32(pao, dsp_index,
1871 boot_loader_write_mem32(pao, dsp_index, test_addr, test_data);
1872 boot_loader_write_mem32(pao, dsp_index, test_addr + 4, 0);
1873 data = boot_loader_read_mem32(pao, dsp_index, test_addr);
1882 boot_loader_write_mem32(pao, dsp_index, test_addr, 0x0);
1888 boot_loader_write_mem32(pao, dsp_index, test_addr, 0x0);
1893 static u16 boot_loader_test_internal_memory(struct hpi_adapter_obj *pao,
1900 err = boot_loader_test_memory(pao, dsp_index, 0x00000000,
1904 err = boot_loader_test_memory(pao, dsp_index,
1909 err = boot_loader_test_memory(pao, dsp_index, 0x00000000,
1913 err = boot_loader_test_memory(pao, dsp_index,
1923 static u16 boot_loader_test_external_memory(struct hpi_adapter_obj *pao,
1931 if (pao->pci.pci_dev->subsystem_device == 0x5000) {
1945 if (boot_loader_test_memory(pao, dsp_index, dRAM_start_address,
1951 static u16 boot_loader_test_pld(struct hpi_adapter_obj *pao, int dsp_index)
1956 if (pao->pci.pci_dev->subsystem_device == 0x5000) {
1958 data = boot_loader_read_mem32(pao, dsp_index,
1962 data = boot_loader_read_mem32(pao, dsp_index,
1969 if (pao->pci.pci_dev->subsystem_device == 0x8700) {
1971 data = boot_loader_read_mem32(pao, dsp_index,
1976 boot_loader_write_mem32(pao, dsp_index, 0x90000000,
1986 static short hpi6205_transfer_data(struct hpi_adapter_obj *pao, u8 *p_data,
1989 struct hpi_hw_obj *phw = pao->priv;
2084 static u16 message_response_sequence(struct hpi_adapter_obj *pao,
2088 struct hpi_hw_obj *phw = pao->priv;
2168 static void hw_message(struct hpi_adapter_obj *pao, struct hpi_message *phm,
2174 hpios_dsplock_lock(pao);
2176 err = message_response_sequence(pao, phm, phr);
2188 pao->dsp_crashed++;
2194 pao->dsp_crashed = 0;
2202 err = hpi6205_transfer_data(pao, phm->u.d.u.data.pb_data,
2208 err = hpi6205_transfer_data(pao, phm->u.d.u.data.pb_data,
2216 hpios_dsplock_unlock(pao);