Re: [PATCH v2 3/3] usb: misc: ljca: print firmware version

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

 



Hi Greg,

On Wed, Nov 06, 2024 at 01:42:33PM +0100, Greg KH wrote:
> On Wed, Nov 06, 2024 at 01:34:38PM +0100, Stanislaw Gruszka wrote:
> > For diagnostics purposes read firmware version from device
> > and print it to dmesg during initialization.
> 
> No, sorry, when drivers work properly, they are quiet.  Think about what
> your kernel log would look like if you did this for every single driver
> in the tree.
> 
> > 
> > Reviewed-by: Hans de Goede <hdegoede@xxxxxxxxxx>
> > Tested-by: Hans de Goede <hdegoede@xxxxxxxxxx> # ThinkPad X1 Yoga Gen 8, ov2740
> > Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@xxxxxxxxxxxxxxx>
> > ---
> >  drivers/usb/misc/usb-ljca.c | 29 +++++++++++++++++++++++++++++
> >  1 file changed, 29 insertions(+)
> > 
> > diff --git a/drivers/usb/misc/usb-ljca.c b/drivers/usb/misc/usb-ljca.c
> > index d9c21f783055..e698a1075a40 100644
> > --- a/drivers/usb/misc/usb-ljca.c
> > +++ b/drivers/usb/misc/usb-ljca.c
> > @@ -43,6 +43,7 @@ enum ljca_client_type {
> >  
> >  /* MNG client commands */
> >  enum ljca_mng_cmd {
> > +	LJCA_MNG_GET_VERSION = 1,
> >  	LJCA_MNG_RESET = 2,
> >  	LJCA_MNG_ENUM_GPIO = 4,
> >  	LJCA_MNG_ENUM_I2C = 5,
> > @@ -68,6 +69,13 @@ struct ljca_msg {
> >  	u8 data[] __counted_by(len);
> >  } __packed;
> >  
> > +struct ljca_fw_version {
> > +	u8 major;
> > +	u8 minor;
> > +	__le16 patch;
> > +	__le16 build;
> > +} __packed;
> > +
> >  struct ljca_i2c_ctr_info {
> >  	u8 id;
> >  	u8 capacity;
> > @@ -695,6 +703,25 @@ static int ljca_reset_handshake(struct ljca_adapter *adap)
> >  	return 0;
> >  }
> >  
> > +static void ljca_print_fw_version(struct ljca_adapter *adap)
> > +{
> > +	struct ljca_fw_version version = {};
> > +	int ret;
> > +
> > +	ret = ljca_send(adap, LJCA_CLIENT_MNG, LJCA_MNG_GET_VERSION, NULL, 0,
> > +			(u8 *)&version, sizeof(version), true,
> > +			LJCA_WRITE_ACK_TIMEOUT_MS);
> > +
> > +	if (ret != sizeof(version)) {
> > +		dev_err(adap->dev, "Get version failed, ret: %d\n", ret);
> > +		return;
> 
> Why not return the error?

An error here would indicate something is a little fishy but doesn't
prevent the device from working as such. I'd think it's fine as-is.

> 
> > +	}
> > +
> > +	dev_info(adap->dev, "Firmware version: %d.%d.%d.%d\n",
> > +		 version.major, version.minor,
> > +		 le16_to_cpu(version.patch), le16_to_cpu(version.build));
> 
> Again, sorry, but no.  Feel free to dump this in a sysfs file if you
> really want to get access to it, but not in the kernel log.

I guess dev_dbg() should do as well.

-- 
Regards,

Sakari Ailus




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

  Powered by Linux