On Tue, 2020-02-11 at 15:03 +0200, Jani Nikula wrote: > On Tue, 11 Feb 2020, Stanislav Lisovskiy < > stanislav.lisovskiy@xxxxxxxxx> wrote: > > I guess it would still be nice to make the code less confusing > > and do not call eDP specific function, for non-eDP connectors > > just to immediately return true(success) value as a hack. > > > > So simply extracted that check out from this function, > > that we simply don't call it for non-eDP connectors. Bingo. > > Fair enough, I guess... > > Though I could be persuaded to take a patch for the reverse, because > generally we prefer localized knowledge in the callee than in a > potentially irrelevant place in the caller. > > Consider the intel_dp_mst_encoder_init() call in the context of this > patch. We call it, and the function itself decides whether MST init > is > relevant or not. But I presume you wouldn't suggest pulling in all > the > conditions from there one level higher? > > Would your opinion on intel_edp_init_connector() be different if the > conditions were more than just the single intel_dp_is_edp()? Or if we > moved all of eDP support to a separate file? Well, to me at least intel_edp_init_connector means that we are going to init an eDP connector, which already assumes that, we already should know that this is an eDP connector :) Otherwise it should have somewhat different name, not saying that this is the best philosophy, but generally I would prefer the functions to be solely responsible for a single thing so that that init function is supposed to do only init, but not also some detection/checking or any other side effects. So that there is a clear visibility what we are doing, if it's an init then we really do only init or if we supposed to detect something first, let it be a separate thing.. Also this uses a return value in confusing way, i.e returning "Success" status for non-eDP from intel_edp_init_connector seems kind of confusing. Stan > > BR, > Jani. > > > > > > Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@xxxxxxxxx> > > --- > > drivers/gpu/drm/i915/display/intel_dp.c | 13 ++++++------- > > 1 file changed, 6 insertions(+), 7 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c > > b/drivers/gpu/drm/i915/display/intel_dp.c > > index f4dede6253f8..9bd36197a43d 100644 > > --- a/drivers/gpu/drm/i915/display/intel_dp.c > > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > > @@ -7370,9 +7370,6 @@ static bool intel_edp_init_connector(struct > > intel_dp *intel_dp, > > intel_wakeref_t wakeref; > > struct edid *edid; > > > > - if (!intel_dp_is_edp(intel_dp)) > > - return true; > > - > > INIT_DELAYED_WORK(&intel_dp->panel_vdd_work, > > edp_panel_vdd_work); > > > > /* > > @@ -7590,10 +7587,12 @@ intel_dp_init_connector(struct > > intel_digital_port *intel_dig_port, > > intel_dp_mst_encoder_init(intel_dig_port, > > intel_connector->base.base.id); > > > > - if (!intel_edp_init_connector(intel_dp, intel_connector)) { > > - intel_dp_aux_fini(intel_dp); > > - intel_dp_mst_encoder_cleanup(intel_dig_port); > > - goto fail; > > + if (intel_dp_is_edp(intel_dp)) { > > + if (!intel_edp_init_connector(intel_dp, > > intel_connector)) { > > + intel_dp_aux_fini(intel_dp); > > + intel_dp_mst_encoder_cleanup(intel_dig_port); > > + goto fail; > > + } > > } > > > > intel_dp_add_properties(intel_dp, connector); > > _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx