--- a/drivers/net/wireless/rt2x00/rt2x00eeprom.c +++ b/drivers/net/wireless/rt2x00/rt2x00eeprom.c @@ -26,6 +26,7 @@ #include <linux/kernel.h> #include <linux/module.h> +#include <linux/of.h> #include "rt2x00.h" #include "rt2x00lib.h" @@ -34,11 +35,21 @@ static const char * rt2x00lib_get_eeprom_file_name(struct rt2x00_dev *rt2x00dev) { struct rt2x00_platform_data *pdata = rt2x00dev->dev->platform_data; +#ifdef CONFIG_OF + struct device_node *np; + const char *eep; +#endif if (pdata && pdata->eeprom_file_name) return pdata->eeprom_file_name; - return NULL +#ifdef CONFIG_OF + np = rt2x00dev->dev->of_node; + if (np && of_property_read_string(np, "ralink,eeprom", &eep) == 0) + return eep; +#endif + + return NULL; } static int rt2x00lib_request_eeprom_file(struct rt2x00_dev *rt2x00dev)