int busnum;
};
-@@ -261,23 +261,20 @@ static void add_resources(struct pci_roo
+@@ -275,23 +275,20 @@ static void add_resources(struct pci_roo
"ignoring host bridge window %pR (conflicts with %s %pR)\n",
res, conflict->name, conflict);
else
acpi_walk_resources(device->handle, METHOD_NAME__CRS, count_resource,
&info);
if (!info.res_num)
-@@ -286,7 +283,7 @@ get_current_resources(struct acpi_device
+@@ -300,7 +297,7 @@ get_current_resources(struct acpi_device
size = sizeof(*info.res) * info.res_num;
info.res = kmalloc(size, GFP_KERNEL);
if (!info.res)
info.name = kasprintf(GFP_KERNEL, "PCI Bus %04x:%02x", domain, busnum);
if (!info.name)
-@@ -301,8 +298,6 @@ get_current_resources(struct acpi_device
+@@ -315,8 +312,6 @@ get_current_resources(struct acpi_device
name_alloc_fail:
kfree(info.res);
}
struct pci_bus * __devinit pci_acpi_scan_root(struct acpi_pci_root *root)
-@@ -310,6 +305,7 @@ struct pci_bus * __devinit pci_acpi_scan
+@@ -324,6 +319,7 @@ struct pci_bus * __devinit pci_acpi_scan
struct acpi_device *device = root->device;
int domain = root->segment;
int busnum = root->secondary.start;
struct pci_bus *bus;
struct pci_sysdata *sd;
int node;
-@@ -364,11 +360,15 @@ struct pci_bus * __devinit pci_acpi_scan
+@@ -378,11 +374,15 @@ struct pci_bus * __devinit pci_acpi_scan
memcpy(bus->sysdata, sd, sizeof(*sd));
kfree(sd);
} else {
static int bcma_get_next_core(struct bcma_bus *bus, u32 __iomem **eromptr,
struct bcma_device_id *match, int core_num,
struct bcma_device *core)
-@@ -407,6 +418,7 @@ int bcma_bus_scan(struct bcma_bus *bus)
+@@ -392,6 +403,7 @@ int bcma_bus_scan(struct bcma_bus *bus)
bcma_scan_switch_core(bus, erombase);
while (eromptr < eromend) {
struct bcma_device *core = kzalloc(sizeof(*core), GFP_KERNEL);
if (!core)
return -ENOMEM;
-@@ -426,6 +438,8 @@ int bcma_bus_scan(struct bcma_bus *bus)
+@@ -411,6 +423,8 @@ int bcma_bus_scan(struct bcma_bus *bus)
core->core_index = core_num++;
bus->nr_cores++;
+ u8 core_unit;
u32 addr;
- u32 addr1;
+ u32 wrap;
if (err) {
--- a/include/linux/bcma/bcma.h
+++ b/include/linux/bcma/bcma.h
-@@ -197,6 +197,7 @@ struct bcma_bus {
+@@ -196,6 +196,7 @@ struct bcma_bus {
struct list_head cores;
u8 nr_cores;
u8 init_done:1;
--- a/drivers/bcma/host_pci.c
+++ b/drivers/bcma/host_pci.c
-@@ -275,6 +275,7 @@ static DEFINE_PCI_DEVICE_TABLE(bcma_pci_
+@@ -278,6 +278,7 @@ static DEFINE_PCI_DEVICE_TABLE(bcma_pci_
{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4353) },
{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4357) },
{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4727) },
+ if (pc->cardbusmode && (dev > 1))
goto out;
- /* Type 0 transaction */
+ if (bus == 0) {
--- a/drivers/bcma/scan.c
+++ b/drivers/bcma/scan.c
-@@ -380,6 +380,7 @@ static int bcma_get_next_core(struct bcm
+@@ -364,6 +364,7 @@ static int bcma_get_next_core(struct bcm
void bcma_init_bus(struct bcma_bus *bus)
{
s32 tmp;
if (bus->init_done)
return;
-@@ -390,9 +391,12 @@ void bcma_init_bus(struct bcma_bus *bus)
+@@ -374,9 +375,12 @@ void bcma_init_bus(struct bcma_bus *bus)
bcma_scan_switch_core(bus, BCMA_ADDR_BASE);
tmp = bcma_scan_read32(bus, 0, BCMA_CC_ID);
drivers/ssb/ssb_private.h | 4 +++
4 files changed, 53 insertions(+), 5 deletions(-)
-diff --git a/drivers/ssb/driver_chipcommon_pmu.c b/drivers/ssb/driver_chipcommon_pmu.c
-index e5a2e0e..b58fef7 100644
--- a/drivers/ssb/driver_chipcommon_pmu.c
+++ b/drivers/ssb/driver_chipcommon_pmu.c
@@ -13,6 +13,9 @@
#include "ssb_private.h"
-@@ -92,10 +95,6 @@ static void ssb_pmu0_pllinit_r0(struct ssb_chipcommon *cc,
+@@ -92,10 +95,6 @@ static void ssb_pmu0_pllinit_r0(struct s
u32 pmuctl, tmp, pllctl;
unsigned int i;
if (crystalfreq)
e = pmu0_plltab_find_entry(crystalfreq);
if (!e)
-@@ -321,7 +320,11 @@ static void ssb_pmu_pll_init(struct ssb_chipcommon *cc)
+@@ -321,7 +320,11 @@ static void ssb_pmu_pll_init(struct ssb_
u32 crystalfreq = 0; /* in kHz. 0 = keep default freq. */
if (bus->bustype == SSB_BUSTYPE_SSB) {
}
switch (bus->chip_id) {
-@@ -330,7 +333,11 @@ static void ssb_pmu_pll_init(struct ssb_chipcommon *cc)
+@@ -330,7 +333,11 @@ static void ssb_pmu_pll_init(struct ssb_
ssb_pmu1_pllinit_r0(cc, crystalfreq);
break;
case 0x4328:
ssb_pmu0_pllinit_r0(cc, crystalfreq);
break;
case 0x4322:
-@@ -607,3 +614,34 @@ void ssb_pmu_set_ldo_paref(struct ssb_chipcommon *cc, bool on)
+@@ -607,3 +614,34 @@ void ssb_pmu_set_ldo_paref(struct ssb_ch
EXPORT_SYMBOL(ssb_pmu_set_ldo_voltage);
EXPORT_SYMBOL(ssb_pmu_set_ldo_paref);
+ return 0;
+ }
+}
-diff --git a/drivers/ssb/driver_mipscore.c b/drivers/ssb/driver_mipscore.c
-index ced5015..d784ec8 100644
--- a/drivers/ssb/driver_mipscore.c
+++ b/drivers/ssb/driver_mipscore.c
-@@ -208,6 +208,9 @@ u32 ssb_cpu_clock(struct ssb_mipscore *mcore)
+@@ -232,6 +232,9 @@ u32 ssb_cpu_clock(struct ssb_mipscore *m
struct ssb_bus *bus = mcore->dev->bus;
u32 pll_type, n, m, rate = 0;
if (bus->extif.dev) {
ssb_extif_get_clockcontrol(&bus->extif, &pll_type, &n, &m);
} else if (bus->chipco.dev) {
-diff --git a/drivers/ssb/main.c b/drivers/ssb/main.c
-index bb6317f..d109cf0 100644
--- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c
@@ -1094,6 +1094,9 @@ u32 ssb_clockspeed(struct ssb_bus *bus)
if (ssb_extif_available(&bus->extif))
ssb_extif_get_clockcontrol(&bus->extif, &plltype,
&clkctl_n, &clkctl_m);
-diff --git a/drivers/ssb/ssb_private.h b/drivers/ssb/ssb_private.h
-index 7765301..a305550 100644
--- a/drivers/ssb/ssb_private.h
+++ b/drivers/ssb/ssb_private.h
-@@ -207,4 +207,8 @@ static inline void b43_pci_ssb_bridge_exit(void)
+@@ -211,4 +211,8 @@ static inline void b43_pci_ssb_bridge_ex
}
#endif /* CONFIG_SSB_B43_PCI_BRIDGE */
+extern u32 ssb_pmu_get_controlclock(struct ssb_chipcommon *cc);
+
#endif /* LINUX_SSB_PRIVATE_H_ */
---
-1.7.5.4
-
--- a/drivers/ssb/driver_pcicore.c
+++ b/drivers/ssb/driver_pcicore.c
-@@ -373,7 +373,7 @@ static void __devinit ssb_pcicore_init_h
+@@ -376,7 +376,7 @@ static void __devinit ssb_pcicore_init_h
set_io_port_base(ssb_pcicore_controller.io_map_base);
/* Give some time to the PCI controller to configure itself with the new
* values. Not waiting at this point causes crashes of the machine. */