Re: [PATCH v3] rtc: add devm_rtc_device_{register,unregister}()

From: Jingoo Han
Date: Wed Mar 06 2013 - 01:37:49 EST


On Wednesday, March 06, 2013 3:19 PM, Venu Byravarasu wrote:
> On Wednesday, March 06, 2013 11:43 AM, Jingoo Han wrote:
> >
> > On Wednesday, March 06, 2013 3:03 PM, Venu Byravarasu wrote:
> > >
> > > > --- a/drivers/rtc/class.c
> > > > +++ b/drivers/rtc/class.c
> > >
> > > > +/**
> > > > + * devm_rtc_device_register - resource managed rtc_device_register()
> > > > + * @name: the name of the device
> > > > + * @dev: the device to register
> > > > + * @ops: the rtc operations structure
> > > > + * @owner: the module owner
> > > > + *
> > > > + * @return a struct rtc on success, or an ERR_PTR on error
> > > > + *
> > > > + * Managed rtc_device_register(). The rtc_device returned from this
> > > > function
> > > > + * are automatically freed on driver detach. See rtc_device_register()
> > > > + * for more information.
> > > > + */
> > > > +
> > > > +struct rtc_device *devm_rtc_device_register(const char *name,
> > > > + struct device *dev,
> > >
> > > As most of devm_* functions use " struct device *dev" as their first param,
> > > why not this function also modified to be in sync with them?
> >
> > Yes, but, I want to sync with the form of rtc_device_register().
> > This function already uses 'struct device *dev' as second argument as below.
> >
>
> IMO any kernel driver developer using devm_* API, expects struct device* as first argument.
> Breaking this policy for one module (RTC here) & making this API special, might not be a good idea.
> Anyhow, maintainers may add their comments on this.

OK, I see.

I just look at other devm_* API. All devm_* APIs use 'struct device*'
as first argument.

To prevent the confusion, I will send the patch that uses
'struct device*' as first argument as below.

struct rtc_device *devm_rtc_device_register(struct device *dev,
const char *name,

Thanks for your comment

Best regards,
Jingoo Han

>
> Thanks,
> Venu
>
> > struct rtc_device *rtc_device_register(const char *name, struct device *dev,
> > const struct rtc_class_ops *ops,
> > struct module *owner)
> >
> > Best regards,
> > Jingoo Han
> >
> > >
> > > > + const struct rtc_class_ops *ops,
> > > > + struct module *owner)
> > > > +{
> > > > + struct rtc_device **ptr, *rtc;
N떑꿩ìr¸›y鉉싕b²XФ푤vØ^–)頻{.nÇ+돴¥Š{±묎çzX㎍썳變}©옽Æ zÚ&j:+v돣¾«묎çzZ+€Ê+zf"·hš닱~넮녬iÿ鎬z¹®wⅱ¸?솳鈺Ú&¢)刪f뷌^j푹y§m끷@A«a뛴ÿ 0띠h®å’i