Lines Matching defs:dram

601     const struct iwx_fw_onesect *sec, struct iwx_dma_info *dram)
603 int err = iwx_dma_contig_alloc(sc->sc_dmat, dram, sec->fws_len, 0);
610 memcpy(dram->vaddr, sec->fws_data, sec->fws_len);
617 struct iwx_self_init_dram *dram = &sc->init_dram;
620 if (!dram->paging)
624 for (i = 0; i < dram->paging_cnt; i++)
625 iwx_dma_contig_free(&dram->paging[i]);
627 free(dram->paging, M_DEVBUF, dram->paging_cnt * sizeof(*dram->paging));
628 dram->paging_cnt = 0;
629 dram->paging = NULL;
651 struct iwx_self_init_dram *dram = &sc->init_dram;
654 KASSERT(dram->paging == NULL);
656 dram->lmac_cnt = iwx_get_num_sections(fws, 0);
658 dram->umac_cnt = iwx_get_num_sections(fws, dram->lmac_cnt + 1);
660 dram->paging_cnt = iwx_get_num_sections(fws,
661 dram->lmac_cnt + dram->umac_cnt + 2);
663 dram->fw = mallocarray(dram->umac_cnt + dram->lmac_cnt,
664 sizeof(*dram->fw), M_DEVBUF, M_ZERO | M_NOWAIT);
665 if (!dram->fw) {
671 dram->paging = mallocarray(dram->paging_cnt, sizeof(*dram->paging),
673 if (!dram->paging) {
680 for (i = 0; i < dram->lmac_cnt; i++) {
682 &dram->fw[fw_cnt]);
686 htole64(dram->fw[fw_cnt].paddr);
688 (unsigned long long)dram->fw[fw_cnt].paddr,
689 (unsigned long long)dram->fw[fw_cnt].size));
694 for (i = 0; i < dram->umac_cnt; i++) {
697 &fws->fw_sect[fw_cnt + 1], &dram->fw[fw_cnt]);
701 htole64(dram->fw[fw_cnt].paddr);
703 (unsigned long long)dram->fw[fw_cnt].paddr,
704 (unsigned long long)dram->fw[fw_cnt].size));
710 * Paging memory isn't stored in dram->fw as the umac and lmac - it is
718 for (i = 0; i < dram->paging_cnt; i++) {
723 &fws->fw_sect[fw_idx], &dram->paging[i]);
727 ctxt_dram->virtual_img[i] = htole64(dram->paging[i].paddr);
729 (unsigned long long)dram->paging[i].paddr,
730 (unsigned long long)dram->paging[i].size));
959 /* allocate ucode sections in dram and set addresses */
960 err = iwx_init_fw_sec(sc, fws, &ctxt_info->dram);
1044 /* allocate ucode sections in dram and set addresses */
1045 err = iwx_init_fw_sec(sc, fws, &prph_scratch->dram);
1104 struct iwx_self_init_dram *dram = &sc->init_dram;
1107 if (!dram->fw)
1110 for (i = 0; i < dram->lmac_cnt + dram->umac_cnt; i++)
1111 iwx_dma_contig_free(&dram->fw[i]);
1113 free(dram->fw, M_DEVBUF,
1114 (dram->lmac_cnt + dram->umac_cnt) * sizeof(*dram->fw));
1115 dram->lmac_cnt = 0;
1116 dram->umac_cnt = 0;
1117 dram->fw = NULL;