From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Cc: netdev@vger.kernel.org, davem@davemloft.net, lethal@linux-sh.org,
linux-sh@vger.kernel.org
Subject: Re: [PATCH 2/2] sh_eth: remove 'register_type' field from 'struct sh_eth_plat_data'
Date: Tue, 20 Aug 2013 22:50:39 +0000 [thread overview]
Message-ID: <2784326.CAqkc6T846@avalon> (raw)
In-Reply-To: <5213E92D.7070004@cogentembedded.com>
Hi Sergei,
On Wednesday 21 August 2013 02:09:49 Sergei Shtylyov wrote:
> On 08/20/2013 06:27 PM, Sergei Shtylyov wrote:
> >>> Now that the 'register_type' field of the 'sh_eth' driver's platform
> >>> data is not used by the driver anymore, it's time to remove it and its
> >>> initializers from the SH platform code. Also move *enum* declaring
> >>> values for this field from <linux/sh_eth.h> to the local driver's
> >>> header file as they're only needed by the driver itself now...
> >>>
> >>> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
>
> [...]
>
> >>> /* Driver's parameters */
> >>> #if defined(CONFIG_CPU_SH4) || defined(CONFIG_ARCH_SHMOBILE)
> >>> #define SH4_SKB_RX_ALIGN 32
> >>>
> >>> Index: net-next/include/linux/sh_eth.h
> >>> =================================> >>> --- net-next.orig/include/linux/sh_eth.h
> >>> +++ net-next/include/linux/sh_eth.h
> >>> @@ -5,17 +5,10 @@
> >>>
> >>> #include <linux/if_ether.h>
> >>>
> >>> enum {EDMAC_LITTLE_ENDIAN, EDMAC_BIG_ENDIAN};
> >>>
> >>> -enum {
> >>> - SH_ETH_REG_GIGABIT,
> >>> - SH_ETH_REG_FAST_RCAR,
> >>> - SH_ETH_REG_FAST_SH4,
> >>> - SH_ETH_REG_FAST_SH3_SH2
> >>> -};
> >>>
> >>> struct sh_eth_plat_data {
> >>>
> >>> int phy;
> >>> int edmac_endian;
> >>
> >> Wouldn't it make sense to move the edmac_endian field to sh_eth_cpu_data
> >> as well ?
> >>
> > No, it depends on the SoC endianness which is determined by power-on pin
> > strapping -- which is board specific.
Does SoC endianness affect the ARM core endianness, the ethernet registers
endianness, or both ? If it affects the ARM core endianness only, the kernel
needs to be compiled in little-endian or big-endian mode anyway, and the
sh_eth driver should use cpu_to_le32() unconditionally. If it affects both the
ARM core and the ethernet controller there's not need to care about the
endianness, as it will always be good. We only need to care about it if it
affects the ethernet controller registers only, which would seem weird to me.
> BTW, I don't think the driver works correctly in the BE case since it uses
> io{read|write}32() to access the registers and those functions assume LE
> ordering on MMIO.
--
Regards,
Laurent Pinchart
WARNING: multiple messages have this Message-ID (diff)
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Cc: netdev@vger.kernel.org, davem@davemloft.net, lethal@linux-sh.org,
linux-sh@vger.kernel.org
Subject: Re: [PATCH 2/2] sh_eth: remove 'register_type' field from 'struct sh_eth_plat_data'
Date: Wed, 21 Aug 2013 00:50:39 +0200 [thread overview]
Message-ID: <2784326.CAqkc6T846@avalon> (raw)
In-Reply-To: <5213E92D.7070004@cogentembedded.com>
Hi Sergei,
On Wednesday 21 August 2013 02:09:49 Sergei Shtylyov wrote:
> On 08/20/2013 06:27 PM, Sergei Shtylyov wrote:
> >>> Now that the 'register_type' field of the 'sh_eth' driver's platform
> >>> data is not used by the driver anymore, it's time to remove it and its
> >>> initializers from the SH platform code. Also move *enum* declaring
> >>> values for this field from <linux/sh_eth.h> to the local driver's
> >>> header file as they're only needed by the driver itself now...
> >>>
> >>> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
>
> [...]
>
> >>> /* Driver's parameters */
> >>> #if defined(CONFIG_CPU_SH4) || defined(CONFIG_ARCH_SHMOBILE)
> >>> #define SH4_SKB_RX_ALIGN 32
> >>>
> >>> Index: net-next/include/linux/sh_eth.h
> >>> ===================================================================
> >>> --- net-next.orig/include/linux/sh_eth.h
> >>> +++ net-next/include/linux/sh_eth.h
> >>> @@ -5,17 +5,10 @@
> >>>
> >>> #include <linux/if_ether.h>
> >>>
> >>> enum {EDMAC_LITTLE_ENDIAN, EDMAC_BIG_ENDIAN};
> >>>
> >>> -enum {
> >>> - SH_ETH_REG_GIGABIT,
> >>> - SH_ETH_REG_FAST_RCAR,
> >>> - SH_ETH_REG_FAST_SH4,
> >>> - SH_ETH_REG_FAST_SH3_SH2
> >>> -};
> >>>
> >>> struct sh_eth_plat_data {
> >>>
> >>> int phy;
> >>> int edmac_endian;
> >>
> >> Wouldn't it make sense to move the edmac_endian field to sh_eth_cpu_data
> >> as well ?
> >>
> > No, it depends on the SoC endianness which is determined by power-on pin
> > strapping -- which is board specific.
Does SoC endianness affect the ARM core endianness, the ethernet registers
endianness, or both ? If it affects the ARM core endianness only, the kernel
needs to be compiled in little-endian or big-endian mode anyway, and the
sh_eth driver should use cpu_to_le32() unconditionally. If it affects both the
ARM core and the ethernet controller there's not need to care about the
endianness, as it will always be good. We only need to care about it if it
affects the ethernet controller registers only, which would seem weird to me.
> BTW, I don't think the driver works correctly in the BE case since it uses
> io{read|write}32() to access the registers and those functions assume LE
> ordering on MMIO.
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2013-08-20 22:50 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-17 23:08 [PATCH 0/2] sh_eth: don't get the register layout from platform data Sergei Shtylyov
2013-08-17 23:08 ` Sergei Shtylyov
2013-08-17 23:11 ` [PATCH 1/2] sh_eth: get register layout from 'struct sh_eth_cpu_data' Sergei Shtylyov
2013-08-17 23:11 ` Sergei Shtylyov
2013-08-21 0:05 ` David Miller
2013-08-21 0:05 ` David Miller
2013-08-17 23:13 ` [PATCH 2/2] sh_eth: remove 'register_type' field from 'struct sh_eth_plat_data' Sergei Shtylyov
2013-08-17 23:13 ` Sergei Shtylyov
2013-08-20 10:51 ` Laurent Pinchart
2013-08-20 10:51 ` Laurent Pinchart
2013-08-20 14:27 ` Sergei Shtylyov
2013-08-20 14:27 ` Sergei Shtylyov
2013-08-20 22:09 ` Sergei Shtylyov
2013-08-20 22:09 ` Sergei Shtylyov
2013-08-20 22:50 ` Laurent Pinchart [this message]
2013-08-20 22:50 ` Laurent Pinchart
2013-08-20 23:01 ` Sergei Shtylyov
2013-08-20 23:01 ` Sergei Shtylyov
2013-08-21 0:39 ` Laurent Pinchart
2013-08-21 0:39 ` Laurent Pinchart
2013-08-21 12:49 ` Sergei Shtylyov
2013-08-21 12:49 ` Sergei Shtylyov
2013-08-21 12:58 ` Laurent Pinchart
2013-08-21 12:58 ` Laurent Pinchart
2013-08-26 21:30 ` Sergei Shtylyov
2013-08-26 21:30 ` Sergei Shtylyov
2013-08-27 6:41 ` Laurent Pinchart
2013-08-27 6:41 ` Laurent Pinchart
2013-08-21 0:05 ` David Miller
2013-08-21 0:05 ` David Miller
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=2784326.CAqkc6T846@avalon \
--to=laurent.pinchart@ideasonboard.com \
--cc=davem@davemloft.net \
--cc=lethal@linux-sh.org \
--cc=linux-sh@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=sergei.shtylyov@cogentembedded.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 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.