X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/57f741c35c1bb7288b3cfd2d627032af60eb4a65..697a309ede936843ca8e1510827f0e7544237873:/target/linux/brcm47xx/patches-2.6.23/220-bcm5354.patch diff --git a/target/linux/brcm47xx/patches-2.6.23/220-bcm5354.patch b/target/linux/brcm47xx/patches-2.6.23/220-bcm5354.patch index ca31af912..53818aba6 100644 --- a/target/linux/brcm47xx/patches-2.6.23/220-bcm5354.patch +++ b/target/linux/brcm47xx/patches-2.6.23/220-bcm5354.patch @@ -1,6 +1,8 @@ ---- files/drivers/ssb/driver_chipcommon.c 2007-10-24 16:57:38.000000000 -0700 -+++ linux-2.6.23.1/drivers/ssb/driver_chipcommon.c 2007-10-27 13:27:06.000000000 -0700 -@@ -268,6 +268,8 @@ +Index: linux-2.6.23.16/drivers/ssb/driver_chipcommon.c +=================================================================== +--- linux-2.6.23.16.orig/drivers/ssb/driver_chipcommon.c 2008-02-19 13:46:08.000000000 +0100 ++++ linux-2.6.23.16/drivers/ssb/driver_chipcommon.c 2008-02-19 13:46:17.000000000 +0100 +@@ -270,6 +270,8 @@ void ssb_chipco_resume(struct ssb_chipco void ssb_chipco_get_clockcpu(struct ssb_chipcommon *cc, u32 *plltype, u32 *n, u32 *m) { @@ -9,7 +11,7 @@ *n = chipco_read32(cc, SSB_CHIPCO_CLOCK_N); *plltype = (cc->capabilities & SSB_CHIPCO_CAP_PLLT); switch (*plltype) { -@@ -291,6 +293,8 @@ +@@ -293,6 +295,8 @@ void ssb_chipco_get_clockcpu(struct ssb_ void ssb_chipco_get_clockcontrol(struct ssb_chipcommon *cc, u32 *plltype, u32 *n, u32 *m) { @@ -18,25 +20,11 @@ *n = chipco_read32(cc, SSB_CHIPCO_CLOCK_N); *plltype = (cc->capabilities & SSB_CHIPCO_CAP_PLLT); switch (*plltype) { -@@ -387,7 +376,14 @@ - chipco_read32(cc, SSB_CHIPCO_CLOCK_M2)); - div = 1; - } else { -- if (cc->dev->id.revision >= 11) { -+ if (cc->dev->id.revision == 20) { -+ /* BCM5354 uses constant 25MHz clock */ -+ baud_base = 25000000; -+ div = 48; -+ /* Set the override bit so we don't divide it */ -+ chipco_write32(cc, SSB_CHIPCO_CORECTL, -+ SSB_CHIPCO_CORECTL_UARTCLK0); -+ } else if (cc->dev->id.revision >= 11) { - /* Fixed ALP clock */ - baud_base = 20000000; - div = 1; ---- files/drivers/ssb/driver_mipscore.c 2007-10-24 16:57:38.000000000 -0700 -+++ linux-2.6.23.1/drivers/ssb/driver_mipscore.c 2007-10-27 13:29:36.000000000 -0700 -@@ -160,6 +160,8 @@ +Index: linux-2.6.23.16/drivers/ssb/driver_mipscore.c +=================================================================== +--- linux-2.6.23.16.orig/drivers/ssb/driver_mipscore.c 2008-02-19 13:46:08.000000000 +0100 ++++ linux-2.6.23.16/drivers/ssb/driver_mipscore.c 2008-02-19 13:46:17.000000000 +0100 +@@ -160,6 +160,8 @@ u32 ssb_cpu_clock(struct ssb_mipscore *m if ((pll_type == SSB_PLLTYPE_5) || (bus->chip_id == 0x5365)) { rate = 200000000; @@ -45,9 +33,11 @@ } else { rate = ssb_calc_clock_rate(pll_type, n, m); } ---- files/drivers/ssb/main.c 2007-10-24 16:57:38.000000000 -0700 -+++ linux-2.6.23.1/drivers/ssb/main.c 2007-10-27 13:30:59.000000000 -0700 -@@ -864,6 +864,8 @@ +Index: linux-2.6.23.16/drivers/ssb/main.c +=================================================================== +--- linux-2.6.23.16.orig/drivers/ssb/main.c 2008-02-19 13:46:08.000000000 +0100 ++++ linux-2.6.23.16/drivers/ssb/main.c 2008-02-19 13:46:17.000000000 +0100 +@@ -862,6 +862,8 @@ u32 ssb_clockspeed(struct ssb_bus *bus) if (bus->chip_id == 0x5365) { rate = 100000000;