)]}'
{
  "log": [
    {
      "commit": "f63bafe55654caf3a62f73500eafd1b89ca6f7ff",
      "tree": "d8c80b71e1197fb805c07282139377e9542421ea",
      "parents": [
        "4148df9b0f38bdd362dd91d52076926c11cbe5a9",
        "ebbb16bffa646f853899ef3fdc0ac7abab888703"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 06 14:03:44 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 06 14:03:44 2009 -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: sbp2: add support for disks \u003e2 TB (and 16 bytes long CDBs)\n  firewire: sbp2: add support for disks \u003e2 TB (and 16 bytes long CDBs)\n  firewire: core: do not DMA-map stack addresses\n"
    },
    {
      "commit": "af2719415a5ceae06f2a6d33e78b555e64697fc8",
      "tree": "30c3a6a5b2dd100e8ecf06d722032f1190cc6710",
      "parents": [
        "6fdc03709433ccc2005f0f593ae9d9dd04f7b485"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jun 30 20:27:59 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 02 21:27:01 2009 +0200"
      },
      "message": "firewire: sbp2: add support for disks \u003e2 TB (and 16 bytes long CDBs)\n\nIncrease the command ORB data structure to transport up to 16 bytes long\nCDBs (instead of 12 bytes), and tell the SCSI mid layer about it.  This\nis notably necessary for READ CAPACITY(16) and friends, i.e. support of\nlarge disks.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "6fdc03709433ccc2005f0f593ae9d9dd04f7b485",
      "tree": "e42e7304084b1b6420d456fbd2a5622e93327a74",
      "parents": [
        "0c53decdd0a9f9c459ccabe0b5f79660bde5375b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 20 13:23:59 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jun 25 19:42:36 2009 +0200"
      },
      "message": "firewire: core: do not DMA-map stack addresses\n\nThe DMA mapping API cannot map on-stack addresses, as explained in\nDocumentation/DMA-mapping.txt.  Convert the two cases of on-stack packet\npayload buffers in firewire-core (payload of lock requests in the bus\nmanager work and in iso resource management) to slab-allocated memory.\n\nThere are a number on-stack buffers for quadlet write or quadlet read\nrequests in firewire-core and firewire-sbp2.  These are harmless; they\nare copied to/ from card driver internal DMA buffers since quadlet\npayloads are inlined with packet headers.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "1053414068bad659479e6efa62a67403b8b1ec0a",
      "tree": "d4096db0f3aa9ca5e6b44c85ab848b7bedbfc37a",
      "parents": [
        "b88f8a546f5dba213938fdfc11e66bc5c2421623",
        "0c53decdd0a9f9c459ccabe0b5f79660bde5375b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 22 21:29:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 22 21:29:52 2009 -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: new stack is no longer experimental\n  firewire: net: better FIFO address range check and rcodes\n  firewire: net: fix card driver reloading\n  firewire: core: fix iso context shutdown on card removal\n  firewire: core: fix DMA unmapping in iso buffer removal\n  firewire: net: adjust net_device ops\n  firewire: net: remove unused code\n  firewire: net: allow for unordered unit discovery\n  firewire: net: style changes\n  firewire: net: add Kconfig item, rename driver\n  firewire: add IPv4 support\n"
    },
    {
      "commit": "0c53decdd0a9f9c459ccabe0b5f79660bde5375b",
      "tree": "b0956ec994028dc65e1e7ce51d05862018971e15",
      "parents": [
        "00635b8ee2b5650fd01f5602ecfa289db336b570"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jun 16 22:36:34 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 21 10:53:26 2009 +0200"
      },
      "message": "firewire: new stack is no longer experimental\n\nThe new stack is now recommended over the old one if used for industrial\nvideo (IIDC/DCAM) or for storage devices (SBP-2) due to better\nperformance, improved compatibility, added features, and security.  It\nshould also be functionally on par with and is more secure than the old\nieee1394 stack in the use case of consumer video devices.\n\nIP-over-1394 support for the new stack is currently emerging, and a\nbackend of the firedtv DVB driver to the new stack should be available\nsoon.\n\nThe one remaining area where the old stack is still required are audio\ndevices, as the new stack is not yet able to support the FFADO FireWire\naudio framework.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "f83b1e616f2f68b56b09b2f5116591981fee0c1c",
      "tree": "d8c423502853b46ec82c58ee31b695552579f7da",
      "parents": [
        "2f38d70fb4e97e7d00e12eaac45790cf6ebd7b22",
        "1e626fdcef61460dc75fe7377f38bb019722b848"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 14:29:46 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 14:29:46 2009 -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: core: use more outbound tlabels\n  firewire: core: don\u0027t update Broadcast_Channel if RFC 2734 conditions aren\u0027t met\n  firewire: core: prepare for non-core children of card devices\n  firewire: core: include linux/uaccess.h instead of asm/uaccess.h\n  firewire: add parent-of-unit accessor\n  firewire: rename source files\n  firewire: reorganize header files\n  firewire: clean up includes\n  firewire: ohci: access bus_seconds atomically\n  firewire: also use vendor ID in root directory for driver matches\n  firewire: share device ID table type with ieee1394\n  firewire: core: add sysfs attribute for easier udev rules\n  firewire: core: check for missing struct update at build time, not run time\n  firewire: core: improve check for local node\n"
    },
    {
      "commit": "00635b8ee2b5650fd01f5602ecfa289db336b570",
      "tree": "cac06b270ad4ad7f4171c3b47206ebb9bb035428",
      "parents": [
        "b01b4babbf204443b5a846a7494546501614cefc"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jun 16 22:35:32 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jun 16 22:48:09 2009 +0200"
      },
      "message": "firewire: net: better FIFO address range check and rcodes\n\nThe AR req handler should not check the generation; higher level code\nis the better place to handle bus generation changes.  The target node\nID just needs to be checked for not being the \"all nodes\" address; in\nthis case don\u0027t handle the request and don\u0027t respond.\n\nUse Address_Error and Type_Error rcodes as appropriate.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b01b4babbf204443b5a846a7494546501614cefc",
      "tree": "7488129b4e41cde0b614d8f999064fc33fd211ca",
      "parents": [
        "d645f4dad056a98089df904294f66b96d04e91b6"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jun 16 20:43:55 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jun 16 22:48:09 2009 +0200"
      },
      "message": "firewire: net: fix card driver reloading\n\nFix some problems from \"firewire: net: allow for unordered unit\ndiscovery\":\n  - fwnet_remove was missing a list_del, causing fwnet_probe to crash if\n    called after fwnet_remove, e.g. if firewire-ohci was unloaded and\n    reloaded.\n  - fwnet_probe should set its new_netdev flag only if it actually\n    allocated a net_device.\n  - Use dev_set_drvdata and dev_get_drvdata instead of deprecated direct\n    access to device.driver_data.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "d645f4dad056a98089df904294f66b96d04e91b6",
      "tree": "993ec9d0c64dac6fb4e1214f213220fbc0e29f63",
      "parents": [
        "29ad14cddd6246d17ff22f496363dfd6b3de8964"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jun 16 19:15:25 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jun 16 22:48:09 2009 +0200"
      },
      "message": "firewire: core: fix iso context shutdown on card removal\n\nIf isochronous contexts existed when firewire-ohci was unloaded, the\ncore iso shutdown functions crashed with NULL dereferences, and buffers\netc. weren\u0027t released.\n\nHow the fix works:  We first copy the card driver\u0027s iso shutdown hooks\ninto the dummy driver, then fw_destroy_nodes notifies upper layers of\ndevices going away, these should shut down (including their iso\ncontexts), wait_for_completion(\u0026card-\u003edone) will be triggered after\nupper layers gave up all fw_device references, after which the card\ndriver\u0027s shutdown proceeds.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "29ad14cddd6246d17ff22f496363dfd6b3de8964",
      "tree": "a7477110ea9c76e553e244af42a2e54ad3e5addb",
      "parents": [
        "1337f8535ac1f41915d9e8aa03d5a3edf2f7c0a5"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jun 15 00:38:50 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jun 16 22:48:09 2009 +0200"
      },
      "message": "firewire: core: fix DMA unmapping in iso buffer removal\n\ndmap_unmap_page() shall use the same direction as dma_map_page().\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "d961450da5e16dae8da276c0a234764872b2307b",
      "tree": "b91bab945c21060e9d687ac0472bf6cf0a44be01",
      "parents": [
        "4b9d0d3b81ec0900971cbe8aba8ba0ae9c08a087"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Thu Apr 30 14:43:31 2009 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Mon Jun 15 21:30:26 2009 -0700"
      },
      "message": "firewire: remove driver_data direct access of struct device\n\nIn the near future, the driver core is going to not allow direct access\nto the driver_data pointer in struct device.  Instead, the functions\ndev_get_drvdata() and dev_set_drvdata() should be used.  These functions\nhave been around since the beginning, so are backwards compatible with\nall older kernel versions.\n\nCc: linux1394-devel@lists.sourceforge.net\nAcked-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nCc: Kristian Hoegsberg \u003ckrh@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "1337f8535ac1f41915d9e8aa03d5a3edf2f7c0a5",
      "tree": "87e11b5184d1a5df659d90fb4cd48183043b247f",
      "parents": [
        "156ce867a6725ea8a24b452469a6dc9f3fa6a161"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 14 11:47:44 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 14 14:26:29 2009 +0200"
      },
      "message": "firewire: net: adjust net_device ops\n\nThe .ndo_tx_timeout callback is currently without function; delete it.\nGive .watchdog_timeo a proper time value; lower it to 2 seconds.\n\nDecrease the .tx_queue_len from 1000 (as in Ethernet card drivers) to 10\nbecause we have only 64 transaction labels available, and responders\nmight have further limits of their AR req contexts.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "156ce867a6725ea8a24b452469a6dc9f3fa6a161",
      "tree": "826d820ed5e2d2155747999ef9f0c87adcc258bc",
      "parents": [
        "5a124d382ea5c97be43c779e4f481455e0287654"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 14 11:46:57 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 14 14:26:29 2009 +0200"
      },
      "message": "firewire: net: remove unused code\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5a124d382ea5c97be43c779e4f481455e0287654",
      "tree": "d77069fe1456932f4ce2872dc6b1f963cb8662c5",
      "parents": [
        "f91e3bd842ec6f5cea245993926ee8ff26250467"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 14 11:45:27 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 14 14:26:29 2009 +0200"
      },
      "message": "firewire: net: allow for unordered unit discovery\n\nDecouple the creation and destruction of the net_device from the order\nof discovery and removal of nodes with RFC 2734 unit directories since\nthere is no reliable order.  The net_device is now created when the\nfirst RFC 2734 unit on a card is discovered, and destroyed when the last\nRFC 2734 unit on a card went away.  This includes all remote units as\nwell as the local unit, which is therefore tracked as a peer now too.\n\nAlso, locking around the list of peers is slightly extended to guard\nagainst peer removal.  As a side effect, fwnet_peer.pdg_lock has become\nsuperfluous and is deleted.\n\nPeer data (max_rec, speed, node ID, generation) are updated more\ncarefully.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "f91e3bd842ec6f5cea245993926ee8ff26250467",
      "tree": "c7b66078c862a85fdc7d21bc2eb61f9c32a530ca",
      "parents": [
        "b9530fd6c3f057bda258c8e2631ad1a25959f4a2"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 07 22:57:53 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 14 14:26:29 2009 +0200"
      },
      "message": "firewire: net: style changes\n\nChange names of types, variables, functions.\nOmit debug code.\nUse get_unaligned*, put_unaligned*.\nAnnotate big endian data.\nHandle errors in __init.\nChange whitespace.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b9530fd6c3f057bda258c8e2631ad1a25959f4a2",
      "tree": "509bc37394a27822b0a98b940f38d4c0401a4a6a",
      "parents": [
        "c76acec6d55107b652a37c90b36c00bc8b04dabb"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 07 22:57:53 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 14 14:26:29 2009 +0200"
      },
      "message": "firewire: net: add Kconfig item, rename driver\n\nThe driver is now called firewire-net.  It might implement the transport\nof other networking protocols in the future, notably IPv6 per RFC 3146.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c76acec6d55107b652a37c90b36c00bc8b04dabb",
      "tree": "f51f4cea0bd006352bc636586717d009e24ef3c3",
      "parents": [
        "1e626fdcef61460dc75fe7377f38bb019722b848"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Mon May 18 13:08:06 2009 -0400"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 14 14:26:28 2009 +0200"
      },
      "message": "firewire: add IPv4 support\n\nImplement IPv4 over IEEE 1394 as per RFC 2734 for the newer firewire\nstack.  This feature has only been present in the older ieee1394 stack\nvia the eth1394 driver.\n\nStill to do:\n  - fix ipv4_priv and ipv4_node lifetime logic\n  - fix determination of speeds and max payloads\n  - fix bus reset handling\n  - fix unaligned memory accesses\n  - fix coding style\n  - further testing/ improvement of fragment reassembly\n  - perhaps multicast support\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (rebased, copyright note, changelog)\n"
    },
    {
      "commit": "1e626fdcef61460dc75fe7377f38bb019722b848",
      "tree": "5ae5587507b07ff4832d1f3c53fe4dd01a8636d3",
      "parents": [
        "837ec787d85fda8d73193a399ebcea0288e4765b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 14 13:23:58 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 14 14:23:42 2009 +0200"
      },
      "message": "firewire: core: use more outbound tlabels\n\nTlabel is a 6 bits wide datum.  Wrap it after 63 rather than 31 for more\nsafety against transaction label exhaustion and potential responders\u0027\ntransaction layer bugs.  (As noted by Guus Sliepen, this change requires\nan expansion of tlabel_mask to 64 bits.)\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "837ec787d85fda8d73193a399ebcea0288e4765b",
      "tree": "813a25088e68dc734966ce5ed4aacada01084996",
      "parents": [
        "099d54143e49d49c33cd25779ca725191df59b73"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jun 09 23:56:55 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 14 11:57:06 2009 +0200"
      },
      "message": "firewire: core: don\u0027t update Broadcast_Channel if RFC 2734 conditions aren\u0027t met\n\nThis extra check will avoid Broadcast_Channel register related traffic\nto many IIDC, SBP-2, and AV/C devices which aren\u0027t IRMC or have a\nmax_rec \u003c 8 (i.e. support \u003c 512 bytes async payload).  This avoids a\nlittle bit of traffic after bus reset and is even more careful with\ndevices which don\u0027t implement this CSR.\n\nThe assumption is that no other protocol than IP over 1394 uses the\nbroadcast channel for streams.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "099d54143e49d49c33cd25779ca725191df59b73",
      "tree": "8237acfc84aa5057ce8c98b1301b6d54cf056ba0",
      "parents": [
        "e034d242593f12533c11742ce38c245a33e57dc7"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 06 18:37:25 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 06 21:45:50 2009 +0200"
      },
      "message": "firewire: core: prepare for non-core children of card devices\n\nThe IP-over-1394 driver will add child devices beneath card devices\nwhich are not of type fw_device.  Hence firewire-core\u0027s callbacks in\ndevice_for_each_child() and device_find_child() need to check for the\ndevice type now.\n\nInitial version written by Jay Fenlason.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e034d242593f12533c11742ce38c245a33e57dc7",
      "tree": "ae970541127274885dc9e1b67792d1b7c66acb0f",
      "parents": [
        "e5110d011e03030926872457f05e49e3d5031737"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 06 18:36:24 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 06 21:45:50 2009 +0200"
      },
      "message": "firewire: core: include linux/uaccess.h instead of asm/uaccess.h\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e5110d011e03030926872457f05e49e3d5031737",
      "tree": "09037ffddcea6f5b8b18ab20035904408d2869ea",
      "parents": [
        "e71d31da062095d8b0b02a26fb5e8879e8d3d0de"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 06 18:35:27 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 06 21:45:50 2009 +0200"
      },
      "message": "firewire: add parent-of-unit accessor\n\nRetrieval of an fw_unit\u0027s parent is a common pattern in high-level code.\nWrap it up as device \u003d fw_parent_device(unit).\n\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": "e41f8d709c31b42129a34305a99d29c38aff75c4",
      "tree": "d361c3818d6e14f96555f0e6700aace29c7c449d",
      "parents": [
        "b3b2988841ac6215e137e34e38b71acc915d1f00"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Feb 16 00:22:05 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jun 05 16:26:17 2009 +0200"
      },
      "message": "firewire: also use vendor ID in root directory for driver matches\n\nDue to AV/C protocol extensions, FireDTV devices need a vendor-specific\ndriver.  But their configuration ROM features a vendor ID only in the\nroot directory, not in the unit directory.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b3b2988841ac6215e137e34e38b71acc915d1f00",
      "tree": "a79df9327881a789f22f97ccebb4618008bf8529",
      "parents": [
        "0210b66dd88a2a1e451901b00378a2068b6ccb35"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Feb 15 23:12:34 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jun 05 16:26:17 2009 +0200"
      },
      "message": "firewire: share device ID table type with ieee1394\n\nThat way, the new firedtv driver will be able to use a single ID table\nin builds against ieee1394 core and/or against firewire core.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "0210b66dd88a2a1e451901b00378a2068b6ccb35",
      "tree": "e1a308f0800a2a0950f1af4e259008af1a62babf",
      "parents": [
        "e5333db9285e088a98f4bad5147bfb0b4665fafb"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat May 23 00:03:29 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jun 01 12:48:49 2009 +0200"
      },
      "message": "firewire: core: add sysfs attribute for easier udev rules\n\nThis adds the attribute /sys/bus/firewire/devices/fw[0-9]+/units.  It\ncan be used in udev rules like the following ones:\n\n# IIDC devices: industrial cameras and some webcams\nSUBSYSTEM\u003d\u003d\"firewire\", ATTR{units}\u003d\u003d\"*0x00a02d:0x00010?*\", GROUP\u003d\"video\"\n\n# AV/C devices: camcorders, set-top boxes, TV sets, audio devices, ...\nSUBSYSTEM\u003d\u003d\"firewire\", ATTR{units}\u003d\u003d\"*0x00a02d:0x010001*\", GROUP\u003d\"video\"\n\nBackground:\n\nfirewire-core manages two device types:\n  - fw_device is a FireWire node.  A character device file is associated\n    with it.\n  - fw_unit is a unit directory on a node.  Each fw_device may have 0..n\n    children of type fw_unit.  The units tell us what kinds of protocols\n    a node implements.\n\nWe want to set ownership or ACLs or permissions of the character device\nfile of an fw_device, or/and create symlinks to it, based on available\nprotocols.  Until now udev rules had to look at the fw_unit devices and\nthen modify their parent\u0027s character device file accordingly.  This is\nproblematic for two reasons:  1) It happens sometime after the creation\nof the fw_device, 2) an access policy may require that information from\nall children is evaluated before a decision about the parent is made.\n\nProblem 1) can ultimately not be avoided since this is the nature of\nFireWire nodes:  They may add or remove unit directories at any point in\ntime.\n\nHowever, we can still help userland a lot by providing the protocol type\ninformation of all units in a summary sysfs attribute directly at the\nfw_device.  This way,\n   - the information is immediately available at the affected device\n     when userspace goes about to handle an ADD or CHANGE event of the\n     fw_device,\n   - with most policies, it won\u0027t be necessary anymore to dig through\n     child attributes.\n\nThe new attribute is called \"units\".  It contains space-separated tuples\nof specifier_id and version of each present unit.  The delimiter within\ntuples is a colon.  Specifier_id and version are printed as 0x%06x.\n\nHere is an example of a node which implements an IPv4 unit and an IPv6\nunit:  $ cat /sys/bus/firewire/devices/fw2/units\n0x00005e:0x000001 0x00005e:0x000002\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e5333db9285e088a98f4bad5147bfb0b4665fafb",
      "tree": "10a46852f80d27a4eef4f51ae847c7c541c0fd07",
      "parents": [
        "92368890d551794ee8d7e90477d8498bb7f82a9b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri May 22 23:16:27 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jun 01 12:48:49 2009 +0200"
      },
      "message": "firewire: core: check for missing struct update at build time, not run time\n\nstruct fw_attribute_group.attrs.[] must have enough room for all\nattributes.  This can and should be checked at build time.\n\nOur previous check at run time was a little late and not reliable since\nmost of the time less than the available attributes are populated.\n\nFurthermore, omit an increment of an index at its last usage.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "92368890d551794ee8d7e90477d8498bb7f82a9b",
      "tree": "0c9fe72c0d770ce4ac358235fafd18803415b1ac",
      "parents": [
        "32a0f488ce5e8a9a148491f15edc508ab5e8265b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed May 13 21:42:14 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun May 17 14:13:47 2009 +0200"
      },
      "message": "firewire: core: improve check for local node\n\nMy recently added test for a device being local in fw-cdev.c got it\nslightly wrong:  Comparisons of node IDs are only valid if the\ngeneration is current, which I forgot to check.  Normally, serialization\nby card-\u003elock takes care of this, but a device in FW_DEVICE_GONE state\nwill necessarily have a wrong generation and invalid node_id.\n\nThe \"is it local?\" check is made 100% correct and simpler now by means\nof a struct fw_device flag which is set at fw_device creation.\n\nBesides the fw-cdev site which was to be fixed, there is another site\nwhich can make use of the new flag, and an RFC-2734 driver will benefit\nfrom it too.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "7889b60ee71eafaf50699a154a2455424bb92daa",
      "tree": "d5bb3a4d274bf186e32605284a34a36398475818",
      "parents": [
        "cbae787c0f288c3ad385ad4165ae30b5500a1f23"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 10 21:09:28 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:52 2009 +0100"
      },
      "message": "firewire: core: optimize propagation of BROADCAST_CHANNEL\n\nCache the test result of whether a device implements BROADCAST_CHANNEL.\nThis minimizes traffic on the bus after each bus reset.  A majority of\ndevices does not implement BROADCAST_CHANNEL.\n\nRemove busy retries; just rely on the hardware to retry requests to busy\nresponders.  Remove unnecessary log messages.\n\nRename the flag is_irm to broadcast_channel_allocated to better reflect\nits meaning.  Reset the flag earlier in fw_core_handle_bus_reset.\n\nPass the generation down as a call parameter; that way generation can\u0027t\nbe newer than card-\u003ebroadcast_channel_allocated and device-\u003enode_id.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "cbae787c0f288c3ad385ad4165ae30b5500a1f23",
      "tree": "89946d56640109660ddba5e90dc10ce5249cf265",
      "parents": [
        "e1dc7cab43619a2fbc90fd4cd712bd3fff703768"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 10 21:08:37 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:51 2009 +0100"
      },
      "message": "firewire: core: simplify broadcast channel allocation\n\nfw-iso.c has channel allocation code now, use it.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e1dc7cab43619a2fbc90fd4cd712bd3fff703768",
      "tree": "71c0868fbd395e7dd67e4add14aa5b247b9693ce",
      "parents": [
        "a38a00fdef98a8eda23a25e54490b32865bc7c33"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 10 21:07:46 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:51 2009 +0100"
      },
      "message": "firewire: core: increase bus manager grace period\n\nPer IEEE 1394 clause 8.4.2.5, bus manager capable nodes which are not\nincumbent shall wait at least 125ms before trying to establish\nthemselves as bus manager.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a38a00fdef98a8eda23a25e54490b32865bc7c33",
      "tree": "e62895872fc14e779ddfb8ed1eaee9b81bed67d9",
      "parents": [
        "18e9b10fcdc090d3a38606958167d5923c7099b7"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 10 21:07:06 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:51 2009 +0100"
      },
      "message": "firewire: core: drop unused call parameters of close_transaction\n\nAll callers inserted NULL and 0 here.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "18e9b10fcdc090d3a38606958167d5923c7099b7",
      "tree": "fd83055d908e8786afc9b3fbc791b57b2ba10c33",
      "parents": [
        "664d8010b170ae8b3ce9268b4f4da934d27b0491"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 10 21:02:21 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:50 2009 +0100"
      },
      "message": "firewire: cdev: add closure to async stream ioctl\n\nThis changes the as yet unreleased FW_CDEV_IOC_SEND_STREAM_PACKET ioctl\nto generate an fw_cdev_event_response event just like the other two\nioctls for asynchronous request transmission do.  This way, clients get\nfeedback on successful or unsuccessful transmission.\n\nThis also adds input validation for length, tag, channel, sy, speed.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "664d8010b170ae8b3ce9268b4f4da934d27b0491",
      "tree": "2e7f8e304267d0a925402dd0abf6f6a319c9a163",
      "parents": [
        "207fbefb18de9bc6f871e4008da29879c90cb67e"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 10 21:01:54 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:50 2009 +0100"
      },
      "message": "firewire: cdev: simplify FW_CDEV_IOC_SEND_REQUEST return value\n\nThis changes the ioctl() return value of FW_CDEV_IOC_SEND_REQUEST and of\nthe as yet unreleased FW_CDEV_IOC_SEND_BROADCAST_REQUEST.  They used to\nreturn\n\tsizeof(struct fw_cdev_send_request *) + data_length\n\nwhich is obviously a failed attempt to emulate the return value of\nraw1394\u0027s respective interface which uses write() instead of ioctl().\n\nHowever, the first summand, as size of a kernel pointer, is entirely\nmeaningless to clients and the second summand is already known to\nclients.  And the result does not resemble raw1394\u0027s write() return\ncode anyway.\n\nSo simplify it to a constant non-negative value, i.e. 0.  The only\ndangers here would be that future client implementations check for error\nby ret !\u003d 0 instead of ret \u003c 0 when running on top of an old kernel; or\nthat current clients interpret ret \u003d 0 or more as failure.  But both are\nhypothetical cases which don\u0027t justify to return irritating values.\n\nWhile we touch this code, also remove \"\u0026 0x1f\" from tcode in the call of\nfw_send_request.  The tcode cannot be bigger than 0x1f at this point.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "207fbefb18de9bc6f871e4008da29879c90cb67e",
      "tree": "a1f24a4b814ee43ca3e8dffa290e3db84a68d5b9",
      "parents": [
        "de487da8ca5839d057e1f4b57ee3f387e180b800"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 10 21:01:08 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:50 2009 +0100"
      },
      "message": "firewire: cdev: fix race of ioctl_send_request with bus reset\n\nThe bus reset handler concurrently frees client-\u003edevice-\u003enode.  Use\ndevice-\u003enode_id instead.  This is equivalent to device-\u003enode-\u003enode_id\nwhile device-\u003egeneration is current.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "de487da8ca5839d057e1f4b57ee3f387e180b800",
      "tree": "92003bce782f3f1bf49183637d6dac6367c19dd0",
      "parents": [
        "c8a25900f35e575938c791507894c036c0f2ca7d"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 10 21:00:23 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:50 2009 +0100"
      },
      "message": "firewire: cdev: secure add_descriptor ioctl\n\nThe access permissions and ownership or ACL of /dev/fw* character device\nfiles will typically be set based on the device type of the respective\nnodes, as obtained by firewire-core from descriptors in the device\u0027s\nconfiguration ROM.  An example policy is to deny write permission by\ndefault but grant write permission to files of AV/C video and audio\ndevices and IIDC video devices.\n\nThe FW_CDEV_IOC_ADD_DESCRIPTOR ioctl could be used to partly subvert\nsuch a policy:  Find a device file with relaxed permissions, use the\nioctl to add a descriptor with AV/C marker to the local node\u0027s ROM, thus\ngain access to the local node\u0027s character device file.  (This is only\npossible if there are udev scripts installed which actively relax\npermissions for known device types and if there is a device of such a\ntype connected.)\n\nAccessibility of the local node\u0027s device file is relevant to host\nsecurity if the host contains two or more IEEE 1394 link layer\ncontrollers which are plugged into a single bus.\n\nTherefore change the ABI to deny FW_CDEV_IOC_ADD_DESCRIPTOR if the file\nbelongs to a remote node.  (This change has no impact on known\nimplementers of the ABI:  None of them uses the ioctl yet.)\n\nAlso clarify the documentation:  The ioctl affects all local nodes, not\njust one local node.\n\nCc: stable@kernel.org\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c8a25900f35e575938c791507894c036c0f2ca7d",
      "tree": "e413f9e098dea94c74fd0aab35a511800043c97b",
      "parents": [
        "6104ee92d62ea3638b67494fcf061cb4b9b9d518"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 10 20:59:16 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:49 2009 +0100"
      },
      "message": "firewire: cdev: amendment to \"add ioctl to query maximum transmission speed\"\n\nThe as yet unreleased FW_CDEV_IOC_GET_SPEED ioctl puts only a single\ninteger into the parameter buffer.  We can use ioctl()\u0027s return value\ninstead.\n\n(Also: Some whitespace change in firewire-cdev.h.)\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "6104ee92d62ea3638b67494fcf061cb4b9b9d518",
      "tree": "899549d281a47f6aaae7a1645b5cb7d882f8e194",
      "parents": [
        "f8c2287c65f8f72000102fc058232669e4540bc4"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Mon Feb 23 15:59:34 2009 -0500"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:49 2009 +0100"
      },
      "message": "firewire: broadcast channel support\n\nThis patch adds the ISO broadcast channel support that is required of a\n1394a IRM.  In specific, if the local device the IRM, it allocates ISO\nchannel 31 and sets the broadcast channel register of all devices on the\nlocal bus to BROADCAST_CHANNEL_INITIAL | BROADCAST_CHANNEL_VALID to indicate\nthat channel 31 can be use for broadcast messages.\n\nOne minor complication is that on startup the local device may become IRM\nbefore all the devices on the bus have been enumerated by the stack.  Therefore\nwe have to keep a \"the local device is IRM\" flag and possibly set the\nbroadcast channel register of new devices at enumeration time.\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\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": "ba27e1f7bf220799cd3d7503f82bda71b8ebe8c5",
      "tree": "0d08f399eae860e112f3031a09be674c679d9189",
      "parents": [
        "e1eff7a393d4a4e3ad1cf65fcba899146840bfd2"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Mar 05 19:07:00 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:48 2009 +0100"
      },
      "message": "firewire: core: normalize a function argument name\n\nIt\u0027s called \"payload\" rather than \"data\" almost everywhere in\nfw-transaction.c.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\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": "d01b01787680a1156ff6a554e40baa460bb88efb",
      "tree": "b4ccc2860654a358e26216cee52d94ee00f57e49",
      "parents": [
        "aed808927410d0b1d80378492059f22a46974267"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 17 22:45:54 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:47 2009 +0100"
      },
      "message": "firewire: core: remove condition which is always false\n\nreread_bus_info_block() only gets to see devices whose config_rom_length\nis at least 6 (ROM header, bus info block, root directory header).\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "aed808927410d0b1d80378492059f22a46974267",
      "tree": "faad596a85c99c90fa1988bc891dad9b15e9bca6",
      "parents": [
        "41f321c2ecf416f9dcf76de989e9059fd699c8c1"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 17 22:45:54 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:47 2009 +0100"
      },
      "message": "firewire: core: move some functions\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "41f321c2ecf416f9dcf76de989e9059fd699c8c1",
      "tree": "a2b569521ec178be36bc610811b6d4c86faec3af",
      "parents": [
        "81610b8fbfc027a67707ff567d490819a3d55844"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 17 22:45:54 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:47 2009 +0100"
      },
      "message": "firewire: core: clean up includes\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "81610b8fbfc027a67707ff567d490819a3d55844",
      "tree": "b828ef4868938534fb17d75659246715179a29f5",
      "parents": [
        "5d9cb7d276a9c465fef5a771792eac2cf1929f2b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 11 13:44:46 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:46 2009 +0100"
      },
      "message": "firewire: cdev: simplify a schedule_delayed_work wrapper\n\nThe kernel API documentation says that queue_delayed_work() returns 0\n(only) if the work was already queued.  The return codes of\nschedule_delayed_work() are not documented but the same.\n\nIn init_iso_resource(), the work has never been queued yet, hence we\ncan assume schedule_delayed_work() to be a guaranteed success there.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5d9cb7d276a9c465fef5a771792eac2cf1929f2b",
      "tree": "46fb54d0e462debe4016830ee1fa9f7292fb511b",
      "parents": [
        "77258da403be4cfce84b6abcdb515ad0bd1f92f1"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jan 08 23:07:40 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:46 2009 +0100"
      },
      "message": "firewire: cdev: add ioctls for iso resource management, amendment\n\nSome fixes:\n  - Remove stale documentation.\n  - Fix a !\u003d vs. \u003d\u003d thinko that got in the way of channel management.\n  - Try bandwidth deallocation even if channel deallocation failed.\n\nA simplification:\n  - fw_cdev_allocate_iso_resource.channels is now ordered like\n    libdc1394\u0027s dc1394_iso_allocate_channel() channels_allowed\n    argument.\n\nBy the way, I looked closer at cards from NEC, TI, and VIA, and noticed\nthat they all don\u0027t implement IEEE 1394a behaviour which is meant to\ndeviate from IEEE 1212\u0027s notion of lock compare-swap.  This means that\nwe have to do two lock transactions instead of one in many cases where\none transaction would already succeed on a fully 1394a compliant IRM.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "36a755cfc398fc50abc74055d4478c1b067dac55",
      "tree": "fbf8208d5b0314ee9b523a9edaf0b3343e4add39",
      "parents": [
        "3ba949868a6dc082b24cba5c3bf3f50de7391433"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jan 05 20:28:10 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:46 2009 +0100"
      },
      "message": "firewire: cdev: shut down iso context before freeing the buffer\n\nDMA must be halted before we DMA-unmap and free the DMA buffer.  Since\nwe cannot rely on the client to stop the context before it closes the\nfd, we have to reorder fw_iso_buffer_destroy vs. fw_iso_context_destroy.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "3ba949868a6dc082b24cba5c3bf3f50de7391433",
      "tree": "67111ee78f57bae142182a43b5193802c1183d22",
      "parents": [
        "5d3fd692a7196a9045fb606f891f5987959b65a0"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 16:23:29 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:45 2009 +0100"
      },
      "message": "firewire: cdev: replace some spin_lock_irqsave by spin_lock_irq\n\nAll of these functions are entered with IRQs enabled.\nHence the unconditional spin_unlock_irq can be used.\n\nFunction:                  Caller context:\n    dequeue_event()            client process, via read(2)\n    fill_bus_reset_event()     fw-device.c update worqueue job\n    release_client_resource()  client process, via ioctl(2)\n    fw_device_op_release()     client process, via close(2)\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5d3fd692a7196a9045fb606f891f5987959b65a0",
      "tree": "f5dd0b2db4171ea05c70035e29b2cc7ff7f82850",
      "parents": [
        "1566f3dc3e5986a16c7bbb3bb95bb691251a8d25"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 16:23:29 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:45 2009 +0100"
      },
      "message": "firewire: cdev: extend transaction payload size check\n\nMake the size check of ioctl_send_request and\nioctl_send_broadcast_request speed dependent.  Also change the error\nreturn code from -EINVAL to -EIO to distinguish this from other errors\nconcerning the ioctl parameters.\n\nAnother payload size limit for which we don\u0027t check here though is the\nremote node\u0027s Bus_Info_Block.max_rec.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "1566f3dc3e5986a16c7bbb3bb95bb691251a8d25",
      "tree": "3a6a5f6c29cbd9d71354fede1e6da69273ec803d",
      "parents": [
        "acfe8333572cad5dc70fce18ac966be0446548d7"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 16:23:29 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:45 2009 +0100"
      },
      "message": "firewire: cdev: restrict broadcast write requests to Units Space\n\nWe don\u0027t want random users write to Memory Space (e.g. PCs with physical\nDMA filters down) or to core CSRs like Reset_Start.\n\nThis does not protect SBP-2 target CSRs.  But properly behaving SBP-2\ntargets ignore broadcast write requests to these registers, and the\nmaximum damage which can happen with laxer targets is DOS.  But there\nare ways to create DOS situations anyway if there are devices with weak\ndevice file permissions (like audio/video devices) present at the same\nbus as an SBP-2 target.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "acfe8333572cad5dc70fce18ac966be0446548d7",
      "tree": "7402f2c6759465c351d735855990620e24a644e2",
      "parents": [
        "33580a3ef5ba3bc0ee1b520df82a24bb37ce28f0"
      ],
      "author": {
        "name": "Jay Fenlason, Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 16:23:29 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:44 2009 +0100"
      },
      "message": "firewire: cdev: add ioctl for broadcast write requests\n\nWrite transactions to the broadcast node ID are a convenient way to\ntrigger functions of multiple nodes at once.  IIDC is a protocol which\ncan make use of this if multiple cameras with same command_regs_base are\nconnected at the same bus.\n\nBased on\n    Date: Wed, 10 Sep 2008 11:32:16 -0400\n    From: Jay Fenlason \u003cfenlason@redhat.com\u003e\n    Subject: [patch] SEND_BROADCAST_REQUEST\nChanges:  ioctl_send_request() and ioctl_send_broadcast_request() now\nshare code.  Broadcast speed corrected to S100.  Check for proper tcode.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "33580a3ef5ba3bc0ee1b520df82a24bb37ce28f0",
      "tree": "3bd567d8c5244a049eef32147f4fb84f6a19a184",
      "parents": [
        "1ec3c0269d7196118cc7c403654ca5f19ef4d584"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 16:23:29 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:44 2009 +0100"
      },
      "message": "firewire: cdev: add ioctl to query maximum transmission speed\n\nWhile the speed of asynchronous transactions is automatically chosen by\nthe kernel, the speed of isochronous streams has to be chosen by the\ninitiating client.\n\nIn case of 1394a bus topologies, the maximum possible speed could be\nfigured out with some effort by evaluation of the remote node\u0027s link\nspeed field in the config ROM, the local node\u0027s link speed field, and\nthe PHY speeds and topologic information in the local node\u0027s or IRM\u0027s\ntopology map CSR.  However, this does not work in case of 1394b buses.\n\nHence add an ioctl to export the maximum speed which the kernel already\ndetermined.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "1ec3c0269d7196118cc7c403654ca5f19ef4d584",
      "tree": "087bdf8db274f29f92762adf0ed6cef1bae2ce5d",
      "parents": [
        "b1bda4cdc2037447bd66753bf5ccab66d91b0b59"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 16:23:29 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:44 2009 +0100"
      },
      "message": "firewire: cdev: add ioctls for manual iso resource management\n\nThis adds ioctls for allocation and deallocation of a channel or/and\nbandwidth without auto-reallocation and without auto-deallocation.\n\nThe benefit of these ioctls is that libraw1394-style isochronous\nresource management can be implemented without write access to the IRM\u0027s\ncharacter device file.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b1bda4cdc2037447bd66753bf5ccab66d91b0b59",
      "tree": "6aae47fb85125c15150d6d306354de5deb1e316f",
      "parents": [
        "b769bd17656f991c5588c676376e5ec77d25997a"
      ],
      "author": {
        "name": "Jay Fenlason, Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 16:23:29 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:43 2009 +0100"
      },
      "message": "firewire: cdev: add ioctls for isochronous resource management\n\nBased on\n    Date: Tue, 18 Nov 2008 11:41:27 -0500\n    From: Jay Fenlason \u003cfenlason@redhat.com\u003e\n    Subject: [Patch V4] Add ISO resource management support\nwith several changes to the ABI and implementation.  Only the part of\nthe ABI which enables auto-reallocation and auto-deallocation is\nincluded here.\n\nThis implements ioctls for kernel-assisted allocation of isochronous\nchannels and isochronous bandwidth.  The benefits are:\n  - The client does not have to have write access to the /dev/fw* device\n    corresponding to the IRM.\n  - The client does not have to perform reallocation after bus resets.\n  - Channel and bandwidth are deallocated by the kernel if the file is\n    closed before the client deallocated the resources.  Thus resources\n    are released even if the client crashes.\n\nIt is anticipated that future in-kernel code (firewire-core IRM code;\nthe firewire port of firedtv), will use the fw-iso.c portions of this\ncode too.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nTested-by: David Moore \u003cdcm@acm.org\u003e\n"
    },
    {
      "commit": "b769bd17656f991c5588c676376e5ec77d25997a",
      "tree": "6f637a16cde9a88b763226b4dbb7adf3f4ccfe91",
      "parents": [
        "be5bbd6756b44602a3f281af05c2f416fa9bd1c6"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 16:23:29 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:43 2009 +0100"
      },
      "message": "firewire: core: topology header fix\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "be5bbd6756b44602a3f281af05c2f416fa9bd1c6",
      "tree": "1b22ed8b6135f2cbf058c508bb1ffb8cfcbceb1d",
      "parents": [
        "97c18b7fd6df4ae0d32509f292a2eb0d4b26d623"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 16:23:29 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:43 2009 +0100"
      },
      "message": "firewire: cdev: sort includes\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "97c18b7fd6df4ae0d32509f292a2eb0d4b26d623",
      "tree": "bd8f79c6577bd57a09275988e01ac7ea783f9d08",
      "parents": [
        "fb4430367b0bbee2420132faf16c7c762a39c0bb"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 16:23:29 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:43 2009 +0100"
      },
      "message": "firewire: cdev: unify names of struct types and of their instances\n\nto indicate that they are specializations of struct event or of struct\nclient_resource, respectively.\n\nstruct response was both an event and a client_resource; it is now split\ninto struct outbound_transaction_resource and ~_event in order to\ndocument more explicitly which types of client resources exist.\n\nstruct request and struct_request_event are renamed to struct\ninbound_transaction_resource and ~_event because requests and responses\noccur in outbound and in inbound transactions.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "fb4430367b0bbee2420132faf16c7c762a39c0bb",
      "tree": "d5def952cdb381863d7a2b7eb0e421d7757c7d4d",
      "parents": [
        "632321ecd99bf85c982a75f8329b4ecbb95b3a8f"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 16:23:29 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:42 2009 +0100"
      },
      "message": "firewire: cdev: reference-count client instances\n\nThe lifetime of struct client instances must be longer than the lifetime\nof any client resource.\n\nThis fixes a possible race between fw_device_op_release and transaction\ncompletions.  It also prepares for new ioctls for isochronous resource\nmanagement which will involve delayed processing of client resources.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nReviewed-by: David Moore \u003cdcm@acm.org\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": "a459b8ab9c176143fecef8ace4b70d6dbd7a8113",
      "tree": "2c1faebb488f692b8f0bb7d075cb347099851164",
      "parents": [
        "da62df141e3f879445e3daef36bd3a12c90841e2"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 21 16:49:57 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:41 2009 +0100"
      },
      "message": "firewire: cdev: use list_first_entry\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "da62df141e3f879445e3daef36bd3a12c90841e2",
      "tree": "d359d9c0d34145e5e42d2e805c9bd52f651ab045",
      "parents": [
        "53dca51175cc2f66d21aeb1e70146cca65c53dad"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 14 21:47:36 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:40 2009 +0100"
      },
      "message": "firewire: core: remove unused definitions\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": "c490a6dec6cc1b7f0eab56b9fbd565129b3dea2e",
      "tree": "1b177202b9c8d04f52e8a06572c67b139613c879",
      "parents": [
        "44be21b63e0c551df21253540b7f216f0d18928e"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 14 21:45:14 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:39 2009 +0100"
      },
      "message": "firewire: core: remove obsolete assertions\n\nThis code never changes.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "44be21b63e0c551df21253540b7f216f0d18928e",
      "tree": "3ebabb3763d54537ccfc14262690996a4161cfa0",
      "parents": [
        "3e0b5f0d7cb5fef402517e41eebff5a0f0e65a13"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 14 19:21:31 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:39 2009 +0100"
      },
      "message": "firewire: core: remove outdated comment\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "3e0b5f0d7cb5fef402517e41eebff5a0f0e65a13",
      "tree": "b712284afebff56dd2e104242f4e6665aaf6c8e4",
      "parents": [
        "45ee3199eb3e4233b755a9bb353a0527a4c58b5f"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 14 19:21:01 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:38 2009 +0100"
      },
      "message": "firewire: cdev: address handler input validation\n\nLike before my commit 1415d9189e8c59aa9c77a3bba419dcea062c145f,\nfw_core_add_address_handler() does not align the address region now.\nInstead the caller is required to pass valid parameters.\n\nSince one of the callers of fw_core_add_address_handler() is the cdev\nuserspace interface, we now check for valid input.  If the client is\nbuggy, we give it a hint with -EINVAL.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "45ee3199eb3e4233b755a9bb353a0527a4c58b5f",
      "tree": "4fa2ab6e54af7cb6aceab1cea1b5676836644841",
      "parents": [
        "97811e347310766030a648fdf0e407b2c91a39c1"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Sun Dec 21 16:47:17 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:38 2009 +0100"
      },
      "message": "firewire: cdev: use an idr rather than a linked list for resources\n\nThe current code uses a linked list and a counter for storing\nresources and the corresponding handle numbers.  By changing to an idr\nwe can be safe from counter wrap-around giving two resources the same\nhandle.\n\nFurthermore, the deallocation ioctls now check whether the resource to\nbe freed is of the intended type.\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\n\nSome rework by Stefan R:\n  - The idr API documentation says we get an ID within 0...0x7fffffff.\n    Hence we can rest assured that idr handles fit into cdev handles.\n  - Fix some races.  Add a client-\u003ein_shutdown flag for this purpose.\n  - Add allocation retry to add_client_resource().\n  - It is possible to use idr_for_each() in fw_device_op_release().\n  - Fix ioctl_send_response() regression.\n  - Small style changes.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "97811e347310766030a648fdf0e407b2c91a39c1",
      "tree": "61710722bac7ffd91915e09f42e0412727bba53b",
      "parents": [
        "1f3125af8ed7410cc0ebcc0acd59bbfc1ae0057a"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Dec 14 19:19:23 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:38 2009 +0100"
      },
      "message": "firewire: cdev: fix race of fw_device_op_release with bus reset\n\nUnlink the client from the fw_device earlier in order to prevent bus\nreset events being added to client-\u003eevent_list during shutdown.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "1f3125af8ed7410cc0ebcc0acd59bbfc1ae0057a",
      "tree": "3e0cd754d86b8780b164bd507564fd2355c7db29",
      "parents": [
        "bf8e3355ec8f4e472f9841e94203cd759b45226e"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Dec 05 22:44:42 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:37 2009 +0100"
      },
      "message": "firewire: cdev: tcodes input validation\n\nThe behaviour of fw-transaction.c::fw_send_request is ill-defined for\nany other tcodes than read/ write/ lock request tcodes.  Therefore\nprevent requests with wrong tcodes from entering the transaction layer.\n\nMaybe fw_send_request should check them itself, but I am not inclined to\nchange it and fw_fill_request from void-valued functions to ones which\nreturn error codes and pass those up.  Besides, maybe fw_send_request is\ngoing to support one more tcode than ioctl_send_request in the future\n(TCODE_STREAM_DATA).\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "d67cfb9613f373d76daa2c8d209629601424ca12",
      "tree": "64d5633a8531fd1b978bef2104c6eee5303d3d8c",
      "parents": [
        "cf417e5494582453c033d8cac9e1352e74215435"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 05 10:37:11 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:37 2009 +0100"
      },
      "message": "firewire: convert client_list_lock to mutex\n\nSo far it is only taken in non-atomic contexts.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "cf417e5494582453c033d8cac9e1352e74215435",
      "tree": "a1681ef863c8c4219506e16b7982e51dc0718387",
      "parents": [
        "1aa292bb1c53500e3ab570b955d03afa97a9404d"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Fri Oct 03 11:19:09 2008 -0400"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Mar 24 20:56:36 2009 +0100"
      },
      "message": "firewire: add a client_list_lock\n\nThis adds a client_list_lock, which only protects the device\u0027s\nclient_list, so that future versions of the driver can call code that\ntakes the card-\u003elock while holding the client_list_lock.  Adding this\nlock is much simpler than adding __ versions of all the functions that\nthe future version may need.  The one ordering issue is to make sure\ncode never takes the client_list_lock with card-\u003elock held.  Since\nclient_list_lock is only used in three places, that isn\u0027t hard.\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\n\nUpdate fill_bus_reset_event() accordingly.  Include linux/spinlock.h.\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": "b7479febdecf8e12951aecb0b405e4655aa3dae6",
      "tree": "ccc9c5c692a6e515194a190d9efd184faa610a1e",
      "parents": [
        "1448d7c6a2ff96d3b52ecae49e2d0f046a097fe0"
      ],
      "author": {
        "name": "Petr Vandrovec",
        "email": "petr@vandrovec.name",
        "time": "Sun Feb 01 01:29:35 2009 -0800"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Feb 01 11:17:24 2009 +0100"
      },
      "message": "firewire: core: Remove card from list of cards when enable fails\n\nSigned-off-by: Petr Vandrovec \u003cpetr@vandrovec.name\u003e\n\nAfter a controller initialization failure, addition of another card got\nstuck due to card_list corruption.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c8c4707cf7ca8ff7dcc1653447e48cb3de0bf114",
      "tree": "ec762cadd6708c5fb309e53dab6763c14b6f822c",
      "parents": [
        "5e2125677fd72d36396cc537466e07ffcbbd4b2b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jan 29 00:11:59 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jan 29 20:19:48 2009 +0100"
      },
      "message": "firewire: sbp2: add workarounds for 2nd and 3rd generation iPods\n\nAccording to https://bugs.launchpad.net/bugs/294391\n  - 3rd generation iPods need the \"fix capacity\" workaround after all\n    (apparently they crash after the last sector was accessed),\n  - 2nd generation iPods need the \"128 kB maximum request size\"\n    workaround.\n\nAlas both iPod generations feature the same model ID in the config ROM,\nhence we can only define a shared quirks list entry for them.  Luckily\nthe fix capacity workaround did not show a negative effect in Jarod\u0027s\ntests with 2nd gen. iPod.\n\nA side note:  Apple computers in target mode (or at least an x86 Mac\nmini) don\u0027t have firmware_version and model_id, hence none of the iPod\nquirks list entries is active for them.\n\nTested-by: Jarod Wilson \u003cjarod@redhat.com\u003e\nAcked-by: Jarod Wilson \u003cjarod@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "5e2125677fd72d36396cc537466e07ffcbbd4b2b",
      "tree": "ad20a0cf11e5cafa83064412ccf91c05baba6e2e",
      "parents": [
        "f746072abc12d0e10ecd7847f1846157fde15987"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jan 28 01:03:34 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jan 28 20:31:08 2009 +0100"
      },
      "message": "firewire: sbp2: fix DMA mapping leak on the failure path\n\nReported-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nwho also provided a first version of the fix.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "f746072abc12d0e10ecd7847f1846157fde15987",
      "tree": "b58abd8312e1fe845f99aaa6a6071d1d04cd6d24",
      "parents": [
        "a08e100aece16e33a45b82924ad85f4066c4ed1c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 24 19:41:46 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jan 28 20:31:07 2009 +0100"
      },
      "message": "firewire: sbp2: define some magic numbers as macros\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a08e100aece16e33a45b82924ad85f4066c4ed1c",
      "tree": "7d231251c6b8abdf14614098954f49c6cb5843f6",
      "parents": [
        "c1fbdd78517a9323ea5f5767c8ceb10aabc40fc2"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 24 19:41:46 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Jan 28 20:31:07 2009 +0100"
      },
      "message": "firewire: sbp2: fix payload limit at S1600 and S3200\n\n1394-2008 clause 16.3.4.1 (1394b-2002 clause 16.3.1.1) defines tighter\nlimits than 1394-2008 clause 6.2.2.3 (1394a-2000 clause 6.2.2.3).\n\nOur previously too large limit doesn\u0027t matter though if the controller\nreports its max_receive correctly.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "e747a5c0be3efe5465e45c8e326bc766b1288be6",
      "tree": "a9abc47b46e079e38f4477f858dd6ddd791c546c",
      "parents": [
        "64c634ef83991b390ec0503e61f16efb0ba3c60b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 24 20:35:38 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 24 20:40:12 2009 +0100"
      },
      "message": "firewire: core: optimize card shutdown\n\nThis fixes a regression by \"firewire: keep highlevel drivers attached\nduring brief connection loss\":  There were 2 seconds unnecessary waiting\nadded to the shutdown procedure of each controller.\n\nWe use card-\u003elink as status flag to signal the device handler that there\nis no use to wait for a come-back.\n\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": "3d36a0df3b473fb53531484df227f2da8bc7494b",
      "tree": "f0fcb758c8e68f1e5389ccd895d98efcc55ed0e8",
      "parents": [
        "8cd0bbbdff7471163cc6a058be8b8610ddd01d6b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jan 17 22:45:54 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jan 20 19:29:52 2009 +0100"
      },
      "message": "firewire: keep highlevel drivers attached during brief connection loss\n\nThere are situations when nodes vanish from the bus and come back\nquickly thereafter:\n  - When certain bus-powered hubs are plugged in,\n  - when certain devices are plugged into 6-port hubs,\n  - when certain disk enclosures are switched from self-power to bus\n    power or vice versa and break the daisy chain during the transition,\n  - when the user plugs a cable out and quickly plugs it back in, e.g.\n    to reorder a daisy chain (works on Mac OS X if done quickly enough),\n  - when certain hubs temporarily malfunction during high bus traffic.\n\nUntil now, firewire-core reported affected nodes as lost to the\nhighlevel drivers (firewire-sbp2 and userspace drivers).  We now delay\nthe destruction of device representations until after at least two\nseconds after the last bus reset.  If a \"new\" device is detected in this\nperiod whose bus information block and root directory header match that\nof a device which is pending for deletion, we resurrect that device and\nsend update calls to highlevel drivers.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "8cd0bbbdff7471163cc6a058be8b8610ddd01d6b",
      "tree": "de25f60d599ddef9a0ee88357dc418dbdf95b51d",
      "parents": [
        "a5c7f4710fba334bf613d705f97b4471b36446f8"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Mar 24 20:56:40 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jan 20 19:29:51 2009 +0100"
      },
      "message": "firewire: unnecessary BM delay after generation rollover\n\nNoticed by Jarod Wilson:  The bus manager work was unnecessarily delayed\neach time the bus generation counter rolled over.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\n"
    },
    {
      "commit": "a5c7f4710fba334bf613d705f97b4471b36446f8",
      "tree": "85deaf0584aea866a976245bae3c0d99bbca579f",
      "parents": [
        "1de9e8e70f5acc441550ca75433563d91b269bbe"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Mar 19 22:02:40 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jan 20 19:29:51 2009 +0100"
      },
      "message": "firewire: insist on successive self ID complete events\n\nThe whole topology code only works if the old and new topologies which\nare compared come from immediately successive self ID complete events.\n\nIf there happened bus resets without self ID complete events in the\nmeantime, or self ID complete events with invalid selfIDs, the topology\ncomparison could identify nodes wrongly, or more likely just corrupt\nkernel memory or panic right away.\n\nWe now discard all nodes of the old topology and treat all current nodes\nas new ones if the current self ID generation is not the previous one\nplus 1.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Jarod Wilson \u003cjwilson@redhat.com\u003e\n"
    },
    {
      "commit": "6230582320b721e6cf2581d048cb688dca97f504",
      "tree": "2babcf29c086cf77b8df9fbe54303214b1be01ad",
      "parents": [
        "73d59314e6ed268d6f322ae1bdd723b23fa5a4ed"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jan 09 20:49:37 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jan 09 23:22:32 2009 +0100"
      },
      "message": "firewire: core: fix sleep in atomic context due to driver core change\n\nDue to commit 2831fe6f9cc4e16c103504ee09a47a084297c0f3, \"driver core:\ncreate a private portion of struct device\", device_initialize() can no\nlonger be called from atomic contexts.\n\nWe now defer it until after config ROM probing.  This requires changes\nto the bus manager code because this may use a device before it was\nprobed.\n\nReported-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c8a12d45d543905a2718fccafd612edbd73a1341",
      "tree": "b14e18eb68be2da1e9971ce5094ccc54b9030ef8",
      "parents": [
        "d6f95a3d14dc403881b23ad268ec1e3600c4e6b4"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Nov 29 19:00:56 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 23:50:38 2009 +0100"
      },
      "message": "firewire: reorder struct fw_card for better cache efficiency\n\ntopology_map is by far the largest member in struct fw_card.  Move it to\nthe very end of the struct so that card pointer dereferences have better\nchances to hit the CPU cache.\n\nThis requires to increase the topology_map backing store to the size\nspecified in IEEE 1394, i.e. 256 rather than 255 quadlets.  Otherwise\nthe topology_map response handler may access invalid memory.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "d6f95a3d14dc403881b23ad268ec1e3600c4e6b4",
      "tree": "5c5662fed71f11afa75d55ea5179e7d47da6a24a",
      "parents": [
        "0fa1986f3a6c385b3bca0b6a051c30e548bda30d"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Nov 29 18:56:47 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 23:50:38 2009 +0100"
      },
      "message": "firewire: fix resetting of bus manager retry counter\n\nAn earlier change, maybe long ago, removed the copying of self_id_count\ninto card-\u003eself_id_count.  Since then each bus reset cleared\ncard-\u003ebm_retries even when it shouldn\u0027t.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "0fa1986f3a6c385b3bca0b6a051c30e548bda30d",
      "tree": "5b61ce9579a520f89bc4c000bfe3496e58d4f47a",
      "parents": [
        "2cc489c21338950c2b4097dec48864bdf7b30f1b"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Sat Nov 29 17:44:57 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 23:50:37 2009 +0100"
      },
      "message": "firewire: improve refcounting of fw_card\n\nTake a reference to the card whenever fw_card_bm_work() is scheduled on\nthat card and release it when the work is done.  This allows us to\nremove the cancel_delayed_work_sync() in fw_core_remove_card().\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (patch update)\n"
    },
    {
      "commit": "2cc489c21338950c2b4097dec48864bdf7b30f1b",
      "tree": "ded0cd01ab6cc5cf51daeebe08b81450fbb53d18",
      "parents": [
        "d6053e08f5520dcb58c200d2e1861d9c505b72e8"
      ],
      "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 Jan 04 23:50:37 2009 +0100"
      },
      "message": "firewire: typo in comment\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "d6053e08f5520dcb58c200d2e1861d9c505b72e8",
      "tree": "c845001fc7ca7f5aa76b53edb2e036b18ee3dbc4",
      "parents": [
        "621f6dd715209d3c3c27841943ae71fc2c75c9f5"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Nov 24 20:40:00 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 23:50:37 2009 +0100"
      },
      "message": "firewire: fix small memory leak at module removal\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "621f6dd715209d3c3c27841943ae71fc2c75c9f5",
      "tree": "469765325836481fc06d1954ed8265e0020149d9",
      "parents": [
        "c82cdea1e1cb3790788d04ef5cab33488e1455c9"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 26 11:04:20 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jan 04 23:50:36 2009 +0100"
      },
      "message": "firewire: fw-sbp2: remove unnecessary locking\n\nWhat was I thinking when I added sbp2_set_generation()?  Its locking did\nnothing (except for implicitly providing the necessary barrier between\nnode IDs update and generation update).\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": "031bb27c4bf77c2f60b3f3dea8cce63ef0d1fba9",
      "tree": "2b6bca69ee4ee53366dcd8797b764a19caf2c3f7",
      "parents": [
        "9e0de91011ef6fe6eb3bb63f7ea15f586955660a"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Nov 22 12:38:58 2008 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Nov 25 21:38:31 2008 +0100"
      },
      "message": "firewire: fw-sbp2: another iPod mini quirk entry\n\nAdd another model ID of a broken firmware to prevent early I/O errors\nby acesses at the end of the disk.  Reported at linux1394-user,\nhttp://marc.info/?t\u003d122670842900002\n\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": "cd1f70fdb4823c97328a1f151f328eb36fafd579",
      "tree": "43810548ecebf6bc8329a1c6454584d81151c758",
      "parents": [
        "0dcfeb7e3c8695c5aa3677dda8efb9bef2e7e64d"
      ],
      "author": {
        "name": "Jay Fenlason",
        "email": "fenlason@redhat.com",
        "time": "Fri Oct 24 15:26:20 2008 -0400"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 26 10:27:01 2008 +0100"
      },
      "message": "firewire: fw-sbp2: fix races\n\n1: There is a small race between queue_delayed_work() and its\n   corresponding kref_get().  Do the kref_get first, and _put it again\n   if the queue_delayed_work() failed, so there is no chance of the\n   kref going to zero while the work is scheduled.\n2: An SBP2_LOGOUT_REQUEST could be sent out with a login_id full of\n   garbage.  Initialize it to an invalid value so we can tell if we\n   ever got a valid login_id.\n3: The node ID and generation may have changed but the new values may\n   not yet have been recorded in lu and tgt when the final logout is\n   attempted.  Use the latest values from the device in\n   sbp2_release_target().\n\nSigned-off-by: Jay Fenlason \u003cfenlason@redhat.com\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "0dcfeb7e3c8695c5aa3677dda8efb9bef2e7e64d",
      "tree": "1b810e6cec5bc303c16806d4e33b2923a122a1ee",
      "parents": [
        "7007a0765e33bf89182e069e35ec6009fa54f610"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Oct 22 00:28:36 2008 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Oct 26 10:27:01 2008 +0100"
      },
      "message": "firewire: fw-sbp2: delay first login to avoid retries\n\nThis optimizes firewire-sbp2\u0027s device probe for the case that the local\nnode and the SBP-2 node were discovered at the same time.  In this case,\nfw-core\u0027s bus management work and fw-sbp2\u0027s login and SCSI probe work\nare scheduled in parallel (in the globally shared workqueue and in\nfw-sbp2\u0027s workqueue, respectively).  The bus reset from fw-core may then\ndisturb and extremely delay the login and SCSI probe because the latter\nfails with several command timeouts and retries and has to be retried\nfrom scratch.\n\nWe avoid this particular situation of sbp2_login() and fw_card_bm_work()\nrunning in parallel by delaying the first sbp2_login() a little bit.\n\nThis is meant to be a short-term fix for\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d466679.  In the long run,\nthe SCSI probe, i.e. fw-sbp2\u0027s call of __scsi_add_device(), should be\nparallelized with sbp2_reconnect().\n\nProblem reported and fix tested and confirmed by Alex Kanavin.\n\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"
    }
  ],
  "next": "77e557191701afa55ae7320d42ad6458a2ad292e"
}
