[PATCH net-next 09/18] net: mvpp2: use named interrupts

Sergei Shtylyov sergei.shtylyov at cogentembedded.com
Mon Jul 24 09:49:03 PDT 2017


On 07/24/2017 04:48 PM, Antoine Tenart wrote:

> This patch update the Marvell PPv2 driver to use named interrupts. A
> compatibility path is kept to allow using device trees using the old dt
> bindings. This change is needed as other interrupts will be used by the
> PPv2 driver at some point.
>
> Signed-off-by: Antoine Tenart <antoine.tenart at free-electrons.com>
> ---
>  drivers/net/ethernet/marvell/mvpp2.c | 18 ++++++++++++++----
>  1 file changed, 14 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/ethernet/marvell/mvpp2.c b/drivers/net/ethernet/marvell/mvpp2.c
> index f6eb98d38ced..77eef2cc40a1 100644
> --- a/drivers/net/ethernet/marvell/mvpp2.c
> +++ b/drivers/net/ethernet/marvell/mvpp2.c
> @@ -6789,10 +6789,20 @@ static int mvpp2_port_probe(struct platform_device *pdev,
>
>  	port = netdev_priv(dev);
>
> -	port->irq = irq_of_parse_and_map(port_node, 0);
> -	if (port->irq <= 0) {
> -		err = -EINVAL;
> -		goto err_free_netdev;
> +	if (of_get_property(port_node, "interrupt-names", NULL)) {
> +		port->irq = of_irq_get_byname(port_node, "rx-shared");
> +		if (port->irq <= 0) {
> +			err = (port->irq == -EPROBE_DEFER) ?
> +			      -EPROBE_DEFER : -EINVAL;

    Perhaps better:

		err = port->irq ?: -EINVAL;

> +			goto err_free_netdev;
> +		}
> +	} else {
> +		/* kept for dt compatibility */
> +		port->irq = irq_of_parse_and_map(port_node, 0);
> +		if (port->irq <= 0) {

    Note that irq_of_parse_and_map() returns *unsigned int*, so negative error 
codes are not possible, 0 indicates bad IRQ.

> +			err = -EINVAL;
> +			goto err_free_netdev;
> +		}
>  	}
>
>  	if (of_property_read_bool(port_node, "marvell,loopback"))

MBR, Sergei




More information about the linux-arm-kernel mailing list