summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet
diff options
context:
space:
mode:
authorMursalin Akon <makon@nvidia.com>2013-04-11 10:28:07 -0700
committerRiham Haidar <rhaidar@nvidia.com>2013-04-18 12:49:06 -0700
commitf7a5ab6dc1b7da3e3da10cb88478e5fa4a7c92b9 (patch)
tree08abe17507808de17660c4f1d43565812c37e841 /drivers/net/ethernet
parent27de3300ca5ac6675df48fef684c259bcf75b386 (diff)
Make firmware loading of R8169 optional
According to Realtek, the firmware provides power optimizations. The driver works without the firmware. Plus, there are scenarios where the firmware is not available, which makes the driver wait at request_firmware call (i.e., 60 sec wait). Bug 1236060 Change-Id: Ifad95b9eb9e161c77171df3e65351aff80e4a4ad Signed-off-by: Mursalin Akon <makon@nvidia.com> Reviewed-on: http://git-master/r/218609 Reviewed-by: Eric Brower <ebrower@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Allen Martin <amartin@nvidia.com>
Diffstat (limited to 'drivers/net/ethernet')
-rw-r--r--drivers/net/ethernet/realtek/Kconfig12
-rw-r--r--drivers/net/ethernet/realtek/r8169.c4
2 files changed, 15 insertions, 1 deletions
diff --git a/drivers/net/ethernet/realtek/Kconfig b/drivers/net/ethernet/realtek/Kconfig
index 5821966f9f28..95af7d23a9c7 100644
--- a/drivers/net/ethernet/realtek/Kconfig
+++ b/drivers/net/ethernet/realtek/Kconfig
@@ -105,7 +105,6 @@ config 8139_OLD_RX_RESET
config R8169
tristate "Realtek 8169 gigabit ethernet support"
depends on PCI
- select FW_LOADER
select CRC32
select NET_CORE
select MII
@@ -115,4 +114,15 @@ config R8169
To compile this driver as a module, choose M here: the module
will be called r8169. This is recommended.
+config R8169_FW_LOAD
+ bool "Load firmware for Realtek 8169"
+ depends on R8169
+ select FW_LOADER
+ default y
+ ---help---
+ This enables runtime loading of optional firmware by the Realtek 8169
+ driver. Some environments do not require firmware, or prefer not to delay
+ the boot process when firmware is not available. Say N here to disable
+ firmware loading. If unsure, say Y.
+
endif # NET_VENDOR_REALTEK
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index 58d039cb5267..7bcd48163f92 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -1460,7 +1460,11 @@ static int rtl8169_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
static const char *rtl_lookup_firmware_name(struct rtl8169_private *tp)
{
+#ifdef CONFIG_R8169_FW_LOAD
return rtl_chip_infos[tp->mac_version].fw_name;
+#else
+ return NULL;
+#endif
}
static void rtl8169_get_drvinfo(struct net_device *dev,