Subject: Re: [PATCH v2 6/8] net: sh-eth: Add irq configureation flags in sh_eth_cpu_data

From: Sergei Shtylyov <[email-masked]>
Date: Thu, 18 Apr 2013 18:57:27 +0400

Hello.

On 18-04-2013 14:11, Nobuhiro Iwamatsu wrote:

> sh-eth is supporting some SH and shmobile CPU. CPU with two or more networked
> devices is in these, these specify IRQF_SHARED as IRQ configureation flags.
> This changes to set IRQ configureation flags using in sh_eth_cpu_data.

> Signed-off-by: Nobuhiro Iwamatsu <[email-masked]>
[...]

> diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c
> index af8c225..a4e337f 100644
> --- a/drivers/net/ethernet/renesas/sh_eth.c
> +++ b/drivers/net/ethernet/renesas/sh_eth.c
[...]
> @@ -1920,14 +1923,7 @@ static int sh_eth_open(struct net_device *ndev)
>   	pm_runtime_get_sync(&mdp->pdev->dev);
>
>   	ret = request_irq(ndev->irq, sh_eth_interrupt,
> -#if defined(CONFIG_CPU_SUBTYPE_SH7763) || \
> -	defined(CONFIG_CPU_SUBTYPE_SH7764) || \
> -	defined(CONFIG_CPU_SUBTYPE_SH7757)
> -				IRQF_SHARED,
> -#else
> -				0,
> -#endif

    Isn't it simpler to always pass IRQF_SHARED?

> -				ndev->name, ndev);
> +				mdp->cd->irq_flags, ndev->name, ndev);
>   	if (ret) {
>   		dev_err(&ndev->dev, "Can not assign IRQ number\n");
>   		return ret;
> diff --git a/drivers/net/ethernet/renesas/sh_eth.h b/drivers/net/ethernet/renesas/sh_eth.h
> index f86ea96..0772ec1 100644
> --- a/drivers/net/ethernet/renesas/sh_eth.h
> +++ b/drivers/net/ethernet/renesas/sh_eth.h
> @@ -463,6 +463,7 @@ struct sh_eth_cpu_data {
>   	unsigned long tx_error_check;
>
>   	/* hardware features */
> +	unsigned long irq_flags; /* IRQ configuration flags */

    Comment should have been indented with tabs like the others.

>   	unsigned no_psr:1;		/* EtherC DO NOT have PSR */
>   	unsigned apr:1;			/* EtherC have APR */
>   	unsigned mpr:1;			/* EtherC have MPR */
> @@ -508,6 +509,7 @@ struct sh_eth_private {
>   	int duplex;
>   	int port;		/* for TSU */
>   	int vlan_num_ids;	/* for VLAN tag filter */
> +	unsigned long irq_flags; /* IRQ configuration flags */

    You don't seem to use this...

WBR, Sergei