--- /dev/null
+diff -urp orinoco-0.15rc2/hermes.h orinoco-0.15rc2-2.6.10/hermes.h
+--- orinoco-0.15rc2/hermes.h 2004-07-28 08:06:45.000000000 +0200
++++ orinoco-0.15rc2-2.6.10/hermes.h 2005-01-07 15:02:07.000000000 +0100
+@@ -366,12 +366,12 @@ typedef struct hermes {
+ /* Register access convenience macros */
+ #define hermes_read_reg(hw, off) ((hw)->io_space ? \
+ inw((hw)->iobase + ( (off) << (hw)->reg_spacing )) : \
+- readw((hw)->iobase + ( (off) << (hw)->reg_spacing )))
++ readw((void *)(hw)->iobase + ( (off) << (hw)->reg_spacing )))
+ #define hermes_write_reg(hw, off, val) do { \
+ if ((hw)->io_space) \
+ outw_p((val), (hw)->iobase + ((off) << (hw)->reg_spacing)); \
+ else \
+- writew((val), (hw)->iobase + ((off) << (hw)->reg_spacing)); \
++ writew((val), (void *)(hw)->iobase + ((off) << (hw)->reg_spacing)); \
+ } while (0)
+ #define hermes_read_regn(hw, name) hermes_read_reg((hw), HERMES_##name)
+ #define hermes_write_regn(hw, name, val) hermes_write_reg((hw), HERMES_##name, (val))
+@@ -444,7 +444,7 @@ static inline void hermes_read_words(str
+ * gcc is smart enough to fold away the two swaps on
+ * big-endian platforms. */
+ for (i = 0, p = buf; i < count; i++) {
+- *p++ = cpu_to_le16(readw(hw->iobase + off));
++ *p++ = cpu_to_le16(readw((void *)(hw->iobase + off)));
+ }
+ }
+ }
+@@ -464,7 +464,7 @@ static inline void hermes_write_words(st
+ * hope gcc is smart enough to fold away the two swaps
+ * on big-endian platforms. */
+ for (i = 0, p = buf; i < count; i++) {
+- writew(le16_to_cpu(*p++), hw->iobase + off);
++ writew(le16_to_cpu(*p++), (void *)(hw->iobase + off));
+ }
+ }
+ }
+@@ -480,7 +480,7 @@ static inline void hermes_clear_words(st
+ outw(0, hw->iobase + off);
+ } else {
+ for (i = 0; i < count; i++)
+- writew(0, hw->iobase + off);
++ writew(0, (void *)(hw->iobase + off));
+ }
+ }
+
+diff -urp orinoco-0.15rc2/orinoco_pci.c orinoco-0.15rc2-2.6.10/orinoco_pci.c
+--- orinoco-0.15rc2/orinoco_pci.c 2004-07-28 08:06:45.000000000 +0200
++++ orinoco-0.15rc2-2.6.10/orinoco_pci.c 2005-01-07 15:08:40.902021640 +0100
+@@ -327,7 +327,11 @@ static int orinoco_pci_suspend(struct pc
+
+ orinoco_unlock(priv, &flags);
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)
+ pci_save_state(pdev, card->pci_state);
++#else
++ pci_save_state(pdev);
++#endif
+ pci_set_power_state(pdev, 3);
+
+ return 0;
+@@ -344,8 +348,11 @@ static int orinoco_pci_resume(struct pci
+ printk(KERN_DEBUG "%s: Orinoco-PCI waking up\n", dev->name);
+
+ pci_set_power_state(pdev, 0);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)
+ pci_restore_state(pdev, card->pci_state);
+-
++#else
++ pci_restore_state(pdev);
++#endif
+ err = orinoco_reinit_firmware(dev);
+ if (err) {
+ printk(KERN_ERR "%s: Error %d re-initializing firmware on orinoco_pci_resume()\n",