acrn-kernel/drivers/extcon
Alvin Šipraga 2445a35d05 extcon: usbc-tusb320: Unregister typec port on driver removal
[ Upstream commit 3adbaa30d9 ]

The driver can register a typec port if suitable firmware properties are
present. But if the driver is removed through sysfs unbind, rmmod or
similar, then it does not clean up after itself and the typec port
device remains registered. This can be seen in sysfs, where stale typec
ports get left over in /sys/class/typec.

In order to fix this we have to add an i2c_driver remove function and
call typec_unregister_port(), which is a no-op in the case where no
typec port is created and the pointer remains NULL.

In the process we should also put the fwnode_handle when the typec port
isn't registered anymore, including if an error occurs during probe. The
typec subsystem does not increase or decrease the reference counter for
us, so we track it in the driver's private data.

Note that the conditional check on TYPEC_PWR_MODE_PD was removed in the
probe path because a call to tusb320_set_adv_pwr_mode() will perform an
even more robust validation immediately after, hence there is no
functional change here.

Fixes: bf7571c00d ("extcon: usbc-tusb320: Add USB TYPE-C support")
Cc: stable@vger.kernel.org
Signed-off-by: Alvin Šipraga <alsi@bang-olufsen.dk>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-07-19 16:22:08 +02:00
..
Kconfig extcon: usbc-tusb320: Add USB TYPE-C support 2022-09-26 04:40:13 +09:00
Makefile ASoC/extcon: arizona: Move arizona jack code to sound/soc/codecs/arizona-jack.c 2021-03-18 11:46:15 +00:00
devres.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 2019-06-05 17:36:37 +02:00
extcon-adc-jack.c extcon: adc-jack: Fix an error handling path in 'adc_jack_probe()' 2020-05-29 17:36:01 +09:00
extcon-axp288.c extcon: Fix extcon_get_extcon_dev() error handling 2022-05-13 17:03:40 +09:00
extcon-fsa9480.c extcon: fsa9480: Drop no-op remove function 2022-07-15 11:37:40 +09:00
extcon-gpio.c extconn: Clean-up few drivers by using managed work init 2021-03-23 15:22:40 +01:00
extcon-intel-cht-wc.c extcon: intel-cht-wc: Report RID_A for ACA adapters 2022-02-01 14:55:12 +01:00
extcon-intel-int3496.c extcon: int3496: Add support for controlling Vbus through a regulator 2022-05-13 17:03:40 +09:00
extcon-intel-mrfld.c extcon: intel-mrfld: Sync hardware and software state on init 2021-06-21 18:28:00 +09:00
extcon-intel.h extcon: intel: Split out some definitions to a common header 2019-04-05 10:21:41 +09:00
extcon-max3355.c extcon: max3355: Drop unused include 2021-10-27 14:13:37 +09:00
extcon-max8997.c Char / Misc driver updates for 5.14-rc1 2021-07-05 13:42:16 -07:00
extcon-max14577.c extcon: extcon-max14577: Fix potential work-queue cancellation race 2021-06-17 13:21:44 +02:00
extcon-max77693.c extcon: extcon-max77693.c: Fix potential work-queue cancellation race 2021-06-17 13:22:02 +02:00
extcon-max77843.c extcon: max77843: Return error code of extcon_dev_allocate() 2020-09-24 19:20:49 +09:00
extcon-palmas.c extcon: Remove extraneous space before a debug message 2022-07-15 11:37:40 +09:00
extcon-ptn5150.c extcon: ptn5150: Add usb role class support 2022-05-13 17:03:41 +09:00
extcon-qcom-spmi-misc.c Driver core changes for 5.13-rc1 2021-04-26 11:05:36 -07:00
extcon-rt8973a.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
extcon-rt8973a.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
extcon-sm5502.c extcon: sm5502: Drop useless mask_invert flag on irqchip 2022-07-15 11:37:41 +09:00
extcon-sm5502.h extcon: sm5502: Add support for SM5504 2021-06-21 18:28:01 +09:00
extcon-usb-gpio.c extcon: usb-gpio: Remove disable irq operation in system sleep 2022-05-13 17:03:40 +09:00
extcon-usbc-cros-ec.c extcon: usbc-cros-ec: Use struct_size() helper in kzalloc() 2022-05-13 17:03:40 +09:00
extcon-usbc-tusb320.c extcon: usbc-tusb320: Unregister typec port on driver removal 2023-07-19 16:22:08 +02:00
extcon.c extcon: Fix kernel doc of property capability fields to avoid warnings 2023-07-19 16:21:52 +02:00
extcon.h USB/PHY patches for 4.15-rc1 2017-11-13 21:14:07 -08:00