I’m working on kernel6.6 for jetson, and have same situations!
when the system quit uefi, enter kernel6.6, the Displayport(DP) is blank.
This is My kernel log:
Ker6.6+Ubuntu无显示启动内核log.txt (78.5 KB)
and i fount that drm does’nt work, so drm no any device at /sys/class/drm.
That’s not we currently used and haven’t try that. If roll back to JP6 GA/K5.15, can issue happen?
All of project is base on Jetpack6/Kernel5.15, I just replace the kernel:
and I chenge the kernel5.15(/boot/Image), othe module no change, the displayport is ok.
and I find the error may be at(Linux_for_Tegra/source/nvidia-oot/drivers/gpu/drm/tegra/drm.c) :
static int host1x_drm_probe(struct host1x_device *dev)
{
......
}
static struct host1x_driver host1x_drm_driver = {
.driver = {
.name = "drm",
.pm = &host1x_drm_pm_ops,
},
.probe = host1x_drm_probe,
.remove = host1x_drm_remove,
.subdevs = host1x_drm_subdevs,
};
static int __init host1x_drm_init(void)
{
int err;
#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
if (drm_firmware_drivers_only())
return -ENODEV;
#endif
err = host1x_driver_register(&host1x_drm_driver);
if (err < 0)
return err;
err = platform_register_drivers(drivers, ARRAY_SIZE(drivers));
if (err < 0)
goto unregister_host1x;
return 0;
unregister_host1x:
host1x_driver_unregister(&host1x_drm_driver);
return err;
}
module_init(host1x_drm_init);
funtion: host1x_driver_register
has register driver, but the host1x_drm_probe
is not runing!
I think device is not register, but I try to print on bus_for_each_dev(kernel6.6/driver/base/bus.c)
int bus_for_each_dev(const struct bus_type *bus, struct device *start,
void *data, int (*fn)(struct device *, void *))
{
struct subsys_private *sp = bus_to_subsys(bus);
struct klist_iter i;
struct device *dev;
int error = 0;
if (!sp)
return -EINVAL;
klist_iter_init_node(&sp->klist_devices, &i,
(start ? &start->p->knode_bus : NULL));
while (!error && (dev = next_device(&i)))
error = fn(dev, data);
klist_iter_exit(&i);
subsys_put(sp);
return error;
}
I found that host1x_driver_register -> host1x_driver_register_full -> driver_register -> bus_add_driver -> driver_attach -> bus_for_each_dev
on function bus_for_each_dev :
sp->klist_devices
is empty。
that means there is no device for host1x_bus_type
I solve it partly!
kernel6.6 Can show the desktop on displayport。
But no DRM instance。
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.