serial: serial_cs: oxsemi quirk breaks resume
authorPavel Machek <pavel@ucw.cz>
Wed, 9 Dec 2009 20:31:31 +0000 (12:31 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 20 Jan 2010 23:03:31 +0000 (15:03 -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 0ee7239c5d694aa3c5b05f1c05e246d975e11c35..df854401af2d1eaaa2e8c9f35bea6836bcda0c0a 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... */