kernel: remove imq support, refresh patches
[openwrt/svn-archive/archive.git] / target / linux / generic / patches-2.6.32 / 975-ssb_update.patch
index e9568f42b66452c8c7844d9a54fa14ddcb0942d9..0cb84830212b8fc25a13b99ef2df9f9b3adeec93 100644 (file)
        }
  
        return err;
---- a/drivers/ssb/pci.c
-+++ b/drivers/ssb/pci.c
-@@ -17,6 +17,7 @@
- #include <linux/ssb/ssb.h>
- #include <linux/ssb/ssb_regs.h>
-+#include <linux/slab.h>
- #include <linux/pci.h>
- #include <linux/delay.h>
-@@ -642,6 +643,14 @@ static int ssb_pci_sprom_get(struct ssb_
-       }
-       ssb_dprintk(KERN_INFO PFX "SPROM offset is 0x%x\n", bus->sprom_offset);
-+      if (!ssb_is_sprom_available(bus)) {
-+              ssb_printk(KERN_ERR PFX "No SPROM available!\n");
-+              return -ENODEV;
-+      }
-+
-+      bus->sprom_offset = (bus->chipco.dev->id.revision < 31) ?
-+              SSB_SPROM_BASE1 : SSB_SPROM_BASE31;
-+
-       buf = kcalloc(SSB_SPROMSIZE_WORDS_R123, sizeof(u16), GFP_KERNEL);
-       if (!buf)
-               goto out;
 --- a/drivers/ssb/pcihost_wrapper.c
 +++ b/drivers/ssb/pcihost_wrapper.c
 @@ -12,6 +12,7 @@
 +static int ssb_pcmcia_get_mac(struct pcmcia_device *p_dev,
 +                      tuple_t *tuple,
 +                      void *priv)
- {
--      tuple_t tuple;
--      int res;
--      unsigned char buf[32];
++{
 +      struct ssb_sprom *sprom = priv;
 +
 +      if (tuple->TupleData[0] != CISTPL_FUNCE_LAN_NODE_ID)
 +static int ssb_pcmcia_do_get_invariants(struct pcmcia_device *p_dev,
 +                                      tuple_t *tuple,
 +                                      void *priv)
-+{
+ {
+-      tuple_t tuple;
+-      int res;
+-      unsigned char buf[32];
 +      struct ssb_init_invariants *iv = priv;
        struct ssb_sprom *sprom = &iv->sprom;
        struct ssb_boardinfo *bi = &iv->boardinfo;
        if (err)
                ssb_printk(KERN_ERR PFX "SPROM write: Could not thaw all devices\n");
  out_unlock:
-@@ -192,5 +189,19 @@ bool ssb_is_sprom_available(struct ssb_b
-           bus->chipco.dev->id.revision >= 31)
-               return bus->chipco.capabilities & SSB_CHIPCO_CAP_SPROM;
-+      return true;
-+}
-+
-+/* http://bcm-v4.sipsolutions.net/802.11/IsSpromAvailable */
-+bool ssb_is_sprom_available(struct ssb_bus *bus)
-+{
-+      /* status register only exists on chipcomon rev >= 11 and we need check
-+         for >= 31 only */
-+      /* this routine differs from specs as we do not access SPROM directly
-+         on PCMCIA */
-+      if (bus->bustype == SSB_BUSTYPE_PCI &&
-+          bus->chipco.dev->id.revision >= 31)
-+              return bus->chipco.capabilities & SSB_CHIPCO_CAP_SPROM;
-+
-       return true;
- }
 --- a/drivers/ssb/ssb_private.h
 +++ b/drivers/ssb/ssb_private.h
 @@ -176,19 +176,27 @@ extern const struct ssb_sprom *ssb_get_f
  
        /* See enum ssb_quirks */
        unsigned int quirks;
-@@ -393,6 +397,9 @@ extern void ssb_bus_unregister(struct ss
- /* Does the device have an SPROM? */
- extern bool ssb_is_sprom_available(struct ssb_bus *bus);
-+
-+/* Does the device have an SPROM? */
-+extern bool ssb_is_sprom_available(struct ssb_bus *bus);
- /* Set a fallback SPROM.
-  * See kdoc at the function definition for complete documentation. */
 --- a/include/linux/ssb/ssb_regs.h
 +++ b/include/linux/ssb/ssb_regs.h
 @@ -198,63 +198,63 @@