|
|
|
@ -1,5 +1,13 @@ |
|
|
|
|
--- a/drivers/net/b44.c
|
|
|
|
|
+++ b/drivers/net/b44.c
|
|
|
|
|
---
|
|
|
|
|
drivers/net/b44.c | 146 +++++++++++++++------------------
|
|
|
|
|
drivers/ssb/driver_chipcommon.c | 24 +++++
|
|
|
|
|
drivers/ssb/driver_chipcommon_pmu.c | 17 +--
|
|
|
|
|
drivers/ssb/main.c | 76 -----------------
|
|
|
|
|
include/linux/ssb/ssb.h | 159 ------------------------------------
|
|
|
|
|
5 files changed, 104 insertions(+), 318 deletions(-)
|
|
|
|
|
|
|
|
|
|
--- linux-2.6.35.3.orig/drivers/net/b44.c
|
|
|
|
|
+++ linux-2.6.35.3/drivers/net/b44.c
|
|
|
|
|
@@ -135,7 +135,6 @@ static void b44_init_rings(struct b44 *)
|
|
|
|
|
|
|
|
|
|
static void b44_init_hw(struct b44 *, int);
|
|
|
|
@ -315,8 +323,8 @@ |
|
|
|
|
dma_desc_sync_size = max_t(unsigned int, dma_desc_align_size, sizeof(struct dma_desc));
|
|
|
|
|
|
|
|
|
|
err = b44_pci_init();
|
|
|
|
|
--- a/drivers/ssb/driver_chipcommon.c
|
|
|
|
|
+++ b/drivers/ssb/driver_chipcommon.c
|
|
|
|
|
--- linux-2.6.35.3.orig/drivers/ssb/driver_chipcommon.c
|
|
|
|
|
+++ linux-2.6.35.3/drivers/ssb/driver_chipcommon.c
|
|
|
|
|
@@ -209,6 +209,24 @@ static void chipco_powercontrol_init(str
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -355,16 +363,8 @@ |
|
|
|
|
if (!(cc->capabilities & SSB_CHIPCO_CAP_PCTL))
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
@@ -235,6 +259,7 @@ void ssb_chipcommon_init(struct ssb_chip
|
|
|
|
|
return; /* We don't have a ChipCommon */
|
|
|
|
|
if (cc->dev->id.revision >= 11)
|
|
|
|
|
cc->status = chipco_read32(cc, SSB_CHIPCO_CHIPSTAT);
|
|
|
|
|
+ ssb_dprintk(KERN_INFO PFX "chipcommon status is 0x%x\n", cc->status);
|
|
|
|
|
ssb_pmu_init(cc);
|
|
|
|
|
chipco_powercontrol_init(cc);
|
|
|
|
|
ssb_chipco_set_clockmode(cc, SSB_CLKMODE_FAST);
|
|
|
|
|
--- a/drivers/ssb/driver_chipcommon_pmu.c
|
|
|
|
|
+++ b/drivers/ssb/driver_chipcommon_pmu.c
|
|
|
|
|
--- linux-2.6.35.3.orig/drivers/ssb/driver_chipcommon_pmu.c
|
|
|
|
|
+++ linux-2.6.35.3/drivers/ssb/driver_chipcommon_pmu.c
|
|
|
|
|
@@ -502,9 +502,9 @@ static void ssb_pmu_resources_init(struc
|
|
|
|
|
chipco_write32(cc, SSB_CHIPCO_PMU_MAXRES_MSK, max_msk);
|
|
|
|
|
}
|
|
|
|
@ -398,8 +398,8 @@ |
|
|
|
|
ssb_pmu_pll_init(cc);
|
|
|
|
|
ssb_pmu_resources_init(cc);
|
|
|
|
|
}
|
|
|
|
|
--- a/drivers/ssb/main.c
|
|
|
|
|
+++ b/drivers/ssb/main.c
|
|
|
|
|
--- linux-2.6.35.3.orig/drivers/ssb/main.c
|
|
|
|
|
+++ linux-2.6.35.3/drivers/ssb/main.c
|
|
|
|
|
@@ -486,6 +486,7 @@ static int ssb_devices_register(struct s
|
|
|
|
|
#ifdef CONFIG_SSB_PCIHOST
|
|
|
|
|
sdev->irq = bus->host_pci->irq;
|
|
|
|
@ -497,35 +497,8 @@ |
|
|
|
|
int ssb_bus_may_powerdown(struct ssb_bus *bus)
|
|
|
|
|
{
|
|
|
|
|
struct ssb_chipcommon *cc;
|
|
|
|
|
--- a/drivers/ssb/pci.c
|
|
|
|
|
+++ b/drivers/ssb/pci.c
|
|
|
|
|
@@ -626,11 +626,22 @@ static int ssb_pci_sprom_get(struct ssb_
|
|
|
|
|
return -ENODEV;
|
|
|
|
|
}
|
|
|
|
|
if (bus->chipco.dev) { /* can be unavailible! */
|
|
|
|
|
- bus->sprom_offset = (bus->chipco.dev->id.revision < 31) ?
|
|
|
|
|
- SSB_SPROM_BASE1 : SSB_SPROM_BASE31;
|
|
|
|
|
+ /*
|
|
|
|
|
+ * get SPROM offset: SSB_SPROM_BASE1 except for
|
|
|
|
|
+ * chipcommon rev >= 31 or chip ID is 0x4312 and
|
|
|
|
|
+ * chipcommon status & 3 == 2
|
|
|
|
|
+ */
|
|
|
|
|
+ if (bus->chipco.dev->id.revision >= 31)
|
|
|
|
|
+ bus->sprom_offset = SSB_SPROM_BASE31;
|
|
|
|
|
+ else if (bus->chip_id == 0x4312 &&
|
|
|
|
|
+ (bus->chipco.status & 0x03) == 2)
|
|
|
|
|
+ bus->sprom_offset = SSB_SPROM_BASE31;
|
|
|
|
|
+ else
|
|
|
|
|
+ bus->sprom_offset = SSB_SPROM_BASE1;
|
|
|
|
|
} else {
|
|
|
|
|
bus->sprom_offset = SSB_SPROM_BASE1;
|
|
|
|
|
}
|
|
|
|
|
+ ssb_dprintk(KERN_INFO PFX "SPROM offset is 0x%x\n", bus->sprom_offset);
|
|
|
|
|
|
|
|
|
|
buf = kcalloc(SSB_SPROMSIZE_WORDS_R123, sizeof(u16), GFP_KERNEL);
|
|
|
|
|
if (!buf)
|
|
|
|
|
--- a/include/linux/ssb/ssb.h
|
|
|
|
|
+++ b/include/linux/ssb/ssb.h
|
|
|
|
|
--- linux-2.6.35.3.orig/include/linux/ssb/ssb.h
|
|
|
|
|
+++ linux-2.6.35.3/include/linux/ssb/ssb.h
|
|
|
|
|
@@ -167,7 +167,7 @@ struct ssb_device {
|
|
|
|
|
* is an optimization. */
|
|
|
|
|
const struct ssb_bus_ops *ops;
|
|
|
|
|