Changeset 45306


Ignore:
Timestamp:
2015-04-08T00:06:17+02:00 (3 years ago)
Author:
rmilecki
Message:

kernel: backport ssb patches up to changes queued for 4.1

Signed-off-by: Rafał Miłecki <zajec5@…>

Location:
trunk/target/linux/generic
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/generic/patches-3.18/020-ssb_update.patch

    r43544 r45306  
    7777        return pci_register_driver(driver); 
    7878 } 
     79--- a/drivers/ssb/driver_pcicore.c 
     80+++ b/drivers/ssb/driver_pcicore.c 
     81@@ -357,6 +357,15 @@ static void ssb_pcicore_init_hostmode(st 
     82        pcicore_write32(pc, SSB_PCICORE_SBTOPCI2, 
     83                        SSB_PCICORE_SBTOPCI_MEM | SSB_PCI_DMA); 
     84  
     85+       /* 
     86+        * Accessing PCI config without a proper delay after devices reset (not 
     87+        * GPIO reset) was causing reboots on WRT300N v1.0. 
     88+        * Tested delay 850 us lowered reboot chance to 50-80%, 1000 us fixed it 
     89+        * completely. Flushing all writes was also tested but with no luck. 
     90+        */ 
     91+       if (pc->dev->bus->chip_id == 0x4704) 
     92+               usleep_range(1000, 2000); 
     93+ 
     94        /* Enable PCI bridge BAR0 prefetch and burst */ 
     95        val = PCI_COMMAND_MASTER | PCI_COMMAND_MEMORY; 
     96        ssb_extpci_write_config(pc, 0, 0, 0, PCI_COMMAND, &val, 2); 
     97--- a/drivers/ssb/main.c 
     98+++ b/drivers/ssb/main.c 
     99@@ -90,25 +90,6 @@ found: 
     100 } 
     101 #endif /* CONFIG_SSB_PCMCIAHOST */ 
     102  
     103-#ifdef CONFIG_SSB_SDIOHOST 
     104-struct ssb_bus *ssb_sdio_func_to_bus(struct sdio_func *func) 
     105-{ 
     106-       struct ssb_bus *bus; 
     107- 
     108-       ssb_buses_lock(); 
     109-       list_for_each_entry(bus, &buses, list) { 
     110-               if (bus->bustype == SSB_BUSTYPE_SDIO && 
     111-                   bus->host_sdio == func) 
     112-                       goto found; 
     113-       } 
     114-       bus = NULL; 
     115-found: 
     116-       ssb_buses_unlock(); 
     117- 
     118-       return bus; 
     119-} 
     120-#endif /* CONFIG_SSB_SDIOHOST */ 
     121- 
     122 int ssb_for_each_bus_call(unsigned long data, 
     123                          int (*func)(struct ssb_bus *bus, unsigned long data)) 
     124 { 
     125@@ -1154,6 +1135,8 @@ static u32 ssb_tmslow_reject_bitmask(str 
     126        case SSB_IDLOW_SSBREV_25:     /* TODO - find the proper REJECT bit */ 
     127        case SSB_IDLOW_SSBREV_27:     /* same here */ 
     128                return SSB_TMSLOW_REJECT;       /* this is a guess */ 
     129+       case SSB_IDLOW_SSBREV: 
     130+               break; 
     131        default: 
     132                WARN(1, KERN_INFO "ssb: Backplane Revision 0x%.8X\n", rev); 
     133        } 
Note: See TracChangeset for help on using the changeset viewer.