The series of patches resolve following problems:
- Fix a failure of regstering callback furnction for WLAN - Rename ath6kl for both Ubuntu and Android to let WLAN middleware to use the existing module name. - Fix scanning/ connection problem.
And this patch is based on git://git.linaro.org/landing-teams/working/samsung/kernel.git android-tracking
,Tested on Linaro Android ICS (Origen).
Sangwook Lee (4): ARM: EXYNOS: ORIGEN: fix print statmenet for WLAN drivers: net: mmc: change the order of booting order net: ath6kl: fix module name ARM: EXYNOS: ORIGEN: Add MMC pm_flags for WLAN
arch/arm/mach-exynos/mach-origen.c | 7 ++++++- drivers/Makefile | 2 +- drivers/net/wireless/ath/ath6kl/Makefile | 26 +++++++++++++------------- 3 files changed, 20 insertions(+), 15 deletions(-)
Update print statment to give the correct info when WLAN fails to boot
Signed-off-by: Sangwook Lee sangwook.lee@linaro.org --- arch/arm/mach-exynos/mach-origen.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c index 7ca9e80..de06601 100644 --- a/arch/arm/mach-exynos/mach-origen.c +++ b/arch/arm/mach-exynos/mach-origen.c @@ -524,6 +524,7 @@ static void (*wifi_status_cb)(struct platform_device *, int state); static int origen_wifi_status_register(void (*notify_func) (struct platform_device *, int state)) { + /* Assign sdhci_s3c_notify_change to wifi_status_cb */ if (!notify_func) return -EAGAIN; else @@ -569,8 +570,11 @@ static void origen_wlan_setup_power(bool val) */ static int origen_wifi_set_detect(bool val) { + if (!wifi_status_cb) { - printk(KERN_WARNING "WLAN: Nobody to notify\n"); + pr_warning("ORIGEN: WLAN: No callback \n" + "ORIGEN: WLAN: MMC should boot earlier than net \n"); + return -EAGAIN; } if (true == val) {
This patch makes MMC stack loaded ahead of net device. when kernel boots up. Origen WLAN stack assume that MMC stack is loaded beforehand. Simply change linking order as compiling.
Signed-off-by: Sangwook Lee sangwook.lee@linaro.org --- drivers/Makefile | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/Makefile b/drivers/Makefile index b5d2823..75736a1 100644 --- a/drivers/Makefile +++ b/drivers/Makefile @@ -54,6 +54,7 @@ obj-$(CONFIG_TARGET_CORE) += target/ obj-$(CONFIG_MTD) += mtd/ obj-$(CONFIG_SPI) += spi/ obj-y += hsi/ +obj-y += mmc/ obj-y += net/ obj-$(CONFIG_ATM) += atm/ obj-$(CONFIG_FUSION) += message/ @@ -97,7 +98,6 @@ obj-$(CONFIG_EISA) += eisa/ obj-y += lguest/ obj-$(CONFIG_CPU_FREQ) += cpufreq/ obj-$(CONFIG_CPU_IDLE) += cpuidle/ -obj-y += mmc/ obj-$(CONFIG_MEMSTICK) += memstick/ obj-y += leds/ obj-$(CONFIG_SWITCH) += switch/
On 05/14/2012 10:31 PM, Sangwook Lee wrote:
This patch makes MMC stack loaded ahead of net device. when kernel boots up. Origen WLAN stack assume that MMC stack is loaded beforehand. Simply change linking order as compiling.
Signed-off-by: Sangwook Lee sangwook.lee@linaro.org
drivers/Makefile | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/Makefile b/drivers/Makefile index b5d2823..75736a1 100644 --- a/drivers/Makefile +++ b/drivers/Makefile @@ -54,6 +54,7 @@ obj-$(CONFIG_TARGET_CORE) += target/ obj-$(CONFIG_MTD) += mtd/ obj-$(CONFIG_SPI) += spi/ obj-y += hsi/ +obj-y += mmc/ obj-y += net/ obj-$(CONFIG_ATM) += atm/ obj-$(CONFIG_FUSION) += message/ @@ -97,7 +98,6 @@ obj-$(CONFIG_EISA) += eisa/ obj-y += lguest/ obj-$(CONFIG_CPU_FREQ) += cpufreq/ obj-$(CONFIG_CPU_IDLE) += cpuidle/ -obj-y += mmc/ obj-$(CONFIG_MEMSTICK) += memstick/ obj-y += leds/ obj-$(CONFIG_SWITCH) += switch/
This change is not ok when we try to merge our kernel with unified tree, though I might just push apply it to Samsung LT kernel now. We need to fix this up and get a better solution.
On 16 May 2012 04:46, Tushar Behera tushar.behera@linaro.org wrote:
On 05/14/2012 10:31 PM, Sangwook Lee wrote:
This patch makes MMC stack loaded ahead of net device. when kernel boots up. Origen WLAN stack assume that MMC stack is loaded beforehand. Simply change linking order as compiling.
Signed-off-by: Sangwook Lee sangwook.lee@linaro.org
drivers/Makefile | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/Makefile b/drivers/Makefile index b5d2823..75736a1 100644 --- a/drivers/Makefile +++ b/drivers/Makefile @@ -54,6 +54,7 @@ obj-$(CONFIG_TARGET_CORE) += target/ obj-$(CONFIG_MTD) += mtd/ obj-$(CONFIG_SPI) += spi/ obj-y += hsi/ +obj-y += mmc/ obj-y += net/ obj-$(CONFIG_ATM) += atm/ obj-$(CONFIG_FUSION) += message/ @@ -97,7 +98,6 @@ obj-$(CONFIG_EISA) += eisa/ obj-y += lguest/ obj-$(CONFIG_CPU_FREQ) += cpufreq/ obj-$(CONFIG_CPU_IDLE) += cpuidle/ -obj-y += mmc/ obj-$(CONFIG_MEMSTICK) += memstick/ obj-y += leds/ obj-$(CONFIG_SWITCH) += switch/
This change is not ok when we try to merge our kernel with unified tree, though I might just push apply it to Samsung LT kernel now. We need to fix this up and get a better solution.
Fair enough.
Initially I tried to do another way: For example completion for synchronisation, But because this happens, it was in vain. Now that we are running out of 05 release, we have a temporary solution. and then later fix it again.
-- Tushar Behera
This patch changes the moulde name of ath6kl. For 3.4 kernel. the module name is "ath6kl_core.ko" but to sync with both Ubuntu and Android, it should be changed to "ath6kl.ko"
Signed-off-by: Sangwook Lee <sangwook.lee> --- drivers/net/wireless/ath/ath6kl/Makefile | 26 +++++++++++++------------- 1 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/drivers/net/wireless/ath/ath6kl/Makefile b/drivers/net/wireless/ath/ath6kl/Makefile index 85746c3e..9e8f15b 100644 --- a/drivers/net/wireless/ath/ath6kl/Makefile +++ b/drivers/net/wireless/ath/ath6kl/Makefile @@ -22,21 +22,21 @@ # Author(s): ="Atheros" #------------------------------------------------------------------------------
-obj-$(CONFIG_ATH6KL) += ath6kl_core.o -ath6kl_core-y += debug.o -ath6kl_core-y += hif.o -ath6kl_core-y += htc.o -ath6kl_core-y += bmi.o -ath6kl_core-y += cfg80211.o -ath6kl_core-y += init.o -ath6kl_core-y += main.o -ath6kl_core-y += txrx.o -ath6kl_core-y += wmi.o -ath6kl_core-y += core.o -ath6kl_core-$(CONFIG_NL80211_TESTMODE) += testmode.o +obj-$(CONFIG_ATH6KL) += ath6kl.o +ath6kl-y += debug.o +ath6kl-y += hif.o +ath6kl-y += htc.o +ath6kl-y += bmi.o +ath6kl-y += cfg80211.o +ath6kl-y += init.o +ath6kl-y += main.o +ath6kl-y += txrx.o +ath6kl-y += wmi.o +ath6kl-y += core.o +ath6kl-$(CONFIG_NL80211_TESTMODE) += testmode.o
obj-$(CONFIG_ATH6KL_SDIO) += ath6kl_sdio.o -ath6kl_sdio-y += sdio.o +ath6kl-y += sdio.o
obj-$(CONFIG_ATH6KL_USB) += ath6kl_usb.o ath6kl_usb-y += usb.o
On 05/14/2012 10:31 PM, Sangwook Lee wrote:
This patch changes the moulde name of ath6kl. For 3.4 kernel. the module name is "ath6kl_core.ko" but to sync with both Ubuntu and Android, it should be changed to "ath6kl.ko"
Signed-off-by: Sangwook Lee <sangwook.lee>
drivers/net/wireless/ath/ath6kl/Makefile | 26 +++++++++++++------------- 1 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/drivers/net/wireless/ath/ath6kl/Makefile b/drivers/net/wireless/ath/ath6kl/Makefile index 85746c3e..9e8f15b 100644 --- a/drivers/net/wireless/ath/ath6kl/Makefile +++ b/drivers/net/wireless/ath/ath6kl/Makefile @@ -22,21 +22,21 @@ # Author(s): ="Atheros" #------------------------------------------------------------------------------ -obj-$(CONFIG_ATH6KL) += ath6kl_core.o -ath6kl_core-y += debug.o -ath6kl_core-y += hif.o -ath6kl_core-y += htc.o -ath6kl_core-y += bmi.o -ath6kl_core-y += cfg80211.o -ath6kl_core-y += init.o -ath6kl_core-y += main.o -ath6kl_core-y += txrx.o -ath6kl_core-y += wmi.o -ath6kl_core-y += core.o -ath6kl_core-$(CONFIG_NL80211_TESTMODE) += testmode.o +obj-$(CONFIG_ATH6KL) += ath6kl.o +ath6kl-y += debug.o +ath6kl-y += hif.o +ath6kl-y += htc.o +ath6kl-y += bmi.o +ath6kl-y += cfg80211.o +ath6kl-y += init.o +ath6kl-y += main.o +ath6kl-y += txrx.o +ath6kl-y += wmi.o +ath6kl-y += core.o +ath6kl-$(CONFIG_NL80211_TESTMODE) += testmode.o obj-$(CONFIG_ATH6KL_SDIO) += ath6kl_sdio.o -ath6kl_sdio-y += sdio.o +ath6kl-y += sdio.o obj-$(CONFIG_ATH6KL_USB) += ath6kl_usb.o ath6kl_usb-y += usb.o
Similar observation here. If the module name has been changed upstream, then we must use them in the distribution. That way, we can move forward towards a common kernel.
For the time being, I will apply this to Samsung LT kernel.
On 16 May 2012 04:48, Tushar Behera tushar.behera@linaro.org wrote:
On 05/14/2012 10:31 PM, Sangwook Lee wrote:
This patch changes the moulde name of ath6kl. For 3.4 kernel. the module name is "ath6kl_core.ko" but to sync with both Ubuntu and Android, it should be changed to "ath6kl.ko"
Signed-off-by: Sangwook Lee <sangwook.lee>
drivers/net/wireless/ath/ath6kl/Makefile | 26
+++++++++++++-------------
1 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/drivers/net/wireless/ath/ath6kl/Makefile
b/drivers/net/wireless/ath/ath6kl/Makefile
index 85746c3e..9e8f15b 100644 --- a/drivers/net/wireless/ath/ath6kl/Makefile +++ b/drivers/net/wireless/ath/ath6kl/Makefile @@ -22,21 +22,21 @@ # Author(s): ="Atheros"
#------------------------------------------------------------------------------
-obj-$(CONFIG_ATH6KL) += ath6kl_core.o -ath6kl_core-y += debug.o -ath6kl_core-y += hif.o -ath6kl_core-y += htc.o -ath6kl_core-y += bmi.o -ath6kl_core-y += cfg80211.o -ath6kl_core-y += init.o -ath6kl_core-y += main.o -ath6kl_core-y += txrx.o -ath6kl_core-y += wmi.o -ath6kl_core-y += core.o -ath6kl_core-$(CONFIG_NL80211_TESTMODE) += testmode.o +obj-$(CONFIG_ATH6KL) += ath6kl.o +ath6kl-y += debug.o +ath6kl-y += hif.o +ath6kl-y += htc.o +ath6kl-y += bmi.o +ath6kl-y += cfg80211.o +ath6kl-y += init.o +ath6kl-y += main.o +ath6kl-y += txrx.o +ath6kl-y += wmi.o +ath6kl-y += core.o +ath6kl-$(CONFIG_NL80211_TESTMODE) += testmode.o
obj-$(CONFIG_ATH6KL_SDIO) += ath6kl_sdio.o -ath6kl_sdio-y += sdio.o +ath6kl-y += sdio.o
obj-$(CONFIG_ATH6KL_USB) += ath6kl_usb.o ath6kl_usb-y += usb.o
Similar observation here. If the module name has been changed upstream, then we must use them in the distribution. That way, we can move forward towards a common kernel.
Yes it is. In fact, Ubuntu and Android platform must use the new name.
But it is to save time by doing it in the kernel. Later we can ask platform team.
For the time being, I will apply this to Samsung LT kernel.
-- Tushar Behera
On 05/16/2012 01:50 PM, Sangwook Lee wrote:
On 16 May 2012 04:48, Tushar Behera tushar.behera@linaro.org wrote:
On 05/14/2012 10:31 PM, Sangwook Lee wrote:
This patch changes the moulde name of ath6kl. For 3.4 kernel. the module name is "ath6kl_core.ko" but to sync with both Ubuntu and Android, it should be changed to "ath6kl.ko"
Signed-off-by: Sangwook Lee <sangwook.lee>
drivers/net/wireless/ath/ath6kl/Makefile | 26
+++++++++++++-------------
1 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/drivers/net/wireless/ath/ath6kl/Makefile
b/drivers/net/wireless/ath/ath6kl/Makefile
index 85746c3e..9e8f15b 100644 --- a/drivers/net/wireless/ath/ath6kl/Makefile +++ b/drivers/net/wireless/ath/ath6kl/Makefile @@ -22,21 +22,21 @@ # Author(s): ="Atheros"
#------------------------------------------------------------------------------
-obj-$(CONFIG_ATH6KL) += ath6kl_core.o -ath6kl_core-y += debug.o -ath6kl_core-y += hif.o -ath6kl_core-y += htc.o -ath6kl_core-y += bmi.o -ath6kl_core-y += cfg80211.o -ath6kl_core-y += init.o -ath6kl_core-y += main.o -ath6kl_core-y += txrx.o -ath6kl_core-y += wmi.o -ath6kl_core-y += core.o -ath6kl_core-$(CONFIG_NL80211_TESTMODE) += testmode.o +obj-$(CONFIG_ATH6KL) += ath6kl.o +ath6kl-y += debug.o +ath6kl-y += hif.o +ath6kl-y += htc.o +ath6kl-y += bmi.o +ath6kl-y += cfg80211.o +ath6kl-y += init.o +ath6kl-y += main.o +ath6kl-y += txrx.o +ath6kl-y += wmi.o +ath6kl-y += core.o +ath6kl-$(CONFIG_NL80211_TESTMODE) += testmode.o
obj-$(CONFIG_ATH6KL_SDIO) += ath6kl_sdio.o -ath6kl_sdio-y += sdio.o +ath6kl-y += sdio.o
obj-$(CONFIG_ATH6KL_USB) += ath6kl_usb.o ath6kl_usb-y += usb.o
Similar observation here. If the module name has been changed upstream, then we must use them in the distribution. That way, we can move forward towards a common kernel.
Yes it is. In fact, Ubuntu and Android platform must use the new name.
But it is to save time by doing it in the kernel. Later we can ask platform team.
Right, it is not possible so close to the release date.
We will update them early next cycle.
For the time being, I will apply this to Samsung LT kernel.
-- Tushar Behera
Added pm_flag MMC_PM_KEEP_POWER for WLAN. The WLAN firmware of ar6003 hw 2.0 doesn't support this feature. After turning on WLAN in Origen without this flag, WLAN will lose all connection to Access Point.
Signed-off-by: Sangwook Lee sangwook.lee@linaro.org --- arch/arm/mach-exynos/mach-origen.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-exynos/mach-origen.c b/arch/arm/mach-exynos/mach-origen.c index de06601..f531f60 100644 --- a/arch/arm/mach-exynos/mach-origen.c +++ b/arch/arm/mach-exynos/mach-origen.c @@ -512,6 +512,7 @@ static struct s3c_sdhci_platdata origen_hsmmc3_pdata __initdata = { .max_width = 4, .host_caps = MMC_CAP_4_BIT_DATA | MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED, + .pm_caps = MMC_PM_KEEP_POWER, .cd_type = S3C_SDHCI_CD_EXTERNAL, .ext_cd_init = origen_wifi_status_register, };
On 05/14/2012 10:31 PM, Sangwook Lee wrote:
The series of patches resolve following problems:
- Fix a failure of regstering callback furnction for WLAN
- Rename ath6kl for both Ubuntu and Android to let WLAN middleware to use the existing module name.
- Fix scanning/ connection problem.
And this patch is based on git://git.linaro.org/landing-teams/working/samsung/kernel.git android-tracking
,Tested on Linaro Android ICS (Origen).
Sangwook Lee (4): ARM: EXYNOS: ORIGEN: fix print statmenet for WLAN drivers: net: mmc: change the order of booting order net: ath6kl: fix module name ARM: EXYNOS: ORIGEN: Add MMC pm_flags for WLAN
arch/arm/mach-exynos/mach-origen.c | 7 ++++++- drivers/Makefile | 2 +- drivers/net/wireless/ath/ath6kl/Makefile | 26 +++++++++++++------------- 3 files changed, 20 insertions(+), 15 deletions(-)
Patchset applied to android-tracking.
linaro-android@lists.linaro.org