From: Giuseppe CAVALLARO <peppe.cavallaro@st.com>
To: Sonic Zhang <sonic.adi@gmail.com>
Cc: netdev@vger.kernel.org,
adi-buildroot-devel@lists.sourceforge.net,
Sonic Zhang <sonic.zhang@analog.com>
Subject: Re: [PATCH v4][for net-next] driver:net:stmmac: Disable DMA store and forward mode if platform data force_thresh_dma_mode is set.
Date: Wed, 28 Aug 2013 12:39:46 +0200 [thread overview]
Message-ID: <521DD372.9090605@st.com> (raw)
In-Reply-To: <1377686458-9943-1-git-send-email-sonic.adi@gmail.com>
On 8/28/2013 12:40 PM, Sonic Zhang wrote:
> From: Sonic Zhang<sonic.zhang@analog.com>
>
> Some synopsys ip implementation doesn't support DMA store and forward mode,
> such as BF60x. So, set force_thresh_dma_mode to use DMA thresholds only.
> Update document and devicetree as well.
>
> Signed-off-by: Sonic Zhang<sonic.zhang@analog.com>
> ---
> Documentation/devicetree/bindings/net/stmmac.txt | 5 +++++
> Documentation/networking/stmmac.txt | 3 +++
> drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 4 +++-
> drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 3 +++
> include/linux/stmmac.h | 1 +
> 5 files changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/net/stmmac.txt b/Documentation/devicetree/bindings/net/stmmac.txt
> index 261c563..eba0e5e 100644
> --- a/Documentation/devicetree/bindings/net/stmmac.txt
> +++ b/Documentation/devicetree/bindings/net/stmmac.txt
> @@ -22,6 +22,11 @@ Required properties:
> - snps,pbl Programmable Burst Length
> - snps,fixed-burst Program the DMA to use the fixed burst mode
> - snps,mixed-burst Program the DMA to use the mixed burst mode
> +- snps,force_thresh_dma_mode Force DMA to use the threshold mode for
> + both tx and rx
> +- snps,force_sf_dma_mode Force DMA to use the Store and Forward
> + mode for both tx and rx. This flag is
> + ignored if force_thresh_dma_mode is set.
>
> Optional properties:
> - mac-address: 6 bytes, mac address
> diff --git a/Documentation/networking/stmmac.txt b/Documentation/networking/stmmac.txt
> index 654d2e5..457b8bb 100644
> --- a/Documentation/networking/stmmac.txt
> +++ b/Documentation/networking/stmmac.txt
> @@ -123,6 +123,7 @@ struct plat_stmmacenet_data {
> int bugged_jumbo;
> int pmt;
> int force_sf_dma_mode;
> + int force_thresh_dma_mode;
> int riwt_off;
> void (*fix_mac_speed)(void *priv, unsigned int speed);
> void (*bus_setup)(void __iomem *ioaddr);
> @@ -159,6 +160,8 @@ Where:
> o pmt: core has the embedded power module (optional).
> o force_sf_dma_mode: force DMA to use the Store and Forward mode
> instead of the Threshold.
> + o force_thresh_dma_mode: force DMA to use the Shreshold mode other than
> + the Store and Forward mode.
> o riwt_off: force to disable the RX watchdog feature and switch to NAPI mode.
> o fix_mac_speed: this callback is used for modifying some syscfg registers
> (on ST SoCs) according to the link speed negotiated by the
> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> index be40691..8d4ccd3 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> @@ -1224,7 +1224,9 @@ static void free_dma_desc_resources(struct stmmac_priv *priv)
> */
> static void stmmac_dma_operation_mode(struct stmmac_priv *priv)
> {
> - if (priv->plat->force_sf_dma_mode || priv->plat->tx_coe) {
> + if (priv->plat->force_thresh_dma_mode)
> + priv->hw->dma->dma_mode(priv->ioaddr, tc, tc);
> + else if (priv->plat->force_sf_dma_mode || priv->plat->tx_coe) {
> /*
> * In case of GMAC, SF mode can be enabled
> * to perform the TX COE in HW. This depends on:
> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> index da8be6e..865c944 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> @@ -79,6 +79,9 @@ static int stmmac_probe_config_dt(struct platform_device *pdev,
> of_property_read_u32(np, "snps,pbl", &dma_cfg->pbl);
> dma_cfg->fixed_burst = of_property_read_bool(np, "snps,fixed-burst");
> dma_cfg->mixed_burst = of_property_read_bool(np, "snps,mixed-burst");
> + plat->force_thresh_dma_mode = of_property_read_bool(np, "snps,force_thresh_dma_mode");
> + if (plat->force_thresh_dma_mode)
> + plat->force_sf_dma_mode = 0;
>
ok this solution looks to be a compromise and avoids to disturb
platforms that already use the force_sf_dma_mode.
can I only ask you to add a pr_warn here
thanks a lot
peppe
prev parent reply other threads:[~2013-08-28 10:39 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-28 10:40 [PATCH v4][for net-next] driver:net:stmmac: Disable DMA store and forward mode if platform data force_thresh_dma_mode is set Sonic Zhang
2013-08-28 10:39 ` Giuseppe CAVALLARO [this message]
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=521DD372.9090605@st.com \
--to=peppe.cavallaro@st.com \
--cc=adi-buildroot-devel@lists.sourceforge.net \
--cc=netdev@vger.kernel.org \
--cc=sonic.adi@gmail.com \
--cc=sonic.zhang@analog.com \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).