Lines Matching refs:section

399 					struct panthor_fw_section *section)  in panthor_fw_init_section_mem()  argument
401 bool was_mapped = !!section->mem->kmap; in panthor_fw_init_section_mem()
404 if (!section->data.size && in panthor_fw_init_section_mem()
405 !(section->flags & CSF_FW_BINARY_IFACE_ENTRY_ZERO)) in panthor_fw_init_section_mem()
408 ret = panthor_kernel_bo_vmap(section->mem); in panthor_fw_init_section_mem()
412 memcpy(section->mem->kmap, section->data.buf, section->data.size); in panthor_fw_init_section_mem()
413 if (section->flags & CSF_FW_BINARY_IFACE_ENTRY_ZERO) { in panthor_fw_init_section_mem()
414 memset(section->mem->kmap + section->data.size, 0, in panthor_fw_init_section_mem()
415 panthor_kernel_bo_size(section->mem) - section->data.size); in panthor_fw_init_section_mem()
419 panthor_kernel_bo_vunmap(section->mem); in panthor_fw_init_section_mem()
496 struct panthor_fw_section *section; in panthor_fw_load_section_entry() local
550 section = drmm_kzalloc(&ptdev->base, sizeof(*section), GFP_KERNEL); in panthor_fw_load_section_entry()
551 if (!section) in panthor_fw_load_section_entry()
554 list_add_tail(&section->node, &ptdev->fw->sections); in panthor_fw_load_section_entry()
555 section->flags = hdr.flags; in panthor_fw_load_section_entry()
556 section->data.size = hdr.data.end - hdr.data.start; in panthor_fw_load_section_entry()
558 if (section->data.size > 0) { in panthor_fw_load_section_entry()
559 void *data = drmm_kmalloc(&ptdev->base, section->data.size, GFP_KERNEL); in panthor_fw_load_section_entry()
564 memcpy(data, fw->data + hdr.data.start, section->data.size); in panthor_fw_load_section_entry()
565 section->data.buf = data; in panthor_fw_load_section_entry()
576 section->name = name; in panthor_fw_load_section_entry()
603 section->mem = panthor_kernel_bo_create(ptdev, panthor_fw_vm(ptdev), in panthor_fw_load_section_entry()
607 if (IS_ERR(section->mem)) in panthor_fw_load_section_entry()
608 return PTR_ERR(section->mem); in panthor_fw_load_section_entry()
610 if (drm_WARN_ON(&ptdev->base, section->mem->va_node.start != hdr.va.start)) in panthor_fw_load_section_entry()
613 if (section->flags & CSF_FW_BINARY_IFACE_ENTRY_SHARED) { in panthor_fw_load_section_entry()
614 ret = panthor_kernel_bo_vmap(section->mem); in panthor_fw_load_section_entry()
619 panthor_fw_init_section_mem(ptdev, section); in panthor_fw_load_section_entry()
621 bo = to_panthor_bo(section->mem->obj); in panthor_fw_load_section_entry()
630 ptdev->fw->shared_section = section; in panthor_fw_load_section_entry()
677 struct panthor_fw_section *section; in panthor_reload_fw_sections() local
679 list_for_each_entry(section, &ptdev->fw->sections, node) { in panthor_reload_fw_sections()
682 if (!full_reload && !(section->flags & CSF_FW_BINARY_IFACE_ENTRY_WR)) in panthor_reload_fw_sections()
685 panthor_fw_init_section_mem(ptdev, section); in panthor_reload_fw_sections()
686 sgt = drm_gem_shmem_get_pages_sgt(&to_panthor_bo(section->mem->obj)->base); in panthor_reload_fw_sections()
1163 struct panthor_fw_section *section; in panthor_fw_unplug() local
1175 list_for_each_entry(section, &ptdev->fw->sections, node) in panthor_fw_unplug()
1176 panthor_kernel_bo_destroy(section->mem); in panthor_fw_unplug()