* Bin Liu <b-...@ti.com> [160513 13:43]:
> Hi,
> 
> On Fri, May 13, 2016 at 01:33:30PM -0700, Tony Lindgren wrote:
> > * Bin Liu <b-...@ti.com> [160513 13:26]:
> > > On Fri, May 13, 2016 at 03:21:55PM -0500, Bin Liu wrote:
> > > > On Fri, May 13, 2016 at 01:09:02PM -0700, Tony Lindgren wrote:
> > > > > * Bin Liu <b-...@ti.com> [160513 12:58]:
> > > > > > On Wed, May 11, 2016 at 06:33:04PM -0700, Tony Lindgren wrote:
> > > > > > > --- a/drivers/usb/musb/omap2430.c
> > > > > > > +++ b/drivers/usb/musb/omap2430.c
> > > > > > > @@ -49,6 +49,9 @@ struct omap2430_glue {
> > > > > > >   enum musb_vbus_id_status status;
> > > > > > >   struct work_struct      omap_musb_mailbox_work;
> > > > > > >   struct device           *control_otghs;
> > > > > > > + bool                    cable_connected;
> > > > > > > + bool                    enabled;
> > > > > > > + bool                    powered;
> > > > > > 
> > > > > > This variable is only used within omap2430_set_power(), so it can be
> > > > > > local within that function to save a few bytes.
> > > > > 
> > > > > Well it needs to be static as we keep things powered only if
> > > > > glue is enabled and cable is connected.
> > > > 
> > > > I think it does not have to static in omap2430_glue, how about in the
> > > 
> > > I meant in omap2430_set_power().
> > > 
> > > > very beginning of omap2430_set_power(),
> > > > 
> > > >         bool powered = glue->enabled && glue->cable_connected;
> > > > 
> > > > before changing glue->enabled and glue->cable_connected, then this
> > > > local powered variable is equivalent to glue->powered.
> > 
> > Hmm but pm_runtime_get_sync() can fail too. I was seeing -EACCES
> > there while chasing various PM runtime issues. That can happen for
> > example if the parent and child PM runtime use counts get out of sync
> > like happened in the -EPROBE_DEFER case. Now we at least know if
> > something goes wrong with the "could not enable" error.
> 
> Well, cannot think of why this variable could cause this problem. But
> anyway, please ignore my comments, it is only about 4 bytes.

It's because we currently need to keep track of powered in addition
to cable_connected and enabled. Otherwise we don't get get warnings
related to PM runtime issues.

And if we use static bool powered in omap2430_set_power(), it won't
be specific to the glue layer driver instance :)

Tony



--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to