On Mon, Mar 12, 2018 at 03:49:51AM -0500, Razvan Stefanescu wrote:

> +static irqreturn_t ethsw_irq0_handler(int irq_num, void *arg)
> +{
> +     return IRQ_WAKE_THREAD;
> +}
> +

> +static int ethsw_setup_irqs(struct fsl_mc_device *sw_dev)
> +{
> +     struct device *dev = &sw_dev->dev;
> +     struct ethsw_core *ethsw = dev_get_drvdata(dev);
> +     u32 mask = DPSW_IRQ_EVENT_LINK_CHANGED;
> +     struct fsl_mc_device_irq *irq;
> +     int err;
> +
> +     err = fsl_mc_allocate_irqs(sw_dev);
> +     if (err) {
> +             dev_err(dev, "MC irqs allocation failed\n");
> +             return err;
> +     }
> +
> +     if (WARN_ON(sw_dev->obj_desc.irq_count != DPSW_IRQ_NUM)) {
> +             err = -EINVAL;
> +             goto free_irq;
> +     }
> +
> +     err = dpsw_set_irq_enable(ethsw->mc_io, 0, ethsw->dpsw_handle,
> +                               DPSW_IRQ_INDEX_IF, 0);
> +     if (err) {
> +             dev_err(dev, "dpsw_set_irq_enable err %d\n", err);
> +             goto free_irq;
> +     }
> +
> +     irq = sw_dev->irqs[DPSW_IRQ_INDEX_IF];
> +
> +     err = devm_request_threaded_irq(dev, irq->msi_desc->irq,
> +                                     ethsw_irq0_handler,
> +                                     ethsw_irq0_handler_thread,
> +                                     IRQF_NO_SUSPEND | IRQF_ONESHOT,
> +                                     dev_name(dev), dev);

Hi Razvan

You can pass NULL instead of ethsw_irq0_handler.

    Andrew
_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to