aboutsummaryrefslogtreecommitdiffstats
path: root/package/libtool/Makefile
blob: e5d11728e7d3c300a9cb61851a6d058872cee827 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 
# Copyright (C) 2006 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

PKG_NAME:=libtool
PKG_VERSION:=1.5.26
PKG_RELEASE:=1

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@GNU/libtool
PKG_MD5SUM:=aa9c5107f3ec9ef4200eb6556f3b3c29

HOST_PATCH_DIR=/dev/null

PKG_BUILD_DEPENDS:=libtool/host

include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk

CONFIGURE_PREFIX=$(STAGING_DIR)/host
export GLOBAL_LIBDIR=$(STAGING_DIR)/usr/lib

define Package/libltdl
  SECTION:=libs
  CATEGORY:=Libraries
  TITLE:=A generic dynamic object loading library
  URL:=http://www.gnu.org/software/libtool/
endef

define Build/InstallDev
	$(MAKE) -C $(PKG_BUILD_DIR) \
		bindir="$(2)/bin" \
		datadir="$(2)/share" \
		prefix="$(2)" \
		exec_prefix="$(2)" \
		install
	$(INSTALL_DIR) $(1)/usr/lib $(1)/usr/include
	mv $(2)/lib/* $(1)/usr/lib/
	mv $(2)/include/* $(1)/usr/include/
	$(SED) 's,\(hardcode_into_libs\)=yes,\1=no,g' $(2)/bin/libtool
	$(CP) $(2)/bin/libtool $(2)/bin/libtool-ucxx
	$(SED) 's,-lstdc++,-luClibc++,g' $(2)/bin/libtool-ucxx
endef

define Package/libltdl/install
	$(INSTALL_DIR) $(1)/usr/lib
	$(CP) $(PKG_BUILD_DIR)/libltdl/.libs/libltdl.so.* $(1)/usr/lib/
endef

$(eval $(call HostBuild))
$(eval $(call BuildPackage,libltdl))
) - phy->ops->set_rx_antenna(dev, antenna); + phy->ops->set_rx_antenna(dev, dev->rx_antenna); if (wl->radio_enabled != phy->radio_on) { if (wl->radio_enabled) { @@ -5189,6 +5186,47 @@ static int b43_op_get_survey(struct ieee return 0; } +static int b43_op_set_antenna(struct ieee80211_hw *hw, u32 tx_ant, u32 rx_ant) +{ + struct b43_wl *wl = hw_to_b43_wl(hw); + struct b43_wldev *dev = wl->current_dev; + + if (tx_ant == 1 && rx_ant == 1) { + dev->tx_antenna = B43_ANTENNA0; + dev->rx_antenna = B43_ANTENNA0; + } + else if (tx_ant == 2 && rx_ant == 2) { + dev->tx_antenna = B43_ANTENNA1; + dev->rx_antenna = B43_ANTENNA1; + } + else if ((tx_ant & 3) == 3 && (rx_ant & 3) == 3) { + dev->tx_antenna = B43_ANTENNA_DEFAULT; + dev->rx_antenna = B43_ANTENNA_DEFAULT; + } + else { + return -EINVAL; + } + + return 0; +} + + +static int b43_op_get_antenna(struct ieee80211_hw *hw, u32 *tx_ant, u32 *rx_ant) +{ + struct b43_wl *wl = hw_to_b43_wl(hw); + struct b43_wldev *dev = wl->current_dev; + + switch (dev->tx_antenna) { + case B43_ANTENNA0: + *tx_ant = 1; *rx_ant = 1; break; + case B43_ANTENNA1: + *tx_ant = 2; *rx_ant = 2; break; + case B43_ANTENNA_DEFAULT: + *tx_ant = 3; *rx_ant = 3; break; + } + return 0; +} + static const struct ieee80211_ops b43_hw_ops = { .tx = b43_op_tx, .conf_tx = b43_op_conf_tx, @@ -5210,6 +5248,8 @@ static const struct ieee80211_ops b43_hw .sw_scan_complete = b43_op_sw_scan_complete_notifier, .get_survey = b43_op_get_survey, .rfkill_poll = b43_rfkill_poll, + .set_antenna = b43_op_set_antenna, + .get_antenna = b43_op_get_antenna, }; /* Hard-reset the chip. Do not call this directly. @@ -5513,6 +5553,8 @@ static int b43_one_core_attach(struct b4 if (!wldev) goto out; + wldev->rx_antenna = B43_ANTENNA_DEFAULT; + wldev->tx_antenna = B43_ANTENNA_DEFAULT; wldev->use_pio = b43_modparam_pio; wldev->dev = dev; wldev->wl = wl; @@ -5605,6 +5647,9 @@ static struct b43_wl *b43_wireless_init( hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN; + hw->wiphy->available_antennas_rx = 0x3; + hw->wiphy->available_antennas_tx = 0x3; + wl->hw_registred = false; hw->max_rates = 2; SET_IEEE80211_DEV(hw, dev->dev); --- a/drivers/net/wireless/broadcom/b43/b43.h +++ b/drivers/net/wireless/broadcom/b43/b43.h @@ -840,6 +840,8 @@ struct b43_wldev { bool hwcrypto_enabled; /* TRUE, if HW crypto acceleration is enabled. */ bool use_pio; /* TRUE if next init should use PIO */ int gpiomask; /* GPIO LED mask as a module parameter */ + int rx_antenna; /* Used RX antenna (B43_ANTENNAxxx) */ + int tx_antenna; /* Used TX antenna (B43_ANTENNAxxx) */ /* PHY/Radio device. */ struct b43_phy phy;