diff options
| author | Tony Luck <tony.luck@intel.com> | 2005-10-28 14:15:08 -0400 |
|---|---|---|
| committer | Tony Luck <tony.luck@intel.com> | 2005-10-28 14:15:08 -0400 |
| commit | 0d9136fdbcdbddcd4eb5ac94c248c039193d4795 (patch) | |
| tree | 2e914c8afe019302199b5d807114e5b15835dc90 | |
| parent | 9189674026e86e624b1ef1b4eb430e9ad19f9641 (diff) | |
| parent | 1fa92957282e4595727c1a21bf6687ea5a2d612f (diff) | |
Pull altix-mmr into release branch
| -rw-r--r-- | arch/ia64/sn/pci/pcibr/pcibr_reg.c | 59 | ||||
| -rw-r--r-- | arch/ia64/sn/pci/tioca_provider.c | 32 | ||||
| -rw-r--r-- | arch/ia64/sn/pci/tioce_provider.c | 30 | ||||
| -rw-r--r-- | drivers/char/agp/sgi-agp.c | 1 | ||||
| -rw-r--r-- | include/asm-ia64/sn/io.h | 9 | ||||
| -rw-r--r-- | include/asm-ia64/sn/tioca_provider.h | 14 |
6 files changed, 80 insertions, 65 deletions
diff --git a/arch/ia64/sn/pci/pcibr/pcibr_reg.c b/arch/ia64/sn/pci/pcibr/pcibr_reg.c index 21426d02fbe6..4f718c3e93d3 100644 --- a/arch/ia64/sn/pci/pcibr/pcibr_reg.c +++ b/arch/ia64/sn/pci/pcibr/pcibr_reg.c | |||
| @@ -8,6 +8,7 @@ | |||
| 8 | 8 | ||
| 9 | #include <linux/interrupt.h> | 9 | #include <linux/interrupt.h> |
| 10 | #include <linux/types.h> | 10 | #include <linux/types.h> |
| 11 | #include <asm/sn/io.h> | ||
| 11 | #include <asm/sn/pcibr_provider.h> | 12 | #include <asm/sn/pcibr_provider.h> |
| 12 | #include <asm/sn/pcibus_provider_defs.h> | 13 | #include <asm/sn/pcibus_provider_defs.h> |
| 13 | #include <asm/sn/pcidev.h> | 14 | #include <asm/sn/pcidev.h> |
| @@ -29,10 +30,10 @@ void pcireg_control_bit_clr(struct pcibus_info *pcibus_info, uint64_t bits) | |||
| 29 | if (pcibus_info) { | 30 | if (pcibus_info) { |
| 30 | switch (pcibus_info->pbi_bridge_type) { | 31 | switch (pcibus_info->pbi_bridge_type) { |
| 31 | case PCIBR_BRIDGETYPE_TIOCP: | 32 | case PCIBR_BRIDGETYPE_TIOCP: |
| 32 | ptr->tio.cp_control &= ~bits; | 33 | __sn_clrq_relaxed(&ptr->tio.cp_control, bits); |
| 33 | break; | 34 | break; |
| 34 | case PCIBR_BRIDGETYPE_PIC: | 35 | case PCIBR_BRIDGETYPE_PIC: |
| 35 | ptr->pic.p_wid_control &= ~bits; | 36 | __sn_clrq_relaxed(&ptr->pic.p_wid_control, bits); |
| 36 | break; | 37 | break; |
| 37 | default: | 38 | default: |
| 38 | panic | 39 | panic |
| @@ -49,10 +50,10 @@ void pcireg_control_bit_set(struct pcibus_info *pcibus_info, uint64_t bits) | |||
| 49 | if (pcibus_info) { | 50 | if (pcibus_info) { |
| 50 | switch (pcibus_info->pbi_bridge_type) { | 51 | switch (pcibus_info->pbi_bridge_type) { |
| 51 | case PCIBR_BRIDGETYPE_TIOCP: | 52 | case PCIBR_BRIDGETYPE_TIOCP: |
| 52 | ptr->tio.cp_control |= bits; | 53 | __sn_setq_relaxed(&ptr->tio.cp_control, bits); |
| 53 | break; | 54 | break; |
| 54 | case PCIBR_BRIDGETYPE_PIC: | 55 | case PCIBR_BRIDGETYPE_PIC: |
| 55 | ptr->pic.p_wid_control |= bits; | 56 | __sn_setq_relaxed(&ptr->pic.p_wid_control, bits); |
| 56 | break; | 57 | break; |
| 57 | default: | 58 | default: |
| 58 | panic | 59 | panic |
| @@ -73,10 +74,10 @@ uint64_t pcireg_tflush_get(struct pcibus_info *pcibus_info) | |||
| 73 | if (pcibus_info) { | 74 | if (pcibus_info) { |
| 74 | switch (pcibus_info->pbi_bridge_type) { | 75 | switch (pcibus_info->pbi_bridge_type) { |
| 75 | case PCIBR_BRIDGETYPE_TIOCP: | 76 | case PCIBR_BRIDGETYPE_TIOCP: |
| 76 | ret = ptr->tio.cp_tflush; | 77 | ret = __sn_readq_relaxed(&ptr->tio.cp_tflush); |
| 77 | break; | 78 | break; |
| 78 | case PCIBR_BRIDGETYPE_PIC: | 79 | case PCIBR_BRIDGETYPE_PIC: |
| 79 | ret = ptr->pic.p_wid_tflush; | 80 | ret = __sn_readq_relaxed(&ptr->pic.p_wid_tflush); |
| 80 | break; | 81 | break; |
| 81 | default: | 82 | default: |
| 82 | panic | 83 | panic |
| @@ -103,10 +104,10 @@ uint64_t pcireg_intr_status_get(struct pcibus_info * pcibus_info) | |||
| 103 | if (pcibus_info) { | 104 | if (pcibus_info) { |
| 104 | switch (pcibus_info->pbi_bridge_type) { | 105 | switch (pcibus_info->pbi_bridge_type) { |
| 105 | case PCIBR_BRIDGETYPE_TIOCP: | 106 | case PCIBR_BRIDGETYPE_TIOCP: |
| 106 | ret = ptr->tio.cp_int_status; | 107 | ret = __sn_readq_relaxed(&ptr->tio.cp_int_status); |
| 107 | break; | 108 | break; |
| 108 | case PCIBR_BRIDGETYPE_PIC: | 109 | case PCIBR_BRIDGETYPE_PIC: |
| 109 | ret = ptr->pic.p_int_status; | 110 | ret = __sn_readq_relaxed(&ptr->pic.p_int_status); |
| 110 | break; | 111 | break; |
| 111 | default: | 112 | default: |
| 112 | panic | 113 | panic |
| @@ -127,10 +128,10 @@ void pcireg_intr_enable_bit_clr(struct pcibus_info *pcibus_info, uint64_t bits) | |||
| 127 | if (pcibus_info) { | 128 | if (pcibus_info) { |
| 128 | switch (pcibus_info->pbi_bridge_type) { | 129 | switch (pcibus_info->pbi_bridge_type) { |
| 129 | case PCIBR_BRIDGETYPE_TIOCP: | 130 | case PCIBR_BRIDGETYPE_TIOCP: |
| 130 | ptr->tio.cp_int_enable &= ~bits; | 131 | __sn_clrq_relaxed(&ptr->tio.cp_int_enable, bits); |
| 131 | break; | 132 | break; |
| 132 | case PCIBR_BRIDGETYPE_PIC: | 133 | case PCIBR_BRIDGETYPE_PIC: |
| 133 | ptr->pic.p_int_enable &= ~bits; | 134 | __sn_clrq_relaxed(&ptr->pic.p_int_enable, ~bits); |
| 134 | break; | 135 | break; |
| 135 | default: | 136 | default: |
| 136 | panic | 137 | panic |
| @@ -147,10 +148,10 @@ void pcireg_intr_enable_bit_set(struct pcibus_info *pcibus_info, uint64_t bits) | |||
| 147 | if (pcibus_info) { | 148 | if (pcibus_info) { |
| 148 | switch (pcibus_info->pbi_bridge_type) { | 149 | switch (pcibus_info->pbi_bridge_type) { |
| 149 | case PCIBR_BRIDGETYPE_TIOCP: | 150 | case PCIBR_BRIDGETYPE_TIOCP: |
| 150 | ptr->tio.cp_int_enable |= bits; | 151 | __sn_setq_relaxed(&ptr->tio.cp_int_enable, bits); |
| 151 | break; | 152 | break; |
| 152 | case PCIBR_BRIDGETYPE_PIC: | 153 | case PCIBR_BRIDGETYPE_PIC: |
| 153 | ptr->pic.p_int_enable |= bits; | 154 | __sn_setq_relaxed(&ptr->pic.p_int_enable, bits); |
| 154 | break; | 155 | break; |
| 155 | default: | 156 | default: |
| 156 | panic | 157 | panic |
| @@ -171,14 +172,16 @@ void pcireg_intr_addr_addr_set(struct pcibus_info *pcibus_info, int int_n, | |||
| 171 | if (pcibus_info) { | 172 | if (pcibus_info) { |
| 172 | switch (pcibus_info->pbi_bridge_type) { | 173 | switch (pcibus_info->pbi_bridge_type) { |
| 173 | case PCIBR_BRIDGETYPE_TIOCP: | 174 | case PCIBR_BRIDGETYPE_TIOCP: |
| 174 | ptr->tio.cp_int_addr[int_n] &= ~TIOCP_HOST_INTR_ADDR; | 175 | __sn_clrq_relaxed(&ptr->tio.cp_int_addr[int_n], |
| 175 | ptr->tio.cp_int_addr[int_n] |= | 176 | TIOCP_HOST_INTR_ADDR); |
| 176 | (addr & TIOCP_HOST_INTR_ADDR); | 177 | __sn_setq_relaxed(&ptr->tio.cp_int_addr[int_n], |
| 178 | (addr & TIOCP_HOST_INTR_ADDR)); | ||
| 177 | break; | 179 | break; |
| 178 | case PCIBR_BRIDGETYPE_PIC: | 180 | case PCIBR_BRIDGETYPE_PIC: |
| 179 | ptr->pic.p_int_addr[int_n] &= ~PIC_HOST_INTR_ADDR; | 181 | __sn_clrq_relaxed(&ptr->pic.p_int_addr[int_n], |
| 180 | ptr->pic.p_int_addr[int_n] |= | 182 | PIC_HOST_INTR_ADDR); |
| 181 | (addr & PIC_HOST_INTR_ADDR); | 183 | __sn_setq_relaxed(&ptr->pic.p_int_addr[int_n], |
| 184 | (addr & PIC_HOST_INTR_ADDR)); | ||
| 182 | break; | 185 | break; |
| 183 | default: | 186 | default: |
| 184 | panic | 187 | panic |
| @@ -198,10 +201,10 @@ void pcireg_force_intr_set(struct pcibus_info *pcibus_info, int int_n) | |||
| 198 | if (pcibus_info) { | 201 | if (pcibus_info) { |
| 199 | switch (pcibus_info->pbi_bridge_type) { | 202 | switch (pcibus_info->pbi_bridge_type) { |
| 200 | case PCIBR_BRIDGETYPE_TIOCP: | 203 | case PCIBR_BRIDGETYPE_TIOCP: |
| 201 | ptr->tio.cp_force_pin[int_n] = 1; | 204 | writeq(1, &ptr->tio.cp_force_pin[int_n]); |
| 202 | break; | 205 | break; |
| 203 | case PCIBR_BRIDGETYPE_PIC: | 206 | case PCIBR_BRIDGETYPE_PIC: |
| 204 | ptr->pic.p_force_pin[int_n] = 1; | 207 | writeq(1, &ptr->pic.p_force_pin[int_n]); |
| 205 | break; | 208 | break; |
| 206 | default: | 209 | default: |
| 207 | panic | 210 | panic |
| @@ -222,10 +225,12 @@ uint64_t pcireg_wrb_flush_get(struct pcibus_info *pcibus_info, int device) | |||
| 222 | if (pcibus_info) { | 225 | if (pcibus_info) { |
| 223 | switch (pcibus_info->pbi_bridge_type) { | 226 | switch (pcibus_info->pbi_bridge_type) { |
| 224 | case PCIBR_BRIDGETYPE_TIOCP: | 227 | case PCIBR_BRIDGETYPE_TIOCP: |
| 225 | ret = ptr->tio.cp_wr_req_buf[device]; | 228 | ret = |
| 229 | __sn_readq_relaxed(&ptr->tio.cp_wr_req_buf[device]); | ||
| 226 | break; | 230 | break; |
| 227 | case PCIBR_BRIDGETYPE_PIC: | 231 | case PCIBR_BRIDGETYPE_PIC: |
| 228 | ret = ptr->pic.p_wr_req_buf[device]; | 232 | ret = |
| 233 | __sn_readq_relaxed(&ptr->pic.p_wr_req_buf[device]); | ||
| 229 | break; | 234 | break; |
| 230 | default: | 235 | default: |
| 231 | panic("pcireg_wrb_flush_get: unknown bridgetype bridge 0x%p", (void *)ptr); | 236 | panic("pcireg_wrb_flush_get: unknown bridgetype bridge 0x%p", (void *)ptr); |
| @@ -244,10 +249,10 @@ void pcireg_int_ate_set(struct pcibus_info *pcibus_info, int ate_index, | |||
| 244 | if (pcibus_info) { | 249 | if (pcibus_info) { |
