专栏底层软件sensor库调用api接口设置CFA Bayer格式不生效

sensor库调用api接口设置CFA Bayer格式不生效

已解决
松言2025-06-28
46
10
sensor_data_bayer_fill(&turning_data->sensor_data, 12, BAYER_START_B, BAYER_PATTERN_RGGB);
    vin_info("sensor_info->config_index = 0x%x\n", sensor_info->config_index);
    vin_info("bayer pattern = %d, bayer start = %d\n",
        turning_data->sensor_data.bayer_pattern, turning_data->sensor_data.bayer_start);

sensor库:ovx8bs_utility.c

sensor调用了 sensor_data_bayer_fill 设置Bayer,通过打印可确定sensor库替换成功,并执行了这一行,但是打开isp的debug log,看到的Bayer pattern和Bayer start都是0,疑似默认值,没有生效

 

isplog:

 

[ISP_HW0][DEBUG] [SOC SENSOR] DUMMY drv.c: 1284:sensor get parameters, CFA =0, data width= 12, rggb_start = 0

 

备注:

我们的环境比较特殊,并不是传统的GMSL架构,J5上没有i2c,i2c和sensor不通,sensor由另一个芯片初始化,J5只参与raw12 MIPI数据的接收和isp处理,不参与任何初始化和i2c操作,因此我把sensor库的i2c相关操作都屏蔽了,现在vpm工作正常,从pym取到的NV12图颜色不对,我们想设置Bayer格式,但是不生效

 

相关log和ovx8bs_utility.c见附件

 

 

附件:
底层软件
征程5
评论3
0/1000
  • 费小财
    Lv.5

    那你直接改isp的代码就好了

    2025-06-30
    0
    2
    • 松言回复费小财:

      isp的代码指的哪里,由于某些原因暂时不能修改内核源码编译,只能在应用层修改,这个地方实在libisp库里面吗,还是在哪里,我全局搜索没有除了sensor库里面没有找到bayer相关的代码了

      2025-06-30
      0
    • 费小财回复松言:

      你是不是改成模组了。isp代码是驱动代码的

      2025-07-01
      0
  • csh
    Lv.4

    sensor_data_bayer_fill只是更新数据结构,vin_sensor_tuning_init或者camera_sensor_dev_tuning_init调用了吗

    2025-06-30
    0
    4
    • 松言回复csh:

      最终调用的 ret = ioctl(sensor_info->sen_devfd, SENSOR_TURNING_PARAM, &turning_data); 也返回成功了,你说的 vin_sensor_tuning_init或者camera_sensor_dev_tuning_init 这两个接口在哪里,我在sdk根目录使用grep搜索都找不到

      2025-06-30
      0
    • 费小财回复松言:

      你又在ioctrl的地方加打印吗,确定ioctrl下发的值是正确的

      2025-07-02
      0
    • 松言回复费小财:
      加了,应用层调用 ioctrl 前打印是正确的,但是我没有内核代码,这个还有办法继续排查吗

      vin_info("befor ioctl bayer pattern = %d, bayer start = %d\n",turning_data.sensor_data.bayer_pattern, turning_data.sensor_data.bayer_start);ret = ioctl(sensor_info->sen_devfd, SENSOR_TURNING_PARAM, &turning_data);
      if (ret < 0) {vin_err("[%s: %d]: sensor_%d ioctl fail %d\n", __func__, __LINE__, ret, ret);return -RET_ERROR;}
      vin_info("after ioctl bayer pattern = %d, bayer start = %d\n",turning_data.sensor_data.bayer_pattern, turning_data.sensor_data.bayer_start);
      root@j5matrixzxkoadu:~# logcat | grep 'bayer pattern'
      I/ ( 4523): [21623.767578][ovx8b]:bayer pattern = 0, bayer start = 3
      I/ ( 4523): [21623.767578][ovx8b]:befor ioctl bayer pattern = 0, bayer start = 3
      I/ ( 4523): [21623.769531][ovx8b]:after ioctl bayer pattern = 0, bayer start = 3
      2025-07-06
      0
    • csh回复松言:

      echo "func common_get_param +p" >/sys/kernel/debug/dynamic_debug/control 看下

      2025-07-07
      0
  • 小助手
    Lv.3
    您好,您的帖子已较长时间未处理,如有新的问题,欢迎重新发起提问。
    该问题的相关解答,可参考OE Agent(https://chat.oe.horizon.auto/) 解答如下:
    2026-03-10
    0
    1