mirror of
https://github.com/hanwckf/immortalwrt-mt798x.git
synced 2025-01-09 02:43:53 +08:00
Merge Official Source
This commit is contained in:
commit
349f7e09e7
@ -103,6 +103,15 @@ menu "Global build settings"
|
||||
help
|
||||
If enabled, buildinfo files will be stored in /etc/build.* of firmware.
|
||||
|
||||
config REPRODUCIBLE_DEBUG_INFO
|
||||
bool "Make debug information reproducible"
|
||||
default BUILDBOT
|
||||
help
|
||||
This strips the local build path out of debug information. This has the
|
||||
advantage of making it reproducible, but the disadvantage of making local
|
||||
debugging using ./scripts/remote-gdb harder, since the debug data will
|
||||
no longer point to the full path on the build host.
|
||||
|
||||
config COLLECT_KERNEL_DEBUG
|
||||
bool
|
||||
prompt "Collect kernel debug information"
|
||||
|
@ -114,6 +114,10 @@ $(eval $(call SetupHostCommand,grep,Please install GNU 'grep', \
|
||||
ggrep --version 2>&1 | grep GNU, \
|
||||
grep --version 2>&1 | grep GNU))
|
||||
|
||||
$(eval $(call SetupHostCommand,egrep,Please install GNU 'grep', \
|
||||
gegrep --version 2>&1 | grep GNU, \
|
||||
egrep --version 2>&1 | grep GNU))
|
||||
|
||||
$(eval $(call SetupHostCommand,getopt, \
|
||||
Please install an extended getopt version that supports --long, \
|
||||
gnugetopt -o t --long test -- --test | grep '^ *--test *--', \
|
||||
|
@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/version.mk
|
||||
include $(INCLUDE_DIR)/feeds.mk
|
||||
|
||||
PKG_NAME:=base-files
|
||||
PKG_RELEASE:=225
|
||||
PKG_RELEASE:=226
|
||||
PKG_FLAGS:=nonshared
|
||||
|
||||
PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
|
||||
|
@ -107,9 +107,14 @@ config_unset() {
|
||||
# config_get <variable> <section> <option> [<default>]
|
||||
# config_get <section> <option>
|
||||
config_get() {
|
||||
case "$3" in
|
||||
"") eval echo "\"\${CONFIG_${1}_${2}:-\${4}}\"";;
|
||||
*) eval export ${NO_EXPORT:+-n} -- "${1}=\${CONFIG_${2}_${3}:-\${4}}";;
|
||||
case "$2${3:-$1}" in
|
||||
*[^A-Za-z0-9_]*) : ;;
|
||||
*)
|
||||
case "$3" in
|
||||
"") eval echo "\"\${CONFIG_${1}_${2}:-\${4}}\"";;
|
||||
*) eval export ${NO_EXPORT:+-n} -- "${1}=\${CONFIG_${2}_${3}:-\${4}}";;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
@ -64,6 +64,7 @@ netgear,wndrmac-v1)
|
||||
;;
|
||||
netgear,wndr3700-v4|\
|
||||
netgear,wndr4300|\
|
||||
netgear,wndr4300tn|\
|
||||
netgear,wndr4300sw)
|
||||
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x40000" "0x20000"
|
||||
;;
|
||||
|
@ -8,13 +8,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=binutils
|
||||
PKG_VERSION:=2.27
|
||||
PKG_VERSION:=2.34
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_URL:=@GNU/binutils
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_VERSION:=$(PKG_VERSION)
|
||||
PKG_HASH:=369737ce51587f92466041a97ab7d2358c6d9e1b6490b3940eb09fb0a9a6ac88
|
||||
PKG_HASH:=f00b0e8803dc9bab1e2165bd568528135be734df3fabf8d0161828cd56028952
|
||||
|
||||
PKG_FIXUP:=autoreconf
|
||||
PKG_LIBTOOL_PATHS:=. gas bfd opcodes gprof binutils ld libiberty gold intl
|
||||
@ -37,10 +37,17 @@ define Package/libbfd
|
||||
DEPENDS:=+zlib $(ICONV_DEPENDS) $(INTL_DEPENDS)
|
||||
endef
|
||||
|
||||
define Package/libctf
|
||||
SECTION:=libs
|
||||
CATEGORY:=Libraries
|
||||
TITLE:=libctf
|
||||
DEPENDS:=+libbfd
|
||||
endef
|
||||
|
||||
define Package/libopcodes
|
||||
SECTION:=libs
|
||||
CATEGORY:=Libraries
|
||||
TITLE:=libbfd
|
||||
TITLE:=libopcodes
|
||||
DEPENDS:=+libbfd
|
||||
endef
|
||||
|
||||
@ -56,7 +63,7 @@ define Package/objdump
|
||||
SECTION:=devel
|
||||
CATEGORY:=Development
|
||||
TITLE:=objdump
|
||||
DEPENDS:=+libopcodes
|
||||
DEPENDS:=+libopcodes +libctf
|
||||
endef
|
||||
|
||||
define Package/ar
|
||||
@ -94,7 +101,12 @@ endef
|
||||
|
||||
define Package/libbfd/install
|
||||
$(INSTALL_DIR) $(1)/usr/lib
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libbfd*.so $(1)/usr/lib/
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libbfd*.so* $(1)/usr/lib/
|
||||
endef
|
||||
|
||||
define Package/libctf/install
|
||||
$(INSTALL_DIR) $(1)/usr/lib
|
||||
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libctf.so* $(1)/usr/lib/
|
||||
endef
|
||||
|
||||
define Package/libopcodes/install
|
||||
@ -121,6 +133,7 @@ define Package/binutils/install
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,libbfd))
|
||||
$(eval $(call BuildPackage,libctf))
|
||||
$(eval $(call BuildPackage,libopcodes))
|
||||
$(eval $(call BuildPackage,binutils))
|
||||
$(eval $(call BuildPackage,objdump))
|
||||
|
@ -1,65 +0,0 @@
|
||||
From 183eb37e25d903ccd68cc2d8f8a37e75872c03d2 Mon Sep 17 00:00:00 2001
|
||||
From: Nick Clifton <nickc@redhat.com>
|
||||
Date: Tue, 6 Sep 2016 17:35:35 +0100
|
||||
Subject: [PATCH 1/2] Do not pass host compiler sanitization flags on to linker
|
||||
testsuite.
|
||||
|
||||
* Makefile.am (CFLAGS_FOR_TARGET): Define as a copy of CFLAGS but
|
||||
without any sanitization options.
|
||||
(CXXFLAGS_FOR_TARGET): Define as a copy of CXXFLAGS but without
|
||||
any sanitization options.
|
||||
(check-DEJAGNU): Pass CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET
|
||||
as CFLAGS and CXXFLAGS respectively.
|
||||
---
|
||||
ld/Makefile.am | 8 ++++++--
|
||||
ld/Makefile.in | 8 ++++++--
|
||||
2 files changed, 12 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/ld/Makefile.am
|
||||
+++ b/ld/Makefile.am
|
||||
@@ -136,6 +136,10 @@ CXX_FOR_TARGET = ` \
|
||||
fi; \
|
||||
fi`
|
||||
|
||||
+# Strip out sanitization options as we want to test building binaries without any extra paraphernalia
|
||||
+CFLAGS_FOR_TARGET = `echo $(CFLAGS) | sed -e 's/-fsanitize=address//g' -e 's/-fsanitize=undefined//g'`
|
||||
+CXXFLAGS_FOR_TARGET = `echo $(CXXFLAGS) | sed -e 's/-fsanitize=address//g' -e 's/-fsanitize=undefined//g'`
|
||||
+
|
||||
transform = s/^ld-new$$/$(installed_linker)/;@program_transform_name@
|
||||
bin_PROGRAMS = ld-new
|
||||
info_TEXINFOS = ld.texinfo
|
||||
@@ -2075,8 +2079,8 @@ check-DEJAGNU: site.exp
|
||||
runtest=$(RUNTEST); \
|
||||
if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
|
||||
$$runtest --tool $(DEJATOOL) --srcdir $${srcroot}/testsuite \
|
||||
- CC="$(CC_FOR_TARGET)" CFLAGS="$(CFLAGS)" \
|
||||
- CXX="$(CXX_FOR_TARGET)" CXXFLAGS="$(CXXFLAGS)" \
|
||||
+ CC="$(CC_FOR_TARGET)" CFLAGS="$(CFLAGS_FOR_TARGET)" \
|
||||
+ CXX="$(CXX_FOR_TARGET)" CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
|
||||
CC_FOR_HOST="$(CC)" CFLAGS_FOR_HOST="$(CFLAGS)" \
|
||||
OFILES="$(OFILES)" BFDLIB="$(TESTBFDLIB)" \
|
||||
LIBIBERTY="$(LIBIBERTY) $(LIBINTL)" LIBS="$(LIBS)" \
|
||||
--- a/ld/Makefile.in
|
||||
+++ b/ld/Makefile.in
|
||||
@@ -507,6 +507,10 @@ CXX_FOR_TARGET = ` \
|
||||
fi; \
|
||||
fi`
|
||||
|
||||
+
|
||||
+# Strip out sanitization options as they require special host libraries.
|
||||
+CFLAGS_FOR_TARGET = `echo $(CFLAGS) | sed -e 's/-fsanitize=address//g' -e 's/-fsanitize=undefined//g'`
|
||||
+CXXFLAGS_FOR_TARGET = `echo $(CXXFLAGS) | sed -e 's/-fsanitize=address//g' -e 's/-fsanitize=undefined//g'`
|
||||
info_TEXINFOS = ld.texinfo
|
||||
ld_TEXINFOS = configdoc.texi
|
||||
noinst_TEXINFOS = ldint.texinfo
|
||||
@@ -3644,8 +3648,8 @@ check-DEJAGNU: site.exp
|
||||
runtest=$(RUNTEST); \
|
||||
if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
|
||||
$$runtest --tool $(DEJATOOL) --srcdir $${srcroot}/testsuite \
|
||||
- CC="$(CC_FOR_TARGET)" CFLAGS="$(CFLAGS)" \
|
||||
- CXX="$(CXX_FOR_TARGET)" CXXFLAGS="$(CXXFLAGS)" \
|
||||
+ CC="$(CC_FOR_TARGET)" CFLAGS="$(CFLAGS_FOR_TARGET)" \
|
||||
+ CXX="$(CXX_FOR_TARGET)" CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
|
||||
CC_FOR_HOST="$(CC)" CFLAGS_FOR_HOST="$(CFLAGS)" \
|
||||
OFILES="$(OFILES)" BFDLIB="$(TESTBFDLIB)" \
|
||||
LIBIBERTY="$(LIBIBERTY) $(LIBINTL)" LIBS="$(LIBS)" \
|
File diff suppressed because it is too large
Load Diff
@ -35,6 +35,7 @@ PKG_DRIVERS = \
|
||||
|
||||
PKG_CONFIG_DEPENDS:= \
|
||||
CONFIG_PACKAGE_kmod-mac80211 \
|
||||
CONFIG_PACKAGE_CFG80211_TESTMODE \
|
||||
CONFIG_PACKAGE_MAC80211_DEBUGFS \
|
||||
CONFIG_PACKAGE_MAC80211_MESH \
|
||||
CONFIG_PACKAGE_MAC80211_TRACING \
|
||||
@ -56,7 +57,6 @@ config_package=$(if $(CONFIG_PACKAGE_kmod-$(1)),m)
|
||||
|
||||
config-y:= \
|
||||
WLAN \
|
||||
NL80211_TESTMODE \
|
||||
CFG80211_WEXT \
|
||||
CFG80211_CERTIFICATION_ONUS \
|
||||
MAC80211_RC_MINSTREL \
|
||||
@ -80,6 +80,7 @@ config-y:= \
|
||||
WLAN_VENDOR_ZYDAS \
|
||||
|
||||
config-$(call config_package,cfg80211) += CFG80211
|
||||
config-$(CONFIG_PACKAGE_CFG80211_TESTMODE) += NL80211_TESTMODE
|
||||
|
||||
config-$(call config_package,mac80211) += MAC80211
|
||||
config-$(CONFIG_PACKAGE_MAC80211_MESH) += MAC80211_MESH
|
||||
@ -108,6 +109,20 @@ define KernelPackage/cfg80211/description
|
||||
cfg80211 is the Linux wireless LAN (802.11) configuration API.
|
||||
endef
|
||||
|
||||
define KernelPackage/cfg80211/config
|
||||
if PACKAGE_kmod-cfg80211
|
||||
|
||||
config PACKAGE_CFG80211_TESTMODE
|
||||
bool "Enable testmode command support"
|
||||
default n
|
||||
help
|
||||
This is typically used for tests and calibration during
|
||||
manufacturing, or vendor specific debugging features
|
||||
|
||||
endif
|
||||
endef
|
||||
|
||||
|
||||
define KernelPackage/mac80211
|
||||
$(call KernelPackage/mac80211/Default)
|
||||
TITLE:=Linux 802.11 Wireless Networking Stack
|
||||
|
@ -0,0 +1,81 @@
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Fri, 24 Jul 2020 20:25:07 +0200
|
||||
Subject: [PATCH] mac80211: improve AQL tx airtime estimation
|
||||
|
||||
AQL does not take into account that most HT/VHT/HE traffic is A-MPDU aggregated.
|
||||
Because of that, the per-packet airtime overhead is vastly overestimated.
|
||||
Improve it by assuming an average aggregation length of 16 for non-legacy
|
||||
traffic if not using the VO AC queue.
|
||||
This should improve performance with high data rates, especially with multiple
|
||||
stations
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
||||
--- a/net/mac80211/airtime.c
|
||||
+++ b/net/mac80211/airtime.c
|
||||
@@ -551,7 +551,7 @@ EXPORT_SYMBOL_GPL(ieee80211_calc_tx_airt
|
||||
u32 ieee80211_calc_expected_tx_airtime(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif,
|
||||
struct ieee80211_sta *pubsta,
|
||||
- int len)
|
||||
+ int len, bool ampdu)
|
||||
{
|
||||
struct ieee80211_supported_band *sband;
|
||||
struct ieee80211_chanctx_conf *conf;
|
||||
@@ -572,10 +572,26 @@ u32 ieee80211_calc_expected_tx_airtime(s
|
||||
if (pubsta) {
|
||||
struct sta_info *sta = container_of(pubsta, struct sta_info,
|
||||
sta);
|
||||
+ struct ieee80211_tx_rate *rate = &sta->tx_stats.last_rate;
|
||||
+ u32 airtime;
|
||||
|
||||
- return ieee80211_calc_tx_airtime_rate(hw,
|
||||
- &sta->tx_stats.last_rate,
|
||||
- band, len);
|
||||
+ if (!(rate->flags & (IEEE80211_TX_RC_VHT_MCS |
|
||||
+ IEEE80211_TX_RC_MCS)))
|
||||
+ ampdu = false;
|
||||
+
|
||||
+ /*
|
||||
+ * Assume that HT/VHT transmission on any AC except VO will
|
||||
+ * use aggregation. Since we don't have reliable reporting
|
||||
+ * of aggregation length, assume an average of 16.
|
||||
+ * This will not be very accurate, but much better than simply
|
||||
+ * assuming un-aggregated tx.
|
||||
+ */
|
||||
+ airtime = ieee80211_calc_tx_airtime_rate(hw, rate, band,
|
||||
+ ampdu ? len * 16 : len);
|
||||
+ if (ampdu)
|
||||
+ airtime /= 16;
|
||||
+
|
||||
+ return airtime;
|
||||
}
|
||||
|
||||
if (!conf)
|
||||
--- a/net/mac80211/ieee80211_i.h
|
||||
+++ b/net/mac80211/ieee80211_i.h
|
||||
@@ -2278,7 +2278,7 @@ extern const struct ethtool_ops ieee8021
|
||||
u32 ieee80211_calc_expected_tx_airtime(struct ieee80211_hw *hw,
|
||||
struct ieee80211_vif *vif,
|
||||
struct ieee80211_sta *pubsta,
|
||||
- int len);
|
||||
+ int len, bool ampdu);
|
||||
#ifdef CPTCFG_MAC80211_NOINLINE
|
||||
#define debug_noinline noinline
|
||||
#else
|
||||
--- a/net/mac80211/tx.c
|
||||
+++ b/net/mac80211/tx.c
|
||||
@@ -3694,10 +3694,11 @@ encap_out:
|
||||
|
||||
if (vif &&
|
||||
wiphy_ext_feature_isset(local->hw.wiphy, NL80211_EXT_FEATURE_AQL)) {
|
||||
+ bool ampdu = txq->ac != IEEE80211_AC_VO;
|
||||
u32 airtime;
|
||||
|
||||
airtime = ieee80211_calc_expected_tx_airtime(hw, vif, txq->sta,
|
||||
- skb->len);
|
||||
+ skb->len, ampdu);
|
||||
if (airtime) {
|
||||
airtime = ieee80211_info_set_tx_time_est(info, airtime);
|
||||
ieee80211_sta_update_pending_airtime(local, tx.sta,
|
@ -0,0 +1,31 @@
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Sat, 25 Jul 2020 10:42:30 +0200
|
||||
Subject: [PATCH] mac80211: remove STA txq pending airtime underflow
|
||||
warning
|
||||
|
||||
This warning can trigger if there is a mismatch between frames that were
|
||||
sent with the sta pointer set vs tx status frames reported for the sta address.
|
||||
|
||||
This can happen due to race conditions on re-creating stations, or even
|
||||
in the case of .sta_add/remove being used instead of .sta_state, which can cause
|
||||
frames to be sent to a station that has not been uploaded yet.
|
||||
|
||||
If there is an actual underflow issue, it should show up in the device airtime
|
||||
warning below, so it is better to remove this one.
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
||||
--- a/net/mac80211/sta_info.c
|
||||
+++ b/net/mac80211/sta_info.c
|
||||
@@ -1924,9 +1924,7 @@ void ieee80211_sta_update_pending_airtim
|
||||
if (sta) {
|
||||
tx_pending = atomic_sub_return(tx_airtime,
|
||||
&sta->airtime[ac].aql_tx_pending);
|
||||
- if (WARN_ONCE(tx_pending < 0,
|
||||
- "STA %pM AC %d txq pending airtime underflow: %u, %u",
|
||||
- sta->addr, ac, tx_pending, tx_airtime))
|
||||
+ if (tx_pending < 0)
|
||||
atomic_cmpxchg(&sta->airtime[ac].aql_tx_pending,
|
||||
tx_pending, 0);
|
||||
}
|
@ -0,0 +1,186 @@
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Sat, 25 Jul 2020 20:53:23 +0200
|
||||
Subject: [PATCH] mac80211: add a function for running rx without passing skbs
|
||||
to the stack
|
||||
|
||||
This can be used to run mac80211 rx processing on a batch of frames in NAPI
|
||||
poll before passing them to the network stack in a large batch.
|
||||
This can improve icache footprint, or it can be used to pass frames via
|
||||
netif_receive_skb_list.
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -4358,6 +4358,31 @@ void ieee80211_free_hw(struct ieee80211_
|
||||
void ieee80211_restart_hw(struct ieee80211_hw *hw);
|
||||
|
||||
/**
|
||||
+ * ieee80211_rx_list - receive frame and store processed skbs in a list
|
||||
+ *
|
||||
+ * Use this function to hand received frames to mac80211. The receive
|
||||
+ * buffer in @skb must start with an IEEE 802.11 header. In case of a
|
||||
+ * paged @skb is used, the driver is recommended to put the ieee80211
|
||||
+ * header of the frame on the linear part of the @skb to avoid memory
|
||||
+ * allocation and/or memcpy by the stack.
|
||||
+ *
|
||||
+ * This function may not be called in IRQ context. Calls to this function
|
||||
+ * for a single hardware must be synchronized against each other. Calls to
|
||||
+ * this function, ieee80211_rx_ni() and ieee80211_rx_irqsafe() may not be
|
||||
+ * mixed for a single hardware. Must not run concurrently with
|
||||
+ * ieee80211_tx_status() or ieee80211_tx_status_ni().
|
||||
+ *
|
||||
+ * This function must be called with BHs disabled and RCU read lock
|
||||
+ *
|
||||
+ * @hw: the hardware this frame came in on
|
||||
+ * @sta: the station the frame was received from, or %NULL
|
||||
+ * @skb: the buffer to receive, owned by mac80211 after this call
|
||||
+ * @list: the destination list
|
||||
+ */
|
||||
+void ieee80211_rx_list(struct ieee80211_hw *hw, struct ieee80211_sta *sta,
|
||||
+ struct sk_buff *skb, struct list_head *list);
|
||||
+
|
||||
+/**
|
||||
* ieee80211_rx_napi - receive frame from NAPI context
|
||||
*
|
||||
* Use this function to hand received frames to mac80211. The receive
|
||||
--- a/net/mac80211/ieee80211_i.h
|
||||
+++ b/net/mac80211/ieee80211_i.h
|
||||
@@ -218,7 +218,7 @@ enum ieee80211_rx_flags {
|
||||
};
|
||||
|
||||
struct ieee80211_rx_data {
|
||||
- struct napi_struct *napi;
|
||||
+ struct list_head *list;
|
||||
struct sk_buff *skb;
|
||||
struct ieee80211_local *local;
|
||||
struct ieee80211_sub_if_data *sdata;
|
||||
--- a/net/mac80211/rx.c
|
||||
+++ b/net/mac80211/rx.c
|
||||
@@ -2552,8 +2552,8 @@ static void ieee80211_deliver_skb_to_loc
|
||||
memset(skb->cb, 0, sizeof(skb->cb));
|
||||
|
||||
/* deliver to local stack */
|
||||
- if (rx->napi)
|
||||
- napi_gro_receive(rx->napi, skb);
|
||||
+ if (rx->list)
|
||||
+ list_add_tail(&skb->list, rx->list);
|
||||
else
|
||||
netif_receive_skb(skb);
|
||||
}
|
||||
@@ -3843,7 +3843,6 @@ void ieee80211_release_reorder_timeout(s
|
||||
/* This is OK -- must be QoS data frame */
|
||||
.security_idx = tid,
|
||||
.seqno_idx = tid,
|
||||
- .napi = NULL, /* must be NULL to not have races */
|
||||
};
|
||||
struct tid_ampdu_rx *tid_agg_rx;
|
||||
|
||||
@@ -4453,8 +4452,8 @@ static bool ieee80211_invoke_fast_rx(str
|
||||
/* deliver to local stack */
|
||||
skb->protocol = eth_type_trans(skb, fast_rx->dev);
|
||||
memset(skb->cb, 0, sizeof(skb->cb));
|
||||
- if (rx->napi)
|
||||
- napi_gro_receive(rx->napi, skb);
|
||||
+ if (rx->list)
|
||||
+ list_add_tail(&skb->list, rx->list);
|
||||
else
|
||||
netif_receive_skb(skb);
|
||||
|
||||
@@ -4521,7 +4520,7 @@ static bool ieee80211_prepare_and_rx_han
|
||||
static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw,
|
||||
struct ieee80211_sta *pubsta,
|
||||
struct sk_buff *skb,
|
||||
- struct napi_struct *napi)
|
||||
+ struct list_head *list)
|
||||
{
|
||||
struct ieee80211_local *local = hw_to_local(hw);
|
||||
struct ieee80211_sub_if_data *sdata;
|
||||
@@ -4536,7 +4535,7 @@ static void __ieee80211_rx_handle_packet
|
||||
memset(&rx, 0, sizeof(rx));
|
||||
rx.skb = skb;
|
||||
rx.local = local;
|
||||
- rx.napi = napi;
|
||||
+ rx.list = list;
|
||||
|
||||
if (ieee80211_is_data(fc) || ieee80211_is_mgmt(fc))
|
||||
I802_DEBUG_INC(local->dot11ReceivedFragmentCount);
|
||||
@@ -4644,8 +4643,8 @@ static void __ieee80211_rx_handle_packet
|
||||
* This is the receive path handler. It is called by a low level driver when an
|
||||
* 802.11 MPDU is received from the hardware.
|
||||
*/
|
||||
-void ieee80211_rx_napi(struct ieee80211_hw *hw, struct ieee80211_sta *pubsta,
|
||||
- struct sk_buff *skb, struct napi_struct *napi)
|
||||
+void ieee80211_rx_list(struct ieee80211_hw *hw, struct ieee80211_sta *pubsta,
|
||||
+ struct sk_buff *skb, struct list_head *list)
|
||||
{
|
||||
struct ieee80211_local *local = hw_to_local(hw);
|
||||
struct ieee80211_rate *rate = NULL;
|
||||
@@ -4737,36 +4736,53 @@ void ieee80211_rx_napi(struct ieee80211_
|
||||
status->rx_flags = 0;
|
||||
|
||||
/*
|
||||
- * key references and virtual interfaces are protected using RCU
|
||||
- * and this requires that we are in a read-side RCU section during
|
||||
- * receive processing
|
||||
- */
|
||||
- rcu_read_lock();
|
||||
-
|
||||
- /*
|
||||
* Frames with failed FCS/PLCP checksum are not returned,
|
||||
* all other frames are returned without radiotap header
|
||||
* if it was previously present.
|
||||
* Also, frames with less than 16 bytes are dropped.
|
||||
*/
|
||||
skb = ieee80211_rx_monitor(local, skb, rate);
|
||||
- if (!skb) {
|
||||
- rcu_read_unlock();
|
||||
+ if (!skb)
|
||||
return;
|
||||
- }
|
||||
|
||||
ieee80211_tpt_led_trig_rx(local,
|
||||
((struct ieee80211_hdr *)skb->data)->frame_control,
|
||||
skb->len);
|
||||
|
||||
- __ieee80211_rx_handle_packet(hw, pubsta, skb, napi);
|
||||
-
|
||||
- rcu_read_unlock();
|
||||
+ __ieee80211_rx_handle_packet(hw, pubsta, skb, list);
|
||||
|
||||
return;
|
||||
drop:
|
||||
kfree_skb(skb);
|
||||
}
|
||||
+EXPORT_SYMBOL(ieee80211_rx_list);
|
||||
+
|
||||
+void ieee80211_rx_napi(struct ieee80211_hw *hw, struct ieee80211_sta *pubsta,
|
||||
+ struct sk_buff *skb, struct napi_struct *napi)
|
||||
+{
|
||||
+ struct sk_buff *tmp;
|
||||
+ LIST_HEAD(list);
|
||||
+
|
||||
+
|
||||
+ /*
|
||||
+ * key references and virtual interfaces are protected using RCU
|
||||
+ * and this requires that we are in a read-side RCU section during
|
||||
+ * receive processing
|
||||
+ */
|
||||
+ rcu_read_lock();
|
||||
+ ieee80211_rx_list(hw, pubsta, skb, &list);
|
||||
+ rcu_read_unlock();
|
||||
+
|
||||
+ if (!napi) {
|
||||
+ netif_receive_skb_list(&list);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ list_for_each_entry_safe(skb, tmp, &list, list) {
|
||||
+ skb_list_del_init(skb);
|
||||
+ napi_gro_receive(napi, skb);
|
||||
+ }
|
||||
+}
|
||||
EXPORT_SYMBOL(ieee80211_rx_napi);
|
||||
|
||||
/* This is a version of the rx handler that can be called from hard irq
|
@ -0,0 +1,55 @@
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Sun, 26 Jul 2020 14:37:02 +0200
|
||||
Subject: [PATCH] net/fq_impl: use skb_get_hash instead of
|
||||
skb_get_hash_perturb
|
||||
|
||||
This avoids unnecessary regenerating of the skb flow hash
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
||||
--- a/include/net/fq.h
|
||||
+++ b/include/net/fq.h
|
||||
@@ -69,15 +69,6 @@ struct fq {
|
||||
struct list_head backlogs;
|
||||
spinlock_t lock;
|
||||
u32 flows_cnt;
|
||||
-#if LINUX_VERSION_IS_GEQ(5,3,10) || \
|
||||
- LINUX_VERSION_IN_RANGE(4,19,83, 4,20,0) || \
|
||||
- LINUX_VERSION_IN_RANGE(4,14,153, 4,15,0) || \
|
||||
- LINUX_VERSION_IN_RANGE(4,9,200, 4,10,0) || \
|
||||
- LINUX_VERSION_IN_RANGE(4,4,200, 4,5,0)
|
||||
- siphash_key_t perturbation;
|
||||
-#else
|
||||
- u32 perturbation;
|
||||
-#endif
|
||||
u32 limit;
|
||||
u32 memory_limit;
|
||||
u32 memory_usage;
|
||||
--- a/include/net/fq_impl.h
|
||||
+++ b/include/net/fq_impl.h
|
||||
@@ -108,15 +108,7 @@ begin:
|
||||
|
||||
static u32 fq_flow_idx(struct fq *fq, struct sk_buff *skb)
|
||||
{
|
||||
-#if LINUX_VERSION_IS_GEQ(5,3,10) || \
|
||||
- LINUX_VERSION_IN_RANGE(4,19,83, 4,20,0) || \
|
||||
- LINUX_VERSION_IN_RANGE(4,14,153, 4,15,0) || \
|
||||
- LINUX_VERSION_IN_RANGE(4,9,200, 4,10,0) || \
|
||||
- LINUX_VERSION_IN_RANGE(4,4,200, 4,5,0)
|
||||
- u32 hash = skb_get_hash_perturb(skb, &fq->perturbation);
|
||||
-#else
|
||||
- u32 hash = skb_get_hash_perturb(skb, fq->perturbation);
|
||||
-#endif
|
||||
+ u32 hash = skb_get_hash(skb);
|
||||
|
||||
return reciprocal_scale(hash, fq->flows_cnt);
|
||||
}
|
||||
@@ -316,7 +308,6 @@ static int fq_init(struct fq *fq, int fl
|
||||
INIT_LIST_HEAD(&fq->backlogs);
|
||||
spin_lock_init(&fq->lock);
|
||||
fq->flows_cnt = max_t(u32, flows_cnt, 1);
|
||||
- get_random_bytes(&fq->perturbation, sizeof(fq->perturbation));
|
||||
fq->quantum = 300;
|
||||
fq->limit = 8192;
|
||||
fq->memory_limit = 16 << 20; /* 16 MBytes */
|
@ -0,0 +1,19 @@
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Sun, 26 Jul 2020 14:42:58 +0200
|
||||
Subject: [PATCH] mac80211: calculcate skb hash early when using itxq
|
||||
|
||||
This avoids flow separation issues when using software encryption
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
||||
--- a/net/mac80211/tx.c
|
||||
+++ b/net/mac80211/tx.c
|
||||
@@ -3937,6 +3937,7 @@ void __ieee80211_subif_start_xmit(struct
|
||||
if (local->ops->wake_tx_queue) {
|
||||
u16 queue = __ieee80211_select_queue(sdata, sta, skb);
|
||||
skb_set_queue_mapping(skb, queue);
|
||||
+ skb_get_hash(skb);
|
||||
}
|
||||
|
||||
if (sta) {
|
@ -8,9 +8,9 @@ PKG_LICENSE_FILES:=
|
||||
|
||||
PKG_SOURCE_URL:=https://github.com/openwrt/mt76
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_DATE:=2020-05-30
|
||||
PKG_SOURCE_VERSION:=85c516081338d3d1454fb53b5741321c2adefbef
|
||||
PKG_MIRROR_HASH:=a3e110700843ecfee10eba274ab6fe63b9d78a00eb96ee1634b145e0a9ae9a69
|
||||
PKG_SOURCE_DATE:=2020-07-22
|
||||
PKG_SOURCE_VERSION:=b5df0fbb1847a51f0a11f03a3fa8dc9d98d4df82
|
||||
PKG_MIRROR_HASH:=70aca7f8912b89af975c7b63fdf25d41be831c434e0c991fcbdaa60127d4acd5
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
@ -23,12 +23,17 @@ PKG_CONFIG_DEPENDS += \
|
||||
CONFIG_PACKAGE_kmod-mt76x2-common \
|
||||
CONFIG_PACKAGE_kmod-mt76x2 \
|
||||
CONFIG_PACKAGE_kmod-mt76x2u \
|
||||
CONFIG_PACKAGE_kmod-mt7603
|
||||
CONFIG_PACKAGE_kmod-mt7603 \
|
||||
CONFIG_PACKAGE_CFG80211_TESTMODE
|
||||
|
||||
STAMP_CONFIGURED_DEPENDS := $(STAGING_DIR)/usr/include/mac80211-backport/backport/autoconf.h
|
||||
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include $(INCLUDE_DIR)/cmake.mk
|
||||
|
||||
CMAKE_SOURCE_DIR:=$(PKG_BUILD_DIR)/tools
|
||||
CMAKE_BINARY_DIR:=$(PKG_BUILD_DIR)/tools
|
||||
|
||||
define KernelPackage/mt76-default
|
||||
SUBMENU:=Wireless Drivers
|
||||
@ -170,10 +175,29 @@ define KernelPackage/mt7663-firmware-sta
|
||||
TITLE:=MediaTek MT7663e firmware (client mode offload)
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7663-usb-sdio
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7663 USB/SDIO shared code
|
||||
DEPENDS+=+kmod-mt7615-common
|
||||
HIDDEN:=1
|
||||
FILES:= \
|
||||
$(PKG_BUILD_DIR)/mt7615/mt7663-usb-sdio-common.ko
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7663s
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7663s wireless driver
|
||||
DEPENDS+=+kmod-mmc +kmod-mt7615-common +kmod-mt7663-usb-sdio
|
||||
FILES:= \
|
||||
$(PKG_BUILD_DIR)/mt76-sdio.ko \
|
||||
$(PKG_BUILD_DIR)/mt7615/mt7663s.ko
|
||||
AUTOLOAD:=$(call AutoProbe,mt7663s)
|
||||
endef
|
||||
|
||||
define KernelPackage/mt7663u
|
||||
$(KernelPackage/mt76-default)
|
||||
TITLE:=MediaTek MT7663u wireless driver
|
||||
DEPENDS+=+kmod-mt76-usb +kmod-mt7615-common
|
||||
DEPENDS+=+kmod-mt76-usb +kmod-mt7615-common +kmod-mt7663-usb-sdio
|
||||
FILES:= $(PKG_BUILD_DIR)/mt7615/mt7663u.ko
|
||||
AUTOLOAD:=$(call AutoProbe,mt7663u)
|
||||
endef
|
||||
@ -186,6 +210,15 @@ define KernelPackage/mt7915e
|
||||
AUTOLOAD:=$(call AutoProbe,mt7915e)
|
||||
endef
|
||||
|
||||
define Package/mt76-test
|
||||
SECTION:=devel
|
||||
CATEGORY:=Development
|
||||
TITLE:=mt76 testmode CLI
|
||||
DEPENDS:=kmod-mt76-core +libnl-tiny
|
||||
endef
|
||||
|
||||
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include/libnl-tiny
|
||||
|
||||
NOSTDINC_FLAGS = \
|
||||
-I$(PKG_BUILD_DIR) \
|
||||
-I$(STAGING_DIR)/usr/include/mac80211-backport/uapi \
|
||||
@ -199,6 +232,11 @@ ifdef CONFIG_PACKAGE_MAC80211_MESH
|
||||
NOSTDINC_FLAGS += -DCONFIG_MAC80211_MESH
|
||||
endif
|
||||
|
||||
ifdef CONFIG_PACKAGE_CFG80211_TESTMODE
|
||||
NOSTDINC_FLAGS += -DCONFIG_NL80211_TESTMODE
|
||||
PKG_MAKE_FLAGS += CONFIG_NL80211_TESTMODE=y
|
||||
endif
|
||||
|
||||
ifdef CONFIG_PACKAGE_kmod-mt76-usb
|
||||
PKG_MAKE_FLAGS += CONFIG_MT76_USB=m
|
||||
endif
|
||||
@ -239,6 +277,13 @@ ifdef CONFIG_PACKAGE_kmod-mt7615e
|
||||
NOSTDINC_FLAGS += -DCONFIG_MT7622_WMAC
|
||||
endif
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt7663-usb-sdio
|
||||
PKG_MAKE_FLAGS += CONFIG_MT7663_USB_SDIO_COMMON=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt7663s
|
||||
PKG_MAKE_FLAGS += CONFIG_MT76_SDIO=m
|
||||
PKG_MAKE_FLAGS += CONFIG_MT7663S=m
|
||||
endif
|
||||
ifdef CONFIG_PACKAGE_kmod-mt7663u
|
||||
PKG_MAKE_FLAGS += CONFIG_MT7663U=m
|
||||
endif
|
||||
@ -253,6 +298,11 @@ define Build/Compile
|
||||
M="$(PKG_BUILD_DIR)" \
|
||||
NOSTDINC_FLAGS="$(NOSTDINC_FLAGS)" \
|
||||
modules
|
||||
$(MAKE) -C $(PKG_BUILD_DIR)/tools
|
||||
endef
|
||||
|
||||
define Build/Install
|
||||
:
|
||||
endef
|
||||
|
||||
define Package/kmod-mt76/install
|
||||
@ -334,6 +384,11 @@ define KernelPackage/mt7915e/install
|
||||
$(1)/lib/firmware/mediatek
|
||||
endef
|
||||
|
||||
define Package/mt76-test/install
|
||||
mkdir -p $(1)/usr/sbin
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/mt76-test $(1)/usr/sbin
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,mt76-core))
|
||||
$(eval $(call KernelPackage,mt76-usb))
|
||||
$(eval $(call KernelPackage,mt76x02-usb))
|
||||
@ -350,6 +405,9 @@ $(eval $(call KernelPackage,mt7615-firmware))
|
||||
$(eval $(call KernelPackage,mt7615e))
|
||||
$(eval $(call KernelPackage,mt7663-firmware-ap))
|
||||
$(eval $(call KernelPackage,mt7663-firmware-sta))
|
||||
$(eval $(call KernelPackage,mt7663-usb-sdio))
|
||||
$(eval $(call KernelPackage,mt7663u))
|
||||
$(eval $(call KernelPackage,mt7663s))
|
||||
$(eval $(call KernelPackage,mt7915e))
|
||||
$(eval $(call KernelPackage,mt76))
|
||||
$(eval $(call BuildPackage,mt76-test))
|
||||
|
@ -5,9 +5,9 @@ PKG_RELEASE=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/libubox.git
|
||||
PKG_MIRROR_HASH:=cb941cd33f43b38ef1a1f2b4fd212e0bb21c100dcdd2ab1976f8cc2071566d32
|
||||
PKG_SOURCE_DATE:=2020-07-11
|
||||
PKG_SOURCE_VERSION:=f4e9bf73ac5c0ee6b8f240e2a2100e70ca56d705
|
||||
PKG_MIRROR_HASH:=cf963b19f5a25da85b2d8888514cbcc33c3f641c4478c9c25312b8bf83fe9e6b
|
||||
PKG_SOURCE_DATE:=2020-08-06
|
||||
PKG_SOURCE_VERSION:=9e52171d70def760a6949676800d0b73f85ee22d
|
||||
CMAKE_INSTALL:=1
|
||||
|
||||
PKG_LICENSE:=ISC
|
||||
|
@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
|
||||
PKG_NAME:=dnsmasq
|
||||
PKG_UPSTREAM_VERSION:=2.82
|
||||
PKG_VERSION:=$(subst test,~~test,$(subst rc,~rc,$(PKG_UPSTREAM_VERSION)))
|
||||
PKG_RELEASE:=3
|
||||
PKG_RELEASE:=4
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_UPSTREAM_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq
|
||||
|
@ -42,9 +42,13 @@ dnsmasq_ignore_opt() {
|
||||
bootp-*|\
|
||||
pxe-*)
|
||||
[ -z "$dnsmasq_has_dhcp" ] ;;
|
||||
dnssec-*|\
|
||||
dnssec*|\
|
||||
trust-anchor)
|
||||
[ -z "$dnsmasq_has_dnssec" ] ;;
|
||||
if [ -z "$dnsmasq_has_dnssec" ]; then
|
||||
echo "dnsmasq: \"$opt\" requested, but dnssec support is not available" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
tftp-*)
|
||||
[ -z "$dnsmasq_has_tftp" ] ;;
|
||||
ipset)
|
||||
|
@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
|
||||
PKG_NAME:=openvpn
|
||||
|
||||
PKG_VERSION:=2.4.9
|
||||
PKG_RELEASE:=3
|
||||
PKG_RELEASE:=4
|
||||
|
||||
PKG_SOURCE_URL:=\
|
||||
https://build.openvpn.net/downloads/releases/ \
|
||||
|
@ -13,7 +13,8 @@
|
||||
case "$ACTION" in
|
||||
up|down)
|
||||
if get_openvpn_option "$config" command "$ACTION"; then
|
||||
exec /bin/sh -c "$command $ACTION $INSTANCE $*"
|
||||
shift
|
||||
exec /bin/sh -c "$command $*"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
@ -12,9 +12,9 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/uhttpd.git
|
||||
PKG_SOURCE_DATE:=2020-06-03
|
||||
PKG_SOURCE_VERSION:=939c281c70ef82929ffcb3cb383fd6fdc40f341b
|
||||
PKG_MIRROR_HASH:=4cd16ef955fe32ddb579ec79f3d8f636e7100ccecd95be1991e7e4d317090a54
|
||||
PKG_SOURCE_DATE:=2020-08-05
|
||||
PKG_SOURCE_VERSION:=212f8364d49c1bc27dd8bdc394fc3615ea9b7ba3
|
||||
PKG_MIRROR_HASH:=c717924cd075951846cb8ad271f4754db56af53a271ed0afbdc5a2f482e15f97
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
PKG_LICENSE:=ISC
|
||||
|
||||
|
@ -12,9 +12,9 @@ PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git
|
||||
PKG_SOURCE_DATE:=2020-07-30
|
||||
PKG_SOURCE_VERSION:=2ae5cbcf1d4509837a16eceafca374e9bf0ea850
|
||||
PKG_MIRROR_HASH:=479d4a4bfb71ef54300e7b669846e596db7792566302b4d29e3265643d89bce3
|
||||
PKG_SOURCE_DATE:=2020-08-06
|
||||
PKG_SOURCE_VERSION:=ab55357dfe5bd0edac0b9556a83e69814df791b1
|
||||
PKG_MIRROR_HASH:=38c882e105811bcd10b5ce55f91a16a647ed2ad436aec01cd03fda588b7bfca9
|
||||
CMAKE_INSTALL:=1
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
2
rules.mk
2
rules.mk
@ -144,7 +144,7 @@ ifeq ($(or $(CONFIG_EXTERNAL_TOOLCHAIN),$(CONFIG_TARGET_uml)),)
|
||||
ifeq ($(CONFIG_GCC_USE_IREMAP),y)
|
||||
iremap = -iremap$(1):$(2)
|
||||
else
|
||||
iremap = -ffile-prefix-map=$(1)=$(2)
|
||||
iremap = -f$(if $(CONFIG_REPRODUCIBLE_DEBUG_INFO),file,macro)-prefix-map=$(1)=$(2)
|
||||
endif
|
||||
endif
|
||||
|
||||
|
@ -130,7 +130,6 @@ CONFIG_GPIOLIB=y
|
||||
CONFIG_GPIOLIB_FASTPATH_LIMIT=512
|
||||
CONFIG_GPIO_GENERIC=y
|
||||
CONFIG_GPIO_GENERIC_PLATFORM=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_HAS_DMA=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT_MAP=y
|
||||
|
@ -145,7 +145,6 @@ CONFIG_GENERIC_TIME_VSYSCALL=y
|
||||
CONFIG_GPIOLIB=y
|
||||
CONFIG_GPIO_GENERIC=y
|
||||
CONFIG_GPIO_GENERIC_PLATFORM=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_HAS_DMA=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT_MAP=y
|
||||
|
@ -339,7 +339,6 @@ CONFIG_GPIO_GENERIC=y
|
||||
# CONFIG_GPIO_LATCH is not set
|
||||
CONFIG_GPIO_NXP_74HC153=y
|
||||
CONFIG_GPIO_PCF857X=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_HANDLE_DOMAIN_IRQ=y
|
||||
CONFIG_HARDWARE_WATCHPOINTS=y
|
||||
CONFIG_HAS_DMA=y
|
||||
|
@ -122,7 +122,6 @@ CONFIG_GPIOLIB=y
|
||||
CONFIG_GPIO_DWAPB=y
|
||||
CONFIG_GPIO_GENERIC=y
|
||||
CONFIG_GPIO_SNPS_CREG=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_GRACE_PERIOD=y
|
||||
CONFIG_HANDLE_DOMAIN_IRQ=y
|
||||
CONFIG_HAS_DMA=y
|
||||
|
@ -211,7 +211,6 @@ CONFIG_GENERIC_STRNLEN_USER=y
|
||||
CONFIG_GLOB=y
|
||||
CONFIG_GPIOLIB=y
|
||||
CONFIG_GPIOLIB_IRQCHIP=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
# CONFIG_GRO_CELLS is not set
|
||||
CONFIG_HANDLE_DOMAIN_IRQ=y
|
||||
CONFIG_HARDEN_BRANCH_PREDICTOR=y
|
||||
|
@ -62,7 +62,6 @@ CONFIG_GENERIC_TIME_VSYSCALL=y
|
||||
CONFIG_GPIOLIB=y
|
||||
CONFIG_GPIO_AR2315=y
|
||||
CONFIG_GPIO_AR5312=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
# CONFIG_GRO_CELLS is not set
|
||||
CONFIG_HANDLE_DOMAIN_IRQ=y
|
||||
CONFIG_HARDWARE_WATCHPOINTS=y
|
||||
|
@ -81,7 +81,6 @@ CONFIG_GPIOLIB_IRQCHIP=y
|
||||
CONFIG_GPIO_74X164=y
|
||||
CONFIG_GPIO_ATH79=y
|
||||
CONFIG_GPIO_GENERIC=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_HANDLE_DOMAIN_IRQ=y
|
||||
CONFIG_HARDWARE_WATCHPOINTS=y
|
||||
CONFIG_HAS_DMA=y
|
||||
|
@ -90,7 +90,6 @@ CONFIG_GPIOLIB_IRQCHIP=y
|
||||
CONFIG_GPIO_74X164=y
|
||||
CONFIG_GPIO_ATH79=y
|
||||
CONFIG_GPIO_GENERIC=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_HANDLE_DOMAIN_IRQ=y
|
||||
CONFIG_HARDWARE_WATCHPOINTS=y
|
||||
CONFIG_HAS_DMA=y
|
||||
|
@ -40,7 +40,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
leds {
|
||||
leds: leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
pinctrl-names = "default";
|
||||
@ -57,16 +57,6 @@
|
||||
default-state = "keep";
|
||||
};
|
||||
|
||||
wan_green {
|
||||
label = "netgear:green:wan";
|
||||
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
wan_amber {
|
||||
label = "netgear:amber:wan";
|
||||
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
wlan2g_green {
|
||||
label = "netgear:green:wlan2g";
|
||||
gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
|
||||
@ -88,13 +78,6 @@
|
||||
label = "netgear:amber:wps";
|
||||
gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
usb_green {
|
||||
label = "netgear:green:usb";
|
||||
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
|
||||
trigger-sources = <&hub_port>;
|
||||
linux,default-trigger = "usbport";
|
||||
};
|
||||
};
|
||||
|
||||
ubi-concat {
|
||||
@ -272,28 +255,6 @@
|
||||
qca,no-eeprom;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
|
||||
usb_power {
|
||||
gpio-hog;
|
||||
line-name = "netgear:power:usb";
|
||||
gpios = <0 GPIO_ACTIVE_HIGH>;
|
||||
output-high;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&usb_phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
hub_port: port@1 {
|
||||
reg = <1>;
|
||||
#trigger-source-cells = <0>;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -2,6 +2,8 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "ar9344_netgear_wndr.dtsi"
|
||||
#include "ar9344_netgear_wndr_wan.dtsi"
|
||||
#include "ar9344_netgear_wndr_usb.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "netgear,wndr3700-v4", "qca,ar9344";
|
||||
|
@ -2,6 +2,8 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "ar9344_netgear_wndr.dtsi"
|
||||
#include "ar9344_netgear_wndr_wan.dtsi"
|
||||
#include "ar9344_netgear_wndr_usb.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "netgear,wndr4300", "qca,ar9344";
|
||||
|
@ -2,6 +2,8 @@
|
||||
/dts-v1/;
|
||||
|
||||
#include "ar9344_netgear_wndr.dtsi"
|
||||
#include "ar9344_netgear_wndr_wan.dtsi"
|
||||
#include "ar9344_netgear_wndr_usb.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "netgear,wndr4300sw", "qca,ar9344";
|
||||
|
9
target/linux/ath79/dts/ar9344_netgear_wndr4300tn.dts
Normal file
9
target/linux/ath79/dts/ar9344_netgear_wndr4300tn.dts
Normal file
@ -0,0 +1,9 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
/dts-v1/;
|
||||
|
||||
#include "ar9344_netgear_wndr.dtsi"
|
||||
|
||||
/ {
|
||||
compatible = "netgear,wndr4300tn", "qca,ar9344";
|
||||
model = "Netgear WNDR4300TN";
|
||||
};
|
34
target/linux/ath79/dts/ar9344_netgear_wndr_usb.dtsi
Normal file
34
target/linux/ath79/dts/ar9344_netgear_wndr_usb.dtsi
Normal file
@ -0,0 +1,34 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
|
||||
&leds {
|
||||
usb_green {
|
||||
label = "netgear:green:usb";
|
||||
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
|
||||
trigger-sources = <&hub_port>;
|
||||
linux,default-trigger = "usbport";
|
||||
};
|
||||
};
|
||||
|
||||
&ath9k {
|
||||
usb_power {
|
||||
gpio-hog;
|
||||
line-name = "netgear:power:usb";
|
||||
gpios = <0 GPIO_ACTIVE_HIGH>;
|
||||
output-high;
|
||||
};
|
||||
};
|
||||
|
||||
&usb_phy {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&usb {
|
||||
status = "okay";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
hub_port: port@1 {
|
||||
reg = <1>;
|
||||
#trigger-source-cells = <0>;
|
||||
};
|
||||
};
|
13
target/linux/ath79/dts/ar9344_netgear_wndr_wan.dtsi
Normal file
13
target/linux/ath79/dts/ar9344_netgear_wndr_wan.dtsi
Normal file
@ -0,0 +1,13 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
||||
|
||||
&leds {
|
||||
wan_green {
|
||||
label = "netgear:green:wan";
|
||||
gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
wan_amber {
|
||||
label = "netgear:amber:wan";
|
||||
gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
@ -206,6 +206,16 @@ define Device/netgear_wndr4300sw
|
||||
endef
|
||||
TARGET_DEVICES += netgear_wndr4300sw
|
||||
|
||||
define Device/netgear_wndr4300tn
|
||||
SOC := ar9344
|
||||
DEVICE_MODEL := WNDR4300TN
|
||||
NETGEAR_KERNEL_MAGIC := 0x33373033
|
||||
NETGEAR_BOARD_ID := WNDR4300TN
|
||||
NETGEAR_HW_ID := 29763948+0+128+128+2x2+3x3
|
||||
$(Device/netgear_ath79_nand)
|
||||
endef
|
||||
TARGET_DEVICES += netgear_wndr4300tn
|
||||
|
||||
define Device/netgear_wndr4300-v2
|
||||
SOC := qca9563
|
||||
DEVICE_MODEL := WNDR4300
|
||||
|
@ -29,6 +29,10 @@ ath79_setup_interfaces()
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "5:wan"
|
||||
;;
|
||||
netgear,wndr4300tn)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1"
|
||||
;;
|
||||
zyxel,nbg6716)
|
||||
ucidef_add_switch "switch0" \
|
||||
"0@eth0" "1:lan" "2:lan" "3:lan" "4:lan" "5:wan" "6@eth1"
|
||||
|
@ -15,6 +15,7 @@ case "$FIRMWARE" in
|
||||
netgear,wndr3700-v4|\
|
||||
netgear,wndr4300|\
|
||||
netgear,wndr4300sw|\
|
||||
netgear,wndr4300tn|\
|
||||
netgear,wndr4300-v2|\
|
||||
netgear,wndr4500-v3)
|
||||
caldata_extract "caldata" 0x1000 0x440
|
||||
@ -29,6 +30,7 @@ case "$FIRMWARE" in
|
||||
netgear,wndr3700-v4|\
|
||||
netgear,wndr4300|\
|
||||
netgear,wndr4300sw|\
|
||||
netgear,wndr4300tn|\
|
||||
netgear,wndr4300-v2|\
|
||||
netgear,wndr4500-v3)
|
||||
caldata_extract "caldata" 0x5000 0x440
|
||||
|
@ -205,7 +205,6 @@ CONFIG_GPIOLIB=y
|
||||
CONFIG_GPIOLIB_IRQCHIP=y
|
||||
# CONFIG_GPIO_BCM_VIRT is not set
|
||||
CONFIG_GPIO_RASPBERRYPI_EXP=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_HANDLE_DOMAIN_IRQ=y
|
||||
CONFIG_HARDIRQS_SW_RESEND=y
|
||||
CONFIG_HAS_DMA=y
|
||||
|
@ -260,7 +260,6 @@ CONFIG_GPIOLIB=y
|
||||
CONFIG_GPIOLIB_IRQCHIP=y
|
||||
CONFIG_GPIO_BCM_VIRT=y
|
||||
CONFIG_GPIO_RASPBERRYPI_EXP=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_HANDLE_DOMAIN_IRQ=y
|
||||
CONFIG_HARDEN_BRANCH_PREDICTOR=y
|
||||
CONFIG_HARDIRQS_SW_RESEND=y
|
||||
|
@ -308,7 +308,6 @@ CONFIG_GPIOLIB=y
|
||||
CONFIG_GPIOLIB_IRQCHIP=y
|
||||
CONFIG_GPIO_BCM_VIRT=y
|
||||
CONFIG_GPIO_RASPBERRYPI_EXP=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_HANDLE_DOMAIN_IRQ=y
|
||||
CONFIG_HARDEN_BRANCH_PREDICTOR=y
|
||||
CONFIG_HARDIRQS_SW_RESEND=y
|
||||
|
@ -314,7 +314,6 @@ CONFIG_GPIOLIB=y
|
||||
CONFIG_GPIOLIB_IRQCHIP=y
|
||||
CONFIG_GPIO_BCM_VIRT=y
|
||||
CONFIG_GPIO_RASPBERRYPI_EXP=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_HANDLE_DOMAIN_IRQ=y
|
||||
CONFIG_HARDEN_BRANCH_PREDICTOR=y
|
||||
CONFIG_HARDIRQS_SW_RESEND=y
|
||||
|
@ -83,7 +83,6 @@ CONFIG_GENERIC_SMP_IDLE_THREAD=y
|
||||
CONFIG_GENERIC_TIME_VSYSCALL=y
|
||||
CONFIG_GPIOLIB=y
|
||||
CONFIG_GPIOLIB_IRQCHIP=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_GPIO_WDT=y
|
||||
CONFIG_HANDLE_DOMAIN_IRQ=y
|
||||
CONFIG_HARDWARE_WATCHPOINTS=y
|
||||
|
@ -83,7 +83,6 @@ CONFIG_GENERIC_SMP_IDLE_THREAD=y
|
||||
CONFIG_GENERIC_TIME_VSYSCALL=y
|
||||
CONFIG_GPIOLIB=y
|
||||
CONFIG_GPIOLIB_IRQCHIP=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_GPIO_WDT=y
|
||||
CONFIG_HANDLE_DOMAIN_IRQ=y
|
||||
CONFIG_HARDWARE_WATCHPOINTS=y
|
||||
|
@ -162,7 +162,6 @@ CONFIG_GENERIC_STRNLEN_USER=y
|
||||
CONFIG_GPIOLIB=y
|
||||
CONFIG_GPIOLIB_IRQCHIP=y
|
||||
CONFIG_GPIO_74X164=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_HANDLE_DOMAIN_IRQ=y
|
||||
CONFIG_HARDEN_BRANCH_PREDICTOR=y
|
||||
CONFIG_HARDIRQS_SW_RESEND=y
|
||||
|
@ -173,7 +173,6 @@ CONFIG_GENERIC_STRNLEN_USER=y
|
||||
CONFIG_GPIOLIB=y
|
||||
CONFIG_GPIOLIB_IRQCHIP=y
|
||||
CONFIG_GPIO_74X164=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_HANDLE_DOMAIN_IRQ=y
|
||||
CONFIG_HARDEN_BRANCH_PREDICTOR=y
|
||||
CONFIG_HARDIRQS_SW_RESEND=y
|
||||
|
@ -107,7 +107,6 @@ CONFIG_GENERIC_TIME_VSYSCALL=y
|
||||
CONFIG_GPIOLIB=y
|
||||
CONFIG_GPIO_BCM63XX=y
|
||||
CONFIG_GPIO_GENERIC=y
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
CONFIG_HANDLE_DOMAIN_IRQ=y
|
||||
CONFIG_HAS_DMA=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
|
@ -1,37 +1,66 @@
|
||||
From e190f57df3c7e7713687905c14e72fbcbd81c5e4 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
|
||||
Date: Thu, 4 Jun 2020 15:59:05 +0200
|
||||
Subject: [PATCH] leds-bcm6328: support second hw blinking interval
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Right now the driver uses only 3 LED modes:
|
||||
0: On
|
||||
1: HW Blinking (Interval 1)
|
||||
3: Off
|
||||
|
||||
However, the controller supports a second HW blinking interval, which results
|
||||
in 4 possible LED modes:
|
||||
0: On
|
||||
1: HW Blinking (Interval 1)
|
||||
2: HW Blinking (Interval 2)
|
||||
3: Off
|
||||
|
||||
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
Signed-off-by: Pavel Machek <pavel@ucw.cz>
|
||||
---
|
||||
drivers/leds/leds-bcm6328.c | 97 ++++++++++++++++++++++++++++---------
|
||||
1 file changed, 75 insertions(+), 22 deletions(-)
|
||||
|
||||
--- a/drivers/leds/leds-bcm6328.c
|
||||
+++ b/drivers/leds/leds-bcm6328.c
|
||||
@@ -24,12 +24,16 @@
|
||||
@@ -24,12 +24,17 @@
|
||||
|
||||
#define BCM6328_LED_MAX_COUNT 24
|
||||
#define BCM6328_LED_DEF_DELAY 500
|
||||
+#define BCM6328_LED_INTERVAL_NUM 2
|
||||
#define BCM6328_LED_INTERVAL_MS 20
|
||||
-#define BCM6328_LED_INTERVAL_MS 20
|
||||
|
||||
#define BCM6328_LED_INTV_MASK 0x3f
|
||||
-#define BCM6328_LED_INTV_MASK 0x3f
|
||||
-#define BCM6328_LED_FAST_INTV_SHIFT 6
|
||||
-#define BCM6328_LED_FAST_INTV_MASK (BCM6328_LED_INTV_MASK << \
|
||||
- BCM6328_LED_FAST_INTV_SHIFT)
|
||||
+#define BCM6328_LED_INTV1_SHIFT 0
|
||||
+#define BCM6328_LED_INTV1_MASK (BCM6328_LED_INTV_MASK << \
|
||||
+ BCM6328_LED_INTV1_SHIFT)
|
||||
+#define BCM6328_LED_INTV2_SHIFT 6
|
||||
+#define BCM6328_LED_INTV2_MASK (BCM6328_LED_INTV_MASK << \
|
||||
+ BCM6328_LED_INTV2_SHIFT)
|
||||
+#define BCM6328_LED_BLINK_DELAYS 2
|
||||
+#define BCM6328_LED_BLINK_MS 20
|
||||
+
|
||||
+#define BCM6328_LED_BLINK_MASK 0x3f
|
||||
+#define BCM6328_LED_BLINK1_SHIFT 0
|
||||
+#define BCM6328_LED_BLINK1_MASK (BCM6328_LED_BLINK_MASK << \
|
||||
+ BCM6328_LED_BLINK1_SHIFT)
|
||||
+#define BCM6328_LED_BLINK2_SHIFT 6
|
||||
+#define BCM6328_LED_BLINK2_MASK (BCM6328_LED_BLINK_MASK << \
|
||||
+ BCM6328_LED_BLINK2_SHIFT)
|
||||
#define BCM6328_SERIAL_LED_EN BIT(12)
|
||||
#define BCM6328_SERIAL_LED_MUX BIT(13)
|
||||
#define BCM6328_SERIAL_LED_CLK_NPOL BIT(14)
|
||||
@@ -45,8 +49,8 @@
|
||||
@@ -45,8 +50,8 @@
|
||||
|
||||
#define BCM6328_LED_MODE_MASK 3
|
||||
#define BCM6328_LED_MODE_ON 0
|
||||
-#define BCM6328_LED_MODE_FAST 1
|
||||
-#define BCM6328_LED_MODE_BLINK 2
|
||||
+#define BCM6328_LED_MODE_INTV1 1
|
||||
+#define BCM6328_LED_MODE_INTV2 2
|
||||
+#define BCM6328_LED_MODE_BLINK1 1
|
||||
+#define BCM6328_LED_MODE_BLINK2 2
|
||||
#define BCM6328_LED_MODE_OFF 3
|
||||
#define BCM6328_LED_SHIFT(X) ((X) << 1)
|
||||
|
||||
@@ -127,12 +131,18 @@ static void bcm6328_led_set(struct led_c
|
||||
@@ -127,12 +132,18 @@ static void bcm6328_led_set(struct led_c
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(led->lock, flags);
|
||||
@ -51,7 +80,28 @@
|
||||
spin_unlock_irqrestore(led->lock, flags);
|
||||
}
|
||||
|
||||
@@ -176,20 +186,59 @@ static int bcm6328_blink_set(struct led_
|
||||
@@ -140,8 +151,8 @@ static unsigned long bcm6328_blink_delay
|
||||
{
|
||||
unsigned long bcm6328_delay;
|
||||
|
||||
- bcm6328_delay = delay + BCM6328_LED_INTERVAL_MS / 2;
|
||||
- bcm6328_delay = bcm6328_delay / BCM6328_LED_INTERVAL_MS;
|
||||
+ bcm6328_delay = delay + BCM6328_LED_BLINK_MS / 2;
|
||||
+ bcm6328_delay = bcm6328_delay / BCM6328_LED_BLINK_MS;
|
||||
if (bcm6328_delay == 0)
|
||||
bcm6328_delay = 1;
|
||||
|
||||
@@ -168,28 +179,68 @@ static int bcm6328_blink_set(struct led_
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
- if (delay > BCM6328_LED_INTV_MASK) {
|
||||
+ if (delay > BCM6328_LED_BLINK_MASK) {
|
||||
dev_dbg(led_cdev->dev,
|
||||
"fallback to soft blinking (delay > %ums)\n",
|
||||
- BCM6328_LED_INTV_MASK * BCM6328_LED_INTERVAL_MS);
|
||||
+ BCM6328_LED_BLINK_MASK * BCM6328_LED_BLINK_MS);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
spin_lock_irqsave(led->lock, flags);
|
||||
@ -62,75 +112,76 @@
|
||||
+ * Check if any of the two configurable HW blinking intervals is
|
||||
+ * available:
|
||||
+ * 1. No LEDs assigned to the HW blinking interval.
|
||||
+ * 2. LEDs with the same delay assigned.
|
||||
+ * 2. Only this LED is assigned to the HW blinking interval.
|
||||
+ * 3. LEDs with the same delay assigned.
|
||||
+ */
|
||||
+ if (led->blink_leds[0] == 0 ||
|
||||
+ led->blink_leds[0] == BIT(led->pin) ||
|
||||
+ led->blink_delay[0] == delay) {
|
||||
+ unsigned long val;
|
||||
+
|
||||
unsigned long val;
|
||||
|
||||
- *(led->blink_leds) |= BIT(led->pin);
|
||||
- *(led->blink_delay) = delay;
|
||||
+ /* Add LED to the first HW blinking interval cache */
|
||||
+ led->blink_leds[0] |= BIT(led->pin);
|
||||
+
|
||||
+ /* Remove LED from the second HW blinking interval cache */
|
||||
+ led->blink_leds[1] &= ~BIT(led->pin);
|
||||
+
|
||||
+ /* Cache the LED in the first HW blinking interval delay */
|
||||
|
||||
+ /* Cache first HW blinking interval delay */
|
||||
+ led->blink_delay[0] = delay;
|
||||
+
|
||||
+ /* Update the delay for the first HW blinking interval */
|
||||
+ val = bcm6328_led_read(led->mem + BCM6328_REG_INIT);
|
||||
+ val &= ~BCM6328_LED_INTV1_MASK;
|
||||
+ val |= (delay << BCM6328_LED_INTV1_SHIFT);
|
||||
+ bcm6328_led_write(led->mem + BCM6328_REG_INIT, val);
|
||||
+
|
||||
val = bcm6328_led_read(led->mem + BCM6328_REG_INIT);
|
||||
- val &= ~BCM6328_LED_FAST_INTV_MASK;
|
||||
- val |= (delay << BCM6328_LED_FAST_INTV_SHIFT);
|
||||
+ val &= ~BCM6328_LED_BLINK1_MASK;
|
||||
+ val |= (delay << BCM6328_LED_BLINK1_SHIFT);
|
||||
bcm6328_led_write(led->mem + BCM6328_REG_INIT, val);
|
||||
|
||||
- bcm6328_led_mode(led, BCM6328_LED_MODE_BLINK);
|
||||
+ /* Set the LED to first HW blinking interval */
|
||||
+ bcm6328_led_mode(led, BCM6328_LED_MODE_INTV1);
|
||||
+ bcm6328_led_mode(led, BCM6328_LED_MODE_BLINK1);
|
||||
+
|
||||
+ rc = 0;
|
||||
+ } else if (led->blink_leds[1] == 0 ||
|
||||
+ led->blink_leds[1] == BIT(led->pin) ||
|
||||
+ led->blink_delay[1] == delay) {
|
||||
unsigned long val;
|
||||
|
||||
- *(led->blink_leds) |= BIT(led->pin);
|
||||
- *(led->blink_delay) = delay;
|
||||
+ unsigned long val;
|
||||
+
|
||||
+ /* Remove LED from the first HW blinking interval */
|
||||
+ led->blink_leds[0] &= ~BIT(led->pin);
|
||||
+
|
||||
+ /* Add LED to the second HW blinking interval */
|
||||
+ led->blink_leds[1] |= BIT(led->pin);
|
||||
|
||||
+ /* Cache the LED in the first HW blinking interval delay */
|
||||
+
|
||||
+ /* Cache second HW blinking interval delay */
|
||||
+ led->blink_delay[1] = delay;
|
||||
+
|
||||
+ /* Update the delay for the second HW blinking interval */
|
||||
val = bcm6328_led_read(led->mem + BCM6328_REG_INIT);
|
||||
- val &= ~BCM6328_LED_FAST_INTV_MASK;
|
||||
- val |= (delay << BCM6328_LED_FAST_INTV_SHIFT);
|
||||
+ val &= ~BCM6328_LED_INTV2_MASK;
|
||||
+ val |= (delay << BCM6328_LED_INTV2_SHIFT);
|
||||
bcm6328_led_write(led->mem + BCM6328_REG_INIT, val);
|
||||
|
||||
- bcm6328_led_mode(led, BCM6328_LED_MODE_BLINK);
|
||||
+ val = bcm6328_led_read(led->mem + BCM6328_REG_INIT);
|
||||
+ val &= ~BCM6328_LED_BLINK2_MASK;
|
||||
+ val |= (delay << BCM6328_LED_BLINK2_SHIFT);
|
||||
+ bcm6328_led_write(led->mem + BCM6328_REG_INIT, val);
|
||||
+
|
||||
+ /* Set the LED to second HW blinking interval */
|
||||
+ bcm6328_led_mode(led, BCM6328_LED_MODE_INTV2);
|
||||
+ bcm6328_led_mode(led, BCM6328_LED_MODE_BLINK2);
|
||||
+
|
||||
rc = 0;
|
||||
} else {
|
||||
dev_dbg(led_cdev->dev,
|
||||
@@ -363,11 +412,13 @@ static int bcm6328_leds_probe(struct pla
|
||||
@@ -363,11 +414,13 @@ static int bcm6328_leds_probe(struct pla
|
||||
if (!lock)
|
||||
return -ENOMEM;
|
||||
|
||||
- blink_leds = devm_kzalloc(dev, sizeof(*blink_leds), GFP_KERNEL);
|
||||
+ blink_leds = devm_kcalloc(dev, BCM6328_LED_INTERVAL_NUM,
|
||||
+ blink_leds = devm_kcalloc(dev, BCM6328_LED_BLINK_DELAYS,
|
||||
+ sizeof(*blink_leds), GFP_KERNEL);
|
||||
if (!blink_leds)
|
||||
return -ENOMEM;
|
||||
|
||||
- blink_delay = devm_kzalloc(dev, sizeof(*blink_delay), GFP_KERNEL);
|
||||
+ blink_delay = devm_kcalloc(dev, BCM6328_LED_INTERVAL_NUM,
|
||||
+ blink_delay = devm_kcalloc(dev, BCM6328_LED_BLINK_DELAYS,
|
||||
+ sizeof(*blink_delay), GFP_KERNEL);
|
||||
if (!blink_delay)
|
||||
return -ENOMEM;
|
@ -0,0 +1,155 @@
|
||||
From c425423a075718eac625c78351fa5907d4f3a9de Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
|
||||
Date: Mon, 8 Jun 2020 12:18:28 +0200
|
||||
Subject: [PATCH] MIPS: BCM63xx: add endif comments
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
There are plenty of ifdefs in board_bcm963xx.c without endif comments.
|
||||
Let's make the code easier to follow by adding proper comments.
|
||||
|
||||
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
|
||||
---
|
||||
arch/mips/bcm63xx/boards/board_bcm963xx.c | 33 +++++++++++------------
|
||||
1 file changed, 15 insertions(+), 18 deletions(-)
|
||||
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -67,7 +67,7 @@ static struct board_info __initdata boar
|
||||
.ephy_reset_gpio = 36,
|
||||
.ephy_reset_gpio_flags = GPIOF_INIT_HIGH,
|
||||
};
|
||||
-#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_3368 */
|
||||
|
||||
/*
|
||||
* known 6328 boards
|
||||
@@ -115,7 +115,7 @@ static struct board_info __initdata boar
|
||||
},
|
||||
},
|
||||
};
|
||||
-#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6328 */
|
||||
|
||||
/*
|
||||
* known 6338 boards
|
||||
@@ -204,7 +204,7 @@ static struct board_info __initdata boar
|
||||
},
|
||||
},
|
||||
};
|
||||
-#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6338 */
|
||||
|
||||
/*
|
||||
* known 6345 boards
|
||||
@@ -216,7 +216,7 @@ static struct board_info __initdata boar
|
||||
|
||||
.has_uart0 = 1,
|
||||
};
|
||||
-#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6345 */
|
||||
|
||||
/*
|
||||
* known 6348 boards
|
||||
@@ -464,7 +464,6 @@ static struct board_info __initdata boar
|
||||
},
|
||||
};
|
||||
|
||||
-
|
||||
static struct board_info __initdata board_DV201AMR = {
|
||||
.name = "DV201AMR",
|
||||
.expected_cpu_id = 0x6348,
|
||||
@@ -505,7 +504,7 @@ static struct board_info __initdata boar
|
||||
|
||||
.has_ohci0 = 1,
|
||||
};
|
||||
-#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6348 */
|
||||
|
||||
/*
|
||||
* known 6358 boards
|
||||
@@ -530,7 +529,6 @@ static struct board_info __initdata boar
|
||||
.force_duplex_full = 1,
|
||||
},
|
||||
|
||||
-
|
||||
.has_ohci0 = 1,
|
||||
.has_pccard = 1,
|
||||
.has_ehci0 = 1,
|
||||
@@ -654,7 +652,7 @@ static struct board_info __initdata boar
|
||||
|
||||
.has_ohci0 = 1,
|
||||
};
|
||||
-#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
|
||||
/*
|
||||
* all boards
|
||||
@@ -662,17 +660,17 @@ static struct board_info __initdata boar
|
||||
static const struct board_info __initconst *bcm963xx_boards[] = {
|
||||
#ifdef CONFIG_BCM63XX_CPU_3368
|
||||
&board_cvg834g,
|
||||
-#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_3368 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6328
|
||||
&board_96328avng,
|
||||
-#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6328 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6338
|
||||
&board_96338gw,
|
||||
&board_96338w,
|
||||
-#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6338 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6345
|
||||
&board_96345gw2,
|
||||
-#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6345 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6348
|
||||
&board_96348r,
|
||||
&board_96348gw,
|
||||
@@ -682,14 +680,13 @@ static const struct board_info __initcon
|
||||
&board_DV201AMR,
|
||||
&board_96348gw_a,
|
||||
&board_rta1025w_16,
|
||||
-#endif
|
||||
-
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6348 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6358
|
||||
&board_96358vw,
|
||||
&board_96358vw2,
|
||||
&board_AGPFS0,
|
||||
&board_DWVS0,
|
||||
-#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -728,7 +725,7 @@ int bcm63xx_get_fallback_sprom(struct ss
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
-#endif
|
||||
+#endif /* CONFIG_SSB_PCIHOST */
|
||||
|
||||
/*
|
||||
* return board name for /proc/cpuinfo
|
||||
@@ -807,7 +804,7 @@ void __init board_prom_init(void)
|
||||
if (BCMCPU_IS_6348())
|
||||
val |= GPIO_MODE_6348_G2_PCI;
|
||||
}
|
||||
-#endif
|
||||
+#endif /* CONFIG_PCI */
|
||||
|
||||
if (board.has_pccard) {
|
||||
if (BCMCPU_IS_6348())
|
||||
@@ -892,7 +889,7 @@ int __init board_register_devices(void)
|
||||
&bcm63xx_get_fallback_sprom) < 0)
|
||||
pr_err("failed to register fallback SPROM\n");
|
||||
}
|
||||
-#endif
|
||||
+#endif /* CONFIG_SSB_PCIHOST */
|
||||
|
||||
bcm63xx_spi_register();
|
||||
|
@ -0,0 +1,56 @@
|
||||
From e27e1cc9d360a347dbd5a398e9df21cfb4e60e3c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com>
|
||||
Date: Mon, 8 Jun 2020 11:28:35 +0200
|
||||
Subject: [PATCH] MIPS: BCM63xx: improve CFE version detection
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
There are some CFE variants that start with 'cfe-vd' instead of 'cfe-v', such
|
||||
as the one used in the Huawei HG556a: "cfe-vd081.5003". In this case, the CFE
|
||||
version is stored as is (string vs number bytes).
|
||||
|
||||
Some newer devices have an additional version number, such as the Comtrend
|
||||
VR-3032u: "1.0.38-112.118-11".
|
||||
|
||||
Finally, print the string as is if the version doesn't start with "cfe-v" or
|
||||
"cfe-vd", but starts with "cfe-".
|
||||
|
||||
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
|
||||
---
|
||||
arch/mips/bcm63xx/boards/board_bcm963xx.c | 22 ++++++++++++++++++----
|
||||
1 file changed, 18 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -760,11 +760,25 @@ void __init board_prom_init(void)
|
||||
|
||||
/* dump cfe version */
|
||||
cfe = boot_addr + BCM963XX_CFE_VERSION_OFFSET;
|
||||
- if (!memcmp(cfe, "cfe-v", 5))
|
||||
- snprintf(cfe_version, sizeof(cfe_version), "%u.%u.%u-%u.%u",
|
||||
- cfe[5], cfe[6], cfe[7], cfe[8], cfe[9]);
|
||||
- else
|
||||
+ if (strstarts(cfe, "cfe-")) {
|
||||
+ if(cfe[4] == 'v') {
|
||||
+ if(cfe[5] == 'd')
|
||||
+ snprintf(cfe_version, 11, "%s",
|
||||
+ (char *) &cfe[5]);
|
||||
+ else if (cfe[10] > 0)
|
||||
+ snprintf(cfe_version, sizeof(cfe_version),
|
||||
+ "%u.%u.%u-%u.%u-%u", cfe[5], cfe[6],
|
||||
+ cfe[7], cfe[8], cfe[9], cfe[10]);
|
||||
+ else
|
||||
+ snprintf(cfe_version, sizeof(cfe_version),
|
||||
+ "%u.%u.%u-%u.%u", cfe[5], cfe[6],
|
||||
+ cfe[7], cfe[8], cfe[9]);
|
||||
+ } else {
|
||||
+ snprintf(cfe_version, 12, "%s", (char *) &cfe[4]);
|
||||
+ }
|
||||
+ } else {
|
||||
strcpy(cfe_version, "unknown");
|
||||
+ }
|
||||
pr_info("CFE version: %s\n", cfe_version);
|
||||
|
||||
bcm63xx_nvram_init(boot_addr + BCM963XX_NVRAM_OFFSET);
|
@ -24,7 +24,7 @@ Signed-off-by: Florian Fainelli <florian@openwrt.org>
|
||||
#include <bcm63xx_dev_usb_usbd.h>
|
||||
#include <board_bcm963xx.h>
|
||||
|
||||
@@ -881,6 +882,9 @@ int __init board_register_devices(void)
|
||||
@@ -892,6 +893,9 @@ int __init board_register_devices(void)
|
||||
if (board.has_usbd)
|
||||
bcm63xx_usbd_register(&board.usbd);
|
||||
|
||||
|
@ -24,7 +24,7 @@ Signed-off-by: Florian Fainelli <florian@openwrt.org>
|
||||
#include <bcm63xx_dev_usb_ohci.h>
|
||||
#include <bcm63xx_dev_usb_usbd.h>
|
||||
#include <board_bcm963xx.h>
|
||||
@@ -882,6 +883,9 @@ int __init board_register_devices(void)
|
||||
@@ -893,6 +894,9 @@ int __init board_register_devices(void)
|
||||
if (board.has_usbd)
|
||||
bcm63xx_usbd_register(&board.usbd);
|
||||
|
||||
|
@ -61,7 +61,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
/*
|
||||
* known 3368 boards
|
||||
*/
|
||||
@@ -695,52 +683,6 @@ static const struct board_info __initcon
|
||||
@@ -692,52 +680,6 @@ static const struct board_info __initcon
|
||||
};
|
||||
|
||||
/*
|
||||
@ -100,7 +100,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
- return -EINVAL;
|
||||
- }
|
||||
-}
|
||||
-#endif
|
||||
-#endif /* CONFIG_SSB_PCIHOST */
|
||||
-
|
||||
-/*
|
||||
- * return board name for /proc/cpuinfo
|
||||
@ -114,7 +114,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
* early init callback, read nvram data from flash and checksum it
|
||||
*/
|
||||
void __init board_prom_init(void)
|
||||
@@ -785,137 +727,15 @@ void __init board_prom_init(void)
|
||||
@@ -796,137 +738,15 @@ void __init board_prom_init(void)
|
||||
if (strncmp(board_name, bcm963xx_boards[i]->name, 16))
|
||||
continue;
|
||||
/* copy, board desc array is marked initdata */
|
||||
@ -144,8 +144,8 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
- bcm63xx_pci_enabled = 1;
|
||||
- if (BCMCPU_IS_6348())
|
||||
- val |= GPIO_MODE_6348_G2_PCI;
|
||||
}
|
||||
-#endif
|
||||
- }
|
||||
-#endif /* CONFIG_PCI */
|
||||
-
|
||||
- if (board.has_pccard) {
|
||||
- if (BCMCPU_IS_6348())
|
||||
@ -235,8 +235,8 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
- if (ssb_arch_register_fallback_sprom(
|
||||
- &bcm63xx_get_fallback_sprom) < 0)
|
||||
- pr_err("failed to register fallback SPROM\n");
|
||||
- }
|
||||
-#endif
|
||||
}
|
||||
-#endif /* CONFIG_SSB_PCIHOST */
|
||||
-
|
||||
- bcm63xx_spi_register();
|
||||
-
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -727,7 +727,8 @@ void __init board_prom_init(void)
|
||||
@@ -738,7 +738,8 @@ void __init board_prom_init(void)
|
||||
if (strncmp(board_name, bcm963xx_boards[i]->name, 16))
|
||||
continue;
|
||||
/* copy, board desc array is marked initdata */
|
||||
|
@ -1,27 +0,0 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -707,10 +707,20 @@ void __init board_prom_init(void)
|
||||
|
||||
/* dump cfe version */
|
||||
cfe = boot_addr + BCM963XX_CFE_VERSION_OFFSET;
|
||||
- if (!memcmp(cfe, "cfe-v", 5))
|
||||
- snprintf(cfe_version, sizeof(cfe_version), "%u.%u.%u-%u.%u",
|
||||
- cfe[5], cfe[6], cfe[7], cfe[8], cfe[9]);
|
||||
- else
|
||||
+ if (strstarts(cfe, "cfe-")) {
|
||||
+ if(cfe[4] == 'v') {
|
||||
+ if(cfe[5] == 'd')
|
||||
+ snprintf(cfe_version, 11, "%s", (char *) &cfe[5]);
|
||||
+ else if (cfe[10] > 0)
|
||||
+ snprintf(cfe_version, sizeof(cfe_version), "%u.%u.%u-%u.%u-%u",
|
||||
+ cfe[5], cfe[6], cfe[7], cfe[8], cfe[9], cfe[10]);
|
||||
+ else
|
||||
+ snprintf(cfe_version, sizeof(cfe_version), "%u.%u.%u-%u.%u",
|
||||
+ cfe[5], cfe[6], cfe[7], cfe[8], cfe[9]);
|
||||
+ } else {
|
||||
+ snprintf(cfe_version, 12, "%s", (char *) &cfe[4]);
|
||||
+ }
|
||||
+ } else
|
||||
strcpy(cfe_version, "unknown");
|
||||
pr_info("CFE version: %s\n", cfe_version);
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
|
||||
--- a/arch/mips/Kconfig
|
||||
+++ b/arch/mips/Kconfig
|
||||
@@ -290,6 +290,9 @@ config BCM63XX
|
||||
@@ -291,6 +291,9 @@ config BCM63XX
|
||||
select SYNC_R4K
|
||||
select DMA_NONCOHERENT
|
||||
select IRQ_MIPS_CPU
|
||||
|
@ -35,7 +35,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
source "arch/mips/bcm63xx/boards/Kconfig"
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -697,7 +697,7 @@ void __init board_prom_init(void)
|
||||
@@ -694,7 +694,7 @@ void __init board_prom_init(void)
|
||||
/* read base address of boot chip select (0)
|
||||
* 6328/6362 do not have MPI but boot from a fixed address
|
||||
*/
|
||||
|
@ -35,7 +35,7 @@ Subject: [PATCH 51/53] MIPS: BCM63XX: add support for BCM6318
|
||||
select SYS_HAS_CPU_BMIPS4350
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -697,7 +697,7 @@ void __init board_prom_init(void)
|
||||
@@ -694,7 +694,7 @@ void __init board_prom_init(void)
|
||||
/* read base address of boot chip select (0)
|
||||
* 6328/6362 do not have MPI but boot from a fixed address
|
||||
*/
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -576,6 +576,7 @@ static struct board_info __initdata boar
|
||||
@@ -574,6 +574,7 @@ static struct board_info __initdata boar
|
||||
.has_ohci0 = 1,
|
||||
.has_pccard = 1,
|
||||
.has_ehci0 = 1,
|
||||
|
@ -35,7 +35,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
+endmenu
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -686,7 +686,7 @@ static const struct board_info __initcon
|
||||
@@ -683,7 +683,7 @@ static const struct board_info __initcon
|
||||
/*
|
||||
* early init callback, read nvram data from flash and checksum it
|
||||
*/
|
||||
|
@ -74,7 +74,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
|
||||
.enet0 = {
|
||||
.has_phy = 1,
|
||||
@@ -461,6 +468,7 @@ static struct board_info __initdata boar
|
||||
@@ -460,6 +467,7 @@ static struct board_info __initdata boar
|
||||
|
||||
.has_uart0 = 1,
|
||||
.has_pci = 1,
|
||||
@ -82,7 +82,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
.has_ohci0 = 1,
|
||||
|
||||
.has_enet0 = 1,
|
||||
@@ -483,6 +491,7 @@ static struct board_info __initdata boar
|
||||
@@ -482,6 +490,7 @@ static struct board_info __initdata boar
|
||||
.has_enet0 = 1,
|
||||
.has_enet1 = 1,
|
||||
.has_pci = 1,
|
||||
@ -90,7 +90,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
|
||||
.enet0 = {
|
||||
.has_phy = 1,
|
||||
@@ -509,6 +518,7 @@ static struct board_info __initdata boar
|
||||
@@ -508,6 +517,7 @@ static struct board_info __initdata boar
|
||||
.has_enet0 = 1,
|
||||
.has_enet1 = 1,
|
||||
.has_pci = 1,
|
||||
@ -98,7 +98,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
|
||||
.enet0 = {
|
||||
.has_phy = 1,
|
||||
@@ -561,6 +571,7 @@ static struct board_info __initdata boar
|
||||
@@ -559,6 +569,7 @@ static struct board_info __initdata boar
|
||||
.has_enet0 = 1,
|
||||
.has_enet1 = 1,
|
||||
.has_pci = 1,
|
||||
@ -106,7 +106,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
|
||||
.enet0 = {
|
||||
.has_phy = 1,
|
||||
@@ -632,6 +643,7 @@ static struct board_info __initdata boar
|
||||
@@ -630,6 +641,7 @@ static struct board_info __initdata boar
|
||||
.has_enet0 = 1,
|
||||
.has_enet1 = 1,
|
||||
.has_pci = 1,
|
||||
|
@ -16,8 +16,8 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -695,6 +695,10 @@ static const struct board_info __initcon
|
||||
#endif
|
||||
@@ -692,6 +692,10 @@ static const struct board_info __initcon
|
||||
#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
};
|
||||
|
||||
+static struct of_device_id const bcm963xx_boards_dt[] = {
|
||||
@ -27,7 +27,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
/*
|
||||
* early init callback, read nvram data from flash and checksum it
|
||||
*/
|
||||
@@ -706,6 +710,7 @@ void __init board_bcm963xx_init(void)
|
||||
@@ -703,6 +707,7 @@ void __init board_bcm963xx_init(void)
|
||||
char *board_name = NULL;
|
||||
u32 val;
|
||||
struct bcm_hcs *hcs;
|
||||
@ -35,7 +35,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
|
||||
/* read base address of boot chip select (0)
|
||||
* 6328/6362 do not have MPI but boot from a fixed address
|
||||
@@ -745,6 +750,16 @@ void __init board_bcm963xx_init(void)
|
||||
@@ -746,6 +751,16 @@ void __init board_bcm963xx_init(void)
|
||||
} else {
|
||||
board_name = bcm63xx_nvram_get_name();
|
||||
}
|
||||
|
@ -14,24 +14,26 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -696,6 +696,48 @@ static const struct board_info __initcon
|
||||
@@ -693,6 +693,52 @@ static const struct board_info __initcon
|
||||
};
|
||||
|
||||
static struct of_device_id const bcm963xx_boards_dt[] = {
|
||||
+#ifdef CONFIG_OF
|
||||
+#ifdef CONFIG_BCM63XX_CPU_3368
|
||||
+ { .compatible = "netgear,cvg834g", .data = &board_cvg834g, },
|
||||
+#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_3368 */
|
||||
+#ifdef CONFIG_BCM63XX_CPU_6318
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6318 */
|
||||
+#ifdef CONFIG_BCM63XX_CPU_6328
|
||||
+ { .compatible = "brcm,bcm96328avng", .data = &board_96328avng, },
|
||||
+#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6328 */
|
||||
+#ifdef CONFIG_BCM63XX_CPU_6338
|
||||
+ { .compatible = "brcm,bcm96338gw", .data = &board_96338gw, },
|
||||
+ { .compatible = "brcm,bcm96338w", .data = &board_96338w, },
|
||||
+#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6338 */
|
||||
+#ifdef CONFIG_BCM63XX_CPU_6345
|
||||
+ { .compatible = "brcm,bcm96345gw2", .data = &board_96345gw2, },
|
||||
+#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6345 */
|
||||
+#ifdef CONFIG_BCM63XX_CPU_6348
|
||||
+ { .compatible = "belkin,f5d7633", .data = &board_96348gw_10, },
|
||||
+ { .compatible = "brcm,bcm96348r", .data = &board_96348r, },
|
||||
@ -44,7 +46,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
+ { .compatible = "sagem,fast-2404", .data = &board_FAST2404, },
|
||||
+ { .compatible = "tp-link,td-w8900gb", .data = &board_96348gw_11, },
|
||||
+ { .compatible = "usrobotics,usr9108", .data = &board_96348gw_a, },
|
||||
+#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6348 */
|
||||
+#ifdef CONFIG_BCM63XX_CPU_6358
|
||||
+ { .compatible = "alcatel,rg100a", .data = &board_96358vw2, },
|
||||
+ { .compatible = "brcm,bcm96358vw", .data = &board_96358vw, },
|
||||
@ -54,11 +56,13 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
+ { .compatible = "pirelli,a226m", .data = &board_DWVS0, },
|
||||
+ { .compatible = "pirelli,a226m-fwb", .data = &board_DWVS0, },
|
||||
+ { .compatible = "pirelli,agpf-s0", .data = &board_AGPFS0, },
|
||||
+#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
+#ifdef CONFIG_BCM63XX_CPU_6362
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6362 */
|
||||
+#ifdef CONFIG_BCM63XX_CPU_6368
|
||||
+#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6368 */
|
||||
+#ifdef CONFIG_BCM63XX_CPU_63268
|
||||
+#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_63268 */
|
||||
+#endif /* CONFIG_OF */
|
||||
{ },
|
||||
};
|
||||
|
@ -22,7 +22,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
- .ephy_reset_gpio_flags = GPIOF_INIT_HIGH,
|
||||
+ .ephy_reset_gpio_flags = GPIO_ACTIVE_LOW,
|
||||
};
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_3368 */
|
||||
|
||||
--- a/arch/mips/bcm63xx/boards/board_common.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_common.c
|
||||
|
@ -175,7 +175,7 @@
|
||||
-
|
||||
- .has_uart0 = 1,
|
||||
};
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6345 */
|
||||
|
||||
@@ -217,7 +209,6 @@ static struct board_info __initdata boar
|
||||
.name = "96348R",
|
||||
@ -217,7 +217,7 @@
|
||||
.has_enet0 = 1,
|
||||
.has_enet1 = 1,
|
||||
.has_pci = 1,
|
||||
@@ -466,7 +453,6 @@ static struct board_info __initdata boar
|
||||
@@ -465,7 +452,6 @@ static struct board_info __initdata boar
|
||||
.name = "DV201AMR",
|
||||
.expected_cpu_id = 0x6348,
|
||||
|
||||
@ -225,7 +225,7 @@
|
||||
.has_pci = 1,
|
||||
.use_fallback_sprom = 1,
|
||||
.has_ohci0 = 1,
|
||||
@@ -487,7 +473,6 @@ static struct board_info __initdata boar
|
||||
@@ -486,7 +472,6 @@ static struct board_info __initdata boar
|
||||
.name = "96348GW-A",
|
||||
.expected_cpu_id = 0x6348,
|
||||
|
||||
@ -233,7 +233,7 @@
|
||||
.has_enet0 = 1,
|
||||
.has_enet1 = 1,
|
||||
.has_pci = 1,
|
||||
@@ -514,7 +499,6 @@ static struct board_info __initdata boar
|
||||
@@ -513,7 +498,6 @@ static struct board_info __initdata boar
|
||||
.name = "96358VW",
|
||||
.expected_cpu_id = 0x6358,
|
||||
|
||||
@ -241,7 +241,7 @@
|
||||
.has_enet0 = 1,
|
||||
.has_enet1 = 1,
|
||||
.has_pci = 1,
|
||||
@@ -567,7 +551,6 @@ static struct board_info __initdata boar
|
||||
@@ -565,7 +549,6 @@ static struct board_info __initdata boar
|
||||
.name = "96358VW2",
|
||||
.expected_cpu_id = 0x6358,
|
||||
|
||||
@ -249,7 +249,7 @@
|
||||
.has_enet0 = 1,
|
||||
.has_enet1 = 1,
|
||||
.has_pci = 1,
|
||||
@@ -617,7 +600,6 @@ static struct board_info __initdata boar
|
||||
@@ -615,7 +598,6 @@ static struct board_info __initdata boar
|
||||
.name = "AGPF-S0",
|
||||
.expected_cpu_id = 0x6358,
|
||||
|
||||
|
@ -58,7 +58,7 @@ Subject: [PATCH] MIPS: BCM63XX: remove leds and buttons
|
||||
- },
|
||||
- },
|
||||
};
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6328 */
|
||||
|
||||
@@ -119,35 +82,6 @@ static struct board_info __initdata boar
|
||||
},
|
||||
@ -130,7 +130,7 @@ Subject: [PATCH] MIPS: BCM63XX: remove leds and buttons
|
||||
- },
|
||||
- },
|
||||
};
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6338 */
|
||||
|
||||
@@ -217,36 +122,6 @@ static struct board_info __initdata boar
|
||||
.has_phy = 1,
|
||||
@ -277,7 +277,7 @@ Subject: [PATCH] MIPS: BCM63XX: remove leds and buttons
|
||||
};
|
||||
|
||||
static struct board_info __initdata board_FAST2404 = {
|
||||
@@ -518,33 +306,6 @@ static struct board_info __initdata boar
|
||||
@@ -516,33 +304,6 @@ static struct board_info __initdata boar
|
||||
.has_ohci0 = 1,
|
||||
.has_pccard = 1,
|
||||
.has_ehci0 = 1,
|
||||
@ -311,7 +311,7 @@ Subject: [PATCH] MIPS: BCM63XX: remove leds and buttons
|
||||
};
|
||||
|
||||
static struct board_info __initdata board_96358vw2 = {
|
||||
@@ -571,29 +332,6 @@ static struct board_info __initdata boar
|
||||
@@ -569,29 +330,6 @@ static struct board_info __initdata boar
|
||||
.has_pccard = 1,
|
||||
.has_ehci0 = 1,
|
||||
.num_usbh_ports = 2,
|
||||
|
@ -63,7 +63,7 @@
|
||||
.force_speed_100 = 1,
|
||||
.force_duplex_full = 1,
|
||||
},
|
||||
@@ -252,6 +266,8 @@ static struct board_info __initdata boar
|
||||
@@ -251,6 +265,8 @@ static struct board_info __initdata boar
|
||||
.use_internal_phy = 1,
|
||||
},
|
||||
.enet1 = {
|
||||
@ -72,7 +72,7 @@
|
||||
.force_speed_100 = 1,
|
||||
.force_duplex_full = 1,
|
||||
},
|
||||
@@ -271,6 +287,8 @@ static struct board_info __initdata boar
|
||||
@@ -270,6 +286,8 @@ static struct board_info __initdata boar
|
||||
.use_internal_phy = 1,
|
||||
},
|
||||
.enet1 = {
|
||||
@ -81,7 +81,7 @@
|
||||
.force_speed_100 = 1,
|
||||
.force_duplex_full = 1,
|
||||
},
|
||||
@@ -298,6 +316,8 @@ static struct board_info __initdata boar
|
||||
@@ -297,6 +315,8 @@ static struct board_info __initdata boar
|
||||
},
|
||||
|
||||
.enet1 = {
|
||||
@ -90,7 +90,7 @@
|
||||
.force_speed_100 = 1,
|
||||
.force_duplex_full = 1,
|
||||
},
|
||||
@@ -323,6 +343,8 @@ static struct board_info __initdata boar
|
||||
@@ -321,6 +341,8 @@ static struct board_info __initdata boar
|
||||
},
|
||||
|
||||
.enet1 = {
|
||||
@ -99,7 +99,7 @@
|
||||
.force_speed_100 = 1,
|
||||
.force_duplex_full = 1,
|
||||
},
|
||||
@@ -348,6 +370,8 @@ static struct board_info __initdata boar
|
||||
@@ -346,6 +368,8 @@ static struct board_info __initdata boar
|
||||
},
|
||||
|
||||
.enet1 = {
|
||||
@ -108,7 +108,7 @@
|
||||
.force_speed_100 = 1,
|
||||
.force_duplex_full = 1,
|
||||
},
|
||||
@@ -371,6 +395,8 @@ static struct board_info __initdata boar
|
||||
@@ -369,6 +393,8 @@ static struct board_info __initdata boar
|
||||
},
|
||||
|
||||
.enet1 = {
|
||||
|
@ -1,56 +0,0 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -46,7 +46,7 @@ static struct board_info __initdata boar
|
||||
.ephy_reset_gpio = 36,
|
||||
.ephy_reset_gpio_flags = GPIO_ACTIVE_LOW,
|
||||
};
|
||||
-#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_3368 */
|
||||
|
||||
/*
|
||||
* known 6328 boards
|
||||
@@ -65,7 +65,7 @@ static struct board_info __initdata boar
|
||||
.port_no = 0,
|
||||
},
|
||||
};
|
||||
-#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6328 */
|
||||
|
||||
/*
|
||||
* known 6338 boards
|
||||
@@ -98,7 +98,7 @@ static struct board_info __initdata boar
|
||||
.force_duplex_full = 1,
|
||||
},
|
||||
};
|
||||
-#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6338 */
|
||||
|
||||
/*
|
||||
* known 6345 boards
|
||||
@@ -108,7 +108,7 @@ static struct board_info __initdata boar
|
||||
.name = "96345GW2",
|
||||
.expected_cpu_id = 0x6345,
|
||||
};
|
||||
-#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6345 */
|
||||
|
||||
/*
|
||||
* known 6348 boards
|
||||
@@ -295,7 +295,7 @@ static struct board_info __initdata boar
|
||||
|
||||
.has_ohci0 = 1,
|
||||
};
|
||||
-#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6348 */
|
||||
|
||||
/*
|
||||
* known 6358 boards
|
||||
@@ -403,7 +403,7 @@ static struct board_info __initdata boar
|
||||
|
||||
.has_ohci0 = 1,
|
||||
};
|
||||
-#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
|
||||
/*
|
||||
* all boards
|
@ -1,36 +1,36 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -295,6 +295,21 @@ static struct board_info __initdata boar
|
||||
@@ -294,6 +294,21 @@ static struct board_info __initdata boar
|
||||
|
||||
.has_ohci0 = 1,
|
||||
};
|
||||
+
|
||||
+static struct board_info __initdata board_96348_D4PW = {
|
||||
+ .name = "D-4P-W",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+ .name = "D-4P-W",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .has_pci = 1,
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .enet1 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+};
|
||||
#endif /* CONFIG_BCM63XX_CPU_6348 */
|
||||
|
||||
/*
|
||||
@@ -431,6 +446,7 @@ static const struct board_info __initcon
|
||||
@@ -429,6 +444,7 @@ static const struct board_info __initcon
|
||||
&board_DV201AMR,
|
||||
&board_96348gw_a,
|
||||
&board_rta1025w_16,
|
||||
+ &board_96348_D4PW,
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_BCM63XX_CPU_6348 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6358
|
||||
@@ -462,6 +478,7 @@ static struct of_device_id const bcm963x
|
||||
&board_96358vw,
|
||||
@@ -461,6 +477,7 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "brcm,bcm96348gw-10", .data = &board_96348gw_10, },
|
||||
{ .compatible = "brcm,bcm96348gw-11", .data = &board_96348gw_11, },
|
||||
{ .compatible = "brcm,bcm96348gw-a", .data = &board_96348gw_a, },
|
||||
|
@ -1,81 +1,77 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -418,6 +418,60 @@ static struct board_info __initdata boar
|
||||
@@ -416,6 +416,56 @@ static struct board_info __initdata boar
|
||||
|
||||
.has_ohci0 = 1,
|
||||
};
|
||||
+
|
||||
+static struct board_info __initdata board_nb4_ser_r0 = {
|
||||
+ .name = "NB4-SER-r0",
|
||||
+ .expected_cpu_id = 0x6358,
|
||||
+ .name = "NB4-SER-r0",
|
||||
+ .expected_cpu_id = 0x6358,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .has_enet1 = 1,
|
||||
+ .has_pci = 1,
|
||||
+
|
||||
+ .enet0 = {
|
||||
+ .has_phy = 1,
|
||||
+ .use_internal_phy = 1,
|
||||
+ },
|
||||
+
|
||||
+ .enet1 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+
|
||||
+
|
||||
+ .has_ohci0 = 1,
|
||||
+ .has_pccard = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .has_ohci0 = 1,
|
||||
+ .has_ehci0 = 1,
|
||||
+ .num_usbh_ports = 2,
|
||||
+ .num_usbh_ports = 2,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .enet0 = {
|
||||
+ .has_phy = 1,
|
||||
+ .use_internal_phy = 1,
|
||||
+ },
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .enet1 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+static struct board_info __initdata board_nb4_fxc_r1 = {
|
||||
+ .name = "NB4-FXC-r1",
|
||||
+ .expected_cpu_id = 0x6358,
|
||||
+ .name = "NB4-FXC-r1",
|
||||
+ .expected_cpu_id = 0x6358,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .has_enet1 = 1,
|
||||
+ .has_pci = 1,
|
||||
+
|
||||
+ .enet0 = {
|
||||
+ .has_phy = 1,
|
||||
+ .use_internal_phy = 1,
|
||||
+ },
|
||||
+
|
||||
+ .enet1 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+
|
||||
+
|
||||
+ .has_ohci0 = 1,
|
||||
+ .has_pccard = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .has_ohci0 = 1,
|
||||
+ .has_ehci0 = 1,
|
||||
+ .num_usbh_ports = 2,
|
||||
+ .num_usbh_ports = 2,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .enet0 = {
|
||||
+ .has_phy = 1,
|
||||
+ .use_internal_phy = 1,
|
||||
+ },
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .enet1 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+};
|
||||
#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
|
||||
/*
|
||||
@@ -454,6 +508,8 @@ static const struct board_info __initcon
|
||||
@@ -451,6 +501,8 @@ static const struct board_info __initcon
|
||||
&board_96358vw2,
|
||||
&board_AGPFS0,
|
||||
&board_DWVS0,
|
||||
+ &board_nb4_ser_r0,
|
||||
+ &board_nb4_fxc_r1,
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
};
|
||||
|
||||
@@ -495,6 +551,8 @@ static struct of_device_id const bcm963x
|
||||
@@ -494,6 +546,8 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "pirelli,a226m", .data = &board_DWVS0, },
|
||||
{ .compatible = "pirelli,a226m-fwb", .data = &board_DWVS0, },
|
||||
{ .compatible = "pirelli,agpf-s0", .data = &board_AGPFS0, },
|
||||
+ { .compatible = "sfr,neufbox-4-sercomm-r0", .data = &board_nb4_ser_r0, },
|
||||
+ { .compatible = "sfr,neufbox-4-foxconn-r1", .data = &board_nb4_fxc_r1, },
|
||||
#endif
|
||||
#ifdef CONFIG_BCM63XX_CPU_6368
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6362
|
||||
#endif /* CONFIG_BCM63XX_CPU_6362 */
|
||||
|
@ -1,39 +1,38 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -98,6 +98,20 @@ static struct board_info __initdata boar
|
||||
@@ -98,6 +98,19 @@ static struct board_info __initdata boar
|
||||
.force_duplex_full = 1,
|
||||
},
|
||||
};
|
||||
+
|
||||
+static struct board_info __initdata board_96338w2_e7t = {
|
||||
+ .name = "96338W2_E7T",
|
||||
+ .expected_cpu_id = 0x6338,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .name = "96338W2_E7T",
|
||||
+ .expected_cpu_id = 0x6338,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .enet0 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+};
|
||||
#endif /* CONFIG_BCM63XX_CPU_6338 */
|
||||
|
||||
/*
|
||||
@@ -487,6 +501,7 @@ static const struct board_info __initcon
|
||||
@@ -481,6 +494,7 @@ static const struct board_info __initcon
|
||||
#ifdef CONFIG_BCM63XX_CPU_6338
|
||||
&board_96338gw,
|
||||
&board_96338w,
|
||||
+ &board_96338w2_e7t,
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6338 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6345
|
||||
&board_96345gw2,
|
||||
@@ -524,6 +539,7 @@ static struct of_device_id const bcm963x
|
||||
@@ -519,6 +533,7 @@ static struct of_device_id const bcm963x
|
||||
#ifdef CONFIG_BCM63XX_CPU_6338
|
||||
{ .compatible = "brcm,bcm96338gw", .data = &board_96338gw, },
|
||||
{ .compatible = "brcm,bcm96338w", .data = &board_96338w, },
|
||||
+ { .compatible = "d-link,dsl-2640u", .data = &board_96338w2_e7t, },
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6338 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6345
|
||||
{ .compatible = "brcm,bcm96345gw2", .data = &board_96345gw2, },
|
||||
|
@ -1,32 +1,30 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -385,6 +385,25 @@ static struct board_info __initdata boar
|
||||
@@ -382,6 +382,23 @@ static struct board_info __initdata boar
|
||||
.num_usbh_ports = 2,
|
||||
};
|
||||
|
||||
+static struct board_info __initdata board_CPVA642 = {
|
||||
+ .name = "CPVA642",
|
||||
+ .expected_cpu_id = 0x6358,
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .has_pci = 1,
|
||||
+
|
||||
+ .enet1 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+ .name = "CPVA642",
|
||||
+ .expected_cpu_id = 0x6358,
|
||||
+
|
||||
+ .has_pci = 1,
|
||||
+ .has_ohci0 = 1,
|
||||
+ .has_ehci0 = 1,
|
||||
+};
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .enet1 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
static struct board_info __initdata board_AGPFS0 = {
|
||||
.name = "AGPF-S0",
|
||||
.expected_cpu_id = 0x6358,
|
||||
@@ -522,6 +541,7 @@ static const struct board_info __initcon
|
||||
@@ -514,6 +531,7 @@ static const struct board_info __initcon
|
||||
&board_96358vw,
|
||||
&board_96358vw2,
|
||||
&board_AGPFS0,
|
||||
@ -34,11 +32,11 @@
|
||||
&board_DWVS0,
|
||||
&board_nb4_ser_r0,
|
||||
&board_nb4_fxc_r1,
|
||||
@@ -569,6 +589,7 @@ static struct of_device_id const bcm963x
|
||||
@@ -563,6 +581,7 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "pirelli,agpf-s0", .data = &board_AGPFS0, },
|
||||
{ .compatible = "sfr,neufbox-4-sercomm-r0", .data = &board_nb4_ser_r0, },
|
||||
{ .compatible = "sfr,neufbox-4-foxconn-r1", .data = &board_nb4_fxc_r1, },
|
||||
+ { .compatible = "telsey,cpva642", .data = &board_CPVA642, },
|
||||
#endif
|
||||
#ifdef CONFIG_BCM63XX_CPU_6368
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6362
|
||||
#endif /* CONFIG_BCM63XX_CPU_6362 */
|
||||
|
@ -1,37 +1,37 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -452,6 +452,22 @@ static struct board_info __initdata boar
|
||||
@@ -447,6 +447,22 @@ static struct board_info __initdata boar
|
||||
.has_ohci0 = 1,
|
||||
};
|
||||
|
||||
+/* D-Link DSL-274xB revison C2/C3 */
|
||||
+static struct board_info __initdata board_dsl_274xb_rev_c = {
|
||||
+ .name = "AW4139",
|
||||
+ .expected_cpu_id = 0x6358,
|
||||
+ .name = "AW4139",
|
||||
+ .expected_cpu_id = 0x6358,
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .has_pci = 1,
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .enet1 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
static struct board_info __initdata board_nb4_ser_r0 = {
|
||||
.name = "NB4-SER-r0",
|
||||
.expected_cpu_id = 0x6358,
|
||||
@@ -543,6 +559,7 @@ static const struct board_info __initcon
|
||||
.name = "NB4-SER-r0",
|
||||
.expected_cpu_id = 0x6358,
|
||||
@@ -533,6 +549,7 @@ static const struct board_info __initcon
|
||||
&board_AGPFS0,
|
||||
&board_CPVA642,
|
||||
&board_DWVS0,
|
||||
+ &board_dsl_274xb_rev_c,
|
||||
&board_nb4_ser_r0,
|
||||
&board_nb4_fxc_r1,
|
||||
#endif
|
||||
@@ -582,6 +599,7 @@ static struct of_device_id const bcm963x
|
||||
#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
@@ -574,6 +591,7 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "alcatel,rg100a", .data = &board_96358vw2, },
|
||||
{ .compatible = "brcm,bcm96358vw", .data = &board_96358vw, },
|
||||
{ .compatible = "brcm,bcm96358vw2", .data = &board_96358vw2, },
|
||||
|
@ -1,7 +1,7 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -324,6 +324,36 @@ static struct board_info __initdata boar
|
||||
.force_duplex_full = 1,
|
||||
@@ -322,6 +322,36 @@ static struct board_info __initdata boar
|
||||
.force_duplex_full = 1,
|
||||
},
|
||||
};
|
||||
+
|
||||
@ -14,42 +14,42 @@
|
||||
+};
|
||||
+
|
||||
+static struct board_info __initdata board_spw500v = {
|
||||
+ .name = "SPW500V",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+ .name = "SPW500V",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .use_fallback_sprom = 1,
|
||||
+ .has_pci = 1,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .enet0 = {
|
||||
+ .has_phy = 1,
|
||||
+ .use_internal_phy = 1,
|
||||
+ .has_phy = 1,
|
||||
+ .use_internal_phy = 1,
|
||||
+ },
|
||||
+
|
||||
+ .use_fallback_sprom = 1,
|
||||
+ .fallback_sprom = {
|
||||
+ .type = SPROM_BCM4318,
|
||||
+ .pci_bus = 0,
|
||||
+ .pci_dev = 1,
|
||||
+ .board_fixups = spw500v_fixups,
|
||||
+ .num_board_fixups = ARRAY_SIZE(spw500v_fixups),
|
||||
+ .type = SPROM_BCM4318,
|
||||
+ .pci_bus = 0,
|
||||
+ .pci_dev = 1,
|
||||
+ .board_fixups = spw500v_fixups,
|
||||
+ .num_board_fixups = ARRAY_SIZE(spw500v_fixups),
|
||||
+ },
|
||||
+};
|
||||
#endif /* CONFIG_BCM63XX_CPU_6348 */
|
||||
|
||||
/*
|
||||
@@ -551,6 +581,7 @@ static const struct board_info __initcon
|
||||
@@ -542,6 +572,7 @@ static const struct board_info __initcon
|
||||
&board_96348gw_a,
|
||||
&board_rta1025w_16,
|
||||
&board_96348_D4PW,
|
||||
+ &board_spw500v,
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_BCM63XX_CPU_6348 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6358
|
||||
@@ -592,6 +623,7 @@ static struct of_device_id const bcm963x
|
||||
&board_96358vw,
|
||||
@@ -584,6 +615,7 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "dynalink,rta1025w", .data = &board_rta1025w_16, },
|
||||
{ .compatible = "netgear,dg834gt-pn", .data = &board_96348gw_10, },
|
||||
{ .compatible = "sagem,fast-2404", .data = &board_FAST2404, },
|
||||
+ { .compatible = "t-com,speedport-w-500v", .data = &board_spw500v, },
|
||||
{ .compatible = "tp-link,td-w8900gb", .data = &board_96348gw_11, },
|
||||
{ .compatible = "usrobotics,usr9108", .data = &board_96348gw_a, },
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6348 */
|
||||
|
@ -1,55 +1,53 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -217,6 +217,48 @@ static struct board_info __initdata boar
|
||||
@@ -216,6 +216,46 @@ static struct board_info __initdata boar
|
||||
.has_ohci0 = 1,
|
||||
};
|
||||
|
||||
+static struct board_info __initdata board_gw6200 = {
|
||||
+ .name = "GW6200",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .has_enet1 = 1,
|
||||
+ .has_pci = 1,
|
||||
+
|
||||
+ .enet0 = {
|
||||
+ .has_phy = 1,
|
||||
+ .use_internal_phy = 1,
|
||||
+ },
|
||||
+ .enet1 = {
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+ .name = "GW6200",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+
|
||||
+ .has_pci = 1,
|
||||
+ .has_ohci0 = 1,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .enet0 = {
|
||||
+ .has_phy = 1,
|
||||
+ .use_internal_phy = 1,
|
||||
+ },
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .enet1 = {
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+static struct board_info __initdata board_gw6000 = {
|
||||
+ .name = "GW6000",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .has_enet1 = 1,
|
||||
+ .has_pci = 1,
|
||||
+
|
||||
+ .enet0 = {
|
||||
+ .has_phy = 1,
|
||||
+ .use_internal_phy = 1,
|
||||
+ },
|
||||
+ .enet1 = {
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+ .name = "GW6000",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+
|
||||
+ .has_pci = 1,
|
||||
+ .has_ohci0 = 1,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .enet0 = {
|
||||
+ .has_phy = 1,
|
||||
+ .use_internal_phy = 1,
|
||||
+ },
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .enet1 = {
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+
|
||||
+
|
||||
static struct board_info __initdata board_FAST2404 = {
|
||||
.name = "F@ST2404",
|
||||
.expected_cpu_id = 0x6348,
|
||||
@@ -574,6 +616,8 @@ static const struct board_info __initcon
|
||||
@@ -565,6 +605,8 @@ static const struct board_info __initcon
|
||||
#ifdef CONFIG_BCM63XX_CPU_6348
|
||||
&board_96348r,
|
||||
&board_96348gw,
|
||||
@ -58,7 +56,7 @@
|
||||
&board_96348gw_10,
|
||||
&board_96348gw_11,
|
||||
&board_FAST2404,
|
||||
@@ -624,6 +668,8 @@ static struct of_device_id const bcm963x
|
||||
@@ -616,6 +658,8 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "netgear,dg834gt-pn", .data = &board_96348gw_10, },
|
||||
{ .compatible = "sagem,fast-2404", .data = &board_FAST2404, },
|
||||
{ .compatible = "t-com,speedport-w-500v", .data = &board_spw500v, },
|
||||
@ -66,4 +64,4 @@
|
||||
+ { .compatible = "tecom,gw6200", .data = &board_gw6200, },
|
||||
{ .compatible = "tp-link,td-w8900gb", .data = &board_96348gw_11, },
|
||||
{ .compatible = "usrobotics,usr9108", .data = &board_96348gw_a, },
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6348 */
|
||||
|
@ -1,50 +1,49 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -396,6 +396,31 @@ static struct board_info __initdata boar
|
||||
.num_board_fixups = ARRAY_SIZE(spw500v_fixups),
|
||||
@@ -392,6 +392,30 @@ static struct board_info __initdata boar
|
||||
.num_board_fixups = ARRAY_SIZE(spw500v_fixups),
|
||||
},
|
||||
};
|
||||
+
|
||||
+static struct board_info __initdata board_96348sv = {
|
||||
+ .name = "MAGIC",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+ .name = "MAGIC",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .has_enet1 = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .has_pccard = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .has_ohci0 = 1,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .enet0 = {
|
||||
+ .has_phy = 1,
|
||||
+ .use_internal_phy = 1,
|
||||
+ .has_phy = 1,
|
||||
+ .use_internal_phy = 1,
|
||||
+ },
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .enet1 = {
|
||||
+ /* it has BP_ENET_EXTERNAL_PHY */
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+
|
||||
+ .has_ohci0 = 1,
|
||||
+ .has_pccard = 1,
|
||||
+ .has_ehci0 = 1,
|
||||
+};
|
||||
#endif /* CONFIG_BCM63XX_CPU_6348 */
|
||||
|
||||
/*
|
||||
@@ -626,6 +651,7 @@ static const struct board_info __initcon
|
||||
@@ -615,6 +639,7 @@ static const struct board_info __initcon
|
||||
&board_rta1025w_16,
|
||||
&board_96348_D4PW,
|
||||
&board_spw500v,
|
||||
+ &board_96348sv,
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_BCM63XX_CPU_6348 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6358
|
||||
@@ -670,6 +696,7 @@ static struct of_device_id const bcm963x
|
||||
&board_96358vw,
|
||||
@@ -660,6 +685,7 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "t-com,speedport-w-500v", .data = &board_spw500v, },
|
||||
{ .compatible = "tecom,gw6000", .data = &board_gw6000, },
|
||||
{ .compatible = "tecom,gw6200", .data = &board_gw6200, },
|
||||
+ { .compatible = "telsey,magic", .data = &board_96348sv, },
|
||||
{ .compatible = "tp-link,td-w8900gb", .data = &board_96348gw_11, },
|
||||
{ .compatible = "usrobotics,usr9108", .data = &board_96348gw_a, },
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6348 */
|
||||
|
@ -1,47 +1,46 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -618,6 +618,32 @@ static struct board_info __initdata boar
|
||||
.has_ehci0 = 1,
|
||||
.num_usbh_ports = 2,
|
||||
@@ -606,6 +606,31 @@ static struct board_info __initdata boar
|
||||
.force_duplex_full = 1,
|
||||
},
|
||||
};
|
||||
+
|
||||
+static struct board_info __initdata board_HW553 = {
|
||||
+ .name = "HW553",
|
||||
+ .expected_cpu_id = 0x6358,
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .use_fallback_sprom = 1,
|
||||
+
|
||||
+ .enet1 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+ .name = "HW553",
|
||||
+ .expected_cpu_id = 0x6358,
|
||||
+
|
||||
+ .has_pci = 1,
|
||||
+ .has_ohci0 = 1,
|
||||
+ .has_ehci0 = 1,
|
||||
+ .num_usbh_ports = 2,
|
||||
+ .num_usbh_ports = 2,
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .enet1 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+
|
||||
+ .use_fallback_sprom = 1,
|
||||
+ .fallback_sprom = {
|
||||
+ .type = SPROM_BCM4318,
|
||||
+ .pci_bus = 0,
|
||||
+ .pci_dev = 1,
|
||||
+ .type = SPROM_BCM4318,
|
||||
+ .pci_bus = 0,
|
||||
+ .pci_dev = 1,
|
||||
+ },
|
||||
+};
|
||||
#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
|
||||
/*
|
||||
@@ -663,6 +689,7 @@ static const struct board_info __initcon
|
||||
@@ -650,6 +675,7 @@ static const struct board_info __initcon
|
||||
&board_dsl_274xb_rev_c,
|
||||
&board_nb4_ser_r0,
|
||||
&board_nb4_fxc_r1,
|
||||
+ &board_HW553,
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
};
|
||||
|
||||
@@ -706,6 +733,7 @@ static struct of_device_id const bcm963x
|
||||
@@ -695,6 +721,7 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "brcm,bcm96358vw2", .data = &board_96358vw2, },
|
||||
{ .compatible = "d-link,dsl-274xb-c2", .data = &board_dsl_274xb_rev_c, },
|
||||
{ .compatible = "d-link,dsl-2650u", .data = &board_96358vw2, },
|
||||
|
@ -1,39 +1,38 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -112,6 +112,20 @@ static struct board_info __initdata boar
|
||||
.force_duplex_full = 1,
|
||||
@@ -111,6 +111,19 @@ static struct board_info __initdata boar
|
||||
.force_duplex_full = 1,
|
||||
},
|
||||
};
|
||||
+
|
||||
+static struct board_info __initdata board_rta1320_16m = {
|
||||
+ .name = "RTA1320_16M",
|
||||
+ .expected_cpu_id = 0x6338,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .name = "RTA1320_16M",
|
||||
+ .expected_cpu_id = 0x6338,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .enet0 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+};
|
||||
#endif /* CONFIG_BCM63XX_CPU_6338 */
|
||||
|
||||
/*
|
||||
@@ -660,6 +674,7 @@ static const struct board_info __initcon
|
||||
@@ -647,6 +660,7 @@ static const struct board_info __initcon
|
||||
&board_96338gw,
|
||||
&board_96338w,
|
||||
&board_96338w2_e7t,
|
||||
+ &board_rta1320_16m,
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6338 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6345
|
||||
&board_96345gw2,
|
||||
@@ -704,6 +719,7 @@ static struct of_device_id const bcm963x
|
||||
@@ -692,6 +706,7 @@ static struct of_device_id const bcm963x
|
||||
#ifdef CONFIG_BCM63XX_CPU_6338
|
||||
{ .compatible = "brcm,bcm96338gw", .data = &board_96338gw, },
|
||||
{ .compatible = "brcm,bcm96338w", .data = &board_96338w, },
|
||||
+ { .compatible = "dynalink,rta1320", .data = &board_rta1320_16m, },
|
||||
{ .compatible = "d-link,dsl-2640u", .data = &board_96338w2_e7t, },
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6338 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6345
|
||||
|
@ -1,39 +1,39 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -658,6 +658,20 @@ static struct board_info __initdata boar
|
||||
.pci_dev = 1,
|
||||
@@ -644,6 +644,20 @@ static struct board_info __initdata boar
|
||||
.pci_dev = 1,
|
||||
},
|
||||
};
|
||||
+
|
||||
+ /* T-Home Speedport W 303V Typ B */
|
||||
+static struct board_info __initdata board_spw303v = {
|
||||
+ .name = "96358-502V",
|
||||
+ .expected_cpu_id = 0x6358,
|
||||
+ .name = "96358-502V",
|
||||
+ .expected_cpu_id = 0x6358,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .has_pci = 1,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .enet0 = {
|
||||
+ .has_phy = 1,
|
||||
+ .use_internal_phy = 1,
|
||||
+ .has_phy = 1,
|
||||
+ .use_internal_phy = 1,
|
||||
+ },
|
||||
+};
|
||||
#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
|
||||
/*
|
||||
@@ -705,6 +719,7 @@ static const struct board_info __initcon
|
||||
@@ -690,6 +704,7 @@ static const struct board_info __initcon
|
||||
&board_nb4_ser_r0,
|
||||
&board_nb4_fxc_r1,
|
||||
&board_HW553,
|
||||
+ &board_spw303v,
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
};
|
||||
|
||||
@@ -756,6 +771,7 @@ static struct of_device_id const bcm963x
|
||||
@@ -743,6 +758,7 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "pirelli,agpf-s0", .data = &board_AGPFS0, },
|
||||
{ .compatible = "sfr,neufbox-4-sercomm-r0", .data = &board_nb4_ser_r0, },
|
||||
{ .compatible = "sfr,neufbox-4-foxconn-r1", .data = &board_nb4_fxc_r1, },
|
||||
+ { .compatible = "t-com,speedport-w-303v", .data = &board_spw303v, },
|
||||
{ .compatible = "telsey,cpva642", .data = &board_CPVA642, },
|
||||
#endif
|
||||
#ifdef CONFIG_BCM63XX_CPU_6368
|
||||
#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6362
|
||||
|
@ -1,41 +1,42 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -435,6 +435,26 @@ static struct board_info __initdata boar
|
||||
.has_pccard = 1,
|
||||
.has_ehci0 = 1,
|
||||
@@ -429,6 +429,27 @@ static struct board_info __initdata boar
|
||||
.force_duplex_full = 1,
|
||||
},
|
||||
};
|
||||
+
|
||||
+static struct board_info __initdata board_V2500V_BB = {
|
||||
+ .name = "V2500V_BB",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+ .name = "V2500V_BB",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .has_enet1 = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .has_pci = 1,
|
||||
+
|
||||
+ .enet0 = {
|
||||
+ .has_phy = 1,
|
||||
+ .use_internal_phy = 1,
|
||||
+ },
|
||||
+ .enet1 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ .has_enet0 = 1,
|
||||
+ .enet0 = {
|
||||
+ .has_phy = 1,
|
||||
+ .use_internal_phy = 1,
|
||||
+ },
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .enet1 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+};
|
||||
#endif /* CONFIG_BCM63XX_CPU_6348 */
|
||||
|
||||
/*
|
||||
@@ -707,6 +727,7 @@ static const struct board_info __initcon
|
||||
@@ -693,6 +714,7 @@ static const struct board_info __initcon
|
||||
&board_96348_D4PW,
|
||||
&board_spw500v,
|
||||
&board_96348sv,
|
||||
+ &board_V2500V_BB,
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_BCM63XX_CPU_6348 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6358
|
||||
@@ -746,6 +767,7 @@ static struct of_device_id const bcm963x
|
||||
&board_96358vw,
|
||||
@@ -733,6 +755,7 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "brcm,bcm96348gw-10", .data = &board_96348gw_10, },
|
||||
{ .compatible = "brcm,bcm96348gw-11", .data = &board_96348gw_11, },
|
||||
{ .compatible = "brcm,bcm96348gw-a", .data = &board_96348gw_a, },
|
||||
@ -43,7 +44,7 @@
|
||||
{ .compatible = "d-link,dsl-2640b-b", .data = &board_96348_D4PW, },
|
||||
{ .compatible = "davolink,dv-201amr", .data = &board_DV201AMR, },
|
||||
{ .compatible = "dynalink,rta1025w", .data = &board_rta1025w_16, },
|
||||
@@ -805,6 +827,22 @@ void __init board_bcm963xx_init(void)
|
||||
@@ -794,6 +817,22 @@ void __init board_bcm963xx_init(void)
|
||||
val &= MPI_CSBASE_BASE_MASK;
|
||||
}
|
||||
boot_addr = (u8 *)KSEG1ADDR(val);
|
||||
|
@ -1,39 +1,37 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -208,6 +208,24 @@ static struct board_info __initdata boar
|
||||
@@ -206,6 +206,22 @@ static struct board_info __initdata boar
|
||||
.has_ehci0 = 1,
|
||||
};
|
||||
|
||||
+
|
||||
+/* BT Voyager 2110 */
|
||||
+static struct board_info __initdata board_V2110 = {
|
||||
+ .name = "V2110",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+ .name = "V2110",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .has_pci = 1,
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .enet1 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
+
|
||||
static struct board_info __initdata board_96348gw = {
|
||||
.name = "96348GW",
|
||||
.expected_cpu_id = 0x6348,
|
||||
@@ -728,6 +746,7 @@ static const struct board_info __initcon
|
||||
@@ -715,6 +731,7 @@ static const struct board_info __initcon
|
||||
&board_spw500v,
|
||||
&board_96348sv,
|
||||
&board_V2500V_BB,
|
||||
+ &board_V2110,
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_BCM63XX_CPU_6348 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6358
|
||||
@@ -767,6 +786,7 @@ static struct of_device_id const bcm963x
|
||||
&board_96358vw,
|
||||
@@ -755,6 +772,7 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "brcm,bcm96348gw-10", .data = &board_96348gw_10, },
|
||||
{ .compatible = "brcm,bcm96348gw-11", .data = &board_96348gw_11, },
|
||||
{ .compatible = "brcm,bcm96348gw-a", .data = &board_96348gw_a, },
|
||||
|
@ -58,10 +58,10 @@ Subject: [PATCH] MIPS: BCM63XX: add inventel Livebox support
|
||||
#endif /* __BOARD_COMMON_H */
|
||||
--- /dev/null
|
||||
+++ b/arch/mips/bcm63xx/boards/board_livebox.c
|
||||
@@ -0,0 +1,155 @@
|
||||
@@ -0,0 +1,153 @@
|
||||
+/*
|
||||
+ * This file is subject to the terms and conditions of the GNU General Public
|
||||
+ * License. See the file "COPYING" in the main directory of this archive
|
||||
+ * License. See the file "COPYING" in the main directory of this archive
|
||||
+ * for more details.
|
||||
+ *
|
||||
+ * Copyright (C) 2008 Florian Fainelli <florian@openwrt.org>
|
||||
@ -90,28 +90,26 @@ Subject: [PATCH] MIPS: BCM63XX: add inventel Livebox support
|
||||
+ */
|
||||
+#ifdef CONFIG_BCM63XX_CPU_6348
|
||||
+static struct board_info __initdata board_livebox_blue5g = {
|
||||
+ .name = "Livebox-blue-5g",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+ .name = "Livebox-blue-5g",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .has_enet1 = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .has_pccard = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .has_ohci0 = 1,
|
||||
+ .ephy_reset_gpio = 6,
|
||||
+ .ephy_reset_gpio_flags = GPIO_ACTIVE_LOW,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .enet0 = {
|
||||
+ .has_phy = 1,
|
||||
+ .use_internal_phy = 1,
|
||||
+ .has_phy = 1,
|
||||
+ .use_internal_phy = 1,
|
||||
+ },
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .enet1 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 31,
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 31,
|
||||
+ },
|
||||
+
|
||||
+ .ephy_reset_gpio = 6,
|
||||
+ .ephy_reset_gpio_flags = GPIO_ACTIVE_LOW,
|
||||
+
|
||||
+ .has_ohci0 = 1,
|
||||
+ .has_pccard = 1,
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
@ -121,7 +119,7 @@ Subject: [PATCH] MIPS: BCM63XX: add inventel Livebox support
|
||||
+static const struct board_info __initdata *bcm963xx_boards[] = {
|
||||
+#ifdef CONFIG_BCM63XX_CPU_6348
|
||||
+ &board_livebox_blue5g
|
||||
+#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6348 */
|
||||
+};
|
||||
+
|
||||
+static struct of_device_id const livebox_boards_dt[] = {
|
||||
@ -155,7 +153,7 @@ Subject: [PATCH] MIPS: BCM63XX: add inventel Livebox support
|
||||
+ printk(KERN_ERR PFX "unable to fetch mac address\n");
|
||||
+ return -ENODEV;
|
||||
+ }
|
||||
+ mac_addr_used++;
|
||||
+ mac_addr_used++;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
|
@ -1,48 +1,45 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -226,6 +226,33 @@ static struct board_info __initdata boar
|
||||
@@ -222,6 +222,30 @@ static struct board_info __initdata boar
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
+static struct board_info __initdata board_ct536_ct5621 = {
|
||||
+ .name = "CT536_CT5621",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+ .name = "CT536_CT5621",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+
|
||||
+ .has_enet0 = 0,
|
||||
+ .has_enet1 = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .use_fallback_sprom = 1,
|
||||
+ .has_pccard = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .has_ohci0 = 1,
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .enet1 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+
|
||||
+ .has_ohci0 = 1,
|
||||
+ .has_pccard = 1,
|
||||
+ .has_ehci0 = 1,
|
||||
+
|
||||
+ .use_fallback_sprom = 1,
|
||||
+ .fallback_sprom = {
|
||||
+ .type = SPROM_BCM4318,
|
||||
+ .pci_bus = 0,
|
||||
+ .pci_dev = 1,
|
||||
+ .type = SPROM_BCM4318,
|
||||
+ .pci_bus = 0,
|
||||
+ .pci_dev = 1,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
static struct board_info __initdata board_96348gw = {
|
||||
.name = "96348GW",
|
||||
.expected_cpu_id = 0x6348,
|
||||
@@ -747,6 +774,7 @@ static const struct board_info __initcon
|
||||
@@ -732,6 +756,7 @@ static const struct board_info __initcon
|
||||
&board_96348sv,
|
||||
&board_V2500V_BB,
|
||||
&board_V2110,
|
||||
+ &board_ct536_ct5621,
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_BCM63XX_CPU_6348 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6358
|
||||
@@ -788,6 +816,8 @@ static struct of_device_id const bcm963x
|
||||
&board_96358vw,
|
||||
@@ -774,6 +799,8 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "brcm,bcm96348gw-a", .data = &board_96348gw_a, },
|
||||
{ .compatible = "bt,voyager-2110", .data = &board_V2110, },
|
||||
{ .compatible = "bt,voyager-2500v-bb", .data = &board_V2500V_BB, },
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -626,6 +626,7 @@ static struct board_info __initdata boar
|
||||
@@ -613,6 +613,7 @@ static struct board_info __initdata boar
|
||||
},
|
||||
|
||||
.has_ohci0 = 1,
|
||||
|
@ -1,45 +1,44 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -253,6 +253,30 @@ static struct board_info __initdata boar
|
||||
@@ -246,6 +246,29 @@ static struct board_info __initdata boar
|
||||
},
|
||||
};
|
||||
|
||||
+static struct board_info __initdata board_96348A_122 = {
|
||||
+ .name = "96348A-122",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .use_fallback_sprom = 1,
|
||||
+
|
||||
+ .enet1 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+ .name = "96348A-122",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+
|
||||
+ .has_pci = 1,
|
||||
+ .has_ohci0 = 1,
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .enet1 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+
|
||||
+ .use_fallback_sprom = 1,
|
||||
+ .fallback_sprom = {
|
||||
+ .type = SPROM_BCM4318,
|
||||
+ .pci_bus = 0,
|
||||
+ .pci_dev = 1,
|
||||
+ .type = SPROM_BCM4318,
|
||||
+ .pci_bus = 0,
|
||||
+ .pci_dev = 1,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
static struct board_info __initdata board_96348gw = {
|
||||
.name = "96348GW",
|
||||
.expected_cpu_id = 0x6348,
|
||||
@@ -776,6 +800,7 @@ static const struct board_info __initcon
|
||||
@@ -758,6 +781,7 @@ static const struct board_info __initcon
|
||||
&board_V2500V_BB,
|
||||
&board_V2110,
|
||||
&board_ct536_ct5621,
|
||||
+ &board_96348A_122,
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_BCM63XX_CPU_6348 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6358
|
||||
@@ -818,6 +843,7 @@ static struct of_device_id const bcm963x
|
||||
&board_96358vw,
|
||||
@@ -801,6 +825,7 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "bt,voyager-2110", .data = &board_V2110, },
|
||||
{ .compatible = "bt,voyager-2500v-bb", .data = &board_V2500V_BB, },
|
||||
{ .compatible = "comtrend,ct-536plus", .data = &board_ct536_ct5621, },
|
||||
|
@ -1,48 +1,49 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -225,6 +225,33 @@ static struct board_info __initdata boar
|
||||
@@ -222,6 +222,34 @@ static struct board_info __initdata boar
|
||||
},
|
||||
};
|
||||
|
||||
+static struct board_info __initdata board_CPVA502plus = {
|
||||
+ .name = "CPVA502+",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+ .name = "CPVA502+",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .has_enet1 = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .use_fallback_sprom = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .ephy_reset_gpio = 4,
|
||||
+ .ephy_reset_gpio_flags = GPIO_ACTIVE_LOW,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .enet0 = {
|
||||
+ .has_phy = 1,
|
||||
+ .use_internal_phy = 1,
|
||||
+ .has_phy = 1,
|
||||
+ .use_internal_phy = 1,
|
||||
+ },
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .enet1 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ },
|
||||
+
|
||||
+ .ephy_reset_gpio = 4,
|
||||
+ .ephy_reset_gpio_flags = GPIO_ACTIVE_LOW,
|
||||
+
|
||||
+ .use_fallback_sprom = 1,
|
||||
+ .fallback_sprom = {
|
||||
+ .type = SPROM_BCM4318,
|
||||
+ .pci_bus = 0,
|
||||
+ .pci_dev = 1,
|
||||
+ .type = SPROM_BCM4318,
|
||||
+ .pci_bus = 0,
|
||||
+ .pci_dev = 1,
|
||||
+ },
|
||||
+};
|
||||
|
||||
+
|
||||
static struct board_info __initdata board_ct536_ct5621 = {
|
||||
.name = "CT536_CT5621",
|
||||
@@ -801,6 +828,7 @@ static const struct board_info __initcon
|
||||
.name = "CT536_CT5621",
|
||||
.expected_cpu_id = 0x6348,
|
||||
@@ -782,6 +810,7 @@ static const struct board_info __initcon
|
||||
&board_V2110,
|
||||
&board_ct536_ct5621,
|
||||
&board_96348A_122,
|
||||
+ &board_CPVA502plus,
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_BCM63XX_CPU_6348 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6358
|
||||
@@ -853,6 +881,7 @@ static struct of_device_id const bcm963x
|
||||
&board_96358vw,
|
||||
@@ -835,6 +864,7 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "t-com,speedport-w-500v", .data = &board_spw500v, },
|
||||
{ .compatible = "tecom,gw6000", .data = &board_gw6000, },
|
||||
{ .compatible = "tecom,gw6200", .data = &board_gw6200, },
|
||||
|
@ -10,7 +10,7 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board.
|
||||
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -792,6 +792,58 @@ static struct board_info __initdata boar
|
||||
@@ -774,6 +774,52 @@ static struct board_info __initdata boar
|
||||
#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
|
||||
/*
|
||||
@ -18,50 +18,44 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board.
|
||||
+ */
|
||||
+#ifdef CONFIG_BCM63XX_CPU_6368
|
||||
+static struct board_info __initdata board_96368mvwg = {
|
||||
+ .name = "96368MVWG",
|
||||
+ .expected_cpu_id = 0x6368,
|
||||
+ .name = "96368MVWG",
|
||||
+ .expected_cpu_id = 0x6368,
|
||||
+
|
||||
+ .has_pci = 1,
|
||||
+
|
||||
+ .has_usbd = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .has_ohci0 = 1,
|
||||
+ .has_ehci0 = 1,
|
||||
+
|
||||
+ .has_usbd = 1,
|
||||
+ .usbd = {
|
||||
+ .use_fullspeed = 0,
|
||||
+ .port_no = 0,
|
||||
+ .use_fullspeed = 0,
|
||||
+ .port_no = 0,
|
||||
+ },
|
||||
+
|
||||
+ .has_enetsw = 1,
|
||||
+
|
||||
+ .has_enetsw = 1,
|
||||
+ .enetsw = {
|
||||
+ .used_ports = {
|
||||
+ [1] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 2,
|
||||
+ .name = "port1",
|
||||
+ .used = 1,
|
||||
+ .phy_id = 2,
|
||||
+ .name = "port1",
|
||||
+ },
|
||||
+
|
||||
+ [2] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 3,
|
||||
+ .name = "port2",
|
||||
+ .used = 1,
|
||||
+ .phy_id = 3,
|
||||
+ .name = "port2",
|
||||
+ },
|
||||
+
|
||||
+ [4] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 0x12,
|
||||
+ .name = "port0",
|
||||
+ .used = 1,
|
||||
+ .phy_id = 0x12,
|
||||
+ .name = "port0",
|
||||
+ },
|
||||
+
|
||||
+ [5] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 0x11,
|
||||
+ .name = "port3",
|
||||
+ .used = 1,
|
||||
+ .phy_id = 0x11,
|
||||
+ .name = "port3",
|
||||
+ },
|
||||
+ },
|
||||
+ },
|
||||
+
|
||||
+ .has_ohci0 = 1,
|
||||
+ .has_ehci0 = 1,
|
||||
+};
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6368 */
|
||||
+
|
||||
@ -69,25 +63,24 @@ Subject: [PATCH 32/63] bcm63xx: add support for 96368MVWG board.
|
||||
* all boards
|
||||
*/
|
||||
static const struct board_info __initconst *bcm963xx_boards[] = {
|
||||
@@ -843,6 +895,10 @@ static const struct board_info __initcon
|
||||
@@ -824,6 +870,9 @@ static const struct board_info __initcon
|
||||
&board_HW553,
|
||||
&board_spw303v,
|
||||
#endif
|
||||
+
|
||||
#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
+#ifdef CONFIG_BCM63XX_CPU_6368
|
||||
+ &board_96368mvwg,
|
||||
+#endif
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6368 */
|
||||
};
|
||||
|
||||
static struct of_device_id const bcm963xx_boards_dt[] = {
|
||||
@@ -903,6 +959,7 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "telsey,cpva642", .data = &board_CPVA642, },
|
||||
#endif
|
||||
@@ -888,6 +937,7 @@ static struct of_device_id const bcm963x
|
||||
#ifdef CONFIG_BCM63XX_CPU_6362
|
||||
#endif /* CONFIG_BCM63XX_CPU_6362 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6368
|
||||
+ { .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, },
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6368 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_63268
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_63268 */
|
||||
--- a/arch/mips/bcm63xx/boards/board_common.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_common.c
|
||||
@@ -81,12 +81,25 @@ void __init board_early_setup(const stru
|
||||
|
@ -9,65 +9,61 @@ Subject: [PATCH 33/63] bcm63xx: add support for 96368MVNgr board.
|
||||
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -841,6 +841,45 @@ static struct board_info __initdata boar
|
||||
.has_ohci0 = 1,
|
||||
.has_ehci0 = 1,
|
||||
@@ -817,6 +817,41 @@ static struct board_info __initdata boar
|
||||
},
|
||||
},
|
||||
};
|
||||
+
|
||||
+static struct board_info __initdata board_96368mvngr = {
|
||||
+ .name = "96368MVNgr",
|
||||
+ .expected_cpu_id = 0x6368,
|
||||
+ .name = "96368MVNgr",
|
||||
+ .expected_cpu_id = 0x6368,
|
||||
+
|
||||
+ .has_pci = 1,
|
||||
+ .has_enetsw = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .has_ohci0 = 1,
|
||||
+ .has_ehci0 = 1,
|
||||
+
|
||||
+ .has_enetsw = 1,
|
||||
+ .enetsw = {
|
||||
+ .used_ports = {
|
||||
+ [0] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 1,
|
||||
+ .name = "port1",
|
||||
+ .used = 1,
|
||||
+ .phy_id = 1,
|
||||
+ .name = "port1",
|
||||
+ },
|
||||
+
|
||||
+ [1] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 2,
|
||||
+ .name = "port2",
|
||||
+ .used = 1,
|
||||
+ .phy_id = 2,
|
||||
+ .name = "port2",
|
||||
+ },
|
||||
+
|
||||
+ [2] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 3,
|
||||
+ .name = "port3",
|
||||
+ .used = 1,
|
||||
+ .phy_id = 3,
|
||||
+ .name = "port3",
|
||||
+ },
|
||||
+
|
||||
+ [3] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 4,
|
||||
+ .name = "port4",
|
||||
+ .used = 1,
|
||||
+ .phy_id = 4,
|
||||
+ .name = "port4",
|
||||
+ },
|
||||
+ },
|
||||
+ },
|
||||
+
|
||||
+ .has_ohci0 = 1,
|
||||
+ .has_ehci0 = 1,
|
||||
+};
|
||||
#endif /* CONFIG_BCM63XX_CPU_6368 */
|
||||
|
||||
/*
|
||||
@@ -898,6 +937,7 @@ static const struct board_info __initcon
|
||||
|
||||
@@ -872,6 +907,7 @@ static const struct board_info __initcon
|
||||
#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6368
|
||||
&board_96368mvwg,
|
||||
+ &board_96368mvngr,
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6368 */
|
||||
};
|
||||
|
||||
@@ -959,6 +999,7 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "telsey,cpva642", .data = &board_CPVA642, },
|
||||
#endif
|
||||
@@ -937,6 +973,7 @@ static struct of_device_id const bcm963x
|
||||
#ifdef CONFIG_BCM63XX_CPU_6362
|
||||
#endif /* CONFIG_BCM63XX_CPU_6362 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6368
|
||||
+ { .compatible = "brcm,bcm96368mvngr", .data = &board_96368mvngr, },
|
||||
{ .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, },
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6368 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_63268
|
||||
|
@ -9,34 +9,33 @@ Subject: [PATCH] MIPS: BCM63XX: add 96328avng reference board
|
||||
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -64,6 +64,33 @@ static struct board_info __initdata boar
|
||||
@@ -64,6 +64,32 @@ static struct board_info __initdata boar
|
||||
.use_fullspeed = 0,
|
||||
.port_no = 0,
|
||||
},
|
||||
+
|
||||
+ .has_enetsw = 1,
|
||||
+
|
||||
+ .has_enetsw = 1,
|
||||
+ .enetsw = {
|
||||
+ .used_ports = {
|
||||
+ [0] = {
|
||||
+ .used = 1,
|
||||
+ .used = 1,
|
||||
+ .phy_id = 1,
|
||||
+ .name = "Port 1",
|
||||
+ .name = "Port 1",
|
||||
+ },
|
||||
+ [1] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 2,
|
||||
+ .name = "Port 2",
|
||||
+ .used = 1,
|
||||
+ .phy_id = 2,
|
||||
+ .name = "Port 2",
|
||||
+ },
|
||||
+ [2] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 3,
|
||||
+ .name = "Port 3",
|
||||
+ .used = 1,
|
||||
+ .phy_id = 3,
|
||||
+ .name = "Port 3",
|
||||
+ },
|
||||
+ [3] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 4,
|
||||
+ .name = "Port 4",
|
||||
+ .used = 1,
|
||||
+ .phy_id = 4,
|
||||
+ .name = "Port 4",
|
||||
+ },
|
||||
+ },
|
||||
+ },
|
||||
|
@ -9,40 +9,39 @@ Subject: [PATCH] MIPS: BCM63XX: add 963281TAN reference board
|
||||
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -92,6 +92,40 @@ static struct board_info __initdata boar
|
||||
@@ -91,6 +91,39 @@ static struct board_info __initdata boar
|
||||
},
|
||||
},
|
||||
};
|
||||
+
|
||||
+static struct board_info __initdata board_963281TAN = {
|
||||
+ .name = "963281TAN",
|
||||
+ .expected_cpu_id = 0x6328,
|
||||
+ .name = "963281TAN",
|
||||
+ .expected_cpu_id = 0x6328,
|
||||
+
|
||||
+ .has_pci = 1,
|
||||
+
|
||||
+ .has_enetsw = 1,
|
||||
+ .has_pci = 1,
|
||||
+
|
||||
+ .has_enetsw = 1,
|
||||
+ .enetsw = {
|
||||
+ .used_ports = {
|
||||
+ [0] = {
|
||||
+ .used = 1,
|
||||
+ .used = 1,
|
||||
+ .phy_id = 1,
|
||||
+ .name = "Port 1",
|
||||
+ .name = "Port 1",
|
||||
+ },
|
||||
+ [1] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 2,
|
||||
+ .name = "Port 2",
|
||||
+ .used = 1,
|
||||
+ .phy_id = 2,
|
||||
+ .name = "Port 2",
|
||||
+ },
|
||||
+ [2] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 3,
|
||||
+ .name = "Port 3",
|
||||
+ .used = 1,
|
||||
+ .phy_id = 3,
|
||||
+ .name = "Port 3",
|
||||
+ },
|
||||
+ [3] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 4,
|
||||
+ .name = "Port 4",
|
||||
+ .used = 1,
|
||||
+ .phy_id = 4,
|
||||
+ .name = "Port 4",
|
||||
+ },
|
||||
+ },
|
||||
+ },
|
||||
@ -50,19 +49,19 @@ Subject: [PATCH] MIPS: BCM63XX: add 963281TAN reference board
|
||||
#endif /* CONFIG_BCM63XX_CPU_6328 */
|
||||
|
||||
/*
|
||||
@@ -918,6 +952,7 @@ static const struct board_info __initcon
|
||||
#endif
|
||||
@@ -889,6 +922,7 @@ static const struct board_info __initcon
|
||||
#endif /* CONFIG_BCM63XX_CPU_3368 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6328
|
||||
&board_96328avng,
|
||||
+ &board_963281TAN,
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6328 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6338
|
||||
&board_96338gw,
|
||||
@@ -974,6 +1009,7 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "netgear,cvg834g", .data = &board_cvg834g, },
|
||||
#endif
|
||||
@@ -945,6 +979,7 @@ static struct of_device_id const bcm963x
|
||||
#ifdef CONFIG_BCM63XX_CPU_6318
|
||||
#endif /* CONFIG_BCM63XX_CPU_6318 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6328
|
||||
+ { .compatible = "brcm,bcm963281tan", .data = &board_963281TAN, },
|
||||
{ .compatible = "brcm,bcm96328avng", .data = &board_96328avng, },
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6328 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6338
|
||||
|
@ -10,51 +10,50 @@ Subject: [PATCH 70/79] MIPS: BCM63XX: Add board definition for D-Link
|
||||
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -126,6 +126,51 @@ static struct board_info __initdata boar
|
||||
@@ -124,6 +124,50 @@ static struct board_info __initdata boar
|
||||
},
|
||||
},
|
||||
};
|
||||
+
|
||||
+static struct board_info __initdata board_dsl_274xb_f1 = {
|
||||
+ .name = "AW4339U",
|
||||
+ .expected_cpu_id = 0x6328,
|
||||
+ .name = "AW4339U",
|
||||
+ .expected_cpu_id = 0x6328,
|
||||
+
|
||||
+ .has_pci = 1,
|
||||
+ .has_pci = 1,
|
||||
+
|
||||
+ .has_caldata = 1,
|
||||
+ .has_caldata = 1,
|
||||
+ .caldata = {
|
||||
+ {
|
||||
+ .vendor = PCI_VENDOR_ID_ATHEROS,
|
||||
+ .caldata_offset = 0x7d1000,
|
||||
+ .slot = 0,
|
||||
+ .led_pin = -1,
|
||||
+ .led_active_high = 1,
|
||||
+ .vendor = PCI_VENDOR_ID_ATHEROS,
|
||||
+ .caldata_offset = 0x7d1000,
|
||||
+ .slot = 0,
|
||||
+ .led_pin = -1,
|
||||
+ .led_active_high = 1,
|
||||
+ },
|
||||
+ },
|
||||
+
|
||||
+ .has_enetsw = 1,
|
||||
+
|
||||
+ .has_enetsw = 1,
|
||||
+ .enetsw = {
|
||||
+ .used_ports = {
|
||||
+ [0] = {
|
||||
+ .used = 1,
|
||||
+ .used = 1,
|
||||
+ .phy_id = 1,
|
||||
+ .name = "Port 4",
|
||||
+ .name = "Port 4",
|
||||
+ },
|
||||
+ [1] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 2,
|
||||
+ .name = "Port 3",
|
||||
+ .used = 1,
|
||||
+ .phy_id = 2,
|
||||
+ .name = "Port 3",
|
||||
+ },
|
||||
+ [2] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 3,
|
||||
+ .name = "Port 2",
|
||||
+ .used = 1,
|
||||
+ .phy_id = 3,
|
||||
+ .name = "Port 2",
|
||||
+ },
|
||||
+ [3] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 4,
|
||||
+ .name = "Port 1",
|
||||
+ .used = 1,
|
||||
+ .phy_id = 4,
|
||||
+ .name = "Port 1",
|
||||
+ },
|
||||
+ },
|
||||
+ },
|
||||
@ -62,19 +61,19 @@ Subject: [PATCH 70/79] MIPS: BCM63XX: Add board definition for D-Link
|
||||
#endif /* CONFIG_BCM63XX_CPU_6328 */
|
||||
|
||||
/*
|
||||
@@ -953,6 +998,7 @@ static const struct board_info __initcon
|
||||
@@ -923,6 +967,7 @@ static const struct board_info __initcon
|
||||
#ifdef CONFIG_BCM63XX_CPU_6328
|
||||
&board_96328avng,
|
||||
&board_963281TAN,
|
||||
+ &board_dsl_274xb_f1,
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6328 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6338
|
||||
&board_96338gw,
|
||||
@@ -1011,6 +1057,7 @@ static struct of_device_id const bcm963x
|
||||
@@ -981,6 +1026,7 @@ static struct of_device_id const bcm963x
|
||||
#ifdef CONFIG_BCM63XX_CPU_6328
|
||||
{ .compatible = "brcm,bcm963281tan", .data = &board_963281TAN, },
|
||||
{ .compatible = "brcm,bcm96328avng", .data = &board_96328avng, },
|
||||
+ { .compatible = "d-link,dsl-274xb-f1", .data = &board_dsl_274xb_f1, },
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6328 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6338
|
||||
{ .compatible = "brcm,bcm96338gw", .data = &board_96338gw, },
|
||||
|
@ -1,39 +1,38 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -568,6 +568,24 @@ static struct board_info __initdata boar
|
||||
@@ -555,6 +555,23 @@ static struct board_info __initdata boar
|
||||
.has_ohci0 = 1,
|
||||
};
|
||||
|
||||
+/* NetGear DG834G v4 */
|
||||
+static struct board_info __initdata board_96348W3 = {
|
||||
+ .name = "96348W3",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+ .name = "96348W3",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .has_ohci0 = 1,
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .enet1 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+
|
||||
+ .has_ohci0 = 1,
|
||||
+};
|
||||
+
|
||||
static struct board_info __initdata board_96348_D4PW = {
|
||||
.name = "D-4P-W",
|
||||
.expected_cpu_id = 0x6348,
|
||||
@@ -1028,6 +1046,7 @@ static const struct board_info __initcon
|
||||
.name = "D-4P-W",
|
||||
.expected_cpu_id = 0x6348,
|
||||
@@ -997,6 +1014,7 @@ static const struct board_info __initcon
|
||||
&board_ct536_ct5621,
|
||||
&board_96348A_122,
|
||||
&board_CPVA502plus,
|
||||
+ &board_96348W3,
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_BCM63XX_CPU_6348 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6358
|
||||
@@ -1083,6 +1102,7 @@ static struct of_device_id const bcm963x
|
||||
&board_96358vw,
|
||||
@@ -1052,6 +1070,7 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "davolink,dv-201amr", .data = &board_DV201AMR, },
|
||||
{ .compatible = "dynalink,rta1025w", .data = &board_rta1025w_16, },
|
||||
{ .compatible = "netgear,dg834gt-pn", .data = &board_96348gw_10, },
|
||||
|
@ -1,45 +1,45 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -874,6 +874,30 @@ static struct board_info __initdata boar
|
||||
.num_usbh_ports = 2,
|
||||
@@ -853,6 +853,30 @@ static struct board_info __initdata boar
|
||||
},
|
||||
};
|
||||
|
||||
+static struct board_info __initdata board_ct6373_1 = {
|
||||
+ .name = "CT6373-1",
|
||||
+ .expected_cpu_id = 0x6358,
|
||||
+ .name = "CT6373-1",
|
||||
+ .expected_cpu_id = 0x6358,
|
||||
+
|
||||
+ .has_pci = 1,
|
||||
+ .use_fallback_sprom = 1,
|
||||
+ .has_ohci0 = 1,
|
||||
+ .has_ehci0 = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .has_ohci0 = 1,
|
||||
+ .has_ehci0 = 1,
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .has_enet1 = 1,
|
||||
+ .enet1 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+
|
||||
+ .use_fallback_sprom = 1,
|
||||
+ .fallback_sprom = {
|
||||
+ .type = SPROM_BCM4318,
|
||||
+ .pci_bus = 0,
|
||||
+ .pci_dev = 1,
|
||||
+ .type = SPROM_BCM4318,
|
||||
+ .pci_bus = 0,
|
||||
+ .pci_dev = 1,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
static struct board_info __initdata board_HW553 = {
|
||||
.name = "HW553",
|
||||
.expected_cpu_id = 0x6358,
|
||||
@@ -1058,6 +1082,7 @@ static const struct board_info __initcon
|
||||
.name = "HW553",
|
||||
.expected_cpu_id = 0x6358,
|
||||
@@ -1025,6 +1049,7 @@ static const struct board_info __initcon
|
||||
&board_dsl_274xb_rev_c,
|
||||
&board_nb4_ser_r0,
|
||||
&board_nb4_fxc_r1,
|
||||
+ &board_ct6373_1,
|
||||
&board_HW553,
|
||||
&board_spw303v,
|
||||
#endif
|
||||
@@ -1116,6 +1141,7 @@ static struct of_device_id const bcm963x
|
||||
#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
@@ -1084,6 +1109,7 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "alcatel,rg100a", .data = &board_96358vw2, },
|
||||
{ .compatible = "brcm,bcm96358vw", .data = &board_96358vw, },
|
||||
{ .compatible = "brcm,bcm96358vw2", .data = &board_96358vw2, },
|
||||
|
@ -1,48 +1,46 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -937,6 +937,33 @@ static struct board_info __initdata boar
|
||||
.use_internal_phy = 1,
|
||||
@@ -915,6 +915,31 @@ static struct board_info __initdata boar
|
||||
.use_internal_phy = 1,
|
||||
},
|
||||
};
|
||||
+
|
||||
+/* D-Link DVA-G3810BN/TL */
|
||||
+static struct board_info __initdata board_DVAG3810BN = {
|
||||
+ .name = "DVAG3810BN",
|
||||
+ .expected_cpu_id = 0x6358,
|
||||
+ .name = "DVAG3810BN",
|
||||
+ .expected_cpu_id = 0x6358,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .has_enet1 = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .has_pccard = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .has_ohci0 = 1,
|
||||
+ .has_ehci0 = 1,
|
||||
+
|
||||
+ .has_enet0 = 1,
|
||||
+ .enet0 = {
|
||||
+ .has_phy = 1,
|
||||
+ .use_internal_phy = 1,
|
||||
+ .has_phy = 1,
|
||||
+ .use_internal_phy = 1,
|
||||
+ },
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .enet1 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+
|
||||
+
|
||||
+ .has_ohci0 = 1,
|
||||
+ .has_pccard = 1,
|
||||
+ .has_ehci0 = 1,
|
||||
+};
|
||||
#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
|
||||
/*
|
||||
@@ -1085,6 +1112,7 @@ static const struct board_info __initcon
|
||||
@@ -1052,6 +1077,7 @@ static const struct board_info __initcon
|
||||
&board_ct6373_1,
|
||||
&board_HW553,
|
||||
&board_spw303v,
|
||||
+ &board_DVAG3810BN,
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6368
|
||||
@@ -1144,6 +1172,7 @@ static struct of_device_id const bcm963x
|
||||
&board_96368mvwg,
|
||||
@@ -1112,6 +1138,7 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "comtrend,ct-6373", .data = &board_ct6373_1, },
|
||||
{ .compatible = "d-link,dsl-274xb-c2", .data = &board_dsl_274xb_rev_c, },
|
||||
{ .compatible = "d-link,dsl-2650u", .data = &board_96358vw2, },
|
||||
|
@ -1,29 +1,28 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -966,6 +966,32 @@ static struct board_info __initdata boar
|
||||
@@ -942,6 +942,31 @@ static struct board_info __initdata boar
|
||||
};
|
||||
#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
|
||||
+#ifdef CONFIG_BCM63XX_CPU_6362
|
||||
+static struct board_info __initdata board_nb6 = {
|
||||
+ .name = "NB6",
|
||||
+ .expected_cpu_id = 0x6362,
|
||||
+ .name = "NB6",
|
||||
+ .expected_cpu_id = 0x6362,
|
||||
+
|
||||
+ .has_ohci0 = 1,
|
||||
+ .has_ehci0 = 1,
|
||||
+ .num_usbh_ports = 2,
|
||||
+
|
||||
+ .has_enetsw = 1,
|
||||
+ .has_ohci0 = 1,
|
||||
+ .has_ehci0 = 1,
|
||||
+ .num_usbh_ports = 2,
|
||||
+
|
||||
+ .has_enetsw = 1,
|
||||
+ .enetsw = {
|
||||
+ .used_ports = {
|
||||
+ [4] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 0xff,
|
||||
+ .used = 1,
|
||||
+ .phy_id = 0xff,
|
||||
+ .bypass_link = 1,
|
||||
+ .force_speed = 1000,
|
||||
+ .force_duplex_full = 1,
|
||||
+ .name = "RGMII",
|
||||
+ .name = "RGMII",
|
||||
+ },
|
||||
+ },
|
||||
+ },
|
||||
@ -33,24 +32,21 @@
|
||||
/*
|
||||
* known 6368 boards
|
||||
*/
|
||||
@@ -1115,6 +1141,10 @@ static const struct board_info __initcon
|
||||
@@ -1079,6 +1104,9 @@ static const struct board_info __initcon
|
||||
&board_spw303v,
|
||||
&board_DVAG3810BN,
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
+#ifdef CONFIG_BCM63XX_CPU_6362
|
||||
+ &board_nb6,
|
||||
+#endif
|
||||
+
|
||||
+#endif /* CONFIG_BCM63XX_CPU_6362 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6368
|
||||
&board_96368mvwg,
|
||||
&board_96368mvngr,
|
||||
@@ -1183,6 +1213,9 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "t-com,speedport-w-303v", .data = &board_spw303v, },
|
||||
@@ -1150,6 +1178,7 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "telsey,cpva642", .data = &board_CPVA642, },
|
||||
#endif
|
||||
+#ifdef CONFIG_BCM63XX_CPU_6362
|
||||
#endif /* CONFIG_BCM63XX_CPU_6358 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6362
|
||||
+ { .compatible = "sfr,neufbox-6-sercomm-r0", .data = &board_nb6, },
|
||||
+#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6362 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6368
|
||||
{ .compatible = "brcm,bcm96368mvngr", .data = &board_96368mvngr, },
|
||||
{ .compatible = "brcm,bcm96368mvwg", .data = &board_96368mvwg, },
|
||||
|
@ -1,29 +1,29 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -501,6 +501,22 @@ static struct board_info __initdata boar
|
||||
@@ -489,6 +489,22 @@ static struct board_info __initdata boar
|
||||
.has_ehci0 = 1,
|
||||
};
|
||||
|
||||
+static struct board_info __initdata board_FAST2604 = {
|
||||
+ .name = "F@ST2604",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+ .name = "F@ST2604",
|
||||
+ .expected_cpu_id = 0x6348,
|
||||
+
|
||||
+ .has_pci = 1,
|
||||
+ .has_ohci0 = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .has_ohci0 = 1,
|
||||
+
|
||||
+ .has_enet1 = 1,
|
||||
+ .has_enet1 = 1,
|
||||
+ .enet1 = {
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ .has_phy = 1,
|
||||
+ .phy_id = 0,
|
||||
+ .force_speed_100 = 1,
|
||||
+ .force_duplex_full = 1,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
static struct board_info __initdata board_rta1025w_16 = {
|
||||
.name = "RTA1025W_16",
|
||||
.expected_cpu_id = 0x6348,
|
||||
@@ -1112,6 +1128,7 @@ static const struct board_info __initcon
|
||||
@@ -1077,6 +1093,7 @@ static const struct board_info __initcon
|
||||
&board_96348gw_10,
|
||||
&board_96348gw_11,
|
||||
&board_FAST2404,
|
||||
@ -31,7 +31,7 @@
|
||||
&board_DV201AMR,
|
||||
&board_96348gw_a,
|
||||
&board_rta1025w_16,
|
||||
@@ -1187,6 +1204,7 @@ static struct of_device_id const bcm963x
|
||||
@@ -1151,6 +1168,7 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "netgear,dg834gt-pn", .data = &board_96348gw_10, },
|
||||
{ .compatible = "netgear,dg834g-v4", .data = &board_96348W3, },
|
||||
{ .compatible = "sagem,fast-2404", .data = &board_FAST2404, },
|
||||
|
@ -1,66 +1,66 @@
|
||||
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
||||
@@ -127,6 +127,49 @@ static struct board_info __initdata boar
|
||||
@@ -125,6 +125,49 @@ static struct board_info __initdata boar
|
||||
},
|
||||
};
|
||||
|
||||
+static struct board_info __initdata board_A4001N1 = {
|
||||
+ .name = "963281T_TEF",
|
||||
+ .expected_cpu_id = 0x6328,
|
||||
+ .name = "963281T_TEF",
|
||||
+ .expected_cpu_id = 0x6328,
|
||||
+
|
||||
+ .has_pci = 1,
|
||||
+ .use_fallback_sprom = 1,
|
||||
+ .has_ohci0 = 1,
|
||||
+ .has_ehci0 = 1,
|
||||
+ .num_usbh_ports = 1,
|
||||
+ .has_enetsw = 1,
|
||||
+ .has_pci = 1,
|
||||
+ .has_ohci0 = 1,
|
||||
+ .has_ehci0 = 1,
|
||||
+ .num_usbh_ports = 1,
|
||||
+
|
||||
+ .has_enetsw = 1,
|
||||
+ .enetsw = {
|
||||
+ .used_ports = {
|
||||
+ [0] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 1,
|
||||
+ .name = "Port 1",
|
||||
+ .used = 1,
|
||||
+ .phy_id = 1,
|
||||
+ .name = "Port 1",
|
||||
+ },
|
||||
+ [1] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 2,
|
||||
+ .name = "Port 2",
|
||||
+ .used = 1,
|
||||
+ .phy_id = 2,
|
||||
+ .name = "Port 2",
|
||||
+ },
|
||||
+ [2] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 3,
|
||||
+ .name = "Port 3",
|
||||
+ .used = 1,
|
||||
+ .phy_id = 3,
|
||||
+ .name = "Port 3",
|
||||
+ },
|
||||
+ [3] = {
|
||||
+ .used = 1,
|
||||
+ .phy_id = 4,
|
||||
+ .name = "Port 4",
|
||||
+ .used = 1,
|
||||
+ .phy_id = 4,
|
||||
+ .name = "Port 4",
|
||||
+ },
|
||||
+ },
|
||||
+ },
|
||||
+
|
||||
+ .use_fallback_sprom = 1,
|
||||
+ .fallback_sprom = {
|
||||
+ .type = SPROM_BCM43225,
|
||||
+ .pci_bus = 1,
|
||||
+ .pci_dev = 0,
|
||||
+ .type = SPROM_BCM43225,
|
||||
+ .pci_bus = 1,
|
||||
+ .pci_dev = 0,
|
||||
+ },
|
||||
+};
|
||||
+
|
||||
static struct board_info __initdata board_dsl_274xb_f1 = {
|
||||
.name = "AW4339U",
|
||||
.expected_cpu_id = 0x6328,
|
||||
@@ -1109,6 +1152,7 @@ static const struct board_info __initcon
|
||||
.name = "AW4339U",
|
||||
.expected_cpu_id = 0x6328,
|
||||
@@ -1074,6 +1117,7 @@ static const struct board_info __initcon
|
||||
#ifdef CONFIG_BCM63XX_CPU_6328
|
||||
&board_96328avng,
|
||||
&board_963281TAN,
|
||||
+ &board_A4001N1,
|
||||
&board_dsl_274xb_f1,
|
||||
#endif
|
||||
#endif /* CONFIG_BCM63XX_CPU_6328 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6338
|
||||
@@ -1174,6 +1218,7 @@ static struct of_device_id const bcm963x
|
||||
{ .compatible = "netgear,cvg834g", .data = &board_cvg834g, },
|
||||
#endif
|
||||
@@ -1138,6 +1182,7 @@ static struct of_device_id const bcm963x
|
||||
#ifdef CONFIG_BCM63XX_CPU_6318
|
||||
#endif /* CONFIG_BCM63XX_CPU_6318 */
|
||||
#ifdef CONFIG_BCM63XX_CPU_6328
|
||||
+ { .compatible = "adb,a4001n1", .data = &board_A4001N1, },
|
||||
{ .compatible = "brcm,bcm963281tan", .data = &board_963281TAN, },
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user