On 27/11/14 23:19, Marc Kleine-Budde wrote: > 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. As pinctrl sleep is an optional driver feature we don't need to do any changes. For the DRA7 specific case, the platform configs ensure that PM is enabled. cheers, -roger -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html