Search Linux Wireless

Re: [PATCH 12/36] iwlwifi: Partially clean-up, add comments to iwl-*-hw.h

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Resend. Replace mail subject due to ML restriction for capital Triple-X
in subject.

On Thu, 2007-11-29 at 11:09 +0800, Zhu Yi wrote:
> From: Ben Cahill <ben.m.cahill@xxxxxxxxx>
> 
> Partially clean-up, add comments to iwl-XXXX-hw.h
> 
> Signed-off-by: Ben Cahill <ben.m.cahill@xxxxxxxxx>
> Signed-off-by: Zhu Yi <yi.zhu@xxxxxxxxx>
> ---
>  drivers/net/wireless/iwlwifi/iwl-3945-hw.h |   66 ++++++++++++++++-------
>  drivers/net/wireless/iwlwifi/iwl-4965-hw.h |   78 ++++++++++++++++++----------
>  2 files changed, 97 insertions(+), 47 deletions(-)
> 
> diff --git a/drivers/net/wireless/iwlwifi/iwl-3945-hw.h b/drivers/net/wireless/iwlwifi/iwl-3945-hw.h
> index 243a225..9526129 100644
> --- a/drivers/net/wireless/iwlwifi/iwl-3945-hw.h
> +++ b/drivers/net/wireless/iwlwifi/iwl-3945-hw.h
> @@ -64,10 +64,11 @@
>  #ifndef __iwl_3945_hw__
>  #define __iwl_3945_hw__
>  
> -/* uCode queue management definitions */
> +/*
> + * uCode queue management definitions ...
> + * Queue #4 is the command queue for 3945 and 4965.
> + */
>  #define IWL_CMD_QUEUE_NUM       4
> -#define IWL_CMD_FIFO_NUM        4
> -#define IWL_BACK_QUEUE_FIRST_ID 7
>  
>  /* Tx rates */
>  #define IWL_CCK_RATES 4
> @@ -314,7 +315,6 @@ struct iwl3945_eeprom {
>  
>  	u8 reserved9[194];
>  
> -
>  /*
>   * 3945 Txpower calibration data.
>   */
> @@ -355,7 +355,18 @@ struct iwl3945_eeprom {
>  #define CSR_GPIO_IN             (CSR_BASE+0x018) /* read external chip pins */
>  #define CSR_RESET               (CSR_BASE+0x020) /* busmaster enable, NMI, etc*/
>  #define CSR_GP_CNTRL            (CSR_BASE+0x024)
> +
> +/*
> + * Hardware revision info
> + * Bit fields:
> + * 31-8:  Reserved
> + *  7-4:  Type of device:  0x0 = 4965, 0xd = 3945
> + *  3-2:  Revision step:  0 = A, 1 = B, 2 = C, 3 = D
> + *  1-0:  "Dash" value, as in A-1, etc.
> + */
>  #define CSR_HW_REV              (CSR_BASE+0x028)
> +
> +/* EEPROM reads */
>  #define CSR_EEPROM_REG          (CSR_BASE+0x02c)
>  #define CSR_EEPROM_GP           (CSR_BASE+0x030)
>  #define CSR_GP_UCODE		(CSR_BASE+0x044)
> @@ -363,13 +374,13 @@ struct iwl3945_eeprom {
>  #define CSR_UCODE_DRV_GP1_SET   (CSR_BASE+0x058)
>  #define CSR_UCODE_DRV_GP1_CLR   (CSR_BASE+0x05c)
>  #define CSR_UCODE_DRV_GP2       (CSR_BASE+0x060)
> -#define CSR_LED_REG		(CSR_BASE+0x094)
> -#define CSR_DRAM_INT_TBL_CTL	(CSR_BASE+0x0A0)
>  #define CSR_GIO_CHICKEN_BITS    (CSR_BASE+0x100)
> +
> +/* Analog phase-lock-loop configuration (3945 only)
> + * Set bit 24. */
>  #define CSR_ANA_PLL_CFG         (CSR_BASE+0x20c)
> -#define CSR_HW_REV_WA_REG	(CSR_BASE+0x22C)
>  
> -/* HW I/F configuration */
> +/* Bits for CSR_HW_IF_CONFIG_REG */
>  #define CSR_HW_IF_CONFIG_REG_BIT_ALMAGOR_MB         (0x00000100)
>  #define CSR_HW_IF_CONFIG_REG_BIT_ALMAGOR_MM         (0x00000200)
>  #define CSR_HW_IF_CONFIG_REG_BIT_SKU_MRC            (0x00000400)
> @@ -468,31 +479,46 @@ struct iwl3945_eeprom {
>  /* CSR_ANA_PLL_CFG */
>  #define CSR_ANA_PLL_CFG_SH		(0x00880300)
>  
> -#define CSR_LED_REG_TRUN_ON		(0x00000078)
> -#define CSR_LED_REG_TRUN_OFF		(0x00000038)
> -#define CSR_LED_BSM_CTRL_MSK		(0xFFFFFFDF)
> -
> -/* DRAM_INT_TBL_CTRL */
> -#define CSR_DRAM_INT_TBL_CTRL_EN	(1<<31)
> -#define CSR_DRAM_INT_TBL_CTRL_WRAP_CHK	(1<<27)
> -
>  /*=== HBUS (Host-side Bus) ===*/
>  #define HBUS_BASE	(0x400)
>  
> +/*
> + * Registers for accessing device's internal SRAM memory (e.g. SCD SRAM
> + * structures, error log, event log, verifying uCode load).
> + * First write to address register, then read from or write to data register
> + * to complete the job.  Once the address register is set up, accesses to
> + * data registers auto-increment the address by one dword.
> + * Bit usage for address registers (read or write):
> + *  0-31:  memory address within device
> + */
>  #define HBUS_TARG_MEM_RADDR     (HBUS_BASE+0x00c)
>  #define HBUS_TARG_MEM_WADDR     (HBUS_BASE+0x010)
>  #define HBUS_TARG_MEM_WDAT      (HBUS_BASE+0x018)
>  #define HBUS_TARG_MEM_RDAT      (HBUS_BASE+0x01c)
> +
> +/*
> + * Registers for accessing device's internal peripheral registers
> + * (e.g. SCD, BSM, etc.).  First write to address register,
> + * then read from or write to data register to complete the job.
> + * Bit usage for address registers (read or write):
> + *  0-15:  register address (offset) within device
> + * 24-25:  (# bytes - 1) to read or write (e.g. 3 for dword)
> + */
>  #define HBUS_TARG_PRPH_WADDR    (HBUS_BASE+0x044)
>  #define HBUS_TARG_PRPH_RADDR    (HBUS_BASE+0x048)
>  #define HBUS_TARG_PRPH_WDAT     (HBUS_BASE+0x04c)
>  #define HBUS_TARG_PRPH_RDAT     (HBUS_BASE+0x050)
> -#define HBUS_TARG_WRPTR         (HBUS_BASE+0x060)
> -
> -#define HBUS_TARG_MBX_C         (HBUS_BASE+0x030)
>  
> +/*
> + * Per-Tx-queue write pointer (index, really!) (3945 and 4965).
> + * Indicates index to next TFD that driver will fill (1 past latest filled).
> + * Bit usage:
> + *  0-7:  queue write index
> + * 11-8:  queue selector
> + */
> +#define HBUS_TARG_WRPTR         (HBUS_BASE+0x060)
>  
> -/* SCD (Scheduler) */
> +/* SCD (3945 Tx Frame Scheduler) */
>  #define SCD_BASE                        (CSR_BASE + 0x2E00)
>  
>  #define SCD_MODE_REG                    (SCD_BASE + 0x000)
> diff --git a/drivers/net/wireless/iwlwifi/iwl-4965-hw.h b/drivers/net/wireless/iwlwifi/iwl-4965-hw.h
> index 93e2dff..2f0da4d 100644
> --- a/drivers/net/wireless/iwlwifi/iwl-4965-hw.h
> +++ b/drivers/net/wireless/iwlwifi/iwl-4965-hw.h
> @@ -64,7 +64,12 @@
>  #ifndef __iwl_4965_hw_h__
>  #define __iwl_4965_hw_h__
>  
> -/* uCode queue management definitions */
> +/*
> + * uCode queue management definitions ...
> + * Queue #4 is the command queue for 3945 and 4965; map it to Tx FIFO chnl 4.
> + * The first queue used for block-ack aggregation is #7 (4965 only).
> + * All block-ack aggregation queues should map to Tx DMA/FIFO channel 7.
> + */
>  #define IWL_CMD_QUEUE_NUM       4
>  #define IWL_CMD_FIFO_NUM        4
>  #define IWL_BACK_QUEUE_FIRST_ID 7
> @@ -444,7 +449,20 @@ struct iwl4965_eeprom {
>  #define CSR_GPIO_IN             (CSR_BASE+0x018) /* read external chip pins */
>  #define CSR_RESET               (CSR_BASE+0x020) /* busmaster enable, NMI, etc*/
>  #define CSR_GP_CNTRL            (CSR_BASE+0x024)
> +
> +/*
> + * Hardware revision info
> + * Bit fields:
> + * 31-8:  Reserved
> + *  7-4:  Type of device:  0x0 = 4965, 0xd = 3945
> + *  3-2:  Revision step:  0 = A, 1 = B, 2 = C, 3 = D
> + *  1-0:  "Dash" value, as in A-1, etc.
> + *
> + * NOTE:  Revision step affects calculation of CCK txpower for 4965.
> + */
>  #define CSR_HW_REV              (CSR_BASE+0x028)
> +
> +/* EEPROM reads */
>  #define CSR_EEPROM_REG          (CSR_BASE+0x02c)
>  #define CSR_EEPROM_GP           (CSR_BASE+0x030)
>  #define CSR_GP_UCODE		(CSR_BASE+0x044)
> @@ -452,10 +470,13 @@ struct iwl4965_eeprom {
>  #define CSR_UCODE_DRV_GP1_SET   (CSR_BASE+0x058)
>  #define CSR_UCODE_DRV_GP1_CLR   (CSR_BASE+0x05c)
>  #define CSR_UCODE_DRV_GP2       (CSR_BASE+0x060)
> -#define CSR_LED_REG		(CSR_BASE+0x094)
> -#define CSR_DRAM_INT_TBL_CTL	(CSR_BASE+0x0A0)
>  #define CSR_GIO_CHICKEN_BITS    (CSR_BASE+0x100)
> -#define CSR_ANA_PLL_CFG         (CSR_BASE+0x20c)
> +
> +/*
> + * Indicates hardware rev, to determine CCK backoff for txpower calculation.
> + * Bit fields:
> + *  3-2:  0 = A, 1 = B, 2 = C, 3 = D step
> + */
>  #define CSR_HW_REV_WA_REG	(CSR_BASE+0x22C)
>  
>  /* HW I/F configuration */
> @@ -554,44 +575,47 @@ struct iwl4965_eeprom {
>  #define CSR_GIO_CHICKEN_BITS_REG_BIT_L1A_NO_L0S_RX  (0x00800000)
>  #define CSR_GIO_CHICKEN_BITS_REG_BIT_DIS_L0S_EXIT_TIMER  (0x20000000)
>  
> -/* CSR_ANA_PLL_CFG */
> -#define CSR_ANA_PLL_CFG_SH		(0x00880300)
> -
> -#define CSR_LED_REG_TRUN_ON		(0x00000078)
> -#define CSR_LED_REG_TRUN_OFF		(0x00000038)
> -#define CSR_LED_BSM_CTRL_MSK		(0xFFFFFFDF)
> -
> -/* DRAM_INT_TBL_CTRL */
> -#define CSR_DRAM_INT_TBL_CTRL_EN	(1<<31)
> -#define CSR_DRAM_INT_TBL_CTRL_WRAP_CHK	(1<<27)
> -
>  /*=== HBUS (Host-side Bus) ===*/
>  #define HBUS_BASE	(0x400)
>  
> +/*
> + * Registers for accessing device's internal SRAM memory (e.g. SCD SRAM
> + * structures, error log, event log, verifying uCode load).
> + * First write to address register, then read from or write to data register
> + * to complete the job.  Once the address register is set up, accesses to
> + * data registers auto-increment the address by one dword.
> + * Bit usage for address registers (read or write):
> + *  0-31:  memory address within device
> + */
>  #define HBUS_TARG_MEM_RADDR     (HBUS_BASE+0x00c)
>  #define HBUS_TARG_MEM_WADDR     (HBUS_BASE+0x010)
>  #define HBUS_TARG_MEM_WDAT      (HBUS_BASE+0x018)
>  #define HBUS_TARG_MEM_RDAT      (HBUS_BASE+0x01c)
> +
> +/*
> + * Registers for accessing device's internal peripheral registers
> + * (e.g. SCD, BSM, etc.).  First write to address register,
> + * then read from or write to data register to complete the job.
> + * Bit usage for address registers (read or write):
> + *  0-15:  register address (offset) within device
> + * 24-25:  (# bytes - 1) to read or write (e.g. 3 for dword)
> + */
>  #define HBUS_TARG_PRPH_WADDR    (HBUS_BASE+0x044)
>  #define HBUS_TARG_PRPH_RADDR    (HBUS_BASE+0x048)
>  #define HBUS_TARG_PRPH_WDAT     (HBUS_BASE+0x04c)
>  #define HBUS_TARG_PRPH_RDAT     (HBUS_BASE+0x050)
> +
> +/*
> + * Per-Tx-queue write pointer (index, really!) (3945 and 4965).
> + * Indicates index to next TFD that driver will fill (1 past latest filled).
> + * Bit usage:
> + *  0-7:  queue write index (0-255)
> + * 11-8:  queue selector (0-15)
> + */
>  #define HBUS_TARG_WRPTR         (HBUS_BASE+0x060)
>  
>  #define HBUS_TARG_MBX_C         (HBUS_BASE+0x030)
>  
> -
> -/* SCD (Scheduler) */
> -#define SCD_BASE                        (CSR_BASE + 0x2E00)
> -
> -#define SCD_MODE_REG                    (SCD_BASE + 0x000)
> -#define SCD_ARASTAT_REG                 (SCD_BASE + 0x004)
> -#define SCD_TXFACT_REG                  (SCD_BASE + 0x010)
> -#define SCD_TXF4MF_REG                  (SCD_BASE + 0x014)
> -#define SCD_TXF5MF_REG                  (SCD_BASE + 0x020)
> -#define SCD_SBYP_MODE_1_REG             (SCD_BASE + 0x02C)
> -#define SCD_SBYP_MODE_2_REG             (SCD_BASE + 0x030)
> -
>  /*=== FH (data Flow Handler) ===*/
>  #define FH_BASE     (0x800)
>  
-
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux