Message ID | 20200707012707.13267-1-cphealy@localhost.localdomain |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | [net-next,v3] net: sfp: Unique GPIO interrupt names | expand |
From: Chris Healy <cphealy@gmail.com> Date: Mon, 6 Jul 2020 18:27:07 -0700 > From: Chris Healy <cphealy@gmail.com> > > Dynamically generate a unique GPIO interrupt name, based on the > device name and the GPIO name. For example: > > 103: 0 sx1503q 12 Edge sff2-los > 104: 0 sx1503q 13 Edge sff2-tx-fault > > The sffX indicates the SFP the los and tx-fault are associated with. > > Signed-off-by: Chris Healy <cphealy@gmail.com> > > v3: > - reverse Christmas tree new variable > - fix spaces vs tabs > v2: > - added net-next to PATCH part of subject line > - switched to devm_kasprintf() Applied.
On Mon, Jul 6, 2020 at 11:52 PM Andy Shevchenko <andy.shevchenko@gmail.com> wrote: > > > > On Tuesday, July 7, 2020, Chris Healy <cphealy@gmail.com> wrote: >> >> From: Chris Healy <cphealy@gmail.com> >> >> Dynamically generate a unique GPIO interrupt name, based on the >> device name and the GPIO name. For example: >> >> 103: 0 sx1503q 12 Edge sff2-los >> 104: 0 sx1503q 13 Edge sff2-tx-fault >> >> The sffX indicates the SFP the los and tx-fault are associated with. >> >> Signed-off-by: Chris Healy <cphealy@gmail.com> >> >> v3: >> - reverse Christmas tree new variable >> - fix spaces vs tabs >> v2: >> - added net-next to PATCH part of subject line >> - switched to devm_kasprintf() >> --- >> drivers/net/phy/sfp.c | 7 ++++++- >> 1 file changed, 6 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/net/phy/sfp.c b/drivers/net/phy/sfp.c >> index 73c2969f11a4..7bdfcde98266 100644 >> --- a/drivers/net/phy/sfp.c >> +++ b/drivers/net/phy/sfp.c >> @@ -2238,6 +2238,7 @@ static int sfp_probe(struct platform_device *pdev) >> { >> const struct sff_data *sff; >> struct i2c_adapter *i2c; >> + char *sfp_irq_name; >> struct sfp *sfp; >> int err, i; >> >> @@ -2349,12 +2350,16 @@ static int sfp_probe(struct platform_device *pdev) >> continue; >> } >> >> + sfp_irq_name = devm_kasprintf(sfp->dev, GFP_KERNEL, >> + "%s-%s", dev_name(sfp->dev), >> + gpio_of_names[i]); > > > > No error check? Why? Good point. I will add this. I see this patch was just applied so I'll submit a follow on patch to add the appropriate error check. > > >> >> + >> err = devm_request_threaded_irq(sfp->dev, sfp->gpio_irq[i], >> NULL, sfp_irq, >> IRQF_ONESHOT | >> IRQF_TRIGGER_RISING | >> IRQF_TRIGGER_FALLING, >> - dev_name(sfp->dev), sfp); >> + sfp_irq_name, sfp); >> if (err) { >> sfp->gpio_irq[i] = 0; >> sfp->need_poll = true; >> -- >> 2.21.3 >> > > > -- > With Best Regards, > Andy Shevchenko > >
diff --git a/drivers/net/phy/sfp.c b/drivers/net/phy/sfp.c index 73c2969f11a4..7bdfcde98266 100644 --- a/drivers/net/phy/sfp.c +++ b/drivers/net/phy/sfp.c @@ -2238,6 +2238,7 @@ static int sfp_probe(struct platform_device *pdev) { const struct sff_data *sff; struct i2c_adapter *i2c; + char *sfp_irq_name; struct sfp *sfp; int err, i; @@ -2349,12 +2350,16 @@ static int sfp_probe(struct platform_device *pdev) continue; } + sfp_irq_name = devm_kasprintf(sfp->dev, GFP_KERNEL, + "%s-%s", dev_name(sfp->dev), + gpio_of_names[i]); + err = devm_request_threaded_irq(sfp->dev, sfp->gpio_irq[i], NULL, sfp_irq, IRQF_ONESHOT | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, - dev_name(sfp->dev), sfp); + sfp_irq_name, sfp); if (err) { sfp->gpio_irq[i] = 0; sfp->need_poll = true;