Lines Matching refs:acr

33 gp102_acr_wpr_patch(struct nvkm_acr *acr, s64 adjust)  in gp102_acr_wpr_patch()  argument
41 nvkm_robj(acr->wpr, offset, &hdr, sizeof(hdr)); in gp102_acr_wpr_patch()
42 wpr_header_v1_dump(&acr->subdev, &hdr); in gp102_acr_wpr_patch()
44 list_for_each_entry(lsfw, &acr->lsfw, head) { in gp102_acr_wpr_patch()
48 nvkm_robj(acr->wpr, hdr.lsb_offset, &lsb, sizeof(lsb)); in gp102_acr_wpr_patch()
49 lsb_header_v1_dump(&acr->subdev, &lsb); in gp102_acr_wpr_patch()
51 lsfw->func->bld_patch(acr, lsb.tail.bl_data_off, adjust); in gp102_acr_wpr_patch()
60 gp102_acr_wpr_build_lsb(struct nvkm_acr *acr, struct nvkm_acr_lsfw *lsfw) in gp102_acr_wpr_build_lsb() argument
70 nvkm_wobj(acr->wpr, lsfw->offset.lsb, &hdr, sizeof(hdr)); in gp102_acr_wpr_build_lsb()
75 gp102_acr_wpr_build(struct nvkm_acr *acr, struct nvkm_acr_lsf *rtos) in gp102_acr_wpr_build() argument
82 list_for_each_entry(lsfw, &acr->lsfw, head) { in gp102_acr_wpr_build()
94 nvkm_wobj(acr->wpr, offset, &hdr, sizeof(hdr)); in gp102_acr_wpr_build()
98 ret = gp102_acr_wpr_build_lsb(acr, lsfw); in gp102_acr_wpr_build()
103 nvkm_wobj(acr->wpr, lsfw->offset.img, in gp102_acr_wpr_build()
108 lsfw->func->bld_write(acr, lsfw->offset.bld, lsfw); in gp102_acr_wpr_build()
112 nvkm_wo32(acr->wpr, offset, WPR_HEADER_V1_FALCON_ID_INVALID); in gp102_acr_wpr_build()
117 gp102_acr_wpr_alloc(struct nvkm_acr *acr, u32 wpr_size) in gp102_acr_wpr_alloc() argument
119 int ret = nvkm_memory_new(acr->subdev.device, NVKM_MEM_TARGET_INST, in gp102_acr_wpr_alloc()
121 &acr->wpr); in gp102_acr_wpr_alloc()
125 acr->shadow_start = nvkm_memory_addr(acr->wpr); in gp102_acr_wpr_alloc()
126 acr->wpr_start = acr->shadow_start + (nvkm_memory_size(acr->wpr) >> 1); in gp102_acr_wpr_alloc()
127 acr->wpr_end = acr->wpr_start + (nvkm_memory_size(acr->wpr) >> 1); in gp102_acr_wpr_alloc()
132 gp102_acr_wpr_layout(struct nvkm_acr *acr) in gp102_acr_wpr_layout() argument
142 list_for_each_entry(lsfw, &acr->lsfw, head) { in gp102_acr_wpr_layout()
161 gp102_acr_wpr_parse(struct nvkm_acr *acr) in gp102_acr_wpr_parse() argument
163 const struct wpr_header_v1 *hdr = (void *)acr->wpr_fw->data; in gp102_acr_wpr_parse()
167 wpr_header_v1_dump(&acr->subdev, hdr); in gp102_acr_wpr_parse()
168 lsfw = nvkm_acr_lsfw_add(NULL, acr, NULL, (hdr++)->falcon_id); in gp102_acr_wpr_parse()
195 gp102_acr_load_load(struct nvkm_acr *acr, struct nvkm_acr_hsfw *hsfw) in gp102_acr_load_load() argument
201 desc->regions.region_props[0].start_addr = acr->wpr_start >> 8; in gp102_acr_load_load()
202 desc->regions.region_props[0].end_addr = acr->wpr_end >> 8; in gp102_acr_load_load()
208 acr->shadow_start >> 8; in gp102_acr_load_load()
209 flcn_acr_desc_v1_dump(&acr->subdev, desc); in gp102_acr_load_load()
211 return gm200_acr_hsfw_load(acr, hsfw, in gp102_acr_load_load()
212 &acr->subdev.device->sec2->falcon); in gp102_acr_load_load()
254 gp102_acr_load(struct nvkm_acr *acr, int ver, const struct nvkm_acr_fwif *fwif) in gp102_acr_load() argument
256 struct nvkm_subdev *subdev = &acr->subdev; in gp102_acr_load()
260 acr, "acr/bl", "acr/ucode_load", "load"); in gp102_acr_load()
265 acr, "acr/unload_bl", "acr/ucode_unload", in gp102_acr_load()