All of lore.kernel.org
 help / color / mirror / Atom feed
From: Manish Lachwani <mlachwani@mvista.com>
To: linux-mips@linux-mips.org
Cc: sjhill@realitydiluted.com
Subject: [PATCH] Broadcom SWARM IDE in 2.6
Date: Tue, 30 Nov 2004 15:00:22 -0800	[thread overview]
Message-ID: <20041130230022.GA17202@prometheus.mvista.com> (raw)

[-- 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);

             reply	other threads:[~2004-11-30 23:00 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-30 23:00 Manish Lachwani [this message]
2004-12-02  4:01 ` [PATCH] Broadcom SWARM IDE in 2.6 Steven J. Hill
2004-12-02 20:18   ` Manish Lachwani

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20041130230022.GA17202@prometheus.mvista.com \
    --to=mlachwani@mvista.com \
    --cc=linux-mips@linux-mips.org \
    --cc=sjhill@realitydiluted.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.