static ssize_t core_info_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) { struct msm_vidc_core *core = file->private_data; int i = 0; if (!core) { dprintk(VIDC_ERR, "Invalid params, core: %p\n", core); return 0; } INIT_DBG_BUF(dbg_buf); write_str(&dbg_buf, "===============================\n"); write_str(&dbg_buf, "CORE %d: 0x%p\n", core->id, core); write_str(&dbg_buf, "===============================\n"); write_str(&dbg_buf, "state: %d\n", core->state); write_str(&dbg_buf, "base addr: 0x%x\n", core->base_addr); write_str(&dbg_buf, "register_base: 0x%x\n", core->register_base); write_str(&dbg_buf, "register_size: %u\n", core->register_size); write_str(&dbg_buf, "irq: %u\n", core->irq); for (i = SYS_MSG_START; i < SYS_MSG_END; i++) { write_str(&dbg_buf, "completions[%d]: %s\n", i, completion_done(&core->completions[SYS_MSG_INDEX(i)]) ? "pending" : "done"); } return simple_read_from_buffer(buf, count, ppos, dbg_buf.ptr, dbg_buf.filled_size); }
static ssize_t inst_info_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) { struct msm_vidc_inst *inst = file->private_data; int i, j; if (!inst) { dprintk(VIDC_ERR, "Invalid params, core: %p\n", inst); return 0; } INIT_DBG_BUF(dbg_buf); write_str(&dbg_buf, "===============================\n"); write_str(&dbg_buf, "INSTANCE: 0x%p (%s)\n", inst, inst->session_type == MSM_VIDC_ENCODER ? "Encoder" : "Decoder"); write_str(&dbg_buf, "===============================\n"); write_str(&dbg_buf, "core: 0x%p\n", inst->core); write_str(&dbg_buf, "height: %d\n", inst->prop.height); write_str(&dbg_buf, "width: %d\n", inst->prop.width); write_str(&dbg_buf, "fps: %d\n", inst->prop.fps); write_str(&dbg_buf, "state: %d\n", inst->state); write_str(&dbg_buf, "-----------Formats-------------\n"); for (i = 0; i < MAX_PORT_NUM; i++) { write_str(&dbg_buf, "capability: %s\n", i == OUTPUT_PORT ? "Output" : "Capture"); write_str(&dbg_buf, "name : %s\n", inst->fmts[i]->name); write_str(&dbg_buf, "planes : %d\n", inst->fmts[i]->num_planes); write_str( &dbg_buf, "type: %s\n", inst->fmts[i]->type == OUTPUT_PORT ? "Output" : "Capture"); for (j = 0; j < inst->fmts[i]->num_planes; j++) write_str(&dbg_buf, "size for plane %d: %u\n", j, inst->bufq[i].vb2_bufq.plane_sizes[j]); } write_str(&dbg_buf, "-------------------------------\n"); for (i = SESSION_MSG_START; i < SESSION_MSG_END; i++) { write_str(&dbg_buf, "completions[%d]: %s\n", i, completion_done(&inst->completions[SESSION_MSG_INDEX(i)]) ? "pending" : "done"); } write_str(&dbg_buf, "ETB Count: %d\n", inst->count.etb); write_str(&dbg_buf, "EBD Count: %d\n", inst->count.ebd); write_str(&dbg_buf, "FTB Count: %d\n", inst->count.ftb); write_str(&dbg_buf, "FBD Count: %d\n", inst->count.fbd); return simple_read_from_buffer(buf, count, ppos, dbg_buf.ptr, dbg_buf.filled_size); }
static ssize_t core_info_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) { struct msm_vidc_core *core = file->private_data; struct hfi_device *hdev; int i = 0; if (!core || !core->device) { dprintk(VIDC_ERR, "Invalid params, core: %p\n", core); return 0; } hdev = core->device; INIT_DBG_BUF(dbg_buf); write_str(&dbg_buf, "===============================\n"); write_str(&dbg_buf, "CORE %d: 0x%p\n", core->id, core); write_str(&dbg_buf, "===============================\n"); write_str(&dbg_buf, "state: %d\n", core->state); write_str(&dbg_buf, "base addr: 0x%x\n", call_hfi_op(hdev, get_fw_info, hdev->hfi_device_data, FW_BASE_ADDRESS)); write_str(&dbg_buf, "register_base: 0x%x\n", call_hfi_op(hdev, get_fw_info, hdev->hfi_device_data, FW_REGISTER_BASE)); write_str(&dbg_buf, "register_size: %u\n", call_hfi_op(hdev, get_fw_info, hdev->hfi_device_data, FW_REGISTER_SIZE)); write_str(&dbg_buf, "irq: %u\n", call_hfi_op(hdev, get_fw_info, hdev->hfi_device_data, FW_IRQ)); for (i = SYS_MSG_START; i < SYS_MSG_END; i++) { write_str(&dbg_buf, "completions[%d]: %s\n", i, completion_done(&core->completions[SYS_MSG_INDEX(i)]) ? "pending" : "done"); } return simple_read_from_buffer(buf, count, ppos, dbg_buf.ptr, dbg_buf.filled_size); }