serial: serial_cs: oxsemi quirk breaks resume
Pavel Machek [Wed, 9 Dec 2009 20:31:31 +0000 (12:31 -0800)]
Quirk is applied on all cards with given manfid (is it that correct?).
Unfortunately, that quirk breaks resume on zaurus with billionton
bluetooth card inserted: c950ctrl is 0 and outb() faults.

I believe it is simply not a multiport card.  (info->multi == 1).  ...
...  confirmed by printks.

Signed-off-by: Pavel Machek <pavel@ucw.cz>
Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

drivers/serial/serial_cs.c

index 0ee7239..df85440 100644 (file)
@@ -146,7 +146,8 @@ static void quirk_wakeup_oxsemi(struct pcmcia_device *link)
 {
        struct serial_info *info = link->priv;
 
-       outb(12, info->c950ctrl + 1);
+       if (info->c950ctrl)
+               outb(12, info->c950ctrl + 1);
 }
 
 /* request_region? oxsemi branch does no request_region too... */