From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from metis.ext.pengutronix.de ([92.198.50.35]:49093 "EHLO metis.ext.pengutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751413AbbGaHGv (ORCPT ); Fri, 31 Jul 2015 03:06:51 -0400 Subject: Re: [added to the 3.18 stable tree] can: c_can: Fix default pinmux glitch at init To: Sasha Levin , stable@vger.kernel.org, stable-commits@vger.kernel.org References: <1438308644-15635-1-git-send-email-sasha.levin@oracle.com> <1438308644-15635-35-git-send-email-sasha.levin@oracle.com> Cc: Heiko Carstens , "J.D. Schroeder" , Roger Quadros From: Marc Kleine-Budde Message-ID: <55BB1E7B.1000104@pengutronix.de> Date: Fri, 31 Jul 2015 09:06:35 +0200 MIME-Version: 1.0 In-Reply-To: <1438308644-15635-35-git-send-email-sasha.levin@oracle.com> Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="8MH6CvbxlrJMB0kt91FROQUFH4N89LBwe" Sender: stable-owner@vger.kernel.org List-ID: This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --8MH6CvbxlrJMB0kt91FROQUFH4N89LBwe Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 07/31/2015 04:10 AM, Sasha Levin wrote: > From: Heiko Carstens >=20 > This patch has been added to the 3.18 stable tree. If you have any > objections, please let us know. >=20 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >=20 > [ Upstream commit 033365191136c97f88c81b7bd0011414db28bb4e ] >=20 > The previous change 3973c526ae9c (net: can: c_can: Disable pins when CA= N > interface is down) causes a slight glitch on the pinctrl settings when = used. > Since commit ab78029 (drivers/pinctrl: grab default handles from device= core), > the device core will automatically set the default pins. This causes th= e pins > to be momentarily set to the default and then to the sleep state in > register_c_can_dev(). By adding an optional "enable" state, boards can = set the > default pin state to be disabled and avoid the glitch when the switch f= rom > default to sleep first occurs. If the "enable" state is not available > c_can_pinctrl_select_state() falls back to using the "default" pinctrl = state. >=20 > [Roger Q] - Forward port to v4.2 and use pinctrl_get_select(). >=20 > Signed-off-by: J.D. Schroeder > Signed-off-by: Roger Quadros > Reviewed-by: Grygorii Strashko > Cc: linux-stable > Signed-off-by: Marc Kleine-Budde > Signed-off-by: Sasha Levin > --- > arch/s390/kernel/process.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) >=20 > diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c > index ed84cc2..9b72e68 100644 > --- a/arch/s390/kernel/process.c > +++ b/arch/s390/kernel/process.c > @@ -171,7 +171,7 @@ asmlinkage void execve_tail(void) > { > current->thread.fp_regs.fpc =3D 0; > if (MACHINE_HAS_IEEE) > - asm volatile("sfpc %0,%0" : : "d" (0)); > + asm volatile("sfpc %0" : : "d" (0)); > } > =20 > /* >=20 The original upstream patch looked like this: diff --git a/drivers/net/can/c_can/c_can.c b/drivers/net/can/c_can/c_can.= c index 041525d2595c..5d214d135332 100644 --- a/drivers/net/can/c_can/c_can.c +++ b/drivers/net/can/c_can/c_can.c @@ -592,6 +592,7 @@ static int c_can_start(struct net_device *dev) { struct c_can_priv *priv =3D netdev_priv(dev); int err; + struct pinctrl *p; =20 /* basic c_can configuration */ err =3D c_can_chip_config(dev); @@ -604,8 +605,13 @@ static int c_can_start(struct net_device *dev) =20 priv->can.state =3D CAN_STATE_ERROR_ACTIVE; =20 - /* activate pins */ - pinctrl_pm_select_default_state(dev->dev.parent); + /* Attempt to use "active" if available else use "default" */ + p =3D pinctrl_get_select(priv->device, "active"); + if (!IS_ERR(p)) + pinctrl_put(p); + else + pinctrl_pm_select_default_state(priv->device); + return 0; } Marc --=20 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 | --8MH6CvbxlrJMB0kt91FROQUFH4N89LBwe Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQEcBAEBCgAGBQJVux57AAoJEP5prqPJtc/HZ+wH/1t2G/hhog4HL1hclp891xf2 ldrXj++VuCfqMx3bOxhkIP30EpdewadASaTQkLJDBYiwTMfoLgqIXlicJzhSjyzB KM2f3Ka/Y/v+sYW8MmKu3TWZ82QiyLwH26ntqD6f05M6//LqWE5J5bg1KfGScUxR 3uw0HunT3/CH02FN7vwZ9oBWJblkyyyyVH5rbyu8QfWPCQwAgKZ8wU50WKmrTN0T SRrDVQkbixwCzMIzSA3rror+sdqVoLO6/e3bsMCWd0JPuh+7XjaTxBDAH5Ck1gAp wzEL2Z3v6NtLYb2jbjK6aDOCksimQlpgIkeWNtEgrjG9OSmZFDqfCWh4VI62cX4= =dxqU -----END PGP SIGNATURE----- --8MH6CvbxlrJMB0kt91FROQUFH4N89LBwe--