- patches.fixes/patch-2.6.11-rc1: 2.6.11-rc1.
[linux-flexiantxendom0-3.2.10.git] / drivers / pcmcia / ti113x.h
index 315f634..b9f3e3f 100644 (file)
@@ -592,15 +592,20 @@ out:
 
 static int ti12xx_override(struct yenta_socket *socket)
 {
-       u32 val;
+       u32 val, val_orig;
 
        /* make sure that memory burst is active */
-       val = config_readl(socket, TI113X_SYSTEM_CONTROL);
+       val_orig = val = config_readl(socket, TI113X_SYSTEM_CONTROL);
+       if (disable_clkrun && PCI_FUNC(socket->dev->devfn) == 0) {
+               printk(KERN_INFO "Yenta: Disabling CLKRUN feature\n");
+               val |= TI113X_SCR_KEEPCLK;
+       }
        if (!(val & TI122X_SCR_MRBURSTUP)) {
                printk(KERN_INFO "Yenta: Enabling burst memory read transactions\n");
                val |= TI122X_SCR_MRBURSTUP;
-               config_writel(socket, TI113X_SYSTEM_CONTROL, val);
        }
+       if (val_orig != val)
+               config_writel(socket, TI113X_SYSTEM_CONTROL, val);
 
        /*
         * for EnE bridges only: clear testbit TLTEnable. this makes the