.. | .. |
---|
2026 | 2026 | u16 dma_tx_err_type = le16_to_cpu(err_record->dma_tx_err_type); |
---|
2027 | 2027 | u16 sipc_rx_err_type = le16_to_cpu(err_record->sipc_rx_err_type); |
---|
2028 | 2028 | u32 dma_rx_err_type = le32_to_cpu(err_record->dma_rx_err_type); |
---|
| 2029 | + struct hisi_sas_complete_v2_hdr *complete_queue = |
---|
| 2030 | + hisi_hba->complete_hdr[slot->cmplt_queue]; |
---|
| 2031 | + struct hisi_sas_complete_v2_hdr *complete_hdr = |
---|
| 2032 | + &complete_queue[slot->cmplt_queue_slot]; |
---|
| 2033 | + u32 dw0 = le32_to_cpu(complete_hdr->dw0); |
---|
2029 | 2034 | int error = -1; |
---|
2030 | 2035 | |
---|
2031 | 2036 | if (err_phase == 1) { |
---|
.. | .. |
---|
2168 | 2173 | } |
---|
2169 | 2174 | break; |
---|
2170 | 2175 | case SAS_PROTOCOL_SMP: |
---|
2171 | | - ts->stat = SAM_STAT_CHECK_CONDITION; |
---|
| 2176 | + ts->stat = SAS_SAM_STAT_CHECK_CONDITION; |
---|
2172 | 2177 | break; |
---|
2173 | 2178 | |
---|
2174 | 2179 | case SAS_PROTOCOL_SATA: |
---|
.. | .. |
---|
2310 | 2315 | break; |
---|
2311 | 2316 | } |
---|
2312 | 2317 | } |
---|
2313 | | - hisi_sas_sata_done(task, slot); |
---|
| 2318 | + if (dw0 & CMPLT_HDR_RSPNS_XFRD_MSK) |
---|
| 2319 | + hisi_sas_sata_done(task, slot); |
---|
2314 | 2320 | } |
---|
2315 | 2321 | break; |
---|
2316 | 2322 | default: |
---|
.. | .. |
---|
2427 | 2433 | struct scatterlist *sg_resp = &task->smp_task.smp_resp; |
---|
2428 | 2434 | void *to = page_address(sg_page(sg_resp)); |
---|
2429 | 2435 | |
---|
2430 | | - ts->stat = SAM_STAT_GOOD; |
---|
| 2436 | + ts->stat = SAS_SAM_STAT_GOOD; |
---|
2431 | 2437 | |
---|
2432 | 2438 | dma_unmap_sg(dev, &task->smp_task.smp_req, 1, |
---|
2433 | 2439 | DMA_TO_DEVICE); |
---|
.. | .. |
---|
2441 | 2447 | case SAS_PROTOCOL_STP: |
---|
2442 | 2448 | case SAS_PROTOCOL_SATA | SAS_PROTOCOL_STP: |
---|
2443 | 2449 | { |
---|
2444 | | - ts->stat = SAM_STAT_GOOD; |
---|
2445 | | - hisi_sas_sata_done(task, slot); |
---|
| 2450 | + ts->stat = SAS_SAM_STAT_GOOD; |
---|
| 2451 | + if (dw0 & CMPLT_HDR_RSPNS_XFRD_MSK) |
---|
| 2452 | + hisi_sas_sata_done(task, slot); |
---|
2446 | 2453 | break; |
---|
2447 | 2454 | } |
---|
2448 | 2455 | default: |
---|
2449 | | - ts->stat = SAM_STAT_CHECK_CONDITION; |
---|
| 2456 | + ts->stat = SAS_SAM_STAT_CHECK_CONDITION; |
---|
2450 | 2457 | break; |
---|
2451 | 2458 | } |
---|
2452 | 2459 | |
---|