lkml.org 
[lkml]   [2009]   [Feb]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH 2/2] mfd: twl4030: add twl4030-pwrbutton as our child
    Date
    On Friday 27 February 2009, Andrew Morton wrote:
    > > --- a/drivers/mfd/twl4030-core.c
    > > +++ b/drivers/mfd/twl4030-core.c
    > > @@ -101,6 +101,12 @@
    > >  #define twl_has_usb()        false
    > >  #endif
    > >  
    > > +#if defined(CONFIG_INPUT_TWL4030_PWRBUTTON) \
    > > +     || defined(CONFIG_INPUT_TWL4030_PWBUTTON_MODULE)
    >
    > OK, this is "wrong".  The core shouldn't need to know about specific
    > clients.

    This is a pretty standard idiom: only create the device
    nodes a system actually uses. Applied comprehensively,
    the kernel footprint shrinks ... supporting a device can
    require a lot of ancillary infrastructure, which may not
    need to be compiled in.


    > > +#define twl_has_pwrbutton()  true
    > > +#else
    > > +#define twl_has_pwrbutton()  false
    > > +#endif
    > >  
    > >  /* Triton Core internal information (BEGIN) */
    > >  
    > > @@ -526,6 +532,13 @@ add_children(struct twl4030_platform_data *pdata, unsigned long features)
    > >               usb_transceiver = child;
    > >       }
    > >  
    > > +     if (twl_has_pwrbutton()) {
    > > +             child = add_child(1, "twl4030_pwrbutton",
    > > +                             NULL, 0, true, pdata->irq_base + 8 + 0, 0);
    > > +             if (IS_ERR(child))
    > > +                     return PTR_ERR(child);
    > > +     }
    > > +
    > >       if (twl_has_regulator()) {
    > >               /*
    > >               child = add_regulator(TWL4030_REG_VPLL1, pdata->vpll1);
    >
    > The client module should register itself with the core, rather than the core
    > registering the client.
    >
    > What has gone wrong here?

    Not much I can see. It's registering a platform_device,
    but only if it could be used on this system. Quite a lot
    of OMAP3 boards don't hook up this power button.

    Maybe it should also verify that *this* board supports
    a power button. A boolean flag in the twl4030 platform
    data would suffice, for multi-board kernels.

    - Dave




    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2009-02-27 23:01    [W:0.057 / U:60.100 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site