hpsa.c (76c46e4970f7ee6d8c54220a767e93d67b74cd33) hpsa.c (f7c391015ab64c835a9bb403626b38a51d6432cc)
1/*
2 * Disk Array driver for HP Smart Array SAS controllers
3 * Copyright 2000, 2009 Hewlett-Packard Development Company, L.P.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *

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

3379 (readb(&h->cfgtable->Signature[2]) != 'S') ||
3380 (readb(&h->cfgtable->Signature[3]) != 'S')) {
3381 dev_warn(&h->pdev->dev, "not a valid CISS config table\n");
3382 return false;
3383 }
3384 return true;
3385}
3386
1/*
2 * Disk Array driver for HP Smart Array SAS controllers
3 * Copyright 2000, 2009 Hewlett-Packard Development Company, L.P.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; version 2 of the License.
8 *

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

3379 (readb(&h->cfgtable->Signature[2]) != 'S') ||
3380 (readb(&h->cfgtable->Signature[3]) != 'S')) {
3381 dev_warn(&h->pdev->dev, "not a valid CISS config table\n");
3382 return false;
3383 }
3384 return true;
3385}
3386
3387/* Need to enable prefetch in the SCSI core for 6400 in x86 */
3388static inline void hpsa_enable_scsi_prefetch(struct ctlr_info *h)
3389{
3390#ifdef CONFIG_X86
3391 u32 prefetch;
3392
3393 prefetch = readl(&(h->cfgtable->SCSI_Prefetch));
3394 prefetch |= 0x100;
3395 writel(prefetch, &(h->cfgtable->SCSI_Prefetch));
3396#endif
3397}
3398
3387static int __devinit hpsa_pci_init(struct ctlr_info *h)
3388{
3389 int i, prod_index, err;
3390
3391 prod_index = hpsa_lookup_board_id(h->pdev, &h->board_id);
3392 if (prod_index < 0)
3393 return -ENODEV;
3394 h->product_name = products[prod_index].product_name;

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

3426 if (err)
3427 goto err_out_free_res;
3428 hpsa_find_board_params(h);
3429
3430 if (!hpsa_CISS_signature_present(h)) {
3431 err = -ENODEV;
3432 goto err_out_free_res;
3433 }
3399static int __devinit hpsa_pci_init(struct ctlr_info *h)
3400{
3401 int i, prod_index, err;
3402
3403 prod_index = hpsa_lookup_board_id(h->pdev, &h->board_id);
3404 if (prod_index < 0)
3405 return -ENODEV;
3406 h->product_name = products[prod_index].product_name;

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

3438 if (err)
3439 goto err_out_free_res;
3440 hpsa_find_board_params(h);
3441
3442 if (!hpsa_CISS_signature_present(h)) {
3443 err = -ENODEV;
3444 goto err_out_free_res;
3445 }
3434#ifdef CONFIG_X86
3435 {
3436 /* Need to enable prefetch in the SCSI core for 6400 in x86 */
3437 u32 prefetch;
3438 prefetch = readl(&(h->cfgtable->SCSI_Prefetch));
3439 prefetch |= 0x100;
3440 writel(prefetch, &(h->cfgtable->SCSI_Prefetch));
3441 }
3442#endif
3446 hpsa_enable_scsi_prefetch(h);
3443
3444 /* Disabling DMA prefetch for the P600
3445 * An ASIC bug may result in a prefetch beyond
3446 * physical memory.
3447 */
3448 if (h->board_id == 0x3225103C) {
3449 u32 dma_prefetch;
3450 dma_prefetch = readl(h->vaddr + I2O_DMA1_CFG);

--- 440 unchanged lines hidden ---
3447
3448 /* Disabling DMA prefetch for the P600
3449 * An ASIC bug may result in a prefetch beyond
3450 * physical memory.
3451 */
3452 if (h->board_id == 0x3225103C) {
3453 u32 dma_prefetch;
3454 dma_prefetch = readl(h->vaddr + I2O_DMA1_CFG);

--- 440 unchanged lines hidden ---