VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / drivers / pcmcia / o2micro.h
index f4ccd84..adbe8a7 100644 (file)
 #define  O2_MODE_E_LED_OUT     0x08
 #define  O2_MODE_E_SKTA_ACTV   0x10
 
+static int o2micro_override(struct yenta_socket *socket)
+{
+       /*
+        * 'reserved' register at 0x94/D4. chaning it to 0xCA (8 bit) enables
+        * read prefetching which for example makes the RME Hammerfall DSP
+        * working. for some bridges it is at 0x94, for others at 0xD4. it's
+        * ok to write to both registers on all O2 bridges.
+        * from Eric Still, 02Micro.
+        */
+       if (PCI_FUNC(socket->dev->devfn) == 0) {
+               config_writeb(socket, 0x94, 0xCA);
+               config_writeb(socket, 0xD4, 0xCA);
+       }
+
+       return 0;
+}
+
+static void o2micro_restore_state(struct yenta_socket *socket)
+{
+       /*
+        * as long as read prefetch is the only thing in
+        * o2micro_override, it's safe to call it from here
+        */
+       o2micro_override(socket);
+}
+
 #endif /* _LINUX_O2MICRO_H */