[PATCH] pcmcia/at91_cf: don't redefine SZ_2K

2009-12-20 Thread Uwe Kleine-König
This fixes:

drivers/pcmcia/at91_cf.c:55:1: warning: SZ_2K redefined

Since

c1191b0 ([ARM] Kirkwood: create a mapping for the Security Accelerator 
SRAM)

SZ_2K is defined in arch/arm/include/asm/sizes.h.

Signed-off-by: Uwe Kleine-König u.kleine-koe...@pengutronix.de
---
 drivers/pcmcia/at91_cf.c |2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/drivers/pcmcia/at91_cf.c b/drivers/pcmcia/at91_cf.c
index e1dcced..5d22807 100644
--- a/drivers/pcmcia/at91_cf.c
+++ b/drivers/pcmcia/at91_cf.c
@@ -52,8 +52,6 @@ struct at91_cf_socket {
unsigned long   phys_baseaddr;
 };
 
-#defineSZ_2K   (2 * SZ_1K)
-
 static inline int at91_cf_present(struct at91_cf_socket *cf)
 {
return !gpio_get_value(cf-board-det_pin);
-- 
1.6.5.2


___
Linux PCMCIA reimplementation list
http://lists.infradead.org/mailman/listinfo/linux-pcmcia


Re: Re: [BUG? kernel 2.6.32-git10] 3com 3c562 multifunction card does not work

2009-12-20 Thread Komuro

Hi,

I think the resource problem is fixed.

but if I connect the 3Com 3c562 and boot the linux,
the mac address of 3c562 sometimes becomes ff:ff:ff:ff:ff:ff.
the mac address becomes normal after replugging it.

pcmcia 0.0: pcmcia: registering new device pcmcia0.0
pcmcia 0.1: pcmcia: registering new device pcmcia0.1
0.1: ttyS0 at I/O 0x3f8 (irq = 3) is a 16550A
3c589_cs 0.0: pcmcia: could not parse base and rmask0 of CIS
eth0: 3Com 3c562, io 0x300, irq 3, hw_addr ff:ff:ff:ff:ff:ff
  32K FIFO split 3:5 Rx:Tx, auto xcvr

Best Regards
Komuro

Hey,

On Sun, Dec 20, 2009 at 03:11:05PM +0900, Komuro wrote:
 Any chance you could bisect it further? Also, does lspci -vvv,
 /proc/ioports and/or /proc/iomem change between -git7 and -git8?
 

Could you test this patch, please?

Best,
   Dominik

From: Dominik Brodowski li...@dominikbrodowski.net
Date: Sun, 20 Dec 2009 10:04:56 +0100
Subject: [PATCH] resources: fix call to alignf() in allocate_resource()

The second parameter to alignf() in allocate_resource() must
reflect what new resource is attempted to be allocated, else
functions like pcibios_align_resource() (at least on x86) or
pcmcia_align() can't work correctly.

Commit 1e5ad9679016275d422e36b12a98b0927d76f556 broke this by
setting the new resource until we're about to return success.
To keep the resource untouched when allocate_resource() fails,
a tmp resource is introduced.

CC: Linus Torvalds torva...@linux-foundation.org
CC: Yinghai Lu yhlu.ker...@gmail.com
CC: Bjorn Helgaas bjorn.helg...@hp.com
CC: Jesse Barnes jbar...@virtuousgeek.org
Signed-off-by: Dominik Brodowski li...@dominikbrodowski.net

diff --git a/kernel/resource.c b/kernel/resource.c
index dc15686..af96c1e 100644
--- a/kernel/resource.c
+++ b/kernel/resource.c
@@ -308,37 +308,37 @@ static int find_resource(struct resource *root, struct 
resource *new,
void *alignf_data)
 {
   struct resource *this = root-child;
-  resource_size_t start, end;
+  struct resource tmp = *new;
 
-  start = root-start;
+  tmp.start = root-start;
   /*
* Skip past an allocated resource that starts at 0, since the 
 assignment
-   * of this-start - 1 to new-end below would cause an underflow.
+   * of this-start - 1 to tmp-end below would cause an underflow.
*/
   if (this  this-start == 0) {
-  start = this-end + 1;
+  tmp.start = this-end + 1;
   this = this-sibling;
   }
   for(;;) {
   if (this)
-  end = this-start - 1;
+  tmp.end = this-start - 1;
   else
-  end = root-end;
-  if (start  min)
-  start = min;
-  if (end  max)
-  end = max;
-  start = ALIGN(start, align);
+  tmp.end = root-end;
+  if (tmp.start  min)
+  tmp.start = min;
+  if (tmp.end  max)
+  tmp.end = max;
+  tmp.start = ALIGN(tmp.start, align);
   if (alignf)
-  alignf(alignf_data, new, size, align);
-  if (start  end  end - start = size - 1) {
-  new-start = start;
-  new-end = start + size - 1;
+  alignf(alignf_data, tmp, size, align);
+  if (tmp.start  tmp.end  tmp.end - tmp.start = size - 1) {
+  new-start = tmp.start;
+  new-end = tmp.start + size - 1;
   return 0;
   }
   if (!this)
   break;
-  start = this-end + 1;
+  tmp.start = this-end + 1;
   this = this-sibling;
   }
   return -EBUSY;


___
Linux PCMCIA reimplementation list
http://lists.infradead.org/mailman/listinfo/linux-pcmcia