[lkml]   [2012]   [Feb]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH V2 1/2] pinctrl: Introduce PINCTRL_STATE_DEFAULT, define hogs as that state
    Aha now I see the problem here...

    On Tue, Feb 28, 2012 at 12:55 AM, Stephen Warren <> wrote:

    > This provides a single centralized name for the default state.
    > -/* Hog a single map entry and add to the hoglist */
    > -static int pinctrl_hog_map(struct pinctrl_dev *pctldev,
    > -static int pinctrl_hog_maps(struct pinctrl_dev *pctldev)
    > -       pinctrl_hog_maps(pctldev);
    > +       pctldev->p = pinctrl_get(pctldev->dev, PINCTRL_STATE_DEFAULT);
    > +       if (!IS_ERR(pctldev->p))
    > +               pinctrl_enable(pctldev->p);

    So what happens here is that my hogs will try to activate three different
    functions in the same struct pinctrl *p.

    This fails the sanity check in pinmux.c:

    * If the function selector is already set, it needs to be identical,
    * we support several groups with one function but not several
    * functions with one or several groups in the same pinmux.
    if (p->func_selector != UINT_MAX &&
    p->func_selector != func_selector) {
    "dual function defines in the map for device %s\n",
    return -EINVAL;
    p->func_selector = func_selector;

    Since it is assumed that we can only activate one function at a time
    for a given device handle (struct pinmux).

    Which was sound, since we said that one single function can activate
    several groups.

    So you still need one struct pinmux *p for each hog or it won't work.

    Allowing the struct pinmux to activate several functions at once is
    another solution, but would defy the idea of having several groups
    mapped to one function, then you could just as well use that instead,
    and it would be a tad bit too many "many to many" relations in my

    So I would revert back to using one handle per hog.

    (Sorry if I misunderstood the problem though we're getting pretty
    complex here...)

    Linus Walleij
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2012-02-29 17:43    [W:0.024 / U:46.704 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site