Search Linux Wireless

Re: [PATCH 3/3] rt2x00: add platform_data mac address

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

 



Hi Daniel,

On 11 dec. 2012, at 11:04, Daniel Golle <dgolle@xxxxxxxxx> wrote:

> 
> Signed-off-by: Daniel Golle <dgolle@xxxxxxxxx>

Again we need a proper patch description.

And for this patch I have the same question as for the previous patch: why do we need to arrange this via platform data, as opposed to using the standard user space ifconfig facility to set a mac address?

As a second question: why is this only implemented for rt61pci, and not the other PCI / SOC drivers?

---
Gertjan

> 
> diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
> index c67e769..8b82e77 100644
> --- a/drivers/net/wireless/rt2x00/rt2x00.h
> +++ b/drivers/net/wireless/rt2x00/rt2x00.h
> @@ -1294,6 +1294,7 @@ static inline void rt2x00debug_dump_frame(struct rt2x00_dev *rt2x00dev,
>  */
> u32 rt2x00lib_get_bssidx(struct rt2x00_dev *rt2x00dev,
>             struct ieee80211_vif *vif);
> +const u8 *rt2x00lib_get_mac_address(struct rt2x00_dev *rt2x00dev);
> 
> /*
>  * Interrupt context handlers.
> diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
> index b7856bf..f9868d1 100644
> --- a/drivers/net/wireless/rt2x00/rt2x00dev.c
> +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
> @@ -826,6 +826,18 @@ static void rt2x00lib_rate(struct ieee80211_rate *entry,
>        entry->flags |= IEEE80211_RATE_SHORT_PREAMBLE;
> }
> 
> +const u8 *rt2x00lib_get_mac_address(struct rt2x00_dev *rt2x00dev)
> +{
> +    struct rt2x00_platform_data *pdata;
> +
> +    pdata = rt2x00dev->dev->platform_data;
> +    if (!pdata)
> +        return NULL;
> +
> +    return pdata->mac_address;
> +}
> +EXPORT_SYMBOL_GPL(rt2x00lib_get_mac_address);
> +
> static int rt2x00lib_probe_hw_modes(struct rt2x00_dev *rt2x00dev,
>                    struct hw_mode_spec *spec)
> {
> diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c
> index f95792c..7dbc0ba 100644
> --- a/drivers/net/wireless/rt2x00/rt61pci.c
> +++ b/drivers/net/wireless/rt2x00/rt61pci.c
> @@ -2392,6 +2392,7 @@ static int rt61pci_validate_eeprom(struct rt2x00_dev *rt2x00dev)
>    u32 reg;
>    u16 word;
>    u8 *mac;
> +    const u8 *pdata_mac;
>    s8 value;
> 
>    rt2x00pci_register_read(rt2x00dev, E2PROM_CSR, &reg);
> @@ -2412,7 +2413,11 @@ static int rt61pci_validate_eeprom(struct rt2x00_dev *rt2x00dev)
>    /*
>     * Start validation of the data that has been read.
>     */
> +    pdata_mac = rt2x00lib_get_mac_address(rt2x00dev);
>    mac = rt2x00_eeprom_addr(rt2x00dev, EEPROM_MAC_ADDR_0);
> +    if (pdata_mac)
> +        memcpy(mac, pdata_mac, 6);
> +
>    if (!is_valid_ether_addr(mac)) {
>        eth_random_addr(mac);
>        EEPROM(rt2x00dev, "MAC: %pM\n", mac);
> diff --git a/include/linux/rt2x00_platform.h b/include/linux/rt2x00_platform.h
> index b4c7768..e10377e 100644
> --- a/include/linux/rt2x00_platform.h
> +++ b/include/linux/rt2x00_platform.h
> @@ -14,6 +14,7 @@
> 
> struct rt2x00_platform_data {
>    char *eeprom_file_name;
> +    const u8 *mac_address;
> 
>    int disable_2ghz;
>    int disable_5ghz;
> -- 
> 1.8.0.1
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[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