Call the rt2x00lib_get_eeprom_file_name only once and from the function
where the EEPROM filename is required.
Error only out if an EEPROM file is mandatory. Use the
REQUIRE_EEPROM_FILE bit to determine if it is mandatory.
Do not set the REQUIRE_EEPROM_FILE bit while requesting an EEPROM file.
It should be (and is) set before requesting an EEPROM file.
Do not redirect users to upstream while using a function of a custom
patch.
Signed-off-by: Mathias Kresin <dev@kresin.me>
--- /dev/null
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00eeprom.c
--- /dev/null
+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00eeprom.c
+/*
+ Copyright (C) 2004 - 2009 Ivo van Doorn <IvDoorn@gmail.com>
+ Copyright (C) 2004 - 2009 Gertjan van Wingerde <gwingerde@gmail.com>
+/*
+ Copyright (C) 2004 - 2009 Ivo van Doorn <IvDoorn@gmail.com>
+ Copyright (C) 2004 - 2009 Gertjan van Wingerde <gwingerde@gmail.com>
+ int retval;
+
+ ee_name = rt2x00lib_get_eeprom_file_name(rt2x00dev);
+ int retval;
+
+ ee_name = rt2x00lib_get_eeprom_file_name(rt2x00dev);
-+ if (!ee_name) {
-+ rt2x00_err(rt2x00dev,
-+ "Invalid EEPROM filename.\n"
-+ "Please file bug report to %s.\n", DRV_PROJECT);
++ if (!ee_name && test_bit(REQUIRE_EEPROM_FILE, &rt2x00dev->cap_flags)) {
++ rt2x00_err(rt2x00dev, "Required EEPROM name is missing.");
++ if (!ee_name)
++ return 0;
++
+ rt2x00_info(rt2x00dev, "Loading EEPROM data from '%s'.\n", ee_name);
+
+ retval = request_firmware(&ee, ee_name, rt2x00dev->dev);
+ rt2x00_info(rt2x00dev, "Loading EEPROM data from '%s'.\n", ee_name);
+
+ retval = request_firmware(&ee, ee_name, rt2x00dev->dev);
-+ if (!rt2x00lib_get_eeprom_file_name(rt2x00dev))
-+ return 0;
-+
-+ set_bit(REQUIRE_EEPROM_FILE, &rt2x00dev->cap_flags);
-+
-+ if (!rt2x00dev->eeprom_file) {
-+ retval = rt2x00lib_request_eeprom_file(rt2x00dev);
-+ if (retval)
-+ return retval;
-+ }
++ retval = rt2x00lib_request_eeprom_file(rt2x00dev);
++ if (retval)
++ return retval;
+ return 0;
+
ee_name = rt2x00lib_get_eeprom_file_name(rt2x00dev);
+ return 0;
+
ee_name = rt2x00lib_get_eeprom_file_name(rt2x00dev);
- if (!ee_name) {
- rt2x00_err(rt2x00dev,
+ if (!ee_name && test_bit(REQUIRE_EEPROM_FILE, &rt2x00dev->cap_flags)) {
+ rt2x00_err(rt2x00dev, "Required EEPROM name is missing.");