)]}'
{
  "log": [
    {
      "commit": "410cf2bd3dc6ec1ed9e1b36b25b9d7aa927ed14e",
      "tree": "4226510c642e882fde0cc801e626492577b61fd0",
      "parents": [
        "693a50b511818e07a131efc944cba1a504b63d3d"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Mon Dec 13 14:56:02 2010 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jan 04 08:48:34 2011 +0100"
      },
      "message": "firewire: use split transaction timeout only for split transactions\n\nInstead of starting the split transaction timeout timer when any request\nis submitted, start it only when the destination\u0027s ACK_PENDING has been\nreceived.  This prevents us from using a timeout that is too short, and,\nif the controller\u0027s AT queue is emptying very slowly, from cancelling\na packet that has not yet been sent.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "872e330e38806d835bd6c311c93ab998e2fb9058",
      "tree": "92497ce79b1157761b1aebdb63b8d74f68d42c15",
      "parents": [
        "ae2a97661482c1d0f1aa41b837da95054d0e9a1b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 18:19:22 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 29 23:09:18 2010 +0200"
      },
      "message": "firewire: add isochronous multichannel reception\n\nThis adds the DMA context programming and userspace ABI for multichannel\nreception, i.e. for listening on multiple channel numbers by means of a\nsingle DMA context.\n\nThe use case is reception of more streams than there are IR DMA units\noffered by the link layer.  This is already implemented by the older\nohci1394 + ieee1394 + raw1394 stack.  And as discussed recently on\nlinux1394-devel, this feature is occasionally used in practice.\n\nThe big drawbacks of this mode are that buffer layout and interrupt\ngeneration necessarily differ from single-channel reception:  Headers\nand trailers are not stripped from packets, packets are not aligned with\nbuffer chunks, interrupts are per buffer chunk, not per packet.\n\nThese drawbacks also cause a rather hefty code footprint to support this\nrarely used OHCI-1394 feature.  (367 lines added, among them 94 lines of\nadded userspace ABI documentation.)\n\nThis implementation enforces that a multichannel reception context may\nonly listen to channels to which no single-channel context on the same\nlink layer is presently listening to.  OHCI-1394 would allow to overlay\nsingle-channel contexts by the multi-channel context, but this would be\na departure from the present first-come-first-served policy of IR\ncontext creation.\n\nThe implementation is heavily based on an earlier one by Jay Fenlason.\nThanks Jay.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "bf54e1462b9192fdef7ea9e2bc44fdc16a4b87bc",
      "tree": "31ec8e4e13b76d22b7bf9f93ea620e88911fe416",
      "parents": [
        "850bb6f23b93c04ce1e4509a87fa607dc17d97c1"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 16 22:25:51 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 23 13:36:28 2010 +0200"
      },
      "message": "firewire: cdev: add PHY packet reception\n\nAdd an FW_CDEV_IOC_RECEIVE_PHY_PACKETS ioctl() and\nFW_CDEV_EVENT_PHY_PACKET_RECEIVED poll()/read() event for /dev/fw*.\nThis can be used to get information from remote PHYs by remote access\nPHY packets.\n\nThis is also the 2nd half of the functionality (the receive part) to\nsupport a userspace implementation of a VersaPHY transaction layer.\n\nSafety considerations:\n\n  - PHY packets are generally broadcasts, hence some kind of elevated\n    privileges should be required of a process to be able to listen in\n    on PHY packets.  This implementation assumes that a process that is\n    allowed to open the /dev/fw* of a local node does have this\n    privilege.\n\n    There was an inconclusive discussion about introducing POSIX\n    capabilities as a means to check for user privileges for these\n    kinds of operations.\n\nOther limitations:\n\n  - PHY packet reception may be switched on by ioctl() but cannot be\n    switched off again.  It would be trivial to provide an off switch,\n    but this is not worth the code.  The client should simply close()\n    the fd then, or just ignore further events.\n\n  - For sake of simplicity of API and kernel-side implementation, no\n    filter per packet content is provided.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "18d0cdfd1a4cc9028c0ef80f94538b31541f8fe5",
      "tree": "c28db7537da311e59e871aba7f6f0edaa46535b9",
      "parents": [
        "80792d182e43bee89fce509e64fdea27e600530f"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jul 18 12:44:01 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Fri Jul 23 13:36:27 2010 +0200"
      },
      "message": "firewire: normalize status values in packet callbacks\n\ncore-transaction.c transmit_complete_callback() and close_transaction()\nexpect packet callback status to be an ACK or RCODE, and ACKs get\ntranslated to RCODEs for transaction callbacks.\n\nAn old comment on the packet callback API (been there from the initial\nsubmission of the stack) and the dummy_driver implementation of\nsend_request/send_response deviated from this as they also included\n-ERRNO in the range of status values.\n\nLet\u0027s narrow status values down to ACK and RCODE to prevent surprises.\nRCODE_CANCELLED is chosen as the dummy_driver\u0027s RCODE as its meaning of\n\"transaction timed out\" comes closest to what happens when a transaction\ncoincides with card removal.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "02d37bed188c500ee7afb0a2dc6b65a80704c58e",
      "tree": "a019891672a1505e35eb15fa2621caffecff2c80",
      "parents": [
        "8b4f70ba4967cae90d128857af1382026a24230a"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 08 16:09:06 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 13 09:58:27 2010 +0200"
      },
      "message": "firewire: core: integrate software-forced bus resets with bus management\n\nBus resets which are triggered\n  - by the kernel drivers after updates of the local nodes\u0027 config ROM,\n  - by userspace software via ioctl\nshall be deferred until after \u003e\u003d2 seconds after the last bus reset.\n\nIf multiple modifications of the local nodes\u0027 config ROM happen in a row,\nonly a single bus reset should happen after them.\n\nWhen the local node\u0027s link goes from inactive to active or vice versa,\nand at the two occasions of bus resets mentioned above --- and if the\ncurrent gap count differs from 63 --- the bus reset should be preceded\nby a PHY configuration packet that reaffirms the gap count.  Otherwise a\nbus manager would have to reset the bus again right after that.\n\nThis is necessary to promote bus stability, e.g. leave grace periods for\nallocations and reallocations of isochronous channels and bandwidth,\nSBP-2 reconnections etc.; see IEEE 1394 clause 8.2.1.\n\nThis change implements all of the above by moving bus reset initiation\ninto a delayed work (except for bus resets which are triggered by the\nbus manager workqueue job and are performed there immediately).  It\ncomes with a necessary addition to the card driver methods that allows\nto get the current gap count from PHY registers.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "250b2b6dd421c9f8844a867d2ac06e0661e0ad93",
      "tree": "b86719d2c442676a52c6307471c9e278b1bd21f5",
      "parents": [
        "ae948011071c12ff6a328348859c717ea885ed40"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Jun 21 23:24:35 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 08 16:52:02 2010 +0200"
      },
      "message": "firewire: cdev: fix fw_cdev_event_bus_reset.bm_node_id\n\nFix an obscure ABI feature that is a bit of a hassle to implement.\nHowever, somebody put it into the ABI, so let\u0027s fill in a sensible\nvalue there.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "33e553fe2b4a983ef34a57ab1440d8d33397bb12",
      "tree": "3a7098a935f0b678a6e6a565619d0d990f9122f3",
      "parents": [
        "56d04cb189f955e5167c27944d61aa57ad69b598"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 20 22:50:35 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Jun 20 23:11:55 2010 +0200"
      },
      "message": "firewire: remove an unused function argument\n\nvoid (*fw_address_callback_t)(..., int speed, ...) is the speed that a\nremote node chose to transmit a request to us.  In case of split\ntransactions, firewire-core will transmit the response at that speed.\n\nUpper layer drivers on the other hand (firewire-net, -sbp2, firedtv, and\nuserspace drivers) cannot do anything useful with that speed datum,\nexcept log it for debug purposes.  But data that is merely potentially\n(not even actually) used for debug purposes does not belong into the API.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c8a94ded57e9cc2498d401b2f5c856213a3e19fb",
      "tree": "8fd6a196ff953270c03700dd682108baf3ee369b",
      "parents": [
        "db3c9cc105ee844f6cd7a1beb9926fb8e9a093ae"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 12 20:34:50 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 19 13:01:41 2010 +0200"
      },
      "message": "firewire: normalize STATE_CLEAR/SET CSR access interface\n\nPush the maintenance of STATE_CLEAR/SET.abdicate down into the card\ndriver.  This way, the read/write_csr_reg driver method works uniformly\nacross all CSR offsets.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "db3c9cc105ee844f6cd7a1beb9926fb8e9a093ae",
      "tree": "5fe981b7be4ffb97a506e23836d6c81a61dc8c91",
      "parents": [
        "e847cc832bab50aad939a0c30414cd986637564d"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 12 20:30:21 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Jun 19 13:01:41 2010 +0200"
      },
      "message": "firewire: replace get_features card driver hook\n\nby feature variables in the fw_card struct.  The hook appeared to be an\nunnecessary abstraction in the card driver interface.\n\nCleaner would be to pass those feature flags as arguments to\nfw_card_initialize() or fw_card_add(), but the FairnessControl register\nis in the SCLK domain and may therefore not be accessible while Link\nPower Status is off, i.e. before the card-\u003edriver-\u003eenable call from\nfw_card_add().\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "7e0e314f198d5048b74c8f0ef9f4c1c02e5ecfc9",
      "tree": "513fcf8f87f6b24121d4e4eb07e1345e29d81db2",
      "parents": [
        "4ffb7a6a066e4be4577976d1c08e237c7479770a"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:37:15 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:37:15 2010 +0200"
      },
      "message": "firewire: core: add CSR abdicate support\n\nImplement the abdicate bit, which is required for bus manager\ncapable nodes and tested by the Base 1394 Test Suite.\n\nFinally, something to do at a command reset!  :-)\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "3d1f46eb60b155c705e389ecdf313f11b4b91976",
      "tree": "6a28e68a7372d49f172f73a2c30e1a72dd124ffa",
      "parents": [
        "a1a1132bd83d0aea51d4f19be4b4a58a064a0131"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:35:37 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:35:37 2010 +0200"
      },
      "message": "firewire: core: add CSR MAINT_UTILITY support\n\nImplement the MAIN_UTILITY register, which is utterly optional\nbut useful as a safe target for diagnostic read/write/broadcast\ntransactions.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "a1a1132bd83d0aea51d4f19be4b4a58a064a0131",
      "tree": "93352d6aa9fd8eaa0521fbeb65853cd9f485666e",
      "parents": [
        "27a2329f8235d6ce637463f5d83e98d760ef006e"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:35:06 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:35:06 2010 +0200"
      },
      "message": "firewire: add CSR PRIORITY_BUDGET support\n\nIf supported by the OHCI controller, implement the PRIORITY_BUDGET\nregister, which is required for nodes that can use asynchronous\npriority arbitration.\n\nTo allow the core to determine what features the lowlevel device\nsupports, add a new card driver callback.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "8e4b50f94e8c1435a3e0ece42b7f97bc857d0145",
      "tree": "aad5b85a0bf67b5a7bbd80e1dad2d2a2d9b85470",
      "parents": [
        "446eba0d6896787b2f02f7a665838d32aa7b9d3f"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:26:28 2010 +0200"
      },
      "committer": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Jun 10 08:26:28 2010 +0200"
      },
      "message": "firewire: core: add CSR SPLIT_TIMEOUT support\n\nImplement the SPLIT_TIMEOUT registers.  Besides being required by the\nspec, this is desirable for some IIDC devices and necessary for many\naudio devices to be able to increase the timeout from userspace.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\n"
    },
    {
      "commit": "5c40cbfefa828208c671e2f58789e4dd04f79563",
      "tree": "aa7c38eb0c9e19ee0153a1764b24c67abaf5746d",
      "parents": [
        "753a8970f68594ea69c5fc13fbca18dbd9402996"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Tue Apr 27 09:07:00 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed May 19 00:26:30 2010 +0200"
      },
      "message": "firewire: core: use separate timeout for each transaction\n\nUsing a single timeout for all transaction that need to be flushed does\nnot work if the submission of new transactions can defer the timeout\nindefinitely into the future.  We need to have timeouts that do not\nchange due to other transactions; the simplest way to do this is with a\nseparate timer for each transaction.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (+ one lockdep annotation)\n"
    },
    {
      "commit": "edd5bdaf128e04066caac84fcb21377197ea0d64",
      "tree": "1b649a30c0c3263b1cbef23d0fcdc049228c5e8d",
      "parents": [
        "7cfe21aae155c26193fde617dc61d37a79a63f86"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Apr 14 22:30:18 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Apr 19 20:00:44 2010 +0200"
      },
      "message": "firewire: core: clean up config ROM related defined constants\n\nClemens Ladisch pointed out that\n  - BIB_IMC is not named like the field is called in the standard,\n  - readers of the code may get worried about the magic 0x0c0083c0,\n  - a CSR_NODE_CAPABILITIES key is there in the header but not put to\n    good use.\n\nSo let\u0027s rename BIB_IMC, add a defined constant for Node_Capabilities\nand a comment which reassures people that somebody thought about it and\nthey don\u0027t have to (or if they still do, tell them where they have to\nlook for confirmation), and prune our incomplete and arbitrary set of\ndefined constants of CSR key IDs.  And there is a nother magic number,\nthat of Bus_Information_Block.Bus_Name, to be defined and commented.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "13b302d0a217580c0129b0641b0ca8b592e437b0",
      "tree": "aa895bb410b4262d9942a0f77fe623c7d610da0c",
      "parents": [
        "3c2c58cb33b3b15a2c4871babeec8fe1456e1db6"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Dec 26 01:44:10 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Dec 29 19:58:17 2009 +0100"
      },
      "message": "firewire: qualify config ROM cache pointers as const pointers\n\nSeveral config ROM related functions only peek at the ROM cache; mark\ntheir arguments as const pointers.  Ditto fw_device.config_rom and\nfw_unit.directory, as the memory behind them is meant to be write-once.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "3c2c58cb33b3b15a2c4871babeec8fe1456e1db6",
      "tree": "c19f59e4de0d9fb84fa5e4a7b3cd4d600d3708cd",
      "parents": [
        "1f8fef7b3388b5a976e80839679b5bae581a1091"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Dec 26 01:43:21 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Dec 29 19:58:17 2009 +0100"
      },
      "message": "firewire: core: fw_csr_string addendum\n\nWitespace and comment changes, and a different way to say i + 1 \u003c end.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "1f8fef7b3388b5a976e80839679b5bae581a1091",
      "tree": "40ce4828cee287d6e54f627df787f8d993a21b1e",
      "parents": [
        "5d7db0499e5bb13381a7fbfdd0d913b966545e75"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "clemens@ladisch.de",
        "time": "Thu Dec 24 11:59:57 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Dec 29 19:58:17 2009 +0100"
      },
      "message": "firewire: add fw_csr_string() helper function\n\nThe core (sysfs attributes), the firedtv driver, and possible future\ndrivers all read strings from some configuration ROM directory.  Factor\nout the generic code from show_text_leaf() into a new helper function,\nmodified slightly to handle arbitrary buffer sizes.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "db5d247ae811f49185a71e703b65acad845e4b18",
      "tree": "630586f3bdeea2df01c349d3cf27fb2e6317370c",
      "parents": [
        "6b7b284958d47b77d06745b36bc7f36dab769d9b"
      ],
      "author": {
        "name": "Clemens Ladisch",
        "email": "cladisch@fastmail.net",
        "time": "Thu Dec 24 12:05:58 2009 +0100"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Dec 29 19:58:16 2009 +0100"
      },
      "message": "firewire: fix use of multiple AV/C devices, allow multiple FCP listeners\n\nControl of more than one AV/C device at once --- e.g. camcorders, tape\ndecks, audio devices, TV tuners --- failed or worked only unreliably,\ndepending on driver implementation.  This affected kernelspace and\nuserspace drivers alike and was caused by firewire-core\u0027s inability to\naccept multiple registrations of FCP listeners.\n\nThe fix allows multiple address handlers to be registered for the FCP\ncommand and response registers.  When a request for these registers is\nreceived, all handlers are invoked, and the Firewire response is\ngenerated by the core and not by any handler.\n\nThe cdev API does not change, i.e., userspace is still expected to send\na response for FCP requests; this response is silently ignored.\n\nSigned-off-by: Clemens Ladisch \u003cclemens@ladisch.de\u003e\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e (changelog, rebased, whitespace)\n"
    },
    {
      "commit": "19593ffdb6daa6ba691d247a2400cece12687c52",
      "tree": "18c3508bbdb5f2d1b1bf51ac653ec580043a9340",
      "parents": [
        "5b189bf3633c3b73d4f08124a86f3e019953d412"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Oct 14 20:40:10 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Oct 31 11:40:51 2009 +0100"
      },
      "message": "firewire: ohci: 0 may be a valid DMA address\n\nI was told that there are obscure architectures with non-coherent DMA\nwhich may DMA-map to bus address 0.  We shall not use 0 as a magic\nnumber of uninitialized bus address variables.\n\nThe packet-\u003epayload_length \u003e 0 test cannot be used either (except in\nat_context_queue_packet) because local requests are not DMA-mapped\nregardless of payload_length.  Hence add a state flag to struct\nfw_packet.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "cb7c96da3651111efbe088fa12f9bed61836ea93",
      "tree": "d31d9ba7e321206cd5b32753f444aabc2c76efeb",
      "parents": [
        "fe242579e9f33150868f1bb79c7e262ad7953f17"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Oct 08 00:42:53 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Oct 14 23:10:48 2009 +0200"
      },
      "message": "firewire: core: optimize Topology Map creation\n\nThe Topology Map of the local node was created in CPU byte order,\nthen a temporary big endian copy was created to compute the CRC,\nand when a read request to the Topology Map arrived it had to be\nconverted to big endian byte order again.\n\nWe now generate it in big endian byte order in the first place.\nThis also rids us of 1000 bytes stack usage in tasklet context.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "8e85973efc87dfae8508f1a3440fd44612897458",
      "tree": "9b8f0f0d1adf5a2611b58565db4d9da0ebd1cc9c",
      "parents": [
        "e21fcf798e246202d7b60e864f1d7302ebaaf41c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Oct 08 00:41:59 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Wed Oct 14 23:10:48 2009 +0200"
      },
      "message": "firewire: optimize config ROM creation\n\nThe config ROM image of the local node was created in CPU byte order,\nthen a temporary big endian copy was created to compute the CRC, and\nfinally the card driver created its own big endian copy.\n\nWe now generate it in big endian byte order in the first place to avoid\none byte order conversion and the temporary on-stack copy of the ROM\nimage (1000 bytes stack usage in process context).  Furthermore, two\n1000 bytes memset()s are replaced by one 1000 bytes - ROM length sized\nmemset.\n\nThe trivial fw_memcpy_{from,to}_be32() helpers are now superfluous and\nremoved.  The newly added __compute_block_crc() function will be folded\ninto fw_compute_block_crc() in a subsequent change.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "18668ff9a3232d5f942a2f7abc1ad67d2760dcdf",
      "tree": "251594c51144f5993b0975c5fb4ba9f200e5c79f",
      "parents": [
        "928ec5f148e729076e9202e7c78babede628a50c"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sun Sep 06 18:49:48 2009 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Sat Sep 12 14:48:40 2009 +0200"
      },
      "message": "firewire: core: header file cleanup\n\nfw_card_get, fw_card_put, fw_card_release are currently not exported for\nuse outside the firewire-core.  Move their definitions/ declarations\nfrom the subsystem header file to the core header file.\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": "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": "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": "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": "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"
    }
  ]
}
