maintainer-entry-profile.rst 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. Media Subsystem Profile
  2. =======================
  3. Overview
  4. --------
  5. The media subsystem covers support for a variety of devices: stream
  6. capture, analog and digital TV streams, cameras, remote controllers, HDMI CEC
  7. and media pipeline control.
  8. It covers, mainly, the contents of those directories:
  9. - drivers/media
  10. - drivers/staging/media
  11. - Documentation/admin-guide/media
  12. - Documentation/driver-api/media
  13. - Documentation/userspace-api/media
  14. - Documentation/devicetree/bindings/media/\ [1]_
  15. - include/media
  16. .. [1] Device tree bindings are maintained by the
  17. OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS maintainers
  18. (see the MAINTAINERS file). So, changes there must be reviewed
  19. by them before being merged via the media subsystem's development
  20. tree.
  21. Both media userspace and Kernel APIs are documented and the documentation
  22. must be kept in sync with the API changes. It means that all patches that
  23. add new features to the subsystem must also bring changes to the
  24. corresponding API files.
  25. Due to the size and wide scope of the media subsystem, media's
  26. maintainership model is to have sub-maintainers that have a broad
  27. knowledge of a specific aspect of the subsystem. It is the sub-maintainers'
  28. task to review the patches, providing feedback to users if the patches are
  29. following the subsystem rules and are properly using the media kernel and
  30. userspace APIs.
  31. Patches for the media subsystem must be sent to the media mailing list
  32. at [email protected] as plain text only e-mail. Emails with
  33. HTML will be automatically rejected by the mail server. It could be wise
  34. to also copy the sub-maintainer(s).
  35. Media's workflow is heavily based on Patchwork, meaning that, once a patch
  36. is submitted, the e-mail will first be accepted by the mailing list
  37. server, and, after a while, it should appear at:
  38. - https://patchwork.linuxtv.org/project/linux-media/list/
  39. If it doesn't automatically appear there after a few minutes, then
  40. probably something went wrong on your submission. Please check if the
  41. email is in plain text\ [2]_ only and if your emailer is not mangling
  42. whitespaces before complaining or submitting them again.
  43. You can check if the mailing list server accepted your patch, by looking at:
  44. - https://lore.kernel.org/linux-media/
  45. .. [2] If your email contains HTML, the mailing list server will simply
  46. drop it, without any further notice.
  47. Media maintainers
  48. +++++++++++++++++
  49. At the media subsystem, we have a group of senior developers that
  50. are responsible for doing the code reviews at the drivers (also known as
  51. sub-maintainers), and another senior developer responsible for the
  52. subsystem as a whole. For core changes, whenever possible, multiple
  53. media maintainers do the review.
  54. The media maintainers that work on specific areas of the subsystem are:
  55. - Remote Controllers (infrared):
  56. Sean Young <[email protected]>
  57. - HDMI CEC:
  58. Hans Verkuil <[email protected]>
  59. - Media controller drivers:
  60. Laurent Pinchart <[email protected]>
  61. - ISP, v4l2-async, v4l2-fwnode, v4l2-flash-led-class and Sensor drivers:
  62. Sakari Ailus <[email protected]>
  63. - V4L2 drivers and core V4L2 frameworks:
  64. Hans Verkuil <[email protected]>
  65. The subsystem maintainer is:
  66. Mauro Carvalho Chehab <[email protected]>
  67. Media maintainers may delegate a patch to other media maintainers as needed.
  68. On such case, checkpatch's ``delegate`` field indicates who's currently
  69. responsible for reviewing a patch.
  70. Submit Checklist Addendum
  71. -------------------------
  72. Patches that change the Open Firmware/Device Tree bindings must be
  73. reviewed by the Device Tree maintainers. So, DT maintainers should be
  74. Cc:ed when those are submitted via [email protected] mailing
  75. list.
  76. There is a set of compliance tools at https://git.linuxtv.org/v4l-utils.git/
  77. that should be used in order to check if the drivers are properly
  78. implementing the media APIs:
  79. ==================== =======================================================
  80. Type Tool
  81. ==================== =======================================================
  82. V4L2 drivers\ [3]_ ``v4l2-compliance``
  83. V4L2 virtual drivers ``contrib/test/test-media``
  84. CEC drivers ``cec-compliance``
  85. ==================== =======================================================
  86. .. [3] The ``v4l2-compliance`` also covers the media controller usage inside
  87. V4L2 drivers.
  88. Other compilance tools are under development to check other parts of the
  89. subsystem.
  90. Those tests need to pass before the patches go upstream.
  91. Also, please notice that we build the Kernel with::
  92. make CF=-D__CHECK_ENDIAN__ CONFIG_DEBUG_SECTION_MISMATCH=y C=1 W=1 CHECK=check_script
  93. Where the check script is::
  94. #!/bin/bash
  95. /devel/smatch/smatch -p=kernel $@ >&2
  96. /devel/sparse/sparse $@ >&2
  97. Be sure to not introduce new warnings on your patches without a
  98. very good reason.
  99. Style Cleanup Patches
  100. +++++++++++++++++++++
  101. Style cleanups are welcome when they come together with other changes
  102. at the files where the style changes will affect.
  103. We may accept pure standalone style cleanups, but they should ideally
  104. be one patch for the whole subsystem (if the cleanup is low volume),
  105. or at least be grouped per directory. So, for example, if you're doing a
  106. big cleanup change set at drivers under drivers/media, please send a single
  107. patch for all drivers under drivers/media/pci, another one for
  108. drivers/media/usb and so on.
  109. Coding Style Addendum
  110. +++++++++++++++++++++
  111. Media development uses ``checkpatch.pl`` on strict mode to verify the code
  112. style, e.g.::
  113. $ ./scripts/checkpatch.pl --strict --max-line-length=80
  114. In principle, patches should follow the coding style rules, but exceptions
  115. are allowed if there are good reasons. On such case, maintainers and reviewers
  116. may question about the rationale for not addressing the ``checkpatch.pl``.
  117. Please notice that the goal here is to improve code readability. On
  118. a few cases, ``checkpatch.pl`` may actually point to something that would
  119. look worse. So, you should use good sense.
  120. Note that addressing one ``checkpatch.pl`` issue (of any kind) alone may lead
  121. to having longer lines than 80 characters per line. While this is not
  122. strictly prohibited, efforts should be made towards staying within 80
  123. characters per line. This could include using re-factoring code that leads
  124. to less indentation, shorter variable or function names and last but not
  125. least, simply wrapping the lines.
  126. In particular, we accept lines with more than 80 columns:
  127. - on strings, as they shouldn't be broken due to line length limits;
  128. - when a function or variable name need to have a big identifier name,
  129. which keeps hard to honor the 80 columns limit;
  130. - on arithmetic expressions, when breaking lines makes them harder to
  131. read;
  132. - when they avoid a line to end with an open parenthesis or an open
  133. bracket.
  134. Key Cycle Dates
  135. ---------------
  136. New submissions can be sent at any time, but if they intend to hit the
  137. next merge window they should be sent before -rc5, and ideally stabilized
  138. in the linux-media branch by -rc6.
  139. Review Cadence
  140. --------------
  141. Provided that your patch is at https://patchwork.linuxtv.org, it should
  142. be sooner or later handled, so you don't need to re-submit a patch.
  143. Except for bug fixes, we don't usually add new patches to the development
  144. tree between -rc6 and the next -rc1.
  145. Please notice that the media subsystem is a high traffic one, so it
  146. could take a while for us to be able to review your patches. Feel free
  147. to ping if you don't get a feedback in a couple of weeks or to ask
  148. other developers to publicly add Reviewed-by and, more importantly,
  149. ``Tested-by:`` tags.
  150. Please note that we expect a detailed description for ``Tested-by:``,
  151. identifying what boards were used at the test and what it was tested.