From: Andrew Lunn <andrew@lunn.ch> To: "Pali Rohár" <pali@kernel.org> Cc: "Lorenzo Pieralisi" <lorenzo.pieralisi@arm.com>, "Rob Herring" <robh@kernel.org>, "Bjorn Helgaas" <bhelgaas@google.com>, "Miquel Raynal" <miquel.raynal@bootlin.com>, "Kishon Vijay Abraham I" <kishon@ti.com>, "Vinod Koul" <vkoul@kernel.org>, "Marek Behún" <marek.behun@nic.cz>, "Tomasz Maciej Nowak" <tmn505@gmail.com>, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 1/2] phy: marvell: comphy: Convert internal SMCC firmware return codes to errno Date: Wed, 2 Sep 2020 18:13:28 +0200 [thread overview] Message-ID: <20200902161328.GE3050651@lunn.ch> (raw) In-Reply-To: <20200902144344.16684-2-pali@kernel.org> On Wed, Sep 02, 2020 at 04:43:43PM +0200, Pali Rohár wrote: > Driver ->power_on and ->power_off callbacks leaks internal SMCC firmware > return codes to phy caller. This patch converts SMCC error codes to > standard linux errno codes. Include file linux/arm-smccc.h already provides > defines for SMCC error codes, so use them instead of custom driver defines. > Note that return value is signed 32bit, but stored in unsigned long type > with zero padding. > > Signed-off-by: Pali Rohár <pali@kernel.org> > --- > drivers/phy/marvell/phy-mvebu-a3700-comphy.c | 14 +++++++++++--- > drivers/phy/marvell/phy-mvebu-cp110-comphy.c | 14 +++++++++++--- > 2 files changed, 22 insertions(+), 6 deletions(-) > > diff --git a/drivers/phy/marvell/phy-mvebu-a3700-comphy.c b/drivers/phy/marvell/phy-mvebu-a3700-comphy.c > index 1a138be8bd6a..810f25a47632 100644 > --- a/drivers/phy/marvell/phy-mvebu-a3700-comphy.c > +++ b/drivers/phy/marvell/phy-mvebu-a3700-comphy.c > @@ -26,7 +26,6 @@ > #define COMPHY_SIP_POWER_ON 0x82000001 > #define COMPHY_SIP_POWER_OFF 0x82000002 > #define COMPHY_SIP_PLL_LOCK 0x82000003 > -#define COMPHY_FW_NOT_SUPPORTED (-1) > > #define COMPHY_FW_MODE_SATA 0x1 > #define COMPHY_FW_MODE_SGMII 0x2 > @@ -112,10 +111,19 @@ static int mvebu_a3700_comphy_smc(unsigned long function, unsigned long lane, > unsigned long mode) > { > struct arm_smccc_res res; > + s32 ret; > > arm_smccc_smc(function, lane, mode, 0, 0, 0, 0, 0, &res); > + ret = res.a0; > > - return res.a0; > + switch (ret) { > + case SMCCC_RET_SUCCESS: > + return 0; > + case SMCCC_RET_NOT_SUPPORTED: > + return -EOPNOTSUPP; > + default: > + return -EINVAL; > + } > } Hi Pali Maybe this should be a global helper translating SMCCC_RET_* into a standard errno value? Andrew
WARNING: multiple messages have this Message-ID (diff)
From: Andrew Lunn <andrew@lunn.ch> To: "Pali Rohár" <pali@kernel.org> Cc: "Tomasz Maciej Nowak" <tmn505@gmail.com>, "Rob Herring" <robh@kernel.org>, "Lorenzo Pieralisi" <lorenzo.pieralisi@arm.com>, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, "Kishon Vijay Abraham I" <kishon@ti.com>, "Vinod Koul" <vkoul@kernel.org>, "Miquel Raynal" <miquel.raynal@bootlin.com>, "Bjorn Helgaas" <bhelgaas@google.com>, "Marek Behún" <marek.behun@nic.cz>, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 1/2] phy: marvell: comphy: Convert internal SMCC firmware return codes to errno Date: Wed, 2 Sep 2020 18:13:28 +0200 [thread overview] Message-ID: <20200902161328.GE3050651@lunn.ch> (raw) In-Reply-To: <20200902144344.16684-2-pali@kernel.org> On Wed, Sep 02, 2020 at 04:43:43PM +0200, Pali Rohár wrote: > Driver ->power_on and ->power_off callbacks leaks internal SMCC firmware > return codes to phy caller. This patch converts SMCC error codes to > standard linux errno codes. Include file linux/arm-smccc.h already provides > defines for SMCC error codes, so use them instead of custom driver defines. > Note that return value is signed 32bit, but stored in unsigned long type > with zero padding. > > Signed-off-by: Pali Rohár <pali@kernel.org> > --- > drivers/phy/marvell/phy-mvebu-a3700-comphy.c | 14 +++++++++++--- > drivers/phy/marvell/phy-mvebu-cp110-comphy.c | 14 +++++++++++--- > 2 files changed, 22 insertions(+), 6 deletions(-) > > diff --git a/drivers/phy/marvell/phy-mvebu-a3700-comphy.c b/drivers/phy/marvell/phy-mvebu-a3700-comphy.c > index 1a138be8bd6a..810f25a47632 100644 > --- a/drivers/phy/marvell/phy-mvebu-a3700-comphy.c > +++ b/drivers/phy/marvell/phy-mvebu-a3700-comphy.c > @@ -26,7 +26,6 @@ > #define COMPHY_SIP_POWER_ON 0x82000001 > #define COMPHY_SIP_POWER_OFF 0x82000002 > #define COMPHY_SIP_PLL_LOCK 0x82000003 > -#define COMPHY_FW_NOT_SUPPORTED (-1) > > #define COMPHY_FW_MODE_SATA 0x1 > #define COMPHY_FW_MODE_SGMII 0x2 > @@ -112,10 +111,19 @@ static int mvebu_a3700_comphy_smc(unsigned long function, unsigned long lane, > unsigned long mode) > { > struct arm_smccc_res res; > + s32 ret; > > arm_smccc_smc(function, lane, mode, 0, 0, 0, 0, 0, &res); > + ret = res.a0; > > - return res.a0; > + switch (ret) { > + case SMCCC_RET_SUCCESS: > + return 0; > + case SMCCC_RET_NOT_SUPPORTED: > + return -EOPNOTSUPP; > + default: > + return -EINVAL; > + } > } Hi Pali Maybe this should be a global helper translating SMCCC_RET_* into a standard errno value? Andrew _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-09-02 16:16 UTC|newest] Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-09-02 14:43 [PATCH 0/2] PCI: aardvark: Fix comphy with old ATF Pali Rohár 2020-09-02 14:43 ` Pali Rohár 2020-09-02 14:43 ` [PATCH 1/2] phy: marvell: comphy: Convert internal SMCC firmware return codes to errno Pali Rohár 2020-09-02 14:43 ` Pali Rohár 2020-09-02 16:13 ` Andrew Lunn [this message] 2020-09-02 16:13 ` Andrew Lunn 2020-09-02 16:56 ` Pali Rohár 2020-09-02 16:56 ` Pali Rohár 2020-09-02 17:00 ` Andrew Lunn 2020-09-02 17:00 ` Andrew Lunn 2020-09-02 17:05 ` Pali Rohár 2020-09-02 17:05 ` Pali Rohár 2020-09-02 17:20 ` Andrew Lunn 2020-09-02 17:20 ` Andrew Lunn 2020-09-02 17:45 ` Pali Rohár 2020-09-02 17:45 ` Pali Rohár 2020-09-30 18:17 ` Rob Herring 2020-09-30 18:17 ` Rob Herring 2020-09-02 14:43 ` [PATCH 2/2] PCI: aardvark: Fix initialization with old Marvell's Arm Trusted Firmware Pali Rohár 2020-09-02 14:43 ` Pali Rohár 2020-09-30 18:17 ` Rob Herring 2020-09-30 18:17 ` Rob Herring 2020-09-16 15:14 ` [PATCH 0/2] PCI: aardvark: Fix comphy with old ATF Tomasz Maciej Nowak 2020-09-16 15:14 ` Tomasz Maciej Nowak 2020-09-21 13:09 ` Pali Rohár 2020-09-21 13:09 ` Pali Rohár 2020-10-02 12:00 ` Pali Rohár 2020-10-02 12:00 ` Pali Rohár 2020-10-02 13:37 ` Lorenzo Pieralisi 2020-10-02 13:37 ` Lorenzo Pieralisi 2020-10-02 14:26 ` Pali Rohár 2020-10-02 14:26 ` Pali Rohár 2020-10-02 14:38 ` Lorenzo Pieralisi 2020-10-02 14:38 ` Lorenzo Pieralisi 2020-10-02 14:52 ` Pali Rohár 2020-10-02 14:52 ` Pali Rohár 2020-10-02 15:03 ` Lorenzo Pieralisi 2020-10-02 15:03 ` Lorenzo Pieralisi 2020-10-02 15:07 ` Pali Rohár 2020-10-02 15:07 ` Pali Rohár 2020-10-02 15:15 ` Lorenzo Pieralisi 2020-10-02 15:15 ` Lorenzo Pieralisi 2020-10-02 15:20 ` Pali Rohár 2020-10-02 15:20 ` Pali Rohár
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200902161328.GE3050651@lunn.ch \ --to=andrew@lunn.ch \ --cc=bhelgaas@google.com \ --cc=kishon@ti.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pci@vger.kernel.org \ --cc=lorenzo.pieralisi@arm.com \ --cc=marek.behun@nic.cz \ --cc=miquel.raynal@bootlin.com \ --cc=pali@kernel.org \ --cc=robh@kernel.org \ --cc=tmn505@gmail.com \ --cc=vkoul@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.