• Christian Marangi's avatar
    wifi: mt76: fix broken precal loading from MTD for mt7915 · e874a792
    Christian Marangi authored
    Commit 495184ac ("mt76: mt7915: add support for applying
    pre-calibration data") was fundamentally broken and never worked.
    
    The idea (before NVMEM support) was to expand the MTD function and pass
    an additional offset. For normal EEPROM load the offset would always be
    0. For the purpose of precal loading, an offset was passed that was
    internally the size of EEPROM, since precal data is right after the
    EEPROM.
    
    Problem is that the offset value passed is never handled and is actually
    overwrite by
    
    	offset = be32_to_cpup(list);
    	ret = mtd_read(mtd, offset, len, &retlen, eep);
    
    resulting in the passed offset value always ingnored. (and even passing
    garbage data as precal as the start of the EEPROM is getting read)
    
    Fix this by adding to the current offset value, the offset from DT to
    correctly read the piece of data at the requested location.
    
    Cc: stable@vger.kernel.org
    Fixes: 495184ac ("mt76: mt7915: add support for applying pre-calibration data")
    Signed-off-by: default avatarChristian Marangi <ansuelsmth@gmail.com>
    Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
    e874a792
eeprom.c 8.67 KB