)]}'
{
  "log": [
    {
      "commit": "7429b17d30a19fd52a0c07de9d3959746d321e15",
      "tree": "2dc1e07547893ed804fd06b84eb24a86a38cc571",
      "parents": [
        "fd8c8d46ca9402c15383d2cf0bc3ee7740de3b62"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:11 2010 +0200"
      },
      "message": "firewire: nosy: use generic printk macros\n\nReplace home-grown printk wrapper macros by ones from kernel.h and\ndevice.h.\n\nAlso raise the log level in set_phy_reg() from debug to error because\nthese are really error conditions.  Could even be WARN_ON.  Lower the\nlog level in the device probe and driver shutdown from notice to info.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "fd8c8d46ca9402c15383d2cf0bc3ee7740de3b62",
      "tree": "66a33db3ea837f2fb6c66e077a9b5fae7009c3ba",
      "parents": [
        "c89db7b8bc88d8288dcfbe7a885b950d2560d564"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:11 2010 +0200"
      },
      "message": "firewire: nosy: endianess fixes and annotations\n\n1.)  The DMA programs (struct pcl) are PCI-endian \u003d little endian data\n(except for the 3rd quadlet in a PCL which the controller does not\ntouch).  Annotate them as such.\n\nFix all accesses of the PCL to work with big endian CPUs also.  Not\nactually tested, I only have a little endian PC to test with.  This\nincludes replacement of a bitfield struct pcl_status by open-coded\nshift and mask operations.\n\n2.)  The two __attribute__ ((packed)) at struct pcl are not really\nrequired since it consists of u32/__le32 only, i.e. there will be no\npadding with or without the attribute.\n\n3.)  The received IEEE 1394 data are byteswapped by the controller from\nIEEE 1394 endian \u003d big endian to PCI endian \u003d little endian because the\nPCL_BIGENDIAN control bit is set.  Therefore annotate the DMA buffer as\na __le32 array.\n\nFix the one access of the DMA buffer (the check of the transaction code\nof link packets) to work with big endian CPUs.  Also fix the two\naccesses of the client bounce buffer (the reading of packet length).\n\n4.)  Add a comment to the userspace ABI header that all of the data gets\nout as little endian data, except for the timestamp which is CPU endian.\n(We could make it little endian too, but why?  Vice versa, an ioctl\ncould be added to dump packet data in big endian byte order...)\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c89db7b8bc88d8288dcfbe7a885b950d2560d564",
      "tree": "b6588c1c885f6219a55aff794681e39062408ad4",
      "parents": [
        "424d66cedae8bebb00fdb917fc8430f7b8a655cf"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:11 2010 +0200"
      },
      "message": "firewire: nosy: annotate __user pointers and __iomem pointers\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "424d66cedae8bebb00fdb917fc8430f7b8a655cf",
      "tree": "cd232df29974be404978d47a2257c9422272d304",
      "parents": [
        "b6d9c125e6610591c04ca9045f641e35ce1a9226"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:11 2010 +0200"
      },
      "message": "firewire: nosy: fix device shutdown with active client\n\nFix race between nosy_open() and remove_card() by replacing the\nunprotected array of card pointers by a mutex-protected list of cards.\n\nMake card instances reference-counted and let each client hold a\nreference.\n\nNotify clients about card removal via POLLHUP in poll()\u0027s events\nbitmap; also let read() fail with errno\u003dENODEV if the card was removed\nand everything in the buffer was read.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b6d9c125e6610591c04ca9045f641e35ce1a9226",
      "tree": "416672c79a3ee4b0764561ba5ebcf9ed3ba4d5c7",
      "parents": [
        "165476671f731b4c3d6cf401d0e1886f4a4f4a8e"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:10 2010 +0200"
      },
      "message": "firewire: nosy: handle errors in device probe\n\nand add a missing pci_disable_device() to device shutdown.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "165476671f731b4c3d6cf401d0e1886f4a4f4a8e",
      "tree": "59bba3913c7bb3a023394bce86bb0ea79d95f1ed",
      "parents": [
        "55e77c06c6017a70630cf599770369b8ba07c841"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:10 2010 +0200"
      },
      "message": "firewire: nosy: fix IRQ handler for card ejection\n\nUntested, I don\u0027t have a PCILynx CardBus card.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "55e77c06c6017a70630cf599770369b8ba07c841",
      "tree": "5fe5940bd0e0326afad0898b521490b53c894adf",
      "parents": [
        "685c3f80b6d88478a6428676f9daab59faf3cd4b"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:10 2010 +0200"
      },
      "message": "firewire: nosy: unroll some simple functions\n\nnosy_start/stop_snoop() and nosy_add/remove_client() are simple enough\nto be inlined into their callers.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "685c3f80b6d88478a6428676f9daab59faf3cd4b",
      "tree": "3f1f93927c0241ba12d887bcf7b90fc52d760884",
      "parents": [
        "a2d39db9dec0e7e403f54c9cf98b7dbc82b4c44a"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:10 2010 +0200"
      },
      "message": "firewire: nosy: use flagless variants of spinlock accessors\n\nnosy_start/stop_snoop() are always only called by the ioctl method, i.e.\nwith IRQs enabled.  packet_handler() and bus_reset_handler() are always\nonly called by the IRQ handler.  Hence neither one needs to track IRQ\nflags.\n\nTo underline the call context of packet_handler() and\nbus_reset_handler(), rename these functions to *_irq_handler().\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "a2d39db9dec0e7e403f54c9cf98b7dbc82b4c44a",
      "tree": "86e4e8447f83cefa4ae4809051fffad04b8229ef",
      "parents": [
        "c7b2a99c66e7b40d8843a70f2981e375eeedf062"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:10 2010 +0200"
      },
      "message": "firewire: nosy: fix list corruption by NOSY_IOC_STOP\n\nnosy_stop_snoop() would blow up the second time it was called without\nnosy_start_snoop() in between.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "c7b2a99c66e7b40d8843a70f2981e375eeedf062",
      "tree": "56039d14506b685e009f0b501264cba08d3e5484",
      "parents": [
        "b5e47729043c9224b21ab3dc7c63e8a38dbb4923"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Thu Jul 22 11:56:38 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:10 2010 +0200"
      },
      "message": "firewire: nosy: convert to unlocked ioctl\n\nThe required serialization of NOSY_IOC_START and NOSY_IOC_STOP is\nalready provided by the client_list_lock.\n\nNOSY_IOC_FILTER does not really require serialization since accesses\nto tcode_mask are atomic on any sane CPU architecture.  Nevertheless,\nmake it explicit that we want this to be atomic by means of\nclient_list_lock (which also surrounds the other tcode_mask access in\nthe IRQ handler).  While we are at it, change the type of tcode_mask to\nu32 for consistency with the user API.\n\nNOSY_IOC_GET_STATS does not require serialization against itself.  But\nthere is a bug here regarding concurrent updates of the two counters\nby the IRQ handler.  Fix it by taking the client_list_lock in this ioctl\ntoo.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "b5e47729043c9224b21ab3dc7c63e8a38dbb4923",
      "tree": "2acf6aa0f441c3a6b8812c8c5eb3b97a74f98056",
      "parents": [
        "286468210d83ce0ca1e37e346ed9f4457a161650"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 10:28:30 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:10 2010 +0200"
      },
      "message": "firewire: nosy: misc cleanups\n\nExtend copyright note to 2007, c.f. Kristian\u0027s git log.\n\nIncludes:\n  - replace some \u003casm/*.h\u003e by \u003clinux/*.h\u003e\n  - add required indirectly included \u003clinux/spinlock.h\u003e\n  - order alphabetically\n\nCoding style related changes:\n  - change to utf8\n  - normalize whitespace\n  - normalize comment style\n  - remove usages of __FUNCTION__\n  - remove an unnecessary cast from void *\n\nConst and static declarations:\n  - driver_name is not const in pci_driver.name, drop const qualifier\n  - driver_name can be taken from KBUILD_MODNAME\n  - the global variable minors[] can and should be static\n  - constify struct file_operations instance\n\nData types:\n  - Remove unused struct member struct packet.code.  struct packet is\n    only used for driver-internal bookkeeping; it does not appear on the\n    wire or in DMA programs or the userspace ABI.  Hence the unused\n    member .code can be removed without worries.\n\nPreprocessor macros:\n  - unroll a preprocessor macro that containd a return\n  - use list_for_each_entry\n\nPrintk:\n  - add missing terminating \\n in some format strings\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\n"
    },
    {
      "commit": "286468210d83ce0ca1e37e346ed9f4457a161650",
      "tree": "e445a09a6a074e3ae65479e417d41d4d1c41f571",
      "parents": [
        "e40152ee1e1c7a63f4777791863215e3faa37a86"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 10:26:33 2010 +0200"
      },
      "committer": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Tue Jul 27 11:04:10 2010 +0200"
      },
      "message": "firewire: new driver: nosy - IEEE 1394 traffic sniffer\n\nThis adds the traffic sniffer driver for Texas Instruments PCILynx/\nPCILynx2 based cards.  The use cases for nosy are analysis of\nnonstandard protocols and as an aid in development of drivers,\napplications, or firmwares.\n\nAuthor of the driver is Kristian Høgsberg.  Known contributers are\nJody McIntyre and Jonathan Woithe.\n\nNosy programs PCILynx chips to operate in promiscuous mode, which is a\nfeature that is not found in OHCI-1394 controllers.  Hence, only special\nhardware as mentioned in the Kconfig help text is suitable for nosy.\n\nThis is only the kernelspace part of nosy.  There is a userspace\ninterface to it, called nosy-dump, proposed to be added into the tools/\nsubdirectory of the kernel sources in a subsequent change.  Kernelspace\nand userspave component of nosy communicate via a \u0027misc\u0027 character\ndevice file called /dev/nosy with a simple ioctl() and read() based\nprotocol, as described by nosy-user.h.\n\nThe files added here are taken from\ngit://anongit.freedesktop.org/~krh/nosy commit ee29be97 (2009-11-10)\nwith the following changes by Stefan Richter:\n  - Kconfig and Makefile hunks are written from scratch.\n  - Commented out version printk in nosy.c.\n  - Included missing \u003clinux/sched.h\u003e, reported by Stephen Rothwell.\n\n\"git shortlog nosy{-user.h,.c,.h}\" from nosy\u0027s git repository:\n\nJonathan Woithe (2):\n      Nosy updates for recent kernels\n      Fix uninitialised memory (needed for 2.6.31 kernel)\n\nKristian Høgsberg (5):\n      Pull over nosy from mercurial repo.\n      Use a misc device instead.\n      Add simple AV/C decoder.\n      Don\u0027t break down on big payloads.\n      Set parent device for misc device.\n\nAs a low-level IEEE 1394 driver, its files are placed into\ndrivers/firewire/ although nosy is not part of the firewire driver\nstack.\n\nI am aware of the following literature from Texas Instruments about\nPCILynx programming:\n      SCPA020A - PCILynx 1394 to PCI Bus Interface TSB12LV21BPGF\n                 Functional Specification\n      SLLA023  - Initialization and Asynchronous Programming of the\n                 TSB12LV21A 1394 Device\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nAcked-by: Kristian Høgsberg \u003ckrh@bitplanet.net\u003e\n"
    }
  ]
}
