Search Linux Wireless

Re: [PATCH] rt2x00: add support for mac addr from device tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Aug 25, 2016 at 10:19:22AM +0200, Mathias Kresin wrote:
> The EEPROM used on some CPEs has for every device the same generic
> ralink mac in EEPROM and needs to be overridden.

I don't know what is CPE, but even if I would know that, I most likely
sill will not understand that description.

> +++ b/drivers/net/wireless/ralink/rt2x00/rt2400pci.c
> @@ -1459,10 +1459,7 @@ static int rt2400pci_validate_eeprom(struct rt2x00_dev *rt2x00dev)
>  	 * Start validation of the data that has been read.
>  	 */
>  	mac = rt2x00_eeprom_addr(rt2x00dev, EEPROM_MAC_ADDR_0);
> -	if (!is_valid_ether_addr(mac)) {
> -		eth_random_addr(mac);
> -		rt2x00_eeprom_dbg(rt2x00dev, "MAC: %pM\n", mac);
> -	}
> +	rt2x00lib_set_mac_address(rt2x00dev, mac);
<snip>
> +#include <linux/of.h>
> +#include <linux/of_net.h>
>  
>  #include "rt2x00.h"
>  #include "rt2x00lib.h"
> @@ -931,6 +933,21 @@ static void rt2x00lib_rate(struct ieee80211_rate *entry,
>  		entry->flags |= IEEE80211_RATE_SHORT_PREAMBLE;
>  }
>  
> +void rt2x00lib_set_mac_address(struct rt2x00_dev *rt2x00dev, u8 *eeprom_mac_addr)
> +{
> +	const char *mac_addr;
> +
> +	mac_addr = of_get_mac_address(rt2x00dev->dev->of_node);

Shouldn't use dev_of_node(&rt2x00dev->dev) and check against NULL ? 

> +	if (mac_addr)
> +		ether_addr_copy(eeprom_mac_addr, mac_addr);

Why we do not read MAC from EEPROM if fail to get it from of_node?

Thanks
Stanislaw



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux