]> pilppa.org Git - linux-2.6-omap-h63xx.git/log
linux-2.6-omap-h63xx.git
17 years agoiwlwifi: LED use correctly blink table
Tomas Winkler [Fri, 11 Jul 2008 03:53:37 +0000 (11:53 +0800)]
iwlwifi: LED use correctly blink table

This patch makes correct usage of the LED blink table.

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoiwlwifi: fix LED stall
Tomas Winkler [Fri, 11 Jul 2008 03:53:36 +0000 (11:53 +0800)]
iwlwifi: fix LED stall

This patch fixes LED stall. last_blink_time was updated only if LED command
was sent, causing wrong computation of the througput.
Some code cleanup comes with this patch as well

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoiwlwifi: differentiate 4965 and 5000 hw ampdu queues number
Tomas Winkler [Fri, 11 Jul 2008 03:53:35 +0000 (11:53 +0800)]
iwlwifi: differentiate 4965 and 5000 hw ampdu queues number

This patch asks to allocate the correct amount of sw queues according
to hw ampdu queues number.

Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoiwlwifi: make iwl4965_mac_conf_tx in atomic context
Emmanuel Grumbach [Fri, 11 Jul 2008 03:53:34 +0000 (11:53 +0800)]
iwlwifi: make iwl4965_mac_conf_tx in atomic context

This patch fixes iwl4965_mac_conf_tx. A mutex was taken in atomic context
leading to Oops. This patch removes the mutex and extends the hold
priv->lock. None of the field of QOS is accessed without priv->lock held.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoiwlwifi: rs always set lq_sta->priv
Tomas Winkler [Fri, 11 Jul 2008 03:53:33 +0000 (11:53 +0800)]
iwlwifi: rs always set lq_sta->priv

This patch fixes printk NULL pointer exceptions in rs code.

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Guy Cohen <guy.cohen@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoiwlwifi: remove post associate work
Tomas Winkler [Fri, 11 Jul 2008 03:53:32 +0000 (11:53 +0800)]
iwlwifi: remove post associate work

This patch removes post associate work. It wasn't used.

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoiwlwifi: fixes RTS / CTS support
Emmanuel Grumbach [Fri, 11 Jul 2008 03:53:31 +0000 (11:53 +0800)]
iwlwifi: fixes RTS / CTS support

This patch fixes the RTS / CTS support in iwlwifi. 5000 will send CTS to
self when allowed by spec, 4965 will send RTS or CTS to self according to
mac80211 request.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoiwlwifi: adding pci device ids to iwl_hw_card_ids
Esti Kummer [Fri, 11 Jul 2008 03:53:30 +0000 (11:53 +0800)]
iwlwifi: adding pci device ids to iwl_hw_card_ids

The patch adds PCI device IDs to iwl_hw_card_ids.

Signed-off-by: Esti Kummer <stkumer@localhost.localdomain>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoiwl3965: remove useless network and duplicate checking
Adel Gadllah [Fri, 11 Jul 2008 03:53:29 +0000 (11:53 +0800)]
iwl3965: remove useless network and duplicate checking

mac802 can handle duplicate packages on its own, so let it do it.
The patch is based on patch from Johannes Berg for iwl4965.

Signed-off-by: Adel Gadllah <adel.gadllah@gmail.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: dont add a STA which is not in the same IBSS
Emmanuel Grumbach [Thu, 10 Jul 2008 14:54:14 +0000 (17:54 +0300)]
mac80211: dont add a STA which is not in the same IBSS

This patch avoids adding STAs that don't belong to our IBSS
ieee80211_bssid_match matches also bcast address so also APs
were added

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agoiwlwif: remove compilation warnings iwl_add_radiotap
Tomas Winkler [Thu, 10 Jul 2008 11:28:42 +0000 (14:28 +0300)]
iwlwif: remove compilation warnings iwl_add_radiotap

