Yes, if your use tegracamera framework. Otherwise reference to tc358840.c to report the sensor properties.
Thanks
Yes, if your use tegracamera framework. Otherwise reference to tc358840.c to report the sensor properties.
Thanks
Let’s review that part first.
Currently, when the camera_common_find_pixelfmt function is commented out and then executed, a kernel panic occurs in the tegracam_set_privdata function. Can you give me some advice on this?
I would suggest using reference driver to modify and remove unnecessary function to avoid lost data cause problem.
I found out what causes it.
This occurs because tc_dev->s_data is a NULL value.
Can you tell me where to put the data for tc_dev->s_data?
Please check the …/kernel/nvidia/include/media/camera_common.h
Hi Shane,
After re-checking the code, I modified the necessary parts and confirmed that the driver was updated.
However, not only is nothing registered in “media-ctl -p”, but there is also no video driver installed in /dev.

![]()
Please follow the reference driver to implement those necessary properties and functions.
I’m not sure what’s missing now. I set it according to the imx185 reference, but the device is not registered. Any help on this would be greatly appreciated.
tegra-capture-vi {
num-channels = <1>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
max96724_vi_in0: endpoint {
port-index = <0>;
bus-width = <4>;
remote-endpoint = <&max96724_csi_out0>;
};
};
};
};
host1x@13e00000 {
// host1x{
// status = "okay";
// vi@15700000 {
// // vi {
// num-channels = <1>;
// ports {
// #address-cells = <1>;
// #size-cells = <0>;
// port@0{
// reg = <0>;
// max96724_vi_in0: endpoint {
// port-index = <2>;
// bus-width = <4>;
// remote-endpoint = <&max96724_csi_out0>;
// };
// };
// };
// };
nvcsi@15a00000 {
num-channels = <1>;
#address-cells = <1>;
#size-cells = <0>;
channel@0 {
reg = <0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
max96724_csi_in0: endpoint@0 {
status = "okay";
port-index = <0>;
bus-width = <4>;
remote-endpoint = <&max96724_out0>;
};
};
port@1 {
reg = <1>;
max96724_csi_out0: endpoint@1 {
remote-endpoint = <&max96724_vi_in0>;
};
};
};
};
};
};
i2c@c250000 {
max96724@27 {
compatible = "nvidia,max96724";
status = "okay";
devnode = "video0";
reg = <0x27>;
physical_w = "3.674";
physical_h = "2.738";
reset-gpios = <&tegra_main_gpio CAM0_RST_L GPIO_ACTIVE_HIGH>;
sensor_model ="max96724";
/* Define any required hw resources needed by driver */
/* ie. clocks, io pins, power sources */
post_crop_frame_drop = "0";
/* Convert Gain to unit of dB (decibel) befor passing to kernel driver */
use_decibel_gain = "true";
/* if true, delay gain setting by one frame to be in sync with exposure */
delayed_gain = "true";
/* enable CID_SENSOR_MODE_ID for sensor modes selection */
use_sensor_mode_id = "true";
/* WAR to prevent banding by reducing analog gain. Bug 2229902 */
limit_analog_gain = "true";
mode0 {
discontinuous_clk = "no";
readout_orientation = [30 00];
exposure_factor = "1000000";
mclk_khz = "24000";
phy_mode = "DPHY";
default_gain = [30 00];
dpcm_enable = "false";
max_gain_val = "480";
framerate_factor = "1000000";
min_hdr_ratio = [31 00];
num_lanes = [34 00];
max_framerate = "30000000";
min_gain_val = [30 00];
pixel_phase = "rggb";
mode_type = "bayer";
pix_clk_hz = "74250000";
step_gain_val = [33 00];
cil_settletime = [30 00];
default_exp_time = "33334";
active_h = "1080";
max_exp_time = "660000";
dynamic_pixel_bit_depth = "12";
active_w = "1920";
min_exp_time = "30";
max_hdr_ratio = [31 00];
min_framerate = "1500000";
mclk_multiplier = [32 00];
step_exp_time = [31 00];
default_framerate = "30000000";
csi_pixel_bit_depth = "12";
step_framerate = [31 00];
inherent_gain = [31 00];
embedded_metadata_height = [31 00];
line_length = "2200";
tegra_sinterface = "serial_a";
gain_factor = "10";
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0{
reg = <0>;
max96724_out0: endpoint{
port-index = <0>;
bus-width = <4>;
remote-endpoint = <&max96724_csi_in0>;
};
};
};
};
};
tegra-camera-platform {
compatible = "nvidia, tegra-camera-platform";
num_csi_lanes = <4>;
max_lane_speed = <3000000>;
min_bits_per_pixel = <10>;
vi_peak_byte_per_pixel = <2>;
vi_bw_margin_pct = <25>;
isp_peak_byte_per_pixel = <5>;
isp_bw_margin_pct = <25>;
modules {
module0 {
badge = "max96724_rear";
position = "rear";
orientation = "1";
drivernode0 {
pcl_id = "v4l2_sensor";
devname = "max96724 70-0027";
proc-device-tree = "/proc/device-tree/i2c@c250000/max96724@27";
};
};
};
};
When I register the driver in demsg, it appears as shown below. Is this a problem?

You can check your driver if this error does matter with in the probe() function.
There is no possibility of an error in the probe driver.
I worked based on the reference, but I don’t know why it doesn’t appear in the video device and media-ctl.
I confirmed that the entity was captured in media-ctl by applying the overlay dtbo file for dts.
Thank you for your support
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.