1. 06 Jan, 2021 1 commit
    • Haibo Chen's avatar
      e11232: USDHC: uSDHC setting requirement for IPG_CLK and AHB_BUS clocks · 03081911
      Haibo Chen authored
      Description: uSDHC AHB_BUS and IPG_CLK clocks must be synchronized.
      Due to current physical design implementation, AHB_BUS and IPG_CLK must come from
      same clock source to maintain clock sync.
      Workaround: Set AHB_BUS and IPG_CLK to clock source from PLL1.
      
      After sys1_pll_266m gate off/on, seems need to sync the USDHC AHB bus and USDHC IPG_clk again. (Here usdhc AHB BUS source from nand_usdhc_bus.)
      This sync is handle by hardware, and maybe need some time, during this sync period, usdhc operation may has issue.
      
      I just double check our local v5.10 branch, already revert the commit b04383b6
      
       (clk: imx8mq: Define gates for pll1/2 fixed dividers).
      So to fix this issue, one method is revert this patch, another method is keep the 'nand_usdhc_bus' always on. Add change like this:
      Signed-off-by: default avatarAngus Ainslie <angus@akkea.ca>
      03081911
  2. 22 Dec, 2020 11 commits
  3. 21 Dec, 2020 9 commits
    • Martin Kepplinger's avatar
    • Martin Kepplinger's avatar
      Merge tag 'v5.9.15' into stable/5.9.15 · 1819da14
      Martin Kepplinger authored
      This is the 5.9.15 stable release
      1819da14
    • Sebastian Krzyszkowiak's avatar
      d94dfe05
    • Marek Vasut's avatar
      redpine: Move card interrupt handling to RX thread · b9bb9ead
      Marek Vasut authored and Martin Kepplinger's avatar Martin Kepplinger committed
      
      
      The interrupt handling of the RS911x is particularly heavy. For each RX
      packet, the card does three SDIO transactions, one to read interrupt
      status register, one to RX buffer length, one to read the RX packet(s).
      This translates to ~330 uS per one cycle of interrupt handler. In case
      there is more incoming traffic, this will be more.
      
      The drivers/mmc/core/sdio_irq.c has the following comment, quote "Just
      like traditional hard IRQ handlers, we expect SDIO IRQ handlers to be
      quick and to the point, so that the holding of the host lock does not
      cover too much work that doesn't require that lock to be held."
      
      The RS911x interrupt handler does not fit that. This patch therefore
      changes it such that the entire IRQ handler is moved to the RX thread
      instead, and the interrupt handler only wakes the RX thread.
      
      This is OK, because the interrupt handler only does things which can
      also be done in the RX thread, that is, it checks for firmware loading
      error(s), it checks buffer status, it checks whether a packet arrived
      and if so, reads out the packet and passes it to network stack.
      
      Moreover, this change permits removal of a code which allocated an
      skbuff only to get 4-byte-aligned buffer, read up to 8kiB of data
      into the skbuff, queue this skbuff into local private queue, then in
      RX thread, this buffer is dequeued, the data in the skbuff as passed
      to the RSI driver core, and the skbuff is deallocated. All this is
      replaced by directly calling the RSI driver core with local buffer.
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      b9bb9ead
    • Marek Vasut's avatar
      rsi: Fix TX EAPOL packet handling against iwlwifi AP · d45793c6
      Marek Vasut authored and Martin Kepplinger's avatar Martin Kepplinger committed
      In case RSI9116 SDIO WiFi operates in STA mode against Intel 9260 in AP mode,
      the association fails. The former is using wpa_supplicant during association,
      the later is set up using hostapd:
      
      iwl$ cat hostapd.conf
      interface=wlp1s0
      ssid=test
      country_code=DE
      hw_mode=g
      channel=1
      wpa=2
      wpa_passphrase=test
      wpa_key_mgmt=WPA-PSK
      iwl$ hostapd -d hostapd.conf
      
      rsi$ wpa_supplicant -i wlan0 -c <(wpa_passphrase test test)
      
      The problem is that the TX EAPOL data descriptor RSI_DESC_REQUIRE_CFM_TO_HOST
      flag and extended descriptor EAPOL4_CONFIRM frame type are not set in case the
      AP is iwlwifi, because in that case the TX EAPOL packet is 2 bytes shorter.
      
      The downstream vendor driver has this change in place already [1], however
      there is no explanation for it, neither is there any commit history from which
      such explanation could be obtained.
      
      [1] https://github.com/SiliconLabs/RS911X-nLink-OSD/blob/master/rsi/rsi_91x_hal.c#L238
      
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Angus Ainslie <angus@akkea.ca>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Cc: Kalle Valo <kvalo@codeaurora.org>
      Cc: Lee Jones <lee.jones@linaro.org>
      Cc: Martin Kepplinger <martink@posteo.de>
      Cc: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
      Cc: Siva Rebbagondla <siva8118@gmail.com>
      Cc: linux-wireless@vger.kernel.org
      Cc: netdev@vger.kernel.org
      d45793c6
    • Marek Vasut's avatar
      rsi: Move card interrupt handling to RX thread · 4c889ece
      Marek Vasut authored and Martin Kepplinger's avatar Martin Kepplinger committed
      
      
      The interrupt handling of the RS911x is particularly heavy. For each RX
      packet, the card does three SDIO transactions, one to read interrupt
      status register, one to RX buffer length, one to read the RX packet(s).
      This translates to ~330 uS per one cycle of interrupt handler. In case
      there is more incoming traffic, this will be more.
      
      The drivers/mmc/core/sdio_irq.c has the following comment, quote "Just
      like traditional hard IRQ handlers, we expect SDIO IRQ handlers to be
      quick and to the point, so that the holding of the host lock does not
      cover too much work that doesn't require that lock to be held."
      
      The RS911x interrupt handler does not fit that. This patch therefore
      changes it such that the entire IRQ handler is moved to the RX thread
      instead, and the interrupt handler only wakes the RX thread.
      
      This is OK, because the interrupt handler only does things which can
      also be done in the RX thread, that is, it checks for firmware loading
      error(s), it checks buffer status, it checks whether a packet arrived
      and if so, reads out the packet and passes it to network stack.
      
      Moreover, this change permits removal of a code which allocated an
      skbuff only to get 4-byte-aligned buffer, read up to 8kiB of data
      into the skbuff, queue this skbuff into local private queue, then in
      RX thread, this buffer is dequeued, the data in the skbuff as passed
      to the RSI driver core, and the skbuff is deallocated. All this is
      replaced by directly calling the RSI driver core with local buffer.
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Angus Ainslie <angus@akkea.ca>
      Cc: David S. Miller <davem@davemloft.net>
      Cc: Jakub Kicinski <kuba@kernel.org>
      Cc: Kalle Valo <kvalo@codeaurora.org>
      Cc: Lee Jones <lee.jones@linaro.org>
      Cc: Martin Kepplinger <martink@posteo.de>
      Cc: Sebastian Krzyszkowiak <sebastian.krzyszkowiak@puri.sm>
      Cc: Siva Rebbagondla <siva8118@gmail.com>
      Cc: linux-wireless@vger.kernel.org
      Cc: netdev@vger.kernel.org
      4c889ece
    • Guido Gunther's avatar
      arm64: dts: imx8mq-librem5-r4: Allow for higher backlight current · 99475928
      Guido Gunther authored and Martin Kepplinger's avatar Martin Kepplinger committed
      As per datasheet the LED supply current can be up to 25mA. Eric tested
      this for longer period of time.
      99475928
    • Guido Gunther's avatar
      arm64: dts: imx8-librem5-r4: Fix alphabetic ordering · c687818a
      Guido Gunther authored and Martin Kepplinger's avatar Martin Kepplinger committed
      
      Signed-off-by: Guido Gunther's avatarGuido Günther <guido.gunther@puri.sm>
      c687818a
    • Guido Gunther's avatar
      leds: lm3692x: Use lookup table for exponential brightness · 40ccecbf
      Guido Gunther authored and Martin Kepplinger's avatar Martin Kepplinger committed
      
      
      Using ilog2() we underestimate the brightness value so use a lookup
      table for common currents. Since upstream wants this to move to
      userspace there's no point in doing more complicated things.
      
      This does not affect linear mode which is the only mode available
      upstream.
      Signed-off-by: Guido Gunther's avatarGuido Günther <guido.gunther@puri.sm>
      40ccecbf
  4. 17 Dec, 2020 5 commits
  5. 16 Dec, 2020 14 commits