[SCSI] qla2xxx: Collapse load RISC RAM implementations.

Simplify essentially duplicate load RISC RAM implementation
in qla2x00_load_ram_ext() and qla2x00_load_ram().

Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>

authored by andrew.vasquez@qlogic.com and committed by James Bottomley 590f98e5 f94097ed

+16 -102
+1 -4
drivers/scsi/qla2xxx/qla_gbl.h
··· 96 * Global Function Prototypes in qla_mbx.c source file. 97 */ 98 extern int 99 - qla2x00_load_ram(scsi_qla_host_t *, dma_addr_t, uint16_t, uint16_t); 100 - 101 - extern int 102 - qla2x00_load_ram_ext(scsi_qla_host_t *, dma_addr_t, uint32_t, uint32_t); 103 104 extern int 105 qla2x00_execute_fw(scsi_qla_host_t *, uint32_t);
··· 96 * Global Function Prototypes in qla_mbx.c source file. 97 */ 98 extern int 99 + qla2x00_load_ram(scsi_qla_host_t *, dma_addr_t, uint32_t, uint32_t); 100 101 extern int 102 qla2x00_execute_fw(scsi_qla_host_t *, uint32_t);
+4 -4
drivers/scsi/qla2xxx/qla_init.c
··· 3672 for (i = 0; i < dlen; i++) 3673 dcode[i] = swab32(dcode[i]); 3674 3675 - rval = qla2x00_load_ram_ext(ha, ha->request_dma, 3676 - risc_addr, dlen); 3677 if (rval) { 3678 DEBUG(printk("scsi(%ld):[ERROR] Failed to load " 3679 "segment %d of firmware\n", ha->host_no, ··· 3873 for (i = 0; i < dlen; i++) 3874 dcode[i] = swab32(fwcode[i]); 3875 3876 - rval = qla2x00_load_ram_ext(ha, ha->request_dma, 3877 - risc_addr, dlen); 3878 if (rval) { 3879 DEBUG(printk("scsi(%ld):[ERROR] Failed to load " 3880 "segment %d of firmware\n", ha->host_no,
··· 3672 for (i = 0; i < dlen; i++) 3673 dcode[i] = swab32(dcode[i]); 3674 3675 + rval = qla2x00_load_ram(ha, ha->request_dma, risc_addr, 3676 + dlen); 3677 if (rval) { 3678 DEBUG(printk("scsi(%ld):[ERROR] Failed to load " 3679 "segment %d of firmware\n", ha->host_no, ··· 3873 for (i = 0; i < dlen; i++) 3874 dcode[i] = swab32(fwcode[i]); 3875 3876 + rval = qla2x00_load_ram(ha, ha->request_dma, risc_addr, 3877 + dlen); 3878 if (rval) { 3879 DEBUG(printk("scsi(%ld):[ERROR] Failed to load " 3880 "segment %d of firmware\n", ha->host_no,
+11 -94
drivers/scsi/qla2xxx/qla_mbx.c
··· 327 return rval; 328 } 329 330 - /* 331 - * qla2x00_load_ram 332 - * Load adapter RAM using DMA. 333 - * 334 - * Input: 335 - * ha = adapter block pointer. 336 - * 337 - * Returns: 338 - * qla2x00 local function return status code. 339 - * 340 - * Context: 341 - * Kernel context. 342 - */ 343 int 344 - qla2x00_load_ram(scsi_qla_host_t *ha, dma_addr_t req_dma, uint16_t risc_addr, 345 - uint16_t risc_code_size) 346 - { 347 - int rval; 348 - mbx_cmd_t mc; 349 - mbx_cmd_t *mcp = &mc; 350 - uint32_t req_len; 351 - dma_addr_t nml_dma; 352 - uint32_t nml_len; 353 - uint32_t normalized; 354 - 355 - DEBUG11(printk("qla2x00_load_ram(%ld): entered.\n", 356 - ha->host_no);) 357 - 358 - req_len = risc_code_size; 359 - nml_dma = 0; 360 - nml_len = 0; 361 - 362 - normalized = qla2x00_normalize_dma_addr(&req_dma, &req_len, &nml_dma, 363 - &nml_len); 364 - 365 - /* Load first segment */ 366 - mcp->mb[0] = MBC_LOAD_RISC_RAM; 367 - mcp->mb[1] = risc_addr; 368 - mcp->mb[2] = MSW(req_dma); 369 - mcp->mb[3] = LSW(req_dma); 370 - mcp->mb[4] = (uint16_t)req_len; 371 - mcp->mb[6] = MSW(MSD(req_dma)); 372 - mcp->mb[7] = LSW(MSD(req_dma)); 373 - mcp->out_mb = MBX_7|MBX_6|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; 374 - mcp->in_mb = MBX_0; 375 - mcp->tov = 30; 376 - mcp->flags = 0; 377 - rval = qla2x00_mailbox_command(ha, mcp); 378 - 379 - /* Load second segment - if necessary */ 380 - if (normalized && (rval == QLA_SUCCESS)) { 381 - mcp->mb[0] = MBC_LOAD_RISC_RAM; 382 - mcp->mb[1] = risc_addr + (uint16_t)req_len; 383 - mcp->mb[2] = MSW(nml_dma); 384 - mcp->mb[3] = LSW(nml_dma); 385 - mcp->mb[4] = (uint16_t)nml_len; 386 - mcp->mb[6] = MSW(MSD(nml_dma)); 387 - mcp->mb[7] = LSW(MSD(nml_dma)); 388 - mcp->out_mb = MBX_7|MBX_6|MBX_4|MBX_3|MBX_2|MBX_1|MBX_0; 389 - mcp->in_mb = MBX_0; 390 - mcp->tov = 30; 391 - mcp->flags = 0; 392 - rval = qla2x00_mailbox_command(ha, mcp); 393 - } 394 - 395 - if (rval == QLA_SUCCESS) { 396 - /* Empty */ 397 - DEBUG11(printk("qla2x00_load_ram(%ld): done.\n", ha->host_no);) 398 - } else { 399 - /* Empty */ 400 - DEBUG2_3_11(printk("qla2x00_load_ram(%ld): failed. rval=%x " 401 - "mb[0]=%x.\n", ha->host_no, rval, mcp->mb[0]);) 402 - } 403 - return rval; 404 - } 405 - 406 - /* 407 - * qla2x00_load_ram_ext 408 - * Load adapter extended RAM using DMA. 409 - * 410 - * Input: 411 - * ha = adapter block pointer. 412 - * 413 - * Returns: 414 - * qla2x00 local function return status code. 415 - * 416 - * Context: 417 - * Kernel context. 418 - */ 419 - int 420 - qla2x00_load_ram_ext(scsi_qla_host_t *ha, dma_addr_t req_dma, 421 - uint32_t risc_addr, uint32_t risc_code_size) 422 { 423 int rval; 424 mbx_cmd_t mc; ··· 337 338 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 339 340 - mcp->mb[0] = MBC_LOAD_RISC_RAM_EXTENDED; 341 mcp->mb[1] = LSW(risc_addr); 342 mcp->mb[2] = MSW(req_dma); 343 mcp->mb[3] = LSW(req_dma); 344 mcp->mb[6] = MSW(MSD(req_dma)); 345 mcp->mb[7] = LSW(MSD(req_dma)); 346 - mcp->mb[8] = MSW(risc_addr); 347 - mcp->out_mb = MBX_8|MBX_7|MBX_6|MBX_3|MBX_2|MBX_1|MBX_0; 348 if (IS_QLA24XX(ha) || IS_QLA25XX(ha)) { 349 mcp->mb[4] = MSW(risc_code_size); 350 mcp->mb[5] = LSW(risc_code_size);
··· 327 return rval; 328 } 329 330 int 331 + qla2x00_load_ram(scsi_qla_host_t *ha, dma_addr_t req_dma, uint32_t risc_addr, 332 + uint32_t risc_code_size) 333 { 334 int rval; 335 mbx_cmd_t mc; ··· 426 427 DEBUG11(printk("%s(%ld): entered.\n", __func__, ha->host_no)); 428 429 + if (MSW(risc_addr) || IS_QLA24XX(ha) || IS_QLA25XX(ha)) { 430 + mcp->mb[0] = MBC_LOAD_RISC_RAM_EXTENDED; 431 + mcp->mb[8] = MSW(risc_addr); 432 + mcp->out_mb = MBX_8|MBX_0; 433 + } else { 434 + mcp->mb[0] = MBC_LOAD_RISC_RAM; 435 + mcp->out_mb = MBX_0; 436 + } 437 mcp->mb[1] = LSW(risc_addr); 438 mcp->mb[2] = MSW(req_dma); 439 mcp->mb[3] = LSW(req_dma); 440 mcp->mb[6] = MSW(MSD(req_dma)); 441 mcp->mb[7] = LSW(MSD(req_dma)); 442 + mcp->out_mb |= MBX_7|MBX_6|MBX_3|MBX_2|MBX_1; 443 if (IS_QLA24XX(ha) || IS_QLA25XX(ha)) { 444 mcp->mb[4] = MSW(risc_code_size); 445 mcp->mb[5] = LSW(risc_code_size);