Re: [PATCH] Re: 2.6.11-rc4 libata-core (irq 30: nobody cared!)

2005-02-26 Thread Rogério Brito
First of all, thank you very much for your reply, Jeff.

On Feb 26 2005, Jeff Garzik wrote:
> "irq XX: nobody cared" is a screaming interrupt situation, which could
> have 1001 causes.

Ok, I didn't know that.

> Normally it's something that "pci=biosirq" or "acpi=off" will fix, but 
> on occasion the driver itself is what needs fixing.

Well, I already tried both of those options (and some others too) and
nothing seems to make my kernel quiet regarding my Promise controller (just
as a reminder, it is a PDC20265, embedded in my Asus A7V motherboard).

If you want me to test any patches, feel free to contact me.


Thanks, Rogério Brito.

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Rogério Brito - [EMAIL PROTECTED] - http://www.ime.usp.br/~rbrito
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
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/


Re: [PATCH] Re: 2.6.11-rc4 libata-core (irq 30: nobody cared!)

2005-02-26 Thread Jeff Garzik
Rogério Brito wrote:
On Feb 23 2005, Jeff Garzik wrote:
Does this patch do anything useful?
Jeff
(...)
The patch you posted seems to only affect people using SATA, right?
BTW, just for clarity I'm seeing the message in a PATA environment (on
i386) and Brian is seeing his problem with a SATA device on ppc.
"irq XX: nobody cared" is a screaming interrupt situation, which could 
have 1001 causes.

Normally it's something that "pci=biosirq" or "acpi=off" will fix, but 
on occasion the driver itself is what needs fixing.

Jeff

-
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/


Re: [PATCH] Re: 2.6.11-rc4 libata-core (irq 30: nobody cared!)

2005-02-26 Thread Rogério Brito
On Feb 23 2005, Jeff Garzik wrote:
> Does this patch do anything useful?
>   Jeff
(...)

The patch you posted seems to only affect people using SATA, right?

BTW, just for clarity I'm seeing the message in a PATA environment (on
i386) and Brian is seeing his problem with a SATA device on ppc.


Thanks, Rogério Brito.

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Rogério Brito - [EMAIL PROTECTED] - http://www.ime.usp.br/~rbrito
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
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/


Re: [PATCH] Re: 2.6.11-rc4 libata-core (irq 30: nobody cared!)

2005-02-23 Thread Brian Kuschak

> Does this patch do anything useful?
> 
>   Jeff
> 

Not really.  It doesn't print the nobody cared
message, but still hangs at boot.  I'd give you a
backtrace but my MAGIC_SYSRQ doesn't seem to be
working right now.

-Brian


Linux version 2.6.11-rc4 ([EMAIL PROTECTED])
(gcc version 3.3.2) #28 Wed Feb 23 18:52:22 PST 2005
Built 1 zonelists
Kernel command line: root=/dev/ram rw ramdisk=36000
console=ttyS0
PID hash table entries: 1024 (order: 10, 16384 bytes)
Console: colour dummy device 80x25
Dentry cache hash table entries: 32768 (order: 5,
131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536
bytes)
Memory: 120832k available (2136k kernel code, 916k
data, 108k init, 0k highmem)
Mount-cache hash table entries: 512 (order: 0, 4096
bytes)
checking if image is initramfs...it isn't (no cpio
magic); looks like an initrd
Freeing initrd memory: 5709k freed
NET: Registered protocol family 16
PCI: Probing PCI hardware
SCSI subsystem initialized
Installing knfsd (copyright (C) 1996
[EMAIL PROTECTED]).
Initializing Cryptographic API
Serial: 8250/16550 driver $Revision: 1.90 $ 6 ports,
IRQ sharing disabled
ttyS0 at MMIO 0x0 (irq = 0) is a 16550A
ttyS1 at MMIO 0x0 (irq = 1) is a 16550A
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
RAMDISK driver initialized: 16 RAM disks of 36000K
size 1024 blocksize
loop: loaded (max 8 devices)
mal0: Initialized, 1 tx channels, 1 rx channels
emac: IBM EMAC Ethernet driver, version 2.0
Maintained by Benjamin Herrenschmidt
<[EMAIL PROTECTED]>
eth0: IBM emac, MAC 08:00:3e:26:15:59
eth0: Found Generic MII PHY (0x06)
Uniform Multi-Platform E-IDE driver Revision:
7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes;
override with idebus=xx
ata1: SATA max UDMA/100 cmd 0xC9002E80 ctl 0xC9002E8A
bmdma 0xC9002E00 irq 30
ata2: SATA max UDMA/100 cmd 0xC9002EC0 ctl 0xC9002ECA
bmdma 0xC9002E08 irq 30
ata1: dev 0 ATA, max UDMA7, 234493056 sectors: lba48
eth0: Link is Up
eth0: Speed: 100, Full duplex.




