)]}'
{
  "log": [
    {
      "commit": "515f32879a05bdb69f9b3f86f53db4c04b95e845",
      "tree": "9a090c658d1dc1c96286cb9359cbfd13b42f5db3",
      "parents": [
        "6491d1adfbf0e2ffbdfcda8cef60edc01b6700b3"
      ],
      "author": {
        "name": "Sylwester Nawrocki",
        "email": "s.nawrocki@samsung.com",
        "time": "Sun May 06 15:30:44 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 14 14:03:21 2012 -0300"
      },
      "message": "[media] V4L: Add helper function for standard integer menu controls\n\nThis patch adds v4l2_ctrl_new_int_menu() helper function which can be used\nin drivers for creating standard integer menu control with driver-specific\nmenu item list. It is similar to v4l2_ctrl_new_std_menu(), except it doesn\u0027t\nhave a mask parameter and an additional qmenu parameter allows passing\nan array of signed 64-bit integers as the menu item list.\n\nSigned-off-by: Sylwester Nawrocki \u003cs.nawrocki@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nAcked-by: Sakari Ailus \u003csakari.ailus@iki.fi\u003e\nTested-by: Sakari Ailus \u003csakari.ailus@iki.fi\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "528f0f785c042c80294708c5ae2c8005b4a0ee60",
      "tree": "792db76eb99d3a539fa1ed5556d0438ddacd4185",
      "parents": [
        "5c37598142621ca8aadfd115d8e5f51c5337f8d5"
      ],
      "author": {
        "name": "Laurent Pinchart",
        "email": "laurent.pinchart@ideasonboard.com",
        "time": "Mon Apr 23 08:20:35 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 14 13:41:07 2012 -0300"
      },
      "message": "[media] v4l: v4l2-ctrls: moves the forward declaration of struct file\n\nThis fixes the following warning:\n\nIn file included from drivers/media/video/v4l2-subdev.c:29:\ninclude/media/v4l2-ctrls.h:501: warning: \u0027struct file\u0027 declared inside\nparameter list\ninclude/media/v4l2-ctrls.h:501: warning: its scope is only this\ndefinition or declaration, which is probably not what you want\ninclude/media/v4l2-ctrls.h:509: warning: \u0027struct file\u0027 declared inside\nparameter list\n\nSigned-off-by: Laurent Pinchart \u003claurent.pinchart@ideasonboard.com\u003e\nAcked-by: Hans Verkuil \u003chans.verkuil@cisco.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "77e7c4e624404c6edb5686b3d5f873c6008ed6b0",
      "tree": "1ba1d9903bb8eca6e3ca3439d3a5981274ea86ba",
      "parents": [
        "8227c92b69688403dee2adf5f399a49539ae5049"
      ],
      "author": {
        "name": "Sakari Ailus",
        "email": "sakari.ailus@iki.fi",
        "time": "Tue Jan 24 21:05:34 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 14 08:46:27 2012 -0300"
      },
      "message": "[media] v4l: Allow changing control handler lock\n\nAllow choosing the lock used by the control handler. This may be handy\nsometimes when a driver providing multiple subdevs does not want to use\nseveral locks to serialise its functions.\n\nSigned-off-by: Sakari Ailus \u003csakari.ailus@iki.fi\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "3e366149b8957f809081e5f0f70d209175127e29",
      "tree": "7ba69744a1bacd7b490d02d02d265e42f4c4e7a9",
      "parents": [
        "c53c2549333b340e2662dc64ec81323476b69a97"
      ],
      "author": {
        "name": "Hans de Goede",
        "email": "hdegoede@redhat.com",
        "time": "Sun Apr 08 12:59:47 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Mon May 07 16:29:35 2012 -0300"
      },
      "message": "[media] v4l2-ctrls: Use v4l2_subscribed_event_ops\n\nSigned-off-by: Hans de Goede \u003chdegoede@redhat.com\u003e\n[hans.verkuil@cisco.com: Fix a locking bug]\nAcked-by: Hans Verkuil \u003chans.verkuil@cisco.com\u003e\nSigned-off-by: Laurent Pinchart \u003claurent.pinchart@ideasonboard.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "b72d66770953c2177d70a7a5d24521a447d2b443",
      "tree": "45b0bbe2d3f36d64aa3342a36b1b8dd03b5c8f18",
      "parents": [
        "f70cfc7f182bf4605449cad4d665febf012c6f6b"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "g.liakhovetski@gmx.de",
        "time": "Wed Apr 18 03:59:58 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Thu Apr 19 17:25:53 2012 -0300"
      },
      "message": "[media] V4L: fix a compiler warning\n\nFix the warning:\n\nIn file included from /home/lyakh/software/project/24/src/linux-2.6/drivers/media/video/v4l2-subdev.c:29:\nlinux-2.6/include/media/v4l2-ctrls.h:497: warning: \u0027struct file\u0027 declared inside parameter list\nlinux-2.6/include/media/v4l2-ctrls.h:497: warning: its scope is only this definition or declaration, which is probably not what you want\nlinux-2.6/include/media/v4l2-ctrls.h:505: warning: \u0027struct file\u0027 declared inside parameter list\n\nSigned-off-by: Guennadi Liakhovetski \u003cg.liakhovetski@gmx.de\u003e\nAcked-by: Hans Verkuil \u003chans.verkuil@cisco.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "d5aeee8cb28317ef608ecac421abc4d986d585d2",
      "tree": "70ec8ed8891f26e5c58152ffca9924ea1c58fe3a",
      "parents": [
        "32898a145404acbebe3256709e012c2830a2043b",
        "e816b57a337ea3b755de72bec38c10c864f23015"
      ],
      "author": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Thu Apr 19 09:23:28 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Thu Apr 19 09:23:28 2012 -0300"
      },
      "message": "Merge tag \u0027v3.4-rc3\u0027 into staging/for_v3.5\n\n* tag \u0027v3.4-rc3\u0027: (3755 commits)\n  Linux 3.4-rc3\n  x86-32: fix up strncpy_from_user() sign error\n  ARM: 7386/1: jump_label: fixup for rename to static_key\n  ARM: 7384/1: ThumbEE: Disable userspace TEEHBR access for !CONFIG_ARM_THUMBEE\n  ARM: 7382/1: mm: truncate memory banks to fit in 4GB space for classic MMU\n  ARM: 7359/2: smp_twd: Only wait for reprogramming on active cpus\n  PCI: Fix regression in pci_restore_state(), v3\n  SCSI: Fix error handling when no ULD is attached\n  ARM: OMAP: clock: cleanup CPUfreq leftovers, fix build errors\n  ARM: dts: remove blank interrupt-parent properties\n  ARM: EXYNOS: Fix Kconfig dependencies for device tree enabled machine files\n  do not export kernel\u0027s NULL #define to userspace\n  ARM: EXYNOS: Remove broken config values for touchscren for NURI board\n  ARM: EXYNOS: set fix xusbxti clock for NURI and Universal210 boards\n  ARM: EXYNOS: fix regulator name for NURI board\n  ARM: SAMSUNG: make SAMSUNG_PM_DEBUG select DEBUG_LL\n  cpufreq: OMAP: fix build errors: depends on ARCH_OMAP2PLUS\n  sparc64: Eliminate obsolete __handle_softirq() function\n  sparc64: Fix bootup crash on sun4v.\n  ARM: msm: Fix section mismatches in proc_comm.c\n  ...\n"
    },
    {
      "commit": "ce580fe5190dec4d872e7925946b0aec1f694370",
      "tree": "cb745116ea3f1fb4f8cb327810b43b140fcb8fb8",
      "parents": [
        "3fd7e4341e04f80e2605f56bbd8cb1e8b027901a"
      ],
      "author": {
        "name": "Sakari Ailus",
        "email": "sakari.ailus@iki.fi",
        "time": "Thu Aug 04 13:51:11 2011 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Tue Apr 10 14:49:44 2012 -0300"
      },
      "message": "[media] v4l: Introduce integer menu controls\n\nCreate a new control type called V4L2_CTRL_TYPE_INTEGER_MENU. Integer menu\ncontrols are just like menu controls but the menu items are 64-bit integers\nrather than strings.\n\nSigned-off-by: Sakari Ailus \u003csakari.ailus@iki.fi\u003e\nAcked-by: Laurent Pinchart \u003claurent.pinchart@ideasonboard.com\u003e\nTested-by: Sylwester Nawrocki \u003cs.nawrocki@samsung.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "250f6715a4112d6686670c5a62ceb9305da94616",
      "tree": "ee1c9b41ed1fed8174efb312421902f19c877e8c",
      "parents": [
        "11bcb32848ddb5ab28f09f142b625e2ba4d55c4c",
        "313162d0b83836e2f57e51b9b8650fb4b9c396ea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:41:37 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:41:37 2012 -0700"
      },
      "message": "Merge tag \u0027device-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\nPull \u003clinux/device.h\u003e avoidance patches from Paul Gortmaker:\n \"Nearly every subsystem has some kind of header with a proto like:\n\n\tvoid foo(struct device *dev);\n\n  and yet there is no reason for most of these guys to care about the\n  sub fields within the device struct.  This allows us to significantly\n  reduce the scope of headers including headers.  For this instance, a\n  reduction of about 40% is achieved by replacing the include with the\n  simple fact that the device is some kind of a struct.\n\n  Unlike the much larger module.h cleanup, this one is simply two\n  commits.  One to fix the implicit \u003clinux/device.h\u003e users, and then one\n  to delete the device.h includes from the linux/include/ dir wherever\n  possible.\"\n\n* tag \u0027device-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:\n  device.h: audit and cleanup users in main include dir\n  device.h: cleanup users outside of linux/include (C files)\n"
    },
    {
      "commit": "313162d0b83836e2f57e51b9b8650fb4b9c396ea",
      "tree": "8f39f20515a924d392cf9a72db0918fda07a34c7",
      "parents": [
        "51990e825431089747f8896244b5c17d3a6423f1"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Jan 30 11:46:54 2012 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Fri Mar 16 10:38:24 2012 -0400"
      },
      "message": "device.h: audit and cleanup users in main include dir\n\nThe \u003clinux/device.h\u003e header includes a lot of stuff, and\nit in turn gets a lot of use just for the basic \"struct device\"\nwhich appears so often.\n\nClean up the users as follows:\n\n1) For those headers only needing \"struct device\" as a pointer\nin fcn args, replace the include with exactly that.\n\n2) For headers not really using anything from device.h, simply\ndelete the include altogether.\n\n3) For headers relying on getting device.h implicitly before\nbeing included themselves, now explicitly include device.h\n\n4) For files in which doing #1 or #2 uncovers an implicit\ndependency on some other header, fix by explicitly adding\nthe required header(s).\n\nAny C files that were implicitly relying on device.h to be\npresent have already been dealt with in advance.\n\nTotal removals from #1 and #2: 51.  Total additions coming\nfrom #3: 9.  Total other implicit dependencies from #4: 7.\n\nAs of 3.3-rc1, there were 110, so a net removal of 42 gives\nabout a 38% reduction in device.h presence in include/*\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "a26243b0e3726d2b39dc23dd2c8717c52a286af4",
      "tree": "478ea3c96e683a29a937746c853f5dcf4d323f03",
      "parents": [
        "42194e728f067cde09a95ce522c108756d44c0be"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hans.verkuil@cisco.com",
        "time": "Fri Jan 27 16:18:42 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Tue Feb 14 16:38:43 2012 -0200"
      },
      "message": "[media] v4l2-ctrls: add helper functions for control events\n\nMany drivers just support control events, and most radio drivers just need\nto poll for control events. Add some functions to simplify those jobs.\n\nSigned-off-by: Hans Verkuil \u003chans.verkuil@cisco.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "e2ecb257eebd8525029f43fcb4f922c4976dba53",
      "tree": "9ae14febaef5e9c0ebf49472a3f6d30b8da7ac5d",
      "parents": [
        "eb224c29132b4b2fc01ecd19274501af6c3a261a"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hans.verkuil@cisco.com",
        "time": "Thu Feb 02 08:20:53 2012 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Tue Feb 14 16:38:13 2012 -0200"
      },
      "message": "[media] v4l2: standardize log start/end message\n\nFor drivers that properly use the v4l2 framework (i.e. set v4l2_dev in the\nvideo_device struct), the start and end messages of VIDIOC_LOG_STATUS are\nnow generated automatically. People tended to forget these, but the v4l2-ctl\ntool scans for these messages, and it also makes it easier to read the status\noutput in the kernel log.\n\nThe cx18, ivtv and bttv drivers were changed since they no longer need to\nlog these start/end messages.\n\nIn saa7164 two empty log_status functions were removed.\n\nAlso added a helper function to v4l2-ctrl.c that can be used as the\nvidioc_log_status callback if all you need to do is to log the current control\nvalues. This is now used by pwc and vivi.\n\nSigned-off-by: Hans Verkuil \u003chans.verkuil@cisco.com\u003e\nCc: Steven Toth \u003cstoth@kernellabs.com\u003e\nCc: Andy Walls \u003cawalls@md.metrocast.net\u003e\nCc: Hans de Goede \u003chdegoede@redhat.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "5626b8c75bc13aa3287c18d49e92edc84fa85b2d",
      "tree": "0c913d7ed98ff0f469f305b5042880a270543c20",
      "parents": [
        "de2fb698c6fb1e968a5ed9cc449024f119ad3853"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hans.verkuil@cisco.com",
        "time": "Fri Aug 26 07:53:53 2011 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Sep 21 10:48:30 2011 -0300"
      },
      "message": "[media] v4l2-ctrls: implement new volatile autocluster scheme\n\nThe problem tackled in this patch is how to handle volatile autoclusters\ncorrectly. A volatile autocluster is a cluster of related controls where one\ncontrol is the control that toggles between manual and auto mode and the other\ncontrols are the values for the manual mode. For example autogain and gain,\nautoexposure and exposure, etc.\n\nIf the hardware lets you read out the automatically calculated manual values\nwhile in automode, then those manual controls should be marked volatile.\n\ngain value as calculated by the autogain circuitry, then you would mark the\ngain control as volatile (i.e. continuously changing).\n\nThe question in such use cases is what to do when switching from the auto\nmode to the manual mode. Should we switch to the last set manual values or\nshould the volatile values be copied and used as the initial manual values.\n\nFor example: suppose the mode is manual gain and gain is set to 5. Then\nautogain is turned on and the gain is set by the hardware to 2. Finally\nthe user switches back to manual gain. What should the gain be? 2 or 5?\n\nAfter a long discussion the decisions was made to keep the last value as\ncalculated by the auto mode (so 2 in the example above).\n\nThe reason is that webcams that do such things will adapt themselves to\nthe current light conditions and when you switch back to manual mode you\nexpect that you keep the same picture. If you would switch back to old\nmanual values, then that would give you a suddenly different picture,\nwhich is jarring for the user.\n\nAdditionally, this would be difficult to implement in applications that\nstore and restore the control values at application exit and start.\n\nIf you want to keep the old manual values when you switch from auto to\nmanual, then there would have to be a way for applications to get hold\nof those old values while in auto mode, but there isn\u0027t.\n\nSo this patch will do all the heavy lifting in v4l2-ctrls.c: if you go\nfrom auto mode to manual mode and the manual controls are volatile, then\ng_volatile_ctrl will be called to get the current values for the manual\ncontrols before switching to manual mode.\n\nSigned-off-by: Hans Verkuil \u003chans.verkuil@cisco.com\u003e\nAcked-by: Hans de Goede \u003chdegoede@redhat.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "88365105d683187e02a4f75220eaf51fd0c0b6e0",
      "tree": "acbc18b9e8eb7f74630fb7fd709cb35eafd30f54",
      "parents": [
        "74a45790861f659058e8f8b565d98e5a1fdd8440"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hans.verkuil@cisco.com",
        "time": "Fri Aug 26 07:35:14 2011 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Sep 21 09:52:21 2011 -0300"
      },
      "message": "[media] v4l2-ctrls: replace is_volatile with V4L2_CTRL_FLAG_VOLATILE\n\nWith the new flag there is no need anymore to have a separate is_volatile\nfield. Modify all users to use the new flag.\n\nSigned-off-by: Hans Verkuil \u003chans.verkuil@cisco.com\u003e\nAcked-by: Hans de Goede \u003chdegoede@redhat.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "3f66f0ed319505555f45ceac04775b23f9279ee6",
      "tree": "27796db307bf941b8297b639b4cb2b9a48ffc689",
      "parents": [
        "e969084030b03f4997d63b3f718ba814290e0705"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hans.verkuil@cisco.com",
        "time": "Mon Jun 20 11:56:24 2011 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Jul 27 17:53:34 2011 -0300"
      },
      "message": "[media] v4l2-ctrls/v4l2-events: small coding style cleanups\n\nThanks to Laurent Pinchart \u003claurent.pinchart@ideasonboard.com\u003e.\n\nSigned-off-by: Hans Verkuil \u003chans.verkuil@cisco.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "eb5b16efb26ff5b2d0ba25a114394db69c433f86",
      "tree": "df68e2737553e18218e94247fd6924eeaf09051f",
      "parents": [
        "c12fcfd676e16a82e47ee44fe2d13dc21717063a"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hans.verkuil@cisco.com",
        "time": "Tue Jun 14 10:04:06 2011 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Jul 27 17:53:31 2011 -0300"
      },
      "message": "[media] v4l2-ctrls: improve discovery of controls of the same cluster\n\nThe implementation of VIDIOC_G/S/TRY_EXT_CTRLS in the control framework has\nto figure out which controls in the control list belong to the same cluster.\nSince controls belonging to the same cluster need to be handled as a unit,\nthis is important information.\n\nIt did that by going over the controls in the list and for each control that\nbelonged to a multi-control cluster it would walk the remainder of the list\nto try and find controls that belong to that same cluster.\n\nThis approach has two disadvantages:\n\n1) it was a potentially quadratic algorithm (although highly unlikely that\nit would ever be that bad in practice).\n2) it took place with the control handler\u0027s lock held.\n\nSince we want to make it possible in the future to change control values\nfrom interrupt context, doing a lot of work while holding a lock is not a\ngood idea.\n\nIn the new code the algorithm is no longer quadratic but linear in the\nnumber of controls in the list. Also, it now can be done beforehand.\n\nAnother change that was made was to so the try and set at the same time.\nBefore when S_TRY_EXT_CTRLS was called it would \u0027try\u0027 the controls first,\nand then it would \u0027set\u0027 them. The idea was that any \u0027try\u0027 errors would\nprevent the \u0027set\u0027 from happening, thus avoiding having partially set\ncontrol lists.\n\nHowever, this caused more problems than it solved because between the \u0027try\u0027\nand the \u0027set\u0027 changes might have happened, so it had to try a second time,\nand since actual controls with a try_ctrl op are very rare (and those that\nwe have just adjust values and do not return an error), I\u0027ve decided to\ndrop that two-stage approach and just combine try and set.\n\nSigned-off-by: Hans Verkuil \u003chans.verkuil@cisco.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "f1e393de382af9b9bd2462a42bfa16b8c501d81b",
      "tree": "1135a4a27166d3947ebfcf2be171efa2d8cd3228",
      "parents": [
        "77068d36d8b9e9902a89b4bb01011d41926f5420"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hans.verkuil@cisco.com",
        "time": "Mon Jun 13 19:24:17 2011 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Jul 27 17:53:31 2011 -0300"
      },
      "message": "[media] v4l2-event/ctrls/fh: allocate events per fh and per type instead of just per-fh\n\nThe driver had to decide how many events to allocate when the v4l2_fh struct\nwas created. It was possible to add more events afterwards, but there was no\nway to ensure that you wouldn\u0027t miss important events if the event queue\nwould fill up for that filehandle.\n\nIn addition, once there were no more free events, any new events were simply\ndropped on the floor.\n\nFor the control event in particular this made life very difficult since\ncontrol status/value changes could just be missed if the number of allocated\nevents and the speed at which the application read events was too low to keep\nup with the number of generated events. The application would have no idea\nwhat the latest state was for a control since it could have missed the latest\ncontrol change.\n\nSo this patch makes some major changes in how events are allocated. Instead\nof allocating events per-filehandle they are now allocated when subscribing an\nevent. So for that particular event type N events (determined by the driver)\nare allocated. Those events are reserved for that particular event type.\nThis ensures that you will not miss events for a particular type altogether.\n\nIn addition, if there are N events in use and a new event is raised, then\nthe oldest event is dropped and the new one is added. So the latest event\nis always available.\n\nThis can be further improved by adding the ability to merge the state of\ntwo events together, ensuring that no data is lost at all. This will be\nadded in the next patch.\n\nThis also makes it possible to allow the user to determine the number of\nevents that will be allocated. This is not implemented at the moment, but\nwould be trivial.\n\nSigned-off-by: Hans Verkuil \u003chans.verkuil@cisco.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "77068d36d8b9e9902a89b4bb01011d41926f5420",
      "tree": "4fde4974ce56e52acac5c7c8d873d300e946adcc",
      "parents": [
        "523f46d6aba9dcb0a2d0fc474ca884e93a7cf198"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hans.verkuil@cisco.com",
        "time": "Mon Jun 13 18:55:58 2011 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Jul 27 17:53:31 2011 -0300"
      },
      "message": "[media] v4l2-ctrls/event: remove struct v4l2_ctrl_fh, instead use v4l2_subscribed_event\n\nThe v4l2_ctrl_fh struct connected v4l2_ctrl with v4l2_fh so the control\nwould know which filehandles subscribed to it. However, it is much easier\nto use struct v4l2_subscribed_event directly for that and get rid of that\nintermediate struct.\n\nSigned-off-by: Hans Verkuil \u003chans.verkuil@cisco.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "82a7c049449ec5a2194249da341ec8bde14e968b",
      "tree": "689a71f2988b585608e41e7dee4d096c73c7ca22",
      "parents": [
        "2330fb8242c3efc281ab8a2d3e22686023699955"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hans.verkuil@cisco.com",
        "time": "Tue Jun 28 10:43:13 2011 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Jul 27 17:53:21 2011 -0300"
      },
      "message": "[media] v4l2-ctrls: make manual_mode_value 8 bits and check against control range\n\nSigned-off-by: Hans Verkuil \u003chans.verkuil@cisco.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "ce7275747bd548e0da7425ba0b7edb6f2c7657a2",
      "tree": "5e230670266e64ed7f4317df5f39700bb92d5825",
      "parents": [
        "6e239399e5807132f86f64af6c659411c6a3d1a5"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hans.verkuil@cisco.com",
        "time": "Fri Jun 10 05:56:39 2011 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Jul 27 17:53:20 2011 -0300"
      },
      "message": "[media] v4l2-ctrls: simplify event subscription\n\nSigned-off-by: Hans Verkuil \u003chans.verkuil@cisco.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "6e239399e5807132f86f64af6c659411c6a3d1a5",
      "tree": "eeb564a25341111f1c7d6e92137e910c4e4d37f3",
      "parents": [
        "ab892bac8438c5c2ff09a60d765d9b0c14941ba9"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hans.verkuil@cisco.com",
        "time": "Tue Jun 07 11:13:44 2011 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Jul 27 17:53:20 2011 -0300"
      },
      "message": "[media] v4l2-ctrls: add control events\n\nWhenever a control changes value or state an event is sent to anyone\nthat subscribed to it.\n\nThis functionality is useful for control panels but also for applications\nthat need to wait for (usually status) controls to change value.\n\nSigned-off-by: Hans Verkuil \u003chans.verkuil@cisco.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "ab892bac8438c5c2ff09a60d765d9b0c14941ba9",
      "tree": "f0c96b30275086c26b9e17b0092b7587b6f0ac10",
      "parents": [
        "a1c894fba3c306a738576710ca35e70a32b74a6d"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hans.verkuil@cisco.com",
        "time": "Tue Jun 07 06:47:18 2011 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Jul 27 17:53:19 2011 -0300"
      },
      "message": "[media] v4l2-ctrls: add v4l2_fh pointer to the set control functions\n\nWhen an application changes a control you want to generate an event.\nHowever, you want to avoid sending such an event back to the application\n(file handle) that caused the change.\n\nAdd the filehandle to the various set control functions.\n\nThe filehandle isn\u0027t used yet, but the control event patches will need\nthis.\n\nSigned-off-by: Hans Verkuil \u003chans.verkuil@cisco.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "72d877cac07c8d996918977c3162dd78b8097ca8",
      "tree": "03b03db2d5c44c6cca946cb7f24d61a1c15cce24",
      "parents": [
        "78866efe8ae2862fef7ff37af36c6972651c2d0b"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hans.verkuil@cisco.com",
        "time": "Fri Jun 10 05:44:36 2011 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Jul 27 17:53:18 2011 -0300"
      },
      "message": "[media] v4l2-ctrls: add v4l2_ctrl_auto_cluster to simplify autogain/gain scenarios\n\nIt is a bit tricky to handle autogain/gain type scenerios correctly. Such\ncontrols need to be clustered and the V4L2_CTRL_FLAG_UPDATE should be set on\nthe autofoo controls. In addition, the manual controls should be marked\ninactive when the automatic mode is on, and active when the manual mode is on.\nThis also requires specialized volatile handling.\n\nThe chances of drivers doing all these things correctly are pretty remote.\nSo a new v4l2_ctrl_auto_cluster function was added that takes care of these\nissues.\n\nSigned-off-by: Hans Verkuil \u003chans.verkuil@cisco.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "01c40c048b0f3f377e6d27b35fd99f04efcc21dd",
      "tree": "664b3b188965b32887277f950c628bfc1433456d",
      "parents": [
        "bda50bcd0cc21d9d6dd8c82628f763ab108260a6"
      ],
      "author": {
        "name": "Laurent Pinchart",
        "email": "laurent.pinchart@ideasonboard.com",
        "time": "Fri Nov 19 11:20:06 2010 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Jan 19 11:52:09 2011 -0200"
      },
      "message": "[media] v4l: Include linux/videodev2.h in media/v4l2-ctrls.h\n\nThe later makes extensive use of structures defined in the former.\n\nSigned-off-by: Laurent Pinchart \u003claurent.pinchart@ideasonboard.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "2a863793beaa0fc9ee7aeb87efe85544a6b129c0",
      "tree": "9316b12b95a707eb5541db2e24d6033d9b0e2805",
      "parents": [
        "45f6f84af3ae9db19f39bc5d0976d626b0ef626e"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hverkuil@xs4all.nl",
        "time": "Tue Jan 11 14:45:03 2011 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Wed Jan 19 11:45:32 2011 -0200"
      },
      "message": "[media] v4l2-ctrls: v4l2_ctrl_handler_setup must set is_new to 1\n\nRenamed has_new to is_new.\n\nDrivers can use the is_new field to determine if a new value was specified\nfor a control. The v4l2_ctrl_handler_setup() must always set this to 1 since\nthe setup has to force a full update of all controls.\n\nSigned-off-by: Hans Verkuil \u003chverkuil@xs4all.nl\u003e\nAcked-by: Laurent Pinchart \u003claurent.pinchart@ideasonboard.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "513521eaee4375a1a0da0b73c7131a165a9fe4d9",
      "tree": "352f8d9053c1dd6d6866f13feed818bb24934f4a",
      "parents": [
        "6d6a48e51fd3bcb40c5b88d0f9690ba960eedfd2"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hverkuil@xs4all.nl",
        "time": "Wed Dec 29 14:25:52 2010 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Thu Dec 30 08:02:14 2010 -0200"
      },
      "message": "[media] v4l2-ctrls: use const char * const * for the menu arrays\n\nThis prevents checkpatch warnings generated when defining\n\u0027static const char *foo[]\u0027 arrays. It makes sense to use\nconst char * const * anyway since the pointers in the array\nare indeed const.\n\nSigned-off-by: Hans Verkuil \u003chverkuil@xs4all.nl\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    },
    {
      "commit": "0996517cf8eaded69b8502c8f5abeb8cec62b6d4",
      "tree": "672be97933e8028200eb6718bb49f0ef5c1f4013",
      "parents": [
        "03e30ca5f08e0f9c629204e537ff96b789e6e703"
      ],
      "author": {
        "name": "Hans Verkuil",
        "email": "hverkuil@xs4all.nl",
        "time": "Sun Aug 01 14:32:42 2010 -0300"
      },
      "committer": {
        "name": "Mauro Carvalho Chehab",
        "email": "mchehab@redhat.com",
        "time": "Sun Aug 08 23:43:03 2010 -0300"
      },
      "message": "V4L/DVB: v4l2: Add new control handling framework\n\nAdd a new framework to handle controls which makes life for driver\ndevelopers much easier.\n\nNote that this patch moves some of the control support that used to be in\nv4l2-common.c to v4l2-ctrls.c. The tables were copied unchanged. The body\nof v4l2_ctrl_query_fill() was copied to a new v4l2_ctrl_fill() function\nin v4l2-ctrls.c. This new function doesn\u0027t use the v4l2_queryctrl\nstruct anymore, which makes it more general.\n\nThe remainder of v4l2-ctrls.c is all new. Highlights include:\n\n- No need to implement VIDIOC_QUERYCTRL, QUERYMENU, S_CTRL, G_CTRL,\n  S_EXT_CTRLS, G_EXT_CTRLS or TRY_EXT_CTRLS in either bridge drivers\n  or subdevs. New wrapper functions are provided that can just be plugged in.\n  Once everything has been converted these wrapper functions can be removed as well.\n\n- When subdevices are added their controls can be automatically merged\n  with the bridge driver\u0027s controls.\n\n- Most drivers just need to implement s_ctrl to set the controls.\n  The framework handles the locking and tries to be as \u0027atomic\u0027 as possible.\n\n- Ready for the subdev device nodes: the same mechanism applies to subdevs\n  and their device nodes as well. Sub-device drivers can make controls\n  local, preventing them from being merged with bridge drivers.\n\n- Takes care of backwards compatibility handling of VIDIOC_S_CTRL and\n  VIDIOC_G_CTRL. Handling of V4L2_CID_PRIVATE_BASE is fully transparent.\n  CTRL_CLASS controls are automatically added.\n\nSigned-off-by: Hans Verkuil \u003chverkuil@xs4all.nl\u003e\nReviewed-by: Laurent Pinchart \u003claurent.pinchart@ideasonboard.com\u003e\nSigned-off-by: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\n"
    }
  ]
}
