X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=blobdiff_plain;f=target%2Flinux%2Fomap%2Fpatches-3.18%2F900-wlcore-Add-support-for-DT-platform-data.patch;h=8fcf7711ab443f4ce4852ee33e8f48d600a7fa91;hp=750d9e3d68c473469bb12045ee8524582b5dc12a;hb=ac1004526e6210affd3e12d40e08b6d8f3aed23f;hpb=67f7995631526369de233ae507f272ae35c522fe diff --git a/target/linux/omap/patches-3.18/900-wlcore-Add-support-for-DT-platform-data.patch b/target/linux/omap/patches-3.18/900-wlcore-Add-support-for-DT-platform-data.patch index 750d9e3d68..8fcf7711ab 100644 --- a/target/linux/omap/patches-3.18/900-wlcore-Add-support-for-DT-platform-data.patch +++ b/target/linux/omap/patches-3.18/900-wlcore-Add-support-for-DT-platform-data.patch @@ -88,22 +88,22 @@ Signed-off-by: Arik Nemtsov static int wl1271_probe(struct sdio_func *func, const struct sdio_device_id *id) { -@@ -248,12 +304,9 @@ static int wl1271_probe(struct sdio_func +@@ -245,12 +301,9 @@ static int wl1271_probe(struct sdio_func /* Use block mode for transferring over one block size of data */ func->card->quirks |= MMC_QUIRK_BLKSZ_FOR_BYTE_MODE; -- pdev_data->pdata = wl12xx_get_platform_data(); -- if (IS_ERR(pdev_data->pdata)) { -- ret = PTR_ERR(pdev_data->pdata); +- pdev_data.pdata = wl12xx_get_platform_data(); +- if (IS_ERR(pdev_data.pdata)) { +- ret = PTR_ERR(pdev_data.pdata); - dev_err(glue->dev, "missing wlan platform data: %d\n", ret); -+ pdev_data->pdata = get_platform_data(&func->dev); -+ if (!(pdev_data->pdata)) ++ pdev_data.pdata = get_platform_data(&func->dev); ++ if (!(pdev_data.pdata)) goto out_free_glue; - } /* if sdio can keep power while host is suspended, enable wow */ mmcflags = sdio_get_host_pm_caps(func); -@@ -282,7 +335,7 @@ static int wl1271_probe(struct sdio_func +@@ -279,7 +332,7 @@ static int wl1271_probe(struct sdio_func if (!glue->core) { dev_err(glue->dev, "can't allocate platform_device"); ret = -ENOMEM; @@ -112,22 +112,22 @@ Signed-off-by: Arik Nemtsov } glue->core->dev.parent = &func->dev; -@@ -316,6 +369,9 @@ static int wl1271_probe(struct sdio_func +@@ -313,6 +366,9 @@ static int wl1271_probe(struct sdio_func out_dev_put: platform_device_put(glue->core); +out_free_pdata: -+ del_platform_data(pdev_data->pdata); ++ del_platform_data(pdev_data.pdata); + out_free_glue: kfree(glue); -@@ -329,11 +385,14 @@ out: +@@ -323,11 +379,14 @@ out: static void wl1271_remove(struct sdio_func *func) { struct wl12xx_sdio_glue *glue = sdio_get_drvdata(func); + struct wlcore_platdev_data *pdev_data = glue->core->dev.platform_data; -+ struct wl12xx_platform_data *pdata = pdev_data->pdata; ++ struct wl12xx_platform_data *pdata = pdev_data.pdata; /* Undo decrement done above in wl1271_probe */ pm_runtime_get_noresume(&func->dev); @@ -139,13 +139,16 @@ Signed-off-by: Arik Nemtsov --- a/include/linux/wl12xx.h +++ b/include/linux/wl12xx.h -@@ -51,11 +51,12 @@ enum { - struct wl12xx_platform_data { - void (*set_power)(bool enable); +@@ -51,6 +51,7 @@ enum { + struct wl1251_platform_data { + int power_gpio; /* SDIO only: IRQ number if WLAN_IRQ line is used, 0 for SDIO IRQs */ + int gpio; int irq; bool use_eeprom; + }; +@@ -59,7 +60,7 @@ struct wl12xx_platform_data { + int irq; int board_ref_clock; int board_tcxo_clock; - unsigned long platform_quirks;