Message ID | 29db5fdc-13c9-45f0-9183-c80d637725c6@rowland.harvard.edu (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | media: dvb: usb: Fix WARNING in dib0700_i2c_xfer/usb_submit_urb | expand |
> + static const struct i2c_adapter_quirks i2c_usb_quirks = { > + .flags = I2C_AQ_NO_ZERO_LEN_READ, > + }; Why didn't you create the static struct outside of probe?
On Tue, Mar 25, 2025 at 08:56:57PM +0100, Wolfram Sang wrote: > > > + static const struct i2c_adapter_quirks i2c_usb_quirks = { > > + .flags = I2C_AQ_NO_ZERO_LEN_READ, > > + }; > > Why didn't you create the static struct outside of probe? Because it's used only in that one function. But if you prefer, I will move the definition outside of the function. It doesn't make any real difference. Alan Stern
On Tue, Mar 25, 2025 at 05:47:53PM -0400, Alan Stern wrote: > On Tue, Mar 25, 2025 at 08:56:57PM +0100, Wolfram Sang wrote: > > > > > + static const struct i2c_adapter_quirks i2c_usb_quirks = { > > > + .flags = I2C_AQ_NO_ZERO_LEN_READ, > > > + }; > > > > Why didn't you create the static struct outside of probe? > > Because it's used only in that one function. But if you prefer, I will > move the definition outside of the function. It doesn't make any real > difference. Then, for consistency reasons, I'd really prefer it outside probe. I also think it doesn't really make a difference, it just looks unusual to me. Thanks and happy hacking!
Index: usb-devel/drivers/media/usb/dvb-usb/dvb-usb-i2c.c =================================================================== --- usb-devel.orig/drivers/media/usb/dvb-usb/dvb-usb-i2c.c +++ usb-devel/drivers/media/usb/dvb-usb/dvb-usb-i2c.c @@ -10,6 +10,9 @@ int dvb_usb_i2c_init(struct dvb_usb_device *d) { + static const struct i2c_adapter_quirks i2c_usb_quirks = { + .flags = I2C_AQ_NO_ZERO_LEN_READ, + }; int ret = 0; if (!(d->props.caps & DVB_USB_IS_AN_I2C_ADAPTER)) @@ -24,6 +27,7 @@ int dvb_usb_i2c_init(struct dvb_usb_devi strscpy(d->i2c_adap.name, d->desc->name, sizeof(d->i2c_adap.name)); d->i2c_adap.algo = d->props.i2c_algo; d->i2c_adap.algo_data = NULL; + d->i2c_adap.quirks = &i2c_usb_quirks; d->i2c_adap.dev.parent = &d->udev->dev; i2c_set_adapdata(&d->i2c_adap, d);