Deleted Added
full compact
arcmsr.c (295790) arcmsr.c (296135)
1/*
2********************************************************************************
3** OS : FreeBSD
4** FILE NAME : arcmsr.c
5** BY : Erich Chen, Ching Huang
6** Description: SCSI RAID Device Driver for
7** ARECA (ARC11XX/ARC12XX/ARC13XX/ARC16XX/ARC188x)
8** SATA/SAS RAID HOST Adapter

--- 67 unchanged lines hidden (view full) ---

76** 1.20.00.27 05/06/2013 Ching Huang Fixed out standing cmd full on ARC-12x4
77** 1.20.00.28 09/13/2013 Ching Huang Removed recursive mutex in arcmsr_abort_dr_ccbs
78** 1.20.00.29 12/18/2013 Ching Huang Change simq allocation number, support ARC1883
79** 1.30.00.00 11/30/2015 Ching Huang Added support ARC1203
80******************************************************************************************
81*/
82
83#include <sys/cdefs.h>
1/*
2********************************************************************************
3** OS : FreeBSD
4** FILE NAME : arcmsr.c
5** BY : Erich Chen, Ching Huang
6** Description: SCSI RAID Device Driver for
7** ARECA (ARC11XX/ARC12XX/ARC13XX/ARC16XX/ARC188x)
8** SATA/SAS RAID HOST Adapter

--- 67 unchanged lines hidden (view full) ---

76** 1.20.00.27 05/06/2013 Ching Huang Fixed out standing cmd full on ARC-12x4
77** 1.20.00.28 09/13/2013 Ching Huang Removed recursive mutex in arcmsr_abort_dr_ccbs
78** 1.20.00.29 12/18/2013 Ching Huang Change simq allocation number, support ARC1883
79** 1.30.00.00 11/30/2015 Ching Huang Added support ARC1203
80******************************************************************************************
81*/
82
83#include <sys/cdefs.h>
84__FBSDID("$FreeBSD: head/sys/dev/arcmsr/arcmsr.c 295790 2016-02-19 03:37:56Z jhibbits $");
84__FBSDID("$FreeBSD: head/sys/dev/arcmsr/arcmsr.c 296135 2016-02-27 03:34:01Z jhibbits $");
85
86#if 0
87#define ARCMSR_DEBUG1 1
88#endif
89#include <sys/param.h>
90#include <sys/systm.h>
91#include <sys/malloc.h>
92#include <sys/kernel.h>

--- 4045 unchanged lines hidden (view full) ---

