ata_piix 2.6.25 sata failure
Hi,
the 2.6.25 from debian fail to make work the second port. I got a "SATA link down (SStatus 61 Scontrol 30)" for ata2. ata1 got "SATA link up 3.0 Gbps (SStatus 13 SControl 30)" The 2.6.24 works [1]. But some previous kernel (IRRC 2.6.18) had the same problem, ie ata2 doesn't work.
My hardware is a intel ICH8[2]
Matthieu
[1]
scsi0 : ata_piix
scsi1 : ata_piix
ata1: SATA max UDMA/133 cmd 0x1f0 ctl 0x3f6 bmdma 0x11f0 irq 14
ata2: SATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0x11f8 irq 15 ata1.00: ATA-7: SAMSUNG HD080HJ/P, ZH100-43, max UDMA/100 ata1.00: 156301488 sectors, multi 16: LBA48
ata1.00: configured for UDMA/100
ata2.00: ATA-7: SAMSUNG HD160JJ/P, ZM100-46, max UDMA7 ata2.00: 312581808 sectors, multi 16: LBA48 NCQ (depth 0/32) ata2.01: ATAPI: HL-DT-STDVD+-RW GSA-H31L, 1.05, max UDMA/100 ata2.00: configured for UDMA/133
ata2.01: configured for UDMA/100
[2]
00:1f.2 IDE interface: Intel Corporation 82801H (ICH8 Family) 4 port SATA IDE Controller (rev 02) 00:1f.2 0101: 8086:2820 (rev 02)
Hi Tejun,
Quoted 5 lines · Matthieu CASTET
Hi,
the 2.6.25 from debian fail to make work the second port. I got a "SATA link down (SStatus 61 Scontrol 30)" for ata2. ata1 got "SATA link up 3.0 Gbps (SStatus 13 SControl 30)" The 2.6.24 works [1]. But some previous kernel (IRRC 2.6.18) had the same problem, ie ata2 doesn't work.
I saw you post a patch for macbook for correcting a bug with ata_ppiix. But it doesn't seem the same problem. I don't get 0 but others values.
May be a problem occurs when merging the master and slave status register ?
Any idea how to debug this.
For information this happen on a HP Compaq dc7700p, and there no way on the bios to change the controller to ahci mode
Thanks
Matthieu
Quoted 11 lines · Matthieu CASTET
Hi Tejun,
Quoted 5 lines · Matthieu CASTET
Hi,
the 2.6.25 from debian fail to make work the second port. I got a "SATA link down (SStatus 61 Scontrol 30)" for ata2. ata1 got "SATA link up 3.0 Gbps (SStatus 13 SControl 30)" The 2.6.24 works [1]. But some previous kernel (IRRC 2.6.18) had the same problem, ie ata2 doesn't work.
I saw you post a patch for macbook for correcting a bug with
ata_ppiix. But it doesn't seem the same problem. I don't get 0 but others values.
Quoted 6 lines
May be a problem occurs when merging the master and slave status register ?
Any idea how to debug this.
For information this happen on a HP Compaq dc7700p, and there no way on the bios to change the controller to ahci mode
Yeah, I wrote a patch for that yesterday and forgot to actually send it.
Can you please test the attached patch?
Signature · 1 line
tejun
From: Tejun Heo <[email protected]>
Subject: libata: force hardreset if link is in powersave mode
References: 381795
Inhibiting link PM mode doesn't bring the link back online if it's already in powersave mode. If SRST is used in these cases, libata EH thinks that the link is offline and fails detection. Force hardreset if link is in powersave mode.
--- drivers/ata/libata-core.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)
drivers/ata/libata-core.c +12 -0
@@ -3960,6 +3960,7 @@ int ata_std_prereset(struct ata_link *listruct ata_port *ap = link->ap;struct ata_eh_context *ehc = &link->eh_context;const unsigned long *timing =sata_ehc_deb_timing (ehc); +u32 sstatus;int rc;/* handle link resume */
@@ -3973,6 +3974,17 @@ int ata_std_prereset(struct ata_link *liif (ap->flags &ATA_FLAG_PMP ) ehc->i.action |=ATA_EH_HARDRESET ; +/* if link powersave is on, force hardreset */ +if (sata_scr_read (link,SCR_STATUS , &sstatus) ==0 ) { +u8 ipm = sstatus >>8 ; + +if (ipm ==2 || ipm ==6 ) { +ata_link_printk (link,KERN_INFO ,"link in powersave " +"mode (ipm=%d), forcing hardreset\n" , ipm); + ehc->i.action |=ATA_EH_HARDRESET ; + } + } +/* if we're about to do hardreset, nothing more to do */ if (ehc->i.action &ATA_EH_HARDRESET )return 0 ;
Hi,
Quoted 6 lines · Tejun Heo
Quoted 5 lines · Matthieu CASTET
Hi Tejun,
Matthieu CASTET wrote:
Quoted 7 lines
Quoted 3 lines
Any idea how to debug this.
For information this happen on a HP Compaq dc7700p, and there no way on the bios to change the controller to ahci mode
Yeah, I wrote a patch for that yesterday and forgot to actually send it.
Can you please test the attached patch?
thanks, it seems to work :
ata_piix 0000:00:1f.2: version 2.12
ACPI: PCI Interrupt 0000:00:1f.2[B] -> GSI 18 (level, low) -> IRQ 18 ata_piix 0000:00:1f.2: MAP [ P0 P2 P1 P3 ]
PCI: Setting latency timer of device 0000:00:1f.2 to 64 scsi0 : ata_piix
scsi1 : ata_piix
ata1: SATA max UDMA/133 cmd 0x1f0 ctl 0x3f6 bmdma 0x11f0 irq 14
ata2: SATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0x11f8 irq 15
ata1: link in powersave mode (ipm=2), forcing hardreset
ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300) ata1.00: ATA-7: SAMSUNG HD080HJ/P, ZH100-43, max UDMA/100 ata1.00: 156301488 sectors, multi 16: LBA48
ata1.00: configured for UDMA/100
ata2: link in powersave mode (ipm=2), forcing hardreset
ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300) ata2.00: ATA-7: SAMSUNG HD160JJ/P, ZM100-46, max UDMA7 ata2.00: 312581808 sectors, multi 16: LBA48 NCQ (depth 0/32) ata2.01: ATAPI: HL-DT-STDVD+-RW GSA-H31L, 1.05, max UDMA/100 ata2.00: configured for UDMA/133
ata2.01: configured for UDMA/100
Matthieu