All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Broadcom SWARM IDE in 2.6
@ 2004-11-30 23:00 Manish Lachwani
  2004-12-02  4:01 ` Steven J. Hill
  0 siblings, 1 reply; 3+ messages in thread
From: Manish Lachwani @ 2004-11-30 23:00 UTC (permalink / raw)
  To: linux-mips; +Cc: sjhill

[-- Attachment #1: Type: text/plain, Size: 139 bytes --]

Hi Steve,

I had sent an incomplete patch before. Please try out this new patch, attached.
Let me know if it works

Thanks
Manish Lachwani

[-- Attachment #2: patch-swarm-ide --]
[-- Type: text/plain, Size: 4115 bytes --]

--- include/asm-mips/mach-generic/ide.h.orig	2004-10-16 13:34:52.000000000 -0700
+++ include/asm-mips/mach-generic/ide.h	2004-10-16 13:11:01.000000000 -0700
@@ -20,7 +20,7 @@
 # endif
 #endif
 
-#define IDE_ARCH_OBSOLETE_DEFAULTS
+#undef IDE_ARCH_OBSOLETE_DEFAULTS
 
 static inline int ide_default_irq(unsigned long base)
 {
@@ -50,7 +50,7 @@
 	}
 }
 
-#define IDE_ARCH_OBSOLETE_INIT
+#undef IDE_ARCH_OBSOLETE_INIT 
 #define ide_default_io_ctl(base)	((base) + 0x206) /* obsolete */
 
 #ifdef CONFIG_BLK_DEV_IDEPCI
--- drivers/ide/mips/swarm.c.orig	2004-10-15 16:28:08.000000000 -0700
+++ drivers/ide/mips/swarm.c	2004-10-16 13:34:33.000000000 -0700
@@ -137,54 +137,54 @@
 }
 
 /*
- * ide_init_default_hwifs - prep the hwifs with our non-swapping ops
- * (otherwise PCI-IDE drives will not come up correctly)
- */
-void ide_init_default_hwifs(void)
-{
-	int i;
-
-	mips_ide_init_default_hwifs();
-	for (i=0; i<MAX_HWIFS; i++) {
-		sibyte_set_ideops(&ide_hwifs[i]);
-	}
-}
-
-/*
  * swarm_ide_probe - if the board header indicates the existence of
  * Generic Bus IDE, allocate a HWIF for it.
  */
 void __init swarm_ide_probe(void)
 {
 #if defined(SIBYTE_HAVE_IDE) && defined(IDE_PHYS)
-
-	hw_regs_t hw;
+	int i = 0;
 	ide_hwif_t *sb_ide_hwif;
 
+	for (i = 0; i < MAX_HWIFS; i++) 
+		if (!ide_hwifs[i].io_ports[IDE_DATA_OFFSET]) {
+			/* Find an empty slot */
+			break;
+		}
+
 	/*
 	 * Preadjust for mips_io_port_base since the I/O ops expect
 	 * relative addresses
 	 */
 #define SIBYTE_IDE_REG(pcaddr) (IOADDR(IDE_PHYS) + ((pcaddr)<<5) - mips_io_port_base)
 
-	hw.io_ports[IDE_DATA_OFFSET]    = SIBYTE_IDE_REG(0x1f0);
-	hw.io_ports[IDE_ERROR_OFFSET]   = SIBYTE_IDE_REG(0x1f1);
-	hw.io_ports[IDE_NSECTOR_OFFSET] = SIBYTE_IDE_REG(0x1f2);
-	hw.io_ports[IDE_SECTOR_OFFSET]  = SIBYTE_IDE_REG(0x1f3);
-	hw.io_ports[IDE_LCYL_OFFSET]    = SIBYTE_IDE_REG(0x1f4);
-	hw.io_ports[IDE_HCYL_OFFSET]    = SIBYTE_IDE_REG(0x1f5);
-	hw.io_ports[IDE_SELECT_OFFSET]  = SIBYTE_IDE_REG(0x1f6);
-	hw.io_ports[IDE_STATUS_OFFSET]  = SIBYTE_IDE_REG(0x1f7);
-	hw.io_ports[IDE_CONTROL_OFFSET] = SIBYTE_IDE_REG(0x3f6);
-	hw.io_ports[IDE_IRQ_OFFSET]     = SIBYTE_IDE_REG(0x3f7);
-	hw.irq                          = K_INT_GB_IDE;
-
-	if (ide_register_hw(&hw, &sb_ide_hwif) >= 0) {
-		printk("SiByte onboard IDE configured as device %d\n", (int)(sb_ide_hwif - ide_hwifs));
-		/* Prevent resource map manipulation */
-		sb_ide_hwif->mmio = 2;
-		/* Reset the ideops after ide_register_hw */
-		sibyte_set_ideops(sb_ide_hwif);
-	}
+	sb_ide_hwif = &ide_hwifs[i];
+
+	sb_ide_hwif->hw.io_ports[IDE_DATA_OFFSET]    = SIBYTE_IDE_REG(0x1f0);
+	sb_ide_hwif->hw.io_ports[IDE_ERROR_OFFSET]   = SIBYTE_IDE_REG(0x1f1);
+	sb_ide_hwif->hw.io_ports[IDE_NSECTOR_OFFSET] = SIBYTE_IDE_REG(0x1f2);
+	sb_ide_hwif->hw.io_ports[IDE_SECTOR_OFFSET]  = SIBYTE_IDE_REG(0x1f3);
+	sb_ide_hwif->hw.io_ports[IDE_LCYL_OFFSET]    = SIBYTE_IDE_REG(0x1f4);
+	sb_ide_hwif->hw.io_ports[IDE_HCYL_OFFSET]    = SIBYTE_IDE_REG(0x1f5);
+	sb_ide_hwif->hw.io_ports[IDE_SELECT_OFFSET]  = SIBYTE_IDE_REG(0x1f6);
+	sb_ide_hwif->hw.io_ports[IDE_STATUS_OFFSET]  = SIBYTE_IDE_REG(0x1f7);
+	sb_ide_hwif->hw.io_ports[IDE_CONTROL_OFFSET] = SIBYTE_IDE_REG(0x3f6);
+	sb_ide_hwif->hw.io_ports[IDE_IRQ_OFFSET]     = SIBYTE_IDE_REG(0x3f7);
+
+	sb_ide_hwif->hw.irq                          = K_INT_GB_IDE;
+	sb_ide_hwif->irq			     = K_INT_GB_IDE;
+	sb_ide_hwif->hw.ack_intr		     = NULL;
+	sb_ide_hwif->noprobe			     = 0;
+
+	memcpy(sb_ide_hwif->io_ports, sb_ide_hwif->hw.io_ports, sizeof(sb_ide_hwif->io_ports));
+	
+	printk("SiByte onboard IDE configured as device %d\n", i);
+
+	/* Prevent resource map manipulation */
+	sb_ide_hwif->mmio = 2;
+
+	/* Reset the ideops */
+	sibyte_set_ideops(sb_ide_hwif);
 #endif
 }
+
--- drivers/ide/ide.c.orig	2004-10-14 18:56:21.000000000 -0700
+++ drivers/ide/ide.c	2004-10-15 13:25:01.000000000 -0700
@@ -2064,6 +2064,12 @@
 		q40ide_init();
 	}
 #endif /* CONFIG_BLK_DEV_Q40IDE */
+#ifdef CONFIG_BLK_DEV_IDE_SWARM
+	{
+		extern void swarm_ide_probe(void);
+		swarm_ide_probe();
+	}
+#endif
 #ifdef CONFIG_BLK_DEV_BUDDHA
 	{
 		extern void buddha_init(void);

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] Broadcom SWARM IDE in 2.6
  2004-11-30 23:00 [PATCH] Broadcom SWARM IDE in 2.6 Manish Lachwani
@ 2004-12-02  4:01 ` Steven J. Hill
  2004-12-02 20:18   ` Manish Lachwani
  0 siblings, 1 reply; 3+ messages in thread
From: Steven J. Hill @ 2004-12-02  4:01 UTC (permalink / raw)
  To: Manish Lachwani; +Cc: linux-mips

Manish Lachwani wrote:
> 
> I had sent an incomplete patch before. Please try out this new patch, attached.
> Let me know if it works
> 
Manish,

This patch worked, however you need to fix a compiler warning before I am
willing to commit it. Please get rid of the warning shown below and submit
a new patch. Thanks!

-Steve

*******************

CC      drivers/ide/ide-generic.o
In file included from drivers/ide/ide-generic.c:13:
include/linux/ide.h:277:1: warning: "ide_init_default_irq" redefined
In file included from include/asm/ide.h:11,
                  from include/linux/ide.h:271,
                  from drivers/ide/ide-generic.c:13:
include/asm-mips/mach-generic/ide.h:64:1: warning: this is the location of the 
previous definition

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] Broadcom SWARM IDE in 2.6
  2004-12-02  4:01 ` Steven J. Hill
