On 11/27/2014 02:26 PM, Linus Walleij wrote: > On Fri, Nov 14, 2014 at 4:40 PM, Roger Quadros <rogerq@xxxxxx> wrote: > >> DRA7 CAN IP suffers from a problem which causes it to be prevented >> from fully turning OFF (i.e. stuck in transition) if the module was >> disabled while there was traffic on the CAN_RX line. >> >> To work around this issue we select the SLEEP pin state by default >> on probe and use the DEFAULT pin state on CAN up and back to the >> SLEEP pin state on CAN down. >> >> Signed-off-by: Roger Quadros <rogerq@xxxxxx> > > Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx> Thanks, however the patch is already upstream. > > I see you figured it out all by yourselves :D > > (Sorry for being absent.) > >> +#include <linux/pinctrl/consumer.h> >> + pinctrl_pm_select_default_state(dev->dev.parent); >> + pinctrl_pm_select_sleep_state(dev->dev.parent); >> + pinctrl_pm_select_sleep_state(dev->dev.parent); > > NB: in drivers/base/pinctrl.c: > > #ifdef CONFIG_PM > /* > * If power management is enabled, we also look for the optional > * sleep and idle pin states, with semantics as defined in > * <linux/pinctrl/pinctrl-state.h> > */ > dev->pins->sleep_state = pinctrl_lookup_state(dev->pins->p, > PINCTRL_STATE_SLEEP); > > So if these states are necessary for the driver to work, put > depends on PM or select PM in the Kconfig. Roger, you can prepare a patch, if needed. Thanks, Marc -- Pengutronix e.K. | Marc Kleine-Budde | Industrial Linux Solutions | Phone: +49-231-2826-924 | Vertretung West/Dortmund | Fax: +49-5121-206917-5555 | Amtsgericht Hildesheim, HRA 2686 | http://www.pengutronix.de |
Attachment:
signature.asc
Description: OpenPGP digital signature