On 29/09/17 14:46, Timo Alho wrote: > Hi Jon, > > On 21.09.2017 14:21, Jonathan Hunter wrote: >> >> >> On 07/09/17 10:31, Timo Alho wrote: >>> Check return code in BPMP response message(s). The typical error case >>> is when clock operation is attempted with invalid clock identifier. >>> >>> Also remove error print from call to clk_get_info() as the >>> implementation loops through range of all possible identifier, but the >>> operation is expected error out when the clock id is unused. >>> >>> Signed-off-by: Timo Alho <talho@xxxxxxxxxx> >>> --- >>> drivers/clk/tegra/clk-bpmp.c | 15 ++++++++++----- >>> 1 file changed, 10 insertions(+), 5 deletions(-) >>> >>> diff --git a/drivers/clk/tegra/clk-bpmp.c b/drivers/clk/tegra/clk-bpmp.c >>> index 638ace6..a896692 100644 >>> --- a/drivers/clk/tegra/clk-bpmp.c >>> +++ b/drivers/clk/tegra/clk-bpmp.c >>> @@ -55,6 +55,7 @@ struct tegra_bpmp_clk_message { >>> struct { >>> void *data; >>> size_t size; >>> + int ret; >>> } rx; >>> }; >>> @@ -64,6 +65,7 @@ static int tegra_bpmp_clk_transfer(struct >>> tegra_bpmp *bpmp, >>> struct mrq_clk_request request; >>> struct tegra_bpmp_message msg; >>> void *req = &request; >>> + int err; >>> memset(&request, 0, sizeof(request)); >>> request.cmd_and_id = (clk->cmd << 24) | clk->id; >>> @@ -84,7 +86,13 @@ static int tegra_bpmp_clk_transfer(struct >>> tegra_bpmp *bpmp, >>> msg.rx.data = clk->rx.data; >>> msg.rx.size = clk->rx.size; >>> - return tegra_bpmp_transfer(bpmp, &msg); >>> + err = tegra_bpmp_transfer(bpmp, &msg); >>> + if (err < 0) >>> + return err; >>> + else if (msg.rx.ret < 0) >>> + return -EINVAL; >> >> I assume that the error codes returned do not correlated to the Linux >> error codes here. Is that correct? If not we could just return the >> actual error code. Otherwise would it be useful to print a message with >> the bpmp error code for debug? > > The error codes are not 1:1 match with Linux. Unfortunately, printing > message for debug is not either viable as during clock probing we are > expecting many of the calls to return -BPMP_EINVAL to indicate that > particular clock ID is unused. OK. Could it return other errors other than BPMP_EINVAL? I am just wondering if we need to differentiate between unused and an actual error? Maybe that is not possible here? Cheers Jon -- nvpublic -- To unsubscribe from this list: send the line "unsubscribe linux-tegra" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html