@ 2004-12-02 20:18   ` Manish Lachwani
  0 siblings, 0 replies; 3+ messages in thread
From: Manish Lachwani @ 2004-12-02 20:18 UTC (permalink / raw)
  To: Steven J. Hill; +Cc: linux-mips

Hi Steve,

"ide_init_default_irq" is defined in include/linux/ide.h and in
include/asm-mips/mach-generic/ide.h.

include/asm-mips/mach-generic/ide.h and include/asm-i386/ide.h are 
replicas. So, this compiler warning should appear on other platforms as 
well.

I have sent an email out to Jeff Garzik to understand why 
"ide_init_default_irq" is redefined

Thanks
Manish Lachwani

Steven J. Hill wrote:
> Manish Lachwani wrote:
> 
>>
>> I had sent an incomplete patch before. Please try out this new patch, 
>> attached.
>> Let me know if it works
>>
> Manish,
> 
> This patch worked, however you need to fix a compiler warning before I am
> willing to commit it. Please get rid of the warning shown below and submit
> a new patch. Thanks!
> 
> -Steve
> 
> *******************
> 
> CC      drivers/ide/ide-generic.o
> In file included from drivers/ide/ide-generic.c:13:
> include/linux/ide.h:277:1: warning: "ide_init_default_irq" redefined
> In file included from include/asm/ide.h:11,
>                  from include/linux/ide.h:271,
>                  from drivers/ide/ide-generic.c:13:
> include/asm-mips/mach-generic/ide.h:64:1: warning: this is the location 
> of the previous definition

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2004-12-02 20:18 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-11-30 23:00 [PATCH] Broadcom SWARM IDE in 2.6 Manish Lachwani
2004-12-02  4:01 ` Steven J. Hill
2004-12-02 20:18   ` Manish Lachwani

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.