Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

i2c: stm32f7: do not backup read-only PECR register

The PECR register provides received packet computed PEC value. 
It makes no sense restoring its value after a reset, and anyway,
as read-only register it cannot be restored.

Fixes: ea6dd25deeb5 ("i2c: stm32f7: add PM_SLEEP suspend/resume support")
Signed-off-by: Alain Volmat <alain.volmat@st.com>
Reviewed-by: Pierre-Yves MORDRET <pierre-yves.mordret@st.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>

authored by

Alain Volmat and committed by
Wolfram Sang
bf22461e a47070aa

-4
-4
drivers/i2c/busses/i2c-stm32f7.c
··· 176 176 * @cr2: Control register 2 177 177 * @oar1: Own address 1 register 178 178 * @oar2: Own address 2 register 179 - * @pecr: PEC register 180 179 * @tmgr: Timing register 181 180 */ 182 181 struct stm32f7_i2c_regs { ··· 183 184 u32 cr2; 184 185 u32 oar1; 185 186 u32 oar2; 186 - u32 pecr; 187 187 u32 tmgr; 188 188 }; 189 189 ··· 2194 2196 backup_regs->cr2 = readl_relaxed(i2c_dev->base + STM32F7_I2C_CR2); 2195 2197 backup_regs->oar1 = readl_relaxed(i2c_dev->base + STM32F7_I2C_OAR1); 2196 2198 backup_regs->oar2 = readl_relaxed(i2c_dev->base + STM32F7_I2C_OAR2); 2197 - backup_regs->pecr = readl_relaxed(i2c_dev->base + STM32F7_I2C_PECR); 2198 2199 backup_regs->tmgr = readl_relaxed(i2c_dev->base + STM32F7_I2C_TIMINGR); 2199 2200 stm32f7_i2c_write_fm_plus_bits(i2c_dev, false); 2200 2201 ··· 2226 2229 writel_relaxed(backup_regs->cr2, i2c_dev->base + STM32F7_I2C_CR2); 2227 2230 writel_relaxed(backup_regs->oar1, i2c_dev->base + STM32F7_I2C_OAR1); 2228 2231 writel_relaxed(backup_regs->oar2, i2c_dev->base + STM32F7_I2C_OAR2); 2229 - writel_relaxed(backup_regs->pecr, i2c_dev->base + STM32F7_I2C_PECR); 2230 2232 stm32f7_i2c_write_fm_plus_bits(i2c_dev, true); 2231 2233 2232 2234 pm_runtime_put_sync(i2c_dev->dev);