Use directly put_unaligned_leX instead of put_unaligned(cpu_to_leX

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211 hwsim: fix endianness bug
Johannes Berg [Thu, 10 Jul 2008 09:56:33 +0000 (11:56 +0200)]
mac80211 hwsim: fix endianness bug

Radiotap is entirely little endian. Found with sparse.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: fix struct ieee80211_tx_queue_params
Johannes Berg [Thu, 10 Jul 2008 09:22:31 +0000 (11:22 +0200)]
mac80211: fix struct ieee80211_tx_queue_params

Multiple issues:
 - there are no "default" values needed
 - cw_min/cw_max can be larger than documented
 - restructure to decrease size
 - use get_unaligned_le16

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: fix TX sequence numbers
Johannes Berg [Thu, 10 Jul 2008 09:21:26 +0000 (11:21 +0200)]
mac80211: fix TX sequence numbers

This patch makes mac80211 assign proper sequence numbers to
QoS-data frames. It also removes the old sequence number code
because we noticed that only the driver or hardware can assign
sequence numbers to non-QoS-data and especially management
frames in a race-free manner because beacons aren't passed
through mac80211's TX path.

This patch also adds temporary code to the rt2x00 drivers to
not break them completely, that code will have to be reworked
for proper sequence numbers on beacons.

It also moves sequence number assignment down in the TX path
so no sequence numbers are assigned to frames that are dropped.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agowext: make sysfs bits optional and deprecate them
Johannes Berg [Thu, 10 Jul 2008 09:16:47 +0000 (11:16 +0200)]
wext: make sysfs bits optional and deprecate them

The /sys/class/net/*/wireless/ direcory is, as far as I know, not
used by anyone. Additionally, the same data is available via wext
ioctls. Hence the sysfs files are pretty much useless. This patch
makes them optional and schedules them for removal.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Cc: Jean Tourrilhes <jt@hpl.hp.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: fix RX sequence number check
Johannes Berg [Thu, 10 Jul 2008 08:11:02 +0000 (10:11 +0200)]
mac80211: fix RX sequence number check

According to 802.11-2007, we are doing the wrong thing in the
sequence number checks when receiving frames. This fixes it.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: Fix ieee80211_rx_reorder_ampdu: ignore QoS null packets
Emmanuel Grumbach [Wed, 9 Jul 2008 21:47:19 +0000 (00:47 +0300)]
mac80211: Fix ieee80211_rx_reorder_ampdu: ignore QoS null packets

This patch fixes the check at the entrance to ieee80211_rx_reorder_ampdu.
This check has been broken by 'mac80211: rx.c use new helpers'.

Letting QoS NULL packet in ieee80211_rx_reorder_ampdu led to packet loss in
RX.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agortl8187: use different ANAPARAM*_OFF values for 8187B
Herton Ronaldo Krzesinski [Thu, 10 Jul 2008 21:55:23 +0000 (18:55 -0300)]
rtl8187: use different ANAPARAM*_OFF values for 8187B

For RTL8187B it seems we need special values too for ANAPARAM*_OFF
values (and not use RTL8187 ones). The ANAPARAM*_OFF values used are the
stock ones read from the hardware after a cold boot.

Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Signed-off-by: Hin-Tak Leung <htl10@users.sourceforge.net>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agossb: Include dma-mapping.h
Michael Buesch [Wed, 9 Jul 2008 13:48:45 +0000 (15:48 +0200)]
ssb: Include dma-mapping.h

ssb.h implements DMA mapping functions, so it should
include dma-mapping.h. This fixes compile failures on certain architectures.

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Michael Buesch <mb@bu3sch.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agort2x00: Reorganize beacon handling
Ivo van Doorn [Wed, 9 Jul 2008 13:12:44 +0000 (15:12 +0200)]
rt2x00: Reorganize beacon handling

With the new beacon handling from mac80211 we can
reorganize the beacon handling in rt2x00 as well.
This patch will move the function to the TX handlers,
and move all duplicate code into rt2x00queue.c.

After this change the descriptor helper functions
from rt2x00queue.c no longer need to be exported
outside of rt2x00lib and can be declared static.

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agort2x00: Add support for CTS protection in rt2x00lib
Ivo van Doorn [Wed, 9 Jul 2008 13:12:06 +0000 (15:12 +0200)]
rt2x00: Add support for CTS protection in rt2x00lib

Inform drivers about the changed CTS protection settings.

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agox86, suspend, acpi: correct and add comments about Big Real Mode
H. Peter Anvin [Mon, 14 Jul 2008 18:44:26 +0000 (11:44 -0700)]
x86, suspend, acpi: correct and add comments about Big Real Mode

Explain that we set up the descriptors for Big Real Mode, and why we
do so.  In particular, one system that is known to fail without it is
the Lenovo X61.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
17 years agomac80211: revamp beacon configuration
Johannes Berg [Wed, 9 Jul 2008 12:40:37 +0000 (14:40 +0200)]
mac80211: revamp beacon configuration

This patch changes mac80211's beacon configuration handling
to never pass skbs to the driver directly but rather always
require the driver to use ieee80211_beacon_get(). Additionally,
it introduces "change flags" on the config_interface() call
to enable drivers to figure out what is changing. Finally, it
removes the beacon_update() driver callback in favour of
having IBSS beacon delivered by ieee80211_beacon_get() as well.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: push interface checks down
Johannes Berg [Wed, 9 Jul 2008 12:40:36 +0000 (14:40 +0200)]
mac80211: push interface checks down

This patch pushes the "netif_running()" and "same type as before"
checks down into ieee80211_if_change_type() to centralise the
logic instead of duplicating it for cfg80211 and wext.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: revamp virtual interface handling
Johannes Berg [Wed, 9 Jul 2008 12:40:35 +0000 (14:40 +0200)]
mac80211: revamp virtual interface handling

This patch revamps the virtual interface handling and makes the
code much easier to follow. Fewer functions, better names, less
spaghetti code.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: make master netdev handling sane
Johannes Berg [Wed, 9 Jul 2008 12:40:34 +0000 (14:40 +0200)]
mac80211: make master netdev handling sane

Currently, almost every interface type has a 'bss' pointer
pointing to BSS information. This BSS information, however,
is for a _local_ BSS, not for the BSS we joined, so having
it on a STA mode interface makes little sense, but now they
have it pointing to the master device, which is an AP mode
virtual interface. However, except for some bitrate control
data, this pointer is only used in AP/VLAN modes (for power
saving stations.)

Overall, it is not necessary to even have the master netdev
be a valid virtual interface, and it doesn't have to be on
the list of interfaces either.

This patch changes the master netdev to be special, it now
 - no longer is on the list of virtual interfaces, which
   lets me remove a lot of tests for that
 - no longer has sub_if_data attached, since that isn't used

Additionally, this patch changes some vlan/ap mode handling
that is related to these 'bss' pointers described above (but
in the VLAN case they actually make sense because there they
point to the AP they belong to); it also adds some debugging
code to IEEE80211_DEV_TO_SUB_IF to validate it is not called
on the master netdev any more.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agortl8187: Fixed section mismatch in rtl8187_dev.c
Ihar Hrachyshka [Tue, 8 Jul 2008 22:11:59 +0000 (01:11 +0300)]
rtl8187: Fixed section mismatch in rtl8187_dev.c

When CONFIG_HOTPLUG=n the following error occures on vmlinux linkage:

`.exit.text' referenced in section `.data' of drivers/built-in.o:
defined in discarded section `.exit.text' of drivers/built-in.o

'rtl8187_disconnect' function marked as __devexit isn't compiled with no
hotplug support. Added __devexit_p macros to fix the problem.

Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@promwad.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agort2x00: Fix NULL pointer error in adhoc/master mode
Ivo van Doorn [Sat, 5 Jul 2008 13:11:57 +0000 (15:11 +0200)]
rt2x00: Fix NULL pointer error in adhoc/master mode

As soon as an interface is enabled, and that interface is in adhoc or master mode,
the device will start raising beacondone interrupts. But before the first interrupt is
raised, mac80211 will probably not have send any beacons to the device yet, which
results in a NULL pointer error when the skb is being freed.

Note that the "raise beacondone interrupts without a beacon" is also a bug,
and will be addressed later. The more important bug however is preventing
the NULL pointer failt itself, since there might be other conditions that could trigger
it as well.

Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years agomac80211: power management wext hooks
Samuel Ortiz [Fri, 4 Jul 2008 08:49:31 +0000 (10:49 +0200)]
mac80211: power management wext hooks

This patch implements the power management routines wireless extensions
for mac80211.
For now we only support switching PS mode between on and off.

Signed-off-by: Samuel Ortiz <sameo@openedhand.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
17 years ago[Bluetooth] Allow security for outgoing L2CAP connections
Marcel Holtmann [Mon, 14 Jul 2008 18:13:54 +0000 (20:13 +0200)]
[Bluetooth] Allow security for outgoing L2CAP connections

When requested the L2CAP layer will now enforce authentication and
encryption on outgoing connections. The usefulness of this feature
is kinda limited since it will not allow proper connection ownership
tracking until the authentication procedure has been finished. This
is a limitation of Bluetooth 2.0 and before and can only be fixed by
using Simple Pairing.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Add option to disable eSCO connection creation
Marcel Holtmann [Mon, 14 Jul 2008 18:13:53 +0000 (20:13 +0200)]
[Bluetooth] Add option to disable eSCO connection creation

It has been reported that some eSCO capable headsets are not able to
connect properly. The real reason for this is unclear at the moment. So
for easier testing add a module parameter to disable eSCO connection
creation.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Signal user-space for HIDP and BNEP socket errors
Marcel Holtmann [Mon, 14 Jul 2008 18:13:53 +0000 (20:13 +0200)]
[Bluetooth] Signal user-space for HIDP and BNEP socket errors

When using the HIDP or BNEP kernel support, the user-space needs to
know if the connection has been terminated for some reasons. Wake up
the application if that happens. Otherwise kernel and user-space are
no longer on the same page and weird behaviors can happen.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Move pending packets from RFCOMM socket to TTY
Marcel Holtmann [Mon, 14 Jul 2008 18:13:52 +0000 (20:13 +0200)]
[Bluetooth] Move pending packets from RFCOMM socket to TTY

When an incoming RFCOMM socket connection gets converted into a TTY,
it can happen that packets are lost. This mainly happens with the
Handsfree profile where the remote side starts sending data right
away. The problem is that these packets are in the socket receive
queue. So when creating the TTY make sure to copy all pending packets
from the socket receive queue to a private queue inside the TTY.

To make this actually work, the flow control on the newly created TTY
will be disabled and only enabled again when the TTY is opened by an
application. And right before that, the pending packets will be put
into the TTY flip buffer.

Signed-off-by: Denis Kenzior <denis.kenzior@trolltech.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Store remote modem status for RFCOMM TTY
Marcel Holtmann [Mon, 14 Jul 2008 18:13:52 +0000 (20:13 +0200)]
[Bluetooth] Store remote modem status for RFCOMM TTY

When switching a RFCOMM socket to a TTY, the remote modem status might
be needed later. Currently it is lost since the original configuration
is done via the socket interface. So store the modem status and reply
it when the socket has been converted to a TTY.

Signed-off-by: Denis Kenzior <denis.kenzior@trolltech.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Use non-canonical TTY by default for RFCOMM
Marcel Holtmann [Mon, 14 Jul 2008 18:13:52 +0000 (20:13 +0200)]
[Bluetooth] Use non-canonical TTY by default for RFCOMM

While the RFCOMM TTY emulation can act like a real serial port, in
reality it is not used like this. So to not mess up stupid applications,
use the non-canonical mode by default.

Signed-off-by: Denis Kenzior <denis.kenzior@trolltech.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Update Bluetooth core version number
Marcel Holtmann [Mon, 14 Jul 2008 18:13:51 +0000 (20:13 +0200)]
[Bluetooth] Update Bluetooth core version number

With all the Bluetooth 2.1 changes and the support for Simple Pairing,
it is important to update the Bluetooth core version number.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Use a more unique bus name for connections
Marcel Holtmann [Mon, 14 Jul 2008 18:13:51 +0000 (20:13 +0200)]
[Bluetooth] Use a more unique bus name for connections

When attaching Bluetooth low-level connections to the bus, the bus name
is constructed from the remote address since at that time the connection
handle is not assigned yet. This has worked so far, but also caused a
lot of troubles. It is better to postpone the creation of the sysfs
entry to the time when the connection actually has been established
and then use its connection handle as unique identifier.

This also fixes the case where two different adapters try to connect
to the same remote device.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Add support for TIOCOUTQ and TIOCINQ ioctls
Marcel Holtmann [Mon, 14 Jul 2008 18:13:51 +0000 (20:13 +0200)]
[Bluetooth] Add support for TIOCOUTQ and TIOCINQ ioctls

Almost every protocol family supports the TIOCOUTQ and TIOCINQ ioctls
and even Bluetooth could make use of them. When implementing audio
streaming and integration with GStreamer or PulseAudio they will allow
a better timing and synchronization.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Add timestamp support to L2CAP, RFCOMM and SCO
Marcel Holtmann [Mon, 14 Jul 2008 18:13:50 +0000 (20:13 +0200)]
[Bluetooth] Add timestamp support to L2CAP, RFCOMM and SCO

Enable the common timestamp functionality that the network subsystem
provides for L2CAP, RFCOMM and SCO sockets. It is possible to either
use SO_TIMESTAMP or the IOCTLs to retrieve the timestamp of the
current packet.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Export details about authentication requirements
Marcel Holtmann [Mon, 14 Jul 2008 18:13:50 +0000 (20:13 +0200)]
[Bluetooth] Export details about authentication requirements

With the Simple Pairing support, the authentication requirements are
an explicit setting during the bonding process. Track and enforce the
requirements and allow higher layers like L2CAP and RFCOMM to increase
them if needed.

This patch introduces a new IOCTL that allows to query the current
authentication requirements. It is also possible to detect Simple
Pairing support in the kernel this way.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Initiate authentication during connection establishment
Marcel Holtmann [Mon, 14 Jul 2008 18:13:49 +0000 (20:13 +0200)]
[Bluetooth] Initiate authentication during connection establishment

With Bluetooth 2.1 and Simple Pairing the requirement is that any new
connection needs to be authenticated and that encryption has been
switched on before allowing L2CAP to use it. So make sure that all
the requirements are fulfilled and otherwise drop the connection with
a minimal disconnect timeout of 10 milliseconds.

This change only affects Bluetooth 2.1 devices and Simple Pairing
needs to be enabled locally and in the remote host stack. The previous
changes made sure that these information are discovered before any
kind of authentication and encryption is triggered.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Use ACL config stage to retrieve remote features
Marcel Holtmann [Mon, 14 Jul 2008 18:13:49 +0000 (20:13 +0200)]
[Bluetooth] Use ACL config stage to retrieve remote features

The Bluetooth technology introduces new features on a regular basis
and for some of them it is important that the hardware on both sides
support them. For features like Simple Pairing it is important that
the host stacks on both sides have switched this feature on. To make
valid decisions, a config stage during ACL link establishment has been
introduced that retrieves remote features and if needed also the remote
extended features (known as remote host features) before signalling
this link as connected.

This change introduces full reference counting of incoming and outgoing
ACL links and the Bluetooth core will disconnect both if no owner of it
is present. To better handle interoperability during the pairing phase
the disconnect timeout for incoming connections has been increased to
10 seconds. This is five times more than for outgoing connections.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Export remote Simple Pairing mode via sysfs
Marcel Holtmann [Mon, 14 Jul 2008 18:13:49 +0000 (20:13 +0200)]
[Bluetooth] Export remote Simple Pairing mode via sysfs

Since the remote Simple Pairing mode is stored together with the
inquiry cache, it makes sense to show it together with the other
information.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Track status of remote Simple Pairing mode
Marcel Holtmann [Mon, 14 Jul 2008 18:13:48 +0000 (20:13 +0200)]
[Bluetooth] Track status of remote Simple Pairing mode

The Simple Pairing process can only be used if both sides have the
support enabled in the host stack. The current Bluetooth specification
has three ways to detect this support.

If an Extended Inquiry Result has been sent during inquiry then it
is safe to assume that Simple Pairing is enabled. It is not allowed
to enable Extended Inquiry without Simple Pairing. During the remote
name request phase a notification with the remote host supported
features will be sent to indicate Simple Pairing support. Also the
second page of the remote extended features can indicate support for
Simple Pairing.

For all three cases the value of remote Simple Pairing mode is stored
in the inquiry cache for later use.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Track status of Simple Pairing mode
Marcel Holtmann [Mon, 14 Jul 2008 18:13:48 +0000 (20:13 +0200)]
[Bluetooth] Track status of Simple Pairing mode

The Simple Pairing feature is optional and needs to be enabled by the
host stack first. The Linux kernel relies on the Bluetooth daemon to
either enable or disable it, but at any time it needs to know the
current state of the Simple Pairing mode. So track any changes made
by external entities and store the current mode in the HCI device
structure.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Disable disconnect timer during Simple Pairing
Marcel Holtmann [Mon, 14 Jul 2008 18:13:48 +0000 (20:13 +0200)]
[Bluetooth] Disable disconnect timer during Simple Pairing

During the Simple Pairing process the HCI disconnect timer must be
disabled. The way to do this is by holding a reference count of the
HCI connection. The Simple Pairing process on both sides starts with
an IO Capabilities Request and ends with Simple Pairing Complete.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Update class of device value whenever possible
Marcel Holtmann [Mon, 14 Jul 2008 18:13:47 +0000 (20:13 +0200)]
[Bluetooth] Update class of device value whenever possible

The class of device value can only be retrieved via inquiry or during
an incoming connection request. Outgoing connections can't ask for the
class of device. To compensate for this the value is stored and copied
via the inquiry cache, but currently only updated via inquiry. This
update should also happen during an incoming connection request.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Some cleanups for HCI event handling
Marcel Holtmann [Mon, 14 Jul 2008 18:13:47 +0000 (20:13 +0200)]
[Bluetooth] Some cleanups for HCI event handling

Some minor cosmetic cleanups to the HCI event handling to make the
code easier to read and understand.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Make use of the default link policy settings
Marcel Holtmann [Mon, 14 Jul 2008 18:13:47 +0000 (20:13 +0200)]
[Bluetooth] Make use of the default link policy settings

The Bluetooth specification supports the default link policy settings
on a per host controller basis. For every new connection the link
manager would then use these settings. It is better to use this instead
of bothering the controller on every connection setup to overwrite the
default settings.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Track connection packet type changes
Marcel Holtmann [Mon, 14 Jul 2008 18:13:46 +0000 (20:13 +0200)]
[Bluetooth] Track connection packet type changes

The connection packet type can be changed after the connection has been
established and thus needs to be properly tracked to ensure that the
host stack has always correct and valid information about it.

On incoming connections the Bluetooth core switches the supported packet
types to the configured list for this controller. However the usefulness
of this feature has been questioned a lot. The general consent is that
every Bluetooth host stack should enable as many packet types as the
hardware actually supports and leave the decision to the link manager
software running on the Bluetooth chip.

When running on Bluetooth 2.0 or later hardware, don't change the packet
type for incoming connections anymore. This hardware likely supports
Enhanced Data Rate and thus leave it completely up to the link manager
to pick the best packet type.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Support the case when headset falls back to SCO link
Marcel Holtmann [Mon, 14 Jul 2008 18:13:46 +0000 (20:13 +0200)]
[Bluetooth] Support the case when headset falls back to SCO link

When trying to establish an eSCO link between two devices then it can
happen that the remote device falls back to a SCO link. Currently this
case is not handled correctly and the message dispatching will break
since it is looking for eSCO packets. So in case the configured link
falls back to SCO overwrite the link type with the correct value.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Update authentication status after successful encryption
Marcel Holtmann [Mon, 14 Jul 2008 18:13:45 +0000 (20:13 +0200)]
[Bluetooth] Update authentication status after successful encryption

The authentication status is not communicated to both parties. This is
actually a flaw in the Bluetooth specification. Only the requesting side
really knows if the authentication was successful or not. This piece of
information is however needed on the other side to know if it has to
trigger the authentication procedure or not. Worst case is that both
sides will request authentication at different times, but this should
be avoided since it costs extra time when setting up a new connection.

For Bluetooth encryption it is required to authenticate the link first
and the encryption status is communicated to both sides. So when a link
is switched to encryption it is possible to update the authentication
status since it implies an authenticated link.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Disconnect when encryption gets disabled
Marcel Holtmann [Mon, 14 Jul 2008 18:13:45 +0000 (20:13 +0200)]
[Bluetooth] Disconnect when encryption gets disabled

The Bluetooth specification allows to enable or disable the encryption
of an ACL link at any time by either the peer or the remote device. If
a L2CAP or RFCOMM connection requested an encrypted link, they will now
disconnect that link if the encryption gets disabled. Higher protocols
that don't care about encryption (like SDP) are not affected.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Enforce security for outgoing RFCOMM connections
Marcel Holtmann [Mon, 14 Jul 2008 18:13:45 +0000 (20:13 +0200)]
[Bluetooth] Enforce security for outgoing RFCOMM connections

Recent tests with various Bluetooth headsets have shown that some of
them don't enforce authentication and encryption when connecting. All
of them leave it up to the host stack to enforce it. Non of them should
allow unencrypted connections, but that is how it is. So in case the
link mode settings require authentication and/or encryption it will now
also be enforced on outgoing RFCOMM connections. Previously this was
only done for incoming connections.

This support has a small drawback from a protocol level point of view
since the host stack can't really tell with 100% certainty if a remote
side is already authenticated or not. So if both sides are configured
to enforce authentication it will be requested twice. Most Bluetooth
chips are caching this information and thus no extra authentication
procedure has to be triggered over-the-air, but it can happen.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years ago[Bluetooth] Change retrieval of L2CAP features mask
Marcel Holtmann [Mon, 14 Jul 2008 18:13:44 +0000 (20:13 +0200)]
[Bluetooth] Change retrieval of L2CAP features mask

Getting the remote L2CAP features mask is really important, but doing
this as less intrusive as possible is tricky. To play nice with older
systems and Bluetooth qualification testing, the features mask is now
only retrieved in two specific cases and only once per lifetime of an
ACL link.

When trying to establish a L2CAP connection and the remote features mask
is unknown, the L2CAP information request is sent when the ACL link goes
into connected state. This applies only to outgoing connections and also
only for the connection oriented channels.

The second case is when a connection request has been received. In this
case a connection response with the result pending and the information
request will be send. After receiving an information response or if the
timeout gets triggered, the normal connection setup process with security
setup will be initiated.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
17 years agox86, suspend, acpi: enter Big Real Mode
H. Peter Anvin [Mon, 14 Jul 2008 04:18:02 +0000 (21:18 -0700)]
x86, suspend, acpi: enter Big Real Mode

The explanation for recent video BIOS suspend quirk failures is that
the VESA BIOS expects to be entered in Big Real Mode (*.limit = 0xffffffff)
instead of ordinary Real Mode (*.limit = 0xffff).

This patch changes the segment descriptors to Big Real Mode instead.

The segment descriptor registers (what Intel calls "segment cache") is
always active.  The only thing that changes based on CR0.PE is how it is
*loaded* and the interpretation of the CS flags.

The segment descriptor registers contain of the following sub-registers:
selector (the "visible" part), base, limit and flags.  In protected mode
or long mode, they are loaded from descriptors (or fs.base or gs.base can
be manipulated directly in long mode.)  In real mode, the only thing
changed by a segment register load is the selector and the base, where the
base <- selector << 4.  In particular, *the limit and the flags are not
changed*.

As far as the handling of the CS flags: a code segment cannot be writable
in protected mode, whereas it is "just another segment" in real mode, so
there is some kind of quirk that kicks in for this when CR0.PE <- 0.  I'm
not sure if this is accomplished by actually changing the cs.flags register
or just changing the interpretation; it might be something that is
CPU-specific.  In particular, the Transmeta CPUs had an explicit "CS is
writable if you're in real mode" override, so even if you had loaded CS
with an execute-only segment it'd be writable (but not readable!) on return
to real mode.  I'm not at all sure if that is how other CPUs behave.

Signed-off-by: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agodo_mounts: allow UBI root device name
Adrian Hunter [Thu, 31 Jan 2008 15:25:00 +0000 (17:25 +0200)]
do_mounts: allow UBI root device name

Similarly to MTD devices, allow UBI devices.

Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com>
17 years agoVFS: export sync_sb_inodes
Artem Bityutskiy [Wed, 7 May 2008 18:01:30 +0000 (21:01 +0300)]
VFS: export sync_sb_inodes

This patch exports the 'sync_sb_inodes()' which is needed for
UBIFS because it has to force write-back from time to time.
Namely, the UBIFS budgeting subsystem forces write-back when
its pessimistic callculations show that there is no free
space on the media.

Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
17 years agoVFS: move inode_lock into sync_sb_inodes
Hans Reiser [Wed, 7 May 2008 12:48:57 +0000 (15:48 +0300)]
VFS: move inode_lock into sync_sb_inodes

This patch makes 'sync_sb_inodes()' lock 'inode_lock', rather
than expect that the caller will do this.

This change was previously done by Hans Reiser <reiser@namesys.com>
and sat in the -mm tree.

Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
17 years agoMerge commit '900cfa46191a7d87cf1891924cb90499287fd235'; branches 'timers/nohz',...
Thomas Gleixner [Mon, 14 Jul 2008 16:09:05 +0000 (18:09 +0200)]
Merge commit '900cfa46191a7d87cf1891924cb90499287fd235'; branches 'timers/nohz', 'timers/clocksource' and 'timers/posixtimers' into timers/for-linus

17 years agogeneric-ipi: powerpc/generic-ipi tree build failure
Stephen Rothwell [Mon, 14 Jul 2008 09:55:03 +0000 (19:55 +1000)]
generic-ipi: powerpc/generic-ipi tree build failure

Today's linux-next build (powerpc allmodconfig) failed like this:

ERROR: ".save_stack_trace" [tests/backtracetest.ko] undefined!

But save_stack_trace is exported in arch/powerpc/kernel/stacktrace.c

I couldn't figure it out until I noticed these earlier warnings:

arch/powerpc/kernel/stacktrace.c:47: warning: data definition has no type or storage class
arch/powerpc/kernel/stacktrace.c:47: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL_GPL'
arch/powerpc/kernel/stacktrace.c:47: warning: parameter names (without types) in function declaration

I applied the patch below.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: <linuxppc-dev@ozlabs.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agox86: add PCI ID for 6300ESB force hpet
Joe Buehler [Mon, 9 Jun 2008 12:55:20 +0000 (08:55 -0400)]
x86: add PCI ID for 6300ESB force hpet

00:1f.0 ISA bridge: Intel Corporation 6300ESB LPC Interface Controller (rev 02)
00:1f.0 Class 0601: 8086:25a1 (rev 02)

kernel: pci 0000:00:1f.0: Force enabled HPET at 0xfed00000
kernel: hpet clockevent registered
kernel: hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0
kernel: hpet0: 3 64-bit timers, 14318180 Hz

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
17 years agox86: add another PCI ID for ICH6 force-hpet
Krzysztof Oledzki [Wed, 4 Jun 2008 01:40:17 +0000 (03:40 +0200)]
x86: add another PCI ID for ICH6 force-hpet

Tested on Asus P5GDC-V

$ lspci -n -n |grep ISA
00:1f.0 ISA bridge [0601]: Intel Corporation 82801FB/FR (ICH6/ICH6R) LPC Interface Bridge [8086:2640] (rev 03)

Force enabled HPET at base address 0xfed00000
hpet clockevent registered
hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0
hpet0: 3 64-bit timers, 14318180 Hz

Signed-off-by: Krzysztof Piotr Oledzki <ole@ans.pl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
17 years agoMerge branch 'auto-ftrace-next' into tracing/for-linus
Ingo Molnar [Mon, 14 Jul 2008 14:11:52 +0000 (16:11 +0200)]
Merge branch 'auto-ftrace-next' into tracing/for-linus

Conflicts:

arch/x86/kernel/entry_32.S
arch/x86/kernel/process_32.c
arch/x86/kernel/process_64.c
arch/x86/lib/Makefile
include/asm-x86/irqflags.h
kernel/Makefile
kernel/sched.c

Signed-off-by: Ingo Molnar <mingo@elte.hu>
17 years agoMerge branch 'sched/for-linus' into tracing/for-linus
Ingo Molnar [Mon, 14 Jul 2008 14:11:02 +0000 (16:11 +0200)]
Merge branch 'sched/for-linus' into tracing/for-linus

17 years agoMerge branch 'tracing/ftrace' into auto-ftrace-next
Ingo Molnar [Mon, 14 Jul 2008 13:58:35 +0000 (15:58 +0200)]
Merge branch 'tracing/ftrace' into auto-ftrace-next

17 years agopowerpc/fsl: update crypto node definition and device tree instances
Kim Phillips [Wed, 9 Jul 2008 00:13:33 +0000 (19:13 -0500)]
powerpc/fsl: update crypto node definition and device tree instances

delete obsolete device-type property, delete model property
(use compatible property instead), prepend "fsl," to Freescale
specific properties. Add nodes to device trees that are missing them,
and fix broken property values in other trees.

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agopowerpc/fsl: Refactor device bindings
Kumar Gala [Mon, 7 Jul 2008 16:28:33 +0000 (11:28 -0500)]
powerpc/fsl: Refactor device bindings

Moved Freescale SoC related bindings out of booting-without-of.txt and into
their own files.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agopowerpc/85xx: Minor fixes for 85xxds and 8536ds board.
Jason Jin [Tue, 8 Jul 2008 01:21:08 +0000 (09:21 +0800)]
powerpc/85xx: Minor fixes for 85xxds and 8536ds board.

Remove the "uninitialized use" compile warning and avoid potential
runtime issue.

Signed-off-by: Jason Jin <Jason.jin@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agopowerpc: Add 82xx/83xx/86xx to 6xx Multiplatform
Kumar Gala [Fri, 27 Jun 2008 16:26:26 +0000 (11:26 -0500)]
powerpc: Add 82xx/83xx/86xx to 6xx Multiplatform

There isn't any reason at this point that we can't build 82xx, 83xx & 86xx
support in with the other 6xx based boards.  Twiddle the Kconfigs to allow
this.

This allows us to remove the machine type selection for related to 6xx.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agopowerpc/85xx: publish of device for cds platforms
Dave Jiang [Mon, 16 Jun 2008 22:36:17 +0000 (15:36 -0700)]
powerpc/85xx: publish of device for cds platforms

Publish the devices listed in dts under SOC as of_device for 85xx_cds
platform. The devices are needed by the 85xx EDAC driver.

Signed-off-by: Dave Jiang <djiang@mvista.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agopowerpc/booke: don't reinitialize time base
Kumar Gala [Fri, 27 Jun 2008 13:03:13 +0000 (08:03 -0500)]
powerpc/booke: don't reinitialize time base

For some reason long ago I decided that we should zero out the time base
when we calibrate the decrementer.  The problem is that this can be
harmful in SMP systems where the firmware has already synchronized the
time bases on the various cores.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agopowerpc/86xx: Refactor pic init
Kumar Gala [Wed, 2 Jul 2008 16:46:20 +0000 (11:46 -0500)]
powerpc/86xx: Refactor pic init

Moved the pic initialization into its own common file and out of the board
code.  Also fixed the OF reference counting on the mpic node.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agopowerpc/CPM: Add i2c pins to dts and board setup
Jochen Friedrich [Wed, 2 Jul 2008 16:06:13 +0000 (18:06 +0200)]
powerpc/CPM: Add i2c pins to dts and board setup

Initialize I2C pins on boards with CPM1/CPM2 controllers and document the
i2c bus in booting-without-of.

The boards don't have any I2C chips connected to the I2C bus, so unless
some external chips are connected to the boards, this code is just an
example of setting everything else up.

Signed-off-by: Jochen Friedrich <jochen@scram.de>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agocpm_uart: Support uart_wait_until_sent()
Laurent Pinchart [Wed, 2 Jul 2008 08:58:45 +0000 (10:58 +0200)]
cpm_uart: Support uart_wait_until_sent()

Set port->fifosize to the software FIFO size, and update the port timeout
when the baud rate is modified. SCC ports have an optional 32 byte hardware
FIFO which is currently not taken into account, as there is no documented way
to check when the FIFO becomes empty.

Signed-off-by: Laurent Pinchart <laurentp@cse-semaphore.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agopowerpc/85xx: Add support for MPC8536DS
Kumar Gala [Wed, 2 Jul 2008 06:36:15 +0000 (01:36 -0500)]
powerpc/85xx: Add support for MPC8536DS

Add support for the MPC8536 process and MPC8536DS reference board.  The
MPC8536 is an e500v2 based SoC which eTSEC, USB, SATA, PCI, and PCIe.

The USB and SATA IP blocks are similiar to those on the PQ2 Pro SoCs and
thus use the same drivers.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agopowerpc/85xx: minor fixes for MPC85xx DS board port
Kumar Gala [Wed, 2 Jul 2008 15:00:56 +0000 (10:00 -0500)]
powerpc/85xx: minor fixes for MPC85xx DS board port

These issues were reported by Stephen Rothwell for another 85xx board
port and pointed out by Chen Gong as issues in the DS port.

* mpic OF node reference counting was off
* of_device_id struct should be marked as __initdata

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agopowerpc/CPM: Minor cosmetic changes to udbg_putc
Nye Liu [Fri, 27 Jun 2008 20:01:00 +0000 (13:01 -0700)]
powerpc/CPM: Minor cosmetic changes to udbg_putc

udbg_putc is a *function pointer* that is initialized during
udbg_init_cpm. It might not be initialized properly when called from
udbg_putc_cpm(), so (recursively) call udbg_putc_cpm() directly.

Signed-off-by: Nye Liu <nyet@mrv.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agopowerpc/85xx: TQM8548: add missing support for RTC and LM75
Wolfgang Grandegger [Thu, 26 Jun 2008 13:15:43 +0000 (15:15 +0200)]
powerpc/85xx: TQM8548: add missing support for RTC and LM75

It adds the missing RTC node to tqm8548.dts and enables support for
I2C, DS1307 and LM75 in the default configuration.

Signed-off-by: Wolfgang Grandegger <wg@grandegger.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agopowerpc/86xx: mpc8610_hpcd: fix interrupt trigger type for ULi IDE
Anton Vorontsov [Tue, 1 Jul 2008 13:04:38 +0000 (17:04 +0400)]
powerpc/86xx: mpc8610_hpcd: fix interrupt trigger type for ULi IDE

i8259 PIC is disabled on MPC8610HPCD, and ULi IDE is configured to use
PCI sideband interrupt that is specified in the device tree.

Current HPCD's device tree specify that IDE interrupt is low to high
sensitive, but in practice ULi IDE throws active-high interrupts (not
active-low as all normal PCI devices).

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agopowerpc: Fix pq2fads irq handling with PREEMPT_RT
Rune Torgersen [Tue, 20 May 2008 19:28:57 +0000 (14:28 -0500)]
powerpc: Fix pq2fads irq handling with PREEMPT_RT

Fix interrupt threading issue on pq2fads when running with CONFIG_PREEMPT_RT

Signed-off-by: Rune Torgersen <runet@innovsys.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agocpm_uart: Fix cpm uart corruption with PREEMPT_RT
Rune Torgersen [Tue, 20 May 2008 19:39:17 +0000 (14:39 -0500)]
cpm_uart: Fix cpm uart corruption with PREEMPT_RT

Fix CPM serial port corruption when running with CONFIG_PREEMPT_RT.
Userland usage of console, and kernel printf's were stepping on each others toes.
Also only take lock if not in an oops.

Signed-off-by: Rune Torgersen <runet@innovsys.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agopowerpc/85xx: Fix KSI8560 .dts
Kumar Gala [Tue, 1 Jul 2008 04:24:14 +0000 (23:24 -0500)]
powerpc/85xx: Fix KSI8560 .dts

Rename MPIC label to mpic to match all other 85xx .dts and to fix compile
issue introduced by addition of the DMA node.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
17 years agofirewire: warn on unfinished transactions during card removal
Stefan Richter [Sat, 12 Jul 2008 12:51:18 +0000 (14:51 +0200)]
firewire: warn on unfinished transactions during card removal

After card->done and card->work are completed, any remaining pending
request would be a bug.  We cannot safely complete a transaction at
that point anymore.

IOW card users must not drop their last fw_card reference (usually
indirect references through fw_device references) before their last
outbound transaction through that card was finished.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
17 years agofirewire: small fw_fill_request cleanup
Stefan Richter [Sat, 12 Jul 2008 12:50:42 +0000 (14:50 +0200)]
firewire: small fw_fill_request cleanup

  - better name for a function argument
  - removal of a local variable which became unnecessary after
    "fully initialize fw_transaction before marking it pending"

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
17 years agofirewire: fully initialize fw_transaction before marking it pending
Stefan Richter [Sat, 12 Jul 2008 12:50:06 +0000 (14:50 +0200)]
firewire: fully initialize fw_transaction before marking it pending

In theory, card->flush_timer could already access a transaction between
fw_send_request()'s spin_unlock_irqrestore and the rest of what happens
in fw_send_request().  This would happen if the process which sends the
request is preempted and put to sleep right after spin_unlock_irqrestore
for longer than 100ms.

Therefore we fill in everything in struct fw_transaction at which the
flush_timer might look at before we lift the lock.

To do:  Ensure that the timer does not pick up the transaction before
the time of the AT request event plus split transaction timeout.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
17 years agofirewire: fix race of bus reset with request transmission
Stefan Richter [Sat, 12 Jul 2008 12:49:19 +0000 (14:49 +0200)]
firewire: fix race of bus reset with request transmission

Reported by Jay Fenlason:  A bus reset tasklet may call
fw_flush_transactions and touch transactions (call their callback which
will free them) while the context which submitted the transaction is
still inserting it into the transmission queue.

A simple solution to this problem is to _not_ "flush" the transactions
because of a bus reset (complete the transcations as 'cancelled').  They
will now simply time out (completed as 'cancelled' by the split-timeout
timer).

Jay Fenlason thought of this fix too but I was quicker to type it out.
:-)

Background:
Contexts which access an instance of struct fw_transaction are:
 1. the submitter, until it inserted the packet which is embedded in the
    transaction into the AT req DMA,
 2. the AsReqTrContext tasklet when the request packet was acked by the
    responder node or transmission to the responder failed,
 3. the AsRspRcvContext tasklet when it found a request which matched
    an incoming response,
 4. the card->flush_timer when it picks up timed-out transactions to
    cancel them,
 5. the bus reset tasklet when it cancels transactions (this access is
    eliminated by this patch),
 6. a process which shuts down an fw_card (unregisters it from fw-core
    when the controller is unbound from fw-ohci) --- although in this
    case there shouldn't really be any transactions anymore because we
    wait until all card users finished their business with the card.

All of these contexts run concurrently (except for the 6th, presumably).
The 1st is safe against the 2nd and 3rd because of the way how a request
packet is carefully submitted to the hardware.  A race between 2nd and
3rd has been fixed a while ago (bug 9617).  The 4th is almost safe
against 1st, 2nd, 3rd;  there are issues with it if huge scheduling
latencies occur, to be fixed separately.  The 5th looks safe against
2nd, 3rd, and 4th but is unsafe against 1st.  Maybe this could be fixed
with an explicit state variable in struct fw_transaction.  But this
would require fw_transaction to be rewritten as only dynamically
allocatable object with reference counting --- not a good solution if we
also can simply kill this 5th accessing context (replace it by the 4th).

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
17 years agofirewire: don't respond to broadcast write requests
Stefan Richter [Sun, 25 May 2008 09:06:55 +0000 (11:06 +0200)]
firewire: don't respond to broadcast write requests

Contrary to a comment in the source, request->ack of a broadcast write
request can be ACK_PENDING.  Hence the existing check is insufficient.

Debug dmesg before:
AR spd 0 tl 00, ffc0 -> ffff, ack_pending , QW req, fffff0000234 = ffffffff
AT spd 0 tl 00, ffff -> ffc0, ack_complete, W resp
And the requesting node (linux1394) reports an unsolicited response.

Debug dmesg after:
AR spd 0 tl 00, ffc0 -> ffff, ack_pending , QW req, fffff0000234 = ffffffff

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
17 years agofirewire: clean up fw_card reference counting
Stefan Richter [Sat, 24 May 2008 14:50:22 +0000 (16:50 +0200)]
firewire: clean up fw_card reference counting

This is a functionally equivalent replacement of the current reference
counting of struct fw_card instances.  It only converts it to common
idioms as suggested by Kristian Høgsberg:
  - struct kref replaces atomic_t as the counter.
  - wait_for_completion is used to wait for all card users to complete.

BTW, it may make sense to count card->flush_timer and card->work as
card users too.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
17 years agofirewire: clean up some includes
Stefan Richter [Sat, 24 May 2008 14:48:05 +0000 (16:48 +0200)]
firewire: clean up some includes

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
17 years agofirewire: remove unused struct members
Stefan Richter [Sat, 24 May 2008 14:46:10 +0000 (16:46 +0200)]
firewire: remove unused struct members

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
17 years agofirewire: implement broadcast_channel CSR for 1394a compliance
Stefan Richter [Sat, 24 May 2008 14:41:09 +0000 (16:41 +0200)]
firewire: implement broadcast_channel CSR for 1394a compliance

See IEEE 1394a clause 8.3.2.3.11.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
17 years agoieee1394: dump mmapped iso buffers in core files
Philippe De Muyter [Thu, 3 Jul 2008 16:52:28 +0000 (18:52 +0200)]
ieee1394: dump mmapped iso buffers in core files

Currently, core files do not contain the mmapped memory of the video1394
or dv1394 devices, which contain the actual video input, making it
impossible to analyse the cause of abnormal program termination for
image analysis or (de)compression software.  Fix that.

Signed-off-by: Philippe De Muyter <phdm@macqel.be>
Also affects users of the rawiso ioctl API of raw1394.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
17 years agoieee1394: raw1394: Push the BKL down into the driver ioctls
Alan Cox [Fri, 23 May 2008 10:57:41 +0000 (11:57 +0100)]
ieee1394: raw1394: Push the BKL down into the driver ioctls

Actually in this case wrap the function for now.

Signed-off-by: Alan Cox <alan@redhat.com>
Added raw1394_compat_ioctl hunk.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
17 years agoieee1394: video1394: reorder module init, prepare BKL removal
Stefan Richter [Mon, 19 May 2008 20:07:28 +0000 (22:07 +0200)]
ieee1394: video1394: reorder module init, prepare BKL removal

This prepares video1394 for removal of the BKL (big kernel lock):
It allows video1394_open() to be called while video1394_init_module()
is still in progress.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
17 years agoieee1394: reduce log noise about config ROM CRC errors
Stefan Richter [Fri, 2 May 2008 18:14:52 +0000 (20:14 +0200)]
ieee1394: reduce log noise about config ROM CRC errors

This avoids redundant messages about a special and usually harmless
firmware flaw.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
17 years agoieee1394: sbp2: spin disks down on suspend and shutdown
Stefan Richter [Sat, 10 May 2008 22:37:14 +0000 (00:37 +0200)]
ieee1394: sbp2: spin disks down on suspend and shutdown

This instructs sd_mod to send START STOP UNIT on suspend and resume,
and on driver unbinding or unloading (including when the system is shut
down).

We don't do this though if multiple initiators may log in to the target.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
17 years agofirewire: fw-sbp2: spin disks down on suspend and shutdown
Stefan Richter [Sat, 10 May 2008 22:36:47 +0000 (00:36 +0200)]
firewire: fw-sbp2: spin disks down on suspend and shutdown

This instructs sd_mod to send START STOP UNIT on suspend and resume,
and on driver unbinding or unloading (including when the system is shut
down).

We don't do this though if multiple initiators may log in to the target.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Tested-by: Tino Keitel <tino.keitel@gmx.de>
17 years agoieee1394: sbp2: fix spindown for PL-3507 and TSB42AA9 firmwares
Stefan Richter [Sat, 10 May 2008 22:35:55 +0000 (00:35 +0200)]
ieee1394: sbp2: fix spindown for PL-3507 and TSB42AA9 firmwares

Reported by Tino Keitel:  PL-3507 with firmware from Prolific does not
spin down the disk on START STOP UNIT with power condition = 0 and start
= 0.  It does however work with power condition = 2 or 3.

Also found while investigating this:  DViCO Momobay CX-1 and FX-3A (TI
TSB42AA9/A based) become unresponsive after START STOP UNIT with power
condition = 0 and start = 0.  They stay responsive if power condition is
set when stopping the motor.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
17 years agofirewire: fw-sbp2: fix spindown for PL-3507 and TSB42AA9 firmwares
Stefan Richter [Sat, 10 May 2008 22:35:04 +0000 (00:35 +0200)]
firewire: fw-sbp2: fix spindown for PL-3507 and TSB42AA9 firmwares

Reported by Tino Keitel:  PL-3507 with firmware from Prolific does not
spin down the disk on START STOP UNIT with power condition = 0 and start
= 0.  It does however work with power condition = 2 or 3.

Also found while investigating this:  DViCO Momobay CX-1 and FX-3A (TI
TSB42AA9/A based) become unresponsive after START STOP UNIT with power
condition = 0 and start = 0.  They stay responsive if power condition is
set when stopping the motor.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Tested-by: Tino Keitel <tino.keitel@gmx.de>