The cdn-dp sub driver probes the device failed on PINEBOOK Pro.
kernel: cdn-dp fec00000.dp: [drm:cdn_dp_probe [rockchipdrm]] *ERROR* missing extcon or phy kernel: cdn-dp: probe of fec00000.dp failed with error -22
Then, the device halts all of the DRM related device jobs. For example, the operations: vop_component_ops, vop_component_ops and rockchip_dp_component_ops cannot be bound to corresponding devices. So, Xorg cannot find the correct DRM device.
This patch skips the probing failed devices to fix this issue.
Link: http://lists.infradead.org/pipermail/linux-rockchip/2020-September/022352.ht... Signed-off-by: Jian-Hong Pan jhp@endlessos.org --- drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c index 0f3eb392fe39..de13588602b4 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c @@ -331,6 +331,12 @@ static struct component_match *rockchip_drm_match_add(struct device *dev)
if (!d) break; + if (!d->driver) { + DRM_DEV_ERROR(d, + "%s did not probe successfully", + drv->driver.name); + continue; + }
device_link_add(dev, d, DL_FLAG_STATELESS); component_match_add(dev, &match, compare_dev, d);
Hi,
Am Mittwoch, 23. September 2020, 08:59:00 CEST schrieb Jian-Hong Pan:
The cdn-dp sub driver probes the device failed on PINEBOOK Pro.
kernel: cdn-dp fec00000.dp: [drm:cdn_dp_probe [rockchipdrm]] *ERROR* missing extcon or phy kernel: cdn-dp: probe of fec00000.dp failed with error -22
Then, the device halts all of the DRM related device jobs. For example, the operations: vop_component_ops, vop_component_ops and rockchip_dp_component_ops cannot be bound to corresponding devices. So, Xorg cannot find the correct DRM device.
This patch skips the probing failed devices to fix this issue.
Link: http://lists.infradead.org/pipermail/linux-rockchip/2020-September/022352.ht... Signed-off-by: Jian-Hong Pan jhp@endlessos.org
drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c index 0f3eb392fe39..de13588602b4 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c @@ -331,6 +331,12 @@ static struct component_match *rockchip_drm_match_add(struct device *dev)
if (!d) break;
if (!d->driver) {
DRM_DEV_ERROR(d,
"%s did not probe successfully",
drv->driver.name);
continue;
}
How does this relate to drivers doing EPROBE_DEFER?
Very often you have sub-drivers defering probe as they still need another resource, so excluding them in that case would not work?
Heiko
device_link_add(dev, d, DL_FLAG_STATELESS); component_match_add(dev, &match, compare_dev, d);
On 2020-09-23 07:59, Jian-Hong Pan wrote:
The cdn-dp sub driver probes the device failed on PINEBOOK Pro.
kernel: cdn-dp fec00000.dp: [drm:cdn_dp_probe [rockchipdrm]] *ERROR* missing extcon or phy kernel: cdn-dp: probe of fec00000.dp failed with error -22
Wouldn't it make more sense to simply not enable the DisplayPort node in the upstream DT, until the type-C phy work has been done to make it usable at all? AIUI the "official" Manjaro kernel is carrying a bunch of hacks to make type-C work via extcon, but they know that isn't an upstreamable solution.
Robin.
Then, the device halts all of the DRM related device jobs. For example, the operations: vop_component_ops, vop_component_ops and rockchip_dp_component_ops cannot be bound to corresponding devices. So, Xorg cannot find the correct DRM device.
This patch skips the probing failed devices to fix this issue.
Link: http://lists.infradead.org/pipermail/linux-rockchip/2020-September/022352.ht... Signed-off-by: Jian-Hong Pan jhp@endlessos.org
drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c index 0f3eb392fe39..de13588602b4 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c @@ -331,6 +331,12 @@ static struct component_match *rockchip_drm_match_add(struct device *dev)
if (!d) break;
if (!d->driver) {
DRM_DEV_ERROR(d,
"%s did not probe successfully",
drv->driver.name);
continue;
} device_link_add(dev, d, DL_FLAG_STATELESS); component_match_add(dev, &match, compare_dev, d);
Am Mittwoch, 23. September 2020, 13:05:26 CEST schrieb Robin Murphy:
On 2020-09-23 07:59, Jian-Hong Pan wrote:
The cdn-dp sub driver probes the device failed on PINEBOOK Pro.
kernel: cdn-dp fec00000.dp: [drm:cdn_dp_probe [rockchipdrm]] *ERROR* missing extcon or phy kernel: cdn-dp: probe of fec00000.dp failed with error -22
Wouldn't it make more sense to simply not enable the DisplayPort node in the upstream DT, until the type-C phy work has been done to make it usable at all?
Or alternatively just disable the cdn-dp Rockchip driver in the kernel config, which results in it also not getting probed.
AIUI the "official" Manjaro kernel is carrying a bunch of hacks to make type-C work via extcon, but they know that isn't an upstreamable solution.
Robin.
Then, the device halts all of the DRM related device jobs. For example, the operations: vop_component_ops, vop_component_ops and rockchip_dp_component_ops cannot be bound to corresponding devices. So, Xorg cannot find the correct DRM device.
This patch skips the probing failed devices to fix this issue.
Link: http://lists.infradead.org/pipermail/linux-rockchip/2020-September/022352.ht... Signed-off-by: Jian-Hong Pan jhp@endlessos.org
drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c index 0f3eb392fe39..de13588602b4 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c @@ -331,6 +331,12 @@ static struct component_match *rockchip_drm_match_add(struct device *dev)
if (!d) break;
if (!d->driver) {
DRM_DEV_ERROR(d,
"%s did not probe successfully",
drv->driver.name);
continue;
} device_link_add(dev, d, DL_FLAG_STATELESS); component_match_add(dev, &match, compare_dev, d);
Heiko Stübner heiko@sntech.de 於 2020年9月23日 週三 下午7:16寫道:
Am Mittwoch, 23. September 2020, 13:05:26 CEST schrieb Robin Murphy:
On 2020-09-23 07:59, Jian-Hong Pan wrote:
The cdn-dp sub driver probes the device failed on PINEBOOK Pro.
kernel: cdn-dp fec00000.dp: [drm:cdn_dp_probe [rockchipdrm]] *ERROR* missing extcon or phy kernel: cdn-dp: probe of fec00000.dp failed with error -22
Wouldn't it make more sense to simply not enable the DisplayPort node in the upstream DT, until the type-C phy work has been done to make it usable at all?
Or alternatively just disable the cdn-dp Rockchip driver in the kernel config, which results in it also not getting probed.
This may be the simplest way. However, considering generic distro kernels have a policy to enable all drivers, disabling the DisplayPort node in the upstream DT, until the type-C phy work has been done may be a better solution for now. I can prepare a patch for this.
Jian-Hong Pan
AIUI the "official" Manjaro kernel is carrying a bunch of hacks to make type-C work via extcon, but they know that isn't an upstreamable solution.
Robin.
Then, the device halts all of the DRM related device jobs. For example, the operations: vop_component_ops, vop_component_ops and rockchip_dp_component_ops cannot be bound to corresponding devices. So, Xorg cannot find the correct DRM device.
This patch skips the probing failed devices to fix this issue.
Link: http://lists.infradead.org/pipermail/linux-rockchip/2020-September/022352.ht... Signed-off-by: Jian-Hong Pan jhp@endlessos.org
drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c index 0f3eb392fe39..de13588602b4 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c @@ -331,6 +331,12 @@ static struct component_match *rockchip_drm_match_add(struct device *dev)
if (!d) break;
if (!d->driver) {
DRM_DEV_ERROR(d,
"%s did not probe successfully",
drv->driver.name);
continue;
} device_link_add(dev, d, DL_FLAG_STATELESS); component_match_add(dev, &match, compare_dev, d);
dri-devel@lists.freedesktop.org