the patch that got away...

Dominik Brodowski linux at dominikbrodowski.de
Wed Dec 29 16:24:36 EST 2004


Hi,

On Wed, Dec 29, 2004 at 10:21:29AM -0800, Sean G. wrote:
> this fixes my problem with unable to apply power
> http://hulllug.principalhosting.net/archive/index.php/t-349.html

Thanks for making me aware of this patch.

> I manually modified the yenta_socket file so I don't know if the patch
> applies cleanly or not
> can the patch in the link be added to the kernel? its in the 2.4 series

As it seems to help in several cases (e.g. also in the "Cardbus memory
problem" reported a few days ago on this list), I've modified it for 2.6.
(module_param, re-diff) and added it to the queue of patches I'll send off 
to akpm once the next -mm is out. It's appended below for reference
purposes; would be great if you, Manfred, could sign it off.

	Dominik


From: Manfred Spraul 

[PATCH] yenta: Add override_bios flag to ignore BIOS resource allocation
  
Several BIOSes assign a small window for i/o access to yenta bridges. But
there are Cardbus cards that needs lots of i/o ports. yenta usually
honors the bios selected values, except if the bios choice is clearly
invalid. The patch allows an override from the command line.

Patch has been in 2.4. for seven months.


Index: 2.6.10/drivers/pcmcia/yenta_socket.c
===================================================================
--- 2.6.10.orig/drivers/pcmcia/yenta_socket.c	2004-12-29 11:34:09.000000000 +0100
+++ 2.6.10/drivers/pcmcia/yenta_socket.c	2004-12-29 22:17:00.903678263 +0100
@@ -42,6 +42,10 @@
 static int yenta_probe_cb_irq(struct yenta_socket *socket);
 
 
+static unsigned int override_bios;
+module_param(override_bios, uint, 0000);
+MODULE_PARM_DESC (override_bios, "yenta ignore bios resource allocation");
+
 /*
  * Generate easy-to-use ways of reading a cardbus sockets
  * regular memory space ("cb_xxx"), configuration space
@@ -551,7 +555,7 @@
 
 	start = config_readl(socket, offset) & mask;
 	end = config_readl(socket, offset+4) | ~mask;
-	if (start && end > start) {
+	if (start && end > start && !override_bios) {
 		res->start = start;
 		res->end = end;
 		if (request_resource(root, res) == 0)



More information about the linux-pcmcia mailing list