Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 206818
b: refs/heads/master
c: 65b2742
h: refs/heads/master
v: v3
  • Loading branch information
Stefan Richter committed Jun 19, 2010
1 parent 8a2fd87 commit 7cac7f4
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 22 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c374ab424249b6ab91b1aee7460419d3f2c321df
refs/heads/master: 65b2742ac002f554f6ca0c2eab84cc62400eafdf
27 changes: 6 additions & 21 deletions trunk/drivers/firewire/core-transaction.c
Original file line number Diff line number Diff line change
Expand Up @@ -984,29 +984,10 @@ static const struct fw_address_region registers_region =

static u32 read_state_register(struct fw_card *card)
{
/*
* Fixed bits (IEEE 1394-2008 8.3.2.2.1):
* Bits 0-1 (state) always read 00=running.
* Bits 2,3 (off, atn) are not implemented as per the spec.
* Bit 4 (elog) is not implemented because there is no error log.
* Bit 6 (dreq) cannot be set. It is intended to "disable requests
* from unreliable nodes"; however, IEEE 1212 states that devices
* may "clear their own dreq bit when it has been improperly set".
* Our implementation might be seen as an improperly extensive
* interpretation of "improperly", but the 1212-2001 revision
* dropped this bit altogether, so we're in the clear. :o)
* Bit 7 (lost) always reads 0 because a power reset has never occurred
* during normal operation.
* Bit 9 (linkoff) is not implemented because the PC is not powered
* from the FireWire cable.
* Bit 15 (gone) always reads 0. It must be set at a power/command/bus
* reset, but then cleared when the units are ready again, which
* happens immediately for us.
*/
u32 value = 0x0000;
u32 value;

/* Bit 8 (cmstr): */
value |= card->driver->read_csr_reg(card, CSR_STATE_CLEAR);
value = card->driver->read_csr_reg(card, CSR_STATE_CLEAR);

/* Bit 10 (abdicate): */
if (card->csr_abdicate)
Expand Down Expand Up @@ -1066,6 +1047,10 @@ static void handle_registers(struct fw_card *card, struct fw_request *request,
break;

case CSR_NODE_IDS:
/*
* per IEEE 1394-2008 8.3.22.3, not IEEE 1394.1-2004 3.2.8
* and 9.6, but interoperable with IEEE 1394.1-2004 bridges
*/
if (tcode == TCODE_READ_QUADLET_REQUEST)
*data = cpu_to_be32(card->driver->
read_csr_reg(card, CSR_NODE_IDS));
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/firewire/ohci.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/

#include <linux/bug.h>
#include <linux/compiler.h>
#include <linux/delay.h>
#include <linux/device.h>
Expand Down

0 comments on commit 7cac7f4

Please sign in to comment.