extcon: Update the prototype of extcon_register_notifier() with enum extcon
authorChanwoo Choi <cw00.choi@samsung.com>
Tue, 19 May 2015 11:01:12 +0000 (20:01 +0900)
committerChanwoo Choi <cw00.choi@samsung.com>
Fri, 22 May 2015 09:58:55 +0000 (18:58 +0900)
commit046050f6e623e442e9c71c525462ebd395dae526
treea10b539ecc726366e80a466a8214ffd27ab44017
parent8e9bc36df56d6fa1db78032533c0e167f8a0bdcf
extcon: Update the prototype of extcon_register_notifier() with enum extcon

Previously, extcon consumer driver used the extcon_register_interest()
to register the notifier chain and then to receive the notifier event
when external connector's state is changed. When registering the notifier chain
for specific external connector with extcon_register_interest(), it used the
the string name of external connector directly. There are potential problem
because of unclear, non-standard and inconsequent cable name. Namely,
it is not appropriate method to identify each external connector.

So, this patch modify the prototype of extcon_register_notifier() by using
the 'enum extcon' which are the unique id for each external connector
instead of unclear string method.

- Previously, the extcon consumer driver used the extcon_register_interest()
with 'cable_name' to point out the specific external connector. Also. it used
the un-needed structure (struct extcon_specific_cable_nb).
: int extcon_register_interest(struct extcon_specific_cable_nb *obj,
     const char *extcon_name, const char *cable_name,
     struct notifier_block *nb)

- Newly, the updated extcon_register_notifier() would definitely support
the same feature to detech the changed state of external connector without
any specific structure (struct extcon_specific_cable_nb).
: int extcon_register_notifier(struct extcon_dev *edev, enum extcon id,
     struct notifier_block *nb)

This patch support the both extcon_register_interest() and new extcon_register_
notifier(). But the extcon_{register|unregister}_interest() will be deprecated
because extcon core would support the notifier event for extcon consumer driver
with only updated extcon_register_notifier() and 'extcon_specific_cable_nb'
will be removed if there are no extcon consumer driver with legacy
extcon_{register|unregister}_interest().

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
drivers/extcon/extcon.c
include/linux/extcon.h