On Mon, Nov 02, 2015 at 12:33:48PM -0800, Rafael Antognolli wrote:
So far, the i915 driver and some other drivers set it to the drm_device, which doesn't allow one to know which DP a given aux channel is related to. Changing this to be the drm_connector provides proper nesting, still allowing one to get the drm_device from it. Some drivers already set it to the drm_connector.
This also removes the need to add a sysfs link for the i2c device under the connector, as it will already be there.
Signed-off-by: Rafael Antognolli rafael.antognolli@intel.com
I gave aux_dev a bit of a testing here, and it appaers to work quite splendidly.
This patch however causes lots of WARN spew if I unload the driver while in middle of dumping the DPCD via the aux_dev. It appears we we clean up things the wrong order now.
drivers/gpu/drm/i915/intel_dp.c | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 8287df4..7aacc08 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -1078,36 +1078,21 @@ intel_dp_aux_init(struct intel_dp *intel_dp, struct intel_connector *connector) intel_dp->aux_ch_ctl_reg = intel_dp->output_reg + 0x10;
intel_dp->aux.name = name;
- intel_dp->aux.dev = dev->dev;
intel_dp->aux.dev = connector->base.kdev; intel_dp->aux.transfer = intel_dp_aux_transfer;
DRM_DEBUG_KMS("registering %s bus for %s\n", name, connector->base.kdev->kobj.name);
ret = drm_dp_aux_register(&intel_dp->aux);
- if (ret < 0) {
- if (ret < 0) DRM_ERROR("drm_dp_aux_register() for %s failed (%d)\n", name, ret);
return;
- }
- ret = sysfs_create_link(&connector->base.kdev->kobj,
&intel_dp->aux.ddc.dev.kobj,
intel_dp->aux.ddc.dev.kobj.name);
- if (ret < 0) {
DRM_ERROR("sysfs_create_link() for %s failed (%d)\n", name, ret);
drm_dp_aux_unregister(&intel_dp->aux);
- }
}
static void intel_dp_connector_unregister(struct intel_connector *intel_connector) {
- struct intel_dp *intel_dp = intel_attached_dp(&intel_connector->base);
- if (!intel_connector->mst_port)
sysfs_remove_link(&intel_connector->base.kdev->kobj,
intel_connector_unregister(intel_connector);intel_dp->aux.ddc.dev.kobj.name);
}
-- 2.4.3
Intel-gfx mailing list Intel-gfx@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/intel-gfx