On Tue, Jan 07, 2014 at 06:35:26PM +0530, Ramkumar Ramachandra wrote: > Chris Wilson wrote: > > Rather than special casing lvds (especially when there are other panel > > connectors that can also be muxed), extend the connector interface to > > support a reprobe and walk over all connectors associated with i915 > > after a switcheroo event. > > Okay, so I can see the following get_edid functions: > > intel_lvds_get_edid() > intel_crt_get_edid() > intel_sdvo_get_edid() > intel_dp_get_edid() > > In the hdmi case, drm_get_edid() is called in two places: > intel_hdmi_detect() and intel_hdmi_detect_audio(); should I factor out > something into a corresponding intel_hdmi_get_edid() function? > > Now, in i915_switcheroo_reprobe(), I need to call all these functions, > right? They all accept a a generic drm_connector and an specific > i2c_adapter. But how do I do that without exporting each of these > functions and their adapters?
If you look at struct intel_connector, you will see space for adding a callback that each of the LVDS/CRT/SDVO/DP connectors can hook into if they want to reprobe after a switcheroo. struct intel_connector *connector; list_for_each_entry(connector, &dev->mode_config.connector_list, base.head) { connector->reprobe(connector); } (or something similar) would do in the switcheroo callback. -Chris -- Chris Wilson, Intel Open Source Technology Centre -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/