Subject: Re: [PATCH v3] ibm_newemac: Parameterize EMAC Multicast Match Handling

From: Benjamin Herrenschmidt <[email-masked]>
Date: Sun, 06 Jul 2008 08:45:09 +1000

On Sat, 2008-07-05 at 02:18 -0700, Grant Erickson wrote:
> --- a/drivers/net/ibm_newemac/emac.h
> +++ b/drivers/net/ibm_newemac/emac.h
> @@ -41,14 +41,7 @@ struct emac_regs {
>         u32 vtpid;              /* Reset, R, T  */
>         u32 vtci;               /* Reset, R, T  */
>         u32 ptr;                /* Reset,    T  */
> -       u32 iaht1;              /* Reset, R     */
> -       u32 iaht2;              /* Reset, R     */
> -       u32 iaht3;              /* Reset, R     */
> -       u32 iaht4;              /* Reset, R     */
> -       u32 gaht1;              /* Reset, R     */
> -       u32 gaht2;              /* Reset, R     */
> -       u32 gaht3;              /* Reset, R     */
> -       u32 gaht4;              /* Reset, R     */
> +       u32 reserved[8];/* Chip-dependent */
>         u32 lsah;
>         u32 lsal;
>         u32 ipgvr;              /* Reset,    T  */

Mostly looks good. I don't like "reserved" here tho...

Are lsah, lsal and ipgvr still meaningful here ?

If not, just remove everything past "ptr"...

Another option would have been to have emac regs be something
like

struct emac_regs {
	all the common regs
	.../...
	union (
		struct emac4_add_regs {
			emac4 additional regs
		};
		struct emac4sync_add_regs {
			emac4sync additional regs
		}
	};
};

Ben.