Disk errors reported on boot - kernel 2.6.18

2007-06-17 Thread Miguel Medalha

Hello

I received a message from Andrey Melnikoff. I tried to answer him but the 
remote host keeps rejecting the message because he is "backlisted".


<[EMAIL PROTECTED]>:
217.13.212.5 does not like recipient.
Remote host said: 553 5.3.0 <[EMAIL PROTECTED]>... Too many spam messages. 
Blacklisted. 2004/03/17

Giving up on 217.13.212.5.

I am sending this for his information.

Thank you! 


-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [2/2] 2.6.22-rc5: known regressions

2007-06-17 Thread Michal Piotrowski

Hi all,

Here is a list of some known regressions in 2.6.22-rc5.

Feel free to add new regressions/remove fixed etc.
http://kernelnewbies.org/known_regressions



SATA/PATA

Subject: libata IT821X driver still fails! Hard-freezes system
References : http://lkml.org/lkml/2007/6/14/82
Submitter  : Rodney Gordon II <[EMAIL PROTECTED]>
Status : unknown



Sparc64

Subject: random invalid instruction occourances on sparc32 (sun4c)
References : http://lkml.org/lkml/2007/6/17/111
Submitter  : Mark Fortescue <[EMAIL PROTECTED]>
Status : problem is being debugged

Subject: 2.6.22-rc broke X on Ultra5
References : http://lkml.org/lkml/2007/5/22/78
Submitter  : Mikael Pettersson <[EMAIL PROTECTED]>
Handled-By : David Miller <[EMAIL PROTECTED]>
Status : problem is being debugged



x86-64

Subject: x86-64 2.6.22-rc2 random segfaults
References : http://lkml.org/lkml/2007/5/24/275
Submitter  : Ioan Ionita <[EMAIL PROTECTED]>
Status : Unknown



Regards,
Michal

--
LOG
http://www.stardust.webpages.pl/log/
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/5] ide: add short cables support

2007-06-17 Thread Sergei Shtylyov

Hello.

Bartlomiej Zolnierkiewicz wrote:


This patch allows users to override both host and device side cable detection
with "ideX=ata66" kernel parameter.  Thanks to this it should be now possible
to use UDMA > 2 modes on systems (laptops mainly) which use short 40-pin cable
instead of 80-pin one.



Next patches add automatic detection of some systems using short cables.



Changes:



* Rename hwif->udma_four to hwif->cbl and make it u8.



   Not sure if already short word "cable" was worth further shortening. :-)



The name/usage is the same as in libata.



When we add ->cable_detect method it will make grepping easier. 8)


   Hm... :-)


Index: b/drivers/ide/pci/alim15x3.c
===
--- a/drivers/ide/pci/alim15x3.c
+++ b/drivers/ide/pci/alim15x3.c
@@ -594,7 +594,7 @@ out:
 *  FIXME: frobs bits that are not defined on newer ALi devicea
 */

