rpms/kernel/devel kernel.spec, 1.470, 1.471 linux-2.6-wireless-pending.patch, 1.31, 1.32

John W. Linville (linville) fedora-extras-commits at redhat.com
Mon Mar 3 22:03:29 UTC 2008


Author: linville

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv1010

Modified Files:
	kernel.spec linux-2.6-wireless-pending.patch 
Log Message:
latest round of wireless updates


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.470
retrieving revision 1.471
diff -u -r1.470 -r1.471
--- kernel.spec	3 Mar 2008 21:12:45 -0000	1.470
+++ kernel.spec	3 Mar 2008 22:02:24 -0000	1.471
@@ -1744,6 +1744,25 @@
 %kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL} -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf %{with_xen} xen
 
 %changelog
+* Mon Mar 03 2008 John W. Linville <linville at redhat.com>
+- ssb: Add CHIPCO IRQ access functions
+- p54: print unknown eeprom fields
+- rt2x00: Check for 5GHz band in link tuner
+- rt2x00: Release rt2x00 2.1.3
+- mac80211: rework TX filtered frame code
+- mac80211: atomically check whether STA exists already
+- mac80211: Disallow concurrent IBSS/STA mode interfaces
+- mac80211: fix debugfs_sta print_mac() warning
+- mac80211: fix IBSS code
+- adm8211: fix cfg80211 band API conversion
+- mac80211: clarify use of TX status/RX callbacks
+- mac80211: safely free beacon in ieee80211_if_reinit
+- mac80211: remove STA infos last_ack stuff
+- mac80211: split ieee80211_key_alloc/free
+- mac80211: fix key replacing, hw accel
+- b43legacy: Fix nondebug build
+- ath5k: fix all endian issues reported by sparse
+
 * Mon Mar 03 2008 Jarod Wilson <jwilson at redhat.com>
 - Rebase firewire to latest linux1394-2.6.git tree
 - firewire-sbp2: permit drives to suspend (#243210)

linux-2.6-wireless-pending.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.31 -r 1.32 linux-2.6-wireless-pending.patch
Index: linux-2.6-wireless-pending.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-wireless-pending.patch,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- linux-2.6-wireless-pending.patch	21 Feb 2008 19:33:48 -0000	1.31
+++ linux-2.6-wireless-pending.patch	3 Mar 2008 22:02:24 -0000	1.32
@@ -1,3 +1,260 @@
+commit e4861829072c61883114c64a3af61f305a789ff0
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Wed Feb 27 13:39:00 2008 +0100
+
+    mac80211: fix key replacing, hw accel
+    
+    Even though I thought about it a lot and had also tested it, some
+    of my recent changes in the key code broke replacing keys, making
+    the kernel oops because a key is removed from a list while not on
+    it.
+    
+    This patch fixes that using the list as an indication whether or
+    not the key is on it (an empty list means it's not on any list.)
+    
+    Also, this patch fixes hw accel enabling, the check for not doing
+    hw accel when the interface is down was lost and is restored by
+    this.
+    
+    Additionally, move adding the key to the list into the function
+    __ieee80211_key_replace() for more consistency.
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit db4d1169d0b893bfb7923b6526748fe2c5a7373f
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Mon Feb 25 16:27:45 2008 +0100
+
+    mac80211: split ieee80211_key_alloc/free
+    
+    In order to RCU-ify sta_info, we need to be able to allocate
+    a key without linking it to an sdata/sta structure (because
+    allocation cannot be done in an rcu critical section). This
+    patch splits up ieee80211_key_alloc() and updates all users
+    appropriately.
+    
+    While at it, this patch fixes a number of race conditions
+    such as finally making key replacement atomic, unfortunately
+    at the expense of more complex code.
+    
+    Note that this patch documents /existing/ bugs with sta info
+    and key interaction, there is currently a race condition
+    when a sta info is freed without holding the RTNL. This will
+    finally be fixed by a followup patch.
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 6f48422a29714ed92f6136d9e7d3ff39c75607d7
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Mon Feb 25 16:27:44 2008 +0100
+
+    mac80211: remove STA infos last_ack stuff
+    
+    These things aren't used and the only possible use is within
+    rate control algorithms, however those can, if they need it,
+    keep track of it in their private data. last_ack_ms isn't
+    even updated so completely useless.
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit e6a5ddf20886206caf1c4a2431f6ff01198ab0f7
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Mon Feb 25 16:27:42 2008 +0100
+
+    mac80211: safely free beacon in ieee80211_if_reinit
+    
+    If ieee80211_if_reinit() is called from ieee80211_unregister_hw()
+    then it is possible that the driver will still request a beacon
+    (it is allowed to until ieee80211_unregister_hw() has returned.)
+    This means we need to use an RCU-protected write to the beacon
+    information even in this function.
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 2485f7105f20f85c2dbebc67be6b2cb97175fa7e
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Mon Feb 25 16:27:41 2008 +0100
+
+    mac80211: clarify use of TX status/RX callbacks
+    
+    This patch clarifies the use of the irqsafe vs. non-irq-safe
+    functions and their respective locking requirements.
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 38c07b430b50172b803fe4c7f76cba580ba9931f
+Author: Pavel Roskin <proski at gnu.org>
+Date:   Tue Feb 26 17:59:14 2008 -0500
+
+    ath5k: fix all endian issues reported by sparse
+    
+    Changes-licensed-under: ISC
+    Signed-off-by: Pavel Roskin <proski at gnu.org>
+    Acked-by: Luis R. Rodriguez <mcgrof at winlab.rutgers.edu>
+    Acked-by: Nick Kossifidis <mickflemm at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit e6084239d39a10bac1186611fe7c523cea92c9ec
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Mon Feb 25 23:22:13 2008 +0100
+
+    rt2x00: Release rt2x00 2.1.3
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 1497074ad79009f8fb465d795f9e0d2a428b7fa2
+Author: Ivo van Doorn <ivdoorn at gmail.com>
+Date:   Mon Feb 25 23:20:33 2008 +0100
+
+    rt2x00: Check for 5GHz band in link tuner
+    
+    Fix a typo in the link tuner where accidently the
+    2GHz band was checked instead of the 5GHz band.
+    This forced the link tuner to work in an invalid
+    range for the currently active band.
+    
+    Signed-off-by: Ivo van Doorn <IvDoorn at gmail.com>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 58e307398317ab55470547a7d72859c89edd187d
+Author: Florian Fainelli <florian.fainelli at telecomint.eu>
+Date:   Mon Feb 25 17:51:53 2008 +0100
+
+    p54: print unknown eeprom fields
+    
+    This patch allows p54common to print the
+    uknown EEPROM fields, which can help
+    when debugging/testing devices.
+    
+    Signed-off-by: Florian Fainelli <florian.fainelli at telecomint.eu>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 9a89c839f79395426b84cf6da9d56773402b4c0e
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Mon Feb 25 11:12:18 2008 +0100
+
+    adm8211: fix cfg80211 band API conversion
+    
+    Insert a missing band assignment.
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 8f300ae5b819f7655197925cdb1954edfd906a87
+Author: Michael Buesch <mb at bu3sch.de>
+Date:   Sun Feb 24 14:42:29 2008 +0100
+
+    b43legacy: Fix nondebug build
+    
+    Fix a typo.
+    
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Acked-by: Stefano Brivio <stefano.brivio at polimi.it>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit 28de57d1a9eb7e67badb731297197fcbef0cc19e
+Author: Aurelien Jarno <aurelien at aurel32.net>
+Date:   Fri Feb 22 16:14:58 2008 +0100
+
+    ssb: Add CHIPCO IRQ access functions
+    
+    This patch adds functions to setup and read the CHIPCO IRQ.
+    
+    Signed-off-by: Aurelien Jarno <aurelien at aurel32.net>
+    Signed-off-by: Michael Buesch <mb at bu3sch.de>
+    Signed-off-by: John W. Linville <linville at tuxdriver.com>
+
+commit fba4a1e63723b5ef16c21a90f06520ae37c5da98
+Author: Johannes Berg <johannes at sipsolutions.net>
+Date:   Thu Feb 21 11:08:33 2008 +0100
+
+    mac80211: fix IBSS code
+    
+    This patch fixes two errors introduced by
+    
+        commit 19d35612f3cd7f60dd9174c0100584e21f5a1025
+        Author: Bruno Randolf <bruno at thinktube.com>
+        Date:   Mon Feb 18 11:21:36 2008 +0900
+    
+            mac80211: enable IBSS merging
+    
+    The first error is an endianness problem that sparse found and
+    the second is a build failure when CONFIG_MAC80211_IBSS_DEBUG
+    is not set.
+    
+    Signed-off-by: Johannes Berg <johannes at sipsolutions.net>
[...5109 lines suppressed...]
  		 * its 14 bytes. Note we use the control rate and not the
-@@ -533,7 +532,7 @@ static inline void ath5k_hw_write_rate_d
+ 		 * actual rate for this rate. See mac80211 tx.c
  		 * ieee80211_duration() for a brief description of
  		 * what rate we should choose to TX ACKs. */
- 		tx_time = ieee80211_generic_frame_duration(sc->hw,
+-		tx_time = ieee80211_generic_frame_duration(sc->hw,
 -			sc->vif, 10, control_rate->rate_kbps/100);
-+			sc->vif, 10, &srate);
++		tx_time = le16_to_cpu(ieee80211_generic_frame_duration(sc->hw,
++							sc->vif, 10, &srate));
  
  		ath5k_hw_reg_write(ah, tx_time, reg);
  
@@ -32056,8 +33415,8 @@
  
  /****************\
 diff -up linux-2.6.24.noarch/drivers/net/wireless/ath5k/initvals.c.orig linux-2.6.24.noarch/drivers/net/wireless/ath5k/initvals.c
---- linux-2.6.24.noarch/drivers/net/wireless/ath5k/initvals.c.orig	2008-02-21 14:01:26.000000000 -0500
-+++ linux-2.6.24.noarch/drivers/net/wireless/ath5k/initvals.c	2008-02-21 14:02:20.000000000 -0500
+--- linux-2.6.24.noarch/drivers/net/wireless/ath5k/initvals.c.orig	2008-03-03 16:42:46.000000000 -0500
++++ linux-2.6.24.noarch/drivers/net/wireless/ath5k/initvals.c	2008-03-03 16:46:20.000000000 -0500
 @@ -1317,8 +1317,10 @@ int ath5k_hw_write_initvals(struct ath5k
  	/* For AR5211 */
  	} else if (ah->ah_version == AR5K_AR5211) {
@@ -32072,8 +33431,8 @@
  		}
  
 diff -up /dev/null linux-2.6.24.noarch/drivers/net/wireless/ath5k/Kconfig
---- /dev/null	2008-02-21 08:21:48.545426467 -0500
-+++ linux-2.6.24.noarch/drivers/net/wireless/ath5k/Kconfig	2008-02-21 14:02:20.000000000 -0500
+--- /dev/null	2008-03-03 08:19:02.806638585 -0500
++++ linux-2.6.24.noarch/drivers/net/wireless/ath5k/Kconfig	2008-03-03 16:46:20.000000000 -0500
 @@ -0,0 +1,37 @@
 +config ATH5K
 +	tristate "Atheros 5xxx wireless cards support"
@@ -32113,8 +33472,8 @@
 +	  modprobe ath5k debug=0x00000400
 +
 diff -up linux-2.6.24.noarch/drivers/net/wireless/ath5k/base.c.orig linux-2.6.24.noarch/drivers/net/wireless/ath5k/base.c
---- linux-2.6.24.noarch/drivers/net/wireless/ath5k/base.c.orig	2008-02-21 14:01:26.000000000 -0500
-+++ linux-2.6.24.noarch/drivers/net/wireless/ath5k/base.c	2008-02-21 14:02:20.000000000 -0500
+--- linux-2.6.24.noarch/drivers/net/wireless/ath5k/base.c.orig	2008-03-03 16:42:46.000000000 -0500
++++ linux-2.6.24.noarch/drivers/net/wireless/ath5k/base.c	2008-03-03 16:47:32.000000000 -0500
 @@ -80,7 +80,7 @@ MODULE_AUTHOR("Nick Kossifidis");
  MODULE_DESCRIPTION("Support for 5xxx series of Atheros 802.11 wireless LAN cards.");
  MODULE_SUPPORTED_DEVICE("Atheros 5xxx WLAN cards");
@@ -32641,6 +34000,30 @@
  	if (ret)
  		goto err_unmap;
  
+@@ -1660,11 +1717,11 @@ ath5k_check_ibss_hw_merge(struct ath5k_s
+ 	u32 hw_tu;
+ 	struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)skb->data;
+ 
+-	if ((mgmt->frame_control & IEEE80211_FCTL_FTYPE) ==
++	if ((le16_to_cpu(mgmt->frame_control) & IEEE80211_FCTL_FTYPE) ==
+ 		IEEE80211_FTYPE_MGMT &&
+-	    (mgmt->frame_control & IEEE80211_FCTL_STYPE) ==
++	    (le16_to_cpu(mgmt->frame_control) & IEEE80211_FCTL_STYPE) ==
+ 		IEEE80211_STYPE_BEACON &&
+-	    mgmt->u.beacon.capab_info & WLAN_CAPABILITY_IBSS &&
++	    le16_to_cpu(mgmt->u.beacon.capab_info) & WLAN_CAPABILITY_IBSS &&
+ 	    memcmp(mgmt->bssid, sc->ah->ah_bssid, ETH_ALEN) == 0) {
+ 		/*
+ 		 * Received an IBSS beacon with the same BSSID. Hardware might
+@@ -1673,7 +1730,7 @@ ath5k_check_ibss_hw_merge(struct ath5k_s
+ 		hw_tu = TSF_TO_TU(ath5k_hw_get_tsf64(sc->ah));
+ 		if (hw_tu >= sc->nexttbtt) {
+ 			ath5k_beacon_update_timers(sc,
+-				mgmt->u.beacon.timestamp);
++				le64_to_cpu(mgmt->u.beacon.timestamp));
+ 			ATH5K_DBG_UNLIMIT(sc, ATH5K_DEBUG_BEACON,
+ 				"detected HW merge from received beacon\n");
+ 		}
 @@ -1791,9 +1848,8 @@ accept:
  		rxs.mactime = ath5k_extend_tsf(sc->ah, ds->ds_rxstat.rs_tstamp);
  		rxs.flag |= RX_FLAG_TSFT;
@@ -32760,8 +34143,8 @@
  	case ALG_CCMP:
  		return -EOPNOTSUPP;
 diff -up linux-2.6.24.noarch/drivers/net/wireless/ath5k/debug.c.orig linux-2.6.24.noarch/drivers/net/wireless/ath5k/debug.c
---- linux-2.6.24.noarch/drivers/net/wireless/ath5k/debug.c.orig	2008-02-21 14:01:26.000000000 -0500
-+++ linux-2.6.24.noarch/drivers/net/wireless/ath5k/debug.c	2008-02-21 14:02:20.000000000 -0500
+--- linux-2.6.24.noarch/drivers/net/wireless/ath5k/debug.c.orig	2008-03-03 16:42:46.000000000 -0500
++++ linux-2.6.24.noarch/drivers/net/wireless/ath5k/debug.c	2008-03-03 16:46:20.000000000 -0500
 @@ -65,7 +65,7 @@ static unsigned int ath5k_debug;
  module_param_named(debug, ath5k_debug, uint, 0);
  
@@ -32851,8 +34234,8 @@
 -#endif /* if ATH5K_DEBUG */
 +#endif /* ifdef CONFIG_ATH5K_DEBUG */
 diff -up linux-2.6.24.noarch/drivers/net/wireless/ath5k/base.h.orig linux-2.6.24.noarch/drivers/net/wireless/ath5k/base.h
---- linux-2.6.24.noarch/drivers/net/wireless/ath5k/base.h.orig	2008-02-21 14:01:26.000000000 -0500
-+++ linux-2.6.24.noarch/drivers/net/wireless/ath5k/base.h	2008-02-21 14:02:20.000000000 -0500
+--- linux-2.6.24.noarch/drivers/net/wireless/ath5k/base.h.orig	2008-03-03 16:42:46.000000000 -0500
++++ linux-2.6.24.noarch/drivers/net/wireless/ath5k/base.h	2008-03-03 16:46:20.000000000 -0500
 @@ -83,7 +83,7 @@ struct ath5k_txq {
  #if CHAN_DEBUG
  #define ATH_CHAN_MAX	(26+26+26+200+200)
@@ -32898,8 +34281,8 @@
  
  #define ath5k_hw_hasbssidmask(_ah) \
 diff -up linux-2.6.24.noarch/drivers/net/wireless/rtl8180_max2820.c.orig linux-2.6.24.noarch/drivers/net/wireless/rtl8180_max2820.c
---- linux-2.6.24.noarch/drivers/net/wireless/rtl8180_max2820.c.orig	2008-02-21 14:01:26.000000000 -0500
-+++ linux-2.6.24.noarch/drivers/net/wireless/rtl8180_max2820.c	2008-02-21 14:02:20.000000000 -0500
+--- linux-2.6.24.noarch/drivers/net/wireless/rtl8180_max2820.c.orig	2008-03-03 16:42:47.000000000 -0500
++++ linux-2.6.24.noarch/drivers/net/wireless/rtl8180_max2820.c	2008-03-03 16:46:20.000000000 -0500
 @@ -78,8 +78,9 @@ static void max2820_rf_set_channel(struc
  				   struct ieee80211_conf *conf)
  {
@@ -32913,8 +34296,8 @@
  
  	/* While philips SA2400 drive the PA bias from
 diff -up linux-2.6.24.noarch/drivers/net/wireless/adm8211.c.orig linux-2.6.24.noarch/drivers/net/wireless/adm8211.c
---- linux-2.6.24.noarch/drivers/net/wireless/adm8211.c.orig	2008-02-21 14:01:26.000000000 -0500
-+++ linux-2.6.24.noarch/drivers/net/wireless/adm8211.c	2008-02-21 14:05:08.000000000 -0500
+--- linux-2.6.24.noarch/drivers/net/wireless/adm8211.c.orig	2008-03-03 16:42:46.000000000 -0500
++++ linux-2.6.24.noarch/drivers/net/wireless/adm8211.c	2008-03-03 16:47:32.000000000 -0500
 @@ -48,6 +48,32 @@ static struct pci_device_id adm8211_pci_
  	{ 0 }
  };
@@ -33066,25 +34449,26 @@
  	dev->queues = 1; /* ADM8211C supports more, maybe ADM8211B too */
  
  	priv->retry_limit = 3;
-@@ -1917,14 +1930,7 @@ static int __devinit adm8211_probe(struc
+@@ -1917,14 +1930,9 @@ static int __devinit adm8211_probe(struc
  		goto err_free_desc;
  	}
  
 -	priv->channel = priv->modes[0].channels[0].chan;
--
++	priv->channel = 1;
+ 
 -	err = ieee80211_register_hwmode(dev, &priv->modes[0]);
 -	if (err) {
 -		printk(KERN_ERR "%s (adm8211): Can't register hwmode\n",
 -		       pci_name(pdev));
 -		goto err_free_desc;
 -	}
-+	priv->channel = 1;
++	dev->wiphy->bands[IEEE80211_BAND_2GHZ] = &priv->band;
  
  	err = ieee80211_register_hw(dev);
  	if (err) {
 diff -up linux-2.6.24.noarch/drivers/ssb/pcmcia.c.orig linux-2.6.24.noarch/drivers/ssb/pcmcia.c
---- linux-2.6.24.noarch/drivers/ssb/pcmcia.c.orig	2008-02-21 13:44:10.000000000 -0500
-+++ linux-2.6.24.noarch/drivers/ssb/pcmcia.c	2008-02-21 14:05:08.000000000 -0500
+--- linux-2.6.24.noarch/drivers/ssb/pcmcia.c.orig	2008-03-03 16:42:48.000000000 -0500
++++ linux-2.6.24.noarch/drivers/ssb/pcmcia.c	2008-03-03 16:46:20.000000000 -0500
 @@ -172,6 +172,22 @@ static int select_core_and_segment(struc
  	return 0;
  }
@@ -33141,8 +34525,8 @@
  	.write32	= ssb_pcmcia_write32,
  };
 diff -up linux-2.6.24.noarch/drivers/ssb/main.c.orig linux-2.6.24.noarch/drivers/ssb/main.c
---- linux-2.6.24.noarch/drivers/ssb/main.c.orig	2008-02-21 14:00:25.000000000 -0500
-+++ linux-2.6.24.noarch/drivers/ssb/main.c	2008-02-21 14:05:08.000000000 -0500
+--- linux-2.6.24.noarch/drivers/ssb/main.c.orig	2008-03-03 16:42:48.000000000 -0500
++++ linux-2.6.24.noarch/drivers/ssb/main.c	2008-03-03 16:46:20.000000000 -0500
 @@ -505,6 +505,14 @@ error:
  	return err;
  }
@@ -33185,8 +34569,8 @@
  	.write32	= ssb_ssb_write32,
  };
 diff -up linux-2.6.24.noarch/drivers/ssb/pci.c.orig linux-2.6.24.noarch/drivers/ssb/pci.c
---- linux-2.6.24.noarch/drivers/ssb/pci.c.orig	2008-02-21 13:44:10.000000000 -0500
-+++ linux-2.6.24.noarch/drivers/ssb/pci.c	2008-02-21 14:05:08.000000000 -0500
+--- linux-2.6.24.noarch/drivers/ssb/pci.c.orig	2008-03-03 16:42:48.000000000 -0500
++++ linux-2.6.24.noarch/drivers/ssb/pci.c	2008-03-03 16:46:20.000000000 -0500
 @@ -572,6 +572,19 @@ static inline int ssb_pci_assert_buspowe
  }
  #endif /* DEBUG */
@@ -33238,3 +34622,23 @@
  	.write16	= ssb_pci_write16,
  	.write32	= ssb_pci_write32,
  };
+diff -up linux-2.6.24.noarch/drivers/ssb/driver_chipcommon.c.orig linux-2.6.24.noarch/drivers/ssb/driver_chipcommon.c
+--- linux-2.6.24.noarch/drivers/ssb/driver_chipcommon.c.orig	2008-03-03 16:42:48.000000000 -0500
++++ linux-2.6.24.noarch/drivers/ssb/driver_chipcommon.c	2008-03-03 16:47:32.000000000 -0500
+@@ -353,6 +353,16 @@ void ssb_chipco_watchdog_timer_set(struc
+ 	chipco_write32(cc, SSB_CHIPCO_WATCHDOG, ticks);
+ }
+ 
++void ssb_chipco_irq_mask(struct ssb_chipcommon *cc, u32 mask, u32 value)
++{
++	chipco_write32_masked(cc, SSB_CHIPCO_IRQMASK, mask, value);
++}
++
++u32 ssb_chipco_irq_status(struct ssb_chipcommon *cc, u32 mask)
++{
++	return chipco_read32(cc, SSB_CHIPCO_IRQSTAT) & mask;
++}
++
+ u32 ssb_chipco_gpio_in(struct ssb_chipcommon *cc, u32 mask)
+ {
+ 	return chipco_read32(cc, SSB_CHIPCO_GPIOIN) & mask;




More information about the fedora-extras-commits mailing list