Messages in this thread | | | From | "Bumwoo Lee" <> | Subject | RE: [PATCH v4 4/4] extcon: Added extcon_alloc_groups to simplify extcon register function | Date | Mon, 20 Mar 2023 12:12:33 +0900 |
| |
> -----Original Message----- > From: Chanwoo Choi <cwchoi00@gmail.com> > Sent: Monday, March 13, 2023 8:08 PM > To: Bumwoo Lee <bw365.lee@samsung.com>; MyungJoo Ham > <myungjoo.ham@samsung.com>; Chanwoo Choi <cw00.choi@samsung.com>; linux- > kernel@vger.kernel.org > Subject: Re: [PATCH v4 4/4] extcon: Added extcon_alloc_groups to simplify > extcon register function > > On 23. 3. 2. 18:01, Bumwoo Lee wrote: > > The alloc groups is functionalized from extcon_dev_register. > > > > Signed-off-by: Bumwoo Lee <bw365.lee@samsung.com> > > --- > > drivers/extcon/extcon.c | 58 > > +++++++++++++++++++++++++---------------- > > 1 file changed, 36 insertions(+), 22 deletions(-) > > > > diff --git a/drivers/extcon/extcon.c b/drivers/extcon/extcon.c index > > 321988231806..c366a7988daf 100644 > > --- a/drivers/extcon/extcon.c > > +++ b/drivers/extcon/extcon.c > > @@ -1181,6 +1181,39 @@ static int extcon_alloc_muex(struct extcon_dev > *edev) > > return 0; > > } > > > > +/** > > + * extcon_alloc_groups() - alloc the groups for extcon device > > + * @edev: extcon device > > + * > > + * Returns 0 if success or error number if fail. > > + */ > > +static int extcon_alloc_groups(struct extcon_dev *edev) { > > + int index; > > + > > ditto. > > if (!edev) > return -EINVAL; > > > + if (!edev->max_supported) > > + return 0; > > + > > + edev->extcon_dev_type.groups = kcalloc(edev->max_supported + 2, > > + sizeof(struct attribute_group *), > > + GFP_KERNEL); > > + if (!edev->extcon_dev_type.groups) > > + return -ENOMEM; > > + > > + edev->extcon_dev_type.name = dev_name(&edev->dev); > > + edev->extcon_dev_type.release = dummy_sysfs_dev_release; > > + > > + for (index = 0; index < edev->max_supported; index++) > > + edev->extcon_dev_type.groups[index] = &edev- > >cables[index].attr_g; > > + > > + if (edev->mutually_exclusive) > > + edev->extcon_dev_type.groups[index] = &edev->attr_g_muex; > > + > > + edev->dev.type = &edev->extcon_dev_type; > > + > > + return 0; > > +} > > + > > /** > > * extcon_dev_register() - Register an new extcon device > > * @edev: the extcon device to be registered > > @@ -1236,28 +1269,9 @@ int extcon_dev_register(struct extcon_dev *edev) > > if (ret < 0) > > goto err_alloc_muex; > > > > - if (edev->max_supported) { > > - edev->extcon_dev_type.groups = > > - kcalloc(edev->max_supported + 2, > > - sizeof(struct attribute_group *), > > - GFP_KERNEL); > > - if (!edev->extcon_dev_type.groups) { > > - ret = -ENOMEM; > > - goto err_alloc_groups; > > - } > > - > > - edev->extcon_dev_type.name = dev_name(&edev->dev); > > - edev->extcon_dev_type.release = dummy_sysfs_dev_release; > > - > > - for (index = 0; index < edev->max_supported; index++) > > - edev->extcon_dev_type.groups[index] = > > - &edev->cables[index].attr_g; > > - if (edev->mutually_exclusive) > > - edev->extcon_dev_type.groups[index] = > > - &edev->attr_g_muex; > > - > > - edev->dev.type = &edev->extcon_dev_type; > > - } > > + ret = extcon_alloc_groups(edev); > > + if (ret < 0) > > + goto err_alloc_groups; > > > > spin_lock_init(&edev->lock); > > if (edev->max_supported) { > > --
Thank you for the review and I will send a new patch including what you mentioned soon
Thanks,
> Best Regards, > Samsung Electronics > Chanwoo Choi
| |