-static unsigned int __devinit ata66_ali15x3 (ide_hwif_t *hwif)
+static u8 __devinit ata66_ali15x3(ide_hwif_t *hwif)
{
struct pci_dev *dev = hwif->pci_dev;
unsigned int ata66  = 0;
@@ -657,7 +657,7 @@ static unsigned int __devinit ata66_ali1

local_irq_restore(flags);

-   return(ata66);
+   return ata66 ? ATA_CBL_PATA80 : ATA_CBL_PATA40;



   Ahem... I'd think it was about the right time to fix the abomination which
those ata66 and cable_80_pin[2] are, something like this:



static unsigned int __devinit ata66_ali15x3 (ide_hwif_t *hwif)
{
struct pci_dev *dev = hwif->pci_dev;
unsigned int cbl= ATA_CBL_PATA40;
unsigned long flags;
u8 tmpbyte, mask= hwif->channel ? 0x02 : 0x01;

local_irq_save(flags); /* Not sure if it's necessary... */

if (m5229_revision >= 0xC2) {
/*
 * Ultra66 cable detection (from Host View)
 * m5229, 0x4a, bit0: primary, bit1: secondary
 * 0: 80 pin, 1: 40 pin
 */
pci_read_config_byte(dev, 0x4a, &tmpbyte);
/*
 * Allow ata66 if cable of current channel has 80 pins
 */
cbl = (tmpbyte & mask) ? ATA_CBL_PATA40 : ATA_CBL_PATA80;
} else {



[Following code frankly speaking has no business being in this function]



patch #3/5 already takes care of cable_80_pin[2] part,


   I really should have looked thru all the series but lacked the time. :-<


ata66 part was left as an exercise for the reader ;-)


   Hm, now that I've looked at that patch I saw both these things killed.
What, you don't know your own code? ;-)


local_irq_restore(flags); /* Not sure if it's necessary... */



return cbl;



}



/**
Index: b/drivers/ide/pci/serverworks.c
===
--- a/drivers/ide/pci/serverworks.c
+++ b/drivers/ide/pci/serverworks.c
@@ -329,9 +329,9 @@ static unsigned int __devinit init_chips
return dev->irq;
}

-static unsigned int __devinit ata66_svwks_svwks (ide_hwif_t *hwif)
+static u8 __devinit ata66_svwks_svwks(ide_hwif_t *hwif)
{
-   return 1;
+   return ATA_CBL_PATA80;
}



   Hm, worth folding into ata66_svwks()...



Yes and no...



Alan did a very nice rewrite of cable detection code for pata_serverworks.c
driver.  We may be better off just back-porting it (patches are welcomed).


   Thanks, no. I still have much to do. :-)


Index: b/drivers/ide/pci/sis5513.c
===
--- a/drivers/ide/pci/sis5513.c
+++ b/drivers/ide/pci/sis5513.c
@@ -796,7 +796,7 @@ static unsigned int __devinit init_chips
return 0;
}

-static unsigned int __devinit ata66_sis5513 (ide_hwif_t *hwif)
+static u8 __devinit ata66_sis5513(ide_hwif_t *hwif)
{
u8 ata66 = 0;

@@ -811,7 +811,8 @@ static unsigned int __devinit ata66_sis5
pci_read_config_byte(hwif->pci_dev, 0x48, ®48h);
ata66 = (reg48h & mask) ? 0 : 1;
}
-return ata66;
+
+   return ata66 ? ATA_CBL_PATA80 : ATA_CBL_PATA40;
}


   That doesn't look good as well. I think we should part with 'ata66' 
variable here completely...



Could be fixed in the follow-up patch as we should also split ata66_sis5513()
into two separate functions (one for chipset_family >= ATA_133 and one for
chipset_family >= ATA_66).


   That's only worth doing if you actually intend to introduce cable_detect() 
method...



Thanks,
Bart


MBR, Sergei

-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Add new ICH9M pci id (8086:2850) to ata_piix id list

2007-06-17 Thread Michal Piotrowski

Hi,

Maurizio Monge pisze:

To make ata_piix recognize my ich9m chip i had to apply the
modification that follows.

Best regards
Maurizio Monge


diff -Nurb old/drivers/ata/ata_piix.c new/drivers/ata/ata_piix.c
--- old/drivers/ata/ata_piix.c  2007-06-17 23:06:12.0 +0200
+++ new/drivers/ata/ata_piix.c  2007-06-17 23:15:57.0 +0200
@@ -243,6 +243,8 @@
   { 0x8086, 0x292d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_ahci },
   /* SATA Controller IDE (ICH9M) */
   { 0x8086, 0x292e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_ahci },
+   /* Mobile SATA Controller IDE (ICH9M) */
+   { 0x8086, 0x2850, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_ahci },

 
http://pci-ids.ucw.cz/iii/?i=80862850

Is this really a SATA controller?
((ICH8M/ICH8M-E) IDE Controller)

Regards,
Michal

--
LOG
http://www.stardust.webpages.pl/log/
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


sata_promise: preliminary hotplug support

2007-06-17 Thread Mikael Pettersson
This crude but simple patch enables hotplugging of SATA
disks in the sata_promise driver. Tested successfully on
SATAII150 TX2plus, SATA300 TX2plus, and SATA300 TX4.
The TX4 is significant because of the port_nr-to-ata_nr
remapping that occurs for those chips, which affects
the hotplug status change check for a given port.

While this patch works for me, I consider it preliminary
because it duplicates code and open-codes stuff, so some
cleanups are certainly needed. Also I haven't been able
to test it on first-generation chips yet.

The hotplug checks are high up in the interrupt handling
path, not deep down in error_intr as in ahci/sata_sil24.
That's because the chip doesn't signal hotplug status changes
in the per-port status register: instead a global register
contains hotplug control and status flags for all ports.
I considered following the ahci/sata_sil24 structure, but
that would have required non-trivial changes to the interrupt
handling path, so I chose to keep the hotplug changes simple
and unobtrusive.

/Mikael

(not a formal patch submission, hence no signed-off line)

--- linux-2.6.22-rc5/drivers/ata/sata_promise.c.~1~ 2007-06-17 
22:03:46.0 +0200
+++ linux-2.6.22-rc5/drivers/ata/sata_promise.c 2007-06-17 23:43:51.0 
+0200
@@ -709,6 +709,9 @@
unsigned int i, tmp;
unsigned int handled = 0;
void __iomem *mmio_base;
+   unsigned int hotplug_offset;
+   u32 hotplug_status;
+   int is_sataii_tx4;
 
VPRINTK("ENTER\n");
 
@@ -719,10 +722,22 @@
 
mmio_base = host->iomap[PDC_MMIO_BAR];
 
+   /* read and clear hotplug flags for all ports */
+   if (host->ports[0]->flags & PDC_FLAG_GEN_II)
+   hotplug_offset = PDC2_SATA_PLUG_CSR;
+   else
+   hotplug_offset = PDC_SATA_PLUG_CSR;
+   hotplug_status = readl(mmio_base + hotplug_offset);
+   if (hotplug_status & 0xff) {
+   writel(hotplug_status | 0xff, mmio_base + hotplug_offset);
+   printk("%s: hotplug_status %#x\n", __FUNCTION__, 
hotplug_status);
+   }
+   hotplug_status &= 0xff; /* clear uninteresting bits */
+
/* reading should also clear interrupts */
mask = readl(mmio_base + PDC_INT_SEQMASK);
 
-   if (mask == 0x) {
+   if (mask == 0x && hotplug_status == 0) {
VPRINTK("QUICK EXIT 2\n");
return IRQ_NONE;
}
@@ -730,16 +745,39 @@
spin_lock(&host->lock);
 
mask &= 0x; /* only 16 tags possible */
-   if (!mask) {
+   if (!mask && hotplug_status == 0) {
VPRINTK("QUICK EXIT 3\n");
goto done_irq;
}
 
writel(mask, mmio_base + PDC_INT_SEQMASK);
 
+   /* XXX: ugly ugly ugly */
+   is_sataii_tx4 = 0;
+   if ((host->ports[0]->flags & (PDC_FLAG_GEN_II|PDC_FLAG_4_PORTS)) ==
+   (PDC_FLAG_GEN_II|PDC_FLAG_4_PORTS))
+   is_sataii_tx4 = 1;
+
for (i = 0; i < host->n_ports; i++) {
VPRINTK("port %u\n", i);
ap = host->ports[i];
+   {
+   static const unsigned char sataii_tx4_port_remap[4] = { 
3, 1, 0, 2};
+   int ata_nr = i;
+
+   if (is_sataii_tx4)
+   ata_nr = sataii_tx4_port_remap[i];
+
+   if ((hotplug_status & (0x11 << ata_nr)) && ap &&
+   !(ap->flags & ATA_FLAG_DISABLED)) {
+   struct ata_eh_info *ehi = &ap->eh_info;
+   ata_ehi_clear_desc(ehi);
+   ata_ehi_hotplugged(ehi);
+   ata_ehi_push_desc(ehi, "hotplug_status %#x", 
hotplug_status);
+   ata_port_freeze(ap);
+   continue;
+   }
+   }
tmp = mask & (1 << (i + 1));
if (tmp && ap &&
!(ap->flags & ATA_FLAG_DISABLED)) {
@@ -897,9 +935,9 @@
tmp = readl(mmio + hotplug_offset);
writel(tmp | 0xff, mmio + hotplug_offset);
 
-   /* mask plug/unplug ints */
+   /* unmask plug/unplug ints */
tmp = readl(mmio + hotplug_offset);
-   writel(tmp | 0xff, mmio + hotplug_offset);
+   writel(tmp & ~0xff, mmio + hotplug_offset);
 
/* don't initialise TBG or SLEW on 2nd generation chips */
if (is_gen2)
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Fwd: [PATCH] [libata] Add irq_flags to struct pata_platform_info

2007-06-17 Thread Sonic Zhang

Any comments for this patch?

Thank you.

Sonic Zhang

-- Forwarded message --
From: Sonic Zhang <[EMAIL PROTECTED]>
Date: Jun 15, 2007 5:45 PM
Subject: [PATCH] [libata] Add irq_flags to struct pata_platform_info
To: Linux IDE 
Cc: Jeff Garzik <[EMAIL PROTECTED]>


On some embedded platforms, such as blackfin, the gpio interrupt for
IDE interface is designed to be triggered with high voltage. The gpio
port should be configured properly by set_irq_type() when register
the irq. This patch enable the generic pata platform driver to
accept platform irq flags data.

Signed-off-by: Sonic Zhang <[EMAIL PROTECTED]>
---
drivers/ata/pata_platform.c   |6 --
include/linux/pata_platform.h |5 +
2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/ata/pata_platform.c b/drivers/ata/pata_platform.c
index cbb7866..79f841b 100644
--- a/drivers/ata/pata_platform.c
+++ b/drivers/ata/pata_platform.c
@@ -139,6 +139,7 @@ static int __devinit pata_platform_probe(struct
platform_device *pdev)
   struct resource *io_res, *ctl_res;
   struct ata_host *host;
   struct ata_port *ap;
+   struct pata_platform_info *pp_info;
   unsigned int mmio;

   /*
@@ -208,11 +209,12 @@ static int __devinit pata_platform_probe(struct
platform_device *pdev)

   ap->ioaddr.altstatus_addr = ap->ioaddr.ctl_addr;

-   pata_platform_setup_port(&ap->ioaddr, pdev->dev.platform_data);
+   pp_info = (struct pata_platform_info *)(pdev->dev.platform_data);
+   pata_platform_setup_port(&ap->ioaddr, pp_info);

   /* activate */
   return ata_host_activate(host, platform_get_irq(pdev, 0), ata_interrupt,
-0, &pata_platform_sht);
+pp_info->irq_flags, &pata_platform_sht);
}

/**
diff --git a/include/linux/pata_platform.h b/include/linux/pata_platform.h
index 2d5fd64..5799e8d 100644
--- a/include/linux/pata_platform.h
+++ b/include/linux/pata_platform.h
@@ -8,6 +8,11 @@ struct pata_platform_info {
* spacing used by ata_std_ports().
*/
   unsigned int ioport_shift;
+   /*
+* Indicate platform specific irq types and initial
+* IRQ flags when call request_irq()
+*/
+   unsigned int irq_flags;
};

#endif /* __LINUX_PATA_PLATFORM_H */
--
1.5.1.3


-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: libata interface fatal error

2007-06-17 Thread Tejun Heo
Hello,

Florian Effenberger wrote:
> What power supply would you recommend for this type of disks? I think we
> got a 450W Enermax, IIRC.

Most power supplies should be able to do 4 disks without any problem
unless it's broken.

> What do you mean by "merged speed down fix"? Is your fix for the speed
> down logic implemented in the current kernel, so I don't have to patch
> anymore (except when I want to force 1.5Gbps right from the beginning)?

Yeap, kernel will automatically downgrade to 1.5Gbps after several failures.

-- 
tejun
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: libata interface fatal error

2007-06-17 Thread Tejun Heo
Hello,

Florian Effenberger wrote:
> we tested out two 600W Fortron PSUs, also tried a BIOS update. Didn't
> work out.

I see.

> We also tried the jumper on the disks labelled SSP (Spread Spectrum
> Clocking), didn't work out out as well.
> 
> What seemed to help at least a little bit is to use the 12V connector on
> the board, that is normally dedicated for graphic cards.

Hm

> The best test to reproduce the problem, according to a colleague also
> working on the machine, is a cat /dev/zero > zero.bin
> 
> Do you still think it is a PSU or hardware problem? Do you need more
> details/logs?

The controller being ich8, I'm pretty sure it isn't a driver problem.
Do the errors occur on all four drives?  Also, if things work after
speed is downgraded to 1.5Gbps, it doesn't really matter.  There's no
noticeable performance difference for single disk anyway.

-- 
tejun
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Add new ICH9M pci id (8086:2850) to ata_piix id list

2007-06-17 Thread Maurizio Monge

Well, you are probably right, it is probably just an ide controller, i
have an acer laptop (tm5720) and to make work the hd the driver ahci
was required, and my patch made work the dvd-rw too.
If so, maybe some other delegate is better for this controller than
"ich8_sata_ahci", but please consider that i am very ignorant about
this driver and i simply posted this patch beacuse it made work my
device.
If there is any test that i can do to sort out this just let me know.

On 6/17/07, Michal Piotrowski <[EMAIL PROTECTED]> wrote:

Hi,

Maurizio Monge pisze:
> To make ata_piix recognize my ich9m chip i had to apply the
> modification that follows.
>
> Best regards
> Maurizio Monge
>
>
> diff -Nurb old/drivers/ata/ata_piix.c new/drivers/ata/ata_piix.c
> --- old/drivers/ata/ata_piix.c  2007-06-17 23:06:12.0 +0200
> +++ new/drivers/ata/ata_piix.c  2007-06-17 23:15:57.0 +0200
> @@ -243,6 +243,8 @@
>{ 0x8086, 0x292d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_ahci },
>/* SATA Controller IDE (ICH9M) */
>{ 0x8086, 0x292e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_ahci },
> +   /* Mobile SATA Controller IDE (ICH9M) */
> +   { 0x8086, 0x2850, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_ahci },
  
http://pci-ids.ucw.cz/iii/?i=80862850

Is this really a SATA controller?
((ICH8M/ICH8M-E) IDE Controller)

Regards,
Michal

--
LOG
http://www.stardust.webpages.pl/log/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/




--
Ciao
Maurizio
http://stregatto.wordpress.com

"Well we all shine on
Like the moon and the stars and the sun" (John Lennon)
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


pata_via.c 80w cable detection problem

2007-06-17 Thread Petr Janecek
Hello,
  I tried libata driver in 2.6.22-rc5 on VIA KT133A mb.
It doesn't detect the 80 wire cable (on the first port):
(via82cxxx does)

scsi0 : pata_via
scsi1 : pata_via
ata1: PATA max UDMA/100 cmd 0x000101f0 ctl 0x000103f6 bmdma 0x0001d000 irq 14
ata2: PATA max UDMA/100 cmd 0x00010170 ctl 0x00010376 bmdma 0x0001d008 irq 15
ata1.00: ata_hpa_resize 1: sectors = 156355584, hpa_sectors = 156355584
ata1.00: ATA-5: MAXTOR 6L080J4, A93.0500, max UDMA/133
ata1.00: 156355584 sectors, multi 16: LBA
ata1.00: limited to UDMA/33 due to 40-wire cable
ata1.00: ata_hpa_resize 1: sectors = 156355584, hpa_sectors = 156355584
ata1.00: configured for UDMA/33
ata2.00: ATAPI: HL-DT-ST DVDRAM GSA-H10N, JL10, max UDMA/33
ata2.00: configured for UDMA/33
scsi 0:0:0:0: Direct-Access ATA  MAXTOR 6L080J4   A93. PQ: 0 ANSI: 5
sd 0:0:0:0: [sda] 156355584 512-byte hardware sectors (80054 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support 
DPO or FUA
sd 0:0:0:0: [sda] 156355584 512-byte hardware sectors (80054 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support 
DPO or FUA
 sda: sda1 sda3 sda4 < sda5 sda6 sda7 >
sd 0:0:0:0: [sda] Attached SCSI disk
scsi 1:0:0:0: CD-ROMHL-DT-ST DVDRAM GSA-H10N  JL10 PQ: 0 ANSI: 5


lspci -vnnxxx -s 00:07.1
00:07.1 IDE interface [0101]: VIA Technologies, Inc. 
VT82C586A/B/VT82C686/A/B/VT823x/A/C
[1106:0571] PIPC Bus Master IDE (rev 06) (prog-if 8a [Master SecP PriP])
Flags: bus master, medium devsel, latency 32
[virtual] Memory at 01f0 (32-bit, non-prefetchable) [size=8]
[virtual] Memory at 03f0 (type 3, non-prefetchable) [size=1]
[virtual] Memory at 0170 (32-bit, non-prefetchable) [size=8]
[virtual] Memory at 0370 (type 3, non-prefetchable) [size=1]
I/O ports at d000 [size=16]
Capabilities: [c0] Power Management version 2
00: 06 11 71 05 07 00 90 02 06 8a 01 01 00 20 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 01 d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30: 00 00 00 00 c0 00 00 00 00 00 00 00 ff 00 00 00
40: 0b 02 09 3a 1c 10 c0 00 a8 20 a8 20 77 00 20 20
50: 03 e4 03 e4 14 00 00 00 a8 a8 a8 a8 00 00 00 00
60: 00 02 00 00 00 00 00 00 00 02 00 00 00 00 00 00
70: 02 01 00 00 00 00 00 00 02 01 00 00 00 00 00 00
80: 00 00 d2 37 00 00 00 00 00 20 d2 37 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 01 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 06 00 71 05 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


In via_cable_detect(), l. 178 pci_read_config_dword(pdev, 0x50, &ata66);
reads 0xe0030303
When real 40 wire cable is used instead, it reads 0xe4030303.



Petr Janecek
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH/RFC 5/9] libata: use freeze()/thaw() for polling

2007-06-17 Thread Tejun Heo
Hello,

Albert Lee wrote:
> Patch 5/9:
> 
>   This patch changes polling codes to use freeze()/thaw() for irq off/on.
> ata_qc_set_polling() is also removed since now unused.
> 
> The reason for freeze()/thaw(): some ATAPI devices raises INTRQ even if nIEN 
> = 1.
> Using the host adapter irq mask mechanism, if available, is more reliable 
> than using the device nIEN bit.
> 
> Considerations:
>  1. the semantic of freeze()/thaw() maybe more than irq off/on?

It usually is irq off/on.

>  2. HSM, the new user of freeze()/thaw(), will call freeze()/thaw() more 
> frequently than EH.
> Can current implemention of freeze()/thaw() handle it?

Yeah, I don't see any reason why it can't be used that way but please
audit each freeze/thaw implementation.

> @@ -5442,7 +5442,7 @@ unsigned int ata_qc_issue_prot(struct at
>  
>   case ATA_PROT_PIO:
>   if (qc->tf.flags & ATA_TFLAG_POLLING)
> - ata_qc_set_polling(qc);
> + ap->ops->freeze(ap);
>  
>   ata_tf_to_host(ap, &qc->tf);

Wouldn't ata_tf_load() change the ctl value to qc->tf.ctl when issuing
the command?

I'm not really sure about this change because most controller which have
dedicated IRQ mask bit also have dedicated IRQ pending bit (and probably
IRQ clear bit too).  With those bits, IRQ during polling is not a big
problem (sata_sil for example).  So, the change doesn't really help the
controllers which actually have problems dealing with devices which
raise IRQ regardless of ATA_NIEN.

I don't see any easy way out other than manipulating host IRQ on/off as
IDE does.  If we choose to go that way, we can use them in
ata_bmdma_freeze/thaw (they should be named ata_sff_freeze/thaw really)
and use this patch on top of it.  Maybe it's better to drop ->freeze()
and ->thaw() altogether and use ->irq_on() and ->irq_off() instead.
Their names are more intuitive IMHO but that's minor.

Jeff, Alan, what do you think about adopting IDE's irq off/on mechanism.
 It's ugly and may cause some problems if the IRQ is shared but then
again it has been used for a long time without too much problem and
occasional lost IRQ is much better than dead machine due to screaming
IRQs followed by nobody cared.

Thanks.

-- 
tejun
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH/RFC 7/9] libata: pdc_freeze() semantic change

2007-06-17 Thread Tejun Heo
Albert Lee wrote:
> Patch 7/9:
> 
>  After checking the current implementations of freeze()/thaw(), it seems only 
> pdc_freeze()
> do more than simple irq masking. Remove the DMA disable code from 
> pdc_freeze().
> 
> The question is the design/semantic of freeze()/thaw().
> Maybe we should limit them to simple irq on/off?

Yeap, we can do that but if we do so it would be better to use
->irq_off/->irq_on hooks and kill ->freeze/->thaw.

-- 
tejun
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] libata: more NONCQ devices

2007-06-17 Thread Tejun Heo
More for the NCQ blacklist.  One hitachi and one raptor.  Other
members of these families of drives are already on the list, so no
surprises.

Signed-off-by: Tejun Heo <[EMAIL PROTECTED]>
---
 drivers/ata/libata-core.c |2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 047eabd..3562812 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -3802,6 +3802,8 @@ static const struct ata_blacklist_entry 
ata_device_blacklist [] = {
{ "HTS541010G9SA00","MBZOC60D", ATA_HORKAGE_NONCQ, },
/* Drives which do spurious command completion */
{ "HTS541680J9SA00","SB2IC7EP", ATA_HORKAGE_NONCQ, },
+   { "HTS541612J9SA00","SBDIC7JP", ATA_HORKAGE_NONCQ, },
+   { "WDC WD740ADFD-00NLR1", NULL, ATA_HORKAGE_NONCQ, },
 
/* Devices with NCQ limits */
 
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: libata interface fatal error

2007-06-17 Thread Tomi Orava

Hi Tejun,

I've been trying to find a solution for a long time for quite a similar
libata errror messages as shown in this thread. Perhaps you might get have
some ideas what the actual originator might be:

With the latest 2.6.22-rc4-git4 kernel I still get the following error
messages
with high I/O load:

sd 2:0:0:0: [sdc] 976773168 512-byte hardware sectors (500108 MB)
sd 2:0:0:0: [sdc] Write Protect is off
sd 2:0:0:0: [sdc] Mode Sense: 00 3a 00 00
sd 2:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't
support DPO or FUA
ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
ata3.00: (port_status 0x2008)
ata3.00: cmd c8/00:08:af:91:49/00:00:00:00:00/e5 tag 0 cdb 0x0 data 4096 in
 res 50/00:00:b6:91:49/00:00:11:00:00/e5 Emask 0x2 (HSM violation)
ata3: soft resetting port
ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata3.00: ata_hpa_resize 1: sectors = 976773168, hpa_sectors = 976773168
ata3.00: ata_hpa_resize 1: sectors = 976773168, hpa_sectors = 976773168
ata3.00: configured for UDMA/133
ata3: EH complete

... and later in the chain ...

sd 2:0:0:0: [sdc] 976773168 512-byte hardware sectors (500108 MB)
sd 2:0:0:0: [sdc] Write Protect is off
sd 2:0:0:0: [sdc] Mode Sense: 00 3a 00 00
sd 2:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't
support DPO or FUA
ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
ata3.00: (port_status 0x2008)
ata3.00: cmd c8/00:08:67:74:65/00:00:00:00:00/ec tag 0 cdb 0x0 data 4096 in
 res 50/00:00:6e:74:65/00:00:1b:00:00/ec Emask 0x2 (HSM violation)
ata3: soft resetting port
ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
ata3.00: ata_hpa_resize 1: sectors = 976773168, hpa_sectors = 976773168
ata3.00: ata_hpa_resize 1: sectors = 976773168, hpa_sectors = 976773168
ata3.00: configured for UDMA/100
ata3: EH complete

--- This goes on until UDMA/33 has been reched

The problematic hardware combination is:

00:00.0 Host bridge: VIA Technologies, Inc. KT880 Host Bridge (rev 80)
00:00.1 Host bridge: VIA Technologies, Inc. KT880 Host Bridge
00:00.2 Host bridge: VIA Technologies, Inc. KT880 Host Bridge
00:00.3 Host bridge: VIA Technologies, Inc. KT880 Host Bridge
00:00.4 Host bridge: VIA Technologies, Inc. KT880 Host Bridge
00:00.7 Host bridge: VIA Technologies, Inc. KT880 Host Bridge
00:01.0 PCI bridge: VIA Technologies, Inc. VT8237 PCI Bridge
00:09.0 Ethernet controller: Marvell Technology Group Ltd. 88E8001 Gigabit
Ethernet Controller (rev 13)
00:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
RTL-8139/8139C/8139C+ (rev 10)
00:0d.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
RTL-8139/8139C/8139C+ (rev 10)
00:0e.0 Mass storage controller: Promise Technology, Inc. PDC40718 (SATA
300 TX4) (rev 02)
00:0f.0 RAID bus controller: VIA Technologies, Inc. VIA VT6420 SATA RAID
Controller (rev 80)
00:0f.1 IDE interface: VIA Technologies, Inc.
VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
00:10.0 USB Controller: VIA Technologies, Inc. VT82x UHCI USB 1.1
Controller (rev 81)
00:10.1 USB Controller: VIA Technologies, Inc. VT82x UHCI USB 1.1
Controller (rev 81)
00:10.2 USB Controller: VIA Technologies, Inc. VT82x UHCI USB 1.1
Controller (rev 81)
00:10.3 USB Controller: VIA Technologies, Inc. VT82x UHCI USB 1.1
Controller (rev 81)
00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 86)
00:11.0 ISA bridge: VIA Technologies, Inc. VT8237 ISA bridge
[KT600/K8T800/K8T890 South]
00:11.5 Multimedia audio controller: VIA Technologies, Inc.
VT8233/A/8235/8237 AC97 Audio Controller (rev 60)
00:11.6 Communication controller: VIA Technologies, Inc. AC'97 Modem
Controller (rev 80)
01:00.0 VGA compatible controller: nVidia Corporation NV36.2 [GeForce FX
5700] (rev a1)

and the problems relate only to Seagate 7200.10 SATA-disks, never with the
older 7200.7 SATA-disks alll connected to Promise Sata 300TX4-controller.

Because this problem has been around for as long as I've had the Promise
Sata300TX4 controller an additional new problem is that after kernel
version 2.6.21-rc3-git10 the libata error handling/interface speed
downgrade has been fixed ---> these new seagate disks get downgraded from
UDMA/133 to UDMA/33 overnight (can the speed downgrade  be disabled as a
quick and dirty fix in this case somehow ?). For some reason the above
mentioned libata error messages don't really do any noticeable harm but it
would be very nice to be able to prevent the interface speed downgrade for
now.

>> What do you mean by "merged speed down fix"? Is your fix for the speed
>> down logic implemented in the current kernel, so I don't have to patch
>> anymore (except when I want to force 1.5Gbps right from the beginning)?
>
> Yeap, kernel will automatically downgrade to 1.5Gbps after several
> failures.

Yes, this feature seems to work quite nicely as the included logs show.

Regards,
Tomi Orava

PS. These problems are not special to this single machine as a friend at work
  has the same P

Re: libata interface fatal error

2007-06-17 Thread Tejun Heo
Hello,

Yeah, it seems promise has some problem with 3G link.  Cc'ing Mikael
Pettersson and quoting whole body for him.  Mikael, does this look familiar?

Tomi Orava wrote:
> Hi Tejun,
> 
> I've been trying to find a solution for a long time for quite a similar
> libata errror messages as shown in this thread. Perhaps you might get have
> some ideas what the actual originator might be:
> 
> With the latest 2.6.22-rc4-git4 kernel I still get the following error
> messages
> with high I/O load:
> 
> sd 2:0:0:0: [sdc] 976773168 512-byte hardware sectors (500108 MB)
> sd 2:0:0:0: [sdc] Write Protect is off
> sd 2:0:0:0: [sdc] Mode Sense: 00 3a 00 00
> sd 2:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't
> support DPO or FUA
> ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> ata3.00: (port_status 0x2008)
> ata3.00: cmd c8/00:08:af:91:49/00:00:00:00:00/e5 tag 0 cdb 0x0 data 4096 in
>  res 50/00:00:b6:91:49/00:00:11:00:00/e5 Emask 0x2 (HSM violation)
> ata3: soft resetting port
> ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
> ata3.00: ata_hpa_resize 1: sectors = 976773168, hpa_sectors = 976773168
> ata3.00: ata_hpa_resize 1: sectors = 976773168, hpa_sectors = 976773168
> ata3.00: configured for UDMA/133
> ata3: EH complete
> 
> ... and later in the chain ...
> 
> sd 2:0:0:0: [sdc] 976773168 512-byte hardware sectors (500108 MB)
> sd 2:0:0:0: [sdc] Write Protect is off
> sd 2:0:0:0: [sdc] Mode Sense: 00 3a 00 00
> sd 2:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't
> support DPO or FUA
> ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
> ata3.00: (port_status 0x2008)
> ata3.00: cmd c8/00:08:67:74:65/00:00:00:00:00/ec tag 0 cdb 0x0 data 4096 in
>  res 50/00:00:6e:74:65/00:00:1b:00:00/ec Emask 0x2 (HSM violation)
> ata3: soft resetting port
> ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 310)
> ata3.00: ata_hpa_resize 1: sectors = 976773168, hpa_sectors = 976773168
> ata3.00: ata_hpa_resize 1: sectors = 976773168, hpa_sectors = 976773168
> ata3.00: configured for UDMA/100
> ata3: EH complete
> 
> --- This goes on until UDMA/33 has been reched
> 
> The problematic hardware combination is:
> 
> 00:00.0 Host bridge: VIA Technologies, Inc. KT880 Host Bridge (rev 80)
> 00:00.1 Host bridge: VIA Technologies, Inc. KT880 Host Bridge
> 00:00.2 Host bridge: VIA Technologies, Inc. KT880 Host Bridge
> 00:00.3 Host bridge: VIA Technologies, Inc. KT880 Host Bridge
> 00:00.4 Host bridge: VIA Technologies, Inc. KT880 Host Bridge
> 00:00.7 Host bridge: VIA Technologies, Inc. KT880 Host Bridge
> 00:01.0 PCI bridge: VIA Technologies, Inc. VT8237 PCI Bridge
> 00:09.0 Ethernet controller: Marvell Technology Group Ltd. 88E8001 Gigabit
> Ethernet Controller (rev 13)
> 00:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
> RTL-8139/8139C/8139C+ (rev 10)
> 00:0d.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
> RTL-8139/8139C/8139C+ (rev 10)
> 00:0e.0 Mass storage controller: Promise Technology, Inc. PDC40718 (SATA
> 300 TX4) (rev 02)
> 00:0f.0 RAID bus controller: VIA Technologies, Inc. VIA VT6420 SATA RAID
> Controller (rev 80)
> 00:0f.1 IDE interface: VIA Technologies, Inc.
> VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
> 00:10.0 USB Controller: VIA Technologies, Inc. VT82x UHCI USB 1.1
> Controller (rev 81)
> 00:10.1 USB Controller: VIA Technologies, Inc. VT82x UHCI USB 1.1
> Controller (rev 81)
> 00:10.2 USB Controller: VIA Technologies, Inc. VT82x UHCI USB 1.1
> Controller (rev 81)
> 00:10.3 USB Controller: VIA Technologies, Inc. VT82x UHCI USB 1.1
> Controller (rev 81)
> 00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 86)
> 00:11.0 ISA bridge: VIA Technologies, Inc. VT8237 ISA bridge
> [KT600/K8T800/K8T890 South]
> 00:11.5 Multimedia audio controller: VIA Technologies, Inc.
> VT8233/A/8235/8237 AC97 Audio Controller (rev 60)
> 00:11.6 Communication controller: VIA Technologies, Inc. AC'97 Modem
> Controller (rev 80)
> 01:00.0 VGA compatible controller: nVidia Corporation NV36.2 [GeForce FX
> 5700] (rev a1)
> 
> and the problems relate only to Seagate 7200.10 SATA-disks, never with the
> older 7200.7 SATA-disks alll connected to Promise Sata 300TX4-controller.
> 
> Because this problem has been around for as long as I've had the Promise
> Sata300TX4 controller an additional new problem is that after kernel
> version 2.6.21-rc3-git10 the libata error handling/interface speed
> downgrade has been fixed ---> these new seagate disks get downgraded from
> UDMA/133 to UDMA/33 overnight (can the speed downgrade  be disabled as a
> quick and dirty fix in this case somehow ?). For some reason the above
> mentioned libata error messages don't really do any noticeable harm but it
> would be very nice to be able to prevent the interface speed downgrade for
> now.
> 
>>> What do you mean by "merged speed down fix"? Is your fix for the speed
>>> down logic implemented in the current kernel, so I d