)]}'
{
  "log": [
    {
      "commit": "9993e0fe0f5f29c69e79efcb271ffc9843002985",
      "tree": "ed35a971df3613385819d58bf79817b7100c2992",
      "parents": [
        "af0cdf4947818becfe209610b209315578645ab4"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Dec 07 20:32:40 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 12 15:47:02 2010 +0100"
      },
      "message": "firewire: ohci: fix regression with Agere FW643 rev 06, disable MSI\n\nAgere FW643 rev 06, listed as \"11c1:5901 (rev 06) (prog-if 10 [OHCI])\",\nproduced SBP-2 I/O errors since kernel 2.6.36.  Disabling MSI fixes it.\n\nSince MSI work on Agere FW643-E (same vendor and device ID, but rev 07),\nintroduce a device revision field into firewire-ohci\u0027s quirks list so\nthat different quirks can be defined for older and newer revisions.\n\nReported-by: Jonathan Isom \u003cjeisom@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nCc: \u003cstable@kernel.org\u003e # 2.6.36.y\n"
    },
    {
      "commit": "af0cdf4947818becfe209610b209315578645ab4",
      "tree": "6294d93f9eccfb857769929d1269aedd32681fc9",
      "parents": [
        "cf7d7e5a1980d1116ee152d25dac382b112b9c17"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Dec 07 19:16:02 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 12 15:47:02 2010 +0100"
      },
      "message": "firewire: ohci: fix regression with VIA VT6315, disable MSI\n\n\"VIA Technologies, Inc. VT6315 Series Firewire Controller [1106:3403]\"\ndoes not generate any interrupts if Message Signaled Interrupts were\nenabled.  This is a regression since kernel 2.6.36 in which MSI support\nwas added to firewire-ohci.  Hence blacklist MSI on all VIA controllers.\n\nReported-by: Robin Cook \u003crcook@wyrms.net\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nCc: \u003cstable@kernel.org\u003e # 2.6.36.y\n"
    },
    {
      "commit": "693fa7792e9db9f32da9436e633976fbacd04b55",
      "tree": "227078047db9c8f3497133769b1b9b1f7b681fa1",
      "parents": [
        "837596a61ba8f9bb53bb7aa27d17328ff9b2bcd5"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Oct 25 11:43:05 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Oct 30 23:37:20 2010 +0200"
      },
      "message": "firewire: ohci: fix race when reading count in AR descriptor\n\nIf the controller is storing a split packet and therefore changing\nd-\u003eres_count to zero between the two reads by the driver, we end up with\nan end pointer that is not at a packet boundary, and therefore overflow\nthe buffer when handling the split packet.\n\nTo fix this, read the field once, atomically.  The compiler usually\nmerges the two reads anyway, but for correctness, we have to enforce it.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nTested-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "837596a61ba8f9bb53bb7aa27d17328ff9b2bcd5",
      "tree": "a9b2ba0d4382a1c0ad75182662570f61b5e03e57",
      "parents": [
        "a1f805e5e73a8fe166b71c6592d3837df0cd5e2e"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Oct 25 11:42:42 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Oct 30 23:37:20 2010 +0200"
      },
      "message": "firewire: ohci: avoid reallocation of AR buffers\n\nFreeing an AR buffer page just to allocate a new page immediately\nafterwards is not only a pointless effort but also dangerous because\nthe allocation can fail, which would result in an oops later.\n\nSplit ar_context_add_page() into two functions so that we can reuse\nthe old page directly.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nTested-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a1f805e5e73a8fe166b71c6592d3837df0cd5e2e",
      "tree": "f8bc4a2d8d0bcaf4a1b7d4c547d7a2525459f852",
      "parents": [
        "85f7ffd5d2b320f73912b15fe8cef34bae297daf"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Oct 25 11:42:20 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Oct 30 23:37:19 2010 +0200"
      },
      "message": "firewire: ohci: fix race in AR split packet handling\n\nWhen handling an AR buffer that has been completely filled, we assumed\nthat its descriptor will not be read by the controller and can be\noverwritten.  However, when the last received packet happens to end at\nthe end of the buffer, the controller might not yet have moved on to the\nnext buffer and might read the branch address later.  If we overwrite\nand free the page before that, the DMA context will either go dead\nbecause of an invalid Z value, or go off into some random memory.\n\nTo fix this, ensure that the descriptor does not get overwritten by\nusing only the actual buffer instead of the entire page for reassembling\nthe split packet.  Furthermore, to avoid freeing the page too early,\nmove on to the next buffer only when some data in it guarantees that the\ncontroller has moved on.\n\nThis should eliminate the remaining firewire-net problems.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nCc: 2.6.22-2.6.36 \u003cstable@kernel.org\u003e\nTested-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "85f7ffd5d2b320f73912b15fe8cef34bae297daf",
      "tree": "d9151979bb3834bd1254239a42247a668f059133",
      "parents": [
        "f6f94e2ab1b33f0082ac22d71f66385a60d8157f"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Oct 25 11:41:53 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Oct 30 23:37:19 2010 +0200"
      },
      "message": "firewire: ohci: fix buffer overflow in AR split packet handling\n\nWhen the controller had to split a received asynchronous packet into two\nbuffers, the driver tries to reassemble it by copying both parts into\nthe first page.  However, if size + rest \u003e PAGE_SIZE, i.e., if the yet\nunhandled packets before the split packet, the split packet itself, and\nany received packets after the split packet are together larger than one\npage, then the memory after the first page would get overwritten.\n\nTo fix this, do not try to copy the data of all unhandled packets at\nonce, but copy the possibly needed data every time when handling\na packet.\n\nThis gets rid of most of the infamous crashes and data corruptions when\nusing firewire-net.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nCc: 2.6.22-2.6.36 \u003cstable@kernel.org\u003e\nTested-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (cast PAGE_SIZE to size_t)\n"
    },
    {
      "commit": "aa0170fff3c26bf2b42159af2dd9cf86444c292a",
      "tree": "0a64674f2fa51883c66e96c743dd4c4e86d98a49",
      "parents": [
        "cd07202cc8262e1669edff0d97715f3dd9260917"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 17 14:09:12 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 17 14:09:12 2010 +0200"
      },
      "message": "firewire: ohci: fix TI TSB82AA2 regression since 2.6.35\n\nRevert commit 54672386ccf36ffa21d1de8e75624af83f9b0eeb\n\"firewire: ohci: fix up configuration of TI chips\".\nIt caused massive slow-down and data corruption with a TSB82AA2 based\nStarTech EC1394B2 ExpressCard and FireWire 800 harddisks.\n\nhttps://bugs.launchpad.net/ubuntu/+source/linux/+bug/657081\nhttp://thread.gmane.org/gmane.linux.kernel.firewire.user/4013\n\nThe fact that some card EEPROMs do not program these enhancements may be\nrelated to TSB81BA3 phy chip errata, if not to bugs of TSB82AA2 itself.\nWe could re-add these configuration steps, but only conditional on a\nwhitelist of cards on which these enhancements bring a proven positive\neffect.\n\nReported-and-tested-by: Eric Shattow \u003clucent@gmail.com\u003e\nCc: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nCc: \u003cstable@kernel.org\u003e 2.6.35\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "970f4be85ae6ecf97b711a3a2a1d5cecd3ea0534",
      "tree": "4088ff5bf8d3d020ddfe53fdb6d4252ff3457914",
      "parents": [
        "a4dc090b6cb445257d2a8e44f85395ced6d1ed3e"
      ],
      "author": {
        "name": "Heikki Lindholm",
        "email": "holin@iki.fi",
        "time": "Mon Sep 06 22:30:45 2010 +0300"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Sep 08 21:25:55 2010 +0200"
      },
      "message": "firewire: ohci: activate cycle timer register quirk on Ricoh chips\n\nThe Ricoh FireWire controllers appear to have the non-atomic cycle\ntimer register access bug, so, activate the driver workaround by\ndefault.\n\nThe behaviour was observed on:\nRicoh Co Ltd R5C552 IEEE 1394 Controller [1180:0552] and\nRicoh Co Ltd R5C832 IEEE 1394 Controller [1180:0832] (rev 04).\n\nSigned-off-by: Heikki Lindholm \u003cholin@iki.fi\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a4dc090b6cb445257d2a8e44f85395ced6d1ed3e",
      "tree": "1cba172819b1395237adb69e34dfa469a63dbb68",
      "parents": [
        "2222bcb76790f4f61f39ec1514946a7593b07e02"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Aug 28 14:21:26 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Aug 29 09:17:31 2010 +0200"
      },
      "message": "firewire: ohci: work around VIA and NEC PHY packet reception bug\n\nVIA VT6306, VIA VT6308, and NEC OrangeLink controllers do not write\npacket event codes for received PHY packets (or perhaps write\nevt_no_status, hard to tell).  Work around it by overwriting the\npacket\u0027s ACK by ack_complete, so that upper layers that listen to PHY\npacket reception get to see these packets.\n\n(Also tested:  TI TSB82AA2, TI TSB43AB22/A, TI XIO2213A, Agere FW643,\nJMicron JMB381 --- these do not exhibit this bug.)\n\nClemens proposed a quirks flag for that, IOW whitelist known misbehaving\ncontrollers for this workaround.  Though to me it seems harmless enough\nto enable for all controllers.\n\nThe log_ar_at_event() debug log will continue to show the original\nstatus from the DMA unit.\n\nReported-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e (VT6308)\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e78483c5aeb0d7fbb0e365802145f1045e62957e",
      "tree": "cc1c4733486f562b26ab812ce38ff8026da70007",
      "parents": [
        "9fe6206f400646a2322096b56c59891d530e8d51",
        "b20d02e37eeabf34b40c3995c2dbb0af53da3c57",
        "20802224298ce9dfd99a7e26b675fc0c8ae26cac"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Aug 02 09:33:25 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Aug 02 10:09:04 2010 +0200"
      },
      "message": "Merge firewire branches to be released post v2.6.35\n\nConflicts:\n\tdrivers/firewire/core-card.c\n\tdrivers/firewire/core-cdev.c\n\nand forgotten #include \u003clinux/time.h\u003e in drivers/firewire/ohci.c\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "872e330e38806d835bd6c311c93ab998e2fb9058",
      "tree": "92497ce79b1157761b1aebdb63b8d74f68d42c15",
      "parents": [
        "ae2a97661482c1d0f1aa41b837da95054d0e9a1b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 18:19:22 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 23:09:18 2010 +0200"
      },
      "message": "firewire: add isochronous multichannel reception\n\nThis adds the DMA context programming and userspace ABI for multichannel\nreception, i.e. for listening on multiple channel numbers by means of a\nsingle DMA context.\n\nThe use case is reception of more streams than there are IR DMA units\noffered by the link layer.  This is already implemented by the older\nohci1394 + ieee1394 + raw1394 stack.  And as discussed recently on\nlinux1394-devel, this feature is occasionally used in practice.\n\nThe big drawbacks of this mode are that buffer layout and interrupt\ngeneration necessarily differ from single-channel reception:  Headers\nand trailers are not stripped from packets, packets are not aligned with\nbuffer chunks, interrupts are per buffer chunk, not per packet.\n\nThese drawbacks also cause a rather hefty code footprint to support this\nrarely used OHCI-1394 feature.  (367 lines added, among them 94 lines of\nadded userspace ABI documentation.)\n\nThis implementation enforces that a multichannel reception context may\nonly listen to channels to which no single-channel context on the same\nlink layer is presently listening to.  OHCI-1394 would allow to overlay\nsingle-channel contexts by the multi-channel context, but this would be\na departure from the present first-come-first-served policy of IR\ncontext creation.\n\nThe implementation is heavily based on an earlier one by Jay Fenlason.\nThanks Jay.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e5b06c077c592e7e1623641520787a3da7b7c6bf",
      "tree": "92669edec5be2e06ed1b971e611a7683bb33ab75",
      "parents": [
        "071595ebdc66d70219e2d1ce746016f64b2b19e7"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jul 28 15:50:00 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 23:06:25 2010 +0200"
      },
      "message": "firewire: ohci: release channel in error path\n\nfirewire-ohci keeps book of which isochronous channels are occupied by\nIR DMA contexts, so that there cannot be more than one context listening\nto a certain channel.\n\nIf IR context creation failed due to an out-of-memory condition, this\nbookkeeping leaked a channel.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "071595ebdc66d70219e2d1ce746016f64b2b19e7",
      "tree": "3083b0de17a6d0633420ffda1dfa04a0b4b880b2",
      "parents": [
        "8e2b2b46ea4ca5ef790dddf78b360ed736a62d7c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 13:20:33 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 23:06:25 2010 +0200"
      },
      "message": "firewire: ohci: use memory barriers to order descriptor updates\n\nWhen we append to a DMA program, we need to ensure that the order in\nwhich initialization of the new descriptors and update of the\nbranch_address of the old tail descriptor, as seen by the PCI device,\nhappen as intended.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "cc550216ae9a2993ef3973464714dc1a39ab1f86",
      "tree": "62ffde836c83fe44b7a9edc01d00bcb9ad4f4ad6",
      "parents": [
        "bf54e1462b9192fdef7ea9e2bc44fdc16a4b87bc"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jul 18 13:00:50 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 23 13:36:28 2010 +0200"
      },
      "message": "firewire: cdev: add PHY pinging\n\nThis extends the FW_CDEV_IOC_SEND_PHY_PACKET ioctl() for /dev/fw* to be\nuseful for ping time measurements.  One application for it would be gap\ncount optimization in userspace that is based on ping times rather than\nhop count.  (The latter is implemented in firewire-core itself but is\nnot applicable to beta PHYs that act as repeater.)\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "bf54e1462b9192fdef7ea9e2bc44fdc16a4b87bc",
      "tree": "31ec8e4e13b76d22b7bf9f93ea620e88911fe416",
      "parents": [
        "850bb6f23b93c04ce1e4509a87fa607dc17d97c1"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 16 22:25:51 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 23 13:36:28 2010 +0200"
      },
      "message": "firewire: cdev: add PHY packet reception\n\nAdd an FW_CDEV_IOC_RECEIVE_PHY_PACKETS ioctl() and\nFW_CDEV_EVENT_PHY_PACKET_RECEIVED poll()/read() event for /dev/fw*.\nThis can be used to get information from remote PHYs by remote access\nPHY packets.\n\nThis is also the 2nd half of the functionality (the receive part) to\nsupport a userspace implementation of a VersaPHY transaction layer.\n\nSafety considerations:\n\n  - PHY packets are generally broadcasts, hence some kind of elevated\n    privileges should be required of a process to be able to listen in\n    on PHY packets.  This implementation assumes that a process that is\n    allowed to open the /dev/fw* of a local node does have this\n    privilege.\n\n    There was an inconclusive discussion about introducing POSIX\n    capabilities as a means to check for user privileges for these\n    kinds of operations.\n\nOther limitations:\n\n  - PHY packet reception may be switched on by ioctl() but cannot be\n    switched off again.  It would be trivial to provide an off switch,\n    but this is not worth the code.  The client should simply close()\n    the fd then, or just ignore further events.\n\n  - For sake of simplicity of API and kernel-side implementation, no\n    filter per packet content is provided.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "02d37bed188c500ee7afb0a2dc6b65a80704c58e",
      "tree": "a019891672a1505e35eb15fa2621caffecff2c80",
      "parents": [
        "8b4f70ba4967cae90d128857af1382026a24230a"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 08 16:09:06 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 13 09:58:27 2010 +0200"
      },
      "message": "firewire: core: integrate software-forced bus resets with bus management\n\nBus resets which are triggered\n  - by the kernel drivers after updates of the local nodes\u0027 config ROM,\n  - by userspace software via ioctl\nshall be deferred until after \u003e\u003d2 seconds after the last bus reset.\n\nIf multiple modifications of the local nodes\u0027 config ROM happen in a row,\nonly a single bus reset should happen after them.\n\nWhen the local node\u0027s link goes from inactive to active or vice versa,\nand at the two occasions of bus resets mentioned above --- and if the\ncurrent gap count differs from 63 --- the bus reset should be preceded\nby a PHY configuration packet that reaffirms the gap count.  Otherwise a\nbus manager would have to reset the bus again right after that.\n\nThis is necessary to promote bus stability, e.g. leave grace periods for\nallocations and reallocations of isochronous channels and bandwidth,\nSBP-2 reconnections etc.; see IEEE 1394 clause 8.2.1.\n\nThis change implements all of the above by moving bus reset initiation\ninto a delayed work (except for bus resets which are triggered by the\nbus manager workqueue job and are performed there immediately).  It\ncomes with a necessary addition to the card driver methods that allows\nto get the current gap count from PHY registers.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "0fcff4e39323f466a47684d7c8ffa77e1be86c8a",
      "tree": "cdbe9d239ae59c18a48a34d937da3f658c61e873",
      "parents": [
        "b384cf18873da1ed100662aa7373edf5883a1c24"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 12 20:35:52 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 19 13:01:41 2010 +0200"
      },
      "message": "firewire: rename CSR access driver methods\n\nRather than \"read a Control and Status Registers (CSR) Architecture\nregister\" I prefer to say \"read a Control and Status Register\".\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c8a94ded57e9cc2498d401b2f5c856213a3e19fb",
      "tree": "8fd6a196ff953270c03700dd682108baf3ee369b",
      "parents": [
        "db3c9cc105ee844f6cd7a1beb9926fb8e9a093ae"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 12 20:34:50 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 19 13:01:41 2010 +0200"
      },
      "message": "firewire: normalize STATE_CLEAR/SET CSR access interface\n\nPush the maintenance of STATE_CLEAR/SET.abdicate down into the card\ndriver.  This way, the read/write_csr_reg driver method works uniformly\nacross all CSR offsets.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "db3c9cc105ee844f6cd7a1beb9926fb8e9a093ae",
      "tree": "5fe981b7be4ffb97a506e23836d6c81a61dc8c91",
      "parents": [
        "e847cc832bab50aad939a0c30414cd986637564d"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 12 20:30:21 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 19 13:01:41 2010 +0200"
      },
      "message": "firewire: replace get_features card driver hook\n\nby feature variables in the fw_card struct.  The hook appeared to be an\nunnecessary abstraction in the card driver interface.\n\nCleaner would be to pass those feature flags as arguments to\nfw_card_initialize() or fw_card_add(), but the FairnessControl register\nis in the SCLK domain and may therefore not be accessible while Link\nPower Status is off, i.e. before the card-\u003edriver-\u003eenable call from\nfw_card_add().\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "65b2742ac002f554f6ca0c2eab84cc62400eafdf",
      "tree": "a13b0dc0883a5e126f2577f8061705c4c38debc0",
      "parents": [
        "c374ab424249b6ab91b1aee7460419d3f2c321df"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 12 20:26:51 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 19 13:01:40 2010 +0200"
      },
      "message": "firewire: \u0027add CSR_... support\u0027 addendum\n\nAdd a comment on which of the conflicting NODE_IDS specifications we\nimplement.  Reduce a comment on rather irrelevant register bits that can\nall be looked up in the spec (or from now on in the code history).\nDirectly include the required indirectly included bug.h.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e91b2787d0a2e4719b016e8dec0afd2d5ab6c30f",
      "tree": "e76a3665243ed9fb7275228d9a14dcb0eb5b567a",
      "parents": [
        "7e0e314f198d5048b74c8f0ef9f4c1c02e5ecfc9"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:40:49 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:40:49 2010 +0200"
      },
      "message": "firewire: allocate broadcast channel in hardware\n\nOn OHCI 1.1 controllers, let the hardware allocate the broadcast channel\nautomatically.  This removes a theoretical race condition directly after\na bus reset where it could be possible to read the channel allocation\nregister with channel 31 still being unallocated.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "4ffb7a6a066e4be4577976d1c08e237c7479770a",
      "tree": "fd4c275e8ef894d60602e1b4d1f81150e54b32f8",
      "parents": [
        "3d1f46eb60b155c705e389ecdf313f11b4b91976"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:36:37 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:36:37 2010 +0200"
      },
      "message": "firewire: add CSR cmstr support\n\nImplement the cmstr bit, which is required for cycle master capable\nnodes and tested for by the Base 1394 Test Suite.\n\nThis bit allows the bus master to disable cycle start packets; there are\nbus master implementations that actually do this.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "a1a1132bd83d0aea51d4f19be4b4a58a064a0131",
      "tree": "93352d6aa9fd8eaa0521fbeb65853cd9f485666e",
      "parents": [
        "27a2329f8235d6ce637463f5d83e98d760ef006e"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:35:06 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:35:06 2010 +0200"
      },
      "message": "firewire: add CSR PRIORITY_BUDGET support\n\nIf supported by the OHCI controller, implement the PRIORITY_BUDGET\nregister, which is required for nodes that can use asynchronous\npriority arbitration.\n\nTo allow the core to determine what features the lowlevel device\nsupports, add a new card driver callback.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "27a2329f8235d6ce637463f5d83e98d760ef006e",
      "tree": "dcc3b1a62d92d407f38744a93914742e9eed1816",
      "parents": [
        "a48777e03ad53777ed119a5f86dd22a6c5a378ad"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:34:13 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:34:13 2010 +0200"
      },
      "message": "firewire: add CSR BUSY_TIMEOUT support\n\nImplement the BUSY_TIMEOUT register, which is required for nodes that\nsupport retries.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "a48777e03ad53777ed119a5f86dd22a6c5a378ad",
      "tree": "651a3fb567a2b9d6ab111ff07415d87397ba8202",
      "parents": [
        "9ab5071cd4a16001e4ba790172a7da5e4172462b"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:33:07 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:33:07 2010 +0200"
      },
      "message": "firewire: add CSR BUS_TIME support\n\nImplement the BUS_TIME register, which is required for cycle master\ncapable nodes and tested for by the Base 1393 Test Suite.  Even when\nthere is not yet bus master initialization support, this register allows\nus to work together with other bus masters.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "9ab5071cd4a16001e4ba790172a7da5e4172462b",
      "tree": "bb1ba598d4f2df93b661411c833b60bb953e3390",
      "parents": [
        "8e4b50f94e8c1435a3e0ece42b7f97bc857d0145"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:26:48 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:26:48 2010 +0200"
      },
      "message": "firewire: add CSR CYCLE_TIME write support\n\nThe specification requires that CYCLE_TIME is writable so that it can be\ninitialized, so we better implement it.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "506f1a31932747f56a5029d5b3c14b1b68f41ccc",
      "tree": "04dfb94980fc95cfc2c458fc62e6b77996c8145b",
      "parents": [
        "60d32970c5a32e8c4f340a9e41993759ad658ef2"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:25:19 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:25:19 2010 +0200"
      },
      "message": "firewire: add CSR NODE_IDS support\n\nThe NODE_IDS register, and especially its bus_id field, is quite\nuseless because 1394.1 requires that the bus_id field always stays\n0x3ff.  However, the 1394 specification requires this register on all\ntransaction capable nodes, and the Base 1394 Test Suite tests for it,\nso we better implement it.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "60d32970c5a32e8c4f340a9e41993759ad658ef2",
      "tree": "a7f60c934ae250f0291622cb02540638ef7cbf6d",
      "parents": [
        "3e07ec0eee1662f89e57f84aff625065beb2b209"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:24:35 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:24:35 2010 +0200"
      },
      "message": "firewire: add read_csr_reg driver callback\n\nTo prepare for the following additions of more OHCI-implemented CSR\nregisters, replace the get_cycle_time driver callback with a generic\nCSR register callback.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "153e3979201b76dbd5788f032fb683e95121e159",
      "tree": "aae0a3a5dcbc0eb815e7030176b03c84da8792b9",
      "parents": [
        "f9c70f9129f2d88645c3a26711302a7f6ba9afd0"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:22:07 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:22:07 2010 +0200"
      },
      "message": "firewire: ohci: speed up PHY register accesses\n\nMost PHY chips, when idle, can complete a register access in the time\nneeded for two or three PCI read transactions; bigger delays occur only\nwhen data is currently being moved over the link/PHY interface.  So if\nwe busy-wait a few times when waiting for the register access to finish,\nit is likely that we can finish without having to sleep.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "262444eecce40950af19ea4d75a3dc03b3c07283",
      "tree": "87b465d2bdc2cc600807910d372e68ba668bda8a",
      "parents": [
        "148c7866c31d93f8c79366189075f5a26ad4556c"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Sat Jun 05 12:31:25 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jun 09 19:42:18 2010 +0200"
      },
      "message": "firewire: ohci: add MSI support\n\nThis patch adds support for message-signaled interrupts.\n\nAny native PCI-Express OHCI controller should support MSI, but most are\njust PCI cores behind a PCI-E/PCI bridge.  The only chips that are known\nto claim to support MSI are the Lucent/Agere/LSI FW643 and the VIA\nVT6315, none of which I have been able to test.\n\nDue to the high level of trust I have in the competence of these and any\nfuture chip makers, I thought it a good idea to add a disable-MSI quirk.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n\nTested Agere FW643 rev 07 [11c1:5901] and JMicron JMB381 [197b:2380].\nAdded a quirks list entry for JMB38X since it kept its count of MSI\nevents consistently at zero.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "148c7866c31d93f8c79366189075f5a26ad4556c",
      "tree": "2b82bfd64fcdf04a2fbb6bfca78e27c9c609110f",
      "parents": [
        "d8c1fa4af0f311363d9f9cf1014b11d31a99ff10"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 05 11:46:49 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jun 09 19:42:18 2010 +0200"
      },
      "message": "firewire: ohci: do not enable interrupts without the handler\n\nOn 26 Apr 2010, Clemens Ladisch wrote:\n\u003e In theory, none of the interrupts should occur before the link is\n\u003e enabled.  In practice, I\u0027d rather make sure to not set the master\n\u003e interrupt enable bit until we have installed the interrupt handler.\n\nand proposed to move OHCI1394_masterIntEnable out of the present\nreg_write() into a new one before the HCControl.linkEnable reg_write().\n\nWhy not defer setting /all/ of the bits until right before linkEnable?\n\nReviewed-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "55ddf14b04bfe5afaab892a8fb12164b803f1dd5",
      "tree": "fd6e6f0b9508628fca8d0cadd4ece199201991b2",
      "parents": [
        "a9a0aff5b56d4c40288c000ff09c3f238b6b6fec",
        "3014420b6b5d0a6483cf5e56c10df180a33e957e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 10:22:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 10:22:06 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  ieee1394: schedule for removal\n  firewire: core: use separate timeout for each transaction\n  firewire: core: Fix tlabel exhaustion problem\n  firewire: core: make transaction label allocation more robust\n  firewire: core: clean up config ROM related defined constants\n  ieee1394: mark char device files as not seekable\n  firewire: cdev: mark char device files as not seekable\n  firewire: ohci: cleanups and fix for nonstandard build without debug facility\n  firewire: ohci: wait for PHY register accesses to complete\n  firewire: ohci: fix up configuration of TI chips\n  firewire: ohci: enable 1394a enhancements\n  firewire: ohci: do not clear PHY interrupt status inadvertently\n  firewire: ohci: add a function for reading PHY registers\n\nTrivial conflicts in Documentation/feature-removal-schedule.txt\n"
    },
    {
      "commit": "f39d01be4c59a61a08d0cb53f615e7016b85d339",
      "tree": "6777590e3ff2ddf4df1d38444ba7d692cd463b7b",
      "parents": [
        "54291263519ac2c9bdda68b23b02fef3808deed4",
        "7db82437cfcac4bdfe79a6323eb554fdfa271623"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:20:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 20 09:20:59 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (44 commits)\n  vlynq: make whole Kconfig-menu dependant on architecture\n  add descriptive comment for TIF_MEMDIE task flag declaration.\n  EEPROM: max6875: Header file cleanup\n  EEPROM: 93cx6: Header file cleanup\n  EEPROM: Header file cleanup\n  agp: use NULL instead of 0 when pointer is needed\n  rtc-v3020: make bitfield unsigned\n  PCI: make bitfield unsigned\n  jbd2: use NULL instead of 0 when pointer is needed\n  cciss: fix shadows sparse warning\n  doc: inode uses a mutex instead of a semaphore.\n  uml: i386: Avoid redefinition of NR_syscalls\n  fix \"seperate\" typos in comments\n  cocbalt_lcdfb: correct sections\n  doc: Change urls for sparse\n  Powerpc: wii: Fix typo in comment\n  i2o: cleanup some exit paths\n  Documentation/: it\u0027s -\u003e its where appropriate\n  UML: Fix compiler warning due to missing task_struct declaration\n  UML: add kernel.h include to signal.c\n  ...\n"
    },
    {
      "commit": "6c9468e9eb1252eaefd94ce7f06e1be9b0b641b1",
      "tree": "797676a336b050bfa1ef879377c07e541b9075d6",
      "parents": [
        "4cb3ca7cd7e2cae8d1daf5345ec99a1e8502cf3f",
        "c81eddb0e3728661d1585fbc564449c94165cc36"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Apr 23 02:08:44 2010 +0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Apr 23 02:08:44 2010 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-next\n"
    },
    {
      "commit": "cfc94b2c9ac603b20db54225408df6ed80188dcd",
      "tree": "6e5b21adac556242b89931c4d0929b66efb8c0b9",
      "parents": [
        "4c6a3999651741419cd3cc4303cf0c2be07d89bc",
        "e1393667be574807a13bfaf1bb471f5fd1a5287b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 22 12:54:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 22 12:54:54 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: ohci: wait for local CSR lock access to finish\n  firewire: ohci: prevent aliasing of locally handled register addresses\n  firewire: core: fw_iso_resource_manage: return -EBUSY when out of resources\n  firewire: core: fix retries calculation in iso manage_channel()\n  firewire: cdev: fix cut+paste mistake in disclaimer\n"
    },
    {
      "commit": "e1393667be574807a13bfaf1bb471f5fd1a5287b",
      "tree": "5f2084f1a5099062cb27e74765ec3cd8a69c3489",
      "parents": [
        "2608203daf5f87311c6e5d36e5de5efcb14aab24"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Apr 12 10:35:44 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Apr 19 19:58:32 2010 +0200"
      },
      "message": "firewire: ohci: wait for local CSR lock access to finish\n\nAdd a loop to wait for the controller to finish a locally-initiated CSR\nlock operation.  Google shows some occurrences of the \"swap not done\nyet\" message which might indicate that some OHCI controllers are not\nfast enough to do the lock/swap in the time needed for one PCI access.\n\nThis also correctly handles the case where the lock operation did not\nfinish, instead of silently returning an uninitialized value.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "2608203daf5f87311c6e5d36e5de5efcb14aab24",
      "tree": "f0060813795c68ab988a998c4cced16d67139ded",
      "parents": [
        "d6372b6e7c6142e6cc2108b3b850584cd7ade106"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Apr 12 10:35:30 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Apr 19 19:58:32 2010 +0200"
      },
      "message": "firewire: ohci: prevent aliasing of locally handled register addresses\n\nWe must compute the offset from the CSR register base with the\nfull 48 address bits to prevent matching with addresses whose\nlower 32 bits happen to be equal with one of the specially\nhandled registers.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5da3dac8d99c9933f12286fd73fa18e26f768bea",
      "tree": "8db17c8e7996c92381920a0e97380a5adc8a6d7a",
      "parents": [
        "35d999b12037b5ea0152889232629c25d45b0e26"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 02 14:05:02 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:51:14 2010 +0200"
      },
      "message": "firewire: ohci: cleanups and fix for nonstandard build without debug facility\n\n1) Clean up two function names:  The ohci_ prefix is only used in names\nof fw_card_driver hooks.  There were two unnecessary exceptions.\n\n2) Replace empty macros by empty inline functions so that call parameter\ntype checking is available in #ifndef\u0027d builds.\n\n3) CONFIG_FIREWIRE_OHCI_DEBUG is currently a hidden kconfig variable,\nhence is not going to be switched off by anybody.  Still, it can be\nswitched off but then compilation will fail in ohci_enable() at the\nexpression param_debug \u0026 OHCI_PARAM_DEBUG_BUSRESETS.  Add the necessary\ndefinitions in the nonstandard case.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "35d999b12037b5ea0152889232629c25d45b0e26",
      "tree": "4c9838cd44e7f2539f986ff3acbe4c45ce12bc8e",
      "parents": [
        "54672386ccf36ffa21d1de8e75624af83f9b0eeb"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:04:56 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:51:14 2010 +0200"
      },
      "message": "firewire: ohci: wait for PHY register accesses to complete\n\nRather than having the arbitrary msleep(2) pause, let read_phy_reg()\nloop until the link--phy access was finished.\n\nFactor write_phy_reg() out of ohci_update_phy_reg() and of\nread_paged_phy_reg() and let it loop too until the link--phy access was\nfinished.\n\nLike in the older ohci1394 driver, a timeout of 100 milliseconds is\nchosen.  Unlike the old driver, we sleep instead of busy-wait in each\nwaiting loop iteration.  Instead of a loop, the waiting could probably\nalso be implemented interrupt driven, but why bother.  It would require\nup and running interrupt handling before the link was fully configured\nand enabled.\n\nAlso modify functions a bit:  Error return and value return can be\ncombined in read_phy_reg() since the domain of values is only u8.\nLikewise in read_paged_phy_reg().\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "54672386ccf36ffa21d1de8e75624af83f9b0eeb",
      "tree": "4151332eab6070ffcda77012a3afc99e15425b5b",
      "parents": [
        "925e7a6504966b838c519f009086982c68e0666f"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Apr 01 16:43:59 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:51:14 2010 +0200"
      },
      "message": "firewire: ohci: fix up configuration of TI chips\n\nOn TI chips (OHCI-Lynx and later), enable link enhancements features\nthat TI recommends to be used.  None of these are required for proper\noperation, but they are safe and nice to have.\n\nIn theory, these bits should have been set by default, but in practice,\nsome BIOS/EEPROM writers apparently do not read the datasheet, or get\nspooked by names like \"unfair\".\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "925e7a6504966b838c519f009086982c68e0666f",
      "tree": "38ead3a8ae51b973156f6238f7c6b3800d3d7d46",
      "parents": [
        "e7014dada041982ae12ba7fd1967ca0ab0243e04"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Sun Apr 04 15:19:54 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:51:14 2010 +0200"
      },
      "message": "firewire: ohci: enable 1394a enhancements\n\nThe OHCI spec says that, if the programPhyEnable bit is set, the driver\nis responsible for configuring the IEEE1394a enhancements within the PHY\nand the link consistently.  So do this.\n\nAlso add a quirk to allow disabling these enhancements; this is needed\nfor the TSB12LV22 where ack accelerations are buggy (erratum b).\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e7014dada041982ae12ba7fd1967ca0ab0243e04",
      "tree": "b82e8047c6f00cfdfd9254a9cdcb66867a673e74",
      "parents": [
        "4a96b4fcd6b35e9233df07b3c9ab38091edcfe7e"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Apr 01 16:40:18 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:51:14 2010 +0200"
      },
      "message": "firewire: ohci: do not clear PHY interrupt status inadvertently\n\nThe interrupt status bits in PHY register 5 are cleared by writing a one\nbit.  To avoid clearing them unadvertently, do not write them back when\nthey were read as set, but only when they have been explicitly requested\nto be set.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "4a96b4fcd6b35e9233df07b3c9ab38091edcfe7e",
      "tree": "9a1e7500b64d98845607266b8f15b7a5384aa60f",
      "parents": [
        "ca658b1e29d6be939207532e337fb640eb697f71"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Sun Apr 04 15:19:52 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 10 16:51:14 2010 +0200"
      },
      "message": "firewire: ohci: add a function for reading PHY registers\n\nMove the register reading code from ohci_update_phy_reg() into\na function which can be used separately.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "8301b91ba0b2d15c86fdf5357efe7c04eb767a6e",
      "tree": "618f6ef4d1b4a35bba74af004a0aabdde4f315e2",
      "parents": [
        "cf36df6bfb49fd265a39f676bfc9718029fef160"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Wed Mar 17 11:07:55 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Mar 17 23:24:42 2010 +0100"
      },
      "message": "firewire: ohci: add cycle timer quirk for the TI TSB12LV22\n\nAmong the many entries in the TSB12LV22 errata list (TI literature\nnumber SLLS312) is the following:\n\n  PCI Slave reads of the Cycle Timer register may occasionally get an\n  incorrect value.\n  Software may be able to validate value by reading the register\n  multiple times rapidly and evaluating for a reasonable difference.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e (untested)\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (added #define)\n"
    },
    {
      "commit": "88393161210493e317ae391696ee8ef463cb3c23",
      "tree": "6ec81a50d0e8174b415d83948b48cbabd7e54ddb",
      "parents": [
        "932fb06b0898f5883200f1da2e00075f0d70ba9c"
      ],
      "author": {
        "name": "Thomas Weber",
        "email": "swirl@gmx.li",
        "time": "Tue Mar 16 11:47:56 2010 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Mar 16 11:47:56 2010 +0100"
      },
      "message": "Fix typos in comments\n\n[Ss]ytem \u003d\u003e [Ss]ystem\nudpate \u003d\u003e update\nparamters \u003d\u003e parameters\norginal \u003d\u003e original\n\nSigned-off-by: Thomas Weber \u003cswirl@gmx.li\u003e\nAcked-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "6fdb2ee243404c7cbf530387bf904ad1841ebf5b",
      "tree": "f4a3cec81b7dc416b38d7b107ff60ac5c42ad463",
      "parents": [
        "4802f16d512d6e3b36177709d50c05df0ef52a6c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Feb 21 17:59:14 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Feb 24 20:36:55 2010 +0100"
      },
      "message": "firewire: ohci: extend initialization log message\n\nby the number of available isochronous DMA contexts and active quirks\nwhich is occasionally useful information.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "4802f16d512d6e3b36177709d50c05df0ef52a6c",
      "tree": "3d46d5088d41b8e38e7601a1a37c676d54270fe2",
      "parents": [
        "3e9cc2f3b7ddabbbfc9abd043887030c669380aa"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Feb 21 17:58:52 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Feb 24 20:36:55 2010 +0100"
      },
      "message": "firewire: ohci: fix IR/IT context mask mixup\n\nThis bug was present in firewire-ohci since day one:  The number of\navailable isochronous receive DMA contexts was mixed up with that of\navailable isochronous transmit DMA contexts.\n\nThis is harmless on a few chips which offer the same number of contexts\nin both directions, but most chips nowadays implement only the standard\nminimum of 4 IR contexts, but 8 IT contexts.  If a user attempted to run\na lot of IR contexts at once, results with more than four were therefore\nunpredictable.  I suppose the controller would simply refuse to start\nDMA of any unimplemented context.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "3e9cc2f3b7ddabbbfc9abd043887030c669380aa",
      "tree": "1495ea0e7fa0861be914492d7bb7b5518fb34a34",
      "parents": [
        "4a635593f447443459fb92a482b5cc6d1dd15199"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Feb 21 17:58:29 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Feb 24 20:36:55 2010 +0100"
      },
      "message": "firewire: ohci: add module parameter to activate quirk fixes\n\nThis way, we can advise users of precompiled kernel packages to test\nexisting quirk fixes on chips which have not been listed yet, without\nthem having to build a kernel from source.\n\nNote, to use this feature on a machine with more than one controller,\nsteps like these are necessary:\n# lspci | grep 1394\n# ls /sys/bus/pci/drivers/firewire_ohci/\n# echo -n \"0000:03:02.0\" \u003e /sys/bus/pci/drivers/firewire_ohci/unbind\n# echo 2 \u003e /sys/module/firewire_ohci/parameters/quirks\n# echo -n \"0000:03:02.0\" \u003e /sys/bus/pci/drivers/firewire_ohci/bind\n# echo 0 \u003e /sys/module/firewire_ohci/parameters/quirks\n\nThe parameter can also be used to switch off quirk flags that were\nhardwired into firewire-ohci\u0027s quirks table.  Simply specify a non-zero\nquirks value but without any known flags, e.g. 0x100.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "4a635593f447443459fb92a482b5cc6d1dd15199",
      "tree": "a3821827971de21daa1dd56f760064f8d3ead604",
      "parents": [
        "ecb1cf9c446ad7e8248160fe6797cd9bed817f24"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Feb 21 17:58:01 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Feb 24 20:36:55 2010 +0100"
      },
      "message": "firewire: ohci: use an ID table for quirks detection\n\nWe don\u0027t have a lot of quirks to take into account (especially since\ndual-buffer IR is out of the picture), but still, a table-based approach\nis more organized than a series of if () clauses.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "ecb1cf9c446ad7e8248160fe6797cd9bed817f24",
      "tree": "b31a52f938f7eee08f26455c2602bb8aca94bd9e",
      "parents": [
        "6498ba04aee69540f8f586438f90d58e5b8e6936"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Feb 21 17:57:32 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Feb 24 20:36:55 2010 +0100"
      },
      "message": "firewire: ohci: reorder struct fw_ohci for better cache efficiency\n\nThe config_rom struct members are only accessed during relatively\ninfrequent self-ID-complete interrupts and only if the local config ROM\nwas changed, while the ar_, at_, ir_, it_ members are used very\nfrequently during I/O.  Hence move the config_rom members further down.\n\nMore importantly, make the huge self_id_buffer member the last one; this\nis only accessed in self-ID-complete interrupts.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "6498ba04aee69540f8f586438f90d58e5b8e6936",
      "tree": "07f085b966af88265cbf36f30464f6f3943ecd77",
      "parents": [
        "64582298b9c29535188380f488873e7d2196a2eb"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Feb 21 17:57:05 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Feb 24 20:36:55 2010 +0100"
      },
      "message": "firewire: ohci: remove unused dualbuffer IR code\n\nThis code was no longer used since 2.6.33, \"firewire: ohci: always use\npacket-per-buffer mode for isochronous reception\" commit 090699c0.  If\nanybody needs this code in the future for special purposes, it can be\nbrought back in.  But it must not be re-enabled by default; drivers\n(kernelspace or userspace drivers) should only get this mode if they\nexplicitly request it.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "109d28152b6e9d5de64cd23e3bc08885ccb3d1ef",
      "tree": "b7b8863faa05254781acfb85cc41da3eef467c6b",
      "parents": [
        "168cf9af699e87d5a6f44b684583714ecabb8e71",
        "60b341b778cc2929df16c0a504c91621b3c6a4ad"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Feb 24 20:31:04 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Feb 24 20:33:45 2010 +0100"
      },
      "message": "Merge tag \u0027v2.6.33\u0027 for its firewire changes since last branch point\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "168cf9af699e87d5a6f44b684583714ecabb8e71",
      "tree": "2f491d28a4a129caf7c2be306aec33c437a5cb30",
      "parents": [
        "4a9bde9b8ab55a2bb51b57cad215a97bcf80bae2"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Feb 14 18:49:18 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Feb 20 22:33:14 2010 +0100"
      },
      "message": "firewire: remove incomplete Bus_Time CSR support\n\nThe current implementation of Bus_Time read access was buggy since it\ndid not ensure that Bus_Time.second_count_hi and second_count_lo came\nfrom the same 128 seconds period.\n\nReported-by: Håkan Johansson \u003cf96hajo@chalmers.se\u003e\n\nInstead of a fix, remove Bus_Time register support altogether.  The spec\nrequires all cycle master capable nodes to implement this (all Linux\nnodes are cycle master capable) while it also says that it \"may\" be\ninitialized by the bus manager or by the IRM standing in for a bus\nmanager.  (Neither Linux\u0027 firewire-core nor ieee1394 nodemgr implement\nthis.)\n\nSince we cannot rely on Bus_Time having been initialized by a bus\nmanager, it is better to return an error instead of a nonsensical value\non a read request to Bus_Time.\n\nAlternatively, we could fix the Bus_Time read integrity bug _and_\nimplement (a) cycle master\u0027s write support of the register as well as\n(b) bus manager\u0027s Bus_Time initialization service, i.e. preservation of\nthe Bus_Time when the cycle master node of a bus changes.  However, that\nwould be quite some code for a feature that is unreliable to begin with\nand very likely unused in practice.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "4a9bde9b8ab55a2bb51b57cad215a97bcf80bae2",
      "tree": "e36282d7ed7e39f499e93f413cad57897477c53f",
      "parents": [
        "1c1517efe173599ca2f1526ce7a04521cd424a9f"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Feb 20 22:24:43 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Feb 20 22:33:13 2010 +0100"
      },
      "message": "firewire: get_cycle_timer optimization and cleanup\n\nohci:  Break out of the retry loop if too many attempts were necessary.\nThis may theoretically happen if the chip is fatally defective or if the\nget_cycle_timer ioctl was performed after a CardBus controller was\nejected.\n\nAlso micro-optimize the loop by re-using the last two register reads in\nthe next iteration, remove a questionable inline keyword, and shuffle a\ncomment around.\n\ncore:  ioctl_get_cycle_timer() is always called with interrupts on,\ntherefore local_irq_save() can be replaced by local_irq_disable().\nDisabled local IRQs imply disabled preemption, hence preempt_disable()\ncan be removed.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "1c1517efe173599ca2f1526ce7a04521cd424a9f",
      "tree": "72c9cfdb9481c689ecad6573e12e766ca5038cbc",
      "parents": [
        "b677532b971276f48e82578b4d829fb4382e7b41"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Feb 14 18:47:07 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Feb 19 20:51:10 2010 +0100"
      },
      "message": "firewire: ohci: enable cycle timer fix on ALi and NEC controllers\n\nDiscussed in \"read_cycle_timer backwards for sub-cycle 0000, 0001\",\nhttp://thread.gmane.org/gmane.linux.kernel.firewire.devel/13704\n\nKnown bad controllers:\n  ALi M5271, listed by lspci as M5253 [10b9:5253]\n  NEC OrangeLink [1033:00cd] (rev 03)\n  NEC uPD72874 [1033:00f2] (rev 01)\n  VIA VT6306 [1106:3044] (rev 46)\n  VIA VT6308P, listed by lspci as rev c0\n\nReported-by: Pieter Palmers \u003cpieterp@joow.be\u003e\nReported-by: Håkan Johansson \u003cf96hajo@chalmers.se\u003e\nReported-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b677532b971276f48e82578b4d829fb4382e7b41",
      "tree": "5f773a4d65614872c619109595c09b8f9c93bda1",
      "parents": [
        "a67483d2be12dfc5563c09e6169bec9a88f434b0"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Wed Jan 20 09:58:02 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Feb 19 20:51:10 2010 +0100"
      },
      "message": "firewire: ohci: work around cycle timer bugs on VIA controllers\n\nVIA controllers sometimes return an inconsistent value when reading the\nisochronous cycle timer register.  To work around this, read the\nregister multiple times and add consistency checks.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nReported-by: Pieter Palmers \u003cpieterp@joow.be\u003e\nReported-by: Håkan Johansson \u003cf96hajo@chalmers.se\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "7f51a100bba517196ac4bdf29408d20ee1c771e8",
      "tree": "6e1af632f6a3f5ffd635a07c181125609297977a",
      "parents": [
        "110f82d7a2e0ff5a17617a9672f1ccb7e44bc0c6"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Feb 08 08:30:03 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Feb 14 15:10:41 2010 +0100"
      },
      "message": "firewire: ohci: retransmit isochronous transmit packets on cycle loss\n\nIn isochronous transmit DMA descriptors, link the skip address pointer\nback to the descriptor itself.  When a cycle is lost, the controller\nwill send the packet in the next cycle, instead of terminating the\nentire DMA program.\n\nThere are two reasons for this:\n\n* This behaviour is compatible with the old IEEE1394 stack.  Old\n  applications would not expect the DMA program to stop in this case.\n\n* Since the OHCI driver does not report any uncompleted packets, the\n  context would stop silently; clients would not have any chance to\n  detect and handle this error without a watchdog timer.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n\nPieter Palmers notes:\n\n\"The reason I added this retry behavior to the old stack is because some\ncards now and then fail to send a packet (e.g. the o2micro card in my\ndell laptop).  I couldn\u0027t figure out why exactly this happens, my best\nguess is that the card cannot fetch the payload data on time.  This\nhappens much more frequently when sending large packets, which leads me\nto suspect that there are some contention issues with the DMA that fills\nthe transmit FIFO.\n\nIn the old stack it was a pretty critical issue as it resulted in a\nfreeze of the userspace application.\n\nThe omission of a packet doesn\u0027t necessarily have to be an issue.  E.g.\nin IEC61883 streams the DBC field can be used to detect discontinuities\nin the stream.  So as long as the other side doesn\u0027t bail when no\n[packet] is present in a cycle, there is not really a problem.\n\nI\u0027m not convinced though that retrying is the proper solution, but it is\nsimple and effective for what it had to do.  And I think there are no\nreasons not to do it this way.  Userspace can still detect this by\nchecking the cycle the descriptor was sent in.\"\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (changelog, comment)\n"
    },
    {
      "commit": "7a481436787cbc932af6c407b317ac603969a242",
      "tree": "b58660247f56926f591b06bd9b1e77280beef51e",
      "parents": [
        "281e20323ab72180137824a298ee9e21e6f9acf6"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jan 26 21:39:07 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jan 27 18:24:53 2010 +0100"
      },
      "message": "firewire: ohci: fix crashes with TSB43AB23 on 64bit systems\n\nUnsurprisingly, Texas Instruments TSB43AB23 exhibits the same behaviour\nas TSB43AB22/A in dual buffer IR DMA mode:  If descriptors are located\nat physical addresses above the 31 bit address range (2 GB), the\ncontroller will overwrite random memory.  With luck, this merely\nprevents video reception.  With only a little less luck, the machine\ncrashes.\n\nWe use the same workaround here as with TSB43AB22/A:  Switch off the\ndual buffer capability flag and use packet-per-buffer IR DMA instead.\nAnother possible workaround would be to limit the coherent DMA mask to\n31 bits.\n\nIn Linux 2.6.33, this change serves effectively only as documentation\nsince dual buffer mode is not used for any controller anymore.  But\nsomebody might want to re-enable it in the future to make use of\nfeatures of dual buffer DMA that are not available in packet-per-buffer\nmode.\n\nIn Linux 2.6.32 and older, this update is vital for anyone with this\ncontroller, more than 2 GB RAM, a 64 bit kernel, and FireWire video or\naudio applications.\n\nWe have at least four reports:\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d13808\nhttp://marc.info/?l\u003dlinux1394-user\u0026m\u003d126154279004083\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d552142\nhttp://marc.info/?l\u003dlinux1394-user\u0026m\u003d126432246128386\n\nReported-by: Paul Johnson\nReported-by: Ronneil Camara\nReported-by: G Zornetzer\nReported-by: Mark Thompson\nCc: stable@kernel.org\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a67483d2be12dfc5563c09e6169bec9a88f434b0",
      "tree": "fc9988664bd6b969103cea2543a4416774aebf12",
      "parents": [
        "13b302d0a217580c0129b0641b0ca8b592e437b0"
      ],
      "author": {
        "name": "Németh Márton",
        "email": "nm127@freemail.hu",
        "time": "Sun Jan 10 13:14:26 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 10 17:04:19 2010 +0100"
      },
      "message": "firewire: make PCI device id constant\n\nThe id_table field of the struct pci_driver is constant in \u003clinux/pci.h\u003e\nso it is worth to make pci_table also constant.  Found with Coccinelle.\n\nSigned-off-by: Márton Németh \u003cnm127@freemail.hu\u003e\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: cocci@diku.dk\nSigned-off-by: Stefan Richter stefanr@s5r6.in-berlin.de\u003e (changelog)\n"
    },
    {
      "commit": "090699c0530ae5380a9b8511d76f656cc437bb6e",
      "tree": "395c61692df693e6562446b2d23b06793f87a0a4",
      "parents": [
        "cf0e575dcc4cab9fd955e9bec49df7e8ee30a7cf"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Dec 26 01:35:14 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Dec 29 19:58:17 2009 +0100"
      },
      "message": "firewire: ohci: always use packet-per-buffer mode for isochronous reception\n\nThis is a minimal change meant for the short term:  Never set the\nohci-\u003euse_dualbuffer flag to true.\n\nThere are two reasons to do so:\n\n  - Packet-per-buffer mode and dual-buffer mode do not behave the same\n    under certain circumstances, notably if several packets are covered\n    by a single fw_cdev_iso_packet descriptor.\n    http://marc.info/?l\u003dlinux1394-devel\u0026m\u003d124965653718313\n    Therefore the driver stack should not silently choose one or the\n    other mode but should leave the choice to the high-level driver\n    (regardless if kernel driver or userspace driver).  Or simply always\n    only offer packet-per-buffer mode, since a considerable number of\n    controllers, even current ones, does not offer dual-buffer support.\n\n  - Even under circumstances where packet-per-buffer mode and\n    dual-buffer mode behave exactly the same --- notably when used\n    through libraw1394, libdc1394, as well as the current two kernel\n    drivers which use isochronous reception (firewire-net and firedtv)\n    --- we are still faced with the problem that several OHCI 1.1\n    controllers have bugs in dual-buffer mode.  Although it looks like\n    we have identified most of those buggy controllers by now, we\n    cannot be quite sure about that.\n\nSo, use packet-per-buffer by default from now on.  This change should\nbe followed up by a more complete solution:  Either extend the\nin-kernel API and the userspace ABI by a choice between the two IR modes\nor remove all dual-buffer related code from firewire-ohci.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5f1141eb352ea79d849920039503e40dd623fffa",
      "tree": "1378b88a847c483933334d5c3695138bfa6c5a4d",
      "parents": [
        "880188b2433c3af51fa006207d9b13c70d2e5938",
        "8c0c0cc2d9f4c523fde04bdfe41e4380dec8ee54"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 11 15:22:27 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 11 15:22:27 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: ohci: handle receive packets with a data length of zero\n"
    },
    {
      "commit": "8c0c0cc2d9f4c523fde04bdfe41e4380dec8ee54",
      "tree": "eeb3a432eab9e357b332366fe7719fa932e29b88",
      "parents": [
        "af0940dac37545b1e7900b19c464fb6367d3f82f"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Fri Dec 11 14:23:58 2009 -0500"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Dec 11 21:43:45 2009 +0100"
      },
      "message": "firewire: ohci: handle receive packets with a data length of zero\n\nQueueing to receive an ISO packet with a payload length of zero\nsilently does nothing in dualbuffer mode, and crashes the kernel in\npacket-per-buffer mode.  Return an error in dualbuffer mode, because\nthe DMA controller won\u0027t let us do what we want, and work correctly in\npacket-per-buffer mode.\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "bb592cf474404e51cbf3c419fb72fda83c4b7d72",
      "tree": "05823f536d5f095857a7aff732e205d249e4b7a1",
      "parents": [
        "79c9601c2e0dbbe69895d302de4d19f3a31fbd30",
        "af0940dac37545b1e7900b19c464fb6367d3f82f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 08:13:10 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 08 08:13:10 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  ieee1394: Use hweight32\n  firewire: cdev: reduce stack usage by ioctl_dispatch\n  firewire: ohci: 0 may be a valid DMA address\n  firewire: core: WARN on wrong usage of core transaction functions\n  firewire: core: optimize Topology Map creation\n  firewire: core: clarify generate_config_rom usage\n  firewire: optimize config ROM creation\n  firewire: cdev: normalize variable names\n  firewire: normalize style of queue_work wrappers\n  firewire: cdev: fix memory leak in an error path\n"
    },
    {
      "commit": "31769cef2e973544164aa7d0db2e2024660d5e21",
      "tree": "6f3c2ce2e742fa197ac1460012a14eaf09bf3afa",
      "parents": [
        "5ed1f321a71b8549cc2eea26c94fe7943ed01d31"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Sat Nov 21 00:05:56 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Nov 21 00:56:47 2009 +0100"
      },
      "message": "firewire: ohci: pass correct iso xmit timestamps to core\n\nHere is the final set of patches I used to get ffado to work with the\nnew firewire stack.  With these patches, I was able to start ardour\nand record from and playback to my PreSonus Inspire1394 from a\n(mostly) Fedora 12 system.\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\n\nUntil now, firewire-ohci exposed only the transmit cycle of the last\ntransmitted packet at each isochronous transmit complete event.  This\nmade it impossible for FFADO (FireWire audio drivers in userspace) to\nsynchronize audio-out streams.  The fix is to store the timestamp of\neach packet in the iso xmit event.  As a bonus, the transfer status is\nstored too.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5ed1f321a71b8549cc2eea26c94fe7943ed01d31",
      "tree": "c27a802d0feed854a4842805d041bcb44d362f10",
      "parents": [
        "eaf76e0d027a917a013ad8a88a94132d0feab622"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Tue Nov 17 12:29:17 2009 -0500"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Nov 18 20:31:17 2009 +0100"
      },
      "message": "firewire: ohci: Make cycleMatch ISO transmission work\n\nCalling the START_ISO ioctl with a nonnegative cycle paramater has\nnever worked.  Last night I got around to figuring out why.  Most of\nthis patch is a big comment explaining why we enable an interrupt\nsource then don\u0027t actually do anything when we get one.  As the\ncomment says, we should do more, but we don\u0027t have a way to tell\nuserspace what happened. . .\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (edited comment)\n"
    },
    {
      "commit": "19593ffdb6daa6ba691d247a2400cece12687c52",
      "tree": "18c3508bbdb5f2d1b1bf51ac653ec580043a9340",
      "parents": [
        "5b189bf3633c3b73d4f08124a86f3e019953d412"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Oct 14 20:40:10 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Oct 31 11:40:51 2009 +0100"
      },
      "message": "firewire: ohci: 0 may be a valid DMA address\n\nI was told that there are obscure architectures with non-coherent DMA\nwhich may DMA-map to bus address 0.  We shall not use 0 as a magic\nnumber of uninitialized bus address variables.\n\nThe packet-\u003epayload_length \u003e 0 test cannot be used either (except in\nat_context_queue_packet) because local requests are not DMA-mapped\nregardless of payload_length.  Hence add a state flag to struct\nfw_packet.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "8e85973efc87dfae8508f1a3440fd44612897458",
      "tree": "9b8f0f0d1adf5a2611b58565db4d9da0ebd1cc9c",
      "parents": [
        "e21fcf798e246202d7b60e864f1d7302ebaaf41c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Oct 08 00:41:59 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Oct 14 23:10:48 2009 +0200"
      },
      "message": "firewire: optimize config ROM creation\n\nThe config ROM image of the local node was created in CPU byte order,\nthen a temporary big endian copy was created to compute the CRC, and\nfinally the card driver created its own big endian copy.\n\nWe now generate it in big endian byte order in the first place to avoid\none byte order conversion and the temporary on-stack copy of the ROM\nimage (1000 bytes stack usage in process context).  Furthermore, two\n1000 bytes memset()s are replaced by one 1000 bytes - ROM length sized\nmemset.\n\nThe trivial fw_memcpy_{from,to}_be32() helpers are now superfluous and\nremoved.  The newly added __compute_block_crc() function will be folded\ninto fw_compute_block_crc() in a subsequent change.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "928ec5f148e729076e9202e7c78babede628a50c",
      "tree": "2ad9c7263728d6f1ba91f69003873ed80e966328",
      "parents": [
        "64549e9357e5222a73e41aa87372b37abb047720"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Sep 06 18:49:17 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Sep 12 14:48:40 2009 +0200"
      },
      "message": "firewire: ohci: fix Self ID Count register mask (safeguard against buffer overflow)\n\nThe selfIDSize field of Self ID Count is 9 bits wide, and we are only\ninterested in the high 8 bits.  Fix the mask accordingly.  The\npreviously too large mask didn\u0027t do damage though because the next few\nbits in the register are reserved and therefore zero with presently\nexisting hardware.\n\nAlso, check for the maximum possible self ID count of 252 (according to\nOHCI 1.1 clause 11.2 and IEEE 1394a-2000 clause 4.3.4.1, i.e. up to four\nself IDs of up to 63 nodes, even though IEEE 1394 up to edition 2008\ndefines only up to three self IDs per node).  More than 252 self IDs\nwould only happen if the self ID receive DMA unit malfunctioned, which\nwould likely be caught by other self ID buffer checks.  However, check\nit early to be sure.  More than 253 quadlets would overflow the Topology\nMap CSR.\n\nReported-By: PaX Team\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "4fe0badd5882c64dc2dcd8893f9b85db63339736",
      "tree": "d84d7773171be1a0a4cfacd646e0b7e2754a8089",
      "parents": [
        "fc383796a8cc5df0a0c8633a16dd2e9528a16a63"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Aug 28 13:26:03 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Sep 05 15:59:34 2009 +0200"
      },
      "message": "firewire: ohci: fix Ricoh R5C832, video reception\n\nIn dual-buffer DMA mode, no video frames are ever received from R5C832\nby libdc1394.  Fallback to packet-per-buffer DMA works reliably.\nhttp://thread.gmane.org/gmane.linux.kernel.firewire.devel/13393/focus\u003d13476\n\nReported-by: Jonathan Cameron \u003cjic23@cam.ac.uk\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "fc383796a8cc5df0a0c8633a16dd2e9528a16a63",
      "tree": "92a231d28de6d396246a1136099d896a37be2332",
      "parents": [
        "1821bc19d54009b6f5e6462dd79074d728080839"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Aug 28 13:25:15 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Sep 05 15:59:34 2009 +0200"
      },
      "message": "firewire: ohci: fix Agere FW643 and multiple cameras\n\nAn Agere FW643 OHCI 1.1 card works fine for video reception from one\ncamera but fails early if receiving from two cameras.  After a short\nwhile, no IR IRQ events occur and the context control register does not\nreact anymore.  This happens regardless whether both IR DMA contexts are\ndual-buffer or one is dual-buffer and the other packet-per-buffer.\n\nThis can be worked around by disabling dual buffer DMA mode entirely.\nhttp://sourceforge.net/mailarchive/message.php?msg_name\u003d4A7C0594.2020208%40gmail.com\n(Reported by Samuel Audet.)\n\nIn another report (by Jonathan Cameron), an FW643 works OK with two\ncameras in dual buffer mode.  Whether this is due to different chip\nrevisions or different usage patterns (different video formats) is not\nyet clear.  However, as far as the current capabilities of\nfirewire-core\u0027s isochronous I/O interface are concerned, simply\nswitching off dual-buffer on non-working and working FW643s alike is not\na problem in practice.  We only need to revisit this issue if we are\ngoing to enhance the interface, e.g. so that applications can explicitly\nchoose modes.\n\nReported-by: Samuel Audet \u003csamuel.audet@gmail.com\u003e\nReported-by: Jonathan Cameron \u003cjic23@cam.ac.uk\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e71d31da062095d8b0b02a26fb5e8879e8d3d0de",
      "tree": "6d45660ec489d9d58bad51a02d8d8877b534e81b",
      "parents": [
        "77c9a5daa9c4d9b37812c9c69c7bcbb3f9399c3c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jun 05 16:26:18 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jun 05 16:26:18 2009 +0200"
      },
      "message": "firewire: rename source files\n\nThe source files of firewire-core, firewire-ohci, firewire-sbp2, i.e.\n \"drivers/firewire/fw-*.c\"\nare renamed to\n \"drivers/firewire/core-*.c\",\n \"drivers/firewire/ohci.c\",\n \"drivers/firewire/sbp2.c\".\n\nThe old fw- prefix was redundant to the directory name.  The new core-\nprefix distinguishes the files according to which driver they belong to.\n\nThis change comes a little late, but still before further firewire\ndrivers are added as anticipated RSN.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "77c9a5daa9c4d9b37812c9c69c7bcbb3f9399c3c",
      "tree": "54ea3c48e0663ef1b9f227ffff7710f0ea03f9a1",
      "parents": [
        "e8ca97021c8eb127bb04aec4e2420e1d66be371d"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jun 05 16:26:18 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jun 05 16:26:18 2009 +0200"
      },
      "message": "firewire: reorganize header files\n\nThe three header files of firewire-core, i.e.\n \"drivers/firewire/fw-device.h\",\n \"drivers/firewire/fw-topology.h\",\n \"drivers/firewire/fw-transaction.h\",\nare replaced by\n \"drivers/firewire/core.h\",\n \"include/linux/firewire.h\".\n\nThe latter includes everything which a firewire high-level driver (like\nfirewire-sbp2) needs besides linux/firewire-constants.h, while core.h\ncontains the rest which is needed by firewire-core itself and by low-\nlevel drivers (card drivers) like firewire-ohci.\n\nHigh-level drivers can now also reside outside of drivers/firewire\nwithout having to add drivers/firewire to the header file search path in\nmakefiles.  At least the firedtv driver will be such a driver.\n\nI also considered to spread the contents of core.h over several files,\none for each .c file where the respective implementation resides.  But\nit turned out that most core .c files will end up including most of the\ncore .h files.  Also, the combined core.h isn\u0027t unreasonably big, and it\nwill lose more of its contents to linux/firewire.h anyway soon when more\nfirewire drivers are added.  (IP-over-1394, firedtv, and there are plans\nfor one or two more.)\n\nFurthermore, fw-ohci.h is renamed to ohci.h.  The name of core.h and\nohci.h is chosen with regard to name changes of the .c files in a\nfollow-up change.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e8ca97021c8eb127bb04aec4e2420e1d66be371d",
      "tree": "bc9e6c3597eff48632f57903e5cd0d3456fe8d7a",
      "parents": [
        "3dcdc50079bc2c9dbc6524518976353f743f7ec8"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jun 04 21:09:38 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jun 05 16:26:17 2009 +0200"
      },
      "message": "firewire: clean up includes\n\nInclude required headers which were only indirectly included.\nRemove unused includes and an unused constant.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "3dcdc50079bc2c9dbc6524518976353f743f7ec8",
      "tree": "ec620a55e21631efee6622f12338fae59b41d1ae",
      "parents": [
        "e41f8d709c31b42129a34305a99d29c38aff75c4"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jun 04 21:08:43 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jun 05 16:26:17 2009 +0200"
      },
      "message": "firewire: ohci: access bus_seconds atomically\n\nIn the unlikely event that card-\u003edriver-\u003eget_bus_time() is called during\na cycle64Seconds interrupt, we could read garbage unless atomic accesses\nare used.\n\nThe switch to atomic ops requires to change the 64 seconds counter from\nunsigned to signed, but this shouldn\u0027t matter to the end result.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "f8c2287c65f8f72000102fc058232669e4540bc4",
      "tree": "a82393fbdd3a2b20f8e499537b10eb9e61dae941",
      "parents": [
        "ba27e1f7bf220799cd3d7503f82bda71b8ebe8c5"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Thu Mar 05 19:08:40 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:49 2009 +0100"
      },
      "message": "firewire: implement asynchronous stream transmission\n\nAllow userspace and other firewire drivers (fw-ipv4 I\u0027m looking at\nyou!) to send Asynchronous Transmit Streams as described in 7.8.3 of\nrelease 1.1 of the 1394 Open Host Controller Interface Specification.\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (tweaks)\n"
    },
    {
      "commit": "e1eff7a393d4a4e3ad1cf65fcba899146840bfd2",
      "tree": "88a040babea1853f40072ed199a78b60f4dcb387",
      "parents": [
        "d01b01787680a1156ff6a554e40baa460bb88efb"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Feb 03 17:55:19 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:48 2009 +0100"
      },
      "message": "firewire: normalize a variable name\n\nStandardize on  if (err)\n                        handle_error;\n           and  if (ret \u003c 0)\n                        handle_error;\n\nDon\u0027t call a variable err if we store values in it which mean success.\nAlso, offset some return statements by a blank line since this how we do\nit in drivers/firewire.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "4817ed240232e89583b0506c2d8e426739af5da3",
      "tree": "95d8220f1cae2df2490488dd35381c7d73a5be7b",
      "parents": [
        "a459b8ab9c176143fecef8ace4b70d6dbd7a8113"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 21 16:39:46 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:41 2009 +0100"
      },
      "message": "firewire: prevent creation of multiple IR DMA contexts for the same channel\n\nOHCI-1394 1.1 clause 10.4.3 says:  \"If more than one IR DMA context\nspecifies receives for packets from the same isochronous channel, the\ncontext destination for that channel\u0027s packets is undefined.\"\n\nAny userspace client and in the future also kernelspace clients can\nallocate IR DMA contexts for any channel.  We don\u0027t want them to\ninterfere with each other, hence it is preferable to return -EBUSY if\nallocation of a second context for a channel is attempted.\n\nNotes:\n  - This limitation is OHCI-1394 specific, therefore its proper place of\n    implementation is down in the low-level driver.\n\n  - Since the \u003clinux/firewire-cdev.h\u003e ABI simply maps one userspace iso\n    client context to one hardware iso context, this OHCI-1394\n    limitation alas requires userspace to implement its own multiplexing\n    of iso reception from the same channel and card to multiple clients\n    when needed.\n\n  - The limitation is independent of channel allocation at the IRM; the\n    latter is really only important for the initiation of iso \n    transmission but not of iso reception.\n\n  - We don\u0027t need to do the same for IT DMA because OHCI-1394 does not\n    have any ties between IT contexts and channels.  Only the voluntary\n    channel allocation protocol via the IRM, globally to the FireWire\n    bus, can ensure proper isochronous transmit behaviour anyway.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "53dca51175cc2f66d21aeb1e70146cca65c53dad",
      "tree": "da729da20cc4ca1cb994fa6659be7f23259f7097",
      "parents": [
        "2dbd7d7e2327b0c2cc4e2de903e1cfa19980a504"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 14 21:47:04 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:40 2009 +0100"
      },
      "message": "firewire: remove line breaks before function names\n\ntype\n    function_name(parameters);\n\nis nice to look at but was not used consistently.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "2dbd7d7e2327b0c2cc4e2de903e1cfa19980a504",
      "tree": "c0efb5bbd26bc2e18a61bf44d0c53db9494a096c",
      "parents": [
        "c490a6dec6cc1b7f0eab56b9fbd565129b3dea2e"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 14 21:45:45 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:39 2009 +0100"
      },
      "message": "firewire: standardize a variable name\n\n\"ret\" is the new \"retval\".\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "1aa292bb1c53500e3ab570b955d03afa97a9404d",
      "tree": "738675d2cd801012b6626628223c2a20c6e5d352",
      "parents": [
        "8e0ee43bc2c3e19db56a4adaa9a9b04ce885cd84"
      ],
      "author": {
        "name": "David Moore",
        "email": "dcm@acm.org",
        "time": "Tue Jul 22 23:23:40 2008 -0700"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:35 2009 +0100"
      },
      "message": "firewire: Include iso timestamp in headers when header_size \u003e 4\n\nPreviously, when an iso context had header_size \u003e 4, the iso header\n(len/tag/channel/tcode/sy) was passed to userspace followed by quadlets\nstripped from the payload.  This patch changes the behavior:\nheader_size \u003d 8 now passes the header quadlet followed by the timestamp\nquadlet.  When header_size \u003e 8, quadlets are stripped from the payload.\nThe header_size \u003d 4 case remains identical.\n\nSince this alters the semantics of the API, the firewire API version\nneeds to be bumped concurrently with this change.\n\nThis change also refactors the header copying code slightly to be much\neasier to read.\n\nSigned-off-by: David Moore \u003cdcm@acm.org\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "8b7b6afaa84708d08139daa08538ca3e56c351f1",
      "tree": "91b1d27a08f6e28c13f8163cc2dfbba4022029f0",
      "parents": [
        "b006854955254a971096c120d4ef115a7c6145fb"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jan 20 19:10:58 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 24 11:17:27 2009 +0100"
      },
      "message": "firewire: ohci: increase AT req. retries, fix ack_busy_X from Panasonic camcorders and others\n\nCamcorders have a tendency to fail read requests to their config ROM and\nwrite request to their FCP command register with ack_busy_X.  This has\nbecome a problem with newer kernels and especially Panasonic camcorders,\ncausing AV/C in dvgrab and kino to fail.  Dvgrab for example frequently\nlogs \"send oops\"; kino reports loss of AV/C control.  I suspect that\nlower CPU scheduling latencies in newer kernels made this issue more\nprominent now.\n\nAccording to\nhttps://sourceforge.net/tracker/?func\u003ddetail\u0026atid\u003d114103\u0026aid\u003d2492640\u0026group_id\u003d14103\nthis can be fixed by configuring the FireWire controller for more\nhardware retries for request transmission; these retries are evidently\nmore successful than libavc1394\u0027s own retry loop (typically 3 tries on\ntop of hardware retries).\n\nPresumably the same issue has been reported at\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d449252 and\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d477279 .\n\nIn a quick test with a JVC camcorder (which didn\u0027t malfunction like the\nreported camcorders), this change decreased the number of ack_busy_X\nfrom 16 in three runs of dvgrab to 4 in three runs of the same capture\nduration.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b006854955254a971096c120d4ef115a7c6145fb",
      "tree": "91c3c3a50c8ed60464701893119d44f63b50f293",
      "parents": [
        "3d36a0df3b473fb53531484df227f2da8bc7494b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jan 05 20:43:23 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 24 11:17:27 2009 +0100"
      },
      "message": "firewire: ohci: change \"context_stop: still active\" log message\n\nThe present message is mostly just noise.  We only need to be notified\nif the \"active\" flag does not go off before the retry loop terminates.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "1d1dc5e83f3299c108a4e44d58cc4bfef48c876a",
      "tree": "4acec6d605d2c04294afa8d5a7699430c34e8449",
      "parents": [
        "ec9a13cdbfc8cf29502096ca69b65f07184a9b2c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Dec 10 00:20:38 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Dec 10 12:45:34 2008 +0100"
      },
      "message": "firewire: fw-ohci: fix IOMMU resource exhaustion\n\nThere is a DMA map/ unmap imbalance whenever a block write request\npacket is sent and then dequeued with ohci_cancel_packet.  The latter\nmay happen frequently if the AR resp tasklet is executed before the AT\nreq tasklet for the same transaction.\n\nAdd the missing dma_unmap_single.  This fixes\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d475156\n\nReported-by: Emmanuel Kowalski\nTested-by: Emmanuel Kowalski\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a1f64819fe9f136c98d572794a35a7e377c951ef",
      "tree": "9e5c7b3c4d45c319838b75cb014cc03d8c29cd65",
      "parents": [
        "cd1f70fdb4823c97328a1f151f328eb36fafd579"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Thu Oct 30 01:41:56 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Oct 31 08:48:25 2008 +0100"
      },
      "message": "firewire: struct device - replace bus_id with dev_name(), dev_set_name()\n\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "7007a0765e33bf89182e069e35ec6009fa54f610",
      "tree": "fd3117ac84b5b951ae459a692e7f14c4af15dd2a",
      "parents": [
        "a55709ba9d27053471f9fca8ee76b41ecefc14cd"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 26 09:50:31 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 26 10:27:00 2008 +0100"
      },
      "message": "firewire: fw-ohci: initialization failure path fixes\n\nFix leaks when pci_probe fails.  Simplify error log strings.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a55709ba9d27053471f9fca8ee76b41ecefc14cd",
      "tree": "e338976917e3926a292c67fcadc59968504d7fcc",
      "parents": [
        "77e557191701afa55ae7320d42ad6458a2ad292e"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Wed Oct 22 15:59:42 2008 -0400"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 26 10:27:00 2008 +0100"
      },
      "message": "firewire: fw-ohci: don\u0027t leak dma memory on module removal\n\nThe transmit and receive context dma memory was not being freed on\nmodule removal.  Neither was the config rom memory.  Fix that.\n\nThe ab-\u003enext assignment is pure paranoia.\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "837b41b5de356aa67abb2cadb5eef3efc7776f91",
      "tree": "b63a9898c9a2b6563d8aec75c2abbec379898613",
      "parents": [
        "211c8d4942edf2f3337820dda101da6b13c8a19a",
        "f05e21b39f7dddcebab03ff329fef5783fea58d4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 27 10:24:06 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 27 10:24:06 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:\n  firewire: state userland requirements in Kconfig help\n  firewire: avoid memleak after phy config transmit failure\n  firewire: fw-ohci: TSB43AB22/A dualbuffer workaround\n  firewire: queue the right number of data\n  firewire: warn on unfinished transactions during card removal\n  firewire: small fw_fill_request cleanup\n  firewire: fully initialize fw_transaction before marking it pending\n  firewire: fix race of bus reset with request transmission\n"
    },
    {
      "commit": "8d8bb39b9eba32dd70e87fd5ad5c5dd4ba118e06",
      "tree": "64090a84f4c4466f9f30ff46c993e0cede379052",
      "parents": [
        "c485b465a031b6f9b9a51300e0ee1f86efc6db87"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Fri Jul 25 19:44:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:03 2008 -0700"
      },
      "message": "dma-mapping: add the device argument to dma_mapping_error()\n\nAdd per-device dma_mapping_ops support for CONFIG_X86_64 as POWER\narchitecture does:\n\nThis enables us to cleanly fix the Calgary IOMMU issue that some devices\nare not behind the IOMMU (http://lkml.org/lkml/2008/5/8/423).\n\nI think that per-device dma_mapping_ops support would be also helpful for\nKVM people to support PCI passthrough but Andi thinks that this makes it\ndifficult to support the PCI passthrough (see the above thread).  So I\nCC\u0027ed this to KVM camp.  Comments are appreciated.\n\nA pointer to dma_mapping_ops to struct dev_archdata is added.  If the\npointer is non NULL, DMA operations in asm/dma-mapping.h use it.  If it\u0027s\nNULL, the system-wide dma_ops pointer is used as before.\n\nIf it\u0027s useful for KVM people, I plan to implement a mechanism to register\na hook called when a new pci (or dma capable) device is created (it works\nwith hot plugging).  It enables IOMMUs to set up an appropriate\ndma_mapping_ops per device.\n\nThe major obstacle is that dma_mapping_error doesn\u0027t take a pointer to the\ndevice unlike other DMA operations.  So x86 can\u0027t have dma_mapping_ops per\ndevice.  Note all the POWER IOMMUs use the same dma_mapping_error function\nso this is not a problem for POWER but x86 IOMMUs use different\ndma_mapping_error functions.\n\nThe first patch adds the device argument to dma_mapping_error.  The patch\nis trivial but large since it touches lots of drivers and dma-mapping.h in\nall the architecture.\n\nThis patch:\n\ndma_mapping_error() doesn\u0027t take a pointer to the device unlike other DMA\noperations.  So we can\u0027t have dma_mapping_ops per device.\n\nNote that POWER already has dma_mapping_ops per device but all the POWER\nIOMMUs use the same dma_mapping_error function.  x86 IOMMUs use device\nargument.\n\n[akpm@linux-foundation.org: fix sge]\n[akpm@linux-foundation.org: fix svc_rdma]\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: fix bnx2x]\n[akpm@linux-foundation.org: fix s2io]\n[akpm@linux-foundation.org: fix pasemi_mac]\n[akpm@linux-foundation.org: fix sdhci]\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: fix sparc]\n[akpm@linux-foundation.org: fix ibmvscsi]\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Muli Ben-Yehuda \u003cmuli@il.ibm.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Avi Kivity \u003cavi@qumranet.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "95984f62c9b0bf6d89ef4f514b1afe73623481de",
      "tree": "2c46b6e7ec4a56de8e65b194c828985af5fe4414",
      "parents": [
        "f9543d0ab6392a9a5bff0034622688dc10d9d225"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 22 18:41:10 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 25 15:41:23 2008 +0200"
      },
      "message": "firewire: fw-ohci: TSB43AB22/A dualbuffer workaround\n\nIsochronous reception in dualbuffer mode is reportedly broken with\nTI TSB43AB22A on x86-64.  Descriptor addresses above 2G have been\ndetermined as the trigger:\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d435550\n\nTwo fixes are possible:\n  - pci_set_consistent_dma_mask(pdev, DMA_31BIT_MASK);\n    at least when IR descriptors are allocated, or\n  - simply don\u0027t use dualbuffer.\nThis fix implements the latter workaround.\n\nBut we keep using dualbuffer on x86-32 which won\u0027t give us highmen (and\nthus physical addresses outside the 31bit range) in coherent DMA memory\nallocations.  Right now we could for example also whitelist PPC32, but\nDMA mapping implementation details are expected to change there.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\n"
    },
    {
      "commit": "bbf094cf3dbd9a969dd17cf52325e9fab8dfbe91",
      "tree": "3f77b6cb4fb5587cb10d735e96404d5d1386f64d",
      "parents": [
        "e534fe16b987780744da351acece2a4699783096"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat May 24 16:46:10 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jul 14 13:06:03 2008 +0200"
      },
      "message": "firewire: remove unused struct members\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "161b96e782ec995c55843101976d9c35b57aa109",
      "tree": "b84cb7fb8ec81c67b8b34087a2a1e926db9bb47b",
      "parents": [
        "5cb84067d646fa3889463129dad8b218806b4698"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 14 14:23:43 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jun 19 00:12:35 2008 +0200"
      },
      "message": "firewire: fw-ohci: unify printk prefixes\n\nThe messages which can be enabled by fw-ohci\u0027s debug module parameter\nare changed from KERN_DEBUG to KERN_NOTICE level and uniformly prefixed\nwith \"firewire_ohci: \".  This further simplifies communication with\nusers when we ask them to capture debug messages.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "affc9c24ade666f9903163c12686da567dbfe06f",
      "tree": "3beff66f52c3201bd24b6dd6777c2942373c9881",
      "parents": [
        "e896ec4302f45fdaf2fc78aec0093eca5478fe28"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jun 05 20:50:53 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jun 19 00:12:35 2008 +0200"
      },
      "message": "firewire: fw-ohci: write selfIDBufferPtr before LinkControl.rcvSelfID\n\nOHCI 1.1 clause 5.10 requires that selfIDBufferPtr is valid when a 1 is\nwritten into LinkControl.rcvSelfID.\n\nThis driver bug has so far not been known to cause harm because most\nchips obviously accept a later selfIDBufferPtr write, at least before\nHCControl.linkEnable is written.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\nSigned-off-by: Kristian Høgsberg \u003ckrh@redhat.com\u003e\n"
    },
    {
      "commit": "e896ec4302f45fdaf2fc78aec0093eca5478fe28",
      "tree": "2fe7eb6553d17401477cb8ae27bd0d9bb43386fe",
      "parents": [
        "ccff962943df539c5860aa120eecc189d70a308b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jun 05 20:49:38 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jun 19 00:12:34 2008 +0200"
      },
      "message": "firewire: fw-ohci: disable PHY packet reception into AR context\n\nWe want the rcvPhyPkt bit in LinkControl off before we start using the\nchip.  However, the spec says that the reset value of it is undefined.\nHence switch it explicitly off.\n\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d244576#c48 shows that for\nexample the nForce2 integrated FireWire controller seems to have it on\nby default.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\n"
    },
    {
      "commit": "ccff962943df539c5860aa120eecc189d70a308b",
      "tree": "645f031d3b751a30e20ce65e364948fb9426f7b2",
      "parents": [
        "0bf607c5b4edd13362e4add6ca1e81f8a9fbd47c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat May 31 19:36:06 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jun 19 00:12:34 2008 +0200"
      },
      "message": "firewire: fw-ohci: use of uninitialized data in AR handler\n\nheader_length and payload_length are filled with random data if an\nunknown tcode was read from the AR buffer (i.e. if the AR buffer\ncontained invalid data).\n\nWe still need a better strategy to recover from this, but at least\nhandle_ar_packet now doesn\u0027t return out of bound buffer addresses\nanymore.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e09770db0fa33baf8df21fbc18aa24a080330c3f",
      "tree": "553239e37806dc2435fe53dbb26a5f27e04d9a37",
      "parents": [
        "15f0d833f63da2fa49aed81480a37d5e896b5b9b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 11 02:23:29 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 18 17:55:36 2008 +0200"
      },
      "message": "firewire: remove unused struct member\n\nrequest_generation is internal to fw-ohci and unneeded in fw_card.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "d34316a4bdcd4fef050da584401c7f4ed22482f2",
      "tree": "4b6650cc815be1364ba4d9952b18818c5b602047",
      "parents": [
        "08ddb2f4c270b5dff063f7dbcd7e9248a52e7c65"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Apr 12 22:31:25 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 18 17:55:35 2008 +0200"
      },
      "message": "firewire: fw-ohci: work around generation bug in TI controllers (fix AV/C and more)\n\nUnlike the ohci1394 driver, fw-ohci uses the selfIDGeneration field of\nbus reset packets to determine the generation of incoming requests as\nper OHCI 1.1 clause 8.4.2.3.  This is more precise --- provided that the\ncontroller inserts the correct generation.  Texas Instruments chips\noften don\u0027t.\n\nThis prevented the transmission of response packets, which for example\nbroke AV/C transactions as used when communicating with miniDV cameras\nand any other AV/C devices.\n\nThere is apparently no way to detect and adjust incorrect generations.\nTherefore we ignore the generation of bus reset packets from TI chips\nand use the generation of the self ID buffer instead.  Alas this is\nreceived at a slightly wrong time.  In rare cases, this could cause us\nto not respond to legitimate requests or to respond to expired requests.\n(The latter is less likely because the bus reset packet AR event is\ntypically handled before the self ID complete event.)\n\nBug reported by Mladen Kuntner, who was extraordinarily patient while\ndealing with the driver maintainers.  Fix confirmed to be required and\neffective for TSB82AA2 and a TSB43AB22 or TSB43AB22A.\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d243081\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\n"
    },
    {
      "commit": "08ddb2f4c270b5dff063f7dbcd7e9248a52e7c65",
      "tree": "25e5764b72854a9ba30bf14d3296010f1977fb19",
      "parents": [
        "a007bb857e0b26f5d8b73c2ff90782d9c0972620"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 11 00:51:15 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 18 17:55:35 2008 +0200"
      },
      "message": "firewire: fw-ohci: extend logging of bus generations and node ID\n\nExtend the logging of \"AR evt_bus_reset, link internal\" to \"AR\nevt_bus_reset, generation ${selfIDGeneration}\".  That way we can check\nwhether this generation matches the one seen in self ID complete event\nlogging.  See OHCI 1.1 clause 8.4.2.3.\n\nAlso extend logging of \"firewire_ohci: * selfIDs, generation *\" by\n\"local node ID ffc*\" in self ID logging to make the local node in AT/AR\nevent logs more obvious.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\n"
    },
    {
      "commit": "a007bb857e0b26f5d8b73c2ff90782d9c0972620",
      "tree": "118f54e70b99dd1315cce57796f7d0a7bbb9c3df",
      "parents": [
        "76f73ca1b291a8d014ff0d2d802c817404dd9887"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Apr 07 22:33:35 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 18 17:55:35 2008 +0200"
      },
      "message": "firewire: fw-ohci: conditionally log busReset interrupts\n\nAdd a debug option to watch bus reset interrupt events.  Half of this\npatch is taken from Jarod Wilson\u0027s first version of the JMicron fix.\n\nBusReset interrupts are only generated if the respective module\nparameter flag was set before the controller is being initialized.\nElse we keep this event masked to reduce IRQ load in normal operation\nand to avoid potential problems with buggy chips.\n\nNote, this is unlike the other IRQ events whose logging can be enabled\nany time after chip initialization.  This and the influence on what\ninterrupts the chip generates is why I added an extra flag for it.\n\nAlso, reorder the debug parameter flags according to their perceived\nusefulness.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\n"
    },
    {
      "commit": "76f73ca1b291a8d014ff0d2d802c817404dd9887",
      "tree": "ffd21353249da5febbe5518d9f8eed6b886b5dbf",
      "parents": [
        "75f7832e3b032c6e4a83c14b58341abd9f2d81ef"
      ],
      "author": {
        "name": "Jarod Wilson",
        "email": "jwilson@redhat.com",
        "time": "Mon Apr 07 22:32:33 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Apr 18 17:55:35 2008 +0200"
      },
      "message": "firewire: fw-ohci: don\u0027t append to AT context when it\u0027s not active\n\nI finally tracked down the issues with this JMicron PCI-e card in my\npossession to a failure to comply with section 7.2.3.2 of the OHCI 1.1\nspecification (thanks to Kristian for the pointer to illustrate that it\nis indeed a flaw in this card, not the driver). The controller should\nsimply flush the packets we\u0027ve appended to its AT queue if a bus reset\noccurs before they\u0027ve been transmitted and we\u0027ll try again, but\nsomething goes wrong and the controller winds up hung.\n\nHowever, we can avoid the problem by simply checking if the\nIntEvent.busReset register had been set before we try appending to the\nAT context. When busReset is set, the AT context is completely halted\nuntil busReset is cleared, so there\u0027s no point in appending AT packets\nuntil the register is cleared. So at_context_queue_packet() now checks\nfor busReset being set, and bails with an RCODE_GENERATION packet ack,\nwhich results in us trying to append the packet again after recognizing\nthe fact there has been a bus reset, and clearing busReset.\n\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    }
  ],
  "next": "75f7832e3b032c6e4a83c14b58341abd9f2d81ef"
}
