On Tue, 16 Apr 2024 at 17:57, Konrad Dybcio <konrad.dybcio@xxxxxxxxxx> wrote: > > > > On 4/16/24 16:48, Dmitry Baryshkov wrote: > > On Tue, 16 Apr 2024 at 17:32, Konrad Dybcio <konrad.dybcio@xxxxxxxxxx> wrote: > >> > >> > >> > >> On 4/16/24 04:20, Dmitry Baryshkov wrote: > >>> In some obscure cases (Qualcomm PMIC Glink) altmode is completely > >>> handled by the firmware. Linux does not get proper partner altmode info. > >>> Instead we get the notification once the altmode is negotiated and > >>> entered (or left). However even in such a case the driver has to switch > >>> board components (muxes, switches and retimers) according to the altmode > >>> selected by the hardware. > >>> > >>> We can not use existing typec_altmode_enter() / typec_altmode_exit() / > >>> typec_altmode_notify() functions in such a case, since there is no > >>> corresponding partner's altmode instance. > >>> > >>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> > >>> --- > >> > >> Should this now be called from e.g. typec_almode_notify to limit > >> duplication? > > > > typec_altmode_notify works only if there is an altmode->partner (which > > we don't have with pmic-glink). > > Yes and this seems to be an excerpt from these functions, should they > now drop that code and call this function instead, so as not to have > it in the tree twice? I thought about it, but then I abandoned this idea. The typec_altmode_notify() has its own use case, normal altmode drivers. It is an error to call it if there is no partner registered, etc. So I wanted to preserve error checks in that function instead of dropping them. The significant part of the code is shared anyway thanks to typec_altmode_set_switches(). -- With best wishes Dmitry