hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/net/phy/sfp.c
....@@ -207,6 +207,12 @@
207207 */
208208 #define SFP_PHY_ADDR 22
209209
210
+/* SFP_EEPROM_BLOCK_SIZE is the size of data chunk to read the EEPROM
211
+ * at a time. Some SFP modules and also some Linux I2C drivers do not like
212
+ * reads longer than 16 bytes.
213
+ */
214
+#define SFP_EEPROM_BLOCK_SIZE 16
215
+
210216 struct sff_data {
211217 unsigned int gpios;
212218 bool (*module_supported)(const struct sfp_eeprom_id *id);
....@@ -1754,11 +1760,7 @@
17541760 u8 check;
17551761 int ret;
17561762
1757
- /* Some SFP modules and also some Linux I2C drivers do not like reads
1758
- * longer than 16 bytes, so read the EEPROM in chunks of 16 bytes at
1759
- * a time.
1760
- */
1761
- sfp->i2c_block_size = 16;
1763
+ sfp->i2c_block_size = SFP_EEPROM_BLOCK_SIZE;
17621764
17631765 ret = sfp_read(sfp, false, 0, &id.base, sizeof(id.base));
17641766 if (ret < 0) {
....@@ -2385,6 +2387,7 @@
23852387 return ERR_PTR(-ENOMEM);
23862388
23872389 sfp->dev = dev;
2390
+ sfp->i2c_block_size = SFP_EEPROM_BLOCK_SIZE;
23882391
23892392 mutex_init(&sfp->sm_mutex);
23902393 mutex_init(&sfp->st_mutex);