serial: serial_cs: oxsemi quirk breaks resume
authorPavel Machek <[email protected]>
Wed, 9 Dec 2009 20:31:31 +0000 (12:31 -0800)
committerGreg Kroah-Hartman <[email protected]>
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 <[email protected]>
Acked-by: Alan Cox <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
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... */