linux/drivers/usb/typec
Hans de Goede 31df7fadf5 usb: typec: fusb302: Make fusb302_set_cc_polarity also set pull ups / downs
The 2 callers of fusb302_set_cc_polarity both call fusb302_set_cc_pull
directly before calling fusb302_set_cc_polarity, this is not ideal for
2 reasons:

1) fusb302_set_cc_pull uses the cached polarity when applying the pull-ups,
which maybe changed immediately afterwards, to fix this set_cc_polarity
already 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_polarity then 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.

Doing this also avoids the need to cache the pull_up state in
struct fusb302_chip.

Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-19 15:06:11 +01:00
..
altmodes usb: typec: altmodes/displayport: Fall back to multi-func pins 2019-03-19 15:00:34 +01:00
mux usb: typec: pi3usb30532: Keep orientation when setting mux to safe mode 2019-03-19 15:00:34 +01:00
tcpm usb: typec: fusb302: Make fusb302_set_cc_polarity also set pull ups / downs 2019-03-19 15:06:11 +01:00
ucsi usb: typec: ucsi: Remove debug.h file 2019-02-08 10:25:12 +01:00
bus.c usb/typec: fix kernel-doc notation warning for typec_match_altmode 2018-09-05 14:36:53 +02:00
bus.h usb: typec: avoid format-overflow warning 2018-07-06 16:36:19 +02:00
class.c usb: typec: Find the ports by also matching against the device node 2019-02-14 10:52:25 +01:00
Kconfig USB: add missing SPDX lines to Kconfig and Makefiles 2019-01-22 09:08:17 +01:00
Makefile usb: typec: Group all TCPCI/TCPM code together 2018-09-20 13:37:29 +02:00
mux.c usb: typec: mux: remove redundant check on variable match 2019-02-20 11:29:01 +01:00
tps6598x.c usb: typec: tps6598x: handle block writes separately with plain-I2C adapters 2019-02-21 10:54:23 +01:00