On Fri, Jul 07, 2023 at 02:45:28AM -0700, Souradeep Chakrabarti wrote:
At present hwc timeout value is a fixed value. This patch sets the hwc timeout from the hardware.
Signed-off-by: Souradeep Chakrabarti schakrabarti@linux.microsoft.com
V1 -> V2:
- Added return check for mana_gd_query_hwc_timeout
- Removed dev_err from mana_gd_query_hwc_timeout
.../net/ethernet/microsoft/mana/gdma_main.c | 30 ++++++++++++++++++- .../net/ethernet/microsoft/mana/hw_channel.c | 25 +++++++++++++++- include/net/mana/gdma.h | 20 ++++++++++++- include/net/mana/hw_channel.h | 5 ++++ 4 files changed, 77 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/microsoft/mana/gdma_main.c b/drivers/net/ethernet/microsoft/mana/gdma_main.c index 8f3f78b68592..949c927c3a7e 100644 --- a/drivers/net/ethernet/microsoft/mana/gdma_main.c +++ b/drivers/net/ethernet/microsoft/mana/gdma_main.c @@ -106,6 +106,27 @@ static int mana_gd_query_max_resources(struct pci_dev *pdev) return 0; } +static int mana_gd_query_hwc_timeout(struct pci_dev *pdev, u32 *timeout_val) +{
- struct gdma_context *gc = pci_get_drvdata(pdev);
- struct gdma_query_hwc_timeout_req req = {};
- struct gdma_query_hwc_timeout_resp resp = {};
- int err;
- mana_gd_init_req_hdr(&req.hdr, GDMA_QUERY_HWC_TIMEOUT,
sizeof(req), sizeof(resp));
- req.timeout_ms = *timeout_val;
- err = mana_gd_send_request(gc, sizeof(req), &req, sizeof(resp), &resp);
- if (err || resp.hdr.status)
return err ? err : -EPROTO;
- *timeout_val = resp.timeout_ms;
- dev_info(gc->dev, "Successfully changed the timeout value %u\n",
*timeout_val);
When the kernel works properly, it is quiet. Please always remove your debugging code before submitting changes for inclusion.
thanks,
greg k-h