Re: [PATCH] usb: typec: tcpm/tcpci_maxim: better interrupt name

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Will,

On Fri, 2025-02-14 at 13:57 -0800, William McVicker wrote:
> On 02/13/2025, André Draszik wrote:
> > This changes the output of /proc/interrupts from the non-descriptive:
> >     1-0025
> > (or similar) to a more descriptive:
> >     1-0025-max33359
> > 
> > This makes it easier to find the device, in particular if there are
> > multiple i2c devices, as one doesn't have to remember (or lookup) where
> > it is located.
> > 
> > Signed-off-by: André Draszik <andre.draszik@xxxxxxxxxx>
> > ---
> >  drivers/usb/typec/tcpm/tcpci_maxim_core.c | 13 ++++++++++---
> >  1 file changed, 10 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/usb/typec/tcpm/tcpci_maxim_core.c b/drivers/usb/typec/tcpm/tcpci_maxim_core.c
> > index fd1b80593367..46fc626589db 100644
> > --- a/drivers/usb/typec/tcpm/tcpci_maxim_core.c
> > +++ b/drivers/usb/typec/tcpm/tcpci_maxim_core.c
> > @@ -420,12 +420,14 @@ static irqreturn_t max_tcpci_isr(int irq, void *dev_id)
> >  	return IRQ_WAKE_THREAD;
> >  }
> >  
> > -static int max_tcpci_init_alert(struct max_tcpci_chip *chip, struct i2c_client *client)
> > +static int max_tcpci_init_alert(struct max_tcpci_chip *chip,
> > +				struct i2c_client *client,
> > +				const char *name)
> >  {
> >  	int ret;
> >  
> >  	ret = devm_request_threaded_irq(chip->dev, client->irq, max_tcpci_isr, max_tcpci_irq,
> > -					(IRQF_TRIGGER_LOW | IRQF_ONESHOT), dev_name(chip->dev),
> > +					(IRQF_TRIGGER_LOW | IRQF_ONESHOT), name,
> >  					chip);
> >  
> >  	if (ret < 0)
> > @@ -485,6 +487,7 @@ static int max_tcpci_probe(struct i2c_client *client)
> >  	int ret;
> >  	struct max_tcpci_chip *chip;
> >  	u8 power_status;
> > +	const char *name;
> >  
> >  	chip = devm_kzalloc(&client->dev, sizeof(*chip), GFP_KERNEL);
> >  	if (!chip)
> > @@ -531,7 +534,11 @@ static int max_tcpci_probe(struct i2c_client *client)
> >  
> >  	chip->port = tcpci_get_tcpm_port(chip->tcpci);
> >  
> > -	ret = max_tcpci_init_alert(chip, client);
> > +	name = devm_kasprintf(&client->dev, GFP_KERNEL, "%s-%s",
> > +			      dev_name(&client->dev), client->name);
> > +	if (!name)
> > +		return -ENOMEM;
> > +	ret = max_tcpci_init_alert(chip, client, name);
> >  	if (ret < 0)
> >  		return dev_err_probe(&client->dev, ret,
> >  				     "IRQ initialization failed\n");
> 
> Can you just change the `init_name` instead like this?
> 
>   chip->client->dev.init_name = name;
> 
> That way calling `dev_name()` will get you this more informative name as well?

I don't think that member is supposed to be set by anybody. Looking
at device_add(), this seems to only be meant to be statically set
by statically allocated devices and is cleared upon device_add().
Essentially no driver sets this in the kernel.

So it doesn't appear to be appropriate.

Cheers,
Andre'






[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux