Re: [OpenWrt-Devel] [PATCH 2/3] ath5k: in-flash macs and eeprom for mach-eap7660d

2010-07-15 Thread Gabor Juhos
2010.07.14. 0:42 keltezéssel, daniel.go...@gmail.com írta:
 I removed unneeded casts and now hopefully really checking the first word for 
 the magic...
 Also renamed everything to ath5k_platform here, too, of course.
 
 
 This adds ath_platform.h to mac80211 and patches ath5k to respect MAC 
 addresses and eeprom content from platform_data, if supplied.
 
 Signed-off-by: Daniel Golle daniel.go...@gmail.com

Applied: https://dev.openwrt.org/changeset/22188

Thanks,
Gabor
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH 2/3] ath5k: in-flash macs and eeprom for mach-eap7660d

2010-07-13 Thread Gabor Juhos
2010.07.13. 19:26 keltezéssel, daniel.go...@gmail.com írta:
 This adds ath_platform.h to mac80211 and patches ath5k to respect MAC 
 addresses and eeprom content from platform_data, if supplied.
 
 Signed-off-by: Daniel Golle daniel.go...@gmail.com
 
 Index: package/mac80211/patches/450-add-ath-platform.patch
 ===
 --- package/mac80211/patches/450-add-ath-platform.patch   (revision 0)
 +++ package/mac80211/patches/450-add-ath-platform.patch   (revision 0)
 @@ -0,0 +1,35 @@
 +diff -Nur a/include/linux/ath_platform.h b/include/linux/ath_platform.h
 +--- a/include/linux/ath_platform.h   1970-01-01 01:00:00.0 +0100
  b/include/linux/ath_platform.h   2010-06-21 00:19:52.0 +0200
 +@@ -0,0 +1,30 @@
 ++/*
 ++ * Copyright (c) 2008 Atheros Communications Inc.
 ++ * Copyright (c) 2009 Gabor Juhos juh...@openwrt.org
 ++ * Copyright (c) 2009 Imre Kaloz ka...@openwrt.org
 ++ * Copyright (c) 2010 Daniel Golle daniel.go...@gmail.com
 ++ *
 ++ * Permission to use, copy, modify, and/or distribute this software for any
 ++ * purpose with or without fee is hereby granted, provided that the above
 ++ * copyright notice and this permission notice appear in all copies.
 ++ *
 ++ * THE SOFTWARE IS PROVIDED AS IS AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 ++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 ++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 ++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 ++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 ++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 ++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 ++ */
 ++
 ++#ifndef _LINUX_ATH_PLATFORM_H
 ++#define _LINUX_ATH_PLATFORM_H
 ++
 ++#define ATH_PLAT_EEP_MAX_WORDS  2048
 ++
 ++struct ath_platform_data {
 ++u16 *eeprom_data;
 ++u8 *macaddr;
 ++};
 ++
 ++#endif /* _LINUX_ATH_PLATFORM_H */
 +
 Index: package/mac80211/patches/451-add-platform-eeprom-support-to-ath5k.patch
 ===
 --- package/mac80211/patches/451-add-platform-eeprom-support-to-ath5k.patch   
 (revision 0)
 +++ package/mac80211/patches/451-add-platform-eeprom-support-to-ath5k.patch   
 (revision 0)
 @@ -0,0 +1,57 @@
 +--- a/drivers/net/wireless/ath/ath5k/eeprom.c2010-06-23 
 03:08:32.0 +0200
  b/drivers/net/wireless/ath/ath5k/eeprom.c2010-06-23 
 05:59:30.0 +0200
 +@@ -22,6 +23,8 @@
 + \*/
 + 
 + #include linux/slab.h
 ++#include linux/ath_platform.h
 ++#include linux/pci.h
 + 
 + #include ath5k.h
 + #include reg.h
 +@@ -34,6 +37,18 @@
 + static int ath5k_hw_eeprom_read(struct ath5k_hw *ah, u32 offset, u16 *data)
 + {
 + u32 status, timeout;
 ++struct ath_platform_data *pdata = NULL;
 ++
 ++if (ah-ah_sc-pdev) // we only got pdev with PCI bus, right?
 ++pdata = (struct ath_platform_data *) 
 ah-ah_sc-pdev-dev.platform_data;

The cast is not needed.

 ++
 ++if (pdata  ((__u16)(pdata-eeprom_data) == AR5K_EEPROM_MAGIC_VALUE))

You are checking the address of the eeprom_data instead of the first word of the
actual data.

 ++{
 ++ATH5K_INFO(ah-ah_sc, using eeprom-content from 
 platform_data\n);
 ++if (offset = ATH_PLAT_EEP_MAX_WORDS) return -EIO;
 ++*data = pdata-eeprom_data[offset];
 ++return 0;
 ++}
 + 
 + /*
 +  * Initialize EEPROM access
 +@@ -1788,7 +1802,7 @@
 + }
 + 
 + /*
 +- * Read the MAC address from eeprom
 ++ * Read the MAC address from eeprom or platform_data
 +  */
 + int ath5k_eeprom_read_mac(struct ath5k_hw *ah, u8 *mac)
 + {
 +@@ -1796,6 +1810,16 @@
 + u32 total, offset;
 + u16 data;
 + int octet, ret;
 ++struct ath_platform_data *pdata = NULL;
 ++
 ++if (ah-ah_sc-pdev)
 ++pdata = (struct ath_platform_data *) 
 ah-ah_sc-pdev-dev.platform_data;

The cast is not needed.

 ++
 ++if (pdata  pdata-macaddr)
 ++{
 ++memcpy(mac, pdata-macaddr, ETH_ALEN);
 ++return 0;
 ++}
 + 
 + ret = ath5k_hw_eeprom_read(ah, 0x20, data);
 + if (ret)
 +
 ___
 openwrt-devel mailing list
 openwrt-devel@lists.openwrt.org
 https://lists.openwrt.org/mailman/listinfo/openwrt-devel
 

___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH 2/3] ath5k: in-flash macs and eeprom for mach-eap7660d

2010-07-13 Thread daniel . golle
I removed unneeded casts and now hopefully really checking the first word for 
the magic...
Also renamed everything to ath5k_platform here, too, of course.


This adds ath_platform.h to mac80211 and patches ath5k to respect MAC addresses 
and eeprom content from platform_data, if supplied.

Signed-off-by: Daniel Golle daniel.go...@gmail.com

Index: package/mac80211/patches/450-add-ath5k-platform.patch
===
--- package/mac80211/patches/450-add-ath5k-platform.patch   (revision 0)
+++ package/mac80211/patches/450-add-ath5k-platform.patch   (revision 0)
@@ -0,0 +1,35 @@
+diff -Nur a/include/linux/ath5k_platform.h b/include/linux/ath5k_platform.h
+--- a/include/linux/ath5k_platform.h   1970-01-01 01:00:00.0 +0100
 b/include/linux/ath5k_platform.h   2010-06-21 00:19:52.0 +0200
+@@ -0,0 +1,30 @@
++/*
++ * Copyright (c) 2008 Atheros Communications Inc.
++ * Copyright (c) 2009 Gabor Juhos juh...@openwrt.org
++ * Copyright (c) 2009 Imre Kaloz ka...@openwrt.org
++ * Copyright (c) 2010 Daniel Golle daniel.go...@gmail.com
++ *
++ * Permission to use, copy, modify, and/or distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THE SOFTWARE IS PROVIDED AS IS AND THE AUTHOR DISCLAIMS ALL WARRANTIES
++ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
++ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
++ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
++ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
++ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
++ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
++ */
++
++#ifndef _LINUX_ATH5K_PLATFORM_H
++#define _LINUX_ATH5K_PLATFORM_H
++
++#define ATH5K_PLAT_EEP_MAX_WORDS  2048
++
++struct ath5k_platform_data {
++  u16 *eeprom_data;
++  u8 *macaddr;
++};
++
++#endif /* _LINUX_ATH5K_PLATFORM_H */
+
Index: package/mac80211/patches/451-add-platform-eeprom-support-to-ath5k.patch
===
--- package/mac80211/patches/451-add-platform-eeprom-support-to-ath5k.patch 
(revision 0)
+++ package/mac80211/patches/451-add-platform-eeprom-support-to-ath5k.patch 
(revision 0)
@@ -0,0 +1,57 @@
+--- a/drivers/net/wireless/ath/ath5k/eeprom.c  2010-06-23 03:08:32.0 
+0200
 b/drivers/net/wireless/ath/ath5k/eeprom.c  2010-06-23 05:59:30.0 
+0200
+@@ -22,6 +23,8 @@
+ \*/
+ 
+ #include linux/slab.h
++#include linux/ath5k_platform.h
++#include linux/pci.h
+ 
+ #include ath5k.h
+ #include reg.h
+@@ -34,6 +37,18 @@
+ static int ath5k_hw_eeprom_read(struct ath5k_hw *ah, u32 offset, u16 *data)
+ {
+   u32 status, timeout;
++  struct ath5k_platform_data *pdata = NULL;
++
++  if (ah-ah_sc-pdev)
++  pdata = ah-ah_sc-pdev-dev.platform_data;
++
++  if (pdata  pdata-eeprom_data  pdata-eeprom_data[0] == 
AR5K_EEPROM_MAGIC_VALUE)
++  {
++  ATH5K_INFO(ah-ah_sc, using eeprom-content from 
platform_data\n);
++  if (offset = ATH5K_PLAT_EEP_MAX_WORDS) return -EIO;
++  *data = pdata-eeprom_data[offset];
++  return 0;
++  }
+ 
+   /*
+* Initialize EEPROM access
+@@ -1788,7 +1802,7 @@
+ }
+ 
+ /*
+- * Read the MAC address from eeprom
++ * Read the MAC address from eeprom or platform_data
+  */
+ int ath5k_eeprom_read_mac(struct ath5k_hw *ah, u8 *mac)
+ {
+@@ -1796,6 +1810,16 @@
+   u32 total, offset;
+   u16 data;
+   int octet, ret;
++  struct ath5k_platform_data *pdata = NULL;
++
++  if (ah-ah_sc-pdev)
++  pdata = ah-ah_sc-pdev-dev.platform_data;
++
++  if (pdata  pdata-macaddr)
++  {
++  memcpy(mac, pdata-macaddr, ETH_ALEN);
++  return 0;
++  }
+ 
+   ret = ath5k_hw_eeprom_read(ah, 0x20, data);
+   if (ret)
+
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel