usb: typec: fusb302: Make fusb302_set_cc_polarity also set pull ups / downs
Greg Kroah-Hartman
maintainerPATCH 1/8 usb: typec: fusb302: Make fusb302_set_cc_polarity also set pull ups / downs
Quoted 14 lines · Hans de Goede
The 2 callers of
fusb302_set_cc_polarityboth callfusb302_set_cc_pulldirectly before callingfusb302_set_cc_polarity, this is not ideal for 2 reasons:1)
fusb302_set_cc_pulluses the cached polarity when applying pull-ups, which maybe changed immediately afterwards, to fix thisset_cc_polarityalready does the pull-up setting.2) Both touch the SWITCHES0 register in a r-w-modify cycle, this leads to read reg, write reg, read reg, write reg. If we fold the setting of the pull-downs into
fusb302_set_cc_polaritythen not only can we avoid doing the reads / writes twice, at this point we set all bits, so we can skip the read, turning 4 (slowish) i2c-transfers into 1.
Quoted 7 lines
Doing this also avoids the need to cache the
pull_upstate in structfusb302_chip.Signed-off-by Hans de Goede <[email protected]>--- drivers/usb/typec/tcpm/fusb302.c | 48 +++++++++++--------------------- 1 file changed, 16 insertions(+), 32 deletions(-)
It would be nice to get some people to review/ack this series before I take it (hint...)
thanks,
greg k-h