diff --git a/sys/dev/drm2/drm_dp_iic_helper.c b/sys/dev/drm2/drm_dp_iic_helper.c index 71319e3..6a67a0e 100644 --- a/sys/dev/drm2/drm_dp_iic_helper.c +++ b/sys/dev/drm2/drm_dp_iic_helper.c @@ -26,6 +26,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include #include #include "iicbus_if.h" #include @@ -183,7 +185,7 @@ iic_dp_aux_reset(device_t idev, u_char speed, u_char addr, u_char *oldaddr) { iic_dp_aux_reset_bus(idev); - return (0); + return (0); } static int @@ -211,6 +213,7 @@ iic_dp_aux_attach(device_t idev) aux_data->port = device_add_child(idev, "iicbus", -1); if (aux_data->port == NULL) return (ENXIO); + DRM_INFO("%s: idev=%p port=%p\n", __func__, idev, aux_data->port); device_quiet(aux_data->port); bus_generic_attach(idev); return (0); @@ -226,8 +229,14 @@ iic_dp_aux_detach(device_t idev) port = aux_data->port; bus_generic_detach(idev); - if (port != NULL) + if (port != NULL) { + struct stack *st; + DRM_INFO("%s: idev=%p port=%p\n", __func__, idev, aux_data->port); + st = stack_create(); + stack_print(st); device_delete_child(idev, port); + aux_data->port = NULL; + } return (0); } diff --git a/sys/dev/drm2/radeon/radeon_connectors.c b/sys/dev/drm2/radeon/radeon_connectors.c index 57d7c26..042ba95 100644 --- a/sys/dev/drm2/radeon/radeon_connectors.c +++ b/sys/dev/drm2/radeon/radeon_connectors.c @@ -1208,8 +1208,10 @@ static void radeon_dp_connector_destroy(struct drm_connector *connector) if (radeon_connector->edid) free(radeon_connector->edid, DRM_MEM_KMS); - if (radeon_dig_connector->dp_i2c_bus) + if (radeon_dig_connector->dp_i2c_bus) { + DRM_INFO("%s: destroy I2C bus %p\n", __func__, radeon_dig_connector->dp_i2c_bus); radeon_i2c_destroy(radeon_dig_connector->dp_i2c_bus); + } free(radeon_connector->con_priv, DRM_MEM_DRIVER); #ifdef DUMBBELL_WIP drm_sysfs_connector_remove(connector);