/linux-5.19.10/drivers/gpu/drm/nouveau/nvkm/falcon/ |
D | base.c | 28 nvkm_falcon_load_imem(struct nvkm_falcon *falcon, void *data, u32 start, in nvkm_falcon_load_imem() argument 31 if (secure && !falcon->secret) { in nvkm_falcon_load_imem() 32 nvkm_warn(falcon->user, in nvkm_falcon_load_imem() 37 falcon->func->load_imem(falcon, data, start, size, tag, port, in nvkm_falcon_load_imem() 42 nvkm_falcon_load_dmem(struct nvkm_falcon *falcon, void *data, u32 start, in nvkm_falcon_load_dmem() argument 45 mutex_lock(&falcon->dmem_mutex); in nvkm_falcon_load_dmem() 47 falcon->func->load_dmem(falcon, data, start, size, port); in nvkm_falcon_load_dmem() 49 mutex_unlock(&falcon->dmem_mutex); in nvkm_falcon_load_dmem() 53 nvkm_falcon_read_dmem(struct nvkm_falcon *falcon, u32 start, u32 size, u8 port, in nvkm_falcon_read_dmem() argument 56 mutex_lock(&falcon->dmem_mutex); in nvkm_falcon_read_dmem() [all …]
|
D | v1.c | 29 nvkm_falcon_v1_load_imem(struct nvkm_falcon *falcon, void *data, u32 start, in nvkm_falcon_v1_load_imem() argument 39 nvkm_falcon_wr32(falcon, 0x180 + (port * 16), reg); in nvkm_falcon_v1_load_imem() 43 nvkm_falcon_wr32(falcon, 0x188 + (port * 16), tag++); in nvkm_falcon_v1_load_imem() 44 nvkm_falcon_wr32(falcon, 0x184 + (port * 16), ((u32 *)data)[i]); in nvkm_falcon_v1_load_imem() 56 nvkm_falcon_wr32(falcon, 0x188 + (port * 16), tag++); in nvkm_falcon_v1_load_imem() 57 nvkm_falcon_wr32(falcon, 0x184 + (port * 16), in nvkm_falcon_v1_load_imem() 64 nvkm_falcon_wr32(falcon, 0x184 + (port * 16), 0); in nvkm_falcon_v1_load_imem() 68 nvkm_falcon_v1_load_emem(struct nvkm_falcon *falcon, void *data, u32 start, in nvkm_falcon_v1_load_emem() argument 76 nvkm_falcon_wr32(falcon, 0xac0 + (port * 8), start | (0x1 << 24)); in nvkm_falcon_v1_load_emem() 78 nvkm_falcon_wr32(falcon, 0xac4 + (port * 8), ((u32 *)data)[i]); in nvkm_falcon_v1_load_emem() [all …]
|
D | msgq.c | 29 msgq->position = nvkm_falcon_rd32(msgq->qmgr->falcon, msgq->tail_reg); in nvkm_falcon_msgq_open() 35 struct nvkm_falcon *falcon = msgq->qmgr->falcon; in nvkm_falcon_msgq_close() local 38 nvkm_falcon_wr32(falcon, msgq->tail_reg, msgq->position); in nvkm_falcon_msgq_close() 46 u32 head = nvkm_falcon_rd32(msgq->qmgr->falcon, msgq->head_reg); in nvkm_falcon_msgq_empty() 47 u32 tail = nvkm_falcon_rd32(msgq->qmgr->falcon, msgq->tail_reg); in nvkm_falcon_msgq_empty() 54 struct nvkm_falcon *falcon = msgq->qmgr->falcon; in nvkm_falcon_msgq_pop() local 57 head = nvkm_falcon_rd32(falcon, msgq->head_reg); in nvkm_falcon_msgq_pop() 71 nvkm_falcon_read_dmem(falcon, tail, size, 0, data); in nvkm_falcon_msgq_pop() 157 struct nvkm_falcon *falcon = msgq->qmgr->falcon; in nvkm_falcon_msgq_recv_initmsg() local 161 msgq->head_reg = falcon->func->msgq.head; in nvkm_falcon_msgq_recv_initmsg() [all …]
|
D | Kbuild | 2 nvkm-y += nvkm/falcon/base.o 3 nvkm-y += nvkm/falcon/cmdq.o 4 nvkm-y += nvkm/falcon/msgq.o 5 nvkm-y += nvkm/falcon/qmgr.o 6 nvkm-y += nvkm/falcon/v1.o
|
D | cmdq.c | 28 u32 head = nvkm_falcon_rd32(cmdq->qmgr->falcon, cmdq->head_reg); in nvkm_falcon_cmdq_has_room() 29 u32 tail = nvkm_falcon_rd32(cmdq->qmgr->falcon, cmdq->tail_reg); in nvkm_falcon_cmdq_has_room() 53 struct nvkm_falcon *falcon = cmdq->qmgr->falcon; in nvkm_falcon_cmdq_push() local 54 nvkm_falcon_load_dmem(falcon, data, cmdq->position, size, 0); in nvkm_falcon_cmdq_push() 73 struct nvkm_falcon *falcon = cmdq->qmgr->falcon; in nvkm_falcon_cmdq_open() local 84 cmdq->position = nvkm_falcon_rd32(falcon, cmdq->head_reg); in nvkm_falcon_cmdq_open() 95 nvkm_falcon_wr32(cmdq->qmgr->falcon, cmdq->head_reg, cmdq->position); in nvkm_falcon_cmdq_close() 178 const struct nvkm_falcon_func *func = cmdq->qmgr->falcon->func; in nvkm_falcon_cmdq_init()
|
D | qmgr.c | 28 const struct nvkm_subdev *subdev = qmgr->falcon->owner; in nvkm_falcon_qmgr_seq_acquire() 70 nvkm_falcon_qmgr_new(struct nvkm_falcon *falcon, in nvkm_falcon_qmgr_new() argument 79 qmgr->falcon = falcon; in nvkm_falcon_qmgr_new()
|
/linux-5.19.10/drivers/gpu/drm/tegra/ |
D | falcon.c | 20 static void falcon_writel(struct falcon *falcon, u32 value, u32 offset) in falcon_writel() argument 22 writel(value, falcon->regs + offset); in falcon_writel() 25 int falcon_wait_idle(struct falcon *falcon) in falcon_wait_idle() argument 29 return readl_poll_timeout(falcon->regs + FALCON_IDLESTATE, value, in falcon_wait_idle() 33 static int falcon_dma_wait_idle(struct falcon *falcon) in falcon_dma_wait_idle() argument 37 return readl_poll_timeout(falcon->regs + FALCON_DMATRFCMD, value, in falcon_dma_wait_idle() 41 static int falcon_copy_chunk(struct falcon *falcon, in falcon_copy_chunk() argument 51 falcon_writel(falcon, offset, FALCON_DMATRFMOFFS); in falcon_copy_chunk() 52 falcon_writel(falcon, base, FALCON_DMATRFFBOFFS); in falcon_copy_chunk() 53 falcon_writel(falcon, cmd, FALCON_DMATRFCMD); in falcon_copy_chunk() [all …]
|
D | falcon.h | 98 struct falcon { struct 106 int falcon_init(struct falcon *falcon); argument 107 void falcon_exit(struct falcon *falcon); 108 int falcon_read_firmware(struct falcon *falcon, const char *firmware_name); 109 int falcon_load_firmware(struct falcon *falcon); 110 int falcon_boot(struct falcon *falcon); 111 void falcon_execute_method(struct falcon *falcon, u32 method, u32 data); 112 int falcon_wait_idle(struct falcon *falcon);
|
D | vic.c | 32 struct falcon falcon; member 99 err = falcon_boot(&vic->falcon); in vic_boot() 103 hdr = vic->falcon.firmware.virt; in vic_boot() 108 hdr = vic->falcon.firmware.virt + in vic_boot() 112 falcon_execute_method(&vic->falcon, VIC_SET_FCE_UCODE_SIZE, in vic_boot() 115 &vic->falcon, VIC_SET_FCE_UCODE_OFFSET, in vic_boot() 116 (vic->falcon.firmware.iova + fce_bin_data_offset) >> 8); in vic_boot() 119 err = falcon_wait_idle(&vic->falcon); in vic_boot() 209 dma_unmap_single(vic->dev, vic->falcon.firmware.phys, in vic_exit() 210 vic->falcon.firmware.size, DMA_TO_DEVICE); in vic_exit() [all …]
|
D | nvdec.c | 31 struct falcon falcon; member 77 err = falcon_boot(&nvdec->falcon); in nvdec_boot() 81 err = falcon_wait_idle(&nvdec->falcon); in nvdec_boot() 170 dma_unmap_single(nvdec->dev, nvdec->falcon.firmware.phys, in nvdec_exit() 171 nvdec->falcon.firmware.size, DMA_TO_DEVICE); in nvdec_exit() 172 tegra_drm_free(tegra, nvdec->falcon.firmware.size, in nvdec_exit() 173 nvdec->falcon.firmware.virt, in nvdec_exit() 174 nvdec->falcon.firmware.iova); in nvdec_exit() 176 dma_free_coherent(nvdec->dev, nvdec->falcon.firmware.size, in nvdec_exit() 177 nvdec->falcon.firmware.virt, in nvdec_exit() [all …]
|
/linux-5.19.10/drivers/gpu/drm/nouveau/nvkm/engine/ |
D | falcon.c | 32 struct nvkm_falcon *falcon = nvkm_falcon(oclass->engine); in nvkm_falcon_oclass_get() local 35 while (falcon->func->sclass[c].oclass) { in nvkm_falcon_oclass_get() 37 oclass->base = falcon->func->sclass[index]; in nvkm_falcon_oclass_get() 61 struct nvkm_falcon *falcon = nvkm_falcon(engine); in nvkm_falcon_intr() local 62 struct nvkm_subdev *subdev = &falcon->engine.subdev; in nvkm_falcon_intr() 64 const u32 base = falcon->addr; in nvkm_falcon_intr() 74 if (falcon->func->intr) { in nvkm_falcon_intr() 75 falcon->func->intr(falcon, chan); in nvkm_falcon_intr() 98 struct nvkm_falcon *falcon = nvkm_falcon(engine); in nvkm_falcon_fini() local 99 struct nvkm_device *device = falcon->engine.subdev.device; in nvkm_falcon_fini() [all …]
|
/linux-5.19.10/drivers/gpu/drm/nouveau/nvkm/engine/sec2/ |
D | gp102.c | 59 gp102_sec2_acr_bootstrap_falcon(struct nvkm_falcon *falcon, in gp102_sec2_acr_bootstrap_falcon() argument 62 struct nvkm_sec2 *sec2 = container_of(falcon, typeof(*sec2), falcon); in gp102_sec2_acr_bootstrap_falcon() 78 gp102_sec2_acr_boot(struct nvkm_falcon *falcon) in gp102_sec2_acr_boot() argument 81 nvkm_falcon_load_dmem(falcon, &args, in gp102_sec2_acr_boot() 82 falcon->func->emem_addr, sizeof(args), 0); in gp102_sec2_acr_boot() 83 nvkm_falcon_start(falcon); in gp102_sec2_acr_boot() 114 .argv = lsfw->falcon->func->emem_addr, in gp102_sec2_acr_bld_write() 167 struct nvkm_falcon *falcon = &sec2->falcon; in gp102_sec2_intr() local 168 u32 disp = nvkm_falcon_rd32(falcon, 0x01c); in gp102_sec2_intr() 169 u32 intr = nvkm_falcon_rd32(falcon, 0x008) & disp & ~(disp >> 16); in gp102_sec2_intr() [all …]
|
D | base.c | 75 nvkm_falcon_dtor(&sec2->falcon); in nvkm_sec2_dtor() 107 sec2->engine.subdev.name, addr, &sec2->falcon); in nvkm_sec2_new_() 111 if ((ret = nvkm_falcon_qmgr_new(&sec2->falcon, &sec2->qmgr)) || in nvkm_sec2_new_()
|
/linux-5.19.10/drivers/gpu/drm/nouveau/nvkm/subdev/fb/ |
D | gp102.c | 38 struct nvkm_falcon *falcon = &device->nvdec[0]->falcon; in gp102_fb_vpr_scrub() local 47 nvkm_falcon_get(falcon, subdev); in gp102_fb_vpr_scrub() 56 if (falcon->debug) { in gp102_fb_vpr_scrub() 66 nvkm_falcon_reset(falcon); in gp102_fb_vpr_scrub() 67 nvkm_falcon_bind_context(falcon, NULL); in gp102_fb_vpr_scrub() 69 nvkm_falcon_load_imem(falcon, scrub_data, lhdr->non_sec_code_off, in gp102_fb_vpr_scrub() 72 nvkm_falcon_load_imem(falcon, scrub_data + lhdr->apps[0], in gp102_fb_vpr_scrub() 76 nvkm_falcon_load_dmem(falcon, scrub_data + lhdr->data_dma_base, 0, in gp102_fb_vpr_scrub() 79 nvkm_falcon_set_start_addr(falcon, 0x0); in gp102_fb_vpr_scrub() 80 nvkm_falcon_start(falcon); in gp102_fb_vpr_scrub() [all …]
|
/linux-5.19.10/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/ |
D | gk20a.c | 98 struct nvkm_falcon *falcon = &pmu->base.falcon; in gk20a_pmu_dvfs_get_dev_status() local 100 status->busy = nvkm_falcon_rd32(falcon, 0x508 + (BUSY_SLOT * 0x10)); in gk20a_pmu_dvfs_get_dev_status() 101 status->total= nvkm_falcon_rd32(falcon, 0x508 + (CLK_SLOT * 0x10)); in gk20a_pmu_dvfs_get_dev_status() 107 struct nvkm_falcon *falcon = &pmu->base.falcon; in gk20a_pmu_dvfs_reset_dev_status() local 109 nvkm_falcon_wr32(falcon, 0x508 + (BUSY_SLOT * 0x10), 0x80000000); in gk20a_pmu_dvfs_reset_dev_status() 110 nvkm_falcon_wr32(falcon, 0x508 + (CLK_SLOT * 0x10), 0x80000000); in gk20a_pmu_dvfs_reset_dev_status() 163 nvkm_falcon_put(&pmu->falcon, &pmu->subdev); in gk20a_pmu_fini() 172 struct nvkm_falcon *falcon = &pmu->falcon; in gk20a_pmu_init() local 175 ret = nvkm_falcon_get(falcon, subdev); in gk20a_pmu_init() 177 nvkm_error(subdev, "cannot acquire %s falcon!\n", falcon->name); in gk20a_pmu_init() [all …]
|
D | gm200.c | 27 gm200_pmu_flcn_reset(struct nvkm_falcon *falcon) in gm200_pmu_flcn_reset() argument 29 struct nvkm_pmu *pmu = container_of(falcon, typeof(*pmu), falcon); in gm200_pmu_flcn_reset() 31 nvkm_falcon_wr32(falcon, 0x014, 0x0000ffff); in gm200_pmu_flcn_reset() 33 return nvkm_falcon_enable(falcon); in gm200_pmu_flcn_reset()
|
D | gm20b.c | 39 gm20b_pmu_acr_bootstrap_falcon(struct nvkm_falcon *falcon, in gm20b_pmu_acr_bootstrap_falcon() argument 42 struct nvkm_pmu *pmu = container_of(falcon, typeof(*pmu), falcon); in gm20b_pmu_acr_bootstrap_falcon() 66 gm20b_pmu_acr_boot(struct nvkm_falcon *falcon) in gm20b_pmu_acr_boot() argument 69 const u32 addr_args = falcon->data.limit - sizeof(struct nv_pmu_args); in gm20b_pmu_acr_boot() 70 nvkm_falcon_load_dmem(falcon, &args, addr_args, sizeof(args), 0); in gm20b_pmu_acr_boot() 71 nvkm_falcon_start(falcon); in gm20b_pmu_acr_boot() 113 .argv = lsfw->falcon->data.limit - sizeof(struct nv_pmu_args), in gm20b_pmu_acr_bld_write() 231 return nvkm_acr_lsfw_load_sig_image_desc(&pmu->subdev, &pmu->falcon, in gm20b_pmu_load()
|
D | gp10b.c | 38 gp10b_pmu_acr_bootstrap_multiple_falcons(struct nvkm_falcon *falcon, u32 mask) in gp10b_pmu_acr_bootstrap_multiple_falcons() argument 40 struct nvkm_pmu *pmu = container_of(falcon, typeof(*pmu), falcon); in gp10b_pmu_acr_bootstrap_multiple_falcons()
|
/linux-5.19.10/drivers/gpu/drm/nouveau/include/nvkm/engine/ |
D | falcon.h | 93 int (*enable)(struct nvkm_falcon *falcon); 94 void (*disable)(struct nvkm_falcon *falcon); 107 nvkm_falcon_rd32(struct nvkm_falcon *falcon, u32 addr) in nvkm_falcon_rd32() argument 109 return nvkm_rd32(falcon->owner->device, falcon->addr + addr); in nvkm_falcon_rd32() 113 nvkm_falcon_wr32(struct nvkm_falcon *falcon, u32 addr, u32 data) in nvkm_falcon_wr32() argument 115 nvkm_wr32(falcon->owner->device, falcon->addr + addr, data); in nvkm_falcon_wr32() 119 nvkm_falcon_mask(struct nvkm_falcon *falcon, u32 addr, u32 mask, u32 val) in nvkm_falcon_mask() argument 121 struct nvkm_device *device = falcon->owner->device; in nvkm_falcon_mask() 123 return nvkm_mask(device, falcon->addr + addr, mask, val); in nvkm_falcon_mask()
|
/linux-5.19.10/drivers/gpu/drm/nouveau/nvkm/subdev/acr/ |
D | gm200.c | 239 nvkm_falcon_load_dmem(hsf->falcon, &hsdesc, 0, sizeof(hsdesc), 0); in gm200_acr_hsfw_bld() 248 struct nvkm_falcon *falcon = hsf->falcon; in gm200_acr_hsfw_boot() local 253 nvkm_falcon_reset(falcon); in gm200_acr_hsfw_boot() 254 nvkm_falcon_bind_context(falcon, acr->inst); in gm200_acr_hsfw_boot() 257 nvkm_falcon_load_imem(falcon, hsf->imem, in gm200_acr_hsfw_boot() 258 falcon->code.limit - hsf->imem_size, in gm200_acr_hsfw_boot() 267 nvkm_mc_intr_mask(device, falcon->owner->type, falcon->owner->inst, false); in gm200_acr_hsfw_boot() 269 nvkm_falcon_wr32(falcon, 0x040, 0xdeada5a5); in gm200_acr_hsfw_boot() 270 nvkm_falcon_set_start_addr(falcon, hsf->imem_tag << 8); in gm200_acr_hsfw_boot() 271 nvkm_falcon_start(falcon); in gm200_acr_hsfw_boot() [all …]
|
D | lsfw.c | 59 struct nvkm_falcon *falcon, enum nvkm_acr_lsf_id id) in nvkm_acr_lsfw_add() argument 81 lsfw->falcon = falcon; in nvkm_acr_lsfw_add() 87 struct nvkm_falcon *falcon, in nvkm_acr_lsfw_load_sig_image_desc_() argument 97 if (IS_ERR((lsfw = nvkm_acr_lsfw_add(func, acr, falcon, id)))) in nvkm_acr_lsfw_load_sig_image_desc_() 141 struct nvkm_falcon *falcon, in nvkm_acr_lsfw_load_sig_image_desc() argument 149 lsfw = nvkm_acr_lsfw_load_sig_image_desc_(subdev, falcon, id, path, ver, in nvkm_acr_lsfw_load_sig_image_desc() 161 struct nvkm_falcon *falcon, in nvkm_acr_lsfw_load_sig_image_desc_v1() argument 169 lsfw = nvkm_acr_lsfw_load_sig_image_desc_(subdev, falcon, id, path, ver, in nvkm_acr_lsfw_load_sig_image_desc_v1() 181 struct nvkm_falcon *falcon, in nvkm_acr_lsfw_load_bl_inst_data_sig() argument 194 if (IS_ERR((lsfw = nvkm_acr_lsfw_add(func, acr, falcon, id)))) in nvkm_acr_lsfw_load_bl_inst_data_sig()
|
D | base.c | 51 ret = nvkm_falcon_get(hsf->falcon, subdev); in nvkm_acr_hsf_boot() 56 nvkm_falcon_put(hsf->falcon, subdev); in nvkm_acr_hsf_boot() 105 ret = lsf->func->boot(lsf->falcon); in nvkm_acr_load() 164 bootstrap_multiple_falcons(acrflcn->falcon, mask); in nvkm_acr_bootstrap_falcons() 168 int ret = acrflcn->func->bootstrap_falcon(acrflcn->falcon, id); in nvkm_acr_bootstrap_falcons() 247 ret = nvkm_falcon_get(lsfw->falcon, subdev); in nvkm_acr_oneinit() 251 nvkm_falcon_put(lsfw->falcon, subdev); in nvkm_acr_oneinit() 256 lsf->falcon = lsfw->falcon; in nvkm_acr_oneinit()
|
/linux-5.19.10/drivers/net/ethernet/sfc/falcon/ |
D | Makefile | 2 sfc-falcon-y += efx.o nic.o farch.o falcon.o tx.o rx.o selftest.o \ 6 sfc-falcon-$(CONFIG_SFC_FALCON_MTD) += mtd.o 7 obj-$(CONFIG_SFC_FALCON) += sfc-falcon.o
|
/linux-5.19.10/arch/arm64/boot/dts/renesas/ |
D | r8a779a0-falcon.dts | 9 #include "r8a779a0-falcon-cpu.dtsi" 10 #include "r8a779a0-falcon-csi-dsi.dtsi" 11 #include "r8a779a0-falcon-ethernet.dtsi" 15 compatible = "renesas,falcon-breakout", "renesas,falcon-cpu", "renesas,r8a779a0";
|
/linux-5.19.10/drivers/video/fbdev/ |
D | atafb.c | 127 } falcon; member 139 #define HHT hw.falcon.hht 140 #define HBB hw.falcon.hbb 141 #define HBE hw.falcon.hbe 142 #define HDB hw.falcon.hdb 143 #define HDE hw.falcon.hde 144 #define HSS hw.falcon.hss 145 #define VFT hw.falcon.vft 146 #define VBB hw.falcon.vbb 147 #define VBE hw.falcon.vbe [all …]
|