linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Marc Zyngier <mzyngier@freesurf.fr>
To: torvalds@osdl.org, akpm@digeo.com, linux-kernel@vger.kernel.org
Subject: [PATCH 2.5] [4/6] EISA support updates
Date: Sat, 05 Jul 2003 01:07:49 +0200	[thread overview]
Message-ID: <wrpwuexubzu.fsf@hina.wild-wind.fr.eu.org> (raw)
In-Reply-To: <wrpk7axvqv1.fsf@hina.wild-wind.fr.eu.org> (Marc Zyngier's message of "Sat, 05 Jul 2003 01:01:22 +0200")

PA-RISC changes :

- Probe the right number of EISA slots on PA-RISC. No more, no less.

	M.

diff -ruN linux-latest/drivers/parisc/eisa.c linux-eisa/drivers/parisc/eisa.c
--- linux-latest/drivers/parisc/eisa.c	2003-07-04 09:38:48.000000000 +0200
+++ linux-eisa/drivers/parisc/eisa.c	2003-07-04 09:39:46.000000000 +0200
@@ -378,19 +378,21 @@
 		}
 	}
 	eisa_eeprom_init(eisa_dev.eeprom_addr);
-	eisa_enumerator(eisa_dev.eeprom_addr, &eisa_dev.hba.io_space, &eisa_dev.hba.lmmio_space);
+	result = eisa_enumerator(eisa_dev.eeprom_addr, &eisa_dev.hba.io_space, &eisa_dev.hba.lmmio_space);
 	init_eisa_pic();
 
-	/* FIXME : Get the number of slots from the enumerator, not a
-	 * hadcoded value. Also don't enumerate the bus twice. */
-	eisa_dev.root.dev = &dev->dev;
-	dev->dev.driver_data = &eisa_dev.root;
-	eisa_dev.root.bus_base_addr = 0;
-	eisa_dev.root.res = &eisa_dev.hba.io_space;
-	eisa_dev.root.slots = EISA_MAX_SLOTS;
-	if (eisa_root_register (&eisa_dev.root)) {
-		printk(KERN_ERR "EISA: Failed to register EISA root\n");
-		return -1;
+	if (result >= 0) {
+		/* FIXME : Don't enumerate the bus twice. */
+		eisa_dev.root.dev = &dev->dev;
+		dev->dev.driver_data = &eisa_dev.root;
+		eisa_dev.root.bus_base_addr = 0;
+		eisa_dev.root.res = &eisa_dev.hba.io_space;
+		eisa_dev.root.slots = result;
+		eisa_dev.root.dma_mask = 0xffffffff; /* wild guess */
+		if (eisa_root_register (&eisa_dev.root)) {
+			printk(KERN_ERR "EISA: Failed to register EISA root\n");
+			return -1;
+		}
 	}
 	
 	return 0;
diff -ruN linux-latest/drivers/parisc/eisa_enumerator.c linux-eisa/drivers/parisc/eisa_enumerator.c
--- linux-latest/drivers/parisc/eisa_enumerator.c	2003-07-04 09:39:09.000000000 +0200
+++ linux-eisa/drivers/parisc/eisa_enumerator.c	2003-07-04 09:40:06.000000000 +0200
@@ -438,6 +438,10 @@
 		id = le32_to_cpu(inl(SLOT2PORT(slot)+EPI));
 		
 		if (0xffffffff == id) {
+			/* Maybe we didn't expect a card to be here... */
+			if (es->eisa_slot_id == 0xffffffff)
+				return -1;
+			
 			/* this board is not here or it does not 
 			 * support readid 
 			 */
@@ -499,8 +503,7 @@
 			(&eeprom_buf[HPEE_SLOT_INFO(i)]);
 	        
 		if (-1==init_slot(i+1, es)) {
-			return -1;
-			
+			continue;
 		}
 		
 		if (es->config_data_offset < HPEE_MAX_LENGTH) {
@@ -513,6 +516,6 @@
 			return -1;
 		}
 	}
-	return 0;
+	return eh->num_slots;
 }
 

-- 
Places change, faces change. Life is so very strange.

  parent reply	other threads:[~2003-07-04 22:57 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-04 23:01 [PATCH 2.5] [0/6] EISA support updates Marc Zyngier
2003-07-04 23:04 ` [PATCH 2.5] [1/6] " Marc Zyngier
2003-07-04 23:05 ` [PATCH 2.5] [2/6] " Marc Zyngier
2003-07-04 23:06 ` [PATCH 2.5] [3/6] " Marc Zyngier
2003-07-04 23:07 ` Marc Zyngier [this message]
2003-07-04 23:09 ` [PATCH 2.5] [5/6] " Marc Zyngier
2003-07-04 23:10 ` [PATCH 2.5] [6/6] " Marc Zyngier

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=wrpwuexubzu.fsf@hina.wild-wind.fr.eu.org \
    --to=mzyngier@freesurf.fr \
    --cc=akpm@digeo.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@osdl.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).