[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20181213151756.GD4701@google.com>
Date: Thu, 13 Dec 2018 09:17:56 -0600
From: Bjorn Helgaas <helgaas@...nel.org>
To: Wesley Sheng <wesley.sheng@...rochip.com>
Cc: kurt.schwemmer@...rosemi.com, logang@...tatee.com,
linux-pci@...r.kernel.org, linux-kernel@...r.kernel.org,
wesleyshenggit@...a.com
Subject: Re: [PATCH 5/5] switchtec: MRPC DMA mode implementation
On Mon, Dec 10, 2018 at 05:12:24PM +0800, Wesley Sheng wrote:
> MRPC normal mode requires the host to read the MRPC command status and
> output data from BAR. This results in high latency responses from the
> Memory Read TLP and potential Completion Timeout (CTO).
>
> MRPC DMA mode implementation includes:
> Macro definitions for registers and data structures corresponding to
> MRPC DMA mode.
>
> Add module parameter use_dma_mrpc to select between MRPC DMA mode and
> MRPC normal mode.
>
> Add MRPC mode functionality to:
> * Retrieve MRPC DMA mode version
> * Allocate DMA buffer, ISR registration, and enable DMA function during
> initialization
> * Check MRPC execution status and collect execution results from DMA buffer
> * Release DMA buffer and disable DMA function when unloading module
>
> MRPC DMA mode is a new feature of firmware and the driver will fall back
> to MRPC normal mode if there is no support in the legacy firmware.
>
> Include <linux/io-64-nonatomic-lo-hi.h> so that readq/writeq is replaced
> by two readl/writel on systems that do not support it.
>
> Signed-off-by: Wesley Sheng <wesley.sheng@...rochip.com>
> Reviewed-by: Logan Gunthorpe <logang@...tatee.com>
> static void init_pff(struct switchtec_dev *stdev)
> @@ -1294,6 +1367,19 @@ static int switchtec_init_pci(struct switchtec_dev *stdev,
>
> pci_set_drvdata(pdev, stdev);
>
> + if (!use_dma_mrpc)
> + return 0;
> +
> + if (!(ioread32(&stdev->mmio_mrpc->dma_ver) ? true : false))
> + return 0;
This is ... harder to decode than necessary. It's obvious that the
intent is to return if the adapter firmware doesn't support DMA, but I
lost interest before I could verify that it works as intended.
Bjorn
Powered by blists - more mailing lists