sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget=/translations/zh_CN/driver-api/media/maintainer-entry-profilemodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget=/translations/zh_TW/driver-api/media/maintainer-entry-profilemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget=/translations/it_IT/driver-api/media/maintainer-entry-profilemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget=/translations/ja_JP/driver-api/media/maintainer-entry-profilemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget=/translations/ko_KR/driver-api/media/maintainer-entry-profilemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget=/translations/sp_SP/driver-api/media/maintainer-entry-profilemodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(hMedia Subsystem Profileh]hMedia Subsystem Profile}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhW/var/lib/git/docbuild/linux/Documentation/driver-api/media/maintainer-entry-profile.rsthKubh)}(hhh](h)}(hOverviewh]hOverview}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hThe media subsystem covers support for a variety of devices: stream capture, analog and digital TV streams, cameras, remote controllers, HDMI CEC and media pipeline control.h]hThe media subsystem covers support for a variety of devices: stream capture, analog and digital TV streams, cameras, remote controllers, HDMI CEC and media pipeline control.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(h5It covers, mainly, the contents of those directories:h]h5It covers, mainly, the contents of those directories:}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh block_quote)}(h- drivers/media - drivers/staging/media - Documentation/admin-guide/media - Documentation/driver-api/media - Documentation/userspace-api/media - Documentation/devicetree/bindings/media/\ [1]_ - include/media h]h bullet_list)}(hhh](h list_item)}(h drivers/mediah]h)}(hhh]h drivers/media}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhubah}(h]h ]h"]h$]h&]uh1hhhubh)}(hdrivers/staging/mediah]h)}(hj h]hdrivers/staging/media}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1hhhubh)}(hDocumentation/admin-guide/mediah]h)}(hj#h]hDocumentation/admin-guide/media}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj!ubah}(h]h ]h"]h$]h&]uh1hhhubh)}(hDocumentation/driver-api/mediah]h)}(hj:h]hDocumentation/driver-api/media}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj8ubah}(h]h ]h"]h$]h&]uh1hhhubh)}(h!Documentation/userspace-api/mediah]h)}(hjQh]h!Documentation/userspace-api/media}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjOubah}(h]h ]h"]h$]h&]uh1hhhubh)}(h.Documentation/devicetree/bindings/media/\ [1]_h]h)}(hjhh](h*Documentation/devicetree/bindings/media/ }(hjjhhhNhNubhfootnote_reference)}(h[1]_h]h1}(hjshhhNhNubah}(h]id1ah ]h"]h$]h&]refidid2docname)driver-api/media/maintainer-entry-profileuh1jqhjjresolvedKubeh}(h]h ]h"]h$]h&]uh1hhhhKhjfubah}(h]h ]h"]h$]h&]uh1hhhubh)}(hinclude/media h]h)}(h include/mediah]h include/media}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]bullet-uh1hhhhK hhubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubhfootnote)}(hDevice tree bindings are maintained by the OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS maintainers (see the MAINTAINERS file). So, changes there must be reviewed by them before being merged via the media subsystem's development tree. h](hlabel)}(h1h]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh)}(hDevice tree bindings are maintained by the OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS maintainers (see the MAINTAINERS file). So, changes there must be reviewed by them before being merged via the media subsystem's development tree.h]hDevice tree bindings are maintained by the OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS maintainers (see the MAINTAINERS file). So, changes there must be reviewed by them before being merged via the media subsystem’s development tree.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubeh}(h]jah ]h"]1ah$]h&]j}ajjuh1jhhhKhhhhjKubh)}(hBoth media userspace and Kernel APIs are documented and the documentation must be kept in sync with the API changes. It means that all patches that add new features to the subsystem must also bring changes to the corresponding API files.h]hBoth media userspace and Kernel APIs are documented and the documentation must be kept in sync with the API changes. It means that all patches that add new features to the subsystem must also bring changes to the corresponding API files.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hXqDue to the size and wide scope of the media subsystem, media's maintainership model is to have sub-maintainers that have a broad knowledge of a specific aspect of the subsystem. It is the sub-maintainers' task to review the patches, providing feedback to users if the patches are following the subsystem rules and are properly using the media kernel and userspace APIs.h]hXuDue to the size and wide scope of the media subsystem, media’s maintainership model is to have sub-maintainers that have a broad knowledge of a specific aspect of the subsystem. It is the sub-maintainers’ task to review the patches, providing feedback to users if the patches are following the subsystem rules and are properly using the media kernel and userspace APIs.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hPatches for the media subsystem must be sent to the media mailing list at linux-media@vger.kernel.org as plain text only e-mail. Emails with HTML will be automatically rejected by the mail server. It could be wise to also copy the sub-maintainer(s).h](hJPatches for the media subsystem must be sent to the media mailing list at }(hjhhhNhNubh reference)}(hlinux-media@vger.kernel.orgh]hlinux-media@vger.kernel.org}(hj hhhNhNubah}(h]h ]h"]h$]h&]refuri"mailto:linux-media@vger.kernel.orguh1jhjubh as plain text only e-mail. Emails with HTML will be automatically rejected by the mail server. It could be wise to also copy the sub-maintainer(s).}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK'hhhhubh)}(hMedia's workflow is heavily based on Patchwork, meaning that, once a patch is submitted, the e-mail will first be accepted by the mailing list server, and, after a while, it should appear at:h]hMedia’s workflow is heavily based on Patchwork, meaning that, once a patch is submitted, the e-mail will first be accepted by the mailing list server, and, after a while, it should appear at:}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hhhhubh)}(h:- https://patchwork.linuxtv.org/project/linux-media/list/ h]h)}(hhh]h)}(h8https://patchwork.linuxtv.org/project/linux-media/list/ h]h)}(h7https://patchwork.linuxtv.org/project/linux-media/list/h]j )}(hj?h]h7https://patchwork.linuxtv.org/project/linux-media/list/}(hjAhhhNhNubah}(h]h ]h"]h$]h&]refurij?uh1jhj=ubah}(h]h ]h"]h$]h&]uh1hhhhK0hj9ubah}(h]h ]h"]h$]h&]uh1hhj6ubah}(h]h ]h"]h$]h&]jjuh1hhhhK0hj2ubah}(h]h ]h"]h$]h&]uh1hhhhK0hhhhubh)}(hXIf it doesn't automatically appear there after a few minutes, then probably something went wrong on your submission. Please check if the email is in plain text\ [2]_ only and if your emailer is not mangling whitespaces before complaining or submitting them again.h](hIf it doesn’t automatically appear there after a few minutes, then probably something went wrong on your submission. Please check if the email is in plain text }(hjghhhNhNubjr)}(h[2]_h]h2}(hjohhhNhNubah}(h]id3ah ]h"]h$]h&]jid4jjuh1jqhjgjKubhb only and if your emailer is not mangling whitespaces before complaining or submitting them again.}(hjghhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK2hhhhubh)}(hLYou can check if the mailing list server accepted your patch, by looking at:h]hLYou can check if the mailing list server accepted your patch, by looking at:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK7hhhhubh)}(h'- https://lore.kernel.org/linux-media/ h]h)}(hhh]h)}(h%https://lore.kernel.org/linux-media/ h]h)}(h$https://lore.kernel.org/linux-media/h]j )}(hjh]h$https://lore.kernel.org/linux-media/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhK9hjubah}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]jjuh1hhhhK9hjubah}(h]h ]h"]h$]h&]uh1hhhhK9hhhhubj)}(hgIf your email contains HTML, the mailing list server will simply drop it, without any further notice. h](j)}(h2h]h2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh)}(heIf your email contains HTML, the mailing list server will simply drop it, without any further notice.h]heIf your email contains HTML, the mailing list server will simply drop it, without any further notice.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK;hjubeh}(h]j~ah ]h"]2ah$]h&]jyajjuh1jhhhK;hhhhjKubh)}(hhh](h)}(hMedia maintainersh]hMedia maintainers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK@ubh)}(hX2At the media subsystem, we have a group of senior developers that are responsible for doing the code reviews at the drivers (also known as sub-maintainers), and another senior developer responsible for the subsystem as a whole. For core changes, whenever possible, multiple media maintainers do the review.h]hX2At the media subsystem, we have a group of senior developers that are responsible for doing the code reviews at the drivers (also known as sub-maintainers), and another senior developer responsible for the subsystem as a whole. For core changes, whenever possible, multiple media maintainers do the review.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKBhjhhubh)}(hGThe media maintainers that work on specific areas of the subsystem are:h]hGThe media maintainers that work on specific areas of the subsystem are:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKHhjhhubh)}(hhh](h)}(h h]hdefinition_list)}(hhh]hdefinition_list_item)}(h:Remote Controllers (infrared): Sean Young h](hterm)}(hRemote Controllers (infrared):h]hRemote Controllers (infrared):}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1j2hhhKKhj.ubh definition)}(hhh]h)}(hSean Young h](h Sean Young <}(hjGhhhNhNubj )}(h sean@mess.orgh]h sean@mess.org}(hjOhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:sean@mess.orguh1jhjGubh>}(hjGhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKKhjDubah}(h]h ]h"]h$]h&]uh1jBhj.ubeh}(h]h ]h"]h$]h&]uh1j,hhhKKhj)ubah}(h]h ]h"]h$]h&]uh1j'hj#ubah}(h]h ]h"]h$]h&]uh1hhj hhhNhNubh)}(h.HDMI CEC: Hans Verkuil h]j()}(hhh]j-)}(h,HDMI CEC: Hans Verkuil h](j3)}(h HDMI CEC:h]h HDMI CEC:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j2hhhKNhjubjC)}(hhh]h)}(h!Hans Verkuil h](hHans Verkuil <}(hjhhhNhNubj )}(hhverkuil@xs4all.nlh]hhverkuil@xs4all.nl}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:hverkuil@xs4all.nluh1jhjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKNhjubah}(h]h ]h"]h$]h&]uh1jBhjubeh}(h]h ]h"]h$]h&]uh1j,hhhKNhjubah}(h]h ]h"]h$]h&]uh1j'hjubah}(h]h ]h"]h$]h&]uh1hhj hhhNhNubh)}(hQMedia controller drivers: Laurent Pinchart h]j()}(hhh]j-)}(hOMedia controller drivers: Laurent Pinchart h](j3)}(hMedia controller drivers:h]hMedia controller drivers:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j2hhhKQhjubjC)}(hhh]h)}(h4Laurent Pinchart h](hLaurent Pinchart <}(hjhhhNhNubj )}(h!laurent.pinchart@ideasonboard.comh]h!laurent.pinchart@ideasonboard.com}(hjhhhNhNubah}(h]h ]h"]h$]h&]refuri(mailto:laurent.pinchart@ideasonboard.comuh1jhjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKQhjubah}(h]h ]h"]h$]h&]uh1jBhjubeh}(h]h ]h"]h$]h&]uh1j,hhhKQhjubah}(h]h ]h"]h$]h&]uh1j'hjubah}(h]h ]h"]h$]h&]uh1hhj hhhNhNubh)}(huISP, v4l2-async, v4l2-fwnode, v4l2-flash-led-class and Sensor drivers: Sakari Ailus h]j()}(hhh]j-)}(hsISP, v4l2-async, v4l2-fwnode, v4l2-flash-led-class and Sensor drivers: Sakari Ailus h](j3)}(hFISP, v4l2-async, v4l2-fwnode, v4l2-flash-led-class and Sensor drivers:h]hFISP, v4l2-async, v4l2-fwnode, v4l2-flash-led-class and Sensor drivers:}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1j2hhhKThj4ubjC)}(hhh]h)}(h+Sakari Ailus h](hSakari Ailus <}(hjIhhhNhNubj )}(hsakari.ailus@linux.intel.comh]hsakari.ailus@linux.intel.com}(hjQhhhNhNubah}(h]h ]h"]h$]h&]refuri#mailto:sakari.ailus@linux.intel.comuh1jhjIubh>}(hjIhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKThjFubah}(h]h ]h"]h$]h&]uh1jBhj4ubeh}(h]h ]h"]h$]h&]uh1j,hhhKThj1ubah}(h]h ]h"]h$]h&]uh1j'hj-ubah}(h]h ]h"]h$]h&]uh1hhj hhhNhNubh)}(hKV4L2 drivers and core V4L2 frameworks: Hans Verkuil h]j()}(hhh]j-)}(hIV4L2 drivers and core V4L2 frameworks: Hans Verkuil h](j3)}(h&V4L2 drivers and core V4L2 frameworks:h]h&V4L2 drivers and core V4L2 frameworks:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j2hhhKWhjubjC)}(hhh]h)}(h!Hans Verkuil h](hHans Verkuil <}(hjhhhNhNubj )}(hhverkuil@xs4all.nlh]hhverkuil@xs4all.nl}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:hverkuil@xs4all.nluh1jhjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKWhjubah}(h]h ]h"]h$]h&]uh1jBhjubeh}(h]h ]h"]h$]h&]uh1j,hhhKWhjubah}(h]h ]h"]h$]h&]uh1j'hjubah}(h]h ]h"]h$]h&]uh1hhj hhhNhNubeh}(h]h ]h"]h$]h&]jjuh1hhhhKJhjhhubj()}(hhh]j-)}(hHThe subsystem maintainer is: Mauro Carvalho Chehab h](j3)}(hThe subsystem maintainer is:h]hThe subsystem maintainer is:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j2hhhKZhjubjC)}(hhh]h)}(h*Mauro Carvalho Chehab h](hMauro Carvalho Chehab <}(hjhhhNhNubj )}(hmchehab@kernel.orgh]hmchehab@kernel.org}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:mchehab@kernel.orguh1jhjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKZhjubah}(h]h ]h"]h$]h&]uh1jBhjubeh}(h]h ]h"]h$]h&]uh1j,hhhKZhjubah}(h]h ]h"]h$]h&]uh1j'hjhhhhhNubh)}(hMedia maintainers may delegate a patch to other media maintainers as needed. On such case, checkpatch's ``delegate`` field indicates who's currently responsible for reviewing a patch.h](hjMedia maintainers may delegate a patch to other media maintainers as needed. On such case, checkpatch’s }(hj+hhhNhNubhliteral)}(h ``delegate``h]hdelegate}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj+ubhE field indicates who’s currently responsible for reviewing a patch.}(hj+hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK\hjhhubeh}(h]media-maintainersah ]h"]media maintainersah$]h&]uh1hhhhhhhhK@ubeh}(h]overviewah ]h"]overviewah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hSubmit Checklist Addendumh]hSubmit Checklist Addendum}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hhhhhKaubh)}(hPatches that change the Open Firmware/Device Tree bindings must be reviewed by the Device Tree maintainers. So, DT maintainers should be Cc:ed when those are submitted via devicetree@vger.kernel.org mailing list.h]hPatches that change the Open Firmware/Device Tree bindings must be reviewed by the Device Tree maintainers. So, DT maintainers should be Cc:ed when those are submitted via devicetree@vger.kernel.org mailing list.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKchj]hhubh)}(hThere is a set of compliance tools at https://git.linuxtv.org/v4l-utils.git/ that should be used in order to check if the drivers are properly implementing the media APIs:h](h&There is a set of compliance tools at }(hj|hhhNhNubj )}(h&https://git.linuxtv.org/v4l-utils.git/h]h&https://git.linuxtv.org/v4l-utils.git/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1jhj|ubh_ that should be used in order to check if the drivers are properly implementing the media APIs:}(hj|hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhj]hhubhtable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK7uh1jhjubhthead)}(hhh]hrow)}(hhh](hentry)}(hhh]h)}(hTypeh]hType}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKmhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hToolh]hTool}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKmhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjubhtbody)}(hhh](j)}(hhh](j)}(hhh]h)}(hV4L2 drivers\ [3]_h](hV4L2 drivers }(hjhhhNhNubjr)}(h[3]_h]h3}(hjhhhNhNubah}(h]id5ah ]h"]h$]h&]jid6jjuh1jqhjjKubeh}(h]h ]h"]h$]h&]uh1hhhhKohj ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h``v4l2-compliance``h]j4)}(hj7h]hv4l2-compliance}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj5ubah}(h]h ]h"]h$]h&]uh1hhhhKohj2ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(hV4L2 virtual driversh]hV4L2 virtual drivers}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKphj[ubah}(h]h ]h"]h$]h&]uh1jhjXubj)}(hhh]h)}(h``contrib/test/test-media``h]j4)}(hjwh]hcontrib/test/test-media}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjuubah}(h]h ]h"]h$]h&]uh1hhhhKphjrubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h CEC driversh]h CEC drivers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKqhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h``cec-compliance``h]j4)}(hjh]hcec-compliance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubah}(h]h ]h"]h$]h&]uh1hhhhKqhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubah}(h]h ]h"]h$]h&]uh1jhj]hhhhhNubj)}(hTThe ``v4l2-compliance`` also covers the media controller usage inside V4L2 drivers. h](j)}(h3h]h3}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh)}(hSThe ``v4l2-compliance`` also covers the media controller usage inside V4L2 drivers.h](hThe }(hjhhhNhNubj4)}(h``v4l2-compliance``h]hv4l2-compliance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh< also covers the media controller usage inside V4L2 drivers.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKthjubeh}(h]j%ah ]h"]3ah$]h&]j ajjuh1jhhhKthj]hhjKubh)}(hSOther compliance tools are under development to check other parts of the subsystem.h]hSOther compliance tools are under development to check other parts of the subsystem.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKwhj]hhubh)}(h8Those tests need to pass before the patches go upstream.h]h8Those tests need to pass before the patches go upstream.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKzhj]hhubh)}(h3Also, please notice that we build the Kernel with::h]h2Also, please notice that we build the Kernel with:}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK|hj]hhubh literal_block)}(hUmake CF=-D__CHECK_ENDIAN__ CONFIG_DEBUG_SECTION_MISMATCH=y C=1 W=1 CHECK=check_scripth]hUmake CF=-D__CHECK_ENDIAN__ CONFIG_DEBUG_SECTION_MISMATCH=y C=1 W=1 CHECK=check_script}hjPsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1jNhhhK~hj]hhubh)}(hWhere the check script is::h]hWhere the check script is:}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj]hhubjO)}(hM#!/bin/bash /devel/smatch/smatch -p=kernel $@ >&2 /devel/sparse/sparse $@ >&2h]hM#!/bin/bash /devel/smatch/smatch -p=kernel $@ >&2 /devel/sparse/sparse $@ >&2}hjnsbah}(h]h ]h"]h$]h&]j^j_uh1jNhhhKhj]hhubh)}(hQBe sure to not introduce new warnings on your patches without a very good reason.h]hQBe sure to not introduce new warnings on your patches without a very good reason.}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj]hhubh)}(hhh](h)}(hStyle Cleanup Patchesh]hStyle Cleanup Patches}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hwStyle cleanups are welcome when they come together with other changes at the files where the style changes will affect.h]hwStyle cleanups are welcome when they come together with other changes at the files where the style changes will affect.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hX{We may accept pure standalone style cleanups, but they should ideally be one patch for the whole subsystem (if the cleanup is low volume), or at least be grouped per directory. So, for example, if you're doing a big cleanup change set at drivers under drivers/media, please send a single patch for all drivers under drivers/media/pci, another one for drivers/media/usb and so on.h]hX}We may accept pure standalone style cleanups, but they should ideally be one patch for the whole subsystem (if the cleanup is low volume), or at least be grouped per directory. So, for example, if you’re doing a big cleanup change set at drivers under drivers/media, please send a single patch for all drivers under drivers/media/pci, another one for drivers/media/usb and so on.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]style-cleanup-patchesah ]h"]style cleanup patchesah$]h&]uh1hhj]hhhhhKubh)}(hhh](h)}(hCoding Style Addendumh]hCoding Style Addendum}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hXMedia development uses ``checkpatch.pl`` on strict mode to verify the code style, e.g.::h](hMedia development uses }(hjhhhNhNubj4)}(h``checkpatch.pl``h]h checkpatch.pl}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh/ on strict mode to verify the code style, e.g.:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubjO)}(h7$ ./scripts/checkpatch.pl --strict --max-line-length=80h]h7$ ./scripts/checkpatch.pl --strict --max-line-length=80}hjsbah}(h]h ]h"]h$]h&]j^j_uh1jNhhhKhjhhubh)}(hIn principle, patches should follow the coding style rules, but exceptions are allowed if there are good reasons. On such case, maintainers and reviewers may question about the rationale for not addressing the ``checkpatch.pl``.h](hIn principle, patches should follow the coding style rules, but exceptions are allowed if there are good reasons. On such case, maintainers and reviewers may question about the rationale for not addressing the }(hjhhhNhNubj4)}(h``checkpatch.pl``h]h checkpatch.pl}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hPlease notice that the goal here is to improve code readability. On a few cases, ``checkpatch.pl`` may actually point to something that would look worse. So, you should use good sense.h](hQPlease notice that the goal here is to improve code readability. On a few cases, }(hjhhhNhNubj4)}(h``checkpatch.pl``h]h checkpatch.pl}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjubhV may actually point to something that would look worse. So, you should use good sense.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hXNote that addressing one ``checkpatch.pl`` issue (of any kind) alone may lead to having longer lines than 80 characters per line. While this is not strictly prohibited, efforts should be made towards staying within 80 characters per line. This could include using re-factoring code that leads to less indentation, shorter variable or function names and last but not least, simply wrapping the lines.h](hNote that addressing one }(hj>hhhNhNubj4)}(h``checkpatch.pl``h]h checkpatch.pl}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1j3hj>ubhXe issue (of any kind) alone may lead to having longer lines than 80 characters per line. While this is not strictly prohibited, efforts should be made towards staying within 80 characters per line. This could include using re-factoring code that leads to less indentation, shorter variable or function names and last but not least, simply wrapping the lines.}(hj>hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(h9In particular, we accept lines with more than 80 columns:h]h9In particular, we accept lines with more than 80 columns:}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hX[- on strings, as they shouldn't be broken due to line length limits; - when a function or variable name need to have a big identifier name, which keeps hard to honor the 80 columns limit; - on arithmetic expressions, when breaking lines makes them harder to read; - when they avoid a line to end with an open parenthesis or an open bracket. h]h)}(hhh](h)}(hBon strings, as they shouldn't be broken due to line length limits;h]h)}(hjuh]hDon strings, as they shouldn’t be broken due to line length limits;}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjsubah}(h]h ]h"]h$]h&]uh1hhjpubh)}(htwhen a function or variable name need to have a big identifier name, which keeps hard to honor the 80 columns limit;h]h)}(htwhen a function or variable name need to have a big identifier name, which keeps hard to honor the 80 columns limit;h]htwhen a function or variable name need to have a big identifier name, which keeps hard to honor the 80 columns limit;}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhjpubh)}(hIon arithmetic expressions, when breaking lines makes them harder to read;h]h)}(hIon arithmetic expressions, when breaking lines makes them harder to read;h]hIon arithmetic expressions, when breaking lines makes them harder to read;}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhjpubh)}(hKwhen they avoid a line to end with an open parenthesis or an open bracket. h]h)}(hJwhen they avoid a line to end with an open parenthesis or an open bracket.h]hJwhen they avoid a line to end with an open parenthesis or an open bracket.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhjpubeh}(h]h ]h"]h$]h&]jjuh1hhhhKhjlubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]coding-style-addendumah ]h"]coding style addendumah$]h&]uh1hhj]hhhhhKubeh}(h]submit-checklist-addendumah ]h"]submit checklist addendumah$]h&]uh1hhhhhhhhKaubh)}(hhh](h)}(hKey Cycle Datesh]hKey Cycle Dates}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hNew submissions can be sent at any time, but if they intend to hit the next merge window they should be sent before -rc5, and ideally stabilized in the linux-media branch by -rc6.h]hNew submissions can be sent at any time, but if they intend to hit the next merge window they should be sent before -rc5, and ideally stabilized in the linux-media branch by -rc6.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]key-cycle-datesah ]h"]key cycle datesah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hReview Cadenceh]hReview Cadence}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubh)}(hProvided that your patch is at https://patchwork.linuxtv.org, it should be sooner or later handled, so you don't need to re-submit a patch.h](hProvided that your patch is at }(hj& hhhNhNubj )}(hhttps://patchwork.linuxtv.orgh]hhttps://patchwork.linuxtv.org}(hj. hhhNhNubah}(h]h ]h"]h$]h&]refurij0 uh1jhj& ubhQ, it should be sooner or later handled, so you don’t need to re-submit a patch.}(hj& hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(hnExcept for bug fixes, we don't usually add new patches to the development tree between -rc6 and the next -rc1.h]hpExcept for bug fixes, we don’t usually add new patches to the development tree between -rc6 and the next -rc1.}(hjG hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(hX&Please notice that the media subsystem is a high traffic one, so it could take a while for us to be able to review your patches. Feel free to ping if you don't get a feedback in a couple of weeks or to ask other developers to publicly add Reviewed-by and, more importantly, ``Tested-by:`` tags.h](hXPlease notice that the media subsystem is a high traffic one, so it could take a while for us to be able to review your patches. Feel free to ping if you don’t get a feedback in a couple of weeks or to ask other developers to publicly add Reviewed-by and, more importantly, }(hjU hhhNhNubj4)}(h``Tested-by:``h]h Tested-by:}(hj] hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hjU ubh tags.}(hjU hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh)}(hPlease note that we expect a detailed description for ``Tested-by:``, identifying what boards were used at the test and what it was tested.h](h6Please note that we expect a detailed description for }(hju hhhNhNubj4)}(h``Tested-by:``h]h Tested-by:}(hj} hhhNhNubah}(h]h ]h"]h$]h&]uh1j3hju ubhG, identifying what boards were used at the test and what it was tested.}(hju hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj hhubeh}(h]review-cadenceah ]h"]review cadenceah$]h&]uh1hhhhhhhhKubeh}(h]media-subsystem-profileah ]h"]media subsystem profileah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksjfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}(1]jsa2]joa3]jaurefids}nameids}(j j jZjWjjjj~jRjOjjj!j%jjjjj j j j u nametypes}(j jZjjjRjj!jjj j uh}(j hjWhj}jsjjjyjoj~jjOjjj]j jj%jjjjjj jj j u footnote_refs}(j ]jsaj ]joaj ]jau citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes](jjje citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}j KsRparse_messages]transform_messages] transformerN include_log] decorationNhhub.