X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fpcmcia%2Fti113x.h;h=b9f3e3f21ad6c5ea8db4aaa2c00dd5da60d5dd7b;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=315f634fd7f10377a995a4283c486193015e3e6a;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/drivers/pcmcia/ti113x.h b/drivers/pcmcia/ti113x.h index 315f634fd..b9f3e3f21 100644 --- a/drivers/pcmcia/ti113x.h +++ b/drivers/pcmcia/ti113x.h @@ -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