1. 17 Jan, 2010 1 commit
  2. 08 Jan, 2010 1 commit
  3. 06 Jan, 2010 2 commits
  4. 09 Dec, 2009 1 commit
  5. 06 Nov, 2009 2 commits
  6. 30 Oct, 2009 2 commits
  7. 15 Oct, 2009 2 commits
    • Eilon Greenstein's avatar
      bnx2x: Allowing 0 as initial fairness value · 49e4e9da
      Eilon Greenstein authored
      
      
      Value of zero was used to disable the fairness mechanism. Though the code
      (driver and FW) allowed changing the value at run time, it did not allow to do
      that if the mechanism was disabled to begin with.
      Fixed the FW to allow turning on and off the mechanism at run time. Fixed the
      code to read the value from the chip at the right sequence.
      Without this fix, if the initial value was set to zero, traffic could not run on
      the interface.
      Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      49e4e9da
    • Eilon Greenstein's avatar
      bnx2x: Allowing 0 as initial fairness value · 1528f320
      Eilon Greenstein authored
      
      
      Value of zero was used to disable the fairness mechanism. Though the code
      (driver and FW) allowed changing the value at run time, it did not allow to do
      that if the mechanism was disabled to begin with.
      Fixed the FW to allow turning on and off the mechanism at run time. Fixed the
      code to read the value from the chip at the right sequence.
      Without this fix, if the initial value was set to zero, traffic could not run on
      the interface.
      Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1528f320
  8. 13 Oct, 2009 1 commit
  9. 05 Oct, 2009 2 commits
  10. 21 Sep, 2009 2 commits
    • Linus Torvalds's avatar
      Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 · c6f35cef
      Linus Torvalds authored
      * 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (133 commits)
        drm/vgaarb: add VGA arbitration support to the drm and kms.
        drm/radeon: some r420s have a CP race with the DMA engine.
        drm/radeon/r600/kms: rv670 is not DCE3
        drm/radeon/kms: r420 idle after programming GA_ENHANCE
        drm/radeon/kms: more fixes to rv770 suspend/resume path.
        drm/radeon/kms: more alignment for rv770.c with r600.c
        drm/radeon/kms: rv770 blit init called too late.
        drm/radeon/kms: move around new init path code to avoid posting at init
        drm/radeon/r600: fix some issues with suspend/resume.
        drm/radeon/kms: disable VGA rendering engine before taking over VRAM
        drm/radeon/kms: Move radeon_get_clock_info() call out of radeon_clocks_init().
        drm/radeon/kms: add initial connector properties
        drm/radeon/kms: Use surfaces for scanout / cursor byte swapping on big endian.
        drm/radeon/kms: don't fail if we fail to init GPU acceleration
        drm/r600/kms: fixup number of loops per blit calculation.
        drm/radeon/kms: reprogram format in set base.
        drm/radeon: avivo chips have no separate int bit for display
        drm/radeon/r600: don't do interrupts
        drm: fix _DRM_GEM addmap error message
        drm: update crtc x/y when only fb changes
        ...
      
      Fixed up trivial conflicts in firmware/Makefile due to network driver
      (cxgb3) and drm (mga/r128/radeon) firmware being listed next to each
      other.
      c6f35cef
    • Linus Torvalds's avatar
      Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 · 593968a9
      Linus Torvalds authored
      * 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (133 commits)
        drm/vgaarb: add VGA arbitration support to the drm and kms.
        drm/radeon: some r420s have a CP race with the DMA engine.
        drm/radeon/r600/kms: rv670 is not DCE3
        drm/radeon/kms: r420 idle after programming GA_ENHANCE
        drm/radeon/kms: more fixes to rv770 suspend/resume path.
        drm/radeon/kms: more alignment for rv770.c with r600.c
        drm/radeon/kms: rv770 blit init called too late.
        drm/radeon/kms: move around new init path code to avoid posting at init
        drm/radeon/r600: fix some issues with suspend/resume.
        drm/radeon/kms: disable VGA rendering engine before taking over VRAM
        drm/radeon/kms: Move radeon_get_clock_info() call out of radeon_clocks_init().
        drm/radeon/kms: add initial connector properties
        drm/radeon/kms: Use surfaces for scanout / cursor byte swapping on big endian.
        drm/radeon/kms: don't fail if we fail to init GPU acceleration
        drm/r600/kms: fixup number of loops per blit calculation.
        drm/radeon/kms: reprogram format in set base.
        drm/radeon: avivo chips have no separate int bit for display
        drm/radeon/r600: don't do interrupts
        drm: fix _DRM_GEM addmap error message
        drm: update crtc x/y when only fb changes
        ...
      
      Fixed up trivial conflicts in firmware/Makefile due to network driver
      (cxgb3) and drm (mga/r128/radeon) firmware being listed next to each
      other.
      593968a9
  11. 15 Sep, 2009 1 commit
  12. 30 Aug, 2009 2 commits
    • Ben Hutchings's avatar
      radeon: Use request_firmware() · e292590b
      Ben Hutchings authored
      
      
      Loosely based on a patch by
      Jaswinder Singh Rajput <jaswinderlinux@gmail.com>.
      
      KMS support by Dave Airlie <airlied@redhat.com>.
      
      For Radeon 100- to 500-series, firmware blobs look like:
          struct {
              __be32 datah;
              __be32 datal;
          } cp_ucode[256];
      
      For Radeon 600-series, there are two separate firmware blobs:
          __be32 me_ucode[PM4_UCODE_SIZE * 3];
          __be32 pfp_ucode[PFP_UCODE_SIZE];
      
      For Radeon 700-series, likewise:
          __be32 me_ucode[R700_PM4_UCODE_SIZE];
          __be32 pfp_ucode[R700_PFP_UCODE_SIZE];
      Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      e292590b
    • Ben Hutchings's avatar
      radeon: Use request_firmware() · 9715b36e
      Ben Hutchings authored
      
      
      Loosely based on a patch by
      Jaswinder Singh Rajput <jaswinderlinux@gmail.com>.
      
      KMS support by Dave Airlie <airlied@redhat.com>.
      
      For Radeon 100- to 500-series, firmware blobs look like:
          struct {
              __be32 datah;
              __be32 datal;
          } cp_ucode[256];
      
      For Radeon 600-series, there are two separate firmware blobs:
          __be32 me_ucode[PM4_UCODE_SIZE * 3];
          __be32 pfp_ucode[PFP_UCODE_SIZE];
      
      For Radeon 700-series, likewise:
          __be32 me_ucode[R700_PM4_UCODE_SIZE];
          __be32 pfp_ucode[R700_PFP_UCODE_SIZE];
      Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      9715b36e
  13. 29 Aug, 2009 1 commit
  14. 27 Aug, 2009 4 commits
  15. 21 Aug, 2009 2 commits
  16. 17 Aug, 2009 1 commit
  17. 13 Aug, 2009 1 commit
    • Eilon Greenstein's avatar
      bnx2x: Using the new FW · 931b7c1f
      Eilon Greenstein authored
      
      
      The new FW improves the packets per second rate. It required a lot of change in
      the FW which implies many changes in the driver to support it. It is now also
      possible for the driver to use a separate MSI-X vector for Rx and Tx - this also
      add some to the complicity of this change.
      
      All things said - after this patch, practically all performance matrixes show
      improvement.
      Though Vladislav Zolotarov is not signed on this patch, he did most of the job
      and deserves credit for that.
      Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      931b7c1f
  18. 05 Aug, 2009 1 commit
  19. 23 Jul, 2009 1 commit
  20. 09 Jul, 2009 2 commits
  21. 08 Jul, 2009 1 commit
  22. 01 Jul, 2009 1 commit
  23. 04 Jun, 2009 1 commit
  24. 14 May, 2009 2 commits
  25. 02 May, 2009 1 commit
  26. 27 Apr, 2009 1 commit
    • Vladislav Zolotarov's avatar
      bnx2x: Separated FW from the source. · 0eae2a4d
      Vladislav Zolotarov authored
      
      
      >From now on FW will be downloaded from the binary file using request_firmware.
      
      There will be different files for every supported chip. Currently 57710 (e1) and
      57711 (e1h).
      
      File names have the following format: bnx2x-<chip version>-<FW version>.fw.
      ihex versions of current FW files are submitted in the next patch.
      
      Each binary file has a header in the following format:
      
      
      struct bnx2x_fw_file_section {
      	__be32 len;
      	__be32 offset;
      }
      
      struct bnx2x_fw_file_hdr {
      	struct bnx2x_fw_file_section init_ops;
      	struct bnx2x_fw_file_section init_ops_offsets;
      	struct bnx2x_fw_file_section init_data;
      	struct bnx2x_fw_file_section tsem_int_table_data;
      	struct bnx2x_fw_file_section tsem_pram_data;
      	struct bnx2x_fw_file_section usem_int_table_data;
      	struct bnx2x_fw_file_section usem_pram_data;
      	struct bnx2x_fw_file_section csem_int_table_data;
      	struct bnx2x_fw_file_section csem_pram_data;
      	struct bnx2x_fw_file_section xsem_int_table_data;
      	struct bnx2x_fw_file_section xsem_pram_data;
      	struct bnx2x_fw_file_section fw_version;
      }
      
      Each bnx2x_fw_file_section contains the length and the offset of the appropriate
      section in the binary file. Values are stored in the big endian format.
      
      Data types of arrays:
      
      init_data            __be32
      init_ops_offsets     __be16
      XXsem_pram_data         u8
      XXsem_int_table_data    u8
      init_ops             struct raw_op {
                                u8   op;
      			__be24 offset;
                              __be32 data;
      		     }
      fw_version              u8
      
      >From now boundaries of a specific initialization stage are stored in
      init_ops_offsets array instead of being defined by separate macroes. The index 
      in init_ops_offsets is calculated by BLOCK_OPS_IDX macro:
      
      #define BLOCK_OPS_IDX(block, stage, end) \
             (2*(((block)*STAGE_IDX_MAX) + (stage)) + (end))
      
      Security:
      
      In addition to sanity check of array boundaries bnx2x will check a FW version.
      Additional checks might be added in the future.
      Signed-off-by: default avatarVladislav Zolotarov <vladz@broadcom.com>
      Signed-off-by: default avatarEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0eae2a4d
  27. 23 Apr, 2009 1 commit