Re: [PATCH] extcon : register for cable interest by cable name

From: MyungJoo Ham
Date: Mon Oct 15 2012 - 10:53:40 EST


On Thu, Oct 11, 2012 at 7:37 PM, Tc, Jenny <jenny.tc@xxxxxxxxx> wrote:
>
>
>> Subject: Re: [PATCH] extcon : register for cable interest by cable name
>>
>> > There are some scnearios where a driver/framework needs to register
>> > interest for a particular cable without specifying the extcon device
>> > name. One such scenario is charger notifications. The platform will
>> > have charger cabel which will be bound to any extcon device. It's not
>> > mandatory for the charger driver to know which extcon device it should
>> > use. This patch enables the support for registering interest for a
>> > cable just by cable name wihtout specifying the extcon device name
>> >
>> > Signed-off-by: Jenny TC <jenny.tc@xxxxxxxxx>
>> > ---
>> []
>> > +extern struct extcon_dev *register_interest_cable_byname
>> > + (struct extcon_specific_cable_nb *extcon_dev,
>> > + const char *cable_name, struct notifier_block *nb);
>>
>> What about allowing extcon_register_interest() to support the functionality?
>>
> register_interest_cable_byname internally uses extcon_register_interest function.
> If we want to use extcon_register_interest() in both scenarios, then we need to define
> two local functions

Then, you can use recursion. (calling recursively if the extcon_name
is NULL and when it calls recursively itself, extcon_name should not
be NULL)

>
> extcon_register_interest__ and register_interest_cable_byname.
>
> Then the code would be
>
> int extcon_register_interest(struct extcon_specific_cable_nb *obj,
> const char *extcon_name, const char *cable_name,
> struct notifier_block *nb) {
>
> if (extcon_name == NULL)
> return register_interest_cable_byname(obj,cable_name,nb);
> else
> return extcon_register_interest__(obj,extcon_name,cable_name,nb);
> }
>
> Is that fine?
>
>> I.e., allowing extcon_register_interest() to accept NULL extcon_name.
>>
>>
>> ps. anyway, usually, the "platforms" have the list of node paths, don't they?
>>
> My intention is to make it generic and less dependent on platform data. This way the same consumer
> driver can work on any platform without looking for extcon dev name in the platform data.
> For example a charger driver can work on any platform without knowing the extcon provider name for
> The charger cable.
>
>
>



--
MyungJoo Ham, Ph.D.
Mobile Software Platform Lab, DMC Business, Samsung Electronics
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/