1. 24 Apr, 2020 1 commit
    • Ondrej Jirman's avatar
      bus: sunxi-rsb: Return correct data when mixing 16-bit and 8-bit reads · b41174d9
      Ondrej Jirman authored
      [ Upstream commit a43ab30d ]
      
      When doing a 16-bit read that returns data in the MSB byte, the
      RSB_DATA register will keep the MSB byte unchanged when doing
      the following 8-bit read. sunxi_rsb_read() will then return
      a result that contains high byte from 16-bit read mixed with
      the 8-bit result.
      
      The consequence is that after this happens the PMIC's regmap will
      look like this: (0x33 is the high byte from the 16-bit read)
      
      % cat /sys/kernel/debug/regmap/sunxi-rsb-3a3/registers
      00: 33
      01: 33
      02: 33
      03: 33
      04: 33
      05: 33
      06: 33
      07: 33
      08: 33
      09: 33
      0a: 33
      0b: 33
      0c: 33
      0d: 33
      0e: 33
      [snip]
      
      Fix this by masking the result of the read with the correct mask
      based on the size of the read. There are no 16-bit users in the
      mainline kernel, so this doesn't need to get into the stable tree.
      Signed-off-by: default avatarOndrej Jirman <megous@megous.com>
      Acked-by: default avatarChen-Yu Tsai <wens@csie.org>
      Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
      Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
      b41174d9
  2. 13 Apr, 2020 34 commits
  3. 02 Apr, 2020 5 commits