[PATCH v9 01/10] usb: typec: Add notifier functions
Chaoyi Chen
chaoyi.chen at rock-chips.com
Mon Nov 17 00:41:07 PST 2025
On 11/17/2025 4:33 PM, Heikki Krogerus wrote:
> Tue, Nov 11, 2025 at 06:50:31PM +0800, Chaoyi Chen kirjoitti:
>> From: Chaoyi Chen <chaoyi.chen at rock-chips.com>
>>
>> Some other part of kernel may want to know the event of typec bus.
>>
>> This patch add common notifier function to notify these event.
>>
>> Signed-off-by: Chaoyi Chen <chaoyi.chen at rock-chips.com>
>> ---
>>
>> Changes in v9:
>> - Remove redundant header files.
>>
>> Changes in v8:
>> - Fix coding style.
>>
>> drivers/usb/typec/Makefile | 2 +-
>> drivers/usb/typec/bus.h | 2 ++
>> drivers/usb/typec/class.c | 2 ++
>> drivers/usb/typec/notify.c | 23 +++++++++++++++++++++++
>> include/linux/usb/typec_altmode.h | 9 +++++++++
>> 5 files changed, 37 insertions(+), 1 deletion(-)
>> create mode 100644 drivers/usb/typec/notify.c
>>
>> diff --git a/drivers/usb/typec/Makefile b/drivers/usb/typec/Makefile
>> index 7a368fea61bc..20d09c5314d7 100644
>> --- a/drivers/usb/typec/Makefile
>> +++ b/drivers/usb/typec/Makefile
>> @@ -1,6 +1,6 @@
>> # SPDX-License-Identifier: GPL-2.0
>> obj-$(CONFIG_TYPEC) += typec.o
>> -typec-y := class.o mux.o bus.o pd.o retimer.o
>> +typec-y := class.o mux.o notify.o bus.o pd.o retimer.o
>> typec-$(CONFIG_ACPI) += port-mapper.o
>> obj-$(CONFIG_TYPEC) += altmodes/
>> obj-$(CONFIG_TYPEC_TCPM) += tcpm/
>> diff --git a/drivers/usb/typec/bus.h b/drivers/usb/typec/bus.h
>> index 643b8c81786d..820b59b6d434 100644
>> --- a/drivers/usb/typec/bus.h
>> +++ b/drivers/usb/typec/bus.h
>> @@ -26,6 +26,8 @@ struct altmode {
>> struct altmode *plug[2];
>> };
>>
>> +void typec_notify_event(unsigned long event, void *data);
>> +
>> #define to_altmode(d) container_of(d, struct altmode, adev)
>>
>> extern const struct bus_type typec_bus;
>> diff --git a/drivers/usb/typec/class.c b/drivers/usb/typec/class.c
>> index 9b2647cb199b..9d2aa3dd3f56 100644
>> --- a/drivers/usb/typec/class.c
>> +++ b/drivers/usb/typec/class.c
>> @@ -600,6 +600,8 @@ typec_register_altmode(struct device *parent,
>> return ERR_PTR(ret);
>> }
>>
>> + typec_notify_event(TYPEC_ALTMODE_REGISTERED, &alt->adev);
>> +
>> return &alt->adev;
>> }
> You need to also send TYPEC_ALTMODE_UNREGISTERED notification in
> typec_unregister_altmode().
>
Sorry, I left that out. I will fix this in v10. Thank you.
--
Best,
Chaoyi
More information about the linux-arm-kernel
mailing list