From: Stefano Babic <sbabic@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 1/2] net: fec_mxc: Adjust RX DMA alignment for mx6solox
Date: Thu, 21 Aug 2014 10:01:36 +0200 [thread overview]
Message-ID: <53F5A760.4000201@denx.de> (raw)
In-Reply-To: <1408569876-28539-1-git-send-email-festevam@gmail.com>
Hi Fabio,
On 20/08/2014 23:24, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam@freescale.com>
>
> mx6solox has a requirement for 64 bytes alignment for RX DMA transfer.
>
> Adjust it accordingly.
>
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> ---
> Changes since v1:
> - Avoid too many ifdef's by providing a dma_rx_align() funtion as suggested
> by Otavio
>
> drivers/net/fec_mxc.c | 17 ++++++++++++++---
> 1 file changed, 14 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
> index 4cefda4..1a5105e 100644
> --- a/drivers/net/fec_mxc.c
> +++ b/drivers/net/fec_mxc.c
> @@ -28,6 +28,8 @@ DECLARE_GLOBAL_DATA_PTR;
> */
> #define FEC_XFER_TIMEOUT 5000
>
> +#define ARCH_DMA_MINALIGN_MX6SX 64
> +
> #ifndef CONFIG_MII
> #error "CONFIG_MII has to be defined!"
> #endif
> @@ -267,6 +269,15 @@ static int fec_tx_task_disable(struct fec_priv *fec)
> return 0;
> }
>
> +static int dma_rx_align(void)
> +{
> +#ifdef CONFIG_MX6SX
> + return ARCH_DMA_MINALIGN_MX6SX;
> +#else
> + return ARCH_DMA_MINALIGN;
> +#endif
> +}
> +
I go just a bit further according to Otavio's comment. In this way, we
do not remove #ifdef, we have only moved. What about using is_cpu_type()
instead of this ? If you do not want to add the macro for not mx6 socs
(preferable way, I think), the get_cpu_rev() should be available for all
i.MXes.
> /**
> * Initialize receive task's buffer descriptors
> * @param[in] fec all we know about the device yet
> @@ -286,7 +297,7 @@ static void fec_rbd_init(struct fec_priv *fec, int count, int dsize)
> * Reload the RX descriptors with default values and wipe
> * the RX buffers.
> */
> - size = roundup(dsize, ARCH_DMA_MINALIGN);
> + size = roundup(dsize, dma_rx_align());
> for (i = 0; i < count; i++) {
> data = (uint8_t *)fec->rbd_base[i].data_pointer;
> memset(data, 0, dsize);
> @@ -881,9 +892,9 @@ static int fec_alloc_descs(struct fec_priv *fec)
> /* Allocate RX buffers. */
>
> /* Maximum RX buffer size. */
> - size = roundup(FEC_MAX_PKT_SIZE, ARCH_DMA_MINALIGN);
> + size = roundup(FEC_MAX_PKT_SIZE, dma_rx_align());
> for (i = 0; i < FEC_RBD_NUM; i++) {
> - data = memalign(ARCH_DMA_MINALIGN, size);
> + data = memalign(dma_rx_align(), size);
> if (!data) {
> printf("%s: error allocating rxbuf %d\n", __func__, i);
> goto err_ring;
>
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
next prev parent reply other threads:[~2014-08-21 8:01 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-20 21:24 [U-Boot] [PATCH v2 1/2] net: fec_mxc: Adjust RX DMA alignment for mx6solox Fabio Estevam
2014-08-20 21:24 ` [U-Boot] [PATCH v2 2/2] net: fec_mxc: Do not error out when FEC_TBD_READY Fabio Estevam
2014-08-20 21:34 ` Otavio Salvador
2014-08-21 3:47 ` Marek Vasut
2014-08-21 3:53 ` Marek Vasut
2014-08-21 4:11 ` Ye Li
2014-08-21 5:02 ` Marek Vasut
2014-08-21 7:57 ` Stefano Babic
2014-08-21 8:35 ` Li Ye-B37916
2014-08-21 11:39 ` Marek Vasut
2014-08-21 3:44 ` [U-Boot] [PATCH v2 1/2] net: fec_mxc: Adjust RX DMA alignment for mx6solox Li Ye-B37916
2014-08-21 3:51 ` Marek Vasut
2014-08-21 6:03 ` Stefan Roese
2014-08-21 12:08 ` Fabio Estevam
2014-08-21 8:01 ` Stefano Babic [this message]
2014-08-21 11:55 ` Fabio Estevam
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=53F5A760.4000201@denx.de \
--to=sbabic@denx.de \
--cc=u-boot@lists.denx.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.