4138 pci_command |= PCIM_CMD_MWRICEN;
4139 /* Enable Busmaster */
4140 pci_write_config(dev, PCIR_COMMAND, pci_command, 2);
4141 switch(acb->adapter_type) {
4142 case ACB_ADAPTER_TYPE_A: {
4143 u_int32_t rid0 = PCIR_BAR(0);
4144 vm_offset_t mem_base0;
4145
85
86#if 0
87#define ARCMSR_DEBUG1 1
88#endif
89#include <sys/param.h>
90#include <sys/systm.h>
91#include <sys/malloc.h>
92#include <sys/kernel.h>

--- 4045 unchanged lines hidden (view full) ---

4138 pci_command |= PCIM_CMD_MWRICEN;
4139 /* Enable Busmaster */
4140 pci_write_config(dev, PCIR_COMMAND, pci_command, 2);
4141 switch(acb->adapter_type) {
4142 case ACB_ADAPTER_TYPE_A: {
4143 u_int32_t rid0 = PCIR_BAR(0);
4144 vm_offset_t mem_base0;
4145
4146 acb->sys_res_arcmsr[0] = bus_alloc_resource(dev,SYS_RES_MEMORY, &rid0, 0ul, ~0ul, 0x1000, RF_ACTIVE);
4146 acb->sys_res_arcmsr[0] = bus_alloc_resource_any(dev,SYS_RES_MEMORY, &rid0, RF_ACTIVE);
4147 if(acb->sys_res_arcmsr[0] == NULL) {
4148 arcmsr_free_resource(acb);
4149 printf("arcmsr%d: bus_alloc_resource failure!\n", device_get_unit(dev));
4150 return ENOMEM;
4151 }
4152 if(rman_get_start(acb->sys_res_arcmsr[0]) <= 0) {
4153 arcmsr_free_resource(acb);
4154 printf("arcmsr%d: rman_get_start failure!\n", device_get_unit(dev));

--- 17 unchanged lines hidden (view full) ---

4172 vm_offset_t mem_base[]={0,0};
4173 u_long size;
4174 if (vendor_dev_id == PCIDevVenIDARC1203)
4175 size = sizeof(struct HBB_DOORBELL_1203);
4176 else
4177 size = sizeof(struct HBB_DOORBELL);
4178 for(i=0; i < 2; i++) {
4179 if(i == 0) {
4147 if(acb->sys_res_arcmsr[0] == NULL) {
4148 arcmsr_free_resource(acb);
4149 printf("arcmsr%d: bus_alloc_resource failure!\n", device_get_unit(dev));
4150 return ENOMEM;
4151 }
4152 if(rman_get_start(acb->sys_res_arcmsr[0]) <= 0) {
4153 arcmsr_free_resource(acb);
4154 printf("arcmsr%d: rman_get_start failure!\n", device_get_unit(dev));

--- 17 unchanged lines hidden (view full) ---

4172 vm_offset_t mem_base[]={0,0};
4173 u_long size;
4174 if (vendor_dev_id == PCIDevVenIDARC1203)
4175 size = sizeof(struct HBB_DOORBELL_1203);
4176 else
4177 size = sizeof(struct HBB_DOORBELL);
4178 for(i=0; i < 2; i++) {
4179 if(i == 0) {
4180 acb->sys_res_arcmsr[i] = bus_alloc_resource(dev,SYS_RES_MEMORY, &rid[i],
4181 0ul, ~0ul, size, RF_ACTIVE);
4180 acb->sys_res_arcmsr[i] = bus_alloc_resource_any(dev,SYS_RES_MEMORY, &rid[i],
4181 RF_ACTIVE);
4182 } else {
4182 } else {
4183 acb->sys_res_arcmsr[i] = bus_alloc_resource(dev, SYS_RES_MEMORY, &rid[i],
4184 0ul, ~0ul, sizeof(struct HBB_RWBUFFER), RF_ACTIVE);
4183 acb->sys_res_arcmsr[i] = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid[i],
4184 RF_ACTIVE);
4185 }
4186 if(acb->sys_res_arcmsr[i] == NULL) {
4187 arcmsr_free_resource(acb);
4188 printf("arcmsr%d: bus_alloc_resource %d failure!\n", device_get_unit(dev), i);
4189 return ENOMEM;
4190 }
4191 if(rman_get_start(acb->sys_res_arcmsr[i]) <= 0) {
4192 arcmsr_free_resource(acb);

--- 26 unchanged lines hidden (view full) ---

4219 phbbmu->iop2drv_doorbell_mask = offsetof(struct HBB_DOORBELL, iop2drv_doorbell_mask);
4220 }
4221 }
4222 break;
4223 case ACB_ADAPTER_TYPE_C: {
4224 u_int32_t rid0 = PCIR_BAR(1);
4225 vm_offset_t mem_base0;
4226
4185 }
4186 if(acb->sys_res_arcmsr[i] == NULL) {
4187 arcmsr_free_resource(acb);
4188 printf("arcmsr%d: bus_alloc_resource %d failure!\n", device_get_unit(dev), i);
4189 return ENOMEM;
4190 }
4191 if(rman_get_start(acb->sys_res_arcmsr[i]) <= 0) {
4192 arcmsr_free_resource(acb);

--- 26 unchanged lines hidden (view full) ---

4219 phbbmu->iop2drv_doorbell_mask = offsetof(struct HBB_DOORBELL, iop2drv_doorbell_mask);
4220 }
4221 }
4222 break;
4223 case ACB_ADAPTER_TYPE_C: {
4224 u_int32_t rid0 = PCIR_BAR(1);
4225 vm_offset_t mem_base0;
4226
4227 acb->sys_res_arcmsr[0] = bus_alloc_resource(dev,SYS_RES_MEMORY, &rid0, 0ul, ~0ul, sizeof(struct HBC_MessageUnit), RF_ACTIVE);
4227 acb->sys_res_arcmsr[0] = bus_alloc_resource_any(dev,SYS_RES_MEMORY, &rid0, RF_ACTIVE);
4228 if(acb->sys_res_arcmsr[0] == NULL) {
4229 arcmsr_free_resource(acb);
4230 printf("arcmsr%d: bus_alloc_resource failure!\n", device_get_unit(dev));
4231 return ENOMEM;
4232 }
4233 if(rman_get_start(acb->sys_res_arcmsr[0]) <= 0) {
4234 arcmsr_free_resource(acb);
4235 printf("arcmsr%d: rman_get_start failure!\n", device_get_unit(dev));

--- 10 unchanged lines hidden (view full) ---

4246 acb->pmu = (struct MessageUnit_UNION *)mem_base0;
4247 }
4248 break;
4249 case ACB_ADAPTER_TYPE_D: {
4250 struct HBD_MessageUnit0 *phbdmu;
4251 u_int32_t rid0 = PCIR_BAR(0);
4252 vm_offset_t mem_base0;
4253
4228 if(acb->sys_res_arcmsr[0] == NULL) {
4229 arcmsr_free_resource(acb);
4230 printf("arcmsr%d: bus_alloc_resource failure!\n", device_get_unit(dev));
4231 return ENOMEM;
4232 }
4233 if(rman_get_start(acb->sys_res_arcmsr[0]) <= 0) {
4234 arcmsr_free_resource(acb);
4235 printf("arcmsr%d: rman_get_start failure!\n", device_get_unit(dev));

--- 10 unchanged lines hidden (view full) ---

4246 acb->pmu = (struct MessageUnit_UNION *)mem_base0;
4247 }
4248 break;
4249 case ACB_ADAPTER_TYPE_D: {
4250 struct HBD_MessageUnit0 *phbdmu;
4251 u_int32_t rid0 = PCIR_BAR(0);
4252 vm_offset_t mem_base0;
4253
4254 acb->sys_res_arcmsr[0] = bus_alloc_resource(dev,SYS_RES_MEMORY, &rid0, 0ul, ~0ul, sizeof(struct HBD_MessageUnit), RF_ACTIVE);
4254 acb->sys_res_arcmsr[0] = bus_alloc_resource_any(dev,SYS_RES_MEMORY, &rid0, RF_ACTIVE);
4255 if(acb->sys_res_arcmsr[0] == NULL) {
4256 arcmsr_free_resource(acb);
4257 printf("arcmsr%d: bus_alloc_resource failure!\n", device_get_unit(dev));
4258 return ENOMEM;
4259 }
4260 if(rman_get_start(acb->sys_res_arcmsr[0]) <= 0) {
4261 arcmsr_free_resource(acb);
4262 printf("arcmsr%d: rman_get_start failure!\n", device_get_unit(dev));

--- 300 unchanged lines hidden ---
4255 if(acb->sys_res_arcmsr[0] == NULL) {
4256 arcmsr_free_resource(acb);
4257 printf("arcmsr%d: bus_alloc_resource failure!\n", device_get_unit(dev));
4258 return ENOMEM;
4259 }
4260 if(rman_get_start(acb->sys_res_arcmsr[0]) <= 0) {
4261 arcmsr_free_resource(acb);
4262 printf("arcmsr%d: rman_get_start failure!\n", device_get_unit(dev));

--- 300 unchanged lines hidden ---