lantiq: add support for xrx200 firmware depending on soc type
authorJohn Crispin <john@openwrt.org>
Mon, 18 Aug 2014 13:09:08 +0000 (13:09 +0000)
committerJohn Crispin <john@openwrt.org>
Mon, 18 Aug 2014 13:09:08 +0000 (13:09 +0000)
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
SVN-Revision: 42182

target/linux/lantiq/patches-3.10/0210-lantiq-xrx200-firmware-multi-version.patch [new file with mode: 0644]

diff --git a/target/linux/lantiq/patches-3.10/0210-lantiq-xrx200-firmware-multi-version.patch b/target/linux/lantiq/patches-3.10/0210-lantiq-xrx200-firmware-multi-version.patch
new file mode 100644 (file)
index 0000000..cf5e5cf
--- /dev/null
@@ -0,0 +1,27 @@
+--- a/arch/mips/lantiq/xway/xrx200_phy_fw.c
++++ b/arch/mips/lantiq/xway/xrx200_phy_fw.c
+@@ -24,7 +24,23 @@ static dma_addr_t xway_gphy_load(struct
+       void *fw_addr;
+       size_t size;
+-      if (of_property_read_string(pdev->dev.of_node, "firmware", &fw_name)) {
++      if (of_get_property(pdev->dev.of_node, "firmware1", NULL) || of_get_property(pdev->dev.of_node, "firmware2", NULL)) {
++              switch(ltq_soc_type()) {
++                      case SOC_TYPE_VR9:
++                              if (of_property_read_string(pdev->dev.of_node, "firmware1", &fw_name)) {
++                                      dev_err(&pdev->dev, "failed to load firmware filename\n");
++                                      return 0;
++                              }
++                              break;
++                      case SOC_TYPE_VR9_2:
++                              if (of_property_read_string(pdev->dev.of_node, "firmware2", &fw_name)) {
++                                      dev_err(&pdev->dev, "failed to load firmware filename\n");
++                                      return 0;
++                              }
++                              break;
++              }
++      }
++      else if (of_property_read_string(pdev->dev.of_node, "firmware", &fw_name)) {
+               dev_err(&pdev->dev, "failed to load firmware filename\n");
+               return 0;
+       }