__ 
Do you Yahoo!? 
Yahoo! Mail - Helps protect you from nasty viruses. 
http://promotions.yahoo.com/new_mail
-
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/


Re: [PATCH] Re: 2.6.11-rc4 libata-core (irq 30: nobody cared!)

2005-02-23 Thread Jeff Garzik
BTW, please CC your replies to linux-ide@vger.kernel.org as well.
-
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/


[PATCH] Re: 2.6.11-rc4 libata-core (irq 30: nobody cared!)

2005-02-23 Thread Jeff Garzik
Does this patch do anything useful?
Jeff

= drivers/scsi/sata_sil.c 1.44 vs edited =
--- 1.44/drivers/scsi/sata_sil.c2005-02-17 19:43:51 -05:00
+++ edited/drivers/scsi/sata_sil.c  2005-02-23 21:27:18 -05:00
@@ -65,6 +65,7 @@
 static u32 sil_scr_read (struct ata_port *ap, unsigned int sc_reg);
 static void sil_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val);
 static void sil_post_set_mode (struct ata_port *ap);
+static void sil_tf_load(struct ata_port *ap, struct ata_taskfile *tf);
 
 static struct pci_device_id sil_pci_tbl[] = {
{ 0x1095, 0x3112, PCI_ANY_ID, PCI_ANY_ID, 0, 0, sil_3112 },
@@ -130,7 +131,7 @@
 static struct ata_port_operations sil_ops = {
.port_disable   = ata_port_disable,
.dev_config = sil_dev_config,
-   .tf_load= ata_tf_load,
+   .tf_load= sil_tf_load,
.tf_read= ata_tf_read,
.check_status   = ata_check_status,
.exec_command   = ata_exec_command,
@@ -197,6 +198,69 @@
 MODULE_LICENSE("GPL");
 MODULE_DEVICE_TABLE(pci, sil_pci_tbl);
 MODULE_VERSION(DRV_VERSION);
+
+static void sil_irq_enable(struct ata_port *ap, int disable)
+{
+   void __iomem *mmio = ap->host_set->mmio_base;
+   u32 tmp, new;
+   u32 bit = 1 << (22 + ap->port_no);
+
+   tmp = readl(mmio + SIL_SYSCFG);
+   if (disable)
+   new = tmp | bit;
+   else
+   new = tmp & ~bit;
+   if (new != tmp)
+   writel(new, mmio + SIL_SYSCFG);
+}
+
+static void sil_tf_load(struct ata_port *ap, struct ata_taskfile *tf)
+{
+   struct ata_ioports *ioaddr = &ap->ioaddr;
+   unsigned int is_addr = tf->flags & ATA_TFLAG_ISADDR;
+
+   if (tf->ctl != ap->last_ctl) {
+   sil_irq_enable(ap, tf->ctl & ATA_NIEN);
+   writeb(tf->ctl, (void __iomem *) ap->ioaddr.ctl_addr);
+   ap->last_ctl = tf->ctl;
+   ata_wait_idle(ap);
+   }
+
+   if (is_addr && (tf->flags & ATA_TFLAG_LBA48)) {
+   writeb(tf->hob_feature, (void __iomem *) ioaddr->feature_addr);
+   writeb(tf->hob_nsect, (void __iomem *) ioaddr->nsect_addr);
+   writeb(tf->hob_lbal, (void __iomem *) ioaddr->lbal_addr);
+   writeb(tf->hob_lbam, (void __iomem *) ioaddr->lbam_addr);
+   writeb(tf->hob_lbah, (void __iomem *) ioaddr->lbah_addr);
+   VPRINTK("hob: feat 0x%X nsect 0x%X, lba 0x%X 0x%X 0x%X\n",
+   tf->hob_feature,
+   tf->hob_nsect,
+   tf->hob_lbal,
+   tf->hob_lbam,
+   tf->hob_lbah);
+   }
+
+   if (is_addr) {
+   writeb(tf->feature, (void __iomem *) ioaddr->feature_addr);
+   writeb(tf->nsect, (void __iomem *) ioaddr->nsect_addr);
+   writeb(tf->lbal, (void __iomem *) ioaddr->lbal_addr);
+   writeb(tf->lbam, (void __iomem *) ioaddr->lbam_addr);
+   writeb(tf->lbah, (void __iomem *) ioaddr->lbah_addr);
+   VPRINTK("feat 0x%X nsect 0x%X lba 0x%X 0x%X 0x%X\n",
+   tf->feature,
+   tf->nsect,
+   tf->lbal,
+   tf->lbam,
+   tf->lbah);
+   }
+
+   if (tf->flags & ATA_TFLAG_DEVICE) {
+   writeb(tf->device, (void __iomem *) ioaddr->device_addr);
+   VPRINTK("device 0x%X\n", tf->device);
+   }
+
+   ata_wait_idle(ap);
+}
 
 static void sil_post_set_mode (struct ata_port *ap)
 {