|
|
@@ -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;
|
|
|
+ }
|