msm: camera: icp: Add support for new mem region cmd
To avoid using GP registers to send different memory region info, use GP registers to configure only the consolidated region. The specifics for different regions within the consolidated region are later sent to FW as a new HFI cmd. CRs-Fixed: 3469619 Change-Id: I2eb9511a4df5c8eb4ca09b60acd1fcffb3ac4dff Signed-off-by: Karthik Anantha Ram <quic_kartanan@quicinc.com>
This commit is contained in:

committed by
Camera Software Integration

parent
eea5a9b44b
commit
2acac43289
@@ -848,15 +848,10 @@ int cam_hfi_resume(int client_handle)
|
||||
cam_io_w_mb((uint32_t)hfi_mem->fw_uncached.len,
|
||||
icp_base + HFI_REG_FWUNCACHED_REGION_SIZE);
|
||||
|
||||
cam_io_w_mb((uint32_t)hfi_mem->global_sync.iova,
|
||||
icp_base + HFI_REG_FWUNCACHED_GLOBAL_SYNC_IOVA);
|
||||
cam_io_w_mb((uint32_t)hfi_mem->global_sync.len,
|
||||
icp_base + HFI_REG_FWUNCACHED_GLOBAL_SYNC_LEN);
|
||||
|
||||
cam_io_w_mb((uint32_t)hfi_mem->hwmutex.iova,
|
||||
icp_base + HFI_REG_DEVICE_HWMUTEX_IOVA);
|
||||
cam_io_w_mb((uint32_t)hfi_mem->hwmutex.len,
|
||||
icp_base + HFI_REG_DEVICE_HWMUTEX_SIZE);
|
||||
cam_io_w_mb((uint32_t)hfi_mem->device_mem.iova,
|
||||
icp_base + HFI_REG_DEVICE_REGION_IOVA);
|
||||
cam_io_w_mb((uint32_t)hfi_mem->device_mem.len,
|
||||
icp_base + HFI_REG_DEVICE_REGION_IOVA_SIZE);
|
||||
|
||||
CAM_DBG(CAM_HFI, "IO1 : [0x%x 0x%x] IO2 [0x%x 0x%x]",
|
||||
hfi_mem->io_mem.iova, hfi_mem->io_mem.len,
|
||||
@@ -870,13 +865,10 @@ int cam_hfi_resume(int client_handle)
|
||||
hfi_mem->sec_heap.iova, hfi_mem->sec_heap.len,
|
||||
hfi_mem->qdss.iova, hfi_mem->qdss.len);
|
||||
|
||||
CAM_DBG(CAM_HFI, "QTbl : [0x%x 0x%x] Sfr [0x%x 0x%x]",
|
||||
CAM_DBG(CAM_HFI, "QTbl : [0x%x 0x%x] Sfr [0x%x 0x%x] Device [0x%x 0x%x]",
|
||||
hfi_mem->qtbl.iova, hfi_mem->qtbl.len,
|
||||
hfi_mem->sfr_buf.iova, hfi_mem->sfr_buf.len);
|
||||
|
||||
CAM_DBG(CAM_HFI, "global sync : [0x%x 0x%x] hwmutex [0x%x 0x%x]",
|
||||
hfi_mem->global_sync.iova, hfi_mem->global_sync.len,
|
||||
hfi_mem->hwmutex.iova, hfi_mem->hwmutex.len);
|
||||
hfi_mem->sfr_buf.iova, hfi_mem->sfr_buf.len,
|
||||
hfi_mem->device_mem.iova, hfi_mem->device_mem.len);
|
||||
|
||||
return rc;
|
||||
}
|
||||
@@ -1067,14 +1059,10 @@ int cam_hfi_init(int client_handle, struct hfi_mem_info *hfi_mem,
|
||||
icp_base + HFI_REG_FWUNCACHED_REGION_IOVA);
|
||||
cam_io_w_mb((uint32_t)hfi_mem->fw_uncached.len,
|
||||
icp_base + HFI_REG_FWUNCACHED_REGION_SIZE);
|
||||
cam_io_w_mb((uint32_t)hfi_mem->global_sync.iova,
|
||||
icp_base + HFI_REG_FWUNCACHED_GLOBAL_SYNC_IOVA);
|
||||
cam_io_w_mb((uint32_t)hfi_mem->global_sync.len,
|
||||
icp_base + HFI_REG_FWUNCACHED_GLOBAL_SYNC_LEN);
|
||||
cam_io_w_mb((uint32_t)hfi_mem->hwmutex.iova,
|
||||
icp_base + HFI_REG_DEVICE_HWMUTEX_IOVA);
|
||||
cam_io_w_mb((uint32_t)hfi_mem->hwmutex.len,
|
||||
icp_base + HFI_REG_DEVICE_HWMUTEX_SIZE);
|
||||
cam_io_w_mb((uint32_t)hfi_mem->device_mem.iova,
|
||||
icp_base + HFI_REG_DEVICE_REGION_IOVA);
|
||||
cam_io_w_mb((uint32_t)hfi_mem->device_mem.len,
|
||||
icp_base + HFI_REG_DEVICE_REGION_IOVA_SIZE);
|
||||
|
||||
CAM_DBG(CAM_HFI, "[%s] HFI handle: %d",
|
||||
hfi->client_name, client_handle);
|
||||
@@ -1091,13 +1079,10 @@ int cam_hfi_init(int client_handle, struct hfi_mem_info *hfi_mem,
|
||||
hfi_mem->sec_heap.iova, hfi_mem->sec_heap.len,
|
||||
hfi_mem->qdss.iova, hfi_mem->qdss.len);
|
||||
|
||||
CAM_DBG(CAM_HFI, "QTbl : [0x%x 0x%x] Sfr [0x%x 0x%x]",
|
||||
CAM_DBG(CAM_HFI, "QTbl : [0x%x 0x%x] Sfr [0x%x 0x%x] Device [0x%x 0x%x]",
|
||||
hfi_mem->qtbl.iova, hfi_mem->qtbl.len,
|
||||
hfi_mem->sfr_buf.iova, hfi_mem->sfr_buf.len);
|
||||
|
||||
CAM_DBG(CAM_HFI, "global sync : [0x%x 0x%x] hwmutex [0x%x 0x%x]",
|
||||
hfi_mem->global_sync.iova, hfi_mem->global_sync.len,
|
||||
hfi_mem->hwmutex.iova, hfi_mem->hwmutex.len);
|
||||
hfi_mem->sfr_buf.iova, hfi_mem->sfr_buf.len,
|
||||
hfi_mem->device_mem.iova, hfi_mem->device_mem.len);
|
||||
|
||||
if (cam_presil_mode_enabled())
|
||||
cam_hfi_presil_setup(hfi_mem);
|
||||
|
Reference in New Issue
Block a user