diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/firewire/core-transaction.c | 27 | ||||
-rw-r--r-- | drivers/firewire/ohci.c | 1 |
2 files changed, 7 insertions, 21 deletions
diff --git a/drivers/firewire/core-transaction.c b/drivers/firewire/core-transaction.c index 85a54da243e2..5069cfc75b50 100644 --- a/drivers/firewire/core-transaction.c +++ b/drivers/firewire/core-transaction.c | |||
@@ -984,29 +984,10 @@ static const struct fw_address_region registers_region = | |||
984 | 984 | ||
985 | static u32 read_state_register(struct fw_card *card) | 985 | static u32 read_state_register(struct fw_card *card) |
986 | { | 986 | { |
987 | /* | 987 | u32 value; |
988 | * Fixed bits (IEEE 1394-2008 8.3.2.2.1): | ||
989 | * Bits 0-1 (state) always read 00=running. | ||
990 | * Bits 2,3 (off, atn) are not implemented as per the spec. | ||
991 | * Bit 4 (elog) is not implemented because there is no error log. | ||
992 | * Bit 6 (dreq) cannot be set. It is intended to "disable requests | ||
993 | * from unreliable nodes"; however, IEEE 1212 states that devices | ||
994 | * may "clear their own dreq bit when it has been improperly set". | ||
995 | * Our implementation might be seen as an improperly extensive | ||
996 | * interpretation of "improperly", but the 1212-2001 revision | ||
997 | * dropped this bit altogether, so we're in the clear. :o) | ||
998 | * Bit 7 (lost) always reads 0 because a power reset has never occurred | ||
999 | * during normal operation. | ||
1000 | * Bit 9 (linkoff) is not implemented because the PC is not powered | ||
1001 | * from the FireWire cable. | ||
1002 | * Bit 15 (gone) always reads 0. It must be set at a power/command/bus | ||
1003 | * reset, but then cleared when the units are ready again, which | ||
1004 | * happens immediately for us. | ||
1005 | */ | ||
1006 | u32 value = 0x0000; | ||
1007 | 988 | ||
1008 | /* Bit 8 (cmstr): */ | 989 | /* Bit 8 (cmstr): */ |
1009 | value |= card->driver->read_csr_reg(card, CSR_STATE_CLEAR); | 990 | value = card->driver->read_csr_reg(card, CSR_STATE_CLEAR); |
1010 | 991 | ||
1011 | /* Bit 10 (abdicate): */ | 992 | /* Bit 10 (abdicate): */ |
1012 | if (card->csr_abdicate) | 993 | if (card->csr_abdicate) |
@@ -1066,6 +1047,10 @@ static void handle_registers(struct fw_card *card, struct fw_request *request, | |||
1066 | break; | 1047 | break; |
1067 | 1048 | ||
1068 | case CSR_NODE_IDS: | 1049 | case CSR_NODE_IDS: |
1050 | /* | ||
1051 | * per IEEE 1394-2008 8.3.22.3, not IEEE 1394.1-2004 3.2.8 | ||
1052 | * and 9.6, but interoperable with IEEE 1394.1-2004 bridges | ||
1053 | */ | ||
1069 | if (tcode == TCODE_READ_QUADLET_REQUEST) | 1054 | if (tcode == TCODE_READ_QUADLET_REQUEST) |
1070 | *data = cpu_to_be32(card->driver-> | 1055 | *data = cpu_to_be32(card->driver-> |
1071 | read_csr_reg(card, CSR_NODE_IDS)); | 1056 | read_csr_reg(card, CSR_NODE_IDS)); |
diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c index 51a55808d88a..2abdb3268a10 100644 --- a/drivers/firewire/ohci.c +++ b/drivers/firewire/ohci.c | |||
@@ -18,6 +18,7 @@ | |||
18 | * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 18 | * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <linux/bug.h> | ||
21 | #include <linux/compiler.h> | 22 | #include <linux/compiler.h> |
22 | #include <linux/delay.h> | 23 | #include <linux/delay.h> |
23 | #include <linux/device.h> | 24 | #include <linux/device.h> |