video: driver: Set lx arch to fw before fw boot

To simplify the boot process, firmware needs to know the type of architecture
before it boots up.

Change-Id: I42ff87094b816f9783d18fa67126e9b7a4dab320
Signed-off-by: Chinmay Sawarkar <chinmays@codeaurora.org>
Этот коммит содержится в:
Chinmay Sawarkar
2021-02-02 11:56:40 -08:00
родитель 0b04217dd2
Коммит 8cd787ac52
5 изменённых файлов: 9 добавлений и 48 удалений

Просмотреть файл

@@ -92,7 +92,6 @@ enum hfi_buffer_type {
HFI_BUFFER_RAW = 0x00000002,
HFI_BUFFER_METADATA = 0x00000003,
HFI_BUFFER_SUBCACHE = 0x00000004,
HFI_BUFFER_SFR = 0x00000005,
HFI_BUFFER_DPB = 0x00000006,
HFI_BUFFER_BIN = 0x00000007,
HFI_BUFFER_LINE = 0x00000008,

Просмотреть файл

@@ -2580,7 +2580,7 @@ int msm_vidc_core_init(struct msm_vidc_core *core)
goto unlock;
}
d_vpr_h("%s(): waiting for sys init done, %d ms\n", __func__,
d_vpr_h("%s(): waiting for sys_init_done, %d ms\n", __func__,
core->capabilities[HW_RESPONSE_TIMEOUT].value);
core_unlock(core, __func__);
rc = wait_for_completion_timeout(&core->init_done, msecs_to_jiffies(

Просмотреть файл

@@ -2605,48 +2605,6 @@ static int __sys_init(struct msm_vidc_core *core)
return 0;
}
static int __queue_sfr_buffer(struct msm_vidc_core *core)
{
int rc = 0;
struct hfi_buffer buf;
memset(&buf, 0, sizeof(struct hfi_buffer));
buf.type = HFI_BUFFER_SFR;
buf.index = 0;
buf.base_address = core->sfr.align_device_addr;
buf.addr_offset = 0;
buf.buffer_size = core->sfr.mem_size;
buf.data_offset = 0;
buf.data_size = 0;
buf.timestamp = 0;
buf.flags = 0;
rc = hfi_create_header(core->packet, core->packet_size,
0, core->header_id++);
if (rc)
return rc;
rc = hfi_create_packet(core->packet,
core->packet_size,
HFI_CMD_BUFFER,
HFI_BUF_HOST_FLAG_NONE,
HFI_PAYLOAD_STRUCTURE,
HFI_PORT_NONE,
core->packet_id++,
&buf,
sizeof(buf));
if (rc)
return rc;
rc = __iface_cmdq_write(core, core->packet);
if (rc)
return rc;
d_vpr_h("SFR buffer packet queued\n");
return rc;
}
static int __sys_image_version(struct msm_vidc_core *core)
{
int rc = 0;
@@ -2709,10 +2667,6 @@ int venus_hfi_core_init(struct msm_vidc_core *core)
if (rc)
goto error;
rc = __queue_sfr_buffer(core);
if (rc)
goto error;
rc = __sys_image_version(core);
if (rc)
goto error;

Просмотреть файл

@@ -278,6 +278,8 @@ static int handle_system_init(struct msm_vidc_core *core,
if (pkt->flags & HFI_FW_FLAGS_SUCCESS) {
d_vpr_h("%s: successful\n", __func__);
complete(&core->init_done);
} else {
d_vpr_h("%s: unhandled. flags=%d\n", __func__, pkt->flags);
}
return 0;