diff options
-rw-r--r-- | drivers/scsi/advansys.c | 104 |
1 files changed, 41 insertions, 63 deletions
diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c index e79f7955f6ea..73d974a15fca 100644 --- a/drivers/scsi/advansys.c +++ b/drivers/scsi/advansys.c | |||
@@ -1380,7 +1380,6 @@ typedef struct asc_dvc_cfg { | |||
1380 | uchar sdtr_period_offset[ASC_MAX_TID + 1]; | 1380 | uchar sdtr_period_offset[ASC_MAX_TID + 1]; |
1381 | ushort pci_slot_info; | 1381 | ushort pci_slot_info; |
1382 | uchar adapter_info[6]; | 1382 | uchar adapter_info[6]; |
1383 | struct device *dev; | ||
1384 | } ASC_DVC_CFG; | 1383 | } ASC_DVC_CFG; |
1385 | 1384 | ||
1386 | #define ASC_DEF_DVC_CNTL 0xFFFF | 1385 | #define ASC_DEF_DVC_CNTL 0xFFFF |
@@ -1831,7 +1830,6 @@ static void AscMemDWordCopyPtrToLram(PortAddr, ushort, uchar *, int); | |||
1831 | static void AscMemWordCopyPtrFromLram(PortAddr, ushort, uchar *, int); | 1830 | static void AscMemWordCopyPtrFromLram(PortAddr, ushort, uchar *, int); |
1832 | static ushort AscInitAscDvcVar(ASC_DVC_VAR *); | 1831 | static ushort AscInitAscDvcVar(ASC_DVC_VAR *); |
1833 | static ushort AscInitFromEEP(ASC_DVC_VAR *); | 1832 | static ushort AscInitFromEEP(ASC_DVC_VAR *); |
1834 | static ushort AscInitFromAscDvcVar(ASC_DVC_VAR *); | ||
1835 | static ushort AscInitMicroCodeVar(ASC_DVC_VAR *); | 1833 | static ushort AscInitMicroCodeVar(ASC_DVC_VAR *); |
1836 | static int AscTestExternalLram(ASC_DVC_VAR *); | 1834 | static int AscTestExternalLram(ASC_DVC_VAR *); |
1837 | static uchar AscMsgOutSDTR(ASC_DVC_VAR *, uchar, uchar); | 1835 | static uchar AscMsgOutSDTR(ASC_DVC_VAR *, uchar, uchar); |
@@ -2827,7 +2825,6 @@ typedef struct adv_dvc_cfg { | |||
2827 | ushort serial1; /* EEPROM serial number word 1 */ | 2825 | ushort serial1; /* EEPROM serial number word 1 */ |
2828 | ushort serial2; /* EEPROM serial number word 2 */ | 2826 | ushort serial2; /* EEPROM serial number word 2 */ |
2829 | ushort serial3; /* EEPROM serial number word 3 */ | 2827 | ushort serial3; /* EEPROM serial number word 3 */ |
2830 | struct device *dev; /* pointer to the pci dev structure for this board */ | ||
2831 | } ADV_DVC_CFG; | 2828 | } ADV_DVC_CFG; |
2832 | 2829 | ||
2833 | struct adv_dvc_var; | 2830 | struct adv_dvc_var; |
@@ -3000,7 +2997,6 @@ static void DvcDelayMicroSecond(ADV_DVC_VAR *, ushort); | |||
3000 | */ | 2997 | */ |
3001 | static int AdvExeScsiQueue(ADV_DVC_VAR *, ADV_SCSI_REQ_Q *); | 2998 | static int AdvExeScsiQueue(ADV_DVC_VAR *, ADV_SCSI_REQ_Q *); |
3002 | static int AdvISR(ADV_DVC_VAR *); | 2999 | static int AdvISR(ADV_DVC_VAR *); |
3003 | static int AdvInitGetConfig(ADV_DVC_VAR *); | ||
3004 | static int AdvInitAsc3550Driver(ADV_DVC_VAR *); | 3000 | static int AdvInitAsc3550Driver(ADV_DVC_VAR *); |
3005 | static int AdvInitAsc38C0800Driver(ADV_DVC_VAR *); | 3001 | static int AdvInitAsc38C0800Driver(ADV_DVC_VAR *); |
3006 | static int AdvInitAsc38C1600Driver(ADV_DVC_VAR *); | 3002 | static int AdvInitAsc38C1600Driver(ADV_DVC_VAR *); |
@@ -3597,6 +3593,7 @@ typedef struct adv_req { | |||
3597 | * field. It is guaranteed to be allocated from DMA-able memory. | 3593 | * field. It is guaranteed to be allocated from DMA-able memory. |
3598 | */ | 3594 | */ |
3599 | typedef struct asc_board { | 3595 | typedef struct asc_board { |
3596 | struct device *dev; | ||
3600 | int id; /* Board Id */ | 3597 | int id; /* Board Id */ |
3601 | uint flags; /* Board flags */ | 3598 | uint flags; /* Board flags */ |
3602 | union { | 3599 | union { |
@@ -4672,7 +4669,6 @@ static void asc_scsi_done_list(struct scsi_cmnd *scp) | |||
4672 | ASC_DBG(2, "asc_scsi_done_list: begin\n"); | 4669 | ASC_DBG(2, "asc_scsi_done_list: begin\n"); |
4673 | while (scp != NULL) { | 4670 | while (scp != NULL) { |
4674 | asc_board_t *boardp; | 4671 | asc_board_t *boardp; |
4675 | struct device *dev; | ||
4676 | 4672 | ||
4677 | ASC_DBG1(3, "asc_scsi_done_list: scp 0x%lx\n", (ulong)scp); | 4673 | ASC_DBG1(3, "asc_scsi_done_list: scp 0x%lx\n", (ulong)scp); |
4678 | tscp = REQPNEXT(scp); | 4674 | tscp = REQPNEXT(scp); |
@@ -4680,17 +4676,12 @@ static void asc_scsi_done_list(struct scsi_cmnd *scp) | |||
4680 | 4676 | ||
4681 | boardp = ASC_BOARDP(scp->device->host); | 4677 | boardp = ASC_BOARDP(scp->device->host); |
4682 | 4678 | ||
4683 | if (ASC_NARROW_BOARD(boardp)) | ||
4684 | dev = boardp->dvc_cfg.asc_dvc_cfg.dev; | ||
4685 | else | ||
4686 | dev = boardp->dvc_cfg.adv_dvc_cfg.dev; | ||
4687 | |||
4688 | if (scp->use_sg) | 4679 | if (scp->use_sg) |
4689 | dma_unmap_sg(dev, | 4680 | dma_unmap_sg(boardp->dev, |
4690 | (struct scatterlist *)scp->request_buffer, | 4681 | (struct scatterlist *)scp->request_buffer, |
4691 | scp->use_sg, scp->sc_data_direction); | 4682 | scp->use_sg, scp->sc_data_direction); |
4692 | else if (scp->request_bufflen) | 4683 | else if (scp->request_bufflen) |
4693 | dma_unmap_single(dev, scp->SCp.dma_handle, | 4684 | dma_unmap_single(boardp->dev, scp->SCp.dma_handle, |
4694 | scp->request_bufflen, | 4685 | scp->request_bufflen, |
4695 | scp->sc_data_direction); | 4686 | scp->sc_data_direction); |
4696 | 4687 | ||
@@ -4929,8 +4920,6 @@ static int asc_execute_scsi_cmnd(struct scsi_cmnd *scp) | |||
4929 | */ | 4920 | */ |
4930 | static int asc_build_req(asc_board_t *boardp, struct scsi_cmnd *scp) | 4921 | static int asc_build_req(asc_board_t *boardp, struct scsi_cmnd *scp) |
4931 | { | 4922 | { |
4932 | struct device *dev = boardp->dvc_cfg.asc_dvc_cfg.dev; | ||
4933 | |||
4934 | /* | 4923 | /* |
4935 | * Mutually exclusive access is required to 'asc_scsi_q' and | 4924 | * Mutually exclusive access is required to 'asc_scsi_q' and |
4936 | * 'asc_sg_head' until after the request is started. | 4925 | * 'asc_sg_head' until after the request is started. |
@@ -4994,7 +4983,7 @@ static int asc_build_req(asc_board_t *boardp, struct scsi_cmnd *scp) | |||
4994 | */ | 4983 | */ |
4995 | ASC_STATS(scp->device->host, cont_cnt); | 4984 | ASC_STATS(scp->device->host, cont_cnt); |
4996 | scp->SCp.dma_handle = scp->request_bufflen ? | 4985 | scp->SCp.dma_handle = scp->request_bufflen ? |
4997 | dma_map_single(dev, scp->request_buffer, | 4986 | dma_map_single(boardp->dev, scp->request_buffer, |
4998 | scp->request_bufflen, | 4987 | scp->request_bufflen, |
4999 | scp->sc_data_direction) : 0; | 4988 | scp->sc_data_direction) : 0; |
5000 | asc_scsi_q.q1.data_addr = cpu_to_le32(scp->SCp.dma_handle); | 4989 | asc_scsi_q.q1.data_addr = cpu_to_le32(scp->SCp.dma_handle); |
@@ -5012,15 +5001,14 @@ static int asc_build_req(asc_board_t *boardp, struct scsi_cmnd *scp) | |||
5012 | struct scatterlist *slp; | 5001 | struct scatterlist *slp; |
5013 | 5002 | ||
5014 | slp = (struct scatterlist *)scp->request_buffer; | 5003 | slp = (struct scatterlist *)scp->request_buffer; |
5015 | use_sg = | 5004 | use_sg = dma_map_sg(boardp->dev, slp, scp->use_sg, |
5016 | dma_map_sg(dev, slp, scp->use_sg, scp->sc_data_direction); | 5005 | scp->sc_data_direction); |
5017 | 5006 | ||
5018 | if (use_sg > scp->device->host->sg_tablesize) { | 5007 | if (use_sg > scp->device->host->sg_tablesize) { |
5019 | ASC_PRINT3 | 5008 | ASC_PRINT3("asc_build_req: board %d: use_sg %d > " |
5020 | ("asc_build_req: board %d: use_sg %d > sg_tablesize %d\n", | 5009 | "sg_tablesize %d\n", boardp->id, use_sg, |
5021 | boardp->id, use_sg, | 5010 | scp->device->host->sg_tablesize); |
5022 | scp->device->host->sg_tablesize); | 5011 | dma_unmap_sg(boardp->dev, slp, scp->use_sg, |
5023 | dma_unmap_sg(dev, slp, scp->use_sg, | ||
5024 | scp->sc_data_direction); | 5012 | scp->sc_data_direction); |
5025 | scp->result = HOST_BYTE(DID_ERROR); | 5013 | scp->result = HOST_BYTE(DID_ERROR); |
5026 | asc_enqueue(&boardp->done, scp, ASC_BACK); | 5014 | asc_enqueue(&boardp->done, scp, ASC_BACK); |
@@ -5081,7 +5069,6 @@ adv_build_req(asc_board_t *boardp, struct scsi_cmnd *scp, | |||
5081 | ADV_SCSI_REQ_Q *scsiqp; | 5069 | ADV_SCSI_REQ_Q *scsiqp; |
5082 | int i; | 5070 | int i; |
5083 | int ret; | 5071 | int ret; |
5084 | struct device *dev = boardp->dvc_cfg.adv_dvc_cfg.dev; | ||
5085 | 5072 | ||
5086 | /* | 5073 | /* |
5087 | * Allocate an adv_req_t structure from the board to execute | 5074 | * Allocate an adv_req_t structure from the board to execute |
@@ -5168,7 +5155,7 @@ adv_build_req(asc_board_t *boardp, struct scsi_cmnd *scp, | |||
5168 | if (scp->request_bufflen) { | 5155 | if (scp->request_bufflen) { |
5169 | scsiqp->vdata_addr = scp->request_buffer; | 5156 | scsiqp->vdata_addr = scp->request_buffer; |
5170 | scp->SCp.dma_handle = | 5157 | scp->SCp.dma_handle = |
5171 | dma_map_single(dev, scp->request_buffer, | 5158 | dma_map_single(boardp->dev, scp->request_buffer, |
5172 | scp->request_bufflen, | 5159 | scp->request_bufflen, |
5173 | scp->sc_data_direction); | 5160 | scp->sc_data_direction); |
5174 | } else { | 5161 | } else { |
@@ -5189,22 +5176,21 @@ adv_build_req(asc_board_t *boardp, struct scsi_cmnd *scp, | |||
5189 | int use_sg; | 5176 | int use_sg; |
5190 | 5177 | ||
5191 | slp = (struct scatterlist *)scp->request_buffer; | 5178 | slp = (struct scatterlist *)scp->request_buffer; |
5192 | use_sg = | 5179 | use_sg = dma_map_sg(boardp->dev, slp, scp->use_sg, |
5193 | dma_map_sg(dev, slp, scp->use_sg, scp->sc_data_direction); | 5180 | scp->sc_data_direction); |
5194 | 5181 | ||
5195 | if (use_sg > ADV_MAX_SG_LIST) { | 5182 | if (use_sg > ADV_MAX_SG_LIST) { |
5196 | ASC_PRINT3 | 5183 | ASC_PRINT3("adv_build_req: board %d: use_sg %d > " |
5197 | ("adv_build_req: board %d: use_sg %d > ADV_MAX_SG_LIST %d\n", | 5184 | "ADV_MAX_SG_LIST %d\n", boardp->id, use_sg, |
5198 | boardp->id, use_sg, | 5185 | scp->device->host->sg_tablesize); |
5199 | scp->device->host->sg_tablesize); | 5186 | dma_unmap_sg(boardp->dev, slp, scp->use_sg, |
5200 | dma_unmap_sg(dev, slp, scp->use_sg, | ||
5201 | scp->sc_data_direction); | 5187 | scp->sc_data_direction); |
5202 | scp->result = HOST_BYTE(DID_ERROR); | 5188 | scp->result = HOST_BYTE(DID_ERROR); |
5203 | asc_enqueue(&boardp->done, scp, ASC_BACK); | 5189 | asc_enqueue(&boardp->done, scp, ASC_BACK); |
5204 | 5190 | ||
5205 | /* | 5191 | /* |
5206 | * Free the 'adv_req_t' structure by adding it back to the | 5192 | * Free the 'adv_req_t' structure by adding it back |
5207 | * board free list. | 5193 | * to the board free list. |
5208 | */ | 5194 | */ |
5209 | reqp->next_reqp = boardp->adv_reqp; | 5195 | reqp->next_reqp = boardp->adv_reqp; |
5210 | boardp->adv_reqp = reqp; | 5196 | boardp->adv_reqp = reqp; |
@@ -5212,12 +5198,11 @@ adv_build_req(asc_board_t *boardp, struct scsi_cmnd *scp, | |||
5212 | return ASC_ERROR; | 5198 | return ASC_ERROR; |
5213 | } | 5199 | } |
5214 | 5200 | ||
5215 | if ((ret = | 5201 | ret = adv_get_sglist(boardp, reqp, scp, use_sg); |
5216 | adv_get_sglist(boardp, reqp, scp, | 5202 | if (ret != ADV_SUCCESS) { |
5217 | use_sg)) != ADV_SUCCESS) { | ||
5218 | /* | 5203 | /* |
5219 | * Free the adv_req_t structure by adding it back to the | 5204 | * Free the adv_req_t structure by adding it back to |
5220 | * board free list. | 5205 | * the board free list. |
5221 | */ | 5206 | */ |
5222 | reqp->next_reqp = boardp->adv_reqp; | 5207 | reqp->next_reqp = boardp->adv_reqp; |
5223 | boardp->adv_reqp = reqp; | 5208 | boardp->adv_reqp = reqp; |
@@ -10219,30 +10204,21 @@ static ushort __devinit AscInitGetConfig(ASC_DVC_VAR *asc_dvc) | |||
10219 | return warn_code; | 10204 | return warn_code; |
10220 | } | 10205 | } |
10221 | 10206 | ||
10222 | static ushort __devinit AscInitSetConfig(ASC_DVC_VAR *asc_dvc) | 10207 | static unsigned short __devinit |
10208 | AscInitSetConfig(struct pci_dev *pdev, ASC_DVC_VAR *asc_dvc) | ||
10223 | { | 10209 | { |
10224 | ushort warn_code = 0; | 10210 | PortAddr iop_base = asc_dvc->iop_base; |
10211 | unsigned short cfg_msw; | ||
10212 | unsigned short warn_code = 0; | ||
10225 | 10213 | ||
10226 | asc_dvc->init_state |= ASC_INIT_STATE_BEG_SET_CFG; | 10214 | asc_dvc->init_state |= ASC_INIT_STATE_BEG_SET_CFG; |
10227 | if (asc_dvc->err_code != 0) | 10215 | if (asc_dvc->err_code != 0) |
10228 | return (UW_ERR); | 10216 | return UW_ERR; |
10229 | if (AscFindSignature(asc_dvc->iop_base)) { | 10217 | if (!AscFindSignature(asc_dvc->iop_base)) { |
10230 | warn_code |= AscInitFromAscDvcVar(asc_dvc); | ||
10231 | asc_dvc->init_state |= ASC_INIT_STATE_END_SET_CFG; | ||
10232 | } else { | ||
10233 | asc_dvc->err_code = ASC_IERR_BAD_SIGNATURE; | 10218 | asc_dvc->err_code = ASC_IERR_BAD_SIGNATURE; |
10219 | return 0; | ||
10234 | } | 10220 | } |
10235 | return (warn_code); | ||
10236 | } | ||
10237 | |||
10238 | static ushort __devinit AscInitFromAscDvcVar(ASC_DVC_VAR *asc_dvc) | ||
10239 | { | ||
10240 | PortAddr iop_base; | ||
10241 | ushort cfg_msw; | ||
10242 | ushort warn_code; | ||
10243 | 10221 | ||
10244 | iop_base = asc_dvc->iop_base; | ||
10245 | warn_code = 0; | ||
10246 | cfg_msw = AscGetChipCfgMsw(iop_base); | 10222 | cfg_msw = AscGetChipCfgMsw(iop_base); |
10247 | if ((cfg_msw & ASC_CFG_MSW_CLR_MASK) != 0) { | 10223 | if ((cfg_msw & ASC_CFG_MSW_CLR_MASK) != 0) { |
10248 | cfg_msw &= (~(ASC_CFG_MSW_CLR_MASK)); | 10224 | cfg_msw &= (~(ASC_CFG_MSW_CLR_MASK)); |
@@ -10265,7 +10241,6 @@ static ushort __devinit AscInitFromAscDvcVar(ASC_DVC_VAR *asc_dvc) | |||
10265 | } | 10241 | } |
10266 | #ifdef CONFIG_PCI | 10242 | #ifdef CONFIG_PCI |
10267 | if (asc_dvc->bus_type & ASC_IS_PCI) { | 10243 | if (asc_dvc->bus_type & ASC_IS_PCI) { |
10268 | struct pci_dev *pdev = to_pci_dev(asc_dvc->cfg->dev); | ||
10269 | cfg_msw &= 0xFFC0; | 10244 | cfg_msw &= 0xFFC0; |
10270 | AscSetChipCfgMsw(iop_base, cfg_msw); | 10245 | AscSetChipCfgMsw(iop_base, cfg_msw); |
10271 | if ((asc_dvc->bus_type & ASC_IS_PCI_ULTRA) == ASC_IS_PCI_ULTRA) { | 10246 | if ((asc_dvc->bus_type & ASC_IS_PCI_ULTRA) == ASC_IS_PCI_ULTRA) { |
@@ -10295,7 +10270,9 @@ static ushort __devinit AscInitFromAscDvcVar(ASC_DVC_VAR *asc_dvc) | |||
10295 | AscSetIsaDmaSpeed(iop_base, asc_dvc->cfg->isa_dma_speed); | 10270 | AscSetIsaDmaSpeed(iop_base, asc_dvc->cfg->isa_dma_speed); |
10296 | } | 10271 | } |
10297 | #endif /* CONFIG_ISA */ | 10272 | #endif /* CONFIG_ISA */ |
10298 | return (warn_code); | 10273 | |
10274 | asc_dvc->init_state |= ASC_INIT_STATE_END_SET_CFG; | ||
10275 | return warn_code; | ||
10299 | } | 10276 | } |
10300 | 10277 | ||
10301 | static ushort AscInitAsc1000Driver(ASC_DVC_VAR *asc_dvc) | 10278 | static ushort AscInitAsc1000Driver(ASC_DVC_VAR *asc_dvc) |
@@ -13599,11 +13576,11 @@ static ADVEEP_38C1600_CONFIG ADVEEP_38C1600_Config_Field_IsChar __devinitdata = | |||
13599 | * For a non-fatal error return a warning code. If there are no warnings | 13576 | * For a non-fatal error return a warning code. If there are no warnings |
13600 | * then 0 is returned. | 13577 | * then 0 is returned. |
13601 | */ | 13578 | */ |
13602 | static int __devinit AdvInitGetConfig(ADV_DVC_VAR *asc_dvc) | 13579 | static int __devinit |
13580 | AdvInitGetConfig(struct pci_dev *pdev, ADV_DVC_VAR *asc_dvc) | ||
13603 | { | 13581 | { |
13604 | unsigned short warn_code = 0; | 13582 | unsigned short warn_code = 0; |
13605 | AdvPortAddr iop_base = asc_dvc->iop_base; | 13583 | AdvPortAddr iop_base = asc_dvc->iop_base; |
13606 | struct pci_dev *pdev = to_pci_dev(asc_dvc->cfg->dev); | ||
13607 | u16 cmd; | 13584 | u16 cmd; |
13608 | int status; | 13585 | int status; |
13609 | 13586 | ||
@@ -17094,6 +17071,7 @@ advansys_board_found(int iop, struct device *dev, int bus_type) | |||
17094 | memset(boardp, 0, sizeof(asc_board_t)); | 17071 | memset(boardp, 0, sizeof(asc_board_t)); |
17095 | boardp->id = asc_board_count++; | 17072 | boardp->id = asc_board_count++; |
17096 | spin_lock_init(&boardp->lock); | 17073 | spin_lock_init(&boardp->lock); |
17074 | boardp->dev = dev; | ||
17097 | 17075 | ||
17098 | /* | 17076 | /* |
17099 | * Handle both narrow and wide boards. | 17077 | * Handle both narrow and wide boards. |
@@ -17180,7 +17158,6 @@ advansys_board_found(int iop, struct device *dev, int bus_type) | |||
17180 | #endif /* CONFIG_PROC_FS */ | 17158 | #endif /* CONFIG_PROC_FS */ |
17181 | 17159 | ||
17182 | if (ASC_NARROW_BOARD(boardp)) { | 17160 | if (ASC_NARROW_BOARD(boardp)) { |
17183 | asc_dvc_varp->cfg->dev = dev; | ||
17184 | /* | 17161 | /* |
17185 | * Set the board bus type and PCI IRQ before | 17162 | * Set the board bus type and PCI IRQ before |
17186 | * calling AscInitGetConfig(). | 17163 | * calling AscInitGetConfig(). |
@@ -17220,7 +17197,6 @@ advansys_board_found(int iop, struct device *dev, int bus_type) | |||
17220 | break; | 17197 | break; |
17221 | } | 17198 | } |
17222 | } else { | 17199 | } else { |
17223 | adv_dvc_varp->cfg->dev = dev; | ||
17224 | /* | 17200 | /* |
17225 | * For Wide boards set PCI information before calling | 17201 | * For Wide boards set PCI information before calling |
17226 | * AdvInitGetConfig(). | 17202 | * AdvInitGetConfig(). |
@@ -17289,7 +17265,9 @@ advansys_board_found(int iop, struct device *dev, int bus_type) | |||
17289 | } | 17265 | } |
17290 | } else { | 17266 | } else { |
17291 | ASC_DBG(2, "advansys_board_found: AdvInitGetConfig()\n"); | 17267 | ASC_DBG(2, "advansys_board_found: AdvInitGetConfig()\n"); |
17292 | if ((ret = AdvInitGetConfig(adv_dvc_varp)) != 0) { | 17268 | |
17269 | ret = AdvInitGetConfig(pdev, adv_dvc_varp); | ||
17270 | if (ret != 0) { | ||
17293 | ASC_PRINT2 | 17271 | ASC_PRINT2 |
17294 | ("AdvInitGetConfig: board %d: warning: 0x%x\n", | 17272 | ("AdvInitGetConfig: board %d: warning: 0x%x\n", |
17295 | boardp->id, ret); | 17273 | boardp->id, ret); |
@@ -17345,7 +17323,7 @@ advansys_board_found(int iop, struct device *dev, int bus_type) | |||
17345 | * Modify board configuration. | 17323 | * Modify board configuration. |
17346 | */ | 17324 | */ |
17347 | ASC_DBG(2, "advansys_board_found: AscInitSetConfig()\n"); | 17325 | ASC_DBG(2, "advansys_board_found: AscInitSetConfig()\n"); |
17348 | switch (ret = AscInitSetConfig(asc_dvc_varp)) { | 17326 | switch (ret = AscInitSetConfig(pdev, asc_dvc_varp)) { |
17349 | case 0: /* No error. */ | 17327 | case 0: /* No error. */ |
17350 | break; | 17328 | break; |
17351 | case ASC_WARN_IO_PORT_ROTATE: | 17329 | case ASC_WARN_IO_PORT_ROTATE: |