diff options
Diffstat (limited to 'drivers/ide/pci/siimage.c')
-rw-r--r-- | drivers/ide/pci/siimage.c | 45 |
1 files changed, 1 insertions, 44 deletions
diff --git a/drivers/ide/pci/siimage.c b/drivers/ide/pci/siimage.c index 6d99441c605b..5709c252543b 100644 --- a/drivers/ide/pci/siimage.c +++ b/drivers/ide/pci/siimage.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * linux/drivers/ide/pci/siimage.c Version 1.18 Oct 18 2007 | 2 | * linux/drivers/ide/pci/siimage.c Version 1.19 Nov 16 2007 |
3 | * | 3 | * |
4 | * Copyright (C) 2001-2002 Andre Hedrick <andre@linux-ide.org> | 4 | * Copyright (C) 2001-2002 Andre Hedrick <andre@linux-ide.org> |
5 | * Copyright (C) 2003 Red Hat <alan@redhat.com> | 5 | * Copyright (C) 2003 Red Hat <alan@redhat.com> |
@@ -460,48 +460,6 @@ static void sil_sata_pre_reset(ide_drive_t *drive) | |||
460 | } | 460 | } |
461 | 461 | ||
462 | /** | 462 | /** |
463 | * siimage_reset - reset a device on an siimage controller | ||
464 | * @drive: drive to reset | ||
465 | * | ||
466 | * Perform a controller level reset fo the device. For | ||
467 | * SATA we must also check the PHY. | ||
468 | */ | ||
469 | |||
470 | static void siimage_reset (ide_drive_t *drive) | ||
471 | { | ||
472 | ide_hwif_t *hwif = HWIF(drive); | ||
473 | u8 reset = 0; | ||
474 | unsigned long addr = siimage_selreg(hwif, 0); | ||
475 | |||
476 | if (hwif->mmio) { | ||
477 | reset = hwif->INB(addr); | ||
478 | hwif->OUTB((reset|0x03), addr); | ||
479 | /* FIXME:posting */ | ||
480 | udelay(25); | ||
481 | hwif->OUTB(reset, addr); | ||
482 | (void) hwif->INB(addr); | ||
483 | } else { | ||
484 | pci_read_config_byte(hwif->pci_dev, addr, &reset); | ||
485 | pci_write_config_byte(hwif->pci_dev, addr, reset|0x03); | ||
486 | udelay(25); | ||
487 | pci_write_config_byte(hwif->pci_dev, addr, reset); | ||
488 | pci_read_config_byte(hwif->pci_dev, addr, &reset); | ||
489 | } | ||
490 | |||
491 | if (SATA_STATUS_REG) { | ||
492 | /* SATA_STATUS_REG is valid only when in MMIO mode */ | ||
493 | u32 sata_stat = readl((void __iomem *)SATA_STATUS_REG); | ||
494 | printk(KERN_WARNING "%s: reset phy, status=0x%08x, %s\n", | ||
495 | hwif->name, sata_stat, __FUNCTION__); | ||
496 | if (!(sata_stat)) { | ||
497 | printk(KERN_WARNING "%s: reset phy dead, status=0x%08x\n", | ||
498 | hwif->name, sata_stat); | ||
499 | drive->failures++; | ||
500 | } | ||
501 | } | ||
502 | } | ||
503 | |||
504 | /** | ||
505 | * proc_reports_siimage - add siimage controller to proc | 463 | * proc_reports_siimage - add siimage controller to proc |
506 | * @dev: PCI device | 464 | * @dev: PCI device |
507 | * @clocking: SCSC value | 465 | * @clocking: SCSC value |
@@ -857,7 +815,6 @@ static void __devinit init_hwif_siimage(ide_hwif_t *hwif) | |||
857 | { | 815 | { |
858 | u8 sata = is_sata(hwif); | 816 | u8 sata = is_sata(hwif); |
859 | 817 | ||
860 | hwif->resetproc = &siimage_reset; | ||
861 | hwif->set_pio_mode = &sil_set_pio_mode; | 818 | hwif->set_pio_mode = &sil_set_pio_mode; |
862 | hwif->set_dma_mode = &sil_set_dma_mode; | 819 | hwif->set_dma_mode = &sil_set_dma_mode; |
863 | 820 | ||