我编译了我的相机驱动程序并尝试从我的目标板i.MX6Q进行测试 我正面临着
1-001a的探测失败,错误-16
当我查看dmesg | grep camera_name
时出错,我认为1-001a是指设备驱动程序camera_name @ 1a。
这是我的设备驱动程序
camera_name: camera_name@1a {
compatible = "camera,camera_name";
reg = <0x1a>;
inck-name = "mclk";
xvs-output-len = <8>;
xclr-gpio = <&gpio1 6 1 GPIO_ACTIVE_LOW>;
pwn-gpios = <&gpio1 6 1>;
clock-names = "csi_mclk";
DOVDD = <®_1p8v>;
AVDD = <®_2p9v>;
DVDD = <®_1p2v>;
rst-gpios = <&gpio1 6 1>; /* xclr */
ipu_id = <0>;
csi_id = <0>;
mclk = <37125000>;
mclk_source = <0>;
lanes = <4>;
};
但我无法理解这个错误在说什么?你有什么建议吗?我找不到任何关于它的信息。
非常感谢。
最诚挚的问候。
答案 0 :(得分:3)
此错误日志
probe of 1-001a failed with error -16
通知我们:
- 的
.probe
功能- 标识为
的设备驱动程序1-001a
- 已返回错误值
-EBUSY
问题中提到的设备树节点属于设备驱动程序。
要了解上述失败的原因,
首先在Linux内核中找到C文件 实现上述设备的设备驱动程序。
Next查找在设备驱动程序中注册为“.probe”处理程序的函数。
检查它返回-EBUSY
的条件。
errno-base.h
包含Linux内核中定义的各种常见错误号的预定义约定。 Linux内核设备驱动程序和各种Linux内核子系统中的大多数函数都使用这些错误代码作为返回值来表示错误条件。