by PLyttle » Tue Aug 26, 2014 7:44 pm
That is unexpected, I'll figure out what went wrong.
get back soon
EDIT
I'm back.
Can't really figure out where the file got clobbered.
here it is again. I verified this working on the current arch kernel
make sure there are no extra linefeeds on long lines
$this->bbcode_second_pass_code('', 'diff -rupN a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi
--- a/arch/arm/boot/dts/imx6qdl-wandboard.dtsi 2014-08-26 21:48:12.649889453 +0200
+++ b/arch/arm/boot/dts/imx6qdl-wandboard.dtsi 2014-08-26 21:53:50.771802147 +0200
@@ -106,11 +106,13 @@
/* Rev C1 gpio definitions */
bluetooth-on-revc1 = <&gpio5 21 0>;
- bluetooth-wake-revc1 = <&gpio5 30 0>;
+ bluetooth-wake-revc1 = <&gpio1 30 0>;
bluetooth-host-wake-revc1 = <&gpio5 20 0>;
wifi-ref-on-revc1 = <&gpio5 31 0>;
- wifi-rst-n-revc1 = <&gpio6 0 0>;
+ wifi-rst-n-revc1 = <&gpio1 26 0>;
+ wifi-reg-on-revc1 = <&gpio5 30 0>;
+ wifi-wake-revc1 = <&gpio6 0 0>;
/* Rev B/C probe gpio */
wand-rev-gpio = <&gpio2 28 0>;
diff -rupN a/arch/arm/mach-imx/devices/wand-rfkill.c b/arch/arm/mach-imx/devices/wand-rfkill.c
--- a/arch/arm/mach-imx/devices/wand-rfkill.c 2014-08-26 21:48:12.869897198 +0200
+++ b/arch/arm/mach-imx/devices/wand-rfkill.c 2014-08-26 22:07:00.919708995 +0200
@@ -55,84 +55,6 @@ static const struct rfkill_ops wand_rfki
.set_block = wand_rfkill_set_block,
};
-static int wand_rfkill_wifi_probe(struct device *dev,
- struct device_node *np,
- struct wand_rfkill_data *rfkill,
- int wand_rev)
-{
- int ret;
- int wl_ref_on, wl_rst_n, wl_reg_on, wl_wake, wl_host_wake;
-
- if(wand_rev){
- wl_ref_on = of_get_named_gpio(np, "wifi-ref-on-revc1", 0);
- wl_rst_n = of_get_named_gpio(np, "wifi-rst-n-revc1", 0);
- }
- else {
- wl_ref_on = of_get_named_gpio(np, "wifi-ref-on", 0);
- wl_rst_n = of_get_named_gpio(np, "wifi-rst-n", 0);
- }
-
- wl_reg_on = of_get_named_gpio(np, "wifi-reg-on", 0);
- wl_wake = of_get_named_gpio(np, "wifi-wake", 0);
- wl_host_wake = of_get_named_gpio(np, "wifi-host-wake", 0);
-
- if (!gpio_is_valid(wl_rst_n) || !gpio_is_valid(wl_ref_on) ||
- !gpio_is_valid(wl_reg_on) || !gpio_is_valid(wl_wake) ||
- !gpio_is_valid(wl_host_wake)) {
-
- dev_err(dev, "incorrect wifi gpios (%d %d %d %d %d)\n",
- wl_rst_n, wl_ref_on, wl_reg_on, wl_wake, wl_host_wake);
- return -EINVAL;
- }
-
- dev_info(dev, "initialize wifi chip\n");
-
- gpio_request(wl_rst_n, "wl_rst_n");
- gpio_direction_output(wl_rst_n, 0);
- msleep(11);
- gpio_set_value(wl_rst_n, 1);
-
- gpio_request(wl_ref_on, "wl_ref_on");
- gpio_direction_output(wl_ref_on, 1);
-
- gpio_request(wl_reg_on, "wl_reg_on");
- gpio_direction_output(wl_reg_on, 1);
-
- gpio_request(wl_wake, "wl_wake");
- gpio_direction_output(wl_wake, 1);
-
- gpio_request(wl_host_wake, "wl_host_wake");
- gpio_direction_input(wl_host_wake);
-
- rfkill->shutdown_name = "wifi_shutdown";
- rfkill->shutdown_gpio = wl_wake;
-
- rfkill->rfkill_dev = rfkill_alloc("wifi-rfkill", dev, RFKILL_TYPE_WLAN,
- &wand_rfkill_ops, rfkill);
- if (!rfkill->rfkill_dev) {
- ret = -ENOMEM;
- goto wifi_fail_free_gpio;
- }
-
- ret = rfkill_register(rfkill->rfkill_dev);
- if (ret < 0)
- goto wifi_fail_unregister;
-
- dev_info(dev, "wifi-rfkill registered.\n");
-
- return 0;
-
-wifi_fail_unregister:
- rfkill_destroy(rfkill->rfkill_dev);
-wifi_fail_free_gpio:
- if (gpio_is_valid(wl_rst_n)) gpio_free(wl_rst_n);
- if (gpio_is_valid(wl_ref_on)) gpio_free(wl_ref_on);
- if (gpio_is_valid(wl_reg_on)) gpio_free(wl_reg_on);
- if (gpio_is_valid(wl_wake)) gpio_free(wl_wake);
- if (gpio_is_valid(wl_host_wake)) gpio_free(wl_host_wake);
-
- return ret;
-}
static int wand_rfkill_bt_probe(struct device *dev,
struct device_node *np,
@@ -249,27 +171,13 @@ static int wand_rfkill_probe(struct plat
else
dev_info(&pdev->dev,"wandboard is rev B0\n");
- /* setup WiFi */
- ret = wand_rfkill_wifi_probe(&pdev->dev, pdev->dev.of_node, &rfkill[0], wand_rev);
- if (ret < 0)
- goto fail_free_rfkill;
-
/* setup bluetooth */
ret = wand_rfkill_bt_probe(&pdev->dev, pdev->dev.of_node, &rfkill[1], wand_rev);
- if (ret < 0)
- goto fail_unregister_wifi;
platform_set_drvdata(pdev, rfkill);
return 0;
-fail_unregister_wifi:
- if (rfkill[1].rfkill_dev) {
- rfkill_unregister(rfkill[1].rfkill_dev);
- rfkill_destroy(rfkill[1].rfkill_dev);
- }
-
- /* TODO free gpio */
fail_free_rfkill:
kfree(rfkill);
@@ -286,13 +194,6 @@ static int wand_rfkill_remove(struct pla
if (!rfkill)
return 0;
- /* WiFi */
- if (gpio_is_valid(rfkill[0].shutdown_gpio))
- gpio_free(rfkill[0].shutdown_gpio);
-
- rfkill_unregister(rfkill[0].rfkill_dev);
- rfkill_destroy(rfkill[0].rfkill_dev);
-
/* Bt */
if (gpio_is_valid(rfkill[1].shutdown_gpio))
gpio_free(rfkill[1].shutdown_gpio);
')
LP