1. 01 Dec, 2020 24 commits
  2. 30 Nov, 2020 7 commits
  3. 29 Nov, 2020 7 commits
  4. 28 Nov, 2020 2 commits
    • Jakub Kicinski's avatar
      Merge branch 'net-ipa-start-adding-ipa-v4-5-support' · e71d2b95
      Jakub Kicinski authored
      Alex Elder says:
      
      ====================
      net: ipa: start adding IPA v4.5 support
      
      This series starts updating the IPA code to support IPA hardware
      version 4.5.
      
      The first patch fixes a problem found while preparing these updates.
      Testing shows the code works with or without the change, and with
      the fix the code matches "downstream" Qualcomm code.
      
      The second patch updates the definitions for IPA register offsets
      and field masks to reflect the changes that come with IPA v4.5.  A
      few register updates have been deferred until later, because making
      use of them involves some nontrivial code updates.
      
      One type of change that IPA v4.5 brings is expanding the range of
      certain configuration values.  High-order bits are added in a few
      cases, and the third patch implements the code changes necessary to
      use those newly available bits.
      
      The fourth patch implements several fairly minor changes to the code
      required for IPA v4.5 support.
      
      The last two patches implement changes to the GSI registers used for
      IPA.  Almost none of the registers change, but the range of memory
      in which most of the GSI registers is located is shifted by a fixed
      amount.  The fifth patch updates the GSI register definitions, and
      the last patch implements the memory shift for IPA v4.5.
      ====================
      
      Link: https://lore.kernel.org/r/20201125204522.5884-1-elder@linaro.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      e71d2b95
    • Alex Elder's avatar
      net: ipa: adjust GSI register addresses · cdeee49f
      Alex Elder authored
      The offsets for almost all GSI registers we use have different
      offsets starting at IPA version 4.5.  Only two registers remain
      in their original location.
      
      In a way though, the new register locations are not *that*
      different.  The entire group of affected registers has simply
      been shifted down in memory by a fixed amount (0xd000).  So for
      example, the channel context 0 register that has a base offset of
      0x0001c000 for "older" hardware now has a base offset of 0x0000f000.
      
      This patch aims to add support for IPA v4.5 registers at their new
      offets in a way that minimizes the amount of code that needs to
      change.  It is not ideal, but it avoids the need to maintain
      a nearly complete set of additional register offset definitions.
      
      The approach takes advantage of the fact that when accessing GSI
      registers we do not access any of memory at lower end of the "gsi"
      memory range (with two exceptions already noted).  In particular,
      we do not access anything within the bottom 0xd000 bytes of the
      GSI memory range.
      
      For IPA version 4.5, after we map the GSI memory, we adjust the
      virtual memory pointer downward by the fixed amount (0xd000).
      That way, register accesses using the offsets defined by the
      existing GSI_REG_*() macros will resolve to the proper locations
      for IPA version 4.5.
      
      The two registers *not* affected by this offset are accessed only
      in gsi_irq_setup().  There, for IPA version 4.5, we undo the general
      register adjustment by adding the fixed amount back to the virtual
      address to access these registers.
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      cdeee49f