lkml.org 
[lkml]   [2011]   [Dec]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRE: [RFC PATCH 1/3] pinctrl: imx: add pinmux imx core driver
Date
> -----Original Message-----
> From: Guo Shawn-R65073
> Sent: Tuesday, December 06, 2011 5:42 PM
> To: Dong Aisheng-B29396
> Cc: linux-kernel@vger.kernel.org; linux-arm-kernel@lists.infradead.org;
> linus.walleij@stericsson.com; s.hauer@pengutronix.de;
> kernel@pengutronix.de
> Subject: Re: [RFC PATCH 1/3] pinctrl: imx: add pinmux imx core driver
>
> On Sun, Dec 04, 2011 at 07:49:42PM +0800, Dong Aisheng wrote:
> > +static struct pinmux_ops imx_pmx_ops = {
> > + .list_functions = imx_pmx_list_funcs,
> > + .get_function_name = imx_pmx_get_func_name,
> > + .get_function_groups = imx_pmx_get_groups,
> > + .enable = imx_pmx_enable,
> > +};
>
> The pinmux core code will check the pinmux_ops as below. !ops->disable
> is one of the checking, while you do not have .disable hook.
>
Then I have to add a disable function.

> int pinmux_check_ops(const struct pinmux_ops *ops) {
> /* Check that we implement required operations */
> if (!ops->list_functions ||
> !ops->get_function_name ||
> !ops->get_function_groups ||
> !ops->enable ||
> !ops->disable)
Not sure if we must check !ops->disable here since some soc may not have
disable function.

> return -EINVAL;
>
> return 0;
> }
>
> [...]
>
> > +static int __init imx_pmx_probe(struct platform_device *pdev) {
> > + struct device *dev = &pdev->dev;
> > + struct imx_pmx *ipmx;
> > + struct resource *res;
> > + struct imx_pinctrl_info *info;
> > + resource_size_t res_size;
> > +
> > + info = (struct imx_pinctrl_info *)pdev->id_entry->driver_data;
> > + if (!info || !info->pins || !info->groups || !info->functions
> > + || (info->maxpin > info->npins)) {
>
> You must mean !(info->maxpin > info->npins) here?
>
Yes, thanks for this finding.

> Regards,
> Shawn
>
> > + dev_err(&pdev->dev, "wrong pinctrl info\n");
> > + return -EINVAL;
> > + }

Regards
Dong Aisheng



\
 
 \ /
  Last update: 2011-12-06 10:41    [W:0.185 / U:7.008 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site