camerad: prep for the BPS (#34244)

prep

Co-authored-by: Comma Device <device@comma.ai>
pull/34245/head
Adeeb Shihadeh 4 months ago committed by GitHub
parent 684b0b9d4d
commit 4c27878f67
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 32
      system/camerad/cameras/spectra.cc
  2. 5
      system/camerad/cameras/spectra.h
  3. 6
      system/camerad/test/debug.sh
  4. 13
      system/camerad/test/icp_debug.sh

@ -196,9 +196,9 @@ void SpectraMaster::init() {
assert(isp_fd >= 0);
LOGD("opened isp");
//icp_fd = open_v4l_by_name_and_index("cam-icp");
//assert(icp_fd >= 0);
//LOGD("opened icp");
icp_fd = open_v4l_by_name_and_index("cam-icp");
assert(icp_fd >= 0);
LOGD("opened icp");
// query ISP for MMU handles
LOG("-- Query for MMU handles");
@ -215,7 +215,6 @@ void SpectraMaster::init() {
cdm_iommu = isp_query_cap_cmd.cdm_iommu.non_secure;
// query ICP for MMU handles
/*
struct cam_icp_query_cap_cmd icp_query_cap_cmd = {0};
query_cap_cmd.caps_handle = (uint64_t)&icp_query_cap_cmd;
query_cap_cmd.size = sizeof(icp_query_cap_cmd);
@ -223,7 +222,6 @@ void SpectraMaster::init() {
assert(ret == 0);
LOGD("using ICP MMU handle: %x", icp_query_cap_cmd.dev_iommu_handle.non_secure);
icp_device_iommu = icp_query_cap_cmd.dev_iommu_handle.non_secure;
*/
// subscribe
LOG("-- Subscribing");
@ -712,13 +710,13 @@ void SpectraCamera::enqueue_buffer(int i, bool dp) {
}
sync_objs[i] = sync_create.sync_obj;
/*
ret = do_cam_control(m->cam_sync_fd, CAM_SYNC_CREATE, &sync_create, sizeof(sync_create));
if (ret != 0) {
LOGE("failed to create fence: %d %d", ret, sync_create.sync_obj);
if (icp_dev_handle > 0) {
ret = do_cam_control(m->cam_sync_fd, CAM_SYNC_CREATE, &sync_create, sizeof(sync_create));
if (ret != 0) {
LOGE("failed to create fence: %d %d", ret, sync_create.sync_obj);
}
sync_objs_bps_out[i] = sync_create.sync_obj;
}
sync_objs_bps_out[i] = sync_create.sync_obj;
*/
// schedule request with camera request manager
struct cam_req_mgr_sched_request req_mgr_sched_request = {0};
@ -746,8 +744,10 @@ void SpectraCamera::camera_map_bufs() {
mem_mgr_map_cmd.flags = CAM_MEM_FLAG_HW_READ_WRITE;
mem_mgr_map_cmd.mmu_hdls[0] = m->device_iommu;
mem_mgr_map_cmd.num_hdl = 1;
//mem_mgr_map_cmd.mmu_hdls[1] = m->icp_device_iommu;
//mem_mgr_map_cmd.num_hdl = 2;
if (icp_dev_handle > 0) {
mem_mgr_map_cmd.num_hdl = 2;
mem_mgr_map_cmd.mmu_hdls[1] = m->icp_device_iommu;
}
if (is_raw) {
// RAW bayer images
@ -899,8 +899,6 @@ void SpectraCamera::configISP() {
}
void SpectraCamera::configICP() {
if (!enabled) return;
/*
Configures both the ICP and BPS.
*/
@ -1048,6 +1046,10 @@ void SpectraCamera::camera_close() {
// release devices
LOGD("-- Release devices");
if (icp_dev_handle > 0) {
ret = device_control(m->icp_fd, CAM_RELEASE_DEV, session_handle, icp_dev_handle);
LOGD("release icp: %d", ret);
}
ret = device_control(m->isp_fd, CAM_RELEASE_DEV, session_handle, isp_dev_handle);
LOGD("release isp: %d", ret);
ret = device_control(csiphy_fd, CAM_RELEASE_DEV, session_handle, csiphy_dev_handle);

@ -22,8 +22,9 @@ const int MIPI_SETTLE_CNT = 33; // Calculated by camera_freqs.py
// CSLDeviceType/CSLPacketOpcodesIFE from camx
// cam_packet_header.op_code = (device << 24) | (opcode);
#define CSLDeviceTypeImageSensor (0x1 << 24)
#define CSLDeviceTypeIFE (0xF << 24)
#define CSLDeviceTypeImageSensor (0x01 << 24)
#define CSLDeviceTypeIFE (0x0F << 24)
#define CSLDeviceTypeBPS (0x10 << 24)
#define OpcodesIFEInitialConfig 0x0
#define OpcodesIFEUpdate 0x1

@ -10,7 +10,7 @@ echo 0 | sudo tee /sys/module/cam_debug_util/parameters/debug_mdl
sudo dmesg -C
scons -u -j8 --minimal .
export DEBUG_FRAMES=1
#export DISABLE_ROAD=1 DISABLE_WIDE_ROAD=1
export DISABLE_DRIVER=1
#export LOGPRINT=debug
export DISABLE_ROAD=1 DISABLE_WIDE_ROAD=1
#export DISABLE_DRIVER=1
export LOGPRINT=debug
./camerad

@ -0,0 +1,13 @@
#!/usr/bin/env bash
set -e
cd /sys/kernel/debug/tracing
echo "" > trace
echo 1 > tracing_on
#echo Y > /sys/kernel/debug/camera_icp/a5_debug_q
echo 0x1 > /sys/kernel/debug/camera_icp/a5_debug_type
echo 1 > /sys/kernel/debug/tracing/events/camera/enable
echo 0xffffffff > /sys/kernel/debug/camera_icp/a5_debug_lvl
echo 1 > /sys/kernel/debug/tracing/events/camera/cam_icp_fw_dbg/enable
cat /sys/kernel/debug/tracing/trace_pipe
Loading…
Cancel
Save