Ticket #9420: fritzbox-fixup.20110515.patch

File fritzbox-fixup.20110515.patch, 1.5 KB (added by Oliver Winker <oliver@…>, 6 years ago)

Fritzbox Fixup Patch for Fritz_Box_SL_WLAN and Fritz_Box_7140_*

  • arch/mips/ar7/platform.c

    old new  
    606606        cpmac_high_res[0].end = TITAN_REGS_MAC1 + 0x7ff; 
    607607} 
    608608 
     609static int __init ar7_is_fritz_box(void) 
     610{ 
     611        char *prid = prom_getenv("ProductID"); 
     612 
     613        return prid && strstr(prid, "Fritz_Box_"); 
     614} 
     615 
     616static void __init ar7_fritz_box_fixup_devices(void) 
     617{ 
     618        char *prid = prom_getenv("ProductID"); 
     619 
     620        if (strstr(prid, "Fritz_Box_SL_WLAN")) { 
     621                pr_info("Applying platform fixup Fritz_Box_SL_WLAN\n"); 
     622                /* 4MiB total -64k, save last erase-block, (avoid collision with bootloader) */ 
     623                physmap_flash_resource.end = 0x103effff; 
     624                vlynq_low_data.gpio_bit = 6; 
     625        } else if (strstr(prid, "Fritz_Box_7140_")) { 
     626                pr_info("Applying platform fixup Fritz_Box_7140_*\n"); 
     627                /* 8MiB total -192k, save last three erase-block, (avoid collision with bootloader) */ 
     628                physmap_flash_resource.end = 0x107cffff; 
     629        } else { 
     630                pr_info("No platform fixup available for Fritz_Box ProductID '%s': " 
     631                        "in case problems, please report\n", prid); 
     632        } 
     633} 
     634 
    609635static int __init ar7_register_devices(void) 
    610636{ 
    611637        void __iomem *bootcr; 
     
    616642        if (res) 
    617643                pr_err("unable to setup uart(s): %d\n", res); 
    618644 
     645        if (ar7_is_fritz_box()) 
     646                ar7_fritz_box_fixup_devices(); 
     647 
    619648        res = platform_device_register(&physmap_flash); 
    620649        if (res) 
    621650                pr_warning("unable to register physmap-flash: %d\n", res);