2019-06-13 14:40:46 +00:00
|
|
|
From e26af2726067ff260b77485df6af8375b82bfb1d Mon Sep 17 00:00:00 2001
|
|
|
|
From: Russell King <rmk+kernel@armlinux.org.uk>
|
|
|
|
Date: Sat, 23 Dec 2017 12:22:58 +0000
|
|
|
|
Subject: [PATCH] sfp: more cotsworks fixes
|
|
|
|
|
|
|
|
Cotsworks also gets the date code wrong.
|
|
|
|
|
|
|
|
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
|
|
---
|
|
|
|
drivers/net/phy/sfp.c | 15 ++++++++-------
|
|
|
|
1 file changed, 8 insertions(+), 7 deletions(-)
|
|
|
|
|
|
|
|
--- a/drivers/net/phy/sfp.c
|
|
|
|
+++ b/drivers/net/phy/sfp.c
|
2019-07-29 15:54:16 +00:00
|
|
|
@@ -1571,9 +1571,9 @@ static int sfp_sm_mod_probe(struct sfp *
|
2019-06-13 14:40:46 +00:00
|
|
|
return -EAGAIN;
|
|
|
|
}
|
|
|
|
|
|
|
|
- /* Cotsworks do not seem to update the checksums when they
|
|
|
|
- * do the final programming with the final module part number,
|
|
|
|
- * serial number and date code.
|
|
|
|
+ /* Cotsworks do not seem to update the checksums when they update the
|
|
|
|
+ * module part number, serial number and date code. They also format
|
|
|
|
+ * the date code incorrectly.
|
|
|
|
*/
|
|
|
|
cotsworks = !memcmp(id.base.vendor_name, "COTSWORKS ", 16);
|
|
|
|
|
2019-07-29 15:54:16 +00:00
|
|
|
@@ -1612,11 +1612,12 @@ static int sfp_sm_mod_probe(struct sfp *
|
2019-06-13 14:40:46 +00:00
|
|
|
|
|
|
|
sfp->id = id;
|
|
|
|
|
|
|
|
- date[0] = sfp->id.ext.datecode[4];
|
|
|
|
- date[1] = sfp->id.ext.datecode[5];
|
|
|
|
+ /* Cotsworks also gets the date code wrong. */
|
|
|
|
+ date[0] = sfp->id.ext.datecode[4 - 2 * cotsworks];
|
|
|
|
+ date[1] = sfp->id.ext.datecode[5 - 2 * cotsworks];
|
|
|
|
date[2] = '-';
|
|
|
|
- date[3] = sfp->id.ext.datecode[2];
|
|
|
|
- date[4] = sfp->id.ext.datecode[3];
|
|
|
|
+ date[3] = sfp->id.ext.datecode[2 + 2 * cotsworks];
|
|
|
|
+ date[4] = sfp->id.ext.datecode[3 + 2 * cotsworks];
|
|
|
|
date[5] = '-';
|
|
|
|
date[6] = sfp->id.ext.datecode[0];
|
|
|
|
date[7] = sfp->id.ext.datecode[1];
|