[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <edfbaf8e-16df-4a25-8647-79b8730dca08@lunn.ch>
Date: Mon, 4 Sep 2023 16:02:22 +0200
From: Andrew Lunn <andrew@...n.ch>
To: MD Danish Anwar <danishanwar@...com>
Cc: Simon Horman <horms@...nel.org>, Roger Quadros <rogerq@...nel.org>,
Vignesh Raghavendra <vigneshr@...com>,
Jacob Keller <jacob.e.keller@...el.com>,
Richard Cochran <richardcochran@...il.com>,
Paolo Abeni <pabeni@...hat.com>, Jakub Kicinski <kuba@...nel.org>,
Eric Dumazet <edumazet@...gle.com>,
"David S. Miller" <davem@...emloft.net>,
linux-kernel@...r.kernel.org, netdev@...r.kernel.org, srk@...com,
r-gunasekaran@...com
Subject: Re: [RFC PATCH net-next 1/4] net: ti: icssg-prueth: Add helper
functions to configure FDB
> +int icssg_send_fdb_msg(struct prueth_emac *emac, struct mgmt_cmd *cmd,
> + struct mgmt_cmd_rsp *rsp)
> +{
> + struct prueth *prueth = emac->prueth;
> + int slice = prueth_emac_slice(emac);
> + int i = 10000;
> + int addr;
> +
> + addr = icssg_queue_pop(prueth, slice == 0 ?
> + ICSSG_CMD_POP_SLICE0 : ICSSG_CMD_POP_SLICE1);
> + if (addr < 0)
> + return addr;
> +
> + /* First 4 bytes have FW owned buffer linking info which should
> + * not be touched
> + */
> + memcpy_toio(prueth->shram.va + addr + 4, cmd, sizeof(*cmd));
> + icssg_queue_push(prueth, slice == 0 ?
> + ICSSG_CMD_PUSH_SLICE0 : ICSSG_CMD_PUSH_SLICE1, addr);
> + while (i--) {
> + addr = icssg_queue_pop(prueth, slice == 0 ?
> + ICSSG_RSP_POP_SLICE0 : ICSSG_RSP_POP_SLICE1);
> + if (addr < 0) {
> + usleep_range(1000, 2000);
> + continue;
> + }
Please try to make use of include/linux/iopoll.h.
> + if (i <= 0) {
> + netdev_err(emac->ndev, "Timedout sending HWQ message\n");
> + return -EINVAL;
Using iopoll.h will fix this, but -ETIMEDOUT, not -EINVAL.
Andrew
Powered by blists - more mailing lists