History

Merge branch 'linus' into timers/urgent, to pick up fixes

Ingo Molnar committed 10 years ago

Commit fdbdfef2 parents 6731b0d a0cba214843 files · +205309 −138546Browse files

Unified · Split

2581 files
  1. .cocciconfig +3 −0
  2. .gitignore +2 −0
  3. .mailmap +13 −2
  4. Documentation/ABI/testing/sysfs-class-pwm +9 −0
  5. Documentation/DMA-API.txt +14 −19
  6. Documentation/DMA-attributes.txt +1 −1
  7. Documentation/DocBook/Makefile +11 −20
  8. Documentation/DocBook/device-drivers.tmpl +4 −0
  9. Documentation/DocBook/gpu.tmpl +0 −3540
  10. Documentation/DocBook/media/.gitignore +0 −1
  11. Documentation/DocBook/media/Makefile +0 −427
  12. Documentation/DocBook/media/bayer.png.b64 +0 −171
  13. Documentation/DocBook/media/constraints.png.b64 +0 −59
  14. Documentation/DocBook/media/crop.gif.b64 +0 −105
  15. Documentation/DocBook/media/dvb/.gitignore +0 −1
  16. Documentation/DocBook/media/dvb/audio.xml +0 −1314
  17. Documentation/DocBook/media/dvb/ca.xml +0 −582
  18. Documentation/DocBook/media/dvb/demux.xml +0 −1162
  19. Documentation/DocBook/media/dvb/dvbapi.xml +0 −156
  20. Documentation/DocBook/media/dvb/dvbproperty.xml +0 −1680
  21. Documentation/DocBook/media/dvb/dvbstb.pdf +0 −0
  22. Documentation/DocBook/media/dvb/examples.xml +0 −367
  23. Documentation/DocBook/media/dvb/fe-diseqc-recv-slave-reply.xml +0 −78
  24. Documentation/DocBook/media/dvb/fe-diseqc-reset-overload.xml +0 −51
  25. Documentation/DocBook/media/dvb/fe-diseqc-send-burst.xml +0 −89
  26. Documentation/DocBook/media/dvb/fe-diseqc-send-master-cmd.xml +0 −72
  27. Documentation/DocBook/media/dvb/fe-enable-high-lnb-voltage.xml +0 −61
  28. Documentation/DocBook/media/dvb/fe-get-info.xml +0 −266
  29. Documentation/DocBook/media/dvb/fe-get-property.xml +0 −81
  30. Documentation/DocBook/media/dvb/fe-read-status.xml +0 −107
  31. Documentation/DocBook/media/dvb/fe-set-frontend-tune-mode.xml +0 −64
  32. Documentation/DocBook/media/dvb/fe-set-tone.xml +0 −91
  33. Documentation/DocBook/media/dvb/fe-set-voltage.xml +0 −69
  34. Documentation/DocBook/media/dvb/frontend.xml +0 −269
  35. Documentation/DocBook/media/dvb/frontend_legacy_api.xml +0 −654
  36. Documentation/DocBook/media/dvb/intro.xml +0 −211
  37. Documentation/DocBook/media/dvb/net.xml +0 −238
  38. Documentation/DocBook/media/dvb/video.xml +0 −1968
  39. Documentation/DocBook/media/dvbstb.png.b64 +0 −398
  40. Documentation/DocBook/media/fieldseq_bt.gif.b64 +0 −447
  41. Documentation/DocBook/media/fieldseq_tb.gif.b64 +0 −445
  42. Documentation/DocBook/media/nv12mt.gif.b64 +0 −37
  43. Documentation/DocBook/media/nv12mt_example.gif.b64 +0 −121
  44. Documentation/DocBook/media/pipeline.png.b64 +0 −213
  45. Documentation/DocBook/media/selection.png.b64 +0 −206
  46. Documentation/DocBook/media/typical_media_device.svg +0 −28
  47. Documentation/DocBook/media/v4l/.gitignore +0 −1
  48. Documentation/DocBook/media/v4l/biblio.xml +0 −381
  49. Documentation/DocBook/media/v4l/capture.c.xml +0 −659
  50. Documentation/DocBook/media/v4l/cec-api.xml +0 −75
  51. Documentation/DocBook/media/v4l/cec-func-close.xml +0 −64
  52. Documentation/DocBook/media/v4l/cec-func-ioctl.xml +0 −78
  53. Documentation/DocBook/media/v4l/cec-func-open.xml +0 −104
  54. Documentation/DocBook/media/v4l/cec-func-poll.xml +0 −94
  55. Documentation/DocBook/media/v4l/cec-ioc-adap-g-caps.xml +0 −151
  56. Documentation/DocBook/media/v4l/cec-ioc-adap-g-log-addrs.xml +0 −329
  57. Documentation/DocBook/media/v4l/cec-ioc-adap-g-phys-addr.xml +0 −86
  58. Documentation/DocBook/media/v4l/cec-ioc-dqevent.xml +0 −202
  59. Documentation/DocBook/media/v4l/cec-ioc-g-mode.xml +0 −255
  60. Documentation/DocBook/media/v4l/cec-ioc-receive.xml +0 −274
  61. Documentation/DocBook/media/v4l/common.xml +0 −1102
  62. Documentation/DocBook/media/v4l/compat.xml +0 −2723
  63. Documentation/DocBook/media/v4l/controls.xml +0 −5505
  64. Documentation/DocBook/media/v4l/crop.pdf +0 −0
  65. Documentation/DocBook/media/v4l/dev-capture.xml +0 −110
  66. Documentation/DocBook/media/v4l/dev-codec.xml +0 −27
  67. Documentation/DocBook/media/v4l/dev-effect.xml +0 −17
  68. Documentation/DocBook/media/v4l/dev-event.xml +0 −43
  69. Documentation/DocBook/media/v4l/dev-osd.xml +0 −149
  70. Documentation/DocBook/media/v4l/dev-output.xml +0 −106
  71. Documentation/DocBook/media/v4l/dev-overlay.xml +0 −368
  72. Documentation/DocBook/media/v4l/dev-radio.xml +0 −49
  73. Documentation/DocBook/media/v4l/dev-raw-vbi.xml +0 −345
  74. Documentation/DocBook/media/v4l/dev-rds.xml +0 −196
  75. Documentation/DocBook/media/v4l/dev-sdr.xml +0 −126
  76. Documentation/DocBook/media/v4l/dev-sliced-vbi.xml +0 −706
  77. Documentation/DocBook/media/v4l/dev-subdev.xml +0 −478
  78. Documentation/DocBook/media/v4l/dev-teletext.xml +0 −29
  79. Documentation/DocBook/media/v4l/driver.xml +0 −200
  80. Documentation/DocBook/media/v4l/fdl-appendix.xml +0 −671
  81. Documentation/DocBook/media/v4l/fieldseq_bt.pdf +0 −0
  82. Documentation/DocBook/media/v4l/fieldseq_tb.pdf +0 −0
  83. Documentation/DocBook/media/v4l/func-close.xml +0 −62
  84. Documentation/DocBook/media/v4l/func-ioctl.xml +0 −71
  85. Documentation/DocBook/media/v4l/func-mmap.xml +0 −183
  86. Documentation/DocBook/media/v4l/func-munmap.xml +0 −76
  87. Documentation/DocBook/media/v4l/func-open.xml +0 −113
  88. Documentation/DocBook/media/v4l/func-poll.xml +0 −142
  89. Documentation/DocBook/media/v4l/func-read.xml +0 −181
  90. Documentation/DocBook/media/v4l/func-select.xml +0 −130
  91. Documentation/DocBook/media/v4l/func-write.xml +0 −128
  92. Documentation/DocBook/media/v4l/gen-errors.xml +0 −77
  93. Documentation/DocBook/media/v4l/io.xml +0 −1545
  94. Documentation/DocBook/media/v4l/keytable.c.xml +0 −172
  95. Documentation/DocBook/media/v4l/libv4l.xml +0 −160
  96. Documentation/DocBook/media/v4l/lirc_device_interface.xml +0 −255
  97. Documentation/DocBook/media/v4l/media-controller.xml +0 −105
  98. Documentation/DocBook/media/v4l/media-func-close.xml +0 −59
  99. Documentation/DocBook/media/v4l/media-func-ioctl.xml +0 −73
  100. Documentation/DocBook/media/v4l/media-func-open.xml +0 −94
  101. Documentation/DocBook/media/v4l/media-ioc-device-info.xml +0 −132
  102. Documentation/DocBook/media/v4l/media-ioc-enum-entities.xml +0 −180
  103. Documentation/DocBook/media/v4l/media-ioc-enum-links.xml +0 −160
  104. Documentation/DocBook/media/v4l/media-ioc-g-topology.xml +0 −391
  105. Documentation/DocBook/media/v4l/media-ioc-setup-link.xml +0 −84
  106. Documentation/DocBook/media/v4l/media-types.xml +0 −379
  107. Documentation/DocBook/media/v4l/pipeline.pdf +0 −0
  108. Documentation/DocBook/media/v4l/pixfmt-grey.xml +0 −62
  109. Documentation/DocBook/media/v4l/pixfmt-m420.xml +0 −139
  110. Documentation/DocBook/media/v4l/pixfmt-nv12.xml +0 −143
  111. Documentation/DocBook/media/v4l/pixfmt-nv12m.xml +0 −153
  112. Documentation/DocBook/media/v4l/pixfmt-nv12mt.xml +0 −66
  113. Documentation/DocBook/media/v4l/pixfmt-nv16.xml +0 −166
  114. Documentation/DocBook/media/v4l/pixfmt-nv16m.xml +0 −170
  115. Documentation/DocBook/media/v4l/pixfmt-nv24.xml +0 −121
  116. Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml +0 −937
  117. Documentation/DocBook/media/v4l/pixfmt-packed-yuv.xml +0 −236
  118. Documentation/DocBook/media/v4l/pixfmt-sbggr16.xml +0 −83
  119. Documentation/DocBook/media/v4l/pixfmt-sbggr8.xml +0 −67
  120. Documentation/DocBook/media/v4l/pixfmt-sdr-cs08.xml +0 −44
  121. Documentation/DocBook/media/v4l/pixfmt-sdr-cs14le.xml +0 −47
  122. Documentation/DocBook/media/v4l/pixfmt-sdr-cu08.xml +0 −44
  123. Documentation/DocBook/media/v4l/pixfmt-sdr-cu16le.xml +0 −46
  124. Documentation/DocBook/media/v4l/pixfmt-sdr-ru12le.xml +0 −40
  125. Documentation/DocBook/media/v4l/pixfmt-sgbrg8.xml +0 −67
  126. Documentation/DocBook/media/v4l/pixfmt-sgrbg8.xml +0 −67
  127. Documentation/DocBook/media/v4l/pixfmt-srggb10.xml +0 −90
  128. Documentation/DocBook/media/v4l/pixfmt-srggb10alaw8.xml +0 −34
  129. Documentation/DocBook/media/v4l/pixfmt-srggb10dpcm8.xml +0 −28
  130. Documentation/DocBook/media/v4l/pixfmt-srggb10p.xml +0 −99
  131. Documentation/DocBook/media/v4l/pixfmt-srggb12.xml +0 −90
  132. Documentation/DocBook/media/v4l/pixfmt-srggb8.xml +0 −67
  133. Documentation/DocBook/media/v4l/pixfmt-uv8.xml +0 −62
  134. Documentation/DocBook/media/v4l/pixfmt-uyvy.xml +0 −120
  135. Documentation/DocBook/media/v4l/pixfmt-vyuy.xml +0 −120
  136. Documentation/DocBook/media/v4l/pixfmt-y10.xml +0 −79
  137. Documentation/DocBook/media/v4l/pixfmt-y10b.xml +0 −43
  138. Documentation/DocBook/media/v4l/pixfmt-y12.xml +0 −79
  139. Documentation/DocBook/media/v4l/pixfmt-y12i.xml +0 −49
  140. Documentation/DocBook/media/v4l/pixfmt-y16-be.xml +0 −81
  141. Documentation/DocBook/media/v4l/pixfmt-y16.xml +0 −81
  142. Documentation/DocBook/media/v4l/pixfmt-y41p.xml +0 −149
  143. Documentation/DocBook/media/v4l/pixfmt-y8i.xml +0 −80
  144. Documentation/DocBook/media/v4l/pixfmt-yuv410.xml +0 −133
  145. Documentation/DocBook/media/v4l/pixfmt-yuv411p.xml +0 −147
  146. Documentation/DocBook/media/v4l/pixfmt-yuv420.xml +0 −149
  147. Documentation/DocBook/media/v4l/pixfmt-yuv420m.xml +0 −162
  148. Documentation/DocBook/media/v4l/pixfmt-yuv422m.xml +0 −166
  149. Documentation/DocBook/media/v4l/pixfmt-yuv422p.xml +0 −153
  150. Documentation/DocBook/media/v4l/pixfmt-yuv444m.xml +0 −177
  151. Documentation/DocBook/media/v4l/pixfmt-yuyv.xml +0 −120
  152. Documentation/DocBook/media/v4l/pixfmt-yvyu.xml +0 −120
  153. Documentation/DocBook/media/v4l/pixfmt-z16.xml +0 −81
  154. Documentation/DocBook/media/v4l/pixfmt.xml +0 −2003
  155. Documentation/DocBook/media/v4l/planar-apis.xml +0 −62
  156. Documentation/DocBook/media/v4l/remote_controllers.xml +0 −320
  157. Documentation/DocBook/media/v4l/selection-api.xml +0 −317
  158. Documentation/DocBook/media/v4l/selections-common.xml +0 −180
  159. Documentation/DocBook/media/v4l/subdev-formats.xml +0 −4040
  160. Documentation/DocBook/media/v4l/subdev-image-processing-crop.dia +0 −614
  161. Documentation/DocBook/media/v4l/subdev-image-processing-crop.svg +0 −63
  162. Documentation/DocBook/media/v4l/subdev-image-processing-full.dia +0 −1588
  163. Documentation/DocBook/media/v4l/subdev-image-processing-full.svg +0 −163
  164. Documentation/DocBook/media/v4l/subdev-image-processing-scaling-multi-source.dia +0 −1152
  165. Documentation/DocBook/media/v4l/subdev-image-processing-scaling-multi-source.svg +0 −116
  166. Documentation/DocBook/media/v4l/v4l2.xml +0 −728
  167. Documentation/DocBook/media/v4l/v4l2grab.c.xml +0 −164
  168. Documentation/DocBook/media/v4l/vbi_525.pdf +0 −0
  169. Documentation/DocBook/media/v4l/vbi_625.pdf +0 −0
  170. Documentation/DocBook/media/v4l/vbi_hsync.pdf +0 −0
  171. Documentation/DocBook/media/v4l/vidioc-create-bufs.xml +0 −158
  172. Documentation/DocBook/media/v4l/vidioc-cropcap.xml +0 −166
  173. Documentation/DocBook/media/v4l/vidioc-dbg-g-chip-info.xml +0 −207
  174. Documentation/DocBook/media/v4l/vidioc-dbg-g-register.xml +0 −227
  175. Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml +0 −259
  176. Documentation/DocBook/media/v4l/vidioc-dqevent.xml +0 −471
  177. Documentation/DocBook/media/v4l/vidioc-dv-timings-cap.xml +0 −210
  178. Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml +0 −197
  179. Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml +0 −128
  180. Documentation/DocBook/media/v4l/vidioc-enum-fmt.xml +0 −159
  181. Documentation/DocBook/media/v4l/vidioc-enum-frameintervals.xml +0 −260
  182. Documentation/DocBook/media/v4l/vidioc-enum-framesizes.xml +0 −265
  183. Documentation/DocBook/media/v4l/vidioc-enum-freq-bands.xml +0 −175
  184. Documentation/DocBook/media/v4l/vidioc-enumaudio.xml +0 −76
  185. Documentation/DocBook/media/v4l/vidioc-enumaudioout.xml +0 −79
  186. Documentation/DocBook/media/v4l/vidioc-enuminput.xml +0 −316
  187. Documentation/DocBook/media/v4l/vidioc-enumoutput.xml +0 −201
  188. Documentation/DocBook/media/v4l/vidioc-enumstd.xml +0 −389
  189. Documentation/DocBook/media/v4l/vidioc-expbuf.xml +0 −205
  190. Documentation/DocBook/media/v4l/vidioc-g-audio.xml +0 −172
  191. Documentation/DocBook/media/v4l/vidioc-g-audioout.xml +0 −138
  192. Documentation/DocBook/media/v4l/vidioc-g-crop.xml +0 −129
  193. Documentation/DocBook/media/v4l/vidioc-g-ctrl.xml +0 −133
  194. Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml +0 −343
  195. Documentation/DocBook/media/v4l/vidioc-g-edid.xml +0 −173
  196. Documentation/DocBook/media/v4l/vidioc-g-enc-index.xml +0 −189
  197. Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml +0 −456
  198. Documentation/DocBook/media/v4l/vidioc-g-fbuf.xml +0 −459
  199. Documentation/DocBook/media/v4l/vidioc-g-fmt.xml +0 −204
  200. Documentation/DocBook/media/v4l/vidioc-g-frequency.xml +0 −148
  201. Documentation/DocBook/media/v4l/vidioc-g-input.xml +0 −83
  202. Documentation/DocBook/media/v4l/vidioc-g-jpegcomp.xml +0 −175
  203. Documentation/DocBook/media/v4l/vidioc-g-modulator.xml +0 −252
  204. Documentation/DocBook/media/v4l/vidioc-g-output.xml +0 −85
  205. Documentation/DocBook/media/v4l/vidioc-g-parm.xml +0 −314
  206. Documentation/DocBook/media/v4l/vidioc-g-priority.xml +0 −135
  207. Documentation/DocBook/media/v4l/vidioc-g-selection.xml +0 −233
  208. Documentation/DocBook/media/v4l/vidioc-g-sliced-vbi-cap.xml +0 −255
  209. Documentation/DocBook/media/v4l/vidioc-g-std.xml +0 −98
  210. Documentation/DocBook/media/v4l/vidioc-g-tuner.xml +0 −594
  211. Documentation/DocBook/media/v4l/vidioc-log-status.xml +0 −41
  212. Documentation/DocBook/media/v4l/vidioc-overlay.xml +0 −74
  213. Documentation/DocBook/media/v4l/vidioc-prepare-buf.xml +0 −88
  214. Documentation/DocBook/media/v4l/vidioc-qbuf.xml +0 −202
  215. Documentation/DocBook/media/v4l/vidioc-query-dv-timings.xml +0 −115
  216. Documentation/DocBook/media/v4l/vidioc-querybuf.xml +0 −106
  217. Documentation/DocBook/media/v4l/vidioc-querycap.xml +0 −350
  218. Documentation/DocBook/media/v4l/vidioc-queryctrl.xml +0 −661
  219. Documentation/DocBook/media/v4l/vidioc-querystd.xml +0 −85
  220. Documentation/DocBook/media/v4l/vidioc-reqbufs.xml +0 −137
  221. Documentation/DocBook/media/v4l/vidioc-s-hw-freq-seek.xml +0 −188
  222. Documentation/DocBook/media/v4l/vidioc-streamon.xml +0 −136
  223. Documentation/DocBook/media/v4l/vidioc-subdev-enum-frame-interval.xml +0 −151
  224. Documentation/DocBook/media/v4l/vidioc-subdev-enum-frame-size.xml +0 −153
  225. Documentation/DocBook/media/v4l/vidioc-subdev-enum-mbus-code.xml +0 −118
  226. Documentation/DocBook/media/v4l/vidioc-subdev-g-crop.xml +0 −158
  227. Documentation/DocBook/media/v4l/vidioc-subdev-g-fmt.xml +0 −177
  228. Documentation/DocBook/media/v4l/vidioc-subdev-g-frame-interval.xml +0 −135
  229. Documentation/DocBook/media/v4l/vidioc-subdev-g-selection.xml +0 −159
  230. Documentation/DocBook/media/v4l/vidioc-subscribe-event.xml +0 −130
  231. Documentation/DocBook/media/vbi_525.gif.b64 +0 −84
  232. Documentation/DocBook/media/vbi_625.gif.b64 +0 −90
  233. Documentation/DocBook/media/vbi_hsync.gif.b64 +0 −43
  234. Documentation/DocBook/media_api.tmpl +0 −121
  235. Documentation/Makefile.sphinx +2 −3
  236. Documentation/PCI/MSI-HOWTO.txt +79 −390
  237. Documentation/arm/Atmel/README +8 −2
  238. Documentation/binfmt_misc.txt +7 −0
  239. Documentation/block/biodoc.txt +2 −2
  240. Documentation/cgroup-v1/cgroups.txt +2 −2
  241. Documentation/cgroup-v1/cpusets.txt +1 −1
  242. Documentation/cgroup-v1/memcg_test.txt +2 −2
  243. Documentation/coccinelle.txt +147 −1
  244. Documentation/device-mapper/dm-flakey.txt +1 −1
  245. Documentation/devicetree/bindings/arm/arm,scpi.txt +34 −0
  246. Documentation/devicetree/bindings/arm/bcm/brcm,bcm11351-cpu-method.txt +3 −3
  247. Documentation/devicetree/bindings/arm/bcm/brcm,bcm23550-cpu-method.txt +36 −0
  248. Documentation/devicetree/bindings/arm/bcm/brcm,bcm23550.txt +15 −0
  249. Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt +4 −0
  250. Documentation/devicetree/bindings/arm/cpus.txt +3 −0
  251. Documentation/devicetree/bindings/arm/hisilicon/hi3519-sysctrl.txt +14 −0
  252. Documentation/devicetree/bindings/arm/mediatek.txt +4 −0
  253. Documentation/devicetree/bindings/arm/olimex.txt +6 −2
  254. Documentation/devicetree/bindings/arm/rockchip.txt +3 −0
  255. Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt +1 −0
  256. Documentation/devicetree/bindings/arm/shmobile.txt +6 −0
  257. Documentation/devicetree/bindings/arm/tegra.txt +4 −0
  258. Documentation/devicetree/bindings/ata/ahci-platform.txt +1 −0
  259. Documentation/devicetree/bindings/bus/nvidia,tegra210-aconnect.txt +45 −0
  260. Documentation/devicetree/bindings/clock/clps711x-clock.txt +2 −2
  261. Documentation/devicetree/bindings/display/arm,malidp.txt +65 −0
  262. Documentation/devicetree/bindings/display/bridge/adi,adv7511.txt +21 −5
  263. Documentation/devicetree/bindings/display/bridge/analogix_dp.txt +1 −0
  264. Documentation/devicetree/bindings/display/bridge/sii902x.txt +35 −0
  265. Documentation/devicetree/bindings/display/bridge/toshiba,tc358767.txt +53 −0
  266. Documentation/devicetree/bindings/display/cirrus,clps711x-fb.txt +2 −2
  267. Documentation/devicetree/bindings/display/connector/hdmi-connector.txt +1 −0
  268. Documentation/devicetree/bindings/display/fsl,dcu.txt +7 −2
  269. Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.txt +148 −0
  270. Documentation/devicetree/bindings/display/msm/dsi.txt +77 −40
  271. Documentation/devicetree/bindings/display/msm/mdp.txt +0 −59
  272. Documentation/devicetree/bindings/display/msm/mdp4.txt +112 −0
  273. Documentation/devicetree/bindings/display/msm/mdp5.txt +160 −0
  274. Documentation/devicetree/bindings/display/panel/lg,lp079qx1-sp0v.txt +7 −0
  275. Documentation/devicetree/bindings/display/panel/lg,lp097qx1-spa1.txt +7 −0
  276. Documentation/devicetree/bindings/display/panel/panel-dpi.txt +2 −0
  277. Documentation/devicetree/bindings/display/panel/samsung,lsn122dl01-c01.txt +7 −0
  278. Documentation/devicetree/bindings/display/panel/sharp,lq101k1ly04.txt +7 −0
  279. Documentation/devicetree/bindings/display/panel/sharp,lq123p1jx31.txt +7 −0
  280. Documentation/devicetree/bindings/display/panel/starry,kr122ea0sra.txt +7 −0
  281. Documentation/devicetree/bindings/display/rockchip/analogix_dp-rockchip.txt +8 −1
  282. Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt +10 −3
  283. Documentation/devicetree/bindings/dma/ti-edma.txt +2 −2
  284. Documentation/devicetree/bindings/firmware/qcom,scm.txt +28 −0
  285. Documentation/devicetree/bindings/iio/adc/at91_adc.txt +4 −8
  286. Documentation/devicetree/bindings/input/clps711x-keypad.txt +2 −2
  287. Documentation/devicetree/bindings/input/rotary-encoder.txt +4 −0
  288. Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt +36 −0
  289. Documentation/devicetree/bindings/input/touchscreen/sis_i2c.txt +33 −0
  290. Documentation/devicetree/bindings/interrupt-controller/cirrus,clps711x-intc.txt +2 −2
  291. Documentation/devicetree/bindings/interrupt-controller/mediatek,sysirq.txt +1 −0
  292. Documentation/devicetree/bindings/iommu/arm,smmu-v3.txt +1 −1
  293. Documentation/devicetree/bindings/iommu/mediatek,iommu.txt +9 −4
  294. Documentation/devicetree/bindings/iommu/msm,iommu-v0.txt +64 −0
  295. Documentation/devicetree/bindings/leds/backlight/lp855x.txt +2 −0
  296. Documentation/devicetree/bindings/mailbox/brcm,iproc-pdc-mbox.txt +23 −0
  297. Documentation/devicetree/bindings/media/nokia,n900-ir +20 −0
  298. Documentation/devicetree/bindings/memory-controllers/atmel,ebi.txt +136 −0
  299. Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.txt +18 −3
  300. Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt +3 −1
  301. Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt +6 −1
  302. Documentation/devicetree/bindings/mfd/twl6040.txt +2 −2
  303. Documentation/devicetree/bindings/mmc/arasan,sdhci.txt +33 −2
  304. Documentation/devicetree/bindings/mmc/brcm,bcm2835-sdhci.txt +0 −18
  305. Documentation/devicetree/bindings/mmc/brcm,bcm7425-sdhci.txt +36 −0
  306. Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt +2 −0
  307. Documentation/devicetree/bindings/mmc/mmc.txt +4 −0
  308. Documentation/devicetree/bindings/mtd/atmel-quadspi.txt +32 −0
  309. Documentation/devicetree/bindings/mtd/brcm,brcmnand.txt +1 −0
  310. Documentation/devicetree/bindings/mtd/cadence-quadspi.txt +56 −0
  311. Documentation/devicetree/bindings/mtd/gpmc-nand.txt +1 −1
  312. Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt +24 −0
  313. Documentation/devicetree/bindings/mtd/mtk-nand.txt +160 −0
  314. Documentation/devicetree/bindings/mtd/sunxi-nand.txt +6 −0
  315. Documentation/devicetree/bindings/net/apm-xgene-enet.txt +2 −2
  316. Documentation/devicetree/bindings/net/fsl-fec.txt +3 −0
  317. Documentation/devicetree/bindings/pci/aardvark-pci.txt +56 −0
  318. Documentation/devicetree/bindings/pci/axis,artpec6-pcie.txt +46 −0
  319. Documentation/devicetree/bindings/pci/layerscape-pci.txt +4 −0
  320. Documentation/devicetree/bindings/phy/nvidia,tegra124-xusb-padctl.txt +1 −1
  321. Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt +9 −0
  322. Documentation/devicetree/bindings/pinctrl/meson,pinctrl.txt +2 −0
  323. Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-dpaux-padctl.txt +60 −0
  324. Documentation/devicetree/bindings/power/renesas,apmu.txt +31 −0
  325. Documentation/devicetree/bindings/power/renesas,rcar-sysc.txt +1 −0
  326. Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/network.txt +0 −43
  327. Documentation/devicetree/bindings/powerpc/opal/oppanel-opal.txt +14 −0
  328. Documentation/devicetree/bindings/pwm/brcm,iproc-pwm.txt +21 −0
  329. Documentation/devicetree/bindings/pwm/cirrus,clps711x-pwm.txt +2 −3
  330. Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.txt +23 −0
  331. Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt +8 −4
  332. Documentation/devicetree/bindings/pwm/pwm-omap-dmtimer.txt +4 −0
  333. Documentation/devicetree/bindings/pwm/pwm-tiecap.txt +29 −9
  334. Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt +29 −9
  335. Documentation/devicetree/bindings/pwm/pwm-tipwmss.txt +31 −2
  336. Documentation/devicetree/bindings/pwm/renesas,pwm-rcar.txt +1 −0
  337. Documentation/devicetree/bindings/pwm/st,stmpe-pwm.txt +18 −0
  338. Documentation/devicetree/bindings/regulator/pwm-regulator.txt +19 −0
  339. Documentation/devicetree/bindings/reserved-memory/ramoops.txt +4 −4
  340. Documentation/devicetree/bindings/reset/amlogic,meson-reset.txt +18 −0
  341. Documentation/devicetree/bindings/reset/hisilicon,hi6220-reset.txt +3 −1
  342. Documentation/devicetree/bindings/reset/ti-syscon-reset.txt +91 −0
  343. Documentation/devicetree/bindings/rng/amlogic,meson-rng.txt +14 −0
  344. Documentation/devicetree/bindings/rtc/rtc-opal.txt +1 −1
  345. Documentation/devicetree/bindings/serial/cirrus,clps711x-uart.txt +2 −2
  346. Documentation/devicetree/bindings/serial/mtk-uart.txt +1 −0
  347. Documentation/devicetree/bindings/soc/fsl/cpm_qe/cpm.txt +0 −0
  348. Documentation/devicetree/bindings/soc/fsl/cpm_qe/cpm/brg.txt +0 −0
  349. Documentation/devicetree/bindings/soc/fsl/cpm_qe/cpm/i2c.txt +0 −0
  350. Documentation/devicetree/bindings/soc/fsl/cpm_qe/cpm/pic.txt +0 −0
  351. Documentation/devicetree/bindings/soc/fsl/cpm_qe/cpm/usb.txt +0 −0
  352. Documentation/devicetree/bindings/soc/fsl/cpm_qe/gpio.txt +0 −0
  353. Documentation/devicetree/bindings/soc/fsl/cpm_qe/network.txt +124 −0
  354. Documentation/devicetree/bindings/soc/fsl/cpm_qe/qe.txt +52 −0
  355. Documentation/devicetree/bindings/soc/fsl/cpm_qe/qe/firmware.txt +0 −0
  356. Documentation/devicetree/bindings/soc/fsl/cpm_qe/qe/par_io.txt +0 −0
  357. Documentation/devicetree/bindings/soc/fsl/cpm_qe/qe/pincfg.txt +0 −0
  358. Documentation/devicetree/bindings/soc/fsl/cpm_qe/qe/ucc.txt +0 −0
  359. Documentation/devicetree/bindings/soc/fsl/cpm_qe/qe/usb.txt +0 −0
  360. Documentation/devicetree/bindings/soc/fsl/cpm_qe/serial.txt +0 −0
  361. Documentation/devicetree/bindings/soc/fsl/cpm_qe/uqe_serial.txt +17 −0
  362. Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.txt +2 −2
  363. Documentation/devicetree/bindings/soc/qcom/qcom,smsm.txt +2 −2
  364. Documentation/devicetree/bindings/soc/qcom/qcom,wcnss.txt +116 −0
  365. Documentation/devicetree/bindings/sound/adi,adau17x1.txt +8 −0
  366. Documentation/devicetree/bindings/sound/adi,adau7002.txt +19 −0
  367. Documentation/devicetree/bindings/sound/brcm,cygnus-audio.txt +67 −0
  368. Documentation/devicetree/bindings/sound/bt-sco.txt +1 −1
  369. Documentation/devicetree/bindings/sound/cs35l33.txt +126 −0
  370. Documentation/devicetree/bindings/sound/cs53l30.txt +44 −0
  371. Documentation/devicetree/bindings/sound/designware-i2s.txt +4 −0
  372. Documentation/devicetree/bindings/sound/fsl-asoc-card.txt +1 −1
  373. Documentation/devicetree/bindings/sound/max98504.txt +44 −0
  374. Documentation/devicetree/bindings/sound/max9860.txt +28 −0
  375. Documentation/devicetree/bindings/sound/mt2701-afe-pcm.txt +150 −0
  376. Documentation/devicetree/bindings/sound/mt2701-cs42448.txt +43 −0
  377. Documentation/devicetree/bindings/sound/mt8173-rt5650.txt +8 −2
  378. Documentation/devicetree/bindings/sound/omap-mcpdm.txt +10 −0
  379. Documentation/devicetree/bindings/sound/renesas,rsnd.txt +2 −0
  380. Documentation/devicetree/bindings/sound/rockchip-i2s.txt +5 −0
  381. Documentation/devicetree/bindings/sound/rt5514.txt +5 −0
  382. Documentation/devicetree/bindings/sound/samsung,odroidx2-max98090.txt +0 −35
  383. Documentation/devicetree/bindings/sound/sgtl5000.txt +9 −9
  384. Documentation/devicetree/bindings/sound/st,sti-asoc-card.txt +10 −10
  385. Documentation/devicetree/bindings/sound/sun4i-i2s.txt +34 −0
  386. Documentation/devicetree/bindings/timer/cirrus,clps711x-timer.txt +3 −3
  387. Documentation/devicetree/bindings/usb/atmel-usb.txt +7 −7
  388. Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.txt +4 −4
  389. Documentation/devicetree/bindings/vendor-prefixes.txt +2 −0
  390. Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +16 −0
  391. Documentation/devicetree/bindings/watchdog/meson-gxbb-wdt.txt +16 −0
  392. Documentation/devicetree/bindings/watchdog/qcom-wdt.txt +4 −0
  393. Documentation/devicetree/bindings/watchdog/renesas-wdt.txt +5 −1
  394. Documentation/dontdiff +1 −0
  395. Documentation/driver-model/devres.txt +7 −0
  396. Documentation/filesystems/Locking +1 −1
  397. Documentation/filesystems/nilfs2.txt +2 −1
  398. Documentation/filesystems/orangefs.txt +46 −4
  399. Documentation/filesystems/porting +7 −0
  400. Documentation/filesystems/tmpfs.txt +1 −1
  401. Documentation/filesystems/vfs.txt +1 −1
  402. Documentation/gcc-plugins.txt +87 −0
  403. Documentation/gpu/drm-internals.rst +381 −0
  404. Documentation/gpu/drm-kms-helpers.rst +260 −0
  405. Documentation/gpu/drm-kms.rst +653 −0
  406. Documentation/gpu/drm-mm.rst +454 −0
  407. Documentation/gpu/drm-uapi.rst +111 −0
  408. Documentation/gpu/i915.rst +347 −0
  409. Documentation/gpu/index.rst +14 −0
  410. Documentation/gpu/introduction.rst +51 −0
  411. Documentation/gpu/kms-properties.csv +129 −0
  412. Documentation/gpu/vga-switcheroo.rst +98 −0
  413. Documentation/index.rst +1 −0
  414. Documentation/ioctl/ioctl-number.txt +1 −1
  415. Documentation/kernel-parameters.txt +36 −2
  416. Documentation/kernel-per-CPU-kthreads.txt +1 −1
  417. Documentation/mmc/mmc-dev-attrs.txt +2 −0
  418. Documentation/module-signing.txt +6 −0
  419. Documentation/ramoops.txt +27 −11
  420. Documentation/rapidio/mport_cdev.txt +1 −2
  421. Documentation/rapidio/rio_cm.txt +119 −0
  422. Documentation/rapidio/tsi721.txt +26 −0
  423. Documentation/scheduler/sched-deadline.txt +1 −1
  424. Documentation/scheduler/sched-design-CFS.txt +1 −1
  425. Documentation/scheduler/sched-rt-group.txt +1 −1
  426. Documentation/sound/alsa/soc/machine.txt +1 −1
  427. Documentation/sound/alsa/timestamping.txt +6 −6
  428. Documentation/sysctl/kernel.txt +14 −0
  429. Documentation/virtual/kvm/api.txt +106 −9
  430. Documentation/virtual/kvm/devices/arm-vgic.txt +19 −6
  431. Documentation/virtual/kvm/devices/vm.txt +86 −1
  432. Documentation/virtual/kvm/locking.txt +2 −2
  433. Documentation/vm/numa +2 −2
  434. Documentation/vm/numa_memory_policy.txt +1 −1
  435. Documentation/vm/page_migration +1 −1
  436. Documentation/vm/unevictable-lru.txt +1 −1
  437. Documentation/watchdog/hpwdt.txt +2 −3
  438. Documentation/watchdog/src/watchdog-test.c +23 −16
  439. Documentation/watchdog/watchdog-kernel-api.txt +7 −2
  440. Documentation/x86/x86_64/fake-numa-for-cpusets +2 −2
  441. MAINTAINERS +200 −33
  442. Makefile +19 −26
  443. arch/Kconfig +46 −0
  444. arch/alpha/boot/Makefile +1 −1
  445. arch/alpha/include/asm/dma-mapping.h +0 −2
  446. arch/alpha/include/asm/rtc.h +0 −1
  447. arch/alpha/include/asm/thread_info.h +0 −27
  448. arch/alpha/kernel/core_marvel.c +0 −1
  449. arch/alpha/kernel/machvec_impl.h +1 −1
  450. arch/alpha/kernel/pci-noop.c +1 −1
  451. arch/alpha/kernel/pci_iommu.c +6 −6
  452. arch/alpha/kernel/rtc.c +2 −4
  453. arch/arc/boot/dts/nsimosci.dts +11 −3
  454. arch/arc/boot/dts/nsimosci_hs.dts +11 −3
  455. arch/arc/boot/dts/nsimosci_hs_idu.dts +11 −3
  456. arch/arc/boot/dts/vdk_axs10x_mb.dtsi +9 −4
  457. arch/arc/boot/dts/vdk_hs38_smp.dts +1 −1
  458. arch/arc/configs/nsimosci_defconfig +2 −1
  459. arch/arc/configs/nsimosci_hs_defconfig +2 −1
  460. arch/arc/configs/nsimosci_hs_smp_defconfig +2 −1
  461. arch/arc/configs/vdk_hs38_smp_defconfig +2 −5
  462. arch/arc/mm/dma.c +6 −6
  463. arch/arc/mm/init.c +1 −1
  464. arch/arm/Kconfig +19 −33
  465. arch/arm/Kconfig.debug +48 −17
  466. arch/arm/Makefile +0 −1
  467. arch/arm/boot/dts/Makefile +35 −8
  468. arch/arm/boot/dts/aks-cdu.dts +1 −1
  469. arch/arm/boot/dts/am335x-bone-common.dtsi +6 −6
  470. arch/arm/boot/dts/am335x-boneblack.dts +11 −0
  471. arch/arm/boot/dts/am335x-evm.dts +1 −1
  472. arch/arm/boot/dts/am335x-evmsk.dts +1 −1
  473. arch/arm/boot/dts/am335x-icev2.dts +7 −0
  474. arch/arm/boot/dts/am33xx.dtsi +100 −26
  475. arch/arm/boot/dts/am3517-craneboard.dts +1 −1
  476. arch/arm/boot/dts/am4372.dtsi +92 −19
  477. arch/arm/boot/dts/am437x-gp-evm.dts +5 −1
  478. arch/arm/boot/dts/am437x-idk-evm.dts +1 −0
  479. arch/arm/boot/dts/am437x-sbc-t43.dts +1 −1
  480. arch/arm/boot/dts/am43x-epos-evm.dts +1 −1
  481. arch/arm/boot/dts/am43xx-clocks.dtsi +8 −0
  482. arch/arm/boot/dts/am57xx-sbc-am57x.dts +1 −1
  483. arch/arm/boot/dts/animeo_ip.dts +1 −10
  484. arch/arm/boot/dts/armada-388-clearfog.dts +0 −16
  485. arch/arm/boot/dts/at91-ariag25.dts +1 −10
  486. arch/arm/boot/dts/at91-cosino.dtsi +0 −9
  487. arch/arm/boot/dts/at91-foxg20.dts +2 −11
  488. arch/arm/boot/dts/at91-kizbox.dts +2 −2
  489. arch/arm/boot/dts/at91-qil_a9260.dts +2 −11
  490. arch/arm/boot/dts/at91-sam9_l9260.dts +121 −0
  491. arch/arm/boot/dts/at91-sama5d2_xplained.dts +32 −9
  492. arch/arm/boot/dts/at91-sama5d3_xplained.dts +1 −1
  493. arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi +7 −4
  494. arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts +1 −1
  495. arch/arm/boot/dts/at91-sama5d4_xplained.dts +2 −2
  496. arch/arm/boot/dts/at91-sama5d4ek.dts +0 −20
  497. arch/arm/boot/dts/at91-vinco.dts +1 −1
  498. arch/arm/boot/dts/at91rm9200.dtsi +1 −1
  499. arch/arm/boot/dts/at91sam9260.dtsi +6 −10
  500. arch/arm/boot/dts/at91sam9260ek.dts +211 −0
  501. arch/arm/boot/dts/at91sam9261.dtsi +1 −1
  502. arch/arm/boot/dts/at91sam9263.dtsi +1 −1
  503. arch/arm/boot/dts/at91sam9263ek.dts +1 −1
  504. arch/arm/boot/dts/at91sam9g20ek_common.dtsi +2 −2
  505. arch/arm/boot/dts/at91sam9g25ek.dts +26 −0
  506. arch/arm/boot/dts/at91sam9g45.dtsi +12 −16
  507. arch/arm/boot/dts/at91sam9n12.dtsi +1 −1
  508. arch/arm/boot/dts/at91sam9rl.dtsi +13 −17
  509. arch/arm/boot/dts/at91sam9rlek.dts +2 −2
  510. arch/arm/boot/dts/at91sam9x5.dtsi +14 −18
  511. arch/arm/boot/dts/at91sam9x5ek.dtsi +0 −33
  512. arch/arm/boot/dts/axp209.dtsi +1 −0
  513. arch/arm/boot/dts/axp22x.dtsi +12 −0
  514. arch/arm/boot/dts/axp809.dtsi +53 −0
  515. arch/arm/boot/dts/bcm-cygnus.dtsi +11 −0
  516. arch/arm/boot/dts/bcm-nsp.dtsi +54 −1
  517. arch/arm/boot/dts/bcm11351.dtsi +1 −1
  518. arch/arm/boot/dts/bcm21664.dtsi +1 −1
  519. arch/arm/boot/dts/bcm23550-sparrow.dts +80 −0
  520. arch/arm/boot/dts/bcm23550.dtsi +415 −0
  521. arch/arm/boot/dts/bcm2835-rpi-b-plus.dts +1 −0
  522. arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts +1 −0
  523. arch/arm/boot/dts/bcm2835-rpi-b.dts +1 −0
  524. arch/arm/boot/dts/bcm2836-rpi-2-b.dts +1 −0
  525. arch/arm/boot/dts/bcm283x-rpi-smsc9512.dtsi +19 −0
  526. arch/arm/boot/dts/bcm283x-rpi-smsc9514.dtsi +19 −0
  527. arch/arm/boot/dts/bcm283x.dtsi +2 −0
  528. arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts +4 −0
  529. arch/arm/boot/dts/bcm4708-netgear-r6250.dts +4 −0
  530. arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts +4 −0
  531. arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts +40 −0
  532. arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts +4 −0
  533. arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts +5 −1
  534. arch/arm/boot/dts/bcm5301x-nand-cs0-bch1.dtsi +15 −0
  535. arch/arm/boot/dts/bcm5301x-nand-cs0-bch8.dtsi +5 −11
  536. arch/arm/boot/dts/bcm5301x-nand-cs0.dtsi +18 −0
  537. arch/arm/boot/dts/bcm5301x.dtsi +47 −0
  538. arch/arm/boot/dts/bcm953012er.dts +104 −0
  539. arch/arm/boot/dts/bcm958525xmc.dts +109 −0
  540. arch/arm/boot/dts/bcm958625hr.dts +111 −0
  541. arch/arm/boot/dts/compulab-sb-som.dtsi +1 −1
  542. arch/arm/boot/dts/dm814x.dtsi +1 −1
  543. arch/arm/boot/dts/dra7.dtsi +240 −2
  544. arch/arm/boot/dts/dra72-evm-common.dtsi +6 −6
  545. arch/arm/boot/dts/dra72x.dtsi +0 −16
  546. arch/arm/boot/dts/dra74x.dtsi +1 −24
  547. arch/arm/boot/dts/emev2-kzm9d.dts +14 −10
  548. arch/arm/boot/dts/emev2.dtsi +13 −13
  549. arch/arm/boot/dts/ep7209.dtsi +191 −0
  550. arch/arm/boot/dts/ep7211-edb7211.dts +100 −0
  551. arch/arm/boot/dts/ep7211.dtsi +12 −0
  552. arch/arm/boot/dts/ethernut5.dts +2 −2
  553. arch/arm/boot/dts/evk-pro3.dts +2 −2
  554. arch/arm/boot/dts/exynos-mfc-reserved-memory.dtsi +35 −0
  555. arch/arm/boot/dts/exynos3250-rinato.dts +0 −4
  556. arch/arm/boot/dts/exynos3250.dtsi +0 −1
  557. arch/arm/boot/dts/exynos4.dtsi +0 −1
  558. arch/arm/boot/dts/exynos4210-origen.dts +1 −6
  559. arch/arm/boot/dts/exynos4210-smdkv310.dts +1 −6
  560. arch/arm/boot/dts/exynos4412-odroid-common.dtsi +20 −9
  561. arch/arm/boot/dts/exynos4412-odroidu3.dts +18 −0
  562. arch/arm/boot/dts/exynos4412-odroidx.dts +11 −0
  563. arch/arm/boot/dts/exynos4412-odroidx2.dts +11 −0
  564. arch/arm/boot/dts/exynos4412-origen.dts +17 −6
  565. arch/arm/boot/dts/exynos4412-smdk4412.dts +1 −6
  566. arch/arm/boot/dts/exynos4412-trats2.dts +2 −2
  567. arch/arm/boot/dts/exynos5.dtsi +139 −76
  568. arch/arm/boot/dts/exynos5250-arndale.dts +1 −5
  569. arch/arm/boot/dts/exynos5250-smdk5250.dts +1 −5
  570. arch/arm/boot/dts/exynos5250-snow-common.dtsi +1 −1
  571. arch/arm/boot/dts/exynos5250-spring.dts +1 −5
  572. arch/arm/boot/dts/exynos5250.dtsi +832 −869
  573. arch/arm/boot/dts/exynos5410-odroidxu.dts +580 −0
  574. arch/arm/boot/dts/exynos5410-pinctrl.dtsi +210 −0
  575. arch/arm/boot/dts/exynos5410-smdk5410.dts +3 −3
  576. arch/arm/boot/dts/exynos5410.dtsi +214 −119
  577. arch/arm/boot/dts/exynos5420-arndale-octa.dts +1 −5
  578. arch/arm/boot/dts/exynos5420-peach-pit.dts +21 −11
  579. arch/arm/boot/dts/exynos5420-pinctrl.dtsi +6 −6
  580. arch/arm/boot/dts/exynos5420-smdk5420.dts +1 −5
  581. arch/arm/boot/dts/exynos5420.dtsi +1303 −1467
  582. arch/arm/boot/dts/exynos5422-cpu-thermal.dtsi +0 −103
  583. arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi +92 −12
  584. arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts +1 −34
  585. arch/arm/boot/dts/exynos5422-odroidxu3.dts +1 −34
  586. arch/arm/boot/dts/exynos54xx-odroidxu-leds.dtsi +50 −0
  587. arch/arm/boot/dts/exynos54xx.dtsi +199 −0
  588. arch/arm/boot/dts/exynos5800-peach-pi.dts +21 −11
  589. arch/arm/boot/dts/ge863-pro3.dtsi +0 −9
  590. arch/arm/boot/dts/hi3519-demb.dts +42 −0
  591. arch/arm/boot/dts/hi3519.dtsi +187 −0
  592. arch/arm/boot/dts/imx1-ads.dts +2 −2
  593. arch/arm/boot/dts/imx1-apf9328.dts +2 −2
  594. arch/arm/boot/dts/imx23-sansa.dts +207 −0
  595. arch/arm/boot/dts/imx23-xfi3.dts +179 −0
  596. arch/arm/boot/dts/imx23.dtsi +48 −0
  597. arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dts +2 −2
  598. arch/arm/boot/dts/imx25-pdk.dts +1 −1
  599. arch/arm/boot/dts/imx25-pinfunc.h +318 −309
  600. arch/arm/boot/dts/imx27-eukrea-cpuimx27.dtsi +1 −1
  601. arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dts +3 −3
  602. arch/arm/boot/dts/imx27-pdk.dts +1 −1
  603. arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts +3 −3
  604. arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts +2 −2
  605. arch/arm/boot/dts/imx28-apf28dev.dts +1 −1
  606. arch/arm/boot/dts/imx28-cfa10049.dts +1 −1
  607. arch/arm/boot/dts/imx28-eukrea-mbmx28lc.dtsi +4 −0
  608. arch/arm/boot/dts/imx28-evk.dts +1 −1
  609. arch/arm/boot/dts/imx28-tx28.dts +1 −1
  610. arch/arm/boot/dts/imx28.dtsi +5 −0
  611. arch/arm/boot/dts/imx31-bug.dts +1 −1
  612. arch/arm/boot/dts/imx35-eukrea-mbimxsd35-baseboard.dts +2 −2
  613. arch/arm/boot/dts/imx35-pdk.dts +1 −1
  614. arch/arm/boot/dts/imx51-babbage.dts +2 −2
  615. arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dts +2 −2
  616. arch/arm/boot/dts/imx51-ts4800.dts +27 −0
  617. arch/arm/boot/dts/imx53-smd.dts +1 −1
  618. arch/arm/boot/dts/imx53-tqma53.dtsi +1 −1
  619. arch/arm/boot/dts/imx53-tx53.dtsi +3 −3
  620. arch/arm/boot/dts/imx6dl-riotboard.dts +1 −0
  621. arch/arm/boot/dts/imx6q-apalis-ixora.dts +2 −2
  622. arch/arm/boot/dts/imx6q-arm2.dts +2 −1
  623. arch/arm/boot/dts/imx6q-ba16.dtsi +1 −1
  624. arch/arm/boot/dts/imx6q-bx50v3.dtsi +6 −0
  625. arch/arm/boot/dts/imx6q-cm-fx6.dts +228 −53
  626. arch/arm/boot/dts/imx6q-h100.dts +395 −0
  627. arch/arm/boot/dts/imx6q-tbs2910.dts +1 −1
  628. arch/arm/boot/dts/imx6q-utilite-pro.dts +197 −0
  629. arch/arm/boot/dts/imx6qdl-apalis.dtsi +2 −2
  630. arch/arm/boot/dts/imx6qdl-apf6dev.dtsi +1 −1
  631. arch/arm/boot/dts/imx6qdl-aristainetos.dtsi +2 −2
  632. arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi +2 −2
  633. arch/arm/boot/dts/imx6qdl-microsom.dtsi +1 −1
  634. arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi +2 −1
  635. arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi +1 −0
  636. arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi +1 −0
  637. arch/arm/boot/dts/imx6qdl-sabreauto.dtsi +1 −0
  638. arch/arm/boot/dts/imx6qdl-sabrelite.dtsi +1 −0
  639. arch/arm/boot/dts/imx6qdl-sabresd.dtsi +18 −1
  640. arch/arm/boot/dts/imx6qdl-tx6.dtsi +3 −3
  641. arch/arm/boot/dts/imx6qdl-wandboard.dtsi +2 −1
  642. arch/arm/boot/dts/imx6qdl.dtsi +3 −1
  643. arch/arm/boot/dts/imx6sl-warp.dts +1 −1
  644. arch/arm/boot/dts/imx6sl.dtsi +7 −6
  645. arch/arm/boot/dts/imx6sx-nitrogen6sx.dts +1 −1
  646. arch/arm/boot/dts/imx6sx-sdb.dtsi +13 −1
  647. arch/arm/boot/dts/imx6sx.dtsi +6 −6
  648. arch/arm/boot/dts/imx6ul-14x14-evk.dts +62 −1
  649. arch/arm/boot/dts/imx6ul-pico-hobbit.dts +3 −3
  650. arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts +2 −2
  651. arch/arm/boot/dts/imx6ul-tx6ul.dtsi +3 −3
  652. arch/arm/boot/dts/imx6ul.dtsi +6 −3
  653. arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi +148 −0
  654. arch/arm/boot/dts/imx7-colibri.dtsi +571 −0
  655. arch/arm/boot/dts/imx7d-cl-som-imx7.dts +0 −1
  656. arch/arm/boot/dts/imx7d-colibri-eval-v3.dts +66 −0
  657. arch/arm/boot/dts/imx7d-colibri.dtsi +54 −0
  658. arch/arm/boot/dts/imx7d-nitrogen7.dts +1 −2
  659. arch/arm/boot/dts/imx7d-pinfunc.h +1 −1
  660. arch/arm/boot/dts/imx7d-sdb.dts +130 −1
  661. arch/arm/boot/dts/imx7d.dtsi +48 −875
  662. arch/arm/boot/dts/imx7s-colibri-eval-v3.dts +51 −0
  663. arch/arm/boot/dts/imx7s-colibri.dtsi +50 −0
  664. arch/arm/boot/dts/imx7s.dtsi +933 −0
  665. arch/arm/boot/dts/keystone-k2e.dtsi +5 −2
  666. arch/arm/boot/dts/keystone-k2g-evm.dts +11 −0
  667. arch/arm/boot/dts/keystone-k2g.dtsi +8 −0
  668. arch/arm/boot/dts/keystone-k2l.dtsi +149 −0
  669. arch/arm/boot/dts/keystone.dtsi +13 −2
  670. arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts +2 −2
  671. arch/arm/boot/dts/ls1021a.dtsi +1 −0
  672. arch/arm/boot/dts/meson8b.dtsi +7 −0
  673. arch/arm/boot/dts/mpa1600.dts +1 −10
  674. arch/arm/boot/dts/omap24xx-clocks.dtsi +1 −1
  675. arch/arm/boot/dts/omap3-beagle-xm.dts +5 −5
  676. arch/arm/boot/dts/omap3-beagle.dts +5 −5
  677. arch/arm/boot/dts/omap3-cm-t3x.dtsi +1 −1
  678. arch/arm/boot/dts/omap3-devkit8000-common.dtsi +6 −6
  679. arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi +2 −2
  680. arch/arm/boot/dts/omap3-devkit8000-lcd43.dts +1 −1
  681. arch/arm/boot/dts/omap3-devkit8000-lcd70.dts +1 −1
  682. arch/arm/boot/dts/omap3-gta04.dtsi +66 −6
  683. arch/arm/boot/dts/omap3-ha-lcd.dts +1 −1
  684. arch/arm/boot/dts/omap3-igep0020-common.dtsi +4 −4
  685. arch/arm/boot/dts/omap3-n900.dts +12 −0
  686. arch/arm/boot/dts/omap3-overo-common-dvi.dtsi +4 −4
  687. arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi +1 −1
  688. arch/arm/boot/dts/omap3-overo-common-lcd43.dtsi +1 −1
  689. arch/arm/boot/dts/omap3-pandora-common.dtsi +1 −1
  690. arch/arm/boot/dts/omap3-sb-t35.dtsi +4 −4
  691. arch/arm/boot/dts/omap3-thunder.dts +1 −1
  692. arch/arm/boot/dts/omap3.dtsi +10 −0
  693. arch/arm/boot/dts/omap4-duovero-parlor.dts +1 −1
  694. arch/arm/boot/dts/omap4-duovero.dtsi +5 −0
  695. arch/arm/boot/dts/omap4-panda-common.dtsi +13 −8
  696. arch/arm/boot/dts/omap4-sdp.dts +9 −4
  697. arch/arm/boot/dts/omap4-var-om44customboard.dtsi +1 −1
  698. arch/arm/boot/dts/omap4-var-som-om44.dtsi +5 −0
  699. arch/arm/boot/dts/omap5-board-common.dtsi +9 −4
  700. arch/arm/boot/dts/omap5-cm-t54.dts +10 −5
  701. arch/arm/boot/dts/pm9g45.dts +0 −9
  702. arch/arm/boot/dts/pxa27x.dtsi +7 −0
  703. arch/arm/boot/dts/pxa2xx.dtsi +8 −0
  704. arch/arm/boot/dts/pxa3xx.dtsi +132 −1
  705. arch/arm/boot/dts/qcom-apq8060-dragonboard.dts +626 −0
  706. arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval-pins.dtsi +0 −0
  707. arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval.dts +6 −4
  708. arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts +0 −6
  709. arch/arm/boot/dts/qcom-apq8064-pins.dtsi +40 −0
  710. arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts +1 −43
  711. arch/arm/boot/dts/qcom-apq8064.dtsi +11 −2
  712. arch/arm/boot/dts/qcom-apq8074-dragonboard.dts +247 −0
  713. arch/arm/boot/dts/qcom-apq8084.dtsi +8 −0
  714. arch/arm/boot/dts/qcom-ipq4019.dtsi +7 −1
  715. arch/arm/boot/dts/qcom-ipq8064.dtsi +2 −1
  716. arch/arm/boot/dts/qcom-msm8660-surf.dts +11 −0
  717. arch/arm/boot/dts/qcom-msm8660.dtsi +154 −12
  718. arch/arm/boot/dts/qcom-msm8960.dtsi +2 −1
  719. arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts +4 −0
  720. arch/arm/boot/dts/qcom-msm8974.dtsi +24 −4
  721. arch/arm/boot/dts/qcom-pma8084.dtsi +14 −6
  722. arch/arm/boot/dts/r7s72100-genmai.dts +3 −3
  723. arch/arm/boot/dts/r8a73a4-ape6evm.dts +6 −6
  724. arch/arm/boot/dts/r8a73a4.dtsi +18 −16
  725. arch/arm/boot/dts/r8a7740-armadillo800eva.dts +10 −10
  726. arch/arm/boot/dts/r8a7740.dtsi +1 −1
  727. arch/arm/boot/dts/r8a7778-bockw.dts +4 −3
  728. arch/arm/boot/dts/r8a7778.dtsi +14 −14
  729. arch/arm/boot/dts/r8a7779-marzen.dts +5 −5
  730. arch/arm/boot/dts/r8a7790-lager.dts +15 −15
  731. arch/arm/boot/dts/r8a7790.dtsi +139 −98
  732. arch/arm/boot/dts/r8a7791-koelsch.dts +10 −10
  733. arch/arm/boot/dts/r8a7791-porter.dts +6 −6
  734. arch/arm/boot/dts/r8a7791.dtsi +132 −95
  735. arch/arm/boot/dts/r8a7792-blanche.dts +66 −0
  736. arch/arm/boot/dts/r8a7792.dtsi +385 −0
  737. arch/arm/boot/dts/r8a7793-gose.dts +9 −9
  738. arch/arm/boot/dts/r8a7793.dtsi +134 −79
  739. arch/arm/boot/dts/r8a7794-alt.dts +2 −2
  740. arch/arm/boot/dts/r8a7794-silk.dts +17 −5
  741. arch/arm/boot/dts/r8a7794.dtsi +82 −50
  742. arch/arm/boot/dts/rk3228-evb.dts +1 −1
  743. arch/arm/boot/dts/rk3229-evb.dts +90 −0
  744. arch/arm/boot/dts/rk322x.dtsi +116 −2
  745. arch/arm/boot/dts/rk3288-firefly.dtsi +15 −16
  746. arch/arm/boot/dts/rk3288-miqi.dts +13 −13
  747. arch/arm/boot/dts/rk3288-popmetal.dts +15 −16
  748. arch/arm/boot/dts/rk3288-rock2-som.dtsi +15 −16
  749. arch/arm/boot/dts/rk3288-veyron-analog-audio.dtsi +101 −0
  750. arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi +1 −0
  751. arch/arm/boot/dts/rk3288-veyron.dtsi +18 −13
  752. arch/arm/boot/dts/rk3288.dtsi +5 −0
  753. arch/arm/boot/dts/sama5d2.dtsi +21 −16
  754. arch/arm/boot/dts/sama5d3.dtsi +20 −24
  755. arch/arm/boot/dts/sama5d31ek.dts +1 −0
  756. arch/arm/boot/dts/sama5d33ek.dts +1 −0
  757. arch/arm/boot/dts/sama5d34ek.dts +1 −0
  758. arch/arm/boot/dts/sama5d35ek.dts +2 −0
  759. arch/arm/boot/dts/sama5d36ek.dts +2 −0
  760. arch/arm/boot/dts/sama5d3xcm.dtsi +0 −34
  761. arch/arm/boot/dts/sama5d3xmb.dtsi +0 −12
  762. arch/arm/boot/dts/sama5d3xmb_emac.dtsi +26 −0
  763. arch/arm/boot/dts/sama5d3xmb_gmac.dtsi +48 −0
  764. arch/arm/boot/dts/sama5d4.dtsi +20 −20
  765. arch/arm/boot/dts/sh73a0-kzm9g.dts +10 −9
  766. arch/arm/boot/dts/sh73a0.dtsi +1 −1
  767. arch/arm/boot/dts/socfpga_arria10.dtsi +13 −11
  768. arch/arm/boot/dts/socfpga_arria10_socdk.dtsi +6 −1
  769. arch/arm/boot/dts/ste-dbx5x0.dtsi +1 −0
  770. arch/arm/boot/dts/ste-href-tvk1281618.dtsi +43 −19
  771. arch/arm/boot/dts/ste-href.dtsi +0 −1
  772. arch/arm/boot/dts/ste-hrefv60plus.dtsi +120 −0
  773. arch/arm/boot/dts/ste-snowball.dts +83 −1
  774. arch/arm/boot/dts/stih410-clock.dtsi +9 −0
  775. arch/arm/boot/dts/sun4i-a10-a1000.dts +3 −1
  776. arch/arm/boot/dts/sun4i-a10-hackberry.dts +1 −0
  777. arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts +1 −0
  778. arch/arm/boot/dts/sun4i-a10.dtsi +158 −69
  779. arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts +19 −0
  780. arch/arm/boot/dts/sun5i-a10s-mk802.dts +32 −0
  781. arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts +7 −0
  782. arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts +9 −1
  783. arch/arm/boot/dts/sun5i-a10s.dtsi +14 −0
  784. arch/arm/boot/dts/sun5i-a13-difrnce-dit4350.dts +1 −177
  785. arch/arm/boot/dts/sun5i-a13-q8-tablet.dts +33 −7
  786. arch/arm/boot/dts/sun5i-a13-utoo-p66.dts +21 −159
  787. arch/arm/boot/dts/sun5i-a13.dtsi +122 −0
  788. arch/arm/boot/dts/sun5i-r8.dtsi +5 −115
  789. arch/arm/boot/dts/sun5i-reference-design-tablet.dtsi +33 −3
  790. arch/arm/boot/dts/sun5i.dtsi +1 −1
  791. arch/arm/boot/dts/sun6i-a31-m9.dts +94 −2
  792. arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts +94 −2
  793. arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts +229 −0
  794. arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts +67 −13
  795. arch/arm/boot/dts/sun7i-a20.dtsi +323 −151
  796. arch/arm/boot/dts/sun8i-a23-inet86dz.dts +58 −0
  797. arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts +50 −0
  798. arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts +1 −194
  799. arch/arm/boot/dts/sun8i-a23-q8-tablet.dts +0 −15
  800. arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts +1 −76
  801. arch/arm/boot/dts/sun8i-a33-q8-tablet.dts +0 −15
  802. arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts +195 −0
  803. arch/arm/boot/dts/sun8i-h3.dtsi +14 −7
  804. arch/arm/boot/dts/sun8i-q8-common.dtsi +6 −133
  805. arch/arm/boot/dts/sun8i-r16-parrot.dts +351 −0
  806. arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi +216 −0
  807. arch/arm/boot/dts/sun9i-a80-cubieboard4.dts +145 −19
  808. arch/arm/boot/dts/sun9i-a80-optimus.dts +163 −32
  809. arch/arm/boot/dts/sunxi-reference-design-tablet.dtsi +0 −0
  810. arch/arm/boot/dts/tegra114-dalmore.dts +1 −1
  811. arch/arm/boot/dts/tegra114-roth.dts +2 −2
  812. arch/arm/boot/dts/tegra114-tn7.dts +1 −1
  813. arch/arm/boot/dts/tegra124-apalis-emc.dtsi +1502 −0
  814. arch/arm/boot/dts/tegra124-apalis-eval.dts +284 −0
  815. arch/arm/boot/dts/tegra124-apalis.dtsi +2100 −0
  816. arch/arm/boot/dts/tegra124-jetson-tk1-emc.dtsi +3 −3
  817. arch/arm/boot/dts/tegra124-jetson-tk1.dts +42 −46
  818. arch/arm/boot/dts/tegra124-nyan-big-emc.dtsi +3 −3
  819. arch/arm/boot/dts/tegra124-nyan-big.dts +2 −2
  820. arch/arm/boot/dts/tegra124-nyan-blaze-emc.dtsi +3 −3
  821. arch/arm/boot/dts/tegra124-nyan-blaze.dts +1 −1
  822. arch/arm/boot/dts/tegra124-nyan.dtsi +30 −30
  823. arch/arm/boot/dts/tegra124-venice2.dts +35 −35
  824. arch/arm/boot/dts/tegra124.dtsi +65 −60
  825. arch/arm/boot/dts/tegra20-colibri-512.dtsi +1 −1
  826. arch/arm/boot/dts/tegra20-harmony.dts +1 −1
  827. arch/arm/boot/dts/tegra20-paz00.dts +1 −1
  828. arch/arm/boot/dts/tegra20-seaboard.dts +1 −1
  829. arch/arm/boot/dts/tegra20-tamonten.dtsi +1 −1
  830. arch/arm/boot/dts/tegra20-trimslice.dts +1 −1
  831. arch/arm/boot/dts/tegra20-ventana.dts +1 −1
  832. arch/arm/boot/dts/tegra20-whistler.dts +1 −1
  833. arch/arm/boot/dts/tegra30-apalis.dtsi +4 −3
  834. arch/arm/boot/dts/tegra30-beaver.dts +1 −1
  835. arch/arm/boot/dts/tegra30-cardhu.dtsi +1 −1
  836. arch/arm/boot/dts/tegra30-colibri-eval-v3.dts +1 −1
  837. arch/arm/boot/dts/tegra30-colibri.dtsi +1 −1
  838. arch/arm/boot/dts/tny_a9260_common.dtsi +0 −9
  839. arch/arm/boot/dts/tny_a9263.dts +1 −10
  840. arch/arm/boot/dts/uniphier-common32.dtsi +9 −3
  841. arch/arm/boot/dts/uniphier-ph1-ld4.dtsi +1 −1
  842. arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi +1 −1
  843. arch/arm/boot/dts/uniphier-ph1-pro4.dtsi +1 −1
  844. arch/arm/boot/dts/uniphier-ph1-pro5.dtsi +1 −1
  845. arch/arm/boot/dts/uniphier-ph1-sld8.dtsi +1 −1
  846. arch/arm/boot/dts/uniphier-pinctrl.dtsi +5 −0
  847. arch/arm/boot/dts/uniphier-proxstream2-gentil.dts +4 −4
  848. arch/arm/boot/dts/uniphier-proxstream2-vodka.dts +4 −4
  849. arch/arm/boot/dts/uniphier-proxstream2.dtsi +1 −1
  850. arch/arm/boot/dts/usb_a9260_common.dtsi +2 −11
  851. arch/arm/boot/dts/usb_a9263.dts +1 −10
  852. arch/arm/boot/dts/usb_a9g20_common.dtsi +3 −2
  853. arch/arm/common/dmabounce.c +2 −2
  854. arch/arm/configs/bcm_defconfig +0 −141
  855. arch/arm/configs/exynos_defconfig +17 −12
  856. arch/arm/configs/imx_v6_v7_defconfig +3 −1
  857. arch/arm/configs/keystone_defconfig +1 −0
  858. arch/arm/configs/lpc18xx_defconfig +2 −0
  859. arch/arm/configs/multi_v4t_defconfig +106 −0
  860. arch/arm/configs/multi_v5_defconfig +53 −1
  861. arch/arm/configs/multi_v7_defconfig +47 −5
  862. arch/arm/configs/omap2plus_defconfig +4 −1
  863. arch/arm/configs/qcom_defconfig +8 −0
  864. arch/arm/configs/sama5_defconfig +3 −0
  865. arch/arm/configs/shmobile_defconfig +1 −0
  866. arch/arm/configs/socfpga_defconfig +15 −1
  867. arch/arm/configs/sunxi_defconfig +2 −0
  868. arch/arm/include/asm/dma-mapping.h +6 −7
  869. arch/arm/include/asm/kexec.h +24 −0
  870. arch/arm/include/asm/kvm_asm.h +2 −0
  871. arch/arm/include/asm/kvm_host.h +9 −18
  872. arch/arm/include/asm/kvm_hyp.h +0 −3
  873. arch/arm/include/asm/kvm_mmu.h +2 −13
  874. arch/arm/include/asm/mach/pci.h +1 −0
  875. arch/arm/include/asm/pgtable.h +3 −1
  876. arch/arm/include/asm/uaccess.h +9 −2
  877. arch/arm/include/asm/virt.h +4 −0
  878. arch/arm/include/asm/xen/page-coherent.h +6 −10
  879. arch/arm/include/debug/at91.S +1 −9
  880. arch/arm/include/debug/clps711x.S +2 −2
  881. arch/arm/include/debug/exynos.S +5 −1
  882. arch/arm/include/debug/samsung.S +8 −0
  883. arch/arm/kernel/bios32.c +20 −25
  884. arch/arm/kernel/machine_kexec.c +1 −1
  885. arch/arm/kernel/setup.c +37 −2
  886. arch/arm/kernel/vmlinux.lds.S +1 −1
  887. arch/arm/kvm/Kconfig +2 −7
  888. arch/arm/kvm/Makefile +1 −6
  889. arch/arm/kvm/arm.c +18 −28
  890. arch/arm/kvm/emulate.c +1 −1
  891. arch/arm/kvm/guest.c +1 −1
  892. arch/arm/kvm/init.S +20 −36
  893. arch/arm/kvm/irq.h +19 −0
  894. arch/arm/kvm/mmu.c +63 −79
  895. arch/arm/kvm/reset.c +1 −1
  896. arch/arm/mach-at91/Kconfig +1 −1
  897. arch/arm/mach-at91/pm.c +3 −2
  898. arch/arm/mach-bcm/Kconfig +13 −6
  899. arch/arm/mach-bcm/Makefile +4 −1
  900. arch/arm/mach-bcm/board_bcm21664.c +0 −43
  901. arch/arm/mach-bcm/board_bcm23550.c +25 −0
  902. arch/arm/mach-bcm/kona_l2_cache.c +1 −0
  903. arch/arm/mach-bcm/platsmp.c +95 −79
  904. arch/arm/mach-berlin/Kconfig +1 −1
  905. arch/arm/mach-clps711x/Kconfig +15 −38
  906. arch/arm/mach-clps711x/Makefile +1 −13
  907. arch/arm/mach-clps711x/Makefile.boot +0 −5
  908. arch/arm/mach-clps711x/board-dt.c +82 −0
  909. arch/arm/mach-clps711x/common.c +2 −2
  910. arch/arm/mach-clps711x/include/mach/clps711x.h +0 −204
  911. arch/arm/mach-clps711x/include/mach/hardware.h +0 −53
  912. arch/arm/mach-clps711x/include/mach/uncompress.h +0 −55
  913. arch/arm/mach-davinci/board-dm355-evm.c +1 −3
  914. arch/arm/mach-davinci/board-dm365-evm.c +2 −6
  915. arch/arm/mach-davinci/board-dm644x-evm.c +1 −3
  916. arch/arm/mach-davinci/board-neuros-osd2.c +1 −3
  917. arch/arm/mach-davinci/da850.c +16 −0
  918. arch/arm/mach-davinci/davinci.h +4 −4
  919. arch/arm/mach-davinci/dm355.c +1 −2
  920. arch/arm/mach-davinci/dm365.c +2 −4
  921. arch/arm/mach-davinci/dm644x.c +1 −2
  922. arch/arm/mach-davinci/psc.h +2 −0
  923. arch/arm/mach-digicolor/Kconfig +1 −1
  924. arch/arm/mach-ep93xx/ts72xx.c +1 −1
  925. arch/arm/mach-exynos/Kconfig +2 −1
  926. arch/arm/mach-exynos/Makefile +0 −3
  927. arch/arm/mach-exynos/common.h +2 −3
  928. arch/arm/mach-exynos/exynos.c +1 −19
  929. arch/arm/mach-exynos/firmware.c +9 −9
  930. arch/arm/mach-exynos/headsmp.S +3 −0
  931. arch/arm/mach-exynos/mfc.h +0 −16
  932. arch/arm/mach-exynos/platsmp.c +2 −2
  933. arch/arm/mach-exynos/pm.c +3 −3
  934. arch/arm/mach-exynos/s5p-dev-mfc.c +0 −93
  935. arch/arm/mach-exynos/suspend.c +6 −6
  936. arch/arm/mach-hisi/hisilicon.c +0 −28
  937. arch/arm/mach-hisi/platsmp.c +2 −2
  938. arch/arm/mach-imx/Kconfig +1 −5
  939. arch/arm/mach-imx/Makefile +2 −2
  940. arch/arm/mach-imx/avic.c +8 −11
  941. arch/arm/mach-imx/common.h +2 −1
  942. arch/arm/mach-imx/cpu-imx5.c +0 −8
  943. arch/arm/mach-imx/cpu.c +0 −2
  944. arch/arm/mach-imx/cpuidle-imx6q.c +20 −0
  945. arch/arm/mach-imx/devices/Kconfig +0 −4
  946. arch/arm/mach-imx/devices/devices.c +3 −0
  947. arch/arm/mach-imx/devices/platform-gpio-mxc.c +1 −0
  948. arch/arm/mach-imx/devices/platform-mxc_rnga.c +0 −53
  949. arch/arm/mach-imx/eukrea-baseboards.h +0 −42
  950. arch/arm/mach-imx/imx27-dt.c +1 −0
  951. arch/arm/mach-imx/imx31-dt.c +12 −0
  952. arch/arm/mach-imx/imx35-dt.c +3 −7
  953. arch/arm/mach-imx/irq-common.c +4 −2
  954. arch/arm/mach-imx/mach-imx50.c +0 −1
  955. arch/arm/mach-imx/mach-imx51.c +2 −1
  956. arch/arm/mach-imx/mach-imx53.c +0 −1
  957. arch/arm/mach-imx/mach-imx6q.c +3 −1
  958. arch/arm/mach-imx/mach-imx6sl.c +2 −0
  959. arch/arm/mach-imx/mach-imx6sx.c +2 −0
  960. arch/arm/mach-imx/mach-imx7d.c +1 −0
  961. arch/arm/mach-imx/mm-imx1.c +1 −1
  962. arch/arm/mach-imx/mm-imx27.c +2 −0
  963. arch/arm/mach-imx/mm-imx3.c +28 −4
  964. arch/arm/mach-imx/mxc.h +0 −101
  965. arch/arm/mach-imx/pm-imx27.c +1 −7
  966. arch/arm/mach-imx/pm-imx3.c +0 −38
  967. arch/arm/mach-imx/system.c +25 −33
  968. arch/arm/mach-imx/tzic.c +8 −8
  969. arch/arm/mach-integrator/Kconfig +2 −2
  970. arch/arm/mach-integrator/impd1.c +2 −2
  971. arch/arm/mach-keystone/Kconfig +1 −1
  972. arch/arm/mach-keystone/pm_domain.c +2 −0
  973. arch/arm/mach-meson/Kconfig +4 −1
  974. arch/arm/mach-mmp/Kconfig +1 −1
  975. arch/arm/mach-moxart/Kconfig +1 −1
  976. arch/arm/mach-mv78xx0/Kconfig +1 −1
  977. arch/arm/mach-mv78xx0/common.c +1 −1
  978. arch/arm/mach-mvebu/Kconfig +2 −2
  979. arch/arm/mach-mvebu/coherency.h +1 −0
  980. arch/arm/mach-mvebu/cpu-reset.c +2 −0
  981. arch/arm/mach-mvebu/kirkwood-pm.c +2 −2
  982. arch/arm/mach-mvebu/kirkwood.c +1 −1
  983. arch/arm/mach-mvebu/pm.c +1 −0
  984. arch/arm/mach-mvebu/pmsu.c +2 −1
  985. arch/arm/mach-mvebu/system-controller.c +1 −1
  986. arch/arm/mach-mxs/Kconfig +1 −1
  987. arch/arm/mach-nomadik/Kconfig +1 −1
  988. arch/arm/mach-omap1/ams-delta-fiq.c +1 −1
  989. arch/arm/mach-omap1/include/mach/mtd-xip.h +1 −1
  990. arch/arm/mach-omap2/Kconfig +1 −1
  991. arch/arm/mach-omap2/Makefile +6 −3
  992. arch/arm/mach-omap2/board-ldp.c +2 −1
  993. arch/arm/mach-omap2/board-rx51-peripherals.c +0 −5
  994. arch/arm/mach-omap2/board-rx51-video.c +2 −2
  995. arch/arm/mach-omap2/clockdomain.c +24 −12
  996. arch/arm/mach-omap2/clockdomain.h +2 −0
  997. arch/arm/mach-omap2/cm33xx.c +3 −0
  998. arch/arm/mach-omap2/cm3xxx.c +1 −1
  999. arch/arm/mach-omap2/common.h +6 −2
  1000. arch/arm/mach-omap2/cpuidle44xx.c +1 −1
  1001. arch/arm/mach-omap2/display.c +1 −1
  1002. arch/arm/mach-omap2/display.h +5 −0
  1003. arch/arm/mach-omap2/dss-common.c +1 −1
  1004. arch/arm/mach-omap2/io.c +3 −0
  1005. arch/arm/mach-omap2/mcbsp.c +17 −14
  1006. arch/arm/mach-omap2/mux34xx.c +2 −2
  1007. arch/arm/mach-omap2/omap-headsmp.S +14 −4
  1008. arch/arm/mach-omap2/omap-hotplug.c +6 −0
  1009. arch/arm/mach-omap2/omap-mpuss-lowpower.c +26 −5
  1010. arch/arm/mach-omap2/omap-smp.c +71 −27
  1011. arch/arm/mach-omap2/omap4-common.c +7 −9
  1012. arch/arm/mach-omap2/omap_device.c +18 −3
  1013. arch/arm/mach-omap2/omap_hwmod.c +62 −20
  1014. arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h +0 −18
  1015. arch/arm/mach-omap2/omap_hwmod_33xx_43xx_interconnect_data.c +0 −64
  1016. arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c +1 −84
  1017. arch/arm/mach-omap2/omap_hwmod_33xx_data.c +0 −9
  1018. arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +4 −20
  1019. arch/arm/mach-omap2/omap_hwmod_43xx_data.c +0 −54
  1020. arch/arm/mach-omap2/omap_hwmod_7xx_data.c +0 −41
  1021. arch/arm/mach-omap2/omap_hwmod_81xx_data.c +1 −1
  1022. arch/arm/mach-omap2/pdata-quirks.c +19 −9
  1023. arch/arm/mach-omap2/pm.c +1 −7
  1024. arch/arm/mach-omap2/powerdomain.c +6 −14
  1025. arch/arm/mach-omap2/prcm43xx.h +1 −0
  1026. arch/arm/mach-omap2/prm33xx.h +0 −2
  1027. arch/arm/mach-omap2/sdrc.h +2 −2
  1028. arch/arm/mach-omap2/timer.c +2 −1
  1029. arch/arm/mach-orion5x/Kconfig +1 −1
  1030. arch/arm/mach-orion5x/irq.c +1 −1
  1031. arch/arm/mach-orion5x/ts78xx-setup.c +1 −1
  1032. arch/arm/mach-oxnas/Kconfig +2 −2
  1033. arch/arm/mach-picoxcell/Kconfig +1 −1
  1034. arch/arm/mach-prima2/Kconfig +1 −1
  1035. arch/arm/mach-pxa/cm-x270.c +1 −1
  1036. arch/arm/mach-pxa/cm-x300.c +1 −1
  1037. arch/arm/mach-pxa/em-x270.c +1 −1
  1038. arch/arm/mach-qcom/Kconfig +4 −0
  1039. arch/arm/mach-qcom/board.c +1 −0
  1040. arch/arm/mach-rockchip/Kconfig +1 −1
  1041. arch/arm/mach-s3c24xx/Kconfig +1 −1
  1042. arch/arm/mach-s3c24xx/include/mach/regs-gpio.h +1 −1
  1043. arch/arm/mach-s3c24xx/iotiming-s3c2410.c +1 −1
  1044. arch/arm/mach-s3c24xx/mach-n30.c +1 −1
  1045. arch/arm/mach-s3c24xx/mach-osiris-dvs.c +1 −1
  1046. arch/arm/mach-s3c24xx/pll-s3c2410.c +2 −1
  1047. arch/arm/mach-s3c24xx/pll-s3c2440-12000000.c +1 −0
  1048. arch/arm/mach-s3c24xx/pll-s3c2440-16934400.c +1 −0
  1049. arch/arm/mach-s3c64xx/Kconfig +1 −1
  1050. arch/arm/mach-s3c64xx/common.h +1 −0
  1051. arch/arm/mach-s3c64xx/include/mach/map.h +1 −1
  1052. arch/arm/mach-s3c64xx/mach-smartq.c +1 −0
  1053. arch/arm/mach-s5pv210/Kconfig +1 −1
  1054. arch/arm/mach-shmobile/Kconfig +5 −1
  1055. arch/arm/mach-shmobile/Makefile +1 −0
  1056. arch/arm/mach-shmobile/common.h +1 −0
  1057. arch/arm/mach-shmobile/platsmp-apmu.c +89 −5
  1058. arch/arm/mach-shmobile/platsmp.c +6 −0
  1059. arch/arm/mach-shmobile/pm-r8a7779.c +1 −5
  1060. arch/arm/mach-shmobile/pm-rcar-gen2.c +5 −14
  1061. arch/arm/mach-shmobile/pm-rmobile.c +1 −1
  1062. arch/arm/mach-shmobile/setup-r8a7790.c +1 −0
  1063. arch/arm/mach-shmobile/setup-r8a7791.c +1 −0
  1064. arch/arm/mach-shmobile/setup-r8a7792.c +35 −0
  1065. arch/arm/mach-shmobile/setup-rcar-gen2.c +24 −21
  1066. arch/arm/mach-spear/Kconfig +1 −1
  1067. arch/arm/mach-sti/Kconfig +1 −1
  1068. arch/arm/mach-sti/board-dt.c +10 −1
  1069. arch/arm/mach-sunxi/Kconfig +1 −1
  1070. arch/arm/mach-tango/Makefile +1 −0
  1071. arch/arm/mach-tango/platsmp.c +35 −0
  1072. arch/arm/mach-tango/pm.c +32 −0
  1073. arch/arm/mach-tango/smc.h +4 −1
  1074. arch/arm/mach-tegra/Kconfig +1 −1
  1075. arch/arm/mach-tegra/common.h +22 −0
  1076. arch/arm/mach-tegra/cpuidle-tegra114.c +1 −0
  1077. arch/arm/mach-tegra/cpuidle-tegra20.c +1 −0
  1078. arch/arm/mach-tegra/cpuidle-tegra30.c +1 −0
  1079. arch/arm/mach-tegra/cpuidle.h +2 −0
  1080. arch/arm/mach-tegra/hotplug.c +1 −0
  1081. arch/arm/mach-tegra/irq.c +1 −0
  1082. arch/arm/mach-tegra/pm.h +1 −1
  1083. arch/arm/mach-tegra/tegra.c +3 −21
  1084. arch/arm/mach-u300/Kconfig +1 −1
  1085. arch/arm/mach-uniphier/Makefile +0 −1
  1086. arch/arm/mach-uniphier/platsmp.c +5 −13
  1087. arch/arm/mach-uniphier/uniphier.c +0 −30
  1088. arch/arm/mach-ux500/Kconfig +1 −1
  1089. arch/arm/mach-ux500/Makefile +2 −4
  1090. arch/arm/mach-ux500/board-mop500-regulators.c +0 −1065
  1091. arch/arm/mach-ux500/board-mop500-regulators.h +0 −24
  1092. arch/arm/mach-ux500/cache-l2x0.c +0 −67
  1093. arch/arm/mach-ux500/cpu-db8500.c +88 −51
  1094. arch/arm/mach-ux500/cpu.c +0 −148
  1095. arch/arm/mach-ux500/id.c +0 −116
  1096. arch/arm/mach-ux500/id.h +0 −144
  1097. arch/arm/mach-ux500/platsmp.c +0 −1
  1098. arch/arm/mach-ux500/setup.h +0 −12
  1099. arch/arm/mach-vexpress/Kconfig +1 −1
  1100. arch/arm/mach-vexpress/hotplug.c +2 −0
  1101. arch/arm/mach-vexpress/spc.c +3 −3
  1102. arch/arm/mach-vt8500/Kconfig +1 −1
  1103. arch/arm/mm/dma-mapping.c +63 −66
  1104. arch/arm/plat-iop/setup.c +2 −2
  1105. arch/arm/plat-samsung/cpu.c +5 −5
  1106. arch/arm/plat-samsung/include/plat/cpu-freq-core.h +1 −1
  1107. arch/arm/plat-samsung/include/plat/cpu.h +1 −0
  1108. arch/arm/plat-samsung/include/plat/fb-s3c2410.h +1 −1
  1109. arch/arm/plat-samsung/include/plat/gpio-cfg.h +1 −1
  1110. arch/arm/plat-samsung/pm-check.c +1 −1
  1111. arch/arm/plat-samsung/pm-common.c +4 −4
  1112. arch/arm/plat-samsung/watchdog-reset.c +1 −1
  1113. arch/arm/plat-versatile/platsmp.c +2 −0
  1114. arch/arm/xen/mm.c +4 −4
  1115. arch/arm64/Kconfig +6 −2
  1116. arch/arm64/Kconfig.platforms +28 −0
  1117. arch/arm64/Makefile +1 −1
  1118. arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts +20 −0
  1119. arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi +9 −0
  1120. arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi +3 −0
  1121. arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi +169 −1
  1122. arch/arm64/boot/dts/apm/apm-shadowcat.dtsi +34 −34
  1123. arch/arm64/boot/dts/apm/apm-storm.dtsi +17 −27
  1124. arch/arm64/boot/dts/arm/juno-base.dtsi +357 −0
  1125. arch/arm64/boot/dts/arm/juno-r1.dts +40 −0
  1126. arch/arm64/boot/dts/arm/juno-r2.dts +40 −0
  1127. arch/arm64/boot/dts/arm/juno.dts +24 −0
  1128. arch/arm64/boot/dts/broadcom/Makefile +1 −0
  1129. arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts +30 −0
  1130. arch/arm64/boot/dts/broadcom/bcm2837.dtsi +76 −0
  1131. arch/arm64/boot/dts/broadcom/ns2-svk.dts +37 −0
  1132. arch/arm64/boot/dts/broadcom/ns2.dtsi +119 −0
  1133. arch/arm64/boot/dts/exynos/exynos7-espresso.dts +1 −1
  1134. arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +19 −5
  1135. arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi +35 −9
  1136. arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts +143 −0
  1137. arch/arm64/boot/dts/hisilicon/hi6220.dtsi +18 −0
  1138. arch/arm64/boot/dts/lg/Makefile +1 −0
  1139. arch/arm64/boot/dts/lg/lg1313-ref.dts +36 −0
  1140. arch/arm64/boot/dts/lg/lg1313.dtsi +351 −0
  1141. arch/arm64/boot/dts/marvell/armada-3720-db.dts +5 −0
  1142. arch/arm64/boot/dts/marvell/armada-37xx.dtsi +60 −0
  1143. arch/arm64/boot/dts/marvell/armada-ap806.dtsi +4 −4
  1144. arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi +18 −0
  1145. arch/arm64/boot/dts/mediatek/Makefile +1 −0
  1146. arch/arm64/boot/dts/mediatek/mt6755-evb.dts +38 −0
  1147. arch/arm64/boot/dts/mediatek/mt6755.dtsi +145 −0
  1148. arch/arm64/boot/dts/mediatek/mt8173.dtsi +223 −0
  1149. arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi +249 −0
  1150. arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts +45 −0
  1151. arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi +319 −0
  1152. arch/arm64/boot/dts/nvidia/tegra210-smaug.dts +314 −0
  1153. arch/arm64/boot/dts/nvidia/tegra210.dtsi +291 −1
  1154. arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi +16 −0
  1155. arch/arm64/boot/dts/qcom/msm8916.dtsi +75 −3
  1156. arch/arm64/boot/dts/qcom/msm8996-pins.dtsi +303 −0
  1157. arch/arm64/boot/dts/qcom/msm8996.dtsi +102 −1
  1158. arch/arm64/boot/dts/renesas/Makefile +1 −0
  1159. arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts +10 −4
  1160. arch/arm64/boot/dts/renesas/r8a7795.dtsi +87 −37
  1161. arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts +50 −0
  1162. arch/arm64/boot/dts/renesas/r8a7796.dtsi +138 −0
  1163. arch/arm64/boot/dts/rockchip/rk3368-r88.dts +16 −0
  1164. arch/arm64/boot/dts/rockchip/rk3368.dtsi +13 −3
  1165. arch/arm64/boot/dts/rockchip/rk3399-evb.dts +12 −0
  1166. arch/arm64/boot/dts/rockchip/rk3399.dtsi +311 −2
  1167. arch/arm64/boot/dts/socionext/uniphier-ph1-ld20.dtsi +13 −7
  1168. arch/arm64/configs/defconfig +48 −1
  1169. arch/arm64/include/asm/cpufeature.h +2 −1
  1170. arch/arm64/include/asm/dma-mapping.h +15 −2
  1171. arch/arm64/include/asm/elf.h +1 −0
  1172. arch/arm64/include/asm/kvm_arm.h +1 −1
  1173. arch/arm64/include/asm/kvm_host.h +6 −13
  1174. arch/arm64/include/asm/kvm_hyp.h +0 −23
  1175. arch/arm64/include/asm/kvm_mmu.h +78 −18
  1176. arch/arm64/include/asm/pgtable-hwdef.h +1 −0
  1177. arch/arm64/include/asm/pgtable-prot.h +3 −1
  1178. arch/arm64/include/asm/pgtable.h +17 −0
  1179. arch/arm64/include/asm/uaccess.h +10 −5
  1180. arch/arm64/include/asm/virt.h +4 −0
  1181. arch/arm64/include/uapi/asm/auxvec.h +2 −0
  1182. arch/arm64/include/uapi/asm/kvm.h +2 −0
  1183. arch/arm64/kernel/cpufeature.c +19 −0
  1184. arch/arm64/kernel/head.S +3 −18
  1185. arch/arm64/kernel/pci.c +138 −21
  1186. arch/arm64/kernel/vmlinux.lds.S +2 −11
  1187. arch/arm64/kvm/Kconfig +3 −7
  1188. arch/arm64/kvm/Makefile +2 −8
  1189. arch/arm64/kvm/guest.c +1 −1
  1190. arch/arm64/kvm/hyp-init.S +8 −53
  1191. arch/arm64/kvm/hyp/entry.S +0 −19
  1192. arch/arm64/kvm/hyp/hyp-entry.S +15 −0
  1193. arch/arm64/kvm/hyp/switch.c +9 −2
  1194. arch/arm64/kvm/inject_fault.c +5 −7
  1195. arch/arm64/kvm/irq.h +19 −0
  1196. arch/arm64/kvm/reset.c +8 −30
  1197. arch/arm64/kvm/sys_regs.c +2 −2
  1198. arch/arm64/mm/dma-mapping.c +33 −33
  1199. arch/arm64/mm/mmu.c +4 −4
  1200. arch/avr32/mm/dma-coherent.c +6 −6
  1201. arch/blackfin/kernel/dma-mapping.c +4 −4
  1202. arch/blackfin/mm/init.c +1 −1
  1203. arch/c6x/include/asm/dma-mapping.h +2 −2
  1204. arch/c6x/kernel/dma.c +4 −5
  1205. arch/c6x/mm/dma-coherent.c +2 −2
  1206. arch/cris/arch-v10/drivers/axisflashmap.c +1 −1
  1207. arch/cris/arch-v32/drivers/axisflashmap.c +1 −1
  1208. arch/cris/arch-v32/drivers/pci/dma.c +4 −5
  1209. arch/frv/include/asm/mc146818rtc.h +0 −16
  1210. arch/frv/mb93090-mb00/pci-dma-nommu.c +4 −4
  1211. arch/frv/mb93090-mb00/pci-dma.c +4 −5
  1212. arch/h8300/include/asm/mc146818rtc.h +0 −9
  1213. arch/h8300/kernel/dma.c +4 −4
  1214. arch/hexagon/include/asm/dma-mapping.h +0 −1
  1215. arch/hexagon/kernel/dma.c +4 −4
  1216. arch/hexagon/mm/init.c +1 −1
  1217. arch/ia64/Kconfig +1 −0
  1218. arch/ia64/hp/common/sba_iommu.c +11 −11
  1219. arch/ia64/include/asm/machvec.h +0 −1
  1220. arch/ia64/include/asm/mc146818rtc.h +0 −10
  1221. arch/ia64/include/asm/thread_info.h +0 −28
  1222. arch/ia64/include/asm/uaccess.h +15 −3
  1223. arch/ia64/kernel/efi.c +2 −2
  1224. arch/ia64/kernel/machine_kexec.c +1 −1
  1225. arch/ia64/kernel/mca.c +1 −1
  1226. arch/ia64/kernel/pci-swiotlb.c +2 −2
  1227. arch/ia64/kernel/salinfo.c +10 −28
  1228. arch/ia64/kernel/time.c +1 −1
  1229. arch/ia64/sn/pci/pci_dma.c +8 −14
  1230. arch/m68k/amiga/config.c +0 −1
  1231. arch/m68k/apollo/config.c +0 −1
  1232. arch/m68k/bvme6000/config.c +0 −1
  1233. arch/m68k/hp300/config.c +1 −1
  1234. arch/m68k/include/asm/flat.h +10 −3
  1235. arch/m68k/include/asm/processor.h +1 −14
  1236. arch/m68k/include/asm/rtc.h +0 −79
  1237. arch/m68k/kernel/dma.c +6 −6
  1238. arch/m68k/kernel/time.c +46 −2
  1239. arch/m68k/mac/config.c +2 −1
  1240. arch/m68k/mac/misc.c +0 −1
  1241. arch/m68k/mvme147/config.c +0 −1
  1242. arch/m68k/mvme16x/config.c +0 −1
  1243. arch/m68k/q40/config.c +1 −1
  1244. arch/m68k/sun3/config.c +0 −1
  1245. arch/m68k/sun3/intersil.c +1 −1
  1246. arch/m68k/sun3x/time.c +1 −1
  1247. arch/metag/include/asm/cmpxchg_lnkget.h +1 −1
  1248. arch/metag/include/asm/metag_mem.h +1 −1
  1249. arch/metag/include/asm/metag_regs.h +1 −1
  1250. arch/metag/kernel/cachepart.c +1 −1
  1251. arch/metag/kernel/dma.c +8 −8
  1252. arch/metag/lib/divsi3.S +2 −2
  1253. arch/metag/mm/fault.c +1 −1
  1254. arch/microblaze/include/asm/dma-mapping.h +0 −1
  1255. arch/microblaze/include/asm/pci.h +0 −3
  1256. arch/microblaze/include/asm/thread_info.h +0 −27
  1257. arch/microblaze/kernel/dma.c +6 −6
  1258. arch/microblaze/mm/init.c +2 −2
  1259. arch/microblaze/mm/pgtable.c +1 −1
  1260. arch/microblaze/pci/pci-common.c +15 −58
  1261. arch/mips/Kconfig +16 −33
  1262. arch/mips/ath79/setup.c +2 −2
  1263. arch/mips/bmips/setup.c +2 −2
  1264. arch/mips/boot/compressed/decompress.c +17 −0
  1265. arch/mips/boot/compressed/head.S +0 −16
  1266. arch/mips/boot/dts/cavium-octeon/dlink_dsr-1000n.dts +18 −2
  1267. arch/mips/boot/dts/cavium-octeon/octeon_3xxx.dts +0 −12
  1268. arch/mips/boot/tools/relocs_64.c +11 −8
  1269. arch/mips/cavium-octeon/dma-octeon.c +4 −4
  1270. arch/mips/cavium-octeon/executive/cvmx-bootmem.c +1 −1
  1271. arch/mips/cavium-octeon/executive/cvmx-helper-board.c +0 −22
  1272. arch/mips/cavium-octeon/octeon-irq.c +1 −13
  1273. arch/mips/cavium-octeon/octeon-platform.c +69 −56
  1274. arch/mips/cavium-octeon/setup.c +19 −1
  1275. arch/mips/cavium-octeon/smp.c +1 −0
  1276. arch/mips/cobalt/setup.c +2 −2
  1277. arch/mips/configs/ath25_defconfig +119 −0
  1278. arch/mips/configs/cavium_octeon_defconfig +2 −0
  1279. arch/mips/include/asm/addrspace.h +1 −1
  1280. arch/mips/include/asm/bootinfo.h +4 −0
  1281. arch/mips/include/asm/dsemul.h +92 −0
  1282. arch/mips/include/asm/elf.h +4 −0
  1283. arch/mips/include/asm/fpu_emulator.h +3 −14
  1284. arch/mips/include/asm/kvm_host.h +125 −190
  1285. arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h +1 −1
  1286. arch/mips/include/asm/mach-cavium-octeon/irq.h +0 −2
  1287. arch/mips/include/asm/mach-cavium-octeon/mangle-port.h +13 −29
  1288. arch/mips/include/asm/mips-cm.h +1 −1
  1289. arch/mips/include/asm/mipsregs.h +20 −1
  1290. arch/mips/include/asm/mmu.h +9 −0
  1291. arch/mips/include/asm/mmu_context.h +6 −0
  1292. arch/mips/include/asm/msa.h +2 −0
  1293. arch/mips/include/asm/page.h +32 −12
  1294. arch/mips/include/asm/pci.h +0 −10
  1295. arch/mips/include/asm/pgtable.h +8 −8
  1296. arch/mips/include/asm/processor.h +17 −1
  1297. arch/mips/include/asm/r4kcache.h +4 −0
  1298. arch/mips/include/asm/seccomp.h +2 −2
  1299. arch/mips/include/asm/setup.h +1 −0
  1300. arch/mips/include/asm/signal.h +3 −3
  1301. arch/mips/include/asm/smp.h +3 −1
  1302. arch/mips/include/asm/syscall.h +1 −1
  1303. arch/mips/include/asm/uaccess.h +1 −1
  1304. arch/mips/include/asm/uasm.h +7 −0
  1305. arch/mips/include/uapi/asm/auxvec.h +2 −0
  1306. arch/mips/include/uapi/asm/inst.h +108 −6
  1307. arch/mips/jz4740/setup.c +1 −1
  1308. arch/mips/kernel/Makefile +1 −1
  1309. arch/mips/kernel/asm-offsets.c +0 −70
  1310. arch/mips/kernel/branch.c +4 −4
  1311. arch/mips/kernel/cevt-r4k.c +1 −6
  1312. arch/mips/kernel/cpu-bugs64.c +3 −3
  1313. arch/mips/kernel/csrc-r4k.c +3 −1
  1314. arch/mips/kernel/elf.c +21 −2
  1315. arch/mips/kernel/head.S +14 −7
  1316. arch/mips/kernel/mips-cm.c +1 −1
  1317. arch/mips/kernel/mips-r2-to-r6-emul.c +21 −21
  1318. arch/mips/kernel/pm-cps.c +2 −2
  1319. arch/mips/kernel/process.c +14 −0
  1320. arch/mips/kernel/scall64-n32.S +1 −1
  1321. arch/mips/kernel/scall64-o32.S +1 −1
  1322. arch/mips/kernel/segment.c +8 −5
  1323. arch/mips/kernel/setup.c +4 −0
  1324. arch/mips/kernel/signal.c +13 −5
  1325. arch/mips/kernel/signal32.c +6 −282
  1326. arch/mips/kernel/signal_o32.c +285 −0
  1327. arch/mips/kernel/smp-bmips.c +1 −0
  1328. arch/mips/kernel/smp-cps.c +35 −11
  1329. arch/mips/kernel/smp.c +21 −13
  1330. arch/mips/kernel/traps.c +18 −9
  1331. arch/mips/kernel/unaligned.c +5 −5
  1332. arch/mips/kernel/vdso.c +10 −0
  1333. arch/mips/kvm/Kconfig +1 −0
  1334. arch/mips/kvm/Makefile +2 −1
  1335. arch/mips/kvm/commpage.c +1 −1
  1336. arch/mips/kvm/dyntrans.c +86 −96
  1337. arch/mips/kvm/emulate.c +259 −226
  1338. arch/mips/kvm/entry.c +701 −0
  1339. arch/mips/kvm/fpu.S +5 −2
  1340. arch/mips/kvm/interrupt.c +6 −6
  1341. arch/mips/kvm/interrupt.h +5 −9
  1342. arch/mips/kvm/locore.S +0 −605
  1343. arch/mips/kvm/mips.c +256 −111
  1344. arch/mips/kvm/mmu.c +375 −0
  1345. arch/mips/kvm/stats.c +0 −21
  1346. arch/mips/kvm/tlb.c +42 −456
  1347. arch/mips/kvm/trace.h +233 −3
  1348. arch/mips/kvm/trap_emul.c +87 −91
  1349. arch/mips/lantiq/irq.c +16 −15
  1350. arch/mips/lantiq/prom.c +2 −2
  1351. arch/mips/loongson64/common/dma-swiotlb.c +5 −5
  1352. arch/mips/loongson64/loongson-3/hpet.c +7 −7
  1353. arch/mips/loongson64/loongson-3/smp.c +1 −0
  1354. arch/mips/math-emu/cp1emu.c +11 −11
  1355. arch/mips/math-emu/dsemul.c +223 −110
  1356. arch/mips/mm/c-r4k.c +228 −58
  1357. arch/mips/mm/dma-default.c +10 −10
  1358. arch/mips/mm/init.c +1 −1
  1359. arch/mips/mm/sc-debugfs.c +2 −2
  1360. arch/mips/mm/sc-rm7k.c +1 −1
  1361. arch/mips/mm/tlbex.c +6 −6
  1362. arch/mips/mm/uasm-micromips.c +11 −2
  1363. arch/mips/mm/uasm-mips.c +12 −1
  1364. arch/mips/mm/uasm.c +17 −13
  1365. arch/mips/mti-malta/malta-dtshim.c +2 −2
  1366. arch/mips/mti-malta/malta-memory.c +1 −1
  1367. arch/mips/mti-malta/malta-setup.c +1 −1
  1368. arch/mips/net/bpf_jit.c +3 −3
  1369. arch/mips/netlogic/common/nlm-dma.c +2 −2
  1370. arch/mips/pci/pci.c +18 −1
  1371. arch/mips/pic32/pic32mzda/init.c +2 −2
  1372. arch/mips/pistachio/init.c +0 −25
  1373. arch/mips/ralink/mt7620.c +1 −1
  1374. arch/mips/sgi-ip22/ip22-reset.c +1 −1
  1375. arch/mips/sni/time.c +0 −1
  1376. arch/mips/txx9/generic/pci.c +1 −1
  1377. arch/mn10300/Kconfig +3 −1
  1378. arch/mn10300/include/asm/rtc-regs.h +2 −2
  1379. arch/mn10300/include/asm/rtc.h +0 −2
  1380. arch/mn10300/kernel/rtc.c +9 −95
  1381. arch/mn10300/mm/dma-alloc.c +4 −4
  1382. arch/mn10300/proc-mn103e010/proc-init.c +3 −0
  1383. arch/mn10300/proc-mn2ws0050/proc-init.c +1 −0
  1384. arch/nios2/mm/dma-mapping.c +6 −6
  1385. arch/nios2/mm/init.c +1 −1
  1386. arch/openrisc/kernel/dma.c +10 −11
  1387. arch/openrisc/mm/ioremap.c +2 −2
  1388. arch/parisc/Kconfig +1 −0
  1389. arch/parisc/include/asm/hash.h +146 −0
  1390. arch/parisc/include/asm/mc146818rtc.h +0 −9
  1391. arch/parisc/include/asm/rtc.h +0 −131
  1392. arch/parisc/kernel/firmware.c +3 −3
  1393. arch/parisc/kernel/pci-dma.c +9 −9
  1394. arch/parisc/kernel/time.c +35 −1
  1395. arch/parisc/lib/iomap.c +32 −32
  1396. arch/powerpc/Kconfig +33 −39
  1397. arch/powerpc/Kconfig.debug +21 −3
  1398. arch/powerpc/Makefile +6 −1
  1399. arch/powerpc/boot/Makefile +7 −3
  1400. arch/powerpc/boot/dts/fsl/b4420si-pre.dtsi +1 −0
  1401. arch/powerpc/boot/dts/fsl/b4860si-pre.dtsi +1 −0
  1402. arch/powerpc/boot/dts/fsl/kmcoge4.dts +37 −0
  1403. arch/powerpc/boot/dts/fsl/mvme7100.dts +153 −0
  1404. arch/powerpc/boot/dts/fsl/qonverge-usb2-dr-0.dtsi +1 −1
  1405. arch/powerpc/boot/dts/fsl/t1040si-post.dtsi +47 −2
  1406. arch/powerpc/boot/dts/fsl/t104xd4rdb.dtsi +38 −0
  1407. arch/powerpc/boot/dts/fsl/t104xqds.dtsi +38 −0
  1408. arch/powerpc/boot/dts/fsl/t104xrdb.dtsi +38 −0
  1409. arch/powerpc/boot/dts/fsl/t4240si-pre.dtsi +2 −0
  1410. arch/powerpc/boot/motload-head.S +11 −0
  1411. arch/powerpc/boot/mvme7100.c +59 −0
  1412. arch/powerpc/boot/opal-calls.S +58 −0
  1413. arch/powerpc/boot/opal.c +98 −0
  1414. arch/powerpc/boot/ops.h +1 −0
  1415. arch/powerpc/boot/ppc_asm.h +4 −0
  1416. arch/powerpc/boot/ppcboot.h +1 −1
  1417. arch/powerpc/boot/serial.c +2 −0
  1418. arch/powerpc/boot/types.h +10 −0
  1419. arch/powerpc/boot/wrapper +5 −0
  1420. arch/powerpc/configs/40x/acadia_defconfig +0 −1
  1421. arch/powerpc/configs/40x/ep405_defconfig +0 −1
  1422. arch/powerpc/configs/40x/kilauea_defconfig +0 −1
  1423. arch/powerpc/configs/40x/klondike_defconfig +0 −3
  1424. arch/powerpc/configs/40x/makalu_defconfig +0 −1
  1425. arch/powerpc/configs/40x/obs600_defconfig +0 −1
  1426. arch/powerpc/configs/40x/virtex_defconfig +0 −1
  1427. arch/powerpc/configs/40x/walnut_defconfig +0 −1
  1428. arch/powerpc/configs/44x/akebono_defconfig +3 −5
  1429. arch/powerpc/configs/44x/arches_defconfig +0 −1
  1430. arch/powerpc/configs/44x/bamboo_defconfig +0 −1
  1431. arch/powerpc/configs/44x/bluestone_defconfig +1 −1
  1432. arch/powerpc/configs/44x/canyonlands_defconfig +0 −1
  1433. arch/powerpc/configs/44x/currituck_defconfig +3 −5
  1434. arch/powerpc/configs/44x/ebony_defconfig +0 −1
  1435. arch/powerpc/configs/44x/eiger_defconfig +0 −2
  1436. arch/powerpc/configs/44x/icon_defconfig +1 −3
  1437. arch/powerpc/configs/44x/iss476-smp_defconfig +3 −5
  1438. arch/powerpc/configs/44x/katmai_defconfig +0 −1
  1439. arch/powerpc/configs/44x/rainier_defconfig +0 −1
  1440. arch/powerpc/configs/44x/redwood_defconfig +0 −2
  1441. arch/powerpc/configs/44x/sam440ep_defconfig +2 −4
  1442. arch/powerpc/configs/44x/sequoia_defconfig +0 −1
  1443. arch/powerpc/configs/44x/taishan_defconfig +0 −1
  1444. arch/powerpc/configs/44x/virtex5_defconfig +0 −1
  1445. arch/powerpc/configs/44x/warp_defconfig +1 −4
  1446. arch/powerpc/configs/52xx/cm5200_defconfig +1 −3
  1447. arch/powerpc/configs/52xx/lite5200b_defconfig +1 −3
  1448. arch/powerpc/configs/52xx/motionpro_defconfig +1 −3
  1449. arch/powerpc/configs/52xx/pcm030_defconfig +1 −3
  1450. arch/powerpc/configs/52xx/tqm5200_defconfig +1 −3
  1451. arch/powerpc/configs/83xx/asp8347_defconfig +1 −3
  1452. arch/powerpc/configs/83xx/kmeter1_defconfig +0 −1
  1453. arch/powerpc/configs/83xx/mpc8313_rdb_defconfig +1 −3
  1454. arch/powerpc/configs/83xx/mpc8315_rdb_defconfig +1 −3
  1455. arch/powerpc/configs/83xx/mpc832x_mds_defconfig +1 −3
  1456. arch/powerpc/configs/83xx/mpc832x_rdb_defconfig +1 −3
  1457. arch/powerpc/configs/83xx/mpc834x_itx_defconfig +1 −3
  1458. arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig +1 −3
  1459. arch/powerpc/configs/83xx/mpc834x_mds_defconfig +1 −3
  1460. arch/powerpc/configs/83xx/mpc836x_mds_defconfig +1 −3
  1461. arch/powerpc/configs/83xx/mpc836x_rdk_defconfig +1 −3
  1462. arch/powerpc/configs/83xx/mpc837x_mds_defconfig +1 −3
  1463. arch/powerpc/configs/83xx/mpc837x_rdb_defconfig +1 −3
  1464. arch/powerpc/configs/83xx/sbc834x_defconfig +1 −4
  1465. arch/powerpc/configs/85xx/ge_imp3a_defconfig +1 −3
  1466. arch/powerpc/configs/85xx/kmp204x_defconfig +1 −2
  1467. arch/powerpc/configs/85xx/ksi8560_defconfig +1 −3
  1468. arch/powerpc/configs/85xx/mpc8540_ads_defconfig +1 −3
  1469. arch/powerpc/configs/85xx/mpc8560_ads_defconfig +1 −3
  1470. arch/powerpc/configs/85xx/mpc85xx_cds_defconfig +1 −3
  1471. arch/powerpc/configs/85xx/sbc8548_defconfig +0 −1
  1472. arch/powerpc/configs/85xx/socrates_defconfig +1 −3
  1473. arch/powerpc/configs/85xx/stx_gp3_defconfig +1 −3
  1474. arch/powerpc/configs/85xx/tqm8540_defconfig +1 −3
  1475. arch/powerpc/configs/85xx/tqm8541_defconfig +1 −3
  1476. arch/powerpc/configs/85xx/tqm8548_defconfig +0 −1
  1477. arch/powerpc/configs/85xx/tqm8555_defconfig +1 −3
  1478. arch/powerpc/configs/85xx/tqm8560_defconfig +1 −3
  1479. arch/powerpc/configs/85xx/xes_mpc85xx_defconfig +1 −3
  1480. arch/powerpc/configs/86xx-hw.config +2 −2
  1481. arch/powerpc/configs/adder875_defconfig +0 −1
  1482. arch/powerpc/configs/amigaone_defconfig +0 −2
  1483. arch/powerpc/configs/c2k_defconfig +3 −5
  1484. arch/powerpc/configs/cell_defconfig +1 −1
  1485. arch/powerpc/configs/chrp32_defconfig +0 −1
  1486. arch/powerpc/configs/ep8248e_defconfig +1 −4
  1487. arch/powerpc/configs/ep88xc_defconfig +0 −1
  1488. arch/powerpc/configs/fsl-emb-nonhw.config +1 −3
  1489. arch/powerpc/configs/g5_defconfig +3 −4
  1490. arch/powerpc/configs/gamecube_defconfig +1 −4
  1491. arch/powerpc/configs/holly_defconfig +1 −2
  1492. arch/powerpc/configs/linkstation_defconfig +1 −3
  1493. arch/powerpc/configs/maple_defconfig +1 −4
  1494. arch/powerpc/configs/mgcoge_defconfig +0 −1
  1495. arch/powerpc/configs/mpc512x_defconfig +3 −5
  1496. arch/powerpc/configs/mpc5200_defconfig +1 −3
  1497. arch/powerpc/configs/mpc7448_hpc2_defconfig +1 −3
  1498. arch/powerpc/configs/mpc8272_ads_defconfig +1 −3
  1499. arch/powerpc/configs/mpc83xx_defconfig +1 −3
  1500. arch/powerpc/configs/mpc866_ads_defconfig +1 −3
  1501. arch/powerpc/configs/mpc86xx_basic_defconfig +1 −0
  1502. arch/powerpc/configs/mpc885_ads_defconfig +0 −1
  1503. arch/powerpc/configs/mvme5100_defconfig +1 −3
  1504. arch/powerpc/configs/pasemi_defconfig +1 −2
  1505. arch/powerpc/configs/pmac32_defconfig +1 −4
  1506. arch/powerpc/configs/powernv_defconfig +5 −3
  1507. arch/powerpc/configs/ppc40x_defconfig +1 −3
  1508. arch/powerpc/configs/ppc44x_defconfig +1 −3
  1509. arch/powerpc/configs/ppc64_defconfig +1 −5
  1510. arch/powerpc/configs/ppc64e_defconfig +1 −5
  1511. arch/powerpc/configs/ppc6xx_defconfig +4 −5
  1512. arch/powerpc/configs/pq2fads_defconfig +1 −4
  1513. arch/powerpc/configs/ps3_defconfig +0 −1
  1514. arch/powerpc/configs/pseries_defconfig +2 −5
  1515. arch/powerpc/configs/storcenter_defconfig +1 −3
  1516. arch/powerpc/configs/tqm8xx_defconfig +0 −1
  1517. arch/powerpc/configs/wii_defconfig +1 −4
  1518. arch/powerpc/include/asm/accounting.h +24 −0
  1519. arch/powerpc/include/asm/asm-compat.h +2 −0
  1520. arch/powerpc/include/asm/asm-prototypes.h +75 −0
  1521. arch/powerpc/include/asm/book3s/64/hugetlb-radix.h +15 −0
  1522. arch/powerpc/include/asm/book3s/64/mmu-hash.h +56 −4
  1523. arch/powerpc/include/asm/book3s/64/mmu.h +8 −3
  1524. arch/powerpc/include/asm/book3s/64/pgtable-4k.h +3 −3
  1525. arch/powerpc/include/asm/book3s/64/pgtable-64k.h +3 −3
  1526. arch/powerpc/include/asm/book3s/64/pgtable.h +70 −29
  1527. arch/powerpc/include/asm/book3s/64/tlbflush-hash.h +0 −5
  1528. arch/powerpc/include/asm/book3s/64/tlbflush-radix.h +14 −6
  1529. arch/powerpc/include/asm/book3s/64/tlbflush.h +19 −8
  1530. arch/powerpc/include/asm/cacheflush.h +1 −0
  1531. arch/powerpc/include/asm/code-patching.h +4 −6
  1532. arch/powerpc/include/asm/cpu_has_feature.h +53 −0
  1533. arch/powerpc/include/asm/cpufeature.h +40 −0
  1534. arch/powerpc/include/asm/cpuidle.h +2 −0
  1535. arch/powerpc/include/asm/cputable.h +7 −8
  1536. arch/powerpc/include/asm/cputime.h +12 −3
  1537. arch/powerpc/include/asm/dbell.h +1 −0
  1538. arch/powerpc/include/asm/dcr-native.h +1 −0
  1539. arch/powerpc/include/asm/dma-mapping.h +3 −4
  1540. arch/powerpc/include/asm/eeh.h +2 −2
  1541. arch/powerpc/include/asm/exception-64s.h +3 −1
  1542. arch/powerpc/include/asm/feature-fixups.h +4 −0
  1543. arch/powerpc/include/asm/firmware.h +6 −0
  1544. arch/powerpc/include/asm/fixmap.h +7 −0
  1545. arch/powerpc/include/asm/ftrace.h +5 −3
  1546. arch/powerpc/include/asm/hmi.h +45 −0
  1547. arch/powerpc/include/asm/hugetlb.h +1 −1
  1548. arch/powerpc/include/asm/hvcall.h +0 −11
  1549. arch/powerpc/include/asm/hw_irq.h +2 −0
  1550. arch/powerpc/include/asm/iommu.h +5 −6
  1551. arch/powerpc/include/asm/jump_label.h +3 −2
  1552. arch/powerpc/include/asm/kprobes.h +3 −5
  1553. arch/powerpc/include/asm/kvm_book3s_64.h +1 −2
  1554. arch/powerpc/include/asm/kvm_book3s_asm.h +1 −1
  1555. arch/powerpc/include/asm/linkage.h +3 −3
  1556. arch/powerpc/include/asm/machdep.h +2 −40
  1557. arch/powerpc/include/asm/mman.h +5 −4
  1558. arch/powerpc/include/asm/mmu-8xx.h +3 −0
  1559. arch/powerpc/include/asm/mmu.h +91 −16
  1560. arch/powerpc/include/asm/mpc52xx.h +1 −1
  1561. arch/powerpc/include/asm/nohash/32/pte-44x.h +1 −1
  1562. arch/powerpc/include/asm/nohash/64/pgtable-64k.h +1 −0
  1563. arch/powerpc/include/asm/opal-api.h +41 −5
  1564. arch/powerpc/include/asm/opal.h +32 −2
  1565. arch/powerpc/include/asm/paca.h +8 −7
  1566. arch/powerpc/include/asm/page.h +3 −3
  1567. arch/powerpc/include/asm/pci-bridge.h +2 −0
  1568. arch/powerpc/include/asm/pci.h +0 −3
  1569. arch/powerpc/include/asm/pgtable-be-types.h +15 −0
  1570. arch/powerpc/include/asm/pmac_feature.h +1 −1
  1571. arch/powerpc/include/asm/pnv-pci.h +47 −0
  1572. arch/powerpc/include/asm/ppc-opcode.h +46 −1
  1573. arch/powerpc/include/asm/ppc-pci.h +0 −2
  1574. arch/powerpc/include/asm/ppc4xx.h +1 −1
  1575. arch/powerpc/include/asm/ppc_asm.h +14 −14
  1576. arch/powerpc/include/asm/processor.h +6 −1
  1577. arch/powerpc/include/asm/ps3.h +2 −0
  1578. arch/powerpc/include/asm/ps3av.h +1 −1
  1579. arch/powerpc/include/asm/pte-common.h +1 −1
  1580. arch/powerpc/include/asm/ptrace.h +1 −1
  1581. arch/powerpc/include/asm/reg.h +54 −43
  1582. arch/powerpc/include/asm/rtas.h +4 −3
  1583. arch/powerpc/include/asm/rtc.h +0 −78
  1584. arch/powerpc/include/asm/sections.h +2 −2
  1585. arch/powerpc/include/asm/setup.h +12 −0
  1586. arch/powerpc/include/asm/smp.h +6 −3
  1587. arch/powerpc/include/asm/smu.h +1 −8
  1588. arch/powerpc/include/asm/spinlock.h +32 −6
  1589. arch/powerpc/include/asm/string.h +0 −4
  1590. arch/powerpc/include/asm/switch_to.h +8 −0
  1591. arch/powerpc/include/asm/synch.h +0 −1
  1592. arch/powerpc/include/asm/tce.h +0 −3
  1593. arch/powerpc/include/asm/thread_info.h +4 −25
  1594. arch/powerpc/include/asm/time.h +5 −4
  1595. arch/powerpc/include/asm/tlb.h +13 −0
  1596. arch/powerpc/include/asm/tlbflush.h +0 −1
  1597. arch/powerpc/include/asm/tsi108.h +1 −1
  1598. arch/powerpc/include/asm/types.h +8 −0
  1599. arch/powerpc/include/asm/uaccess.h +19 −2
  1600. arch/powerpc/include/asm/xics.h +6 −0
  1601. arch/powerpc/include/asm/xor.h +1 −0
  1602. arch/powerpc/include/uapi/asm/elf.h +5 −0
  1603. arch/powerpc/kernel/Makefile +3 −4
  1604. arch/powerpc/kernel/align.c +16 −3
  1605. arch/powerpc/kernel/asm-offsets.c +27 −53
  1606. arch/powerpc/kernel/cpu_setup_6xx.S +1 −1
  1607. arch/powerpc/kernel/cpu_setup_power.S +19 −1
  1608. arch/powerpc/kernel/cputable.c +39 −2
  1609. arch/powerpc/kernel/crash.c +10 −5
  1610. arch/powerpc/kernel/dma-iommu.c +6 −6
  1611. arch/powerpc/kernel/dma.c +9 −9
  1612. arch/powerpc/kernel/eeh_cache.c +4 −4
  1613. arch/powerpc/kernel/eeh_dev.c +3 −14
  1614. arch/powerpc/kernel/eeh_driver.c +1 −1
  1615. arch/powerpc/kernel/entry_32.S +17 −0
  1616. arch/powerpc/kernel/entry_64.S +5 −5
  1617. arch/powerpc/kernel/exceptions-64e.S +3 −3
  1618. arch/powerpc/kernel/exceptions-64s.S +40 −38
  1619. arch/powerpc/kernel/fadump.c +1 −2
  1620. arch/powerpc/kernel/ftrace.c +20 −19
  1621. arch/powerpc/kernel/head_64.S +2 −5
  1622. arch/powerpc/kernel/head_8xx.S +80 −79
  1623. arch/powerpc/kernel/hmi.c +56 −0
  1624. arch/powerpc/kernel/ibmebus.c +6 −6
  1625. arch/powerpc/kernel/idle_book3s.S +261 −112
  1626. arch/powerpc/kernel/iommu.c +6 −6
  1627. arch/powerpc/kernel/irq.c +17 −1
  1628. arch/powerpc/kernel/kprobes.c +7 −10
  1629. arch/powerpc/kernel/machine_kexec_64.c +8 −2
  1630. arch/powerpc/kernel/misc_32.S +0 −14
  1631. arch/powerpc/kernel/misc_64.S +2 −2
  1632. arch/powerpc/kernel/module_64.c +5 −4
  1633. arch/powerpc/kernel/paca.c +1 −1
  1634. arch/powerpc/kernel/pci-common.c +90 −71
  1635. arch/powerpc/kernel/pci_64.c +1 −1
  1636. arch/powerpc/kernel/pci_dn.c +28 −6
  1637. arch/powerpc/kernel/process.c +56 −13
  1638. arch/powerpc/kernel/prom.c +15 −1
  1639. arch/powerpc/kernel/ptrace.c +1616 −124
  1640. arch/powerpc/kernel/rtas-proc.c +1 −1
  1641. arch/powerpc/kernel/rtas.c +4 −4
  1642. arch/powerpc/kernel/rtasd.c +20 −8
  1643. arch/powerpc/kernel/setup-common.c +189 −1
  1644. arch/powerpc/kernel/setup.h +58 −0
  1645. arch/powerpc/kernel/setup_32.c +24 −90
  1646. arch/powerpc/kernel/setup_64.c +60 −225
  1647. arch/powerpc/kernel/signal_64.c +8 −3
  1648. arch/powerpc/kernel/smp.c +4 −0
  1649. arch/powerpc/kernel/sysfs.c +1 −1
  1650. arch/powerpc/kernel/time.c +141 −36
  1651. arch/powerpc/kernel/tm.S +1 −2
  1652. arch/powerpc/kernel/traps.c +17 −1
  1653. arch/powerpc/kernel/vector.S +5 −4
  1654. arch/powerpc/kernel/vio.c +6 −6
  1655. arch/powerpc/kernel/vmlinux.lds.S +1 −1
  1656. arch/powerpc/kvm/Makefile +1 −1
  1657. arch/powerpc/kvm/book3s_64_mmu_host.c +10 −8
  1658. arch/powerpc/kvm/book3s_64_vio.c +2 −1
  1659. arch/powerpc/kvm/book3s_hv.c +39 −2
  1660. arch/powerpc/kvm/book3s_hv_ras.c +176 −0
  1661. arch/powerpc/kvm/book3s_hv_rmhandlers.S +316 −215
  1662. arch/powerpc/kvm/book3s_interrupts.S +1 −1
  1663. arch/powerpc/kvm/book3s_pr.c +16 −6
  1664. arch/powerpc/kvm/book3s_rmhandlers.S +1 −1
  1665. arch/powerpc/kvm/booke.c +2 −2
  1666. arch/powerpc/kvm/emulate.c +0 −1
  1667. arch/powerpc/kvm/mpic.c +2 −1
  1668. arch/powerpc/kvm/powerpc.c +5 −1
  1669. arch/powerpc/lib/alloc.c +1 −1
  1670. arch/powerpc/lib/checksum_64.S +6 −6
  1671. arch/powerpc/lib/feature-fixups.c +65 −2
  1672. arch/powerpc/lib/locks.c +0 −16
  1673. arch/powerpc/lib/ppc_ksyms.c +0 −4
  1674. arch/powerpc/lib/rheap.c +1 −1
  1675. arch/powerpc/lib/string.S +3 −41
  1676. arch/powerpc/lib/vmx-helper.c +1 −0
  1677. arch/powerpc/mm/8xx_mmu.c +90 −41
  1678. arch/powerpc/mm/hash64_4k.c +10 −8
  1679. arch/powerpc/mm/hash64_64k.c +22 −17
  1680. arch/powerpc/mm/hash_native_64.c +24 −18
  1681. arch/powerpc/mm/hash_utils_64.c +108 −98
  1682. arch/powerpc/mm/hugepage-hash64.c +9 −8
  1683. arch/powerpc/mm/hugetlbpage-hash64.c +2 −2
  1684. arch/powerpc/mm/hugetlbpage-radix.c +17 −22
  1685. arch/powerpc/mm/hugetlbpage.c +7 −0
  1686. arch/powerpc/mm/init_32.c +1 −4
  1687. arch/powerpc/mm/init_64.c +22 −0
  1688. arch/powerpc/mm/mem.c +17 −1
  1689. arch/powerpc/mm/mmu_context_book3s64.c +4 −1
  1690. arch/powerpc/mm/mmu_decl.h +2 −1
  1691. arch/powerpc/mm/numa.c +26 −10
  1692. arch/powerpc/mm/pgtable-book3s64.c +5 −2
  1693. arch/powerpc/mm/pgtable-radix.c +12 −8
  1694. arch/powerpc/mm/pgtable.c +1 −1
  1695. arch/powerpc/mm/pgtable_32.c +1 −1
  1696. arch/powerpc/mm/tlb-radix.c +132 −23
  1697. arch/powerpc/mm/tlb_hash32.c +0 −11
  1698. arch/powerpc/mm/tlb_nohash.c +0 −6
  1699. arch/powerpc/net/Makefile +4 −0
  1700. arch/powerpc/net/bpf_jit.h +92 −143
  1701. arch/powerpc/net/bpf_jit32.h +139 −0
  1702. arch/powerpc/net/bpf_jit64.h +102 −0
  1703. arch/powerpc/net/bpf_jit_asm.S +1 −1
  1704. arch/powerpc/net/bpf_jit_asm64.S +180 −0
  1705. arch/powerpc/net/bpf_jit_comp.c +5 −5
  1706. arch/powerpc/net/bpf_jit_comp64.c +954 −0
  1707. arch/powerpc/oprofile/cell/spu_task_sync.c +1 −1
  1708. arch/powerpc/perf/Makefile +1 −1
  1709. arch/powerpc/perf/core-book3s.c +1 −1
  1710. arch/powerpc/perf/hv-24x7.c +1 −1
  1711. arch/powerpc/perf/hv-24x7.h +1 −1
  1712. arch/powerpc/perf/isa207-common.c +263 −0
  1713. arch/powerpc/perf/isa207-common.h +236 −0
  1714. arch/powerpc/perf/power8-pmu.c +7 −470
  1715. arch/powerpc/perf/power9-events-list.h +55 −0
  1716. arch/powerpc/perf/power9-pmu.c +330 −0
  1717. arch/powerpc/platforms/40x/ep405.c +1 −3
  1718. arch/powerpc/platforms/40x/ppc40x_simple.c +1 −1
  1719. arch/powerpc/platforms/40x/virtex.c +1 −3
  1720. arch/powerpc/platforms/40x/walnut.c +1 −3
  1721. arch/powerpc/platforms/44x/canyonlands.c +2 −3
  1722. arch/powerpc/platforms/44x/ebony.c +1 −3
  1723. arch/powerpc/platforms/44x/iss4xx.c +1 −3
  1724. arch/powerpc/platforms/44x/ppc44x_simple.c +1 −2
  1725. arch/powerpc/platforms/44x/ppc476.c +4 −6
  1726. arch/powerpc/platforms/44x/sam440ep.c +1 −3
  1727. arch/powerpc/platforms/44x/virtex.c +1 −3
  1728. arch/powerpc/platforms/44x/warp.c +1 −3
  1729. arch/powerpc/platforms/512x/clock-commonclk.c +1 −1
  1730. arch/powerpc/platforms/512x/mpc5121_ads.c +5 −3
  1731. arch/powerpc/platforms/512x/mpc512x.h +1 −1
  1732. arch/powerpc/platforms/512x/mpc512x_generic.c +6 −2
  1733. arch/powerpc/platforms/512x/mpc512x_shared.c +1 −1
  1734. arch/powerpc/platforms/512x/pdm360ng.c +5 −3
  1735. arch/powerpc/platforms/52xx/efika.c +1 −2
  1736. arch/powerpc/platforms/52xx/lite5200.c +1 −1
  1737. arch/powerpc/platforms/52xx/media5200.c +1 −1
  1738. arch/powerpc/platforms/52xx/mpc5200_simple.c +1 −1
  1739. arch/powerpc/platforms/52xx/mpc52xx_common.c +1 −2
  1740. arch/powerpc/platforms/82xx/ep8248e.c +1 −2
  1741. arch/powerpc/platforms/82xx/km82xx.c +1 −2
  1742. arch/powerpc/platforms/82xx/mpc8272_ads.c +1 −2
  1743. arch/powerpc/platforms/82xx/pq2.c +1 −1
  1744. arch/powerpc/platforms/82xx/pq2.h +1 −1
  1745. arch/powerpc/platforms/82xx/pq2fads.c +1 −2
  1746. arch/powerpc/platforms/83xx/asp834x.c +1 −2
  1747. arch/powerpc/platforms/83xx/km83xx.c +1 −2
  1748. arch/powerpc/platforms/83xx/misc.c +1 −1
  1749. arch/powerpc/platforms/83xx/mpc830x_rdb.c +1 −1
  1750. arch/powerpc/platforms/83xx/mpc831x_rdb.c +1 −1
  1751. arch/powerpc/platforms/83xx/mpc832x_mds.c +1 −3
  1752. arch/powerpc/platforms/83xx/mpc832x_rdb.c +1 −3
  1753. arch/powerpc/platforms/83xx/mpc834x_itx.c +1 −3
  1754. arch/powerpc/platforms/83xx/mpc834x_mds.c +1 −3
  1755. arch/powerpc/platforms/83xx/mpc836x_mds.c +1 −3
  1756. arch/powerpc/platforms/83xx/mpc836x_rdk.c +1 −3
  1757. arch/powerpc/platforms/83xx/mpc837x_mds.c +1 −3
  1758. arch/powerpc/platforms/83xx/mpc837x_rdb.c +1 −1
  1759. arch/powerpc/platforms/83xx/mpc83xx.h +1 −1
  1760. arch/powerpc/platforms/83xx/sbc834x.c +1 −3
  1761. arch/powerpc/platforms/85xx/bsc913x_qds.c +1 −3
  1762. arch/powerpc/platforms/85xx/bsc913x_rdb.c +1 −3
  1763. arch/powerpc/platforms/85xx/c293pcie.c +1 −3
  1764. arch/powerpc/platforms/85xx/corenet_generic.c +2 −3
  1765. arch/powerpc/platforms/85xx/ge_imp3a.c +2 −5
  1766. arch/powerpc/platforms/85xx/ksi8560.c +2 −4
  1767. arch/powerpc/platforms/85xx/mpc8536_ds.c +1 −3
  1768. arch/powerpc/platforms/85xx/mpc85xx_ads.c +1 −3
  1769. arch/powerpc/platforms/85xx/mpc85xx_cds.c +2 −4
  1770. arch/powerpc/platforms/85xx/mpc85xx_ds.c +4 −12
  1771. arch/powerpc/platforms/85xx/mpc85xx_mds.c +3 −9
  1772. arch/powerpc/platforms/85xx/mpc85xx_rdb.c +11 −32
  1773. arch/powerpc/platforms/85xx/mvme2500.c +1 −3
  1774. arch/powerpc/platforms/85xx/p1010rdb.c +2 −4
  1775. arch/powerpc/platforms/85xx/p1022_ds.c +1 −3
  1776. arch/powerpc/platforms/85xx/p1022_rdk.c +1 −3
  1777. arch/powerpc/platforms/85xx/p1023_rdb.c +1 −3
  1778. arch/powerpc/platforms/85xx/ppa8548.c +1 −3
  1779. arch/powerpc/platforms/85xx/qemu_e500.c +1 −3
  1780. arch/powerpc/platforms/85xx/sbc8548.c +1 −3
  1781. arch/powerpc/platforms/85xx/socrates.c +1 −3
  1782. arch/powerpc/platforms/85xx/stx_gp3.c +1 −3
  1783. arch/powerpc/platforms/85xx/tqm85xx.c +1 −1
  1784. arch/powerpc/platforms/85xx/twr_p102x.c +1 −3
  1785. arch/powerpc/platforms/85xx/xes_mpc85xx.c +3 −9
  1786. arch/powerpc/platforms/86xx/Kconfig +7 −1
  1787. arch/powerpc/platforms/86xx/Makefile +1 −0
  1788. arch/powerpc/platforms/86xx/gef_ppc9a.c +1 −3
  1789. arch/powerpc/platforms/86xx/gef_sbc310.c +1 −3
  1790. arch/powerpc/platforms/86xx/gef_sbc610.c +1 −3
  1791. arch/powerpc/platforms/86xx/mpc8610_hpcd.c +1 −3
  1792. arch/powerpc/platforms/86xx/mpc86xx_hpcn.c +2 −4
  1793. arch/powerpc/platforms/86xx/mvme7100.c +121 −0
  1794. arch/powerpc/platforms/86xx/sbc8641d.c +1 −3
  1795. arch/powerpc/platforms/8xx/adder875.c +1 −2
  1796. arch/powerpc/platforms/8xx/ep88xc.c +1 −2
  1797. arch/powerpc/platforms/8xx/m8xx_setup.c +1 −1
  1798. arch/powerpc/platforms/8xx/mpc86xads_setup.c +1 −2
  1799. arch/powerpc/platforms/8xx/mpc885ads_setup.c +1 −2
  1800. arch/powerpc/platforms/8xx/mpc8xx.h +1 −1
  1801. arch/powerpc/platforms/8xx/tqm8xx_setup.c +1 −3
  1802. arch/powerpc/platforms/Kconfig +11 −0
  1803. arch/powerpc/platforms/Kconfig.cputype +0 −1
  1804. arch/powerpc/platforms/amigaone/setup.c +2 −4
  1805. arch/powerpc/platforms/cell/iommu.c +16 −16
  1806. arch/powerpc/platforms/cell/pervasive.c +1 −0
  1807. arch/powerpc/platforms/cell/setup.c +2 −5
  1808. arch/powerpc/platforms/cell/spider-pic.c +1 −1
  1809. arch/powerpc/platforms/cell/spu_base.c +2 −2
  1810. arch/powerpc/platforms/cell/spu_manage.c +1 −2
  1811. arch/powerpc/platforms/cell/spufs/file.c +1 −1
  1812. arch/powerpc/platforms/cell/spufs/run.c +1 −1
  1813. arch/powerpc/platforms/cell/spufs/sched.c +1 −1
  1814. arch/powerpc/platforms/chrp/setup.c +4 −3
  1815. arch/powerpc/platforms/embedded6xx/c2k.c +5 −5
  1816. arch/powerpc/platforms/embedded6xx/gamecube.c +6 −13
  1817. arch/powerpc/platforms/embedded6xx/holly.c +2 −4
  1818. arch/powerpc/platforms/embedded6xx/linkstation.c +4 −8
  1819. arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c +2 −4
  1820. arch/powerpc/platforms/embedded6xx/mvme5100.c +2 −4
  1821. arch/powerpc/platforms/embedded6xx/storcenter.c +2 −4
  1822. arch/powerpc/platforms/embedded6xx/wii.c +6 −13
  1823. arch/powerpc/platforms/maple/pci.c +21 −13
  1824. arch/powerpc/platforms/maple/setup.c +9 −28
  1825. arch/powerpc/platforms/pasemi/iommu.c +6 −11
  1826. arch/powerpc/platforms/pasemi/pasemi.h +0 −1
  1827. arch/powerpc/platforms/pasemi/pci.c +0 −3
  1828. arch/powerpc/platforms/pasemi/setup.c +4 −14
  1829. arch/powerpc/platforms/powermac/low_i2c.c +1 −1
  1830. arch/powerpc/platforms/powermac/pci.c +24 −14
  1831. arch/powerpc/platforms/powermac/setup.c +14 −44
  1832. arch/powerpc/platforms/powermac/smp.c +1 −2
  1833. arch/powerpc/platforms/powernv/Makefile +1 −0
  1834. arch/powerpc/platforms/powernv/eeh-powernv.c +44 −5
  1835. arch/powerpc/platforms/powernv/idle.c +159 −29
  1836. arch/powerpc/platforms/powernv/npu-dma.c +8 −8
  1837. arch/powerpc/platforms/powernv/opal-async.c +5 −0
  1838. arch/powerpc/platforms/powernv/opal-memory-errors.c +1 −1
  1839. arch/powerpc/platforms/powernv/opal-sensor.c +1 −1
  1840. arch/powerpc/platforms/powernv/opal-sysparam.c +2 −2
  1841. arch/powerpc/platforms/powernv/opal-tracepoints.c +1 −0
  1842. arch/powerpc/platforms/powernv/opal-wrappers.S +40 −34
  1843. arch/powerpc/platforms/powernv/opal.c +20 −10
  1844. arch/powerpc/platforms/powernv/pci-cxl.c +385 −0
  1845. arch/powerpc/platforms/powernv/pci-ioda.c +513 −396
  1846. arch/powerpc/platforms/powernv/pci.c +126 −8
  1847. arch/powerpc/platforms/powernv/pci.h +30 −15
  1848. arch/powerpc/platforms/powernv/powernv.h +1 −0
  1849. arch/powerpc/platforms/powernv/setup.c +5 −11
  1850. arch/powerpc/platforms/powernv/smp.c +3 −1
  1851. arch/powerpc/platforms/ps3/device-init.c +1 −1
  1852. arch/powerpc/platforms/ps3/htab.c +6 −6
  1853. arch/powerpc/platforms/ps3/repository.c +1 −1
  1854. arch/powerpc/platforms/ps3/setup.c +12 −11
  1855. arch/powerpc/platforms/ps3/system-bus.c +9 −9
  1856. arch/powerpc/platforms/ps3/time.c +1 −1
  1857. arch/powerpc/platforms/pseries/cmm.c +1 −1
  1858. arch/powerpc/platforms/pseries/dlpar.c +55 −1
  1859. arch/powerpc/platforms/pseries/eeh_pseries.c +1 −1
  1860. arch/powerpc/platforms/pseries/event_sources.c +13 −40
  1861. arch/powerpc/platforms/pseries/firmware.c +46 −2
  1862. arch/powerpc/platforms/pseries/hotplug-cpu.c +0 −13
  1863. arch/powerpc/platforms/pseries/hotplug-memory.c +104 −80
  1864. arch/powerpc/platforms/pseries/io_event_irq.c +1 −1
  1865. arch/powerpc/platforms/pseries/iommu.c +4 −55
  1866. arch/powerpc/platforms/pseries/kexec.c +1 −22
  1867. arch/powerpc/platforms/pseries/lpar.c +13 −28
  1868. arch/powerpc/platforms/pseries/nvram.c +0 −2
  1869. arch/powerpc/platforms/pseries/power.c +2 −0
  1870. arch/powerpc/platforms/pseries/pseries.h +5 −16
  1871. arch/powerpc/platforms/pseries/pseries_energy.c +4 −4
  1872. arch/powerpc/platforms/pseries/ras.c +39 −0
  1873. arch/powerpc/platforms/pseries/setup.c +58 −183
  1874. arch/powerpc/platforms/pseries/smp.c +5 −26
  1875. arch/powerpc/sysdev/cpm_common.c +17 −5
  1876. arch/powerpc/sysdev/dart_iommu.c +89 −97
  1877. arch/powerpc/sysdev/fsl_85xx_l2ctlr.c +2 −6
  1878. arch/powerpc/sysdev/fsl_rio.c +8 −17
  1879. arch/powerpc/sysdev/fsl_soc.c +5 −3
  1880. arch/powerpc/sysdev/fsl_soc.h +3 −3
  1881. arch/powerpc/sysdev/msi_bitmap.c +1 −1
  1882. arch/powerpc/sysdev/xics/Makefile +1 −1
  1883. arch/powerpc/sysdev/xics/icp-opal.c +144 −0
  1884. arch/powerpc/sysdev/xics/xics-common.c +4 −1
  1885. arch/powerpc/xmon/ppc-dis.c +1 −0
  1886. arch/powerpc/xmon/xmon.c +89 −18
  1887. arch/s390/Kconfig +1 −0
  1888. arch/s390/boot/compressed/Makefile +3 −3
  1889. arch/s390/hypfs/hypfs_diag.c +107 −270
  1890. arch/s390/include/asm/cpacf.h +10 −0
  1891. arch/s390/include/asm/diag.h +149 −0
  1892. arch/s390/include/asm/dma-mapping.h +0 −1
  1893. arch/s390/include/asm/elf.h +1 −0
  1894. arch/s390/include/asm/gmap.h +76 −6
  1895. arch/s390/include/asm/kvm_host.h +30 −3
  1896. arch/s390/include/asm/mmu.h +7 −4
  1897. arch/s390/include/asm/mmu_context.h +2 −1
  1898. arch/s390/include/asm/page.h +6 −3
  1899. arch/s390/include/asm/pgalloc.h +2 −0
  1900. arch/s390/include/asm/pgtable.h +25 −12
  1901. arch/s390/include/asm/processor.h +2 −0
  1902. arch/s390/include/asm/sclp.h +20 −3
  1903. arch/s390/include/uapi/asm/auxvec.h +2 −0
  1904. arch/s390/include/uapi/asm/kvm.h +41 −0
  1905. arch/s390/include/uapi/asm/sie.h +1 −0
  1906. arch/s390/kernel/Makefile +8 −3
  1907. arch/s390/kernel/als.c +124 −0
  1908. arch/s390/kernel/diag.c +39 −0
  1909. arch/s390/kernel/entry.h +2 −0
  1910. arch/s390/kernel/head.S +4 −39
  1911. arch/s390/kernel/kprobes.c +12 −0
  1912. arch/s390/kernel/sclp.c +3 −2
  1913. arch/s390/kvm/Makefile +1 −1
  1914. arch/s390/kvm/diag.c +5 −0
  1915. arch/s390/kvm/gaccess.c +320 −67
  1916. arch/s390/kvm/gaccess.h +3 −0
  1917. arch/s390/kvm/guestdbg.c +18 −1
  1918. arch/s390/kvm/intercept.c +31 −2
  1919. arch/s390/kvm/interrupt.c +22 −12
  1920. arch/s390/kvm/kvm-s390.c +346 −58
  1921. arch/s390/kvm/kvm-s390.h +21 −1
  1922. arch/s390/kvm/priv.c +193 −33
  1923. arch/s390/kvm/sigp.c +5 −5
  1924. arch/s390/kvm/sthyi.c +471 −0
  1925. arch/s390/kvm/trace.h +46 −3
  1926. arch/s390/kvm/vsie.c +1091 −0
  1927. arch/s390/lib/uaccess.c +2 −0
  1928. arch/s390/mm/fault.c +2 −0
  1929. arch/s390/mm/gmap.c +1514 −88
  1930. arch/s390/mm/hugetlbpage.c +38 −14
  1931. arch/s390/mm/pgalloc.c +31 −8
  1932. arch/s390/mm/pgtable.c +174 −35
  1933. arch/s390/numa/mode_emu.c +4 −0
  1934. arch/s390/numa/numa.c +7 −1
  1935. arch/s390/pci/pci_dma.c +12 −11
  1936. arch/s390/tools/gen_facilities.c +0 −1
  1937. arch/score/mm/init.c +1 −1
  1938. arch/sh/Kconfig +34 −0
  1939. arch/sh/Makefile +3 −0
  1940. arch/sh/boards/Kconfig +1 −0
  1941. arch/sh/boards/board-secureedge5410.c +1 −2
  1942. arch/sh/boards/of-generic.c +12 −3
  1943. arch/sh/boot/dts/Makefile +3 −0
  1944. arch/sh/boot/dts/j2_mimas_v2.dts +96 −0
  1945. arch/sh/configs/j2_defconfig +40 −0
  1946. arch/sh/drivers/heartbeat.c +3 −29
  1947. arch/sh/drivers/pci/pci.c +2 −2
  1948. arch/sh/include/asm/atomic.h +8 −0
  1949. arch/sh/include/asm/barrier.h +5 −0
  1950. arch/sh/include/asm/bitops-cas.h +93 −0
  1951. arch/sh/include/asm/bitops.h +2 −0
  1952. arch/sh/include/asm/cmpxchg-cas.h +24 −0
  1953. arch/sh/include/asm/cmpxchg-xchg.h +1 −1
  1954. arch/sh/include/asm/cmpxchg.h +2 −0
  1955. arch/sh/include/asm/dma-mapping.h +2 −2
  1956. arch/sh/include/asm/futex-cas.h +34 −0
  1957. arch/sh/include/asm/futex-irq.h +0 −86
  1958. arch/sh/include/asm/futex-llsc.h +41 −0
  1959. arch/sh/include/asm/futex.h +59 −38
  1960. arch/sh/include/asm/mc146818rtc.h +0 −7
  1961. arch/sh/include/asm/processor.h +1 −1
  1962. arch/sh/include/asm/rtc.h +0 −11
  1963. arch/sh/include/asm/spinlock-cas.h +117 −0
  1964. arch/sh/include/asm/spinlock-llsc.h +224 −0
  1965. arch/sh/include/asm/spinlock.h +6 −216
  1966. arch/sh/include/asm/thread_info.h +0 −26
  1967. arch/sh/include/uapi/asm/cpu-features.h +1 −0
  1968. arch/sh/include/uapi/asm/sigcontext.h +0 −3
  1969. arch/sh/include/uapi/asm/unistd_32.h +15 −1
  1970. arch/sh/include/uapi/asm/unistd_64.h +15 −1
  1971. arch/sh/kernel/cpu/clock.c +4 −0
  1972. arch/sh/kernel/cpu/init.c +5 −1
  1973. arch/sh/kernel/cpu/proc.c +1 −0
  1974. arch/sh/kernel/cpu/sh2/Makefile +4 −0
  1975. arch/sh/kernel/cpu/sh2/entry.S +55 −0
  1976. arch/sh/kernel/cpu/sh2/probe.c +38 −1
  1977. arch/sh/kernel/cpu/sh2/smp-j2.c +139 −0
  1978. arch/sh/kernel/dma-nommu.c +2 −2
  1979. arch/sh/kernel/dwarf.c +2 −4
  1980. arch/sh/kernel/head_32.S +3 −3
  1981. arch/sh/kernel/setup.c +5 −1
  1982. arch/sh/kernel/syscalls_32.S +14 −0
  1983. arch/sh/kernel/syscalls_64.S +14 −0
  1984. arch/sh/kernel/time.c +21 −15
  1985. arch/sh/mm/Makefile +2 −1
  1986. arch/sh/mm/asids-debugfs.c +1 −4
  1987. arch/sh/mm/cache-j2.c +65 −0
  1988. arch/sh/mm/cache.c +12 −1
  1989. arch/sh/mm/consistent.c +2 −2
  1990. arch/sh/mm/ioremap.c +1 −1
  1991. arch/sparc/Kconfig +1 −0
  1992. arch/sparc/include/asm/io_32.h +0 −10
  1993. arch/sparc/include/asm/pci_64.h +0 −3
  1994. arch/sparc/include/asm/thread_info_64.h +0 −24
  1995. arch/sparc/include/asm/uaccess_32.h +10 −4
  1996. arch/sparc/include/asm/uaccess_64.h +9 −2
  1997. arch/sparc/kernel/iommu.c +6 −6
  1998. arch/sparc/kernel/ioport.c +12 −12
  1999. arch/sparc/kernel/pci.c +11 −9
  2000. arch/sparc/kernel/pci_sun4v.c +6 −6
  2001. arch/sparc/kernel/vmlinux.lds.S +7 −0
  2002. arch/tile/include/asm/thread_info.h +0 −27
  2003. arch/tile/kernel/pci-dma.c +14 −14
  2004. arch/tile/kernel/vmlinux.lds.S +12 −0
  2005. arch/um/Kconfig.common +4 −2
  2006. arch/um/Makefile +2 −2
  2007. arch/um/include/asm/irqflags.h +7 −11
  2008. arch/um/kernel/Makefile +5 −0
  2009. arch/um/kernel/initrd.c +0 −2
  2010. arch/um/kernel/um_arch.c +4 −4
  2011. arch/um/os-Linux/Makefile +3 −0
  2012. arch/um/os-Linux/signal.c +3 −2
  2013. arch/unicore32/kernel/pci.c +2 −7
  2014. arch/unicore32/mm/dma-swiotlb.c +2 −2
  2015. arch/x86/Kconfig +4 −0
  2016. arch/x86/boot/Makefile +1 −1
  2017. arch/x86/entry/common.c +5 −1
  2018. arch/x86/entry/syscalls/syscall_32.tbl +1 −1
  2019. arch/x86/entry/vdso/Makefile +2 −1
  2020. arch/x86/entry/vdso/vclock_gettime.c +5 −20
  2021. arch/x86/entry/vdso/vdso2c.h +6 −0
  2022. arch/x86/events/amd/ibs.c +2 −1
  2023. arch/x86/events/amd/iommu.c +1 −1
  2024. arch/x86/events/core.c +9 −5
  2025. arch/x86/events/intel/uncore.c +2 −0
  2026. arch/x86/events/intel/uncore.h +0 −1
  2027. arch/x86/include/asm/dma-mapping.h +2 −3
  2028. arch/x86/include/asm/elf.h +2 −2
  2029. arch/x86/include/asm/fpu/internal.h +8 −8
  2030. arch/x86/include/asm/kvm_host.h +24 −7
  2031. arch/x86/include/asm/livepatch.h +0 −1
  2032. arch/x86/include/asm/mc146818rtc.h +0 −1
  2033. arch/x86/include/asm/mmu_context.h +1 −1
  2034. arch/x86/include/asm/pvclock.h +23 −16
  2035. arch/x86/include/asm/rtc.h +0 −1
  2036. arch/x86/include/asm/svm.h +0 −1
  2037. arch/x86/include/asm/swiotlb.h +2 −2
  2038. arch/x86/include/asm/syscall.h +1 −4
  2039. arch/x86/include/asm/thread_info.h +47 −24
  2040. arch/x86/include/asm/topology.h +1 −0
  2041. arch/x86/include/asm/uaccess.h +14 −12
  2042. arch/x86/include/asm/uaccess_32.h +2 −0
  2043. arch/x86/include/asm/uaccess_64.h +2 −0
  2044. arch/x86/include/asm/virtext.h +2 −6
  2045. arch/x86/include/asm/xen/page-coherent.h +4 −5
  2046. arch/x86/kernel/acpi/boot.c +1 −1
  2047. arch/x86/kernel/acpi/cstate.c +1 −1
  2048. arch/x86/kernel/amd_gart_64.c +10 −11
  2049. arch/x86/kernel/amd_nb.c +1 −1
  2050. arch/x86/kernel/apic/apic.c +2 −2
  2051. arch/x86/kernel/apic/apic_flat_64.c +1 −1
  2052. arch/x86/kernel/apic/apic_noop.c +0 −1
  2053. arch/x86/kernel/apic/hw_nmi.c +1 −1
  2054. arch/x86/kernel/apic/io_apic.c +1 −1
  2055. arch/x86/kernel/apic/ipi.c +0 −1
  2056. arch/x86/kernel/apic/probe_32.c +1 −1
  2057. arch/x86/kernel/apic/probe_64.c +1 −2
  2058. arch/x86/kernel/apic/vector.c +1 −1
  2059. arch/x86/kernel/apic/x2apic_uv_x.c +1 −1
  2060. arch/x86/kernel/cpu/common.c +1 −1
  2061. arch/x86/kernel/cpu/hypervisor.c +2 −1
  2062. arch/x86/kernel/cpu/intel.c +1 −1
  2063. arch/x86/kernel/cpu/match.c +1 −1
  2064. arch/x86/kernel/cpu/mshyperv.c +2 −1
  2065. arch/x86/kernel/cpu/mtrr/cleanup.c +0 −1
  2066. arch/x86/kernel/cpu/mtrr/generic.c +1 −1
  2067. arch/x86/kernel/cpu/mtrr/if.c +0 −1
  2068. arch/x86/kernel/cpu/mtrr/main.c +1 −1
  2069. arch/x86/kernel/cpu/perfctr-watchdog.c +1 −1
  2070. arch/x86/kernel/cpu/vmware.c +2 −1
  2071. arch/x86/kernel/crash.c +1 −1
  2072. arch/x86/kernel/dumpstack_32.c +1 −1
  2073. arch/x86/kernel/dumpstack_64.c +1 −1
  2074. arch/x86/kernel/early-quirks.c +194 −210
  2075. arch/x86/kernel/fpu/signal.c +6 −6
  2076. arch/x86/kernel/hpet.c +1 −2
  2077. arch/x86/kernel/hw_breakpoint.c +2 −1
  2078. arch/x86/kernel/i386_ksyms_32.c +2 −1
  2079. arch/x86/kernel/i8253.c +1 −1
  2080. arch/x86/kernel/io_delay.c +1 −1
  2081. arch/x86/kernel/irq_32.c +0 −1
  2082. arch/x86/kernel/irq_64.c +0 −1
  2083. arch/x86/kernel/kdebugfs.c +1 −1
  2084. arch/x86/kernel/kvm.c +1 −1
  2085. arch/x86/kernel/mpparse.c +0 −1
  2086. arch/x86/kernel/nmi.c +1 −0
  2087. arch/x86/kernel/paravirt-spinlocks.c +1 −1
  2088. arch/x86/kernel/paravirt.c +2 −1
  2089. arch/x86/kernel/pci-calgary_64.c +7 −7
  2090. arch/x86/kernel/pci-dma.c +2 −2
  2091. arch/x86/kernel/pci-nommu.c +2 −2
  2092. arch/x86/kernel/pci-swiotlb.c +3 −3
  2093. arch/x86/kernel/pmem.c +1 −1
  2094. arch/x86/kernel/process.c +2 −1
  2095. arch/x86/kernel/process_32.c +1 −1
  2096. arch/x86/kernel/process_64.c +1 −1
  2097. arch/x86/kernel/ptrace.c +9 −6
  2098. arch/x86/kernel/pvclock.c +6 −11
  2099. arch/x86/kernel/reboot.c +1 −1
  2100. arch/x86/kernel/rtc.c +1 −2
  2101. arch/x86/kernel/setup.c +1 −1
  2102. arch/x86/kernel/signal.c +31 −9
  2103. arch/x86/kernel/smpboot.c +1 −1
  2104. arch/x86/kernel/stacktrace.c +1 −1
  2105. arch/x86/kernel/test_rodata.c +0 −5
  2106. arch/x86/kernel/traps.c +1 −1
  2107. arch/x86/kernel/tsc.c +1 −1
  2108. arch/x86/kernel/x8664_ksyms_64.c +2 −1
  2109. arch/x86/kernel/x86_init.c +1 −1
  2110. arch/x86/kvm/Kconfig +0 −1
  2111. arch/x86/kvm/cpuid.c +1 −1
  2112. arch/x86/kvm/emulate.c +0 −1
  2113. arch/x86/kvm/i8254.c +3 −1
  2114. arch/x86/kvm/iommu.c +1 −3
  2115. arch/x86/kvm/irq.c +1 −1
  2116. arch/x86/kvm/irq.h +3 −0
  2117. arch/x86/kvm/irq_comm.c +32 −17
  2118. arch/x86/kvm/lapic.c +331 −213
  2119. arch/x86/kvm/lapic.h +15 −4
  2120. arch/x86/kvm/mmu.c +19 −13
  2121. arch/x86/kvm/mmu.h +0 −5
  2122. arch/x86/kvm/paging_tmpl.h +8 −2
  2123. arch/x86/kvm/pmu_intel.c +1 −1
  2124. arch/x86/kvm/svm.c +7 −1
  2125. arch/x86/kvm/trace.h +15 −0
  2126. arch/x86/kvm/vmx.c +347 −54
  2127. arch/x86/kvm/x86.c +105 −73
  2128. arch/x86/lib/cache-smp.c +1 −1
  2129. arch/x86/lib/cpu.c +2 −1
  2130. arch/x86/lib/csum-partial_64.c +1 −1
  2131. arch/x86/lib/csum-wrappers_64.c +1 −1
  2132. arch/x86/lib/delay.c +1 −1
  2133. arch/x86/lib/hweight.S +2 −0
  2134. arch/x86/lib/memcpy_32.c +1 −1
  2135. arch/x86/lib/mmx_32.c +1 −1
  2136. arch/x86/lib/msr-reg-export.c +1 −1
  2137. arch/x86/lib/msr-smp.c +1 −1
  2138. arch/x86/lib/msr.c +2 −1
  2139. arch/x86/lib/string_32.c +1 −1
  2140. arch/x86/lib/usercopy.c +1 −1
  2141. arch/x86/lib/usercopy_32.c +1 −1
  2142. arch/x86/lib/usercopy_64.c +1 −1
  2143. arch/x86/mm/amdtopology.c +0 −1
  2144. arch/x86/mm/dump_pagetables.c +1 −5
  2145. arch/x86/mm/highmem_32.c +1 −1
  2146. arch/x86/mm/init.c +2 −2
  2147. arch/x86/mm/init_32.c +0 −1
  2148. arch/x86/mm/init_64.c +0 −1
  2149. arch/x86/mm/iomap_32.c +1 −1
  2150. arch/x86/mm/ioremap.c +0 −1
  2151. arch/x86/mm/kmemcheck/kmemcheck.c +0 −1
  2152. arch/x86/mm/kmemcheck/shadow.c +1 −1
  2153. arch/x86/mm/kmmio.c +1 −1
  2154. arch/x86/mm/mmio-mod.c +1 −1
  2155. arch/x86/mm/numa.c +0 −1
  2156. arch/x86/mm/numa_32.c +1 −1
  2157. arch/x86/mm/pat.c +0 −1
  2158. arch/x86/mm/pat_rbtree.c +0 −1
  2159. arch/x86/mm/pf_in.c +0 −1
  2160. arch/x86/mm/pgtable_32.c +0 −1
  2161. arch/x86/mm/physaddr.c +1 −1
  2162. arch/x86/mm/srat.c +1 −1
  2163. arch/x86/mm/tlb.c +1 −1
  2164. arch/x86/pci/common.c +1 −1
  2165. arch/x86/pci/sta2x11-fixup.c +1 −1
  2166. arch/x86/pci/vmd.c +33 −24
  2167. arch/x86/pci/xen.c +1 −1
  2168. arch/x86/platform/ce4100/ce4100.c +0 −2
  2169. arch/x86/platform/efi/early_printk.c +2 −2
  2170. arch/x86/platform/efi/efi.c +0 −1
  2171. arch/x86/platform/efi/efi_64.c +2 −1
  2172. arch/x86/platform/intel-mid/intel-mid.c +1 −1
  2173. arch/x86/platform/intel-mid/intel_mid_vrtc.c +1 −0
  2174. arch/x86/platform/intel-mid/pwr.c +1 −3
  2175. arch/x86/platform/intel-mid/sfi.c +1 −1
  2176. arch/x86/platform/olpc/olpc.c +1 −1
  2177. arch/x86/platform/olpc/olpc_ofw.c +4 −1
  2178. arch/x86/platform/ts5500/ts5500.c +1 −5
  2179. arch/x86/platform/uv/uv_irq.c +1 −1
  2180. arch/x86/platform/uv/uv_nmi.c +1 −1
  2181. arch/x86/power/hibernate_64.c +9 −9
  2182. arch/x86/power/hibernate_asm_64.S +0 −2
  2183. arch/x86/purgatory/Makefile +2 −0
  2184. arch/x86/realmode/rm/Makefile +1 −1
  2185. arch/x86/um/delay.c +1 −1
  2186. arch/x86/um/vdso/Makefile +3 −0
  2187. arch/x86/xen/debugfs.c +0 −1
  2188. arch/x86/xen/enlighten.c +3 −4
  2189. arch/x86/xen/mmu.c +2 −1
  2190. arch/x86/xen/p2m.c +1 −1
  2191. arch/x86/xen/platform-pci-unplug.c +1 −1
  2192. arch/x86/xen/setup.c +1 −1
  2193. arch/xtensa/kernel/pci-dma.c +6 −6
  2194. block/Kconfig +0 −13
  2195. block/bio-integrity.c +1 −1
  2196. block/bio.c +18 −3
  2197. block/blk-core.c +13 −13
  2198. block/blk-merge.c +4 −4
  2199. block/blk-mq-sysfs.c +8 −4
  2200. block/blk-mq.c +19 −6
  2201. block/blk-throttle.c +4 −9
  2202. block/cfq-iosched.c +2 −2
  2203. block/genhd.c +2 −1
  2204. drivers/Makefile +1 −0
  2205. drivers/acpi/Kconfig +3 −0
  2206. drivers/acpi/Makefile +1 −0
  2207. drivers/acpi/acpi_cmos_rtc.c +1 −1
  2208. drivers/acpi/button.c +4 −0
  2209. drivers/acpi/ec.c +37 −4
  2210. drivers/acpi/osl.c +2 −3
  2211. drivers/acpi/pci_mcfg.c +92 −0
  2212. drivers/acpi/pci_root.c +35 −0
  2213. drivers/base/firmware_class.c +127 −56
  2214. drivers/base/node.c +1 −1
  2215. drivers/base/power/opp/core.c +19 −12
  2216. drivers/base/power/trace.c +3 −3
  2217. drivers/base/power/wakeup.c +7 −11
  2218. drivers/base/property.c +28 −0
  2219. drivers/block/brd.c +8 −11
  2220. drivers/block/drbd/drbd_actlog.c +0 −1
  2221. drivers/block/drbd/drbd_int.h +1 −0
  2222. drivers/block/drbd/drbd_main.c +4 −4
  2223. drivers/block/drbd/drbd_receiver.c +1 −1
  2224. drivers/block/drbd/drbd_req.c +3 −3
  2225. drivers/block/drbd/drbd_worker.c +1 −1
  2226. drivers/block/floppy.c +9 −12
  2227. drivers/block/loop.c +30 −37
  2228. drivers/block/nbd.c +4 −8
  2229. drivers/block/pktcdvd.c +1 −1
  2230. drivers/block/rbd.c +8 −7
  2231. drivers/block/umem.c +1 −1
  2232. drivers/block/zram/zram_drv.c +16 −13
  2233. drivers/bus/Kconfig +13 −0
  2234. drivers/bus/Makefile +1 −0
  2235. drivers/bus/mvebu-mbus.c +5 −5
  2236. drivers/bus/tegra-aconnect.c +112 −0
  2237. drivers/char/Kconfig +15 −27
  2238. drivers/char/Makefile +1 −1
  2239. drivers/char/agp/intel-gtt.c +8 −0
  2240. drivers/char/genrtc.c +0 −539
  2241. drivers/char/powernv-op-panel.c +223 −0
  2242. drivers/char/random.c +2 −3
  2243. drivers/clk/clk-clps711x.c +1 −1
  2244. drivers/clk/clkdev.c +2 −2
  2245. drivers/clk/ti/clk-33xx.c +3 −0
  2246. drivers/clk/ti/clk-43xx.c +7 −0
  2247. drivers/clk/ux500/u8500_of_clk.c +2 −14
  2248. drivers/clk/ux500/u8540_clk.c +2 −14
  2249. drivers/clk/ux500/u9540_clk.c +2 −2
  2250. drivers/clocksource/clps711x-timer.c +1 −1
  2251. drivers/cpufreq/Kconfig +0 −1
  2252. drivers/cpufreq/intel_pstate.c +2 −0
  2253. drivers/cpufreq/s5pv210-cpufreq.c +34 −34
  2254. drivers/cpuidle/cpuidle-powernv.c +81 −20
  2255. drivers/crypto/marvell/cesa.c +4 −3
  2256. drivers/crypto/marvell/cipher.c +7 −18
  2257. drivers/crypto/marvell/hash.c +6 −6
  2258. drivers/crypto/vmx/Kconfig +1 −1
  2259. drivers/crypto/vmx/vmx.c +2 −4
  2260. drivers/dma-buf/Kconfig +12 −3
  2261. drivers/dma-buf/Makefile +1 −1
  2262. drivers/dma-buf/dma-buf.c +25 −34
  2263. drivers/dma-buf/fence-array.c +144 −0
  2264. drivers/dma-buf/fence.c +4 −4
  2265. drivers/dma-buf/sync_file.c +1 −1
  2266. drivers/firmware/Kconfig +11 −1
  2267. drivers/firmware/Makefile +1 −0
  2268. drivers/firmware/arm_scpi.c +34 −8
  2269. drivers/firmware/broadcom/bcm47xx_sprom.c +1 −1
  2270. drivers/firmware/qcom_scm-32.c +194 −133
  2271. drivers/firmware/qcom_scm-64.c +302 −5
  2272. drivers/firmware/qcom_scm.c +342 −11
  2273. drivers/firmware/qcom_scm.h +43 −4
  2274. drivers/firmware/scpi_pm_domain.c +163 −0
  2275. drivers/fpga/Kconfig +1 −0
  2276. drivers/gpu/drm/Makefile +3 −2
  2277. drivers/gpu/drm/amd/amdgpu/amdgpu.h +77 −35
  2278. drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c +2 −2
  2279. drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c +8 −17
  2280. drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c +50 −18
  2281. drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c +7 −7
  2282. drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c +3 −0
  2283. drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c +35 −22
  2284. drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c +4 −3
  2285. drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +22 −19
  2286. drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +235 −52
  2287. drivers/gpu/drm/amd/amdgpu/amdgpu_display.c +8 −10
  2288. drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +26 −5
  2289. drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c +13 −4
  2290. drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +1 −1
  2291. drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c +44 −0
  2292. drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h +2 −0
  2293. drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c +7 −15
  2294. drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c +12 −0
  2295. drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h +1 −0
  2296. drivers/gpu/drm/amd/amdgpu/amdgpu_job.c +36 −44
  2297. drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c +204 −60
  2298. drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +3 −0
  2299. drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c +153 −26
  2300. drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c +1 −0
  2301. drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c +84 −146
  2302. drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c +1 −1
  2303. drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c +24 −66
  2304. drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h +104 −11
  2305. drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +13 −6
  2306. drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c +78 −20
  2307. drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.h +3 −0
  2308. drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c +91 −79
  2309. drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h +3 −1
  2310. drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +224 −110
  2311. drivers/gpu/drm/amd/amdgpu/atombios_encoders.c +1 −0
  2312. drivers/gpu/drm/amd/amdgpu/ci_dpm.c +211 −6
  2313. drivers/gpu/drm/amd/amdgpu/ci_dpm.h +1 −0
  2314. drivers/gpu/drm/amd/amdgpu/cik.c +15 −10
  2315. drivers/gpu/drm/amd/amdgpu/cik_sdma.c +18 −32
  2316. drivers/gpu/drm/amd/amdgpu/cz_dpm.c +2 −1
  2317. drivers/gpu/drm/amd/amdgpu/dce_v10_0.c +9 −7
  2318. drivers/gpu/drm/amd/amdgpu/dce_v11_0.c +11 −10
  2319. drivers/gpu/drm/amd/amdgpu/dce_v8_0.c +16 −67
  2320. drivers/gpu/drm/amd/amdgpu/fiji_smc.c +1 −1
  2321. drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c +74 −63
  2322. drivers/gpu/drm/amd/amdgpu/gfx_v7_0.h +0 −7
  2323. drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c +363 −117
  2324. drivers/gpu/drm/amd/amdgpu/gfx_v8_0.h +0 −1
  2325. drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c +10 −32
  2326. drivers/gpu/drm/amd/amdgpu/gmc_v7_0.h +0 −7
  2327. drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c +17 −37
  2328. drivers/gpu/drm/amd/amdgpu/gmc_v8_0.h +0 −7
  2329. drivers/gpu/drm/amd/amdgpu/iceland_dpm.c +1 −1
  2330. drivers/gpu/drm/amd/amdgpu/iceland_smc.c +2 −2
  2331. drivers/gpu/drm/amd/amdgpu/iceland_smum.h +2 −2
  2332. drivers/gpu/drm/amd/amdgpu/kv_dpm.c +5 −3
  2333. drivers/gpu/drm/amd/amdgpu/ppsmc.h +4 −0
  2334. drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c +31 −46
  2335. drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c +16 −32
  2336. drivers/gpu/drm/amd/amdgpu/tonga_smc.c +1 −1
  2337. drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c +33 −44
  2338. drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c +32 −44
  2339. drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c +135 −47
  2340. drivers/gpu/drm/amd/amdgpu/vce_v2_0.c +2 −0
  2341. drivers/gpu/drm/amd/amdgpu/vce_v3_0.c +114 −46
  2342. drivers/gpu/drm/amd/amdgpu/vi.c +45 −12
  2343. drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h +2 −2
  2344. drivers/gpu/drm/amd/amdkfd/kfd_priv.h +0 −3
  2345. drivers/gpu/drm/amd/amdkfd/kfd_process.c +2 −2
  2346. drivers/gpu/drm/amd/include/amd_pcie.h +14 −0
  2347. drivers/gpu/drm/amd/include/amd_shared.h +2 −9
  2348. drivers/gpu/drm/amd/include/asic_reg/bif/bif_5_0_d.h +1 −0
  2349. drivers/gpu/drm/amd/include/asic_reg/gca/gfx_8_0_d.h +3 −0
  2350. drivers/gpu/drm/amd/include/asic_reg/gca/gfx_8_0_sh_mask.h +84 −24
  2351. drivers/gpu/drm/amd/include/asic_reg/uvd/uvd_6_0_d.h +2 −0
  2352. drivers/gpu/drm/amd/include/cgs_common.h +13 −6
  2353. drivers/gpu/drm/amd/powerplay/amd_powerplay.c +143 −10
  2354. drivers/gpu/drm/amd/powerplay/eventmgr/eventactionchains.c +0 −2
  2355. drivers/gpu/drm/amd/powerplay/eventmgr/eventtasks.c +1 −2
  2356. drivers/gpu/drm/amd/powerplay/hwmgr/cz_clockpowergating.c +9 −8
  2357. drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c +11 −12
  2358. drivers/gpu/drm/amd/powerplay/hwmgr/fiji_clockpowergating.c +1 −1
  2359. drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c +333 −71
  2360. drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.h +0 −3
  2361. drivers/gpu/drm/amd/powerplay/hwmgr/fiji_powertune.c +67 −7
  2362. drivers/gpu/drm/amd/powerplay/hwmgr/fiji_powertune.h +15 −0
  2363. drivers/gpu/drm/amd/powerplay/hwmgr/functiontables.c +5 −4
  2364. drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c +25 −1
  2365. drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c +7 −3
  2366. drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_clockpowergating.c +17 −3
  2367. drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.c +347 −117
  2368. drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.h +1 −5
  2369. drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_powertune.c +590 −0
  2370. drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_powertune.h +25 −1
  2371. drivers/gpu/drm/amd/powerplay/hwmgr/pp_acpi.c +1 −1
  2372. drivers/gpu/drm/amd/powerplay/hwmgr/ppatomctrl.c +177 −126
  2373. drivers/gpu/drm/amd/powerplay/hwmgr/ppatomctrl.h +1 −0
  2374. drivers/gpu/drm/amd/powerplay/hwmgr/ppevvmath.h +54 −111
  2375. drivers/gpu/drm/amd/powerplay/hwmgr/processpptables.c +22 −11
  2376. drivers/gpu/drm/amd/powerplay/hwmgr/processpptables.h +10 −7
  2377. drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c +156 −116
  2378. drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.h +0 −3
  2379. drivers/gpu/drm/amd/powerplay/hwmgr/tonga_processpptables.c +9 −18
  2380. drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h +7 −0
  2381. drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h +1 −0
  2382. drivers/gpu/drm/amd/powerplay/inc/hwmgr.h +8 −2
  2383. drivers/gpu/drm/amd/powerplay/inc/smumgr.h +29 −0
  2384. drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c +3 −2
  2385. drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c +1 −2
  2386. drivers/gpu/drm/amd/scheduler/gpu_sched_trace.h +2 −2
  2387. drivers/gpu/drm/amd/scheduler/gpu_scheduler.c +131 −59
  2388. drivers/gpu/drm/amd/scheduler/gpu_scheduler.h +21 −39
  2389. drivers/gpu/drm/amd/scheduler/sched_fence.c +50 −31
  2390. drivers/gpu/drm/arc/Kconfig +0 −1
  2391. drivers/gpu/drm/arc/Makefile +1 −1
  2392. drivers/gpu/drm/arc/arcpgu.h +1 −1
  2393. drivers/gpu/drm/arc/arcpgu_crtc.c +5 −11
  2394. drivers/gpu/drm/arc/arcpgu_drv.c +15 −49
  2395. drivers/gpu/drm/arc/arcpgu_hdmi.c +0 −18
  2396. drivers/gpu/drm/arc/arcpgu_sim.c +128 −0
  2397. drivers/gpu/drm/arm/Kconfig +16 −1
  2398. drivers/gpu/drm/arm/Makefile +2 −0
  2399. drivers/gpu/drm/arm/hdlcd_crtc.c +0 −19
  2400. drivers/gpu/drm/arm/hdlcd_drv.c +3 −10
  2401. drivers/gpu/drm/arm/malidp_crtc.c +216 −0
  2402. drivers/gpu/drm/arm/malidp_drv.c +519 −0
  2403. drivers/gpu/drm/arm/malidp_drv.h +54 −0
  2404. drivers/gpu/drm/arm/malidp_hw.c +691 −0
  2405. drivers/gpu/drm/arm/malidp_hw.h +241 −0
  2406. drivers/gpu/drm/arm/malidp_planes.c +298 −0
  2407. drivers/gpu/drm/arm/malidp_regs.h +172 −0
  2408. drivers/gpu/drm/armada/Kconfig +0 −4
  2409. drivers/gpu/drm/armada/armada_crtc.c +8 −8
  2410. drivers/gpu/drm/armada/armada_drv.c +1 −2
  2411. drivers/gpu/drm/armada/armada_overlay.c +1 −0
  2412. drivers/gpu/drm/ast/Kconfig +0 −4
  2413. drivers/gpu/drm/ast/ast_drv.c +1 −1
  2414. drivers/gpu/drm/ast/ast_fb.c +0 −3
  2415. drivers/gpu/drm/ast/ast_main.c +1 −2
  2416. drivers/gpu/drm/ast/ast_mode.c +6 −4
  2417. drivers/gpu/drm/ast/ast_ttm.c +1 −12
  2418. drivers/gpu/drm/atmel-hlcdc/Kconfig +0 −1
  2419. drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c +3 −3
  2420. drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c +2 −17
  2421. drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c +0 −12
  2422. drivers/gpu/drm/bochs/Kconfig +0 −4
  2423. drivers/gpu/drm/bochs/bochs_drv.c +1 −1
  2424. drivers/gpu/drm/bochs/bochs_mm.c +3 −12
  2425. drivers/gpu/drm/bridge/Kconfig +19 −0
  2426. drivers/gpu/drm/bridge/Makefile +3 −0
  2427. drivers/gpu/drm/bridge/adv7511/Kconfig +15 −0
  2428. drivers/gpu/drm/bridge/adv7511/Makefile +3 −0
  2429. drivers/gpu/drm/bridge/adv7511/adv7511.h +103 −0
  2430. drivers/gpu/drm/bridge/adv7511/adv7511_drv.c +212 −112
  2431. drivers/gpu/drm/bridge/adv7511/adv7533.c +265 −0
  2432. drivers/gpu/drm/bridge/analogix-anx78xx.c +0 −8
  2433. drivers/gpu/drm/bridge/analogix/analogix_dp_core.c +2 −1
  2434. drivers/gpu/drm/bridge/analogix/analogix_dp_core.h +4 −4
  2435. drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c +8 −4
  2436. drivers/gpu/drm/bridge/analogix/analogix_dp_reg.h +3 −2
  2437. drivers/gpu/drm/bridge/dw-hdmi.c +4 −26
  2438. drivers/gpu/drm/bridge/nxp-ptn3460.c +0 −8
  2439. drivers/gpu/drm/bridge/parade-ps8622.c +1 −13
  2440. drivers/gpu/drm/bridge/sii902x.c +467 −0
  2441. drivers/gpu/drm/bridge/tc358767.c +1413 −0
  2442. drivers/gpu/drm/cirrus/Kconfig +0 −4
  2443. drivers/gpu/drm/cirrus/cirrus_drv.c +1 −1
  2444. drivers/gpu/drm/cirrus/cirrus_main.c +13 −4
  2445. drivers/gpu/drm/cirrus/cirrus_mode.c +5 −6
  2446. drivers/gpu/drm/cirrus/cirrus_ttm.c +1 −12
  2447. drivers/gpu/drm/drm_atomic.c +61 −48
  2448. drivers/gpu/drm/drm_atomic_helper.c +484 −89
  2449. drivers/gpu/drm/drm_auth.c +263 −22
  2450. drivers/gpu/drm/drm_blend.c +238 −0
  2451. drivers/gpu/drm/drm_bridge.c +1 −1
  2452. drivers/gpu/drm/drm_bufs.c +4 −4
  2453. drivers/gpu/drm/drm_cache.c +1 −0
  2454. drivers/gpu/drm/drm_crtc.c +302 −423
  2455. drivers/gpu/drm/drm_crtc_helper.c +3 −33
  2456. drivers/gpu/drm/drm_crtc_internal.h +91 −1
  2457. drivers/gpu/drm/drm_debugfs.c +0 −3
  2458. drivers/gpu/drm/drm_dp_aux_dev.c +1 −2
  2459. drivers/gpu/drm/drm_dp_helper.c +80 −10
  2460. drivers/gpu/drm/drm_dp_mst_topology.c +4 −10
  2461. drivers/gpu/drm/drm_drv.c +83 −162
  2462. drivers/gpu/drm/drm_edid.c +22 −0
  2463. drivers/gpu/drm/drm_edid_load.c +1 −1
  2464. drivers/gpu/drm/drm_fb_cma_helper.c +36 −7
  2465. drivers/gpu/drm/drm_fb_helper.c +18 −38
  2466. drivers/gpu/drm/drm_fops.c +23 −126
  2467. drivers/gpu/drm/drm_fourcc.c +320 −0
  2468. drivers/gpu/drm/drm_gem.c +1 −1
  2469. drivers/gpu/drm/drm_info.c +17 −100
  2470. drivers/gpu/drm/drm_internal.h +6 −15
  2471. drivers/gpu/drm/drm_ioctl.c +90 −86
  2472. drivers/gpu/drm/drm_irq.c +71 −172
  2473. drivers/gpu/drm/drm_legacy.h +2 −6
  2474. drivers/gpu/drm/drm_lock.c +123 −117
  2475. drivers/gpu/drm/drm_memory.c +1 −1
  2476. drivers/gpu/drm/drm_mipi_dsi.c +38 −0
  2477. drivers/gpu/drm/drm_mm.c +3 −1
  2478. drivers/gpu/drm/drm_modes.c +3 −1
  2479. drivers/gpu/drm/drm_modeset_lock.c +10 −3
  2480. drivers/gpu/drm/drm_pci.c +0 −51
  2481. drivers/gpu/drm/drm_plane_helper.c +24 −14
  2482. drivers/gpu/drm/drm_platform.c +0 −18
  2483. drivers/gpu/drm/drm_prime.c +6 −4
  2484. drivers/gpu/drm/drm_probe_helper.c +19 −2
  2485. drivers/gpu/drm/drm_scatter.c +1 −1
  2486. drivers/gpu/drm/drm_simple_kms_helper.c +206 −0
  2487. drivers/gpu/drm/drm_sysfs.c +0 −71
  2488. drivers/gpu/drm/drm_vm.c +2 −56
  2489. drivers/gpu/drm/drm_vma_manager.c +3 −0
  2490. drivers/gpu/drm/etnaviv/etnaviv_drv.c +1 −4
  2491. drivers/gpu/drm/etnaviv/etnaviv_gem.c +5 −11
  2492. drivers/gpu/drm/etnaviv/etnaviv_gpu.c +52 −2
  2493. drivers/gpu/drm/etnaviv/etnaviv_gpu.h +1 −1
  2494. drivers/gpu/drm/etnaviv/state_hi.xml.h +7 −0
  2495. drivers/gpu/drm/exynos/Kconfig +1 −5
  2496. drivers/gpu/drm/exynos/exynos_dp.c +2 −2
  2497. drivers/gpu/drm/exynos/exynos_drm_dpi.c +0 −9
  2498. drivers/gpu/drm/exynos/exynos_drm_drv.c +6 −12
  2499. drivers/gpu/drm/exynos/exynos_drm_drv.h +0 −4
  2500. drivers/gpu/drm/exynos/exynos_drm_dsi.c +0 −9
  2501. drivers/gpu/drm/exynos/exynos_drm_fbdev.c +2 −3
  2502. drivers/gpu/drm/exynos/exynos_drm_g2d.c +5 −7
  2503. drivers/gpu/drm/exynos/exynos_drm_gem.c +10 −10
  2504. drivers/gpu/drm/exynos/exynos_drm_gem.h +1 −1
  2505. drivers/gpu/drm/exynos/exynos_drm_iommu.c +33 −44
  2506. drivers/gpu/drm/exynos/exynos_drm_iommu.h +91 −0
  2507. drivers/gpu/drm/exynos/exynos_drm_plane.c +9 −58
  2508. drivers/gpu/drm/exynos/exynos_drm_vidi.c +0 −8
  2509. drivers/gpu/drm/exynos/exynos_hdmi.c +2 −8
  2510. drivers/gpu/drm/exynos/exynos_mixer.c +4 −2
  2511. drivers/gpu/drm/fsl-dcu/Kconfig +0 −5
  2512. drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c +17 −27
  2513. drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c +36 −13
  2514. drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h +2 −0
  2515. drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c +7 −8
  2516. drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_output.h +1 −2
  2517. drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c +16 −0
  2518. drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.h +1 −0
  2519. drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c +58 −29
  2520. drivers/gpu/drm/fsl-dcu/fsl_tcon.c +1 −0
  2521. drivers/gpu/drm/gma500/Kconfig +0 −4
  2522. drivers/gpu/drm/gma500/cdv_intel_hdmi.c +1 −2
  2523. drivers/gpu/drm/gma500/cdv_intel_lvds.c +3 −6
  2524. drivers/gpu/drm/gma500/framebuffer.c +0 −9
  2525. drivers/gpu/drm/gma500/gma_display.c +6 −5
  2526. drivers/gpu/drm/gma500/gma_display.h +2 −2
  2527. drivers/gpu/drm/gma500/psb_drv.c +2 −4
  2528. drivers/gpu/drm/gma500/psb_intel_display.c +0 −7
  2529. drivers/gpu/drm/gma500/psb_intel_lvds.c +3 −6
  2530. drivers/gpu/drm/hisilicon/kirin/Kconfig +1 −0
  2531. drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c +20 −14
  2532. drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c +1 −10
  2533. drivers/gpu/drm/i2c/Kconfig +0 −6
  2534. drivers/gpu/drm/i2c/Makefile +0 −2
  2535. drivers/gpu/drm/i2c/ch7006_drv.c +2 −7
  2536. drivers/gpu/drm/i915/Kconfig +22 −0
  2537. drivers/gpu/drm/i915/Kconfig.debug +3 −0
  2538. drivers/gpu/drm/i915/Makefile +10 −2
  2539. drivers/gpu/drm/i915/gvt/Makefile +5 −0
  2540. drivers/gpu/drm/i915/gvt/debug.h +34 −0
  2541. drivers/gpu/drm/i915/gvt/gvt.c +145 −0
  2542. drivers/gpu/drm/i915/gvt/gvt.h +69 −0
  2543. drivers/gpu/drm/i915/gvt/hypercall.h +38 −0
  2544. drivers/gpu/drm/i915/gvt/mpt.h +49 −0
  2545. drivers/gpu/drm/i915/i915_cmd_parser.c +40 −13
  2546. drivers/gpu/drm/i915/i915_debugfs.c +291 −279
  2547. drivers/gpu/drm/i915/i915_dma.c +0 −1587
  2548. drivers/gpu/drm/i915/i915_drv.c +1480 −640
  2549. drivers/gpu/drm/i915/i915_drv.h +557 −229
  2550. drivers/gpu/drm/i915/i915_gem.c +727 −535
  2551. drivers/gpu/drm/i915/i915_gem_batch_pool.c +3 −3
  2552. drivers/gpu/drm/i915/i915_gem_context.c +321 −194
  2553. drivers/gpu/drm/i915/i915_gem_dmabuf.h +45 −0
  2554. drivers/gpu/drm/i915/i915_gem_evict.c +51 −4
  2555. drivers/gpu/drm/i915/i915_gem_execbuffer.c +21 −23
  2556. drivers/gpu/drm/i915/i915_gem_fence.c +20 −18
  2557. drivers/gpu/drm/i915/i915_gem_gtt.c +228 −162
  2558. drivers/gpu/drm/i915/i915_gem_gtt.h +61 −23
  2559. drivers/gpu/drm/i915/i915_gem_render_state.c +37 −8
  2560. drivers/gpu/drm/i915/i915_gem_shrinker.c +46 −12
  2561. drivers/gpu/drm/i915/i915_gem_stolen.c +5 −5
  2562. drivers/gpu/drm/i915/i915_gem_tiling.c +4 −4
  2563. drivers/gpu/drm/i915/i915_gem_userptr.c +4 −8
  2564. drivers/gpu/drm/i915/i915_gpu_error.c +125 −78
  2565. drivers/gpu/drm/i915/i915_guc_reg.h +3 −3
  2566. drivers/gpu/drm/i915/i915_guc_submission.c +306 −232
  2567. drivers/gpu/drm/i915/i915_irq.c +367 −440
  2568. drivers/gpu/drm/i915/i915_params.c +20 −3
  2569. drivers/gpu/drm/i915/i915_params.h +4 −1
  2570. drivers/gpu/drm/i915/i915_pci.c +503 −0
  2571. drivers/gpu/drm/i915/i915_pvinfo.h +113 −0
  2572. drivers/gpu/drm/i915/i915_reg.h +59 −6
  2573. drivers/gpu/drm/i915/i915_suspend.c +4 −4
  2574. drivers/gpu/drm/i915/i915_sysfs.c +16 −24
  2575. drivers/gpu/drm/i915/i915_trace.h +24 −30
  2576. drivers/gpu/drm/i915/i915_vgpu.c +24 −20
  2577. drivers/gpu/drm/i915/i915_vgpu.h +4 −88
  2578. drivers/gpu/drm/i915/intel_atomic.c +3 −2
  2579. drivers/gpu/drm/i915/intel_audio.c +22 −28
  2580. drivers/gpu/drm/i915/intel_bios.c +21 −2
  2581. drivers/gpu/drm/i915/intel_bios.h +15 −1
.cocciconfig+3−0
@@ -0,0 +1,3 @@
1+[spatch]
2+ options = --timeout 200
3+ options = --use-gitgrep
.gitignore+2−0
@@ -37,6 +37,7 @@ modules.builtin · 36 unmodified lines
3737 Module.symvers
3838 *.dwo
3939 *.su
40+*.c.[012]*.*
4041
4142 #
4243 # Top-level generic files
@@ -66,6 +67,7 @@ Module.symvers · 23 unmodified lines
6667 #
6768 !.gitignore
6869 !.mailmap
70+!.cocciconfig
6971
7072 #
7173 # Generated include files
.mailmap+13−2
@@ -92,9 +92,17 @@ Krzysztof Kozlowski <krzk@kernel.org> <k.kozlowski.k@gmail.com> · 91 unmodified lines
9292 Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
9393 Leonid I Ananiev <leonid.i.ananiev@intel.com>
9494 Linas Vepstas <linas@austin.ibm.com>
95+Linus Lüssing <linus.luessing@c0d3.blue> <linus.luessing@web.de>
96+Linus Lüssing <linus.luessing@c0d3.blue> <linus.luessing@ascom.ch>
9597 Mark Brown <broonie@sirena.org.uk>
9698 Matthieu CASTET <castet.matthieu@free.fr>
97−Mauro Carvalho Chehab <mchehab@kernel.org> <maurochehab@gmail.com> <mchehab@infradead.org> <mchehab@redhat.com> <m.chehab@samsung.com> <mchehab@osg.samsung.com> <mchehab@s-opensource.com>
99+Mauro Carvalho Chehab <mchehab@kernel.org> <mchehab@brturbo.com.br>
100+Mauro Carvalho Chehab <mchehab@kernel.org> <maurochehab@gmail.com>
101+Mauro Carvalho Chehab <mchehab@kernel.org> <mchehab@infradead.org>
102+Mauro Carvalho Chehab <mchehab@kernel.org> <mchehab@redhat.com>
103+Mauro Carvalho Chehab <mchehab@kernel.org> <m.chehab@samsung.com>
104+Mauro Carvalho Chehab <mchehab@kernel.org> <mchehab@osg.samsung.com>
105+Mauro Carvalho Chehab <mchehab@kernel.org> <mchehab@s-opensource.com>
98106 Matt Ranostay <mranostay@gmail.com> Matthew Ranostay <mranostay@embeddedalley.com>
99107 Matt Ranostay <mranostay@gmail.com> <matt.ranostay@intel.com>
100108 Mayuresh Janorkar <mayur@ti.com>
@@ -130,7 +138,10 @@ Santosh Shilimkar <santosh.shilimkar@oracle.org> · 29 unmodified lines
130138 Sascha Hauer <s.hauer@pengutronix.de>
131139 S.Çağlar Onur <caglar@pardus.org.tr>
132140 Shiraz Hashim <shiraz.linux.kernel@gmail.com> <shiraz.hashim@st.com>
133−Shuah Khan <shuah@kernel.org> <shuahkhan@gmail.com> <shuah.khan@hp.com> <shuahkh@osg.samsung.com> <shuah.kh@samsung.com>
141+Shuah Khan <shuah@kernel.org> <shuahkhan@gmail.com>
142+Shuah Khan <shuah@kernel.org> <shuah.khan@hp.com>
143+Shuah Khan <shuah@kernel.org> <shuahkh@osg.samsung.com>
144+Shuah Khan <shuah@kernel.org> <shuah.kh@samsung.com>
134145 Simon Kelley <simon@thekelleys.org.uk>
135146 Stéphane Witzmann <stephane.witzmann@ubpmes.univ-bpclermont.fr>
136147 Stephen Hemminger <shemminger@osdl.org>
Documentation/ABI/testing/sysfs-class-pwm+9−0
@@ -77,3 +77,12 @@ Description: · 76 unmodified lines
7777 Enable/disable the PWM signal.
7878 0 is disabled
7979 1 is enabled
80+
81+What: /sys/class/pwm/pwmchipN/pwmX/capture
82+Date: June 2016
83+KernelVersion: 4.8
84+Contact: Lee Jones <lee.jones@linaro.org>
85+Description:
86+ Capture information about a PWM signal. The output format is a
87+ pair unsigned integers (period and duty cycle), separated by a
88+ single space.
Documentation/DMA-API.txt+14−19
@@ -369,35 +369,32 @@ See also dma_map_single(). · 368 unmodified lines
369369 dma_addr_t
370370 dma_map_single_attrs(struct device *dev, void *cpu_addr, size_t size,
371371 enum dma_data_direction dir,
372− struct dma_attrs *attrs)
372+ unsigned long attrs)
373373
374374 void
375375 dma_unmap_single_attrs(struct device *dev, dma_addr_t dma_addr,
376376 size_t size, enum dma_data_direction dir,
377− struct dma_attrs *attrs)
377+ unsigned long attrs)
378378
379379 int
380380 dma_map_sg_attrs(struct device *dev, struct scatterlist *sgl,
381381 int nents, enum dma_data_direction dir,
382− struct dma_attrs *attrs)
382+ unsigned long attrs)
383383
384384 void
385385 dma_unmap_sg_attrs(struct device *dev, struct scatterlist *sgl,
386386 int nents, enum dma_data_direction dir,
387− struct dma_attrs *attrs)
387+ unsigned long attrs)
388388
389389 The four functions above are just like the counterpart functions
390390 without the _attrs suffixes, except that they pass an optional
391−struct dma_attrs*.
392−
393−struct dma_attrs encapsulates a set of "DMA attributes". For the
394−definition of struct dma_attrs see linux/dma-attrs.h.
391+dma_attrs.
395392
396393 The interpretation of DMA attributes is architecture-specific, and
397394 each attribute should be documented in Documentation/DMA-attributes.txt.
398395
399−If struct dma_attrs* is NULL, the semantics of each of these
400−functions is identical to those of the corresponding function
396+If dma_attrs are 0, the semantics of each of these functions
397+is identical to those of the corresponding function
401398 without the _attrs suffix. As a result dma_map_single_attrs()
402399 can generally replace dma_map_single(), etc.
403400
@@ -405,15 +402,15 @@ As an example of the use of the *_attrs functions, here's how · 1 unmodified line
405402 you could pass an attribute DMA_ATTR_FOO when mapping memory
406403 for DMA:
407404
408−#include <linux/dma-attrs.h>
409−/* DMA_ATTR_FOO should be defined in linux/dma-attrs.h and
405+#include <linux/dma-mapping.h>
406+/* DMA_ATTR_FOO should be defined in linux/dma-mapping.h and
410407 * documented in Documentation/DMA-attributes.txt */
411408 ...
412409
413− DEFINE_DMA_ATTRS(attrs);
414− dma_set_attr(DMA_ATTR_FOO, &attrs);
410+ unsigned long attr;
411+ attr |= DMA_ATTR_FOO;
415412 ....
416− n = dma_map_sg_attrs(dev, sg, nents, DMA_TO_DEVICE, &attr);
413+ n = dma_map_sg_attrs(dev, sg, nents, DMA_TO_DEVICE, attr);
417414 ....
418415
419416 Architectures that care about DMA_ATTR_FOO would check for its
@@ -422,12 +419,10 @@ routines, e.g.: · 2 unmodified lines
422419
423420 void whizco_dma_map_sg_attrs(struct device *dev, dma_addr_t dma_addr,
424421 size_t size, enum dma_data_direction dir,
425− struct dma_attrs *attrs)
422+ unsigned long attrs)
426423 {
427424 ....
428− int foo = dma_get_attr(DMA_ATTR_FOO, attrs);
429− ....
430− if (foo)
425+ if (attrs & DMA_ATTR_FOO)
431426 /* twizzle the frobnozzle */
432427 ....
433428
Documentation/DMA-attributes.txt+1−1
@@ -2,7 +2,7 @@ · 1 unmodified line
22 ==============
33
44 This document describes the semantics of the DMA attributes that are
5−defined in linux/dma-attrs.h.
5+defined in linux/dma-mapping.h.
66
77 DMA_ATTR_WRITE_BARRIER
88 ----------------------
Documentation/DocBook/Makefile+11−20
@@ -6,8 +6,6 @@ · 5 unmodified lines
66 # To add a new book the only step required is to add the book to the
77 # list of DOCBOOKS.
88
9−ifeq ($(IGNORE_DOCBOOKS),)
10−
119 DOCBOOKS := z8530book.xml device-drivers.xml \
1210 kernel-hacking.xml kernel-locking.xml deviceiobook.xml \
1311 writing_usb_driver.xml networking.xml \
@@ -16,10 +14,16 @@ DOCBOOKS := z8530book.xml device-drivers.xml \ · 2 unmodified lines
1614 genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \
1715 80211.xml debugobjects.xml sh.xml regulator.xml \
1816 alsa-driver-api.xml writing-an-alsa-driver.xml \
19− tracepoint.xml gpu.xml media_api.xml w1.xml \
17+ tracepoint.xml w1.xml \
2018 writing_musb_glue_layer.xml crypto-API.xml iio.xml
2119
22−include Documentation/DocBook/media/Makefile
20+ifeq ($(DOCBOOKS),)
21+
22+# Skip DocBook build if the user explicitly requested no DOCBOOKS.
23+.DEFAULT:
24+ @echo " SKIP DocBook $@ target (DOCBOOKS=\"\" specified)."
25+
26+else
2327
2428 ###
2529 # The build process is as follows (targets):
@@ -49,7 +53,6 @@ pdfdocs: $(PDF) · 23 unmodified lines
4953 HTML := $(sort $(patsubst %.xml, %.html, $(BOOKS)))
5054 htmldocs: $(HTML)
5155 $(call cmd,build_main_index)
52− $(call install_media_images)
5356
5457 MAN := $(patsubst %.xml, %.9, $(BOOKS))
5558 mandocs: $(MAN)
@@ -217,19 +220,7 @@ silent_gen_xml = : · 161 unmodified lines
217220 -e "s/>/\\&gt;/g"; \
218221 echo "</programlisting>") > $@
219222
220−else
221−
222−# Needed, due to cleanmediadocs
223−include Documentation/DocBook/media/Makefile
224−
225−htmldocs:
226−pdfdocs:
227−psdocs:
228−xmldocs:
229−installmandocs:
230−
231−endif # IGNORE_DOCBOOKS
232−
223+endif # DOCBOOKS=""
233224
234225 ###
235226 # Help targets as used by the top-level makefile
@@ -246,7 +237,7 @@ dochelp: · 10 unmodified lines
246237 @echo ' make DOCBOOKS="s1.xml s2.xml" [target] Generate only docs s1.xml s2.xml'
247238 @echo ' valid values for DOCBOOKS are: $(DOCBOOKS)'
248239 @echo
249− @echo " make IGNORE_DOCBOOKS=1 [target] Don't generate docs from Docbook"
240+ @echo " make DOCBOOKS=\"\" [target] Don't generate docs from Docbook"
250241 @echo ' This is useful to generate only the ReST docs (Sphinx)'
251242
252243
@@ -269,7 +260,7 @@ clean-files := $(DOCBOOKS) \ · 16 unmodified lines
269260
270261 clean-dirs := $(patsubst %.xml,%,$(DOCBOOKS)) man
271262
272−cleandocs: cleanmediadocs
263+cleandocs:
273264 $(Q)rm -f $(call objectify, $(clean-files))
274265 $(Q)rm -rf $(call objectify, $(clean-dirs))
275266
Documentation/DocBook/device-drivers.tmpl+4−0
@@ -161,6 +161,10 @@ X!Edrivers/base/interface.c · 160 unmodified lines
161161 !Iinclude/linux/fence.h
162162 !Edrivers/dma-buf/seqno-fence.c
163163 !Iinclude/linux/seqno-fence.h
164+!Edrivers/dma-buf/fence-array.c
165+!Iinclude/linux/fence-array.h
166+!Edrivers/dma-buf/reservation.c
167+!Iinclude/linux/reservation.h
164168 !Edrivers/dma-buf/sync_file.c
165169 !Iinclude/linux/sync_file.h
166170 </sect2>
Documentation/DocBook/gpu.tmpl+0−3540
@@ -1,3540 +0,0 @@
1−<?xml version="1.0" encoding="UTF-8"?>
2−<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
3− "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>
4−
5−<book id="gpuDevelopersGuide">
6− <bookinfo>
7− <title>Linux GPU Driver Developer's Guide</title>
8−
9− <authorgroup>
10− <author>
11− <firstname>Jesse</firstname>
12− <surname>Barnes</surname>
13− <contrib>Initial version</contrib>
14− <affiliation>
15− <orgname>Intel Corporation</orgname>
16− <address>
17− <email>jesse.barnes@intel.com</email>
18− </address>
19− </affiliation>
20− </author>
21− <author>
22− <firstname>Laurent</firstname>
23− <surname>Pinchart</surname>
24− <contrib>Driver internals</contrib>
25− <affiliation>
26− <orgname>Ideas on board SPRL</orgname>
27− <address>
28− <email>laurent.pinchart@ideasonboard.com</email>
29− </address>
30− </affiliation>
31− </author>
32− <author>
33− <firstname>Daniel</firstname>
34− <surname>Vetter</surname>
35− <contrib>Contributions all over the place</contrib>
36− <affiliation>
37− <orgname>Intel Corporation</orgname>
38− <address>
39− <email>daniel.vetter@ffwll.ch</email>
40− </address>
41− </affiliation>
42− </author>
43− <author>
44− <firstname>Lukas</firstname>
45− <surname>Wunner</surname>
46− <contrib>vga_switcheroo documentation</contrib>
47− <affiliation>
48− <address>
49− <email>lukas@wunner.de</email>
50− </address>
51− </affiliation>
52− </author>
53− </authorgroup>
54−
55− <copyright>
56− <year>2008-2009</year>
57− <year>2013-2014</year>
58− <holder>Intel Corporation</holder>
59− </copyright>
60− <copyright>
61− <year>2012</year>
62− <holder>Laurent Pinchart</holder>
63− </copyright>
64− <copyright>
65− <year>2015</year>
66− <holder>Lukas Wunner</holder>
67− </copyright>
68−
69− <legalnotice>
70− <para>
71− The contents of this file may be used under the terms of the GNU
72− General Public License version 2 (the "GPL") as distributed in
73− the kernel source COPYING file.
74− </para>
75− </legalnotice>
76−
77− <revhistory>
78− <!-- Put document revisions here, newest first. -->
79− <revision>
80− <revnumber>1.0</revnumber>
81− <date>2012-07-13</date>
82− <authorinitials>LP</authorinitials>
83− <revremark>Added extensive documentation about driver internals.
84− </revremark>
85− </revision>
86− <revision>
87− <revnumber>1.1</revnumber>
88− <date>2015-10-11</date>
89− <authorinitials>LW</authorinitials>
90− <revremark>Added vga_switcheroo documentation.
91− </revremark>
92− </revision>
93− </revhistory>
94− </bookinfo>
95−
96−<toc></toc>
97−
98−<part id="drmCore">
99− <title>DRM Core</title>
100− <partintro>
101− <para>
102− This first part of the GPU Driver Developer's Guide documents core DRM
103− code, helper libraries for writing drivers and generic userspace
104− interfaces exposed by DRM drivers.
105− </para>
106− </partintro>
107−
108− <chapter id="drmIntroduction">
109− <title>Introduction</title>
110− <para>
111− The Linux DRM layer contains code intended to support the needs
112− of complex graphics devices, usually containing programmable
113− pipelines well suited to 3D graphics acceleration. Graphics
114− drivers in the kernel may make use of DRM functions to make
115− tasks like memory management, interrupt handling and DMA easier,
116− and provide a uniform interface to applications.
117− </para>
118− <para>
119− A note on versions: this guide covers features found in the DRM
120− tree, including the TTM memory manager, output configuration and
121− mode setting, and the new vblank internals, in addition to all
122− the regular features found in current kernels.
123− </para>
124− <para>
125− [Insert diagram of typical DRM stack here]
126− </para>
127− <sect1>
128− <title>Style Guidelines</title>
129− <para>
130− For consistency this documentation uses American English. Abbreviations
131− are written as all-uppercase, for example: DRM, KMS, IOCTL, CRTC, and so
132− on. To aid in reading, documentations make full use of the markup
133− characters kerneldoc provides: @parameter for function parameters, @member
134− for structure members, &amp;structure to reference structures and
135− function() for functions. These all get automatically hyperlinked if
136− kerneldoc for the referenced objects exists. When referencing entries in
137− function vtables please use -&gt;vfunc(). Note that kerneldoc does
138− not support referencing struct members directly, so please add a reference
139− to the vtable struct somewhere in the same paragraph or at least section.
140− </para>
141− <para>
142− Except in special situations (to separate locked from unlocked variants)
143− locking requirements for functions aren't documented in the kerneldoc.
144− Instead locking should be check at runtime using e.g.
145− <code>WARN_ON(!mutex_is_locked(...));</code>. Since it's much easier to
146− ignore documentation than runtime noise this provides more value. And on
147− top of that runtime checks do need to be updated when the locking rules
148− change, increasing the chances that they're correct. Within the
149− documentation the locking rules should be explained in the relevant
150− structures: Either in the comment for the lock explaining what it
151− protects, or data fields need a note about which lock protects them, or
152− both.
153− </para>
154− <para>
155− Functions which have a non-<code>void</code> return value should have a
156− section called "Returns" explaining the expected return values in
157− different cases and their meanings. Currently there's no consensus whether
158− that section name should be all upper-case or not, and whether it should
159− end in a colon or not. Go with the file-local style. Other common section
160− names are "Notes" with information for dangerous or tricky corner cases,
161− and "FIXME" where the interface could be cleaned up.
162− </para>
163− </sect1>
164− </chapter>
165−
166− <!-- Internals -->
167−
168− <chapter id="drmInternals">
169− <title>DRM Internals</title>
170− <para>
171− This chapter documents DRM internals relevant to driver authors
172− and developers working to add support for the latest features to
173− existing drivers.
174− </para>
175− <para>
176− First, we go over some typical driver initialization
177− requirements, like setting up command buffers, creating an
178− initial output configuration, and initializing core services.
179− Subsequent sections cover core internals in more detail,
180− providing implementation notes and examples.
181− </para>
182− <para>
183− The DRM layer provides several services to graphics drivers,
184− many of them driven by the application interfaces it provides
185− through libdrm, the library that wraps most of the DRM ioctls.
186− These include vblank event handling, memory
187− management, output management, framebuffer management, command
188− submission &amp; fencing, suspend/resume support, and DMA
189− services.
190− </para>
191−
192− <!-- Internals: driver init -->
193−
194− <sect1>
195− <title>Driver Initialization</title>
196− <para>
197− At the core of every DRM driver is a <structname>drm_driver</structname>
198− structure. Drivers typically statically initialize a drm_driver structure,
199− and then pass it to <function>drm_dev_alloc()</function> to allocate a
200− device instance. After the device instance is fully initialized it can be
201− registered (which makes it accessible from userspace) using
202− <function>drm_dev_register()</function>.
203− </para>
204− <para>
205− The <structname>drm_driver</structname> structure contains static
206− information that describes the driver and features it supports, and
207− pointers to methods that the DRM core will call to implement the DRM API.
208− We will first go through the <structname>drm_driver</structname> static
209− information fields, and will then describe individual operations in
210− details as they get used in later sections.
211− </para>
212− <sect2>
213− <title>Driver Information</title>
214− <sect3>
215− <title>Driver Features</title>
216− <para>
217− Drivers inform the DRM core about their requirements and supported
218− features by setting appropriate flags in the
219− <structfield>driver_features</structfield> field. Since those flags
220− influence the DRM core behaviour since registration time, most of them
221− must be set to registering the <structname>drm_driver</structname>
222− instance.
223− </para>
224− <synopsis>u32 driver_features;</synopsis>
225− <variablelist>
226− <title>Driver Feature Flags</title>
227− <varlistentry>
228− <term>DRIVER_USE_AGP</term>
229− <listitem><para>
230− Driver uses AGP interface, the DRM core will manage AGP resources.
231− </para></listitem>
232− </varlistentry>
233− <varlistentry>
234− <term>DRIVER_REQUIRE_AGP</term>
235− <listitem><para>
236− Driver needs AGP interface to function. AGP initialization failure
237− will become a fatal error.
238− </para></listitem>
239− </varlistentry>
240− <varlistentry>
241− <term>DRIVER_PCI_DMA</term>
242− <listitem><para>
243− Driver is capable of PCI DMA, mapping of PCI DMA buffers to
244− userspace will be enabled. Deprecated.
245− </para></listitem>
246− </varlistentry>
247− <varlistentry>
248− <term>DRIVER_SG</term>
249− <listitem><para>
250− Driver can perform scatter/gather DMA, allocation and mapping of
251− scatter/gather buffers will be enabled. Deprecated.
252− </para></listitem>
253− </varlistentry>
254− <varlistentry>
255− <term>DRIVER_HAVE_DMA</term>
256− <listitem><para>
257− Driver supports DMA, the userspace DMA API will be supported.
258− Deprecated.
259− </para></listitem>
260− </varlistentry>
261− <varlistentry>
262− <term>DRIVER_HAVE_IRQ</term><term>DRIVER_IRQ_SHARED</term>
263− <listitem><para>
264− DRIVER_HAVE_IRQ indicates whether the driver has an IRQ handler
265− managed by the DRM Core. The core will support simple IRQ handler
266− installation when the flag is set. The installation process is
267− described in <xref linkend="drm-irq-registration"/>.</para>
268− <para>DRIVER_IRQ_SHARED indicates whether the device &amp; handler
269− support shared IRQs (note that this is required of PCI drivers).
270− </para></listitem>
271− </varlistentry>
272− <varlistentry>
273− <term>DRIVER_GEM</term>
274− <listitem><para>
275− Driver use the GEM memory manager.
276− </para></listitem>
277− </varlistentry>
278− <varlistentry>
279− <term>DRIVER_MODESET</term>
280− <listitem><para>
281− Driver supports mode setting interfaces (KMS).
282− </para></listitem>
283− </varlistentry>
284− <varlistentry>
285− <term>DRIVER_PRIME</term>
286− <listitem><para>
287− Driver implements DRM PRIME buffer sharing.
288− </para></listitem>
289− </varlistentry>
290− <varlistentry>
291− <term>DRIVER_RENDER</term>
292− <listitem><para>
293− Driver supports dedicated render nodes.
294− </para></listitem>
295− </varlistentry>
296− <varlistentry>
297− <term>DRIVER_ATOMIC</term>
298− <listitem><para>
299− Driver supports atomic properties. In this case the driver
300− must implement appropriate obj->atomic_get_property() vfuncs
301− for any modeset objects with driver specific properties.
302− </para></listitem>
303− </varlistentry>
304− </variablelist>
305− </sect3>
306− <sect3>
307− <title>Major, Minor and Patchlevel</title>
308− <synopsis>int major;
309−int minor;
310−int patchlevel;</synopsis>
311− <para>
312− The DRM core identifies driver versions by a major, minor and patch
313− level triplet. The information is printed to the kernel log at
314− initialization time and passed to userspace through the
315− DRM_IOCTL_VERSION ioctl.
316− </para>
317− <para>
318− The major and minor numbers are also used to verify the requested driver
319− API version passed to DRM_IOCTL_SET_VERSION. When the driver API changes
320− between minor versions, applications can call DRM_IOCTL_SET_VERSION to
321− select a specific version of the API. If the requested major isn't equal
322− to the driver major, or the requested minor is larger than the driver
323− minor, the DRM_IOCTL_SET_VERSION call will return an error. Otherwise
324− the driver's set_version() method will be called with the requested
325− version.
326− </para>
327− </sect3>
328− <sect3>
329− <title>Name, Description and Date</title>
330− <synopsis>char *name;
331−char *desc;
332−char *date;</synopsis>
333− <para>
334− The driver name is printed to the kernel log at initialization time,
335− used for IRQ registration and passed to userspace through
336− DRM_IOCTL_VERSION.
337− </para>
338− <para>
339− The driver description is a purely informative string passed to
340− userspace through the DRM_IOCTL_VERSION ioctl and otherwise unused by
341− the kernel.
342− </para>
343− <para>
344− The driver date, formatted as YYYYMMDD, is meant to identify the date of
345− the latest modification to the driver. However, as most drivers fail to
346− update it, its value is mostly useless. The DRM core prints it to the
347− kernel log at initialization time and passes it to userspace through the
348− DRM_IOCTL_VERSION ioctl.
349− </para>
350− </sect3>
351− </sect2>
352− <sect2>
353− <title>Device Instance and Driver Handling</title>
354−!Pdrivers/gpu/drm/drm_drv.c driver instance overview
355−!Edrivers/gpu/drm/drm_drv.c
356− </sect2>
357− <sect2>
358− <title>Driver Load</title>
359− <sect3 id="drm-irq-registration">
360− <title>IRQ Registration</title>
361− <para>
362− The DRM core tries to facilitate IRQ handler registration and
363− unregistration by providing <function>drm_irq_install</function> and
364− <function>drm_irq_uninstall</function> functions. Those functions only
365− support a single interrupt per device, devices that use more than one
366− IRQs need to be handled manually.
367− </para>
368− <sect4>
369− <title>Managed IRQ Registration</title>
370− <para>
371− <function>drm_irq_install</function> starts by calling the
372− <methodname>irq_preinstall</methodname> driver operation. The operation
373− is optional and must make sure that the interrupt will not get fired by
374− clearing all pending interrupt flags or disabling the interrupt.
375− </para>
376− <para>
377− The passed-in IRQ will then be requested by a call to
378− <function>request_irq</function>. If the DRIVER_IRQ_SHARED driver
379− feature flag is set, a shared (IRQF_SHARED) IRQ handler will be
380− requested.
381− </para>
382− <para>
383− The IRQ handler function must be provided as the mandatory irq_handler
384− driver operation. It will get passed directly to
385− <function>request_irq</function> and thus has the same prototype as all
386− IRQ handlers. It will get called with a pointer to the DRM device as the
387− second argument.
388− </para>
389− <para>
390− Finally the function calls the optional
391− <methodname>irq_postinstall</methodname> driver operation. The operation
392− usually enables interrupts (excluding the vblank interrupt, which is
393− enabled separately), but drivers may choose to enable/disable interrupts
394− at a different time.
395− </para>
396− <para>
397− <function>drm_irq_uninstall</function> is similarly used to uninstall an
398− IRQ handler. It starts by waking up all processes waiting on a vblank
399− interrupt to make sure they don't hang, and then calls the optional
400− <methodname>irq_uninstall</methodname> driver operation. The operation
401− must disable all hardware interrupts. Finally the function frees the IRQ
402− by calling <function>free_irq</function>.
403− </para>
404− </sect4>
405− <sect4>
406− <title>Manual IRQ Registration</title>
407− <para>
408− Drivers that require multiple interrupt handlers can't use the managed
409− IRQ registration functions. In that case IRQs must be registered and
410− unregistered manually (usually with the <function>request_irq</function>
411− and <function>free_irq</function> functions, or their devm_* equivalent).
412− </para>
413− <para>
414− When manually registering IRQs, drivers must not set the DRIVER_HAVE_IRQ
415− driver feature flag, and must not provide the
416− <methodname>irq_handler</methodname> driver operation. They must set the
417− <structname>drm_device</structname> <structfield>irq_enabled</structfield>
418− field to 1 upon registration of the IRQs, and clear it to 0 after
419− unregistering the IRQs.
420− </para>
421− </sect4>
422− </sect3>
423− <sect3>
424− <title>Memory Manager Initialization</title>
425− <para>
426− Every DRM driver requires a memory manager which must be initialized at
427− load time. DRM currently contains two memory managers, the Translation
428− Table Manager (TTM) and the Graphics Execution Manager (GEM).
429− This document describes the use of the GEM memory manager only. See
430− <xref linkend="drm-memory-management"/> for details.
431− </para>
432− </sect3>
433− <sect3>
434− <title>Miscellaneous Device Configuration</title>
435− <para>
436− Another task that may be necessary for PCI devices during configuration
437− is mapping the video BIOS. On many devices, the VBIOS describes device
438− configuration, LCD panel timings (if any), and contains flags indicating
439− device state. Mapping the BIOS can be done using the pci_map_rom() call,
440− a convenience function that takes care of mapping the actual ROM,
441− whether it has been shadowed into memory (typically at address 0xc0000)
442− or exists on the PCI device in the ROM BAR. Note that after the ROM has
443− been mapped and any necessary information has been extracted, it should
444− be unmapped; on many devices, the ROM address decoder is shared with
445− other BARs, so leaving it mapped could cause undesired behaviour like
446− hangs or memory corruption.
447− <!--!Fdrivers/pci/rom.c pci_map_rom-->
448− </para>
449− </sect3>
450− </sect2>
451− <sect2>
452− <title>Bus-specific Device Registration and PCI Support</title>
453− <para>
454− A number of functions are provided to help with device registration.
455− The functions deal with PCI and platform devices respectively and are
456− only provided for historical reasons. These are all deprecated and
457− shouldn't be used in new drivers. Besides that there's a few
458− helpers for pci drivers.
459− </para>
460−!Edrivers/gpu/drm/drm_pci.c
461−!Edrivers/gpu/drm/drm_platform.c
462− </sect2>
463− </sect1>
464−
465− <!-- Internals: memory management -->
466−
467− <sect1 id="drm-memory-management">
468− <title>Memory management</title>
469− <para>
470− Modern Linux systems require large amount of graphics memory to store
471− frame buffers, textures, vertices and other graphics-related data. Given
472− the very dynamic nature of many of that data, managing graphics memory
473− efficiently is thus crucial for the graphics stack and plays a central
474− role in the DRM infrastructure.
475− </para>
476− <para>
477− The DRM core includes two memory managers, namely Translation Table Maps
478− (TTM) and Graphics Execution Manager (GEM). TTM was the first DRM memory
479− manager to be developed and tried to be a one-size-fits-them all
480− solution. It provides a single userspace API to accommodate the need of
481− all hardware, supporting both Unified Memory Architecture (UMA) devices
482− and devices with dedicated video RAM (i.e. most discrete video cards).
483− This resulted in a large, complex piece of code that turned out to be
484− hard to use for driver development.
485− </para>
486− <para>
487− GEM started as an Intel-sponsored project in reaction to TTM's
488− complexity. Its design philosophy is completely different: instead of
489− providing a solution to every graphics memory-related problems, GEM
490− identified common code between drivers and created a support library to
491− share it. GEM has simpler initialization and execution requirements than
492− TTM, but has no video RAM management capabilities and is thus limited to
493− UMA devices.
494− </para>
495− <sect2>
496− <title>The Translation Table Manager (TTM)</title>
497− <para>
498− TTM design background and information belongs here.
499− </para>
500− <sect3>
501− <title>TTM initialization</title>
502− <warning><para>This section is outdated.</para></warning>
503− <para>
504− Drivers wishing to support TTM must fill out a drm_bo_driver
505− structure. The structure contains several fields with function
506− pointers for initializing the TTM, allocating and freeing memory,
507− waiting for command completion and fence synchronization, and memory
508− migration. See the radeon_ttm.c file for an example of usage.
509− </para>
510− <para>
511− The ttm_global_reference structure is made up of several fields:
512− </para>
513− <programlisting>
514− struct ttm_global_reference {
515− enum ttm_global_types global_type;
516− size_t size;
517− void *object;
518− int (*init) (struct ttm_global_reference *);
519− void (*release) (struct ttm_global_reference *);
520− };
521− </programlisting>
522− <para>
523− There should be one global reference structure for your memory
524− manager as a whole, and there will be others for each object
525− created by the memory manager at runtime. Your global TTM should
526− have a type of TTM_GLOBAL_TTM_MEM. The size field for the global
527− object should be sizeof(struct ttm_mem_global), and the init and
528− release hooks should point at your driver-specific init and
529− release routines, which probably eventually call
530− ttm_mem_global_init and ttm_mem_global_release, respectively.
531− </para>
532− <para>
533− Once your global TTM accounting structure is set up and initialized
534− by calling ttm_global_item_ref() on it,
535− you need to create a buffer object TTM to
536− provide a pool for buffer object allocation by clients and the
537− kernel itself. The type of this object should be TTM_GLOBAL_TTM_BO,
538− and its size should be sizeof(struct ttm_bo_global). Again,
539− driver-specific init and release functions may be provided,
540− likely eventually calling ttm_bo_global_init() and
541− ttm_bo_global_release(), respectively. Also, like the previous
542− object, ttm_global_item_ref() is used to create an initial reference
543− count for the TTM, which will call your initialization function.
544− </para>
545− </sect3>
546− </sect2>
547− <sect2 id="drm-gem">
548− <title>The Graphics Execution Manager (GEM)</title>
549− <para>
550− The GEM design approach has resulted in a memory manager that doesn't
551− provide full coverage of all (or even all common) use cases in its
552− userspace or kernel API. GEM exposes a set of standard memory-related
553− operations to userspace and a set of helper functions to drivers, and let
554− drivers implement hardware-specific operations with their own private API.
555− </para>
556− <para>
557− The GEM userspace API is described in the
558− <ulink url="http://lwn.net/Articles/283798/"><citetitle>GEM - the Graphics
559− Execution Manager</citetitle></ulink> article on LWN. While slightly
560− outdated, the document provides a good overview of the GEM API principles.
561− Buffer allocation and read and write operations, described as part of the
562− common GEM API, are currently implemented using driver-specific ioctls.
563− </para>
564− <para>
565− GEM is data-agnostic. It manages abstract buffer objects without knowing
566− what individual buffers contain. APIs that require knowledge of buffer
567− contents or purpose, such as buffer allocation or synchronization
568− primitives, are thus outside of the scope of GEM and must be implemented
569− using driver-specific ioctls.
570− </para>
571− <para>
572− On a fundamental level, GEM involves several operations:
573− <itemizedlist>
574− <listitem>Memory allocation and freeing</listitem>
575− <listitem>Command execution</listitem>
576− <listitem>Aperture management at command execution time</listitem>
577− </itemizedlist>
578− Buffer object allocation is relatively straightforward and largely
579− provided by Linux's shmem layer, which provides memory to back each
580− object.
581− </para>
582− <para>
583− Device-specific operations, such as command execution, pinning, buffer
584− read &amp; write, mapping, and domain ownership transfers are left to
585− driver-specific ioctls.
586− </para>
587− <sect3>
588− <title>GEM Initialization</title>
589− <para>
590− Drivers that use GEM must set the DRIVER_GEM bit in the struct
591− <structname>drm_driver</structname>
592− <structfield>driver_features</structfield> field. The DRM core will
593− then automatically initialize the GEM core before calling the
594− <methodname>load</methodname> operation. Behind the scene, this will
595− create a DRM Memory Manager object which provides an address space
596− pool for object allocation.
597− </para>
598− <para>
599− In a KMS configuration, drivers need to allocate and initialize a
600− command ring buffer following core GEM initialization if required by
601− the hardware. UMA devices usually have what is called a "stolen"
602− memory region, which provides space for the initial framebuffer and
603− large, contiguous memory regions required by the device. This space is
604− typically not managed by GEM, and must be initialized separately into
605− its own DRM MM object.
606− </para>
607− </sect3>
608− <sect3>
609− <title>GEM Objects Creation</title>
610− <para>
611− GEM splits creation of GEM objects and allocation of the memory that
612− backs them in two distinct operations.
613− </para>
614− <para>
615− GEM objects are represented by an instance of struct
616− <structname>drm_gem_object</structname>. Drivers usually need to extend
617− GEM objects with private information and thus create a driver-specific
618− GEM object structure type that embeds an instance of struct
619− <structname>drm_gem_object</structname>.
620− </para>
621− <para>
622− To create a GEM object, a driver allocates memory for an instance of its
623− specific GEM object type and initializes the embedded struct
624− <structname>drm_gem_object</structname> with a call to
625− <function>drm_gem_object_init</function>. The function takes a pointer to
626− the DRM device, a pointer to the GEM object and the buffer object size
627− in bytes.
628− </para>
629− <para>
630− GEM uses shmem to allocate anonymous pageable memory.
631− <function>drm_gem_object_init</function> will create an shmfs file of
632− the requested size and store it into the struct
633− <structname>drm_gem_object</structname> <structfield>filp</structfield>
634− field. The memory is used as either main storage for the object when the
635− graphics hardware uses system memory directly or as a backing store
636− otherwise.
637− </para>
638− <para>
639− Drivers are responsible for the actual physical pages allocation by
640− calling <function>shmem_read_mapping_page_gfp</function> for each page.
641− Note that they can decide to allocate pages when initializing the GEM
642− object, or to delay allocation until the memory is needed (for instance
643− when a page fault occurs as a result of a userspace memory access or
644− when the driver needs to start a DMA transfer involving the memory).
645− </para>
646− <para>
647− Anonymous pageable memory allocation is not always desired, for instance
648− when the hardware requires physically contiguous system memory as is
649− often the case in embedded devices. Drivers can create GEM objects with
650− no shmfs backing (called private GEM objects) by initializing them with
651− a call to <function>drm_gem_private_object_init</function> instead of
652− <function>drm_gem_object_init</function>. Storage for private GEM
653− objects must be managed by drivers.
654− </para>
655− </sect3>
656− <sect3>
657− <title>GEM Objects Lifetime</title>
658− <para>
659− All GEM objects are reference-counted by the GEM core. References can be
660− acquired and release by <function>calling drm_gem_object_reference</function>
661− and <function>drm_gem_object_unreference</function> respectively. The
662− caller must hold the <structname>drm_device</structname>
663− <structfield>struct_mutex</structfield> lock when calling
664− <function>drm_gem_object_reference</function>. As a convenience, GEM
665− provides <function>drm_gem_object_unreference_unlocked</function>
666− functions that can be called without holding the lock.
667− </para>
668− <para>
669− When the last reference to a GEM object is released the GEM core calls
670− the <structname>drm_driver</structname>
671− <methodname>gem_free_object</methodname> operation. That operation is
672− mandatory for GEM-enabled drivers and must free the GEM object and all
673− associated resources.
674− </para>
675− <para>
676− <synopsis>void (*gem_free_object) (struct drm_gem_object *obj);</synopsis>
677− Drivers are responsible for freeing all GEM object resources. This includes
678− the resources created by the GEM core, which need to be released with
679− <function>drm_gem_object_release</function>.
680− </para>
681− </sect3>
682− <sect3>
683− <title>GEM Objects Naming</title>
684− <para>
685− Communication between userspace and the kernel refers to GEM objects
686− using local handles, global names or, more recently, file descriptors.
687− All of those are 32-bit integer values; the usual Linux kernel limits
688− apply to the file descriptors.
689− </para>
690− <para>
691− GEM handles are local to a DRM file. Applications get a handle to a GEM
692− object through a driver-specific ioctl, and can use that handle to refer
693− to the GEM object in other standard or driver-specific ioctls. Closing a
694− DRM file handle frees all its GEM handles and dereferences the
695− associated GEM objects.
696− </para>
697− <para>
698− To create a handle for a GEM object drivers call
699− <function>drm_gem_handle_create</function>. The function takes a pointer
700− to the DRM file and the GEM object and returns a locally unique handle.
701− When the handle is no longer needed drivers delete it with a call to
702− <function>drm_gem_handle_delete</function>. Finally the GEM object
703− associated with a handle can be retrieved by a call to
704− <function>drm_gem_object_lookup</function>.
705− </para>
706− <para>
707− Handles don't take ownership of GEM objects, they only take a reference
708− to the object that will be dropped when the handle is destroyed. To
709− avoid leaking GEM objects, drivers must make sure they drop the
710− reference(s) they own (such as the initial reference taken at object
711− creation time) as appropriate, without any special consideration for the
712− handle. For example, in the particular case of combined GEM object and
713− handle creation in the implementation of the
714− <methodname>dumb_create</methodname> operation, drivers must drop the
715− initial reference to the GEM object before returning the handle.
716− </para>
717− <para>
718− GEM names are similar in purpose to handles but are not local to DRM
719− files. They can be passed between processes to reference a GEM object
720− globally. Names can't be used directly to refer to objects in the DRM
721− API, applications must convert handles to names and names to handles
722− using the DRM_IOCTL_GEM_FLINK and DRM_IOCTL_GEM_OPEN ioctls
723− respectively. The conversion is handled by the DRM core without any
724− driver-specific support.
725− </para>
726− <para>
727− GEM also supports buffer sharing with dma-buf file descriptors through
728− PRIME. GEM-based drivers must use the provided helpers functions to
729− implement the exporting and importing correctly. See <xref linkend="drm-prime-support" />.
730− Since sharing file descriptors is inherently more secure than the
731− easily guessable and global GEM names it is the preferred buffer
732− sharing mechanism. Sharing buffers through GEM names is only supported
733− for legacy userspace. Furthermore PRIME also allows cross-device
734− buffer sharing since it is based on dma-bufs.
735− </para>
736− </sect3>
737− <sect3 id="drm-gem-objects-mapping">
738− <title>GEM Objects Mapping</title>
739− <para>
740− Because mapping operations are fairly heavyweight GEM favours
741− read/write-like access to buffers, implemented through driver-specific
742− ioctls, over mapping buffers to userspace. However, when random access
743− to the buffer is needed (to perform software rendering for instance),
744− direct access to the object can be more efficient.
745− </para>
746− <para>
747− The mmap system call can't be used directly to map GEM objects, as they
748− don't have their own file handle. Two alternative methods currently
749− co-exist to map GEM objects to userspace. The first method uses a
750− driver-specific ioctl to perform the mapping operation, calling
751− <function>do_mmap</function> under the hood. This is often considered
752− dubious, seems to be discouraged for new GEM-enabled drivers, and will
753− thus not be described here.
754− </para>
755− <para>
756− The second method uses the mmap system call on the DRM file handle.
757− <synopsis>void *mmap(void *addr, size_t length, int prot, int flags, int fd,
758− off_t offset);</synopsis>
759− DRM identifies the GEM object to be mapped by a fake offset passed
760− through the mmap offset argument. Prior to being mapped, a GEM object
761− must thus be associated with a fake offset. To do so, drivers must call
762− <function>drm_gem_create_mmap_offset</function> on the object.
763− </para>
764− <para>
765− Once allocated, the fake offset value
766− must be passed to the application in a driver-specific way and can then
767− be used as the mmap offset argument.
768− </para>
769− <para>
770− The GEM core provides a helper method <function>drm_gem_mmap</function>
771− to handle object mapping. The method can be set directly as the mmap
772− file operation handler. It will look up the GEM object based on the
773− offset value and set the VMA operations to the
774− <structname>drm_driver</structname> <structfield>gem_vm_ops</structfield>
775− field. Note that <function>drm_gem_mmap</function> doesn't map memory to
776− userspace, but relies on the driver-provided fault handler to map pages
777− individually.
778− </para>
779− <para>
780− To use <function>drm_gem_mmap</function>, drivers must fill the struct
781− <structname>drm_driver</structname> <structfield>gem_vm_ops</structfield>
782− field with a pointer to VM operations.
783− </para>
784− <para>
785− <synopsis>struct vm_operations_struct *gem_vm_ops
786−
787− struct vm_operations_struct {
788− void (*open)(struct vm_area_struct * area);
789− void (*close)(struct vm_area_struct * area);
790− int (*fault)(struct vm_area_struct *vma, struct vm_fault *vmf);
791− };</synopsis>
792− </para>
793− <para>
794− The <methodname>open</methodname> and <methodname>close</methodname>
795− operations must update the GEM object reference count. Drivers can use
796− the <function>drm_gem_vm_open</function> and
797− <function>drm_gem_vm_close</function> helper functions directly as open
798− and close handlers.
799− </para>
800− <para>
801− The fault operation handler is responsible for mapping individual pages
802− to userspace when a page fault occurs. Depending on the memory
803− allocation scheme, drivers can allocate pages at fault time, or can
804− decide to allocate memory for the GEM object at the time the object is
805− created.
806− </para>
807− <para>
808− Drivers that want to map the GEM object upfront instead of handling page
809− faults can implement their own mmap file operation handler.
810− </para>
811− </sect3>
812− <sect3>
813− <title>Memory Coherency</title>
814− <para>
815− When mapped to the device or used in a command buffer, backing pages
816− for an object are flushed to memory and marked write combined so as to
817− be coherent with the GPU. Likewise, if the CPU accesses an object
818− after the GPU has finished rendering to the object, then the object
819− must be made coherent with the CPU's view of memory, usually involving
820− GPU cache flushing of various kinds. This core CPU&lt;-&gt;GPU
821− coherency management is provided by a device-specific ioctl, which
822− evaluates an object's current domain and performs any necessary
823− flushing or synchronization to put the object into the desired
824− coherency domain (note that the object may be busy, i.e. an active
825− render target; in that case, setting the domain blocks the client and
826− waits for rendering to complete before performing any necessary
827− flushing operations).
828− </para>
829− </sect3>
830− <sect3>
831− <title>Command Execution</title>
832− <para>
833− Perhaps the most important GEM function for GPU devices is providing a
834− command execution interface to clients. Client programs construct
835− command buffers containing references to previously allocated memory
836− objects, and then submit them to GEM. At that point, GEM takes care to
837− bind all the objects into the GTT, execute the buffer, and provide
838− necessary synchronization between clients accessing the same buffers.
839− This often involves evicting some objects from the GTT and re-binding
840− others (a fairly expensive operation), and providing relocation
841− support which hides fixed GTT offsets from clients. Clients must take
842− care not to submit command buffers that reference more objects than
843− can fit in the GTT; otherwise, GEM will reject them and no rendering
844− will occur. Similarly, if several objects in the buffer require fence
845− registers to be allocated for correct rendering (e.g. 2D blits on
846− pre-965 chips), care must be taken not to require more fence registers
847− than are available to the client. Such resource management should be
848− abstracted from the client in libdrm.
849− </para>
850− </sect3>
851− </sect2>
852− <sect2>
853− <title>GEM Function Reference</title>
854−!Edrivers/gpu/drm/drm_gem.c
855−!Iinclude/drm/drm_gem.h
856− </sect2>
857− <sect2>
858− <title>VMA Offset Manager</title>
859−!Pdrivers/gpu/drm/drm_vma_manager.c vma offset manager
860−!Edrivers/gpu/drm/drm_vma_manager.c
861−!Iinclude/drm/drm_vma_manager.h
862− </sect2>
863− <sect2 id="drm-prime-support">
864− <title>PRIME Buffer Sharing</title>
865− <para>
866− PRIME is the cross device buffer sharing framework in drm, originally
867− created for the OPTIMUS range of multi-gpu platforms. To userspace
868− PRIME buffers are dma-buf based file descriptors.
869− </para>
870− <sect3>
871− <title>Overview and Driver Interface</title>
872− <para>
873− Similar to GEM global names, PRIME file descriptors are
874− also used to share buffer objects across processes. They offer
875− additional security: as file descriptors must be explicitly sent over
876− UNIX domain sockets to be shared between applications, they can't be
877− guessed like the globally unique GEM names.
878− </para>
879− <para>
880− Drivers that support the PRIME
881− API must set the DRIVER_PRIME bit in the struct
882− <structname>drm_driver</structname>
883− <structfield>driver_features</structfield> field, and implement the
884− <methodname>prime_handle_to_fd</methodname> and
885− <methodname>prime_fd_to_handle</methodname> operations.
886− </para>
887− <para>
888− <synopsis>int (*prime_handle_to_fd)(struct drm_device *dev,
889− struct drm_file *file_priv, uint32_t handle,
890− uint32_t flags, int *prime_fd);
891−int (*prime_fd_to_handle)(struct drm_device *dev,
892− struct drm_file *file_priv, int prime_fd,
893− uint32_t *handle);</synopsis>
894− Those two operations convert a handle to a PRIME file descriptor and
895− vice versa. Drivers must use the kernel dma-buf buffer sharing framework
896− to manage the PRIME file descriptors. Similar to the mode setting
897− API PRIME is agnostic to the underlying buffer object manager, as
898− long as handles are 32bit unsigned integers.
899− </para>
900− <para>
901− While non-GEM drivers must implement the operations themselves, GEM
902− drivers must use the <function>drm_gem_prime_handle_to_fd</function>
903− and <function>drm_gem_prime_fd_to_handle</function> helper functions.
904− Those helpers rely on the driver
905− <methodname>gem_prime_export</methodname> and
906− <methodname>gem_prime_import</methodname> operations to create a dma-buf
907− instance from a GEM object (dma-buf exporter role) and to create a GEM
908− object from a dma-buf instance (dma-buf importer role).
909− </para>
910− <para>
911− <synopsis>struct dma_buf * (*gem_prime_export)(struct drm_device *dev,
912− struct drm_gem_object *obj,
913− int flags);
914−struct drm_gem_object * (*gem_prime_import)(struct drm_device *dev,
915− struct dma_buf *dma_buf);</synopsis>
916− These two operations are mandatory for GEM drivers that support
917− PRIME.
918− </para>
919− </sect3>
920− <sect3>
921− <title>PRIME Helper Functions</title>
922−!Pdrivers/gpu/drm/drm_prime.c PRIME Helpers
923− </sect3>
924− </sect2>
925− <sect2>
926− <title>PRIME Function References</title>
927−!Edrivers/gpu/drm/drm_prime.c
928− </sect2>
929− <sect2>
930− <title>DRM MM Range Allocator</title>
931− <sect3>
932− <title>Overview</title>
933−!Pdrivers/gpu/drm/drm_mm.c Overview
934− </sect3>
935− <sect3>
936− <title>LRU Scan/Eviction Support</title>
937−!Pdrivers/gpu/drm/drm_mm.c lru scan roaster
938− </sect3>
939− </sect2>
940− <sect2>
941− <title>DRM MM Range Allocator Function References</title>
942−!Edrivers/gpu/drm/drm_mm.c
943−!Iinclude/drm/drm_mm.h
944− </sect2>
945− <sect2>
946− <title>CMA Helper Functions Reference</title>
947−!Pdrivers/gpu/drm/drm_gem_cma_helper.c cma helpers
948−!Edrivers/gpu/drm/drm_gem_cma_helper.c
949−!Iinclude/drm/drm_gem_cma_helper.h
950− </sect2>
951− </sect1>
952−
953− <!-- Internals: mode setting -->
954−
955− <sect1 id="drm-mode-setting">
956− <title>Mode Setting</title>
957− <para>
958− Drivers must initialize the mode setting core by calling
959− <function>drm_mode_config_init</function> on the DRM device. The function
960− initializes the <structname>drm_device</structname>
961− <structfield>mode_config</structfield> field and never fails. Once done,
962− mode configuration must be setup by initializing the following fields.
963− </para>
964− <itemizedlist>
965− <listitem>
966− <synopsis>int min_width, min_height;
967−int max_width, max_height;</synopsis>
968− <para>
969− Minimum and maximum width and height of the frame buffers in pixel
970− units.
971− </para>
972− </listitem>
973− <listitem>
974− <synopsis>struct drm_mode_config_funcs *funcs;</synopsis>
975− <para>Mode setting functions.</para>
976− </listitem>
977− </itemizedlist>
978− <sect2>
979− <title>Display Modes Function Reference</title>
980−!Iinclude/drm/drm_modes.h
981−!Edrivers/gpu/drm/drm_modes.c
982− </sect2>
983− <sect2>
984− <title>Atomic Mode Setting Function Reference</title>
985−!Edrivers/gpu/drm/drm_atomic.c
986−!Idrivers/gpu/drm/drm_atomic.c
987− </sect2>
988− <sect2>
989− <title>Frame Buffer Abstraction</title>
990− <para>
991− Frame buffers are abstract memory objects that provide a source of
992− pixels to scanout to a CRTC. Applications explicitly request the
993− creation of frame buffers through the DRM_IOCTL_MODE_ADDFB(2) ioctls and
994− receive an opaque handle that can be passed to the KMS CRTC control,
995− plane configuration and page flip functions.
996− </para>
997− <para>
998− Frame buffers rely on the underneath memory manager for low-level memory
999− operations. When creating a frame buffer applications pass a memory
1000− handle (or a list of memory handles for multi-planar formats) through
1001− the <parameter>drm_mode_fb_cmd2</parameter> argument. For drivers using
1002− GEM as their userspace buffer management interface this would be a GEM
1003− handle. Drivers are however free to use their own backing storage object
1004− handles, e.g. vmwgfx directly exposes special TTM handles to userspace
1005− and so expects TTM handles in the create ioctl and not GEM handles.
1006− </para>
1007− <para>
1008− The lifetime of a drm framebuffer is controlled with a reference count,
1009− drivers can grab additional references with
1010− <function>drm_framebuffer_reference</function>and drop them
1011− again with <function>drm_framebuffer_unreference</function>. For
1012− driver-private framebuffers for which the last reference is never
1013− dropped (e.g. for the fbdev framebuffer when the struct
1014− <structname>drm_framebuffer</structname> is embedded into the fbdev
1015− helper struct) drivers can manually clean up a framebuffer at module
1016− unload time with
1017− <function>drm_framebuffer_unregister_private</function>.
1018− </para>
1019− </sect2>
1020− <sect2>
1021− <title>Dumb Buffer Objects</title>
1022− <para>
1023− The KMS API doesn't standardize backing storage object creation and
1024− leaves it to driver-specific ioctls. Furthermore actually creating a
1025− buffer object even for GEM-based drivers is done through a
1026− driver-specific ioctl - GEM only has a common userspace interface for
1027− sharing and destroying objects. While not an issue for full-fledged
1028− graphics stacks that include device-specific userspace components (in
1029− libdrm for instance), this limit makes DRM-based early boot graphics
1030− unnecessarily complex.
1031− </para>
1032− <para>
1033− Dumb objects partly alleviate the problem by providing a standard
1034− API to create dumb buffers suitable for scanout, which can then be used
1035− to create KMS frame buffers.
1036− </para>
1037− <para>
1038− To support dumb objects drivers must implement the
1039− <methodname>dumb_create</methodname>,
1040− <methodname>dumb_destroy</methodname> and
1041− <methodname>dumb_map_offset</methodname> operations.
1042− </para>
1043− <itemizedlist>
1044− <listitem>
1045− <synopsis>int (*dumb_create)(struct drm_file *file_priv, struct drm_device *dev,
1046− struct drm_mode_create_dumb *args);</synopsis>
1047− <para>
1048− The <methodname>dumb_create</methodname> operation creates a driver
1049− object (GEM or TTM handle) suitable for scanout based on the
1050− width, height and depth from the struct
1051− <structname>drm_mode_create_dumb</structname> argument. It fills the
1052− argument's <structfield>handle</structfield>,
1053− <structfield>pitch</structfield> and <structfield>size</structfield>
1054− fields with a handle for the newly created object and its line
1055− pitch and size in bytes.
1056− </para>
1057− </listitem>
1058− <listitem>
1059− <synopsis>int (*dumb_destroy)(struct drm_file *file_priv, struct drm_device *dev,
1060− uint32_t handle);</synopsis>
1061− <para>
1062− The <methodname>dumb_destroy</methodname> operation destroys a dumb
1063− object created by <methodname>dumb_create</methodname>.
1064− </para>
1065− </listitem>
1066− <listitem>
1067− <synopsis>int (*dumb_map_offset)(struct drm_file *file_priv, struct drm_device *dev,
1068− uint32_t handle, uint64_t *offset);</synopsis>
1069− <para>
1070− The <methodname>dumb_map_offset</methodname> operation associates an
1071− mmap fake offset with the object given by the handle and returns
1072− it. Drivers must use the
1073− <function>drm_gem_create_mmap_offset</function> function to
1074− associate the fake offset as described in
1075− <xref linkend="drm-gem-objects-mapping"/>.
1076− </para>
1077− </listitem>
1078− </itemizedlist>
1079− <para>
1080− Note that dumb objects may not be used for gpu acceleration, as has been
1081− attempted on some ARM embedded platforms. Such drivers really must have
1082− a hardware-specific ioctl to allocate suitable buffer objects.
1083− </para>
1084− </sect2>
1085− <sect2>
1086− <title>Output Polling</title>
1087− <synopsis>void (*output_poll_changed)(struct drm_device *dev);</synopsis>
1088− <para>
1089− This operation notifies the driver that the status of one or more
1090− connectors has changed. Drivers that use the fb helper can just call the
1091− <function>drm_fb_helper_hotplug_event</function> function to handle this
1092− operation.
1093− </para>
1094− </sect2>
1095− <sect2>
1096− <title>Locking</title>
1097− <para>
1098− Beside some lookup structures with their own locking (which is hidden
1099− behind the interface functions) most of the modeset state is protected
1100− by the <code>dev-&lt;mode_config.lock</code> mutex and additionally
1101− per-crtc locks to allow cursor updates, pageflips and similar operations
1102− to occur concurrently with background tasks like output detection.
1103− Operations which cross domains like a full modeset always grab all
1104− locks. Drivers there need to protect resources shared between crtcs with
1105− additional locking. They also need to be careful to always grab the
1106− relevant crtc locks if a modset functions touches crtc state, e.g. for
1107− load detection (which does only grab the <code>mode_config.lock</code>
1108− to allow concurrent screen updates on live crtcs).
1109− </para>
1110− </sect2>
1111− </sect1>
1112−
1113− <!-- Internals: kms initialization and cleanup -->
1114−
1115− <sect1 id="drm-kms-init">
1116− <title>KMS Initialization and Cleanup</title>
1117− <para>
1118− A KMS device is abstracted and exposed as a set of planes, CRTCs, encoders
1119− and connectors. KMS drivers must thus create and initialize all those
1120− objects at load time after initializing mode setting.
1121− </para>
1122− <sect2>
1123− <title>CRTCs (struct <structname>drm_crtc</structname>)</title>
1124− <para>
1125− A CRTC is an abstraction representing a part of the chip that contains a
1126− pointer to a scanout buffer. Therefore, the number of CRTCs available
1127− determines how many independent scanout buffers can be active at any
1128− given time. The CRTC structure contains several fields to support this:
1129− a pointer to some video memory (abstracted as a frame buffer object), a
1130− display mode, and an (x, y) offset into the video memory to support
1131− panning or configurations where one piece of video memory spans multiple
1132− CRTCs.
1133− </para>
1134− <sect3>
1135− <title>CRTC Initialization</title>
1136− <para>
1137− A KMS device must create and register at least one struct
1138− <structname>drm_crtc</structname> instance. The instance is allocated
1139− and zeroed by the driver, possibly as part of a larger structure, and
1140− registered with a call to <function>drm_crtc_init</function> with a
1141− pointer to CRTC functions.
1142− </para>
1143− </sect3>
1144− </sect2>
1145− <sect2>
1146− <title>Planes (struct <structname>drm_plane</structname>)</title>
1147− <para>
1148− A plane represents an image source that can be blended with or overlayed
1149− on top of a CRTC during the scanout process. Planes are associated with
1150− a frame buffer to crop a portion of the image memory (source) and
1151− optionally scale it to a destination size. The result is then blended
1152− with or overlayed on top of a CRTC.
1153− </para>
1154− <para>
1155− The DRM core recognizes three types of planes:
1156− <itemizedlist>
1157− <listitem>
1158− DRM_PLANE_TYPE_PRIMARY represents a "main" plane for a CRTC. Primary
1159− planes are the planes operated upon by CRTC modesetting and flipping
1160− operations described in the page_flip hook in <structname>drm_crtc_funcs</structname>.
1161− </listitem>
1162− <listitem>
1163− DRM_PLANE_TYPE_CURSOR represents a "cursor" plane for a CRTC. Cursor
1164− planes are the planes operated upon by the DRM_IOCTL_MODE_CURSOR and
1165− DRM_IOCTL_MODE_CURSOR2 ioctls.
1166− </listitem>
1167− <listitem>
1168− DRM_PLANE_TYPE_OVERLAY represents all non-primary, non-cursor planes.
1169− Some drivers refer to these types of planes as "sprites" internally.
1170− </listitem>
1171− </itemizedlist>
1172− For compatibility with legacy userspace, only overlay planes are made
1173− available to userspace by default. Userspace clients may set the
1174− DRM_CLIENT_CAP_UNIVERSAL_PLANES client capability bit to indicate that
1175− they wish to receive a universal plane list containing all plane types.
1176− </para>
1177− <sect3>
1178− <title>Plane Initialization</title>
1179− <para>
1180− To create a plane, a KMS drivers allocates and
1181− zeroes an instances of struct <structname>drm_plane</structname>
1182− (possibly as part of a larger structure) and registers it with a call
1183− to <function>drm_universal_plane_init</function>. The function takes a bitmask
1184− of the CRTCs that can be associated with the plane, a pointer to the
1185− plane functions, a list of format supported formats, and the type of
1186− plane (primary, cursor, or overlay) being initialized.
1187− </para>
1188− <para>
1189− Cursor and overlay planes are optional. All drivers should provide
1190− one primary plane per CRTC (although this requirement may change in
1191− the future); drivers that do not wish to provide special handling for
1192− primary planes may make use of the helper functions described in
1193− <xref linkend="drm-kms-planehelpers"/> to create and register a
1194− primary plane with standard capabilities.
1195− </para>
1196− </sect3>
1197− </sect2>
1198− <sect2>
1199− <title>Encoders (struct <structname>drm_encoder</structname>)</title>
1200− <para>
1201− An encoder takes pixel data from a CRTC and converts it to a format
1202− suitable for any attached connectors. On some devices, it may be
1203− possible to have a CRTC send data to more than one encoder. In that
1204− case, both encoders would receive data from the same scanout buffer,
1205− resulting in a "cloned" display configuration across the connectors
1206− attached to each encoder.
1207− </para>
1208− <sect3>
1209− <title>Encoder Initialization</title>
1210− <para>
1211− As for CRTCs, a KMS driver must create, initialize and register at
1212− least one struct <structname>drm_encoder</structname> instance. The
1213− instance is allocated and zeroed by the driver, possibly as part of a
1214− larger structure.
1215− </para>
1216− <para>
1217− Drivers must initialize the struct <structname>drm_encoder</structname>
1218− <structfield>possible_crtcs</structfield> and
1219− <structfield>possible_clones</structfield> fields before registering the
1220− encoder. Both fields are bitmasks of respectively the CRTCs that the
1221− encoder can be connected to, and sibling encoders candidate for cloning.
1222− </para>
1223− <para>
1224− After being initialized, the encoder must be registered with a call to
1225− <function>drm_encoder_init</function>. The function takes a pointer to
1226− the encoder functions and an encoder type. Supported types are
1227− <itemizedlist>
1228− <listitem>
1229− DRM_MODE_ENCODER_DAC for VGA and analog on DVI-I/DVI-A
1230− </listitem>
1231− <listitem>
1232− DRM_MODE_ENCODER_TMDS for DVI, HDMI and (embedded) DisplayPort
1233− </listitem>
1234− <listitem>
1235− DRM_MODE_ENCODER_LVDS for display panels
1236− </listitem>
1237− <listitem>
1238− DRM_MODE_ENCODER_TVDAC for TV output (Composite, S-Video, Component,
1239− SCART)
1240− </listitem>
1241− <listitem>
1242− DRM_MODE_ENCODER_VIRTUAL for virtual machine displays
1243− </listitem>
1244− </itemizedlist>
1245− </para>
1246− <para>
1247− Encoders must be attached to a CRTC to be used. DRM drivers leave
1248− encoders unattached at initialization time. Applications (or the fbdev
1249− compatibility layer when implemented) are responsible for attaching the
1250− encoders they want to use to a CRTC.
1251− </para>
1252− </sect3>
1253− </sect2>
1254− <sect2>
1255− <title>Connectors (struct <structname>drm_connector</structname>)</title>
1256− <para>
1257− A connector is the final destination for pixel data on a device, and
1258− usually connects directly to an external display device like a monitor
1259− or laptop panel. A connector can only be attached to one encoder at a
1260− time. The connector is also the structure where information about the
1261− attached display is kept, so it contains fields for display data, EDID
1262− data, DPMS &amp; connection status, and information about modes
1263− supported on the attached displays.
1264− </para>
1265− <sect3>
1266− <title>Connector Initialization</title>
1267− <para>
1268− Finally a KMS driver must create, initialize, register and attach at
1269− least one struct <structname>drm_connector</structname> instance. The
1270− instance is created as other KMS objects and initialized by setting the
1271− following fields.
1272− </para>
1273− <variablelist>
1274− <varlistentry>
1275− <term><structfield>interlace_allowed</structfield></term>
1276− <listitem><para>
1277− Whether the connector can handle interlaced modes.
1278− </para></listitem>
1279− </varlistentry>
1280− <varlistentry>
1281− <term><structfield>doublescan_allowed</structfield></term>
1282− <listitem><para>
1283− Whether the connector can handle doublescan.
1284− </para></listitem>
1285− </varlistentry>
1286− <varlistentry>
1287− <term><structfield>display_info
1288− </structfield></term>
1289− <listitem><para>
1290− Display information is filled from EDID information when a display
1291− is detected. For non hot-pluggable displays such as flat panels in
1292− embedded systems, the driver should initialize the
1293− <structfield>display_info</structfield>.<structfield>width_mm</structfield>
1294− and
1295− <structfield>display_info</structfield>.<structfield>height_mm</structfield>
1296− fields with the physical size of the display.
1297− </para></listitem>
1298− </varlistentry>
1299− <varlistentry>
1300− <term id="drm-kms-connector-polled"><structfield>polled</structfield></term>
1301− <listitem><para>
1302− Connector polling mode, a combination of
1303− <variablelist>
1304− <varlistentry>
1305− <term>DRM_CONNECTOR_POLL_HPD</term>
1306− <listitem><para>
1307− The connector generates hotplug events and doesn't need to be
1308− periodically polled. The CONNECT and DISCONNECT flags must not
1309− be set together with the HPD flag.
1310− </para></listitem>
1311− </varlistentry>
1312− <varlistentry>
1313− <term>DRM_CONNECTOR_POLL_CONNECT</term>
1314− <listitem><para>
1315− Periodically poll the connector for connection.
1316− </para></listitem>
1317− </varlistentry>
1318− <varlistentry>
1319− <term>DRM_CONNECTOR_POLL_DISCONNECT</term>
1320− <listitem><para>
1321− Periodically poll the connector for disconnection.
1322− </para></listitem>
1323− </varlistentry>
1324− </variablelist>
1325− Set to 0 for connectors that don't support connection status
1326− discovery.
1327− </para></listitem>
1328− </varlistentry>
1329− </variablelist>
1330− <para>
1331− The connector is then registered with a call to
1332− <function>drm_connector_init</function> with a pointer to the connector
1333− functions and a connector type, and exposed through sysfs with a call to
1334− <function>drm_connector_register</function>.
1335− </para>
1336− <para>
1337− Supported connector types are
1338− <itemizedlist>
1339− <listitem>DRM_MODE_CONNECTOR_VGA</listitem>
1340− <listitem>DRM_MODE_CONNECTOR_DVII</listitem>
1341− <listitem>DRM_MODE_CONNECTOR_DVID</listitem>
1342− <listitem>DRM_MODE_CONNECTOR_DVIA</listitem>
1343− <listitem>DRM_MODE_CONNECTOR_Composite</listitem>
1344− <listitem>DRM_MODE_CONNECTOR_SVIDEO</listitem>
1345− <listitem>DRM_MODE_CONNECTOR_LVDS</listitem>
1346− <listitem>DRM_MODE_CONNECTOR_Component</listitem>
1347− <listitem>DRM_MODE_CONNECTOR_9PinDIN</listitem>
1348− <listitem>DRM_MODE_CONNECTOR_DisplayPort</listitem>
1349− <listitem>DRM_MODE_CONNECTOR_HDMIA</listitem>
1350− <listitem>DRM_MODE_CONNECTOR_HDMIB</listitem>
1351− <listitem>DRM_MODE_CONNECTOR_TV</listitem>
1352− <listitem>DRM_MODE_CONNECTOR_eDP</listitem>
1353− <listitem>DRM_MODE_CONNECTOR_VIRTUAL</listitem>
1354− </itemizedlist>
1355− </para>
1356− <para>
1357− Connectors must be attached to an encoder to be used. For devices that
1358− map connectors to encoders 1:1, the connector should be attached at
1359− initialization time with a call to
1360− <function>drm_mode_connector_attach_encoder</function>. The driver must
1361− also set the <structname>drm_connector</structname>
1362− <structfield>encoder</structfield> field to point to the attached
1363− encoder.
1364− </para>
1365− <para>
1366− Finally, drivers must initialize the connectors state change detection
1367− with a call to <function>drm_kms_helper_poll_init</function>. If at
1368− least one connector is pollable but can't generate hotplug interrupts
1369− (indicated by the DRM_CONNECTOR_POLL_CONNECT and
1370− DRM_CONNECTOR_POLL_DISCONNECT connector flags), a delayed work will
1371− automatically be queued to periodically poll for changes. Connectors
1372− that can generate hotplug interrupts must be marked with the
1373− DRM_CONNECTOR_POLL_HPD flag instead, and their interrupt handler must
1374− call <function>drm_helper_hpd_irq_event</function>. The function will
1375− queue a delayed work to check the state of all connectors, but no
1376− periodic polling will be done.
1377− </para>
1378− </sect3>
1379− <sect3>
1380− <title>Connector Operations</title>
1381− <note><para>
1382− Unless otherwise state, all operations are mandatory.
1383− </para></note>
1384− <sect4>
1385− <title>DPMS</title>
1386− <synopsis>void (*dpms)(struct drm_connector *connector, int mode);</synopsis>
1387− <para>
1388− The DPMS operation sets the power state of a connector. The mode
1389− argument is one of
1390− <itemizedlist>
1391− <listitem><para>DRM_MODE_DPMS_ON</para></listitem>
1392− <listitem><para>DRM_MODE_DPMS_STANDBY</para></listitem>
1393− <listitem><para>DRM_MODE_DPMS_SUSPEND</para></listitem>
1394− <listitem><para>DRM_MODE_DPMS_OFF</para></listitem>
1395− </itemizedlist>
1396− </para>
1397− <para>
1398− In all but DPMS_ON mode the encoder to which the connector is attached
1399− should put the display in low-power mode by driving its signals
1400− appropriately. If more than one connector is attached to the encoder
1401− care should be taken not to change the power state of other displays as
1402− a side effect. Low-power mode should be propagated to the encoders and
1403− CRTCs when all related connectors are put in low-power mode.
1404− </para>
1405− </sect4>
1406− <sect4>
1407− <title>Modes</title>
1408− <synopsis>int (*fill_modes)(struct drm_connector *connector, uint32_t max_width,
1409− uint32_t max_height);</synopsis>
1410− <para>
1411− Fill the mode list with all supported modes for the connector. If the
1412− <parameter>max_width</parameter> and <parameter>max_height</parameter>
1413− arguments are non-zero, the implementation must ignore all modes wider
1414− than <parameter>max_width</parameter> or higher than
1415− <parameter>max_height</parameter>.
1416− </para>
1417− <para>
1418− The connector must also fill in this operation its
1419− <structfield>display_info</structfield>
1420− <structfield>width_mm</structfield> and
1421− <structfield>height_mm</structfield> fields with the connected display
1422− physical size in millimeters. The fields should be set to 0 if the value
1423− isn't known or is not applicable (for instance for projector devices).
1424− </para>
1425− </sect4>
1426− <sect4>
1427− <title>Connection Status</title>
1428− <para>
1429− The connection status is updated through polling or hotplug events when
1430− supported (see <xref linkend="drm-kms-connector-polled"/>). The status
1431− value is reported to userspace through ioctls and must not be used
1432− inside the driver, as it only gets initialized by a call to
1433− <function>drm_mode_getconnector</function> from userspace.
1434− </para>
1435− <synopsis>enum drm_connector_status (*detect)(struct drm_connector *connector,
1436− bool force);</synopsis>
1437− <para>
1438− Check to see if anything is attached to the connector. The
1439− <parameter>force</parameter> parameter is set to false whilst polling or
1440− to true when checking the connector due to user request.
1441− <parameter>force</parameter> can be used by the driver to avoid
1442− expensive, destructive operations during automated probing.
1443− </para>
1444− <para>
1445− Return connector_status_connected if something is connected to the
1446− connector, connector_status_disconnected if nothing is connected and
1447− connector_status_unknown if the connection state isn't known.
1448− </para>
1449− <para>
1450− Drivers should only return connector_status_connected if the connection
1451− status has really been probed as connected. Connectors that can't detect
1452− the connection status, or failed connection status probes, should return
1453− connector_status_unknown.
1454− </para>
1455− </sect4>
1456− </sect3>
1457− </sect2>
1458− <sect2>
1459− <title>Cleanup</title>
1460− <para>
1461− The DRM core manages its objects' lifetime. When an object is not needed
1462− anymore the core calls its destroy function, which must clean up and
1463− free every resource allocated for the object. Every
1464− <function>drm_*_init</function> call must be matched with a
1465− corresponding <function>drm_*_cleanup</function> call to cleanup CRTCs
1466− (<function>drm_crtc_cleanup</function>), planes
1467− (<function>drm_plane_cleanup</function>), encoders
1468− (<function>drm_encoder_cleanup</function>) and connectors
1469− (<function>drm_connector_cleanup</function>). Furthermore, connectors
1470− that have been added to sysfs must be removed by a call to
1471− <function>drm_connector_unregister</function> before calling
1472− <function>drm_connector_cleanup</function>.
1473− </para>
1474− <para>
1475− Connectors state change detection must be cleanup up with a call to
1476− <function>drm_kms_helper_poll_fini</function>.
1477− </para>
1478− </sect2>
1479− <sect2>
1480− <title>Output discovery and initialization example</title>
1481− <programlisting><![CDATA[
1482−void intel_crt_init(struct drm_device *dev)
1483−{
1484− struct drm_connector *connector;
1485− struct intel_output *intel_output;
1486−
1487− intel_output = kzalloc(sizeof(struct intel_output), GFP_KERNEL);
1488− if (!intel_output)
1489− return;
1490−
1491− connector = &intel_output->base;
1492− drm_connector_init(dev, &intel_output->base,
1493− &intel_crt_connector_funcs, DRM_MODE_CONNECTOR_VGA);
1494−
1495− drm_encoder_init(dev, &intel_output->enc, &intel_crt_enc_funcs,
1496− DRM_MODE_ENCODER_DAC);
1497−
1498− drm_mode_connector_attach_encoder(&intel_output->base,
1499− &intel_output->enc);
1500−
1501− /* Set up the DDC bus. */
1502− intel_output->ddc_bus = intel_i2c_create(dev, GPIOA, "CRTDDC_A");
1503− if (!intel_output->ddc_bus) {
1504− dev_printk(KERN_ERR, &dev->pdev->dev, "DDC bus registration "
1505− "failed.\n");
1506− return;
1507− }
1508−
1509− intel_output->type = INTEL_OUTPUT_ANALOG;
1510− connector->interlace_allowed = 0;
1511− connector->doublescan_allowed = 0;
1512−
1513− drm_encoder_helper_add(&intel_output->enc, &intel_crt_helper_funcs);
1514− drm_connector_helper_add(connector, &intel_crt_connector_helper_funcs);
1515−
1516− drm_connector_register(connector);
1517−}]]></programlisting>
1518− <para>
1519− In the example above (taken from the i915 driver), a CRTC, connector and
1520− encoder combination is created. A device-specific i2c bus is also
1521− created for fetching EDID data and performing monitor detection. Once
1522− the process is complete, the new connector is registered with sysfs to
1523− make its properties available to applications.
1524− </para>
1525− </sect2>
1526− <sect2>
1527− <title>KMS API Functions</title>
1528−!Edrivers/gpu/drm/drm_crtc.c
1529− </sect2>
1530− <sect2>
1531− <title>KMS Data Structures</title>
1532−!Iinclude/drm/drm_crtc.h
1533− </sect2>
1534− <sect2>
1535− <title>KMS Locking</title>
1536−!Pdrivers/gpu/drm/drm_modeset_lock.c kms locking
1537−!Iinclude/drm/drm_modeset_lock.h
1538−!Edrivers/gpu/drm/drm_modeset_lock.c
1539− </sect2>
1540− </sect1>
1541−
1542− <!-- Internals: kms helper functions -->
1543−
1544− <sect1>
1545− <title>Mode Setting Helper Functions</title>
1546− <para>
1547− The plane, CRTC, encoder and connector functions provided by the drivers
1548− implement the DRM API. They're called by the DRM core and ioctl handlers
1549− to handle device state changes and configuration request. As implementing
1550− those functions often requires logic not specific to drivers, mid-layer
1551− helper functions are available to avoid duplicating boilerplate code.
1552− </para>
1553− <para>
1554− The DRM core contains one mid-layer implementation. The mid-layer provides
1555− implementations of several plane, CRTC, encoder and connector functions
1556− (called from the top of the mid-layer) that pre-process requests and call
1557− lower-level functions provided by the driver (at the bottom of the
1558− mid-layer). For instance, the
1559− <function>drm_crtc_helper_set_config</function> function can be used to
1560− fill the struct <structname>drm_crtc_funcs</structname>
1561− <structfield>set_config</structfield> field. When called, it will split
1562− the <methodname>set_config</methodname> operation in smaller, simpler
1563− operations and call the driver to handle them.
1564− </para>
1565− <para>
1566− To use the mid-layer, drivers call <function>drm_crtc_helper_add</function>,
1567− <function>drm_encoder_helper_add</function> and
1568− <function>drm_connector_helper_add</function> functions to install their
1569− mid-layer bottom operations handlers, and fill the
1570− <structname>drm_crtc_funcs</structname>,
1571− <structname>drm_encoder_funcs</structname> and
1572− <structname>drm_connector_funcs</structname> structures with pointers to
1573− the mid-layer top API functions. Installing the mid-layer bottom operation
1574− handlers is best done right after registering the corresponding KMS object.
1575− </para>
1576− <para>
1577− The mid-layer is not split between CRTC, encoder and connector operations.
1578− To use it, a driver must provide bottom functions for all of the three KMS
1579− entities.
1580− </para>
1581− <sect2>
1582− <title>Atomic Modeset Helper Functions Reference</title>
1583− <sect3>
1584− <title>Overview</title>
1585−!Pdrivers/gpu/drm/drm_atomic_helper.c overview
1586− </sect3>
1587− <sect3>
1588− <title>Implementing Asynchronous Atomic Commit</title>
1589−!Pdrivers/gpu/drm/drm_atomic_helper.c implementing async commit
1590− </sect3>
1591− <sect3>
1592− <title>Atomic State Reset and Initialization</title>
1593−!Pdrivers/gpu/drm/drm_atomic_helper.c atomic state reset and initialization
1594− </sect3>
1595−!Iinclude/drm/drm_atomic_helper.h
1596−!Edrivers/gpu/drm/drm_atomic_helper.c
1597− </sect2>
1598− <sect2>
1599− <title>Modeset Helper Reference for Common Vtables</title>
1600−!Iinclude/drm/drm_modeset_helper_vtables.h
1601−!Pinclude/drm/drm_modeset_helper_vtables.h overview
1602− </sect2>
1603− <sect2>
1604− <title>Legacy CRTC/Modeset Helper Functions Reference</title>
1605−!Edrivers/gpu/drm/drm_crtc_helper.c
1606−!Pdrivers/gpu/drm/drm_crtc_helper.c overview
1607− </sect2>
1608− <sect2>
1609− <title>Output Probing Helper Functions Reference</title>
1610−!Pdrivers/gpu/drm/drm_probe_helper.c output probing helper overview
1611−!Edrivers/gpu/drm/drm_probe_helper.c
1612− </sect2>
1613− <sect2>
1614− <title>fbdev Helper Functions Reference</title>
1615−!Pdrivers/gpu/drm/drm_fb_helper.c fbdev helpers
1616−!Edrivers/gpu/drm/drm_fb_helper.c
1617−!Iinclude/drm/drm_fb_helper.h
1618− </sect2>
1619− <sect2>
1620− <title>Framebuffer CMA Helper Functions Reference</title>
1621−!Pdrivers/gpu/drm/drm_fb_cma_helper.c framebuffer cma helper functions
1622−!Edrivers/gpu/drm/drm_fb_cma_helper.c
1623− </sect2>
1624− <sect2>
1625− <title>Display Port Helper Functions Reference</title>
1626−!Pdrivers/gpu/drm/drm_dp_helper.c dp helpers
1627−!Iinclude/drm/drm_dp_helper.h
1628−!Edrivers/gpu/drm/drm_dp_helper.c
1629− </sect2>
1630− <sect2>
1631− <title>Display Port Dual Mode Adaptor Helper Functions Reference</title>
1632−!Pdrivers/gpu/drm/drm_dp_dual_mode_helper.c dp dual mode helpers
1633−!Iinclude/drm/drm_dp_dual_mode_helper.h
1634−!Edrivers/gpu/drm/drm_dp_dual_mode_helper.c
1635− </sect2>
1636− <sect2>
1637− <title>Display Port MST Helper Functions Reference</title>
1638−!Pdrivers/gpu/drm/drm_dp_mst_topology.c dp mst helper
1639−!Iinclude/drm/drm_dp_mst_helper.h
1640−!Edrivers/gpu/drm/drm_dp_mst_topology.c
1641− </sect2>
1642− <sect2>
1643− <title>MIPI DSI Helper Functions Reference</title>
1644−!Pdrivers/gpu/drm/drm_mipi_dsi.c dsi helpers
1645−!Iinclude/drm/drm_mipi_dsi.h
1646−!Edrivers/gpu/drm/drm_mipi_dsi.c
1647− </sect2>
1648− <sect2>
1649− <title>EDID Helper Functions Reference</title>
1650−!Edrivers/gpu/drm/drm_edid.c
1651− </sect2>
1652− <sect2>
1653− <title>Rectangle Utilities Reference</title>
1654−!Pinclude/drm/drm_rect.h rect utils
1655−!Iinclude/drm/drm_rect.h
1656−!Edrivers/gpu/drm/drm_rect.c
1657− </sect2>
1658− <sect2>
1659− <title>Flip-work Helper Reference</title>
1660−!Pinclude/drm/drm_flip_work.h flip utils
1661−!Iinclude/drm/drm_flip_work.h
1662−!Edrivers/gpu/drm/drm_flip_work.c
1663− </sect2>
1664− <sect2>
1665− <title>HDMI Infoframes Helper Reference</title>
1666− <para>
1667− Strictly speaking this is not a DRM helper library but generally useable
1668− by any driver interfacing with HDMI outputs like v4l or alsa drivers.
1669− But it nicely fits into the overall topic of mode setting helper
1670− libraries and hence is also included here.
1671− </para>
1672−!Iinclude/linux/hdmi.h
1673−!Edrivers/video/hdmi.c
1674− </sect2>
1675− <sect2>
1676− <title id="drm-kms-planehelpers">Plane Helper Reference</title>
1677−!Edrivers/gpu/drm/drm_plane_helper.c
1678−!Pdrivers/gpu/drm/drm_plane_helper.c overview
1679− </sect2>
1680− <sect2>
1681− <title>Tile group</title>
1682−!Pdrivers/gpu/drm/drm_crtc.c Tile group
1683− </sect2>
1684− <sect2>
1685− <title>Bridges</title>
1686− <sect3>
1687− <title>Overview</title>
1688−!Pdrivers/gpu/drm/drm_bridge.c overview
1689− </sect3>
1690− <sect3>
1691− <title>Default bridge callback sequence</title>
1692−!Pdrivers/gpu/drm/drm_bridge.c bridge callbacks
1693− </sect3>
1694−!Edrivers/gpu/drm/drm_bridge.c
1695− </sect2>
1696− <sect2>
1697− <title>Panel Helper Reference</title>
1698−!Iinclude/drm/drm_panel.h
1699−!Edrivers/gpu/drm/drm_panel.c
1700−!Pdrivers/gpu/drm/drm_panel.c drm panel
1701− </sect2>
1702− </sect1>
1703−
1704− <!-- Internals: kms properties -->
1705−
1706− <sect1 id="drm-kms-properties">
1707− <title>KMS Properties</title>
1708− <para>
1709− Drivers may need to expose additional parameters to applications than
1710− those described in the previous sections. KMS supports attaching
1711− properties to CRTCs, connectors and planes and offers a userspace API to
1712− list, get and set the property values.
1713− </para>
1714− <para>
1715− Properties are identified by a name that uniquely defines the property
1716− purpose, and store an associated value. For all property types except blob
1717− properties the value is a 64-bit unsigned integer.
1718− </para>
1719− <para>
1720− KMS differentiates between properties and property instances. Drivers
1721− first create properties and then create and associate individual instances
1722− of those properties to objects. A property can be instantiated multiple
1723− times and associated with different objects. Values are stored in property
1724− instances, and all other property information are stored in the property
1725− and shared between all instances of the property.
1726− </para>
1727− <para>
1728− Every property is created with a type that influences how the KMS core
1729− handles the property. Supported property types are
1730− <variablelist>
1731− <varlistentry>
1732− <term>DRM_MODE_PROP_RANGE</term>
1733− <listitem><para>Range properties report their minimum and maximum
1734− admissible values. The KMS core verifies that values set by
1735− application fit in that range.</para></listitem>
1736− </varlistentry>
1737− <varlistentry>
1738− <term>DRM_MODE_PROP_ENUM</term>
1739− <listitem><para>Enumerated properties take a numerical value that
1740− ranges from 0 to the number of enumerated values defined by the
1741− property minus one, and associate a free-formed string name to each
1742− value. Applications can retrieve the list of defined value-name pairs
1743− and use the numerical value to get and set property instance values.
1744− </para></listitem>
1745− </varlistentry>
1746− <varlistentry>
1747− <term>DRM_MODE_PROP_BITMASK</term>
1748− <listitem><para>Bitmask properties are enumeration properties that
1749− additionally restrict all enumerated values to the 0..63 range.
1750− Bitmask property instance values combine one or more of the
1751− enumerated bits defined by the property.</para></listitem>
1752− </varlistentry>
1753− <varlistentry>
1754− <term>DRM_MODE_PROP_BLOB</term>
1755− <listitem><para>Blob properties store a binary blob without any format
1756− restriction. The binary blobs are created as KMS standalone objects,
1757− and blob property instance values store the ID of their associated
1758− blob object.</para>
1759− <para>Blob properties are only used for the connector EDID property
1760− and cannot be created by drivers.</para></listitem>
1761− </varlistentry>
1762− </variablelist>
1763− </para>
1764− <para>
1765− To create a property drivers call one of the following functions depending
1766− on the property type. All property creation functions take property flags
1767− and name, as well as type-specific arguments.
1768− <itemizedlist>
1769− <listitem>
1770− <synopsis>struct drm_property *drm_property_create_range(struct drm_device *dev, int flags,
1771− const char *name,
1772− uint64_t min, uint64_t max);</synopsis>
1773− <para>Create a range property with the given minimum and maximum
1774− values.</para>
1775− </listitem>
1776− <listitem>
1777− <synopsis>struct drm_property *drm_property_create_enum(struct drm_device *dev, int flags,
1778− const char *name,
1779− const struct drm_prop_enum_list *props,
1780− int num_values);</synopsis>
1781− <para>Create an enumerated property. The <parameter>props</parameter>
1782− argument points to an array of <parameter>num_values</parameter>
1783− value-name pairs.</para>
1784− </listitem>
1785− <listitem>
1786− <synopsis>struct drm_property *drm_property_create_bitmask(struct drm_device *dev,
1787− int flags, const char *name,
1788− const struct drm_prop_enum_list *props,
1789− int num_values);</synopsis>
1790− <para>Create a bitmask property. The <parameter>props</parameter>
1791− argument points to an array of <parameter>num_values</parameter>
1792− value-name pairs.</para>
1793− </listitem>
1794− </itemizedlist>
1795− </para>
1796− <para>
1797− Properties can additionally be created as immutable, in which case they
1798− will be read-only for applications but can be modified by the driver. To
1799− create an immutable property drivers must set the DRM_MODE_PROP_IMMUTABLE
1800− flag at property creation time.
1801− </para>
1802− <para>
1803− When no array of value-name pairs is readily available at property
1804− creation time for enumerated or range properties, drivers can create
1805− the property using the <function>drm_property_create</function> function
1806− and manually add enumeration value-name pairs by calling the
1807− <function>drm_property_add_enum</function> function. Care must be taken to
1808− properly specify the property type through the <parameter>flags</parameter>
1809− argument.
1810− </para>
1811− <para>
1812− After creating properties drivers can attach property instances to CRTC,
1813− connector and plane objects by calling the
1814− <function>drm_object_attach_property</function>. The function takes a
1815− pointer to the target object, a pointer to the previously created property
1816− and an initial instance value.
1817− </para>
1818− <sect2>
1819− <title>Existing KMS Properties</title>
1820− <para>
1821− The following table gives description of drm properties exposed by various
1822− modules/drivers.
1823− </para>
1824− <table border="1" cellpadding="0" cellspacing="0">
1825− <tbody>
1826− <tr style="font-weight: bold;">
1827− <td valign="top" >Owner Module/Drivers</td>
1828− <td valign="top" >Group</td>
1829− <td valign="top" >Property Name</td>
1830− <td valign="top" >Type</td>
1831− <td valign="top" >Property Values</td>
1832− <td valign="top" >Object attached</td>
1833− <td valign="top" >Description/Restrictions</td>
1834− </tr>
1835− <tr>
1836− <td rowspan="42" valign="top" >DRM</td>
1837− <td rowspan="2" valign="top" >Generic</td>
1838− <td valign="top" >“rotation”</td>
1839− <td valign="top" >BITMASK</td>
1840− <td valign="top" >{ 0, "rotate-0" },
1841− { 1, "rotate-90" },
1842− { 2, "rotate-180" },
1843− { 3, "rotate-270" },
1844− { 4, "reflect-x" },
1845− { 5, "reflect-y" }</td>
1846− <td valign="top" >CRTC, Plane</td>
1847− <td valign="top" >rotate-(degrees) rotates the image by the specified amount in degrees
1848− in counter clockwise direction. reflect-x and reflect-y reflects the
1849− image along the specified axis prior to rotation</td>
1850− </tr>
1851− <tr>
1852− <td valign="top" >“scaling mode”</td>
1853− <td valign="top" >ENUM</td>
1854− <td valign="top" >{ "None", "Full", "Center", "Full aspect" }</td>
1855− <td valign="top" >Connector</td>
1856− <td valign="top" >Supported by: amdgpu, gma500, i915, nouveau and radeon.</td>
1857− </tr>
1858− <tr>
1859− <td rowspan="5" valign="top" >Connector</td>
1860− <td valign="top" >“EDID”</td>
1861− <td valign="top" >BLOB | IMMUTABLE</td>
1862− <td valign="top" >0</td>
1863− <td valign="top" >Connector</td>
1864− <td valign="top" >Contains id of edid blob ptr object.</td>
1865− </tr>
1866− <tr>
1867− <td valign="top" >“DPMS”</td>
1868− <td valign="top" >ENUM</td>
1869− <td valign="top" >{ “On”, “Standby”, “Suspend”, “Off” }</td>
1870− <td valign="top" >Connector</td>
1871− <td valign="top" >Contains DPMS operation mode value.</td>
1872− </tr>
1873− <tr>
1874− <td valign="top" >“PATH”</td>
1875− <td valign="top" >BLOB | IMMUTABLE</td>
1876− <td valign="top" >0</td>
1877− <td valign="top" >Connector</td>
1878− <td valign="top" >Contains topology path to a connector.</td>
1879− </tr>
1880− <tr>
1881− <td valign="top" >“TILE”</td>
1882− <td valign="top" >BLOB | IMMUTABLE</td>
1883− <td valign="top" >0</td>
1884− <td valign="top" >Connector</td>
1885− <td valign="top" >Contains tiling information for a connector.</td>
1886− </tr>
1887− <tr>
1888− <td valign="top" >“CRTC_ID”</td>
1889− <td valign="top" >OBJECT</td>
1890− <td valign="top" >DRM_MODE_OBJECT_CRTC</td>
1891− <td valign="top" >Connector</td>
1892− <td valign="top" >CRTC that connector is attached to (atomic)</td>
1893− </tr>
1894− <tr>
1895− <td rowspan="11" valign="top" >Plane</td>
1896− <td valign="top" >“type”</td>
1897− <td valign="top" >ENUM | IMMUTABLE</td>
1898− <td valign="top" >{ "Overlay", "Primary", "Cursor" }</td>
1899− <td valign="top" >Plane</td>
1900− <td valign="top" >Plane type</td>
1901− </tr>
1902− <tr>
1903− <td valign="top" >“SRC_X”</td>
1904− <td valign="top" >RANGE</td>
1905− <td valign="top" >Min=0, Max=UINT_MAX</td>
1906− <td valign="top" >Plane</td>
1907− <td valign="top" >Scanout source x coordinate in 16.16 fixed point (atomic)</td>
1908− </tr>
1909− <tr>
1910− <td valign="top" >“SRC_Y”</td>
1911− <td valign="top" >RANGE</td>
1912− <td valign="top" >Min=0, Max=UINT_MAX</td>
1913− <td valign="top" >Plane</td>
1914− <td valign="top" >Scanout source y coordinate in 16.16 fixed point (atomic)</td>
1915− </tr>
1916− <tr>
1917− <td valign="top" >“SRC_W”</td>
1918− <td valign="top" >RANGE</td>
1919− <td valign="top" >Min=0, Max=UINT_MAX</td>
1920− <td valign="top" >Plane</td>
1921− <td valign="top" >Scanout source width in 16.16 fixed point (atomic)</td>
1922− </tr>
1923− <tr>
1924− <td valign="top" >“SRC_H”</td>
1925− <td valign="top" >RANGE</td>
1926− <td valign="top" >Min=0, Max=UINT_MAX</td>
1927− <td valign="top" >Plane</td>
1928− <td valign="top" >Scanout source height in 16.16 fixed point (atomic)</td>
1929− </tr>
1930− <tr>
1931− <td valign="top" >“CRTC_X”</td>
1932− <td valign="top" >SIGNED_RANGE</td>
1933− <td valign="top" >Min=INT_MIN, Max=INT_MAX</td>
1934− <td valign="top" >Plane</td>
1935− <td valign="top" >Scanout CRTC (destination) x coordinate (atomic)</td>
1936− </tr>
1937− <tr>
1938− <td valign="top" >“CRTC_Y”</td>
1939− <td valign="top" >SIGNED_RANGE</td>
1940− <td valign="top" >Min=INT_MIN, Max=INT_MAX</td>
1941− <td valign="top" >Plane</td>
1942− <td valign="top" >Scanout CRTC (destination) y coordinate (atomic)</td>
1943− </tr>
1944− <tr>
1945− <td valign="top" >“CRTC_W”</td>
1946− <td valign="top" >RANGE</td>
1947− <td valign="top" >Min=0, Max=UINT_MAX</td>
1948− <td valign="top" >Plane</td>
1949− <td valign="top" >Scanout CRTC (destination) width (atomic)</td>
1950− </tr>
1951− <tr>
1952− <td valign="top" >“CRTC_H”</td>
1953− <td valign="top" >RANGE</td>
1954− <td valign="top" >Min=0, Max=UINT_MAX</td>
1955− <td valign="top" >Plane</td>
1956− <td valign="top" >Scanout CRTC (destination) height (atomic)</td>
1957− </tr>
1958− <tr>
1959− <td valign="top" >“FB_ID”</td>
1960− <td valign="top" >OBJECT</td>
1961− <td valign="top" >DRM_MODE_OBJECT_FB</td>
1962− <td valign="top" >Plane</td>
1963− <td valign="top" >Scanout framebuffer (atomic)</td>
1964− </tr>
1965− <tr>
1966− <td valign="top" >“CRTC_ID”</td>
1967− <td valign="top" >OBJECT</td>
1968− <td valign="top" >DRM_MODE_OBJECT_CRTC</td>
1969− <td valign="top" >Plane</td>
1970− <td valign="top" >CRTC that plane is attached to (atomic)</td>
1971− </tr>
1972− <tr>
1973− <td rowspan="2" valign="top" >DVI-I</td>
1974− <td valign="top" >“subconnector”</td>
1975− <td valign="top" >ENUM</td>
1976− <td valign="top" >{ “Unknown”, “DVI-D”, “DVI-A” }</td>
1977− <td valign="top" >Connector</td>
1978− <td valign="top" >TBD</td>
1979− </tr>
1980− <tr>
1981− <td valign="top" >“select subconnector”</td>
1982− <td valign="top" >ENUM</td>
1983− <td valign="top" >{ “Automatic”, “DVI-D”, “DVI-A” }</td>
1984− <td valign="top" >Connector</td>
1985− <td valign="top" >TBD</td>
1986− </tr>
1987− <tr>
1988− <td rowspan="13" valign="top" >TV</td>
1989− <td valign="top" >“subconnector”</td>
1990− <td valign="top" >ENUM</td>
1991− <td valign="top" >{ "Unknown", "Composite", "SVIDEO", "Component", "SCART" }</td>
1992− <td valign="top" >Connector</td>
1993− <td valign="top" >TBD</td>
1994− </tr>
1995− <tr>
1996− <td valign="top" >“select subconnector”</td>
1997− <td valign="top" >ENUM</td>
1998− <td valign="top" >{ "Automatic", "Composite", "SVIDEO", "Component", "SCART" }</td>
1999− <td valign="top" >Connector</td>
2000− <td valign="top" >TBD</td>
2001− </tr>
2002− <tr>
2003− <td valign="top" >“mode”</td>
2004− <td valign="top" >ENUM</td>
2005− <td valign="top" >{ "NTSC_M", "NTSC_J", "NTSC_443", "PAL_B" } etc.</td>
2006− <td valign="top" >Connector</td>
2007− <td valign="top" >TBD</td>
2008− </tr>
2009− <tr>
2010− <td valign="top" >“left margin”</td>
2011− <td valign="top" >RANGE</td>
2012− <td valign="top" >Min=0, Max=100</td>
2013− <td valign="top" >Connector</td>
2014− <td valign="top" >TBD</td>
2015− </tr>
2016− <tr>
2017− <td valign="top" >“right margin”</td>
2018− <td valign="top" >RANGE</td>
2019− <td valign="top" >Min=0, Max=100</td>
2020− <td valign="top" >Connector</td>
2021− <td valign="top" >TBD</td>
2022− </tr>
2023− <tr>
2024− <td valign="top" >“top margin”</td>
2025− <td valign="top" >RANGE</td>
2026− <td valign="top" >Min=0, Max=100</td>
2027− <td valign="top" >Connector</td>
2028− <td valign="top" >TBD</td>
2029− </tr>
2030− <tr>
2031− <td valign="top" >“bottom margin”</td>
2032− <td valign="top" >RANGE</td>
2033− <td valign="top" >Min=0, Max=100</td>
2034− <td valign="top" >Connector</td>
2035− <td valign="top" >TBD</td>
2036− </tr>
2037− <tr>
2038− <td valign="top" >“brightness”</td>
2039− <td valign="top" >RANGE</td>
2040− <td valign="top" >Min=0, Max=100</td>
2041− <td valign="top" >Connector</td>
2042− <td valign="top" >TBD</td>
2043− </tr>
2044− <tr>
2045− <td valign="top" >“contrast”</td>
2046− <td valign="top" >RANGE</td>
2047− <td valign="top" >Min=0, Max=100</td>
2048− <td valign="top" >Connector</td>
2049− <td valign="top" >TBD</td>
2050− </tr>
2051− <tr>
2052− <td valign="top" >“flicker reduction”</td>
2053− <td valign="top" >RANGE</td>
2054− <td valign="top" >Min=0, Max=100</td>
2055− <td valign="top" >Connector</td>
2056− <td valign="top" >TBD</td>
2057− </tr>
2058− <tr>
2059− <td valign="top" >“overscan”</td>
2060− <td valign="top" >RANGE</td>
2061− <td valign="top" >Min=0, Max=100</td>
2062− <td valign="top" >Connector</td>
2063− <td valign="top" >TBD</td>
2064− </tr>
2065− <tr>
2066− <td valign="top" >“saturation”</td>
2067− <td valign="top" >RANGE</td>
2068− <td valign="top" >Min=0, Max=100</td>
2069− <td valign="top" >Connector</td>
2070− <td valign="top" >TBD</td>
2071− </tr>
2072− <tr>
2073− <td valign="top" >“hue”</td>
2074− <td valign="top" >RANGE</td>
2075− <td valign="top" >Min=0, Max=100</td>
2076− <td valign="top" >Connector</td>
2077− <td valign="top" >TBD</td>
2078− </tr>
2079− <tr>
2080− <td rowspan="2" valign="top" >Virtual GPU</td>
2081− <td valign="top" >“suggested X”</td>
2082− <td valign="top" >RANGE</td>
2083− <td valign="top" >Min=0, Max=0xffffffff</td>
2084− <td valign="top" >Connector</td>
2085− <td valign="top" >property to suggest an X offset for a connector</td>
2086− </tr>
2087− <tr>
2088− <td valign="top" >“suggested Y”</td>
2089− <td valign="top" >RANGE</td>
2090− <td valign="top" >Min=0, Max=0xffffffff</td>
2091− <td valign="top" >Connector</td>
2092− <td valign="top" >property to suggest an Y offset for a connector</td>
2093− </tr>
2094− <tr>
2095− <td rowspan="7" valign="top" >Optional</td>
2096− <td valign="top" >"aspect ratio"</td>
2097− <td valign="top" >ENUM</td>
2098− <td valign="top" >{ "None", "4:3", "16:9" }</td>
2099− <td valign="top" >Connector</td>
2100− <td valign="top" >TDB</td>
2101− </tr>
2102− <tr>
2103− <td valign="top" >“dirty”</td>
2104− <td valign="top" >ENUM | IMMUTABLE</td>
2105− <td valign="top" >{ "Off", "On", "Annotate" }</td>
2106− <td valign="top" >Connector</td>
2107− <td valign="top" >TBD</td>
2108− </tr>
2109− <tr>
2110− <td valign="top" >“DEGAMMA_LUT”</td>
2111− <td valign="top" >BLOB</td>
2112− <td valign="top" >0</td>
2113− <td valign="top" >CRTC</td>
2114− <td valign="top" >DRM property to set the degamma lookup table
2115− (LUT) mapping pixel data from the framebuffer before it is
2116− given to the transformation matrix. The data is an interpreted
2117− as an array of struct drm_color_lut elements. Hardware might
2118− choose not to use the full precision of the LUT elements nor
2119− use all the elements of the LUT (for example the hardware
2120− might choose to interpolate between LUT[0] and LUT[4]). </td>
2121− </tr>
2122− <tr>
2123− <td valign="top" >“DEGAMMA_LUT_SIZE”</td>
2124− <td valign="top" >RANGE | IMMUTABLE</td>
2125− <td valign="top" >Min=0, Max=UINT_MAX</td>
2126− <td valign="top" >CRTC</td>
2127− <td valign="top" >DRM property to gives the size of the lookup
2128− table to be set on the DEGAMMA_LUT property (the size depends
2129− on the underlying hardware).</td>
2130− </tr>
2131− <tr>
2132− <td valign="top" >“CTM”</td>
2133− <td valign="top" >BLOB</td>
2134− <td valign="top" >0</td>
2135− <td valign="top" >CRTC</td>
2136− <td valign="top" >DRM property to set the current
2137− transformation matrix (CTM) apply to pixel data after the
2138− lookup through the degamma LUT and before the lookup through
2139− the gamma LUT. The data is an interpreted as a struct
2140− drm_color_ctm.</td>
2141− </tr>
2142− <tr>
2143− <td valign="top" >“GAMMA_LUT”</td>
2144− <td valign="top" >BLOB</td>
2145− <td valign="top" >0</td>
2146− <td valign="top" >CRTC</td>
2147− <td valign="top" >DRM property to set the gamma lookup table
2148− (LUT) mapping pixel data after to the transformation matrix to
2149− data sent to the connector. The data is an interpreted as an
2150− array of struct drm_color_lut elements. Hardware might choose
2151− not to use the full precision of the LUT elements nor use all
2152− the elements of the LUT (for example the hardware might choose
2153− to interpolate between LUT[0] and LUT[4]).</td>
2154− </tr>
2155− <tr>
2156− <td valign="top" >“GAMMA_LUT_SIZE”</td>
2157− <td valign="top" >RANGE | IMMUTABLE</td>
2158− <td valign="top" >Min=0, Max=UINT_MAX</td>
2159− <td valign="top" >CRTC</td>
2160− <td valign="top" >DRM property to gives the size of the lookup
2161− table to be set on the GAMMA_LUT property (the size depends on
2162− the underlying hardware).</td>
2163− </tr>
2164− <tr>
2165− <td rowspan="20" valign="top" >i915</td>
2166− <td rowspan="2" valign="top" >Generic</td>
2167− <td valign="top" >"Broadcast RGB"</td>
2168− <td valign="top" >ENUM</td>
2169− <td valign="top" >{ "Automatic", "Full", "Limited 16:235" }</td>
2170− <td valign="top" >Connector</td>
2171− <td valign="top" >When this property is set to Limited 16:235
2172− and CTM is set, the hardware will be programmed with the
2173− result of the multiplication of CTM by the limited range
2174− matrix to ensure the pixels normaly in the range 0..1.0 are
2175− remapped to the range 16/255..235/255.</td>
2176− </tr>
2177− <tr>
2178− <td valign="top" >“audio”</td>
2179− <td valign="top" >ENUM</td>
2180− <td valign="top" >{ "force-dvi", "off", "auto", "on" }</td>
2181− <td valign="top" >Connector</td>
2182− <td valign="top" >TBD</td>
2183− </tr>
2184− <tr>
2185− <td rowspan="17" valign="top" >SDVO-TV</td>
2186− <td valign="top" >“mode”</td>
2187− <td valign="top" >ENUM</td>
2188− <td valign="top" >{ "NTSC_M", "NTSC_J", "NTSC_443", "PAL_B" } etc.</td>
2189− <td valign="top" >Connector</td>
2190− <td valign="top" >TBD</td>
2191− </tr>
2192− <tr>
2193− <td valign="top" >"left_margin"</td>
2194− <td valign="top" >RANGE</td>
2195− <td valign="top" >Min=0, Max= SDVO dependent</td>
2196− <td valign="top" >Connector</td>
2197− <td valign="top" >TBD</td>
2198− </tr>
2199− <tr>
2200− <td valign="top" >"right_margin"</td>
2201− <td valign="top" >RANGE</td>
2202− <td valign="top" >Min=0, Max= SDVO dependent</td>
2203− <td valign="top" >Connector</td>
2204− <td valign="top" >TBD</td>
2205− </tr>
2206− <tr>
2207− <td valign="top" >"top_margin"</td>
2208− <td valign="top" >RANGE</td>
2209− <td valign="top" >Min=0, Max= SDVO dependent</td>
2210− <td valign="top" >Connector</td>
2211− <td valign="top" >TBD</td>
2212− </tr>
2213− <tr>
2214− <td valign="top" >"bottom_margin"</td>
2215− <td valign="top" >RANGE</td>
2216− <td valign="top" >Min=0, Max= SDVO dependent</td>
2217− <td valign="top" >Connector</td>
2218− <td valign="top" >TBD</td>
2219− </tr>
2220− <tr>
2221− <td valign="top" >“hpos”</td>
2222− <td valign="top" >RANGE</td>
2223− <td valign="top" >Min=0, Max= SDVO dependent</td>
2224− <td valign="top" >Connector</td>
2225− <td valign="top" >TBD</td>
2226− </tr>
2227− <tr>
2228− <td valign="top" >“vpos”</td>
2229− <td valign="top" >RANGE</td>
2230− <td valign="top" >Min=0, Max= SDVO dependent</td>
2231− <td valign="top" >Connector</td>
2232− <td valign="top" >TBD</td>
2233− </tr>
2234− <tr>
2235− <td valign="top" >“contrast”</td>
2236− <td valign="top" >RANGE</td>
2237− <td valign="top" >Min=0, Max= SDVO dependent</td>
2238− <td valign="top" >Connector</td>
2239− <td valign="top" >TBD</td>
2240− </tr>
2241− <tr>
2242− <td valign="top" >“saturation”</td>
2243− <td valign="top" >RANGE</td>
2244− <td valign="top" >Min=0, Max= SDVO dependent</td>
2245− <td valign="top" >Connector</td>
2246− <td valign="top" >TBD</td>
2247− </tr>
2248− <tr>
2249− <td valign="top" >“hue”</td>
2250− <td valign="top" >RANGE</td>
2251− <td valign="top" >Min=0, Max= SDVO dependent</td>
2252− <td valign="top" >Connector</td>
2253− <td valign="top" >TBD</td>
2254− </tr>
2255− <tr>
2256− <td valign="top" >“sharpness”</td>
2257− <td valign="top" >RANGE</td>
2258− <td valign="top" >Min=0, Max= SDVO dependent</td>
2259− <td valign="top" >Connector</td>
2260− <td valign="top" >TBD</td>
2261− </tr>
2262− <tr>
2263− <td valign="top" >“flicker_filter”</td>
2264− <td valign="top" >RANGE</td>
2265− <td valign="top" >Min=0, Max= SDVO dependent</td>
2266− <td valign="top" >Connector</td>
2267− <td valign="top" >TBD</td>
2268− </tr>
2269− <tr>
2270− <td valign="top" >“flicker_filter_adaptive”</td>
2271− <td valign="top" >RANGE</td>
2272− <td valign="top" >Min=0, Max= SDVO dependent</td>
2273− <td valign="top" >Connector</td>
2274− <td valign="top" >TBD</td>
2275− </tr>
2276− <tr>
2277− <td valign="top" >“flicker_filter_2d”</td>
2278− <td valign="top" >RANGE</td>
2279− <td valign="top" >Min=0, Max= SDVO dependent</td>
2280− <td valign="top" >Connector</td>
2281− <td valign="top" >TBD</td>
2282− </tr>
2283− <tr>
2284− <td valign="top" >“tv_chroma_filter”</td>
2285− <td valign="top" >RANGE</td>
2286− <td valign="top" >Min=0, Max= SDVO dependent</td>
2287− <td valign="top" >Connector</td>
2288− <td valign="top" >TBD</td>
2289− </tr>
2290− <tr>
2291− <td valign="top" >“tv_luma_filter”</td>
2292− <td valign="top" >RANGE</td>
2293− <td valign="top" >Min=0, Max= SDVO dependent</td>
2294− <td valign="top" >Connector</td>
2295− <td valign="top" >TBD</td>
2296− </tr>
2297− <tr>
2298− <td valign="top" >“dot_crawl”</td>
2299− <td valign="top" >RANGE</td>
2300− <td valign="top" >Min=0, Max=1</td>
2301− <td valign="top" >Connector</td>
2302− <td valign="top" >TBD</td>
2303− </tr>
2304− <tr>
2305− <td valign="top" >SDVO-TV/LVDS</td>
2306− <td valign="top" >“brightness”</td>
2307− <td valign="top" >RANGE</td>
2308− <td valign="top" >Min=0, Max= SDVO dependent</td>
2309− <td valign="top" >Connector</td>
2310− <td valign="top" >TBD</td>
2311− </tr>
2312− <tr>
2313− <td rowspan="2" valign="top" >CDV gma-500</td>
2314− <td rowspan="2" valign="top" >Generic</td>
2315− <td valign="top" >"Broadcast RGB"</td>
2316− <td valign="top" >ENUM</td>
2317− <td valign="top" >{ “Full”, “Limited 16:235” }</td>
2318− <td valign="top" >Connector</td>
2319− <td valign="top" >TBD</td>
2320− </tr>
2321− <tr>
2322− <td valign="top" >"Broadcast RGB"</td>
2323− <td valign="top" >ENUM</td>
2324− <td valign="top" >{ “off”, “auto”, “on” }</td>
2325− <td valign="top" >Connector</td>
2326− <td valign="top" >TBD</td>
2327− </tr>
2328− <tr>
2329− <td rowspan="19" valign="top" >Poulsbo</td>
2330− <td rowspan="1" valign="top" >Generic</td>
2331− <td valign="top" >“backlight”</td>
2332− <td valign="top" >RANGE</td>
2333− <td valign="top" >Min=0, Max=100</td>
2334− <td valign="top" >Connector</td>
2335− <td valign="top" >TBD</td>
2336− </tr>
2337− <tr>
2338− <td rowspan="17" valign="top" >SDVO-TV</td>
2339− <td valign="top" >“mode”</td>
2340− <td valign="top" >ENUM</td>
2341− <td valign="top" >{ "NTSC_M", "NTSC_J", "NTSC_443", "PAL_B" } etc.</td>
2342− <td valign="top" >Connector</td>
2343− <td valign="top" >TBD</td>
2344− </tr>
2345− <tr>
2346− <td valign="top" >"left_margin"</td>
2347− <td valign="top" >RANGE</td>
2348− <td valign="top" >Min=0, Max= SDVO dependent</td>
2349− <td valign="top" >Connector</td>
2350− <td valign="top" >TBD</td>
2351− </tr>
2352− <tr>
2353− <td valign="top" >"right_margin"</td>
2354− <td valign="top" >RANGE</td>
2355− <td valign="top" >Min=0, Max= SDVO dependent</td>
2356− <td valign="top" >Connector</td>
2357− <td valign="top" >TBD</td>
2358− </tr>
2359− <tr>
2360− <td valign="top" >"top_margin"</td>
2361− <td valign="top" >RANGE</td>
2362− <td valign="top" >Min=0, Max= SDVO dependent</td>
2363− <td valign="top" >Connector</td>
2364− <td valign="top" >TBD</td>
2365− </tr>
2366− <tr>
2367− <td valign="top" >"bottom_margin"</td>
2368− <td valign="top" >RANGE</td>
2369− <td valign="top" >Min=0, Max= SDVO dependent</td>
2370− <td valign="top" >Connector</td>
2371− <td valign="top" >TBD</td>
2372− </tr>
2373− <tr>
2374− <td valign="top" >“hpos”</td>
2375− <td valign="top" >RANGE</td>
2376− <td valign="top" >Min=0, Max= SDVO dependent</td>
2377− <td valign="top" >Connector</td>
2378− <td valign="top" >TBD</td>
2379− </tr>
2380− <tr>
2381− <td valign="top" >“vpos”</td>
2382− <td valign="top" >RANGE</td>
2383− <td valign="top" >Min=0, Max= SDVO dependent</td>
2384− <td valign="top" >Connector</td>
2385− <td valign="top" >TBD</td>
2386− </tr>
2387− <tr>
2388− <td valign="top" >“contrast”</td>
2389− <td valign="top" >RANGE</td>
2390− <td valign="top" >Min=0, Max= SDVO dependent</td>
2391− <td valign="top" >Connector</td>
2392− <td valign="top" >TBD</td>
2393− </tr>
2394− <tr>
2395− <td valign="top" >“saturation”</td>
2396− <td valign="top" >RANGE</td>
2397− <td valign="top" >Min=0, Max= SDVO dependent</td>
2398− <td valign="top" >Connector</td>
2399− <td valign="top" >TBD</td>
2400− </tr>
2401− <tr>
2402− <td valign="top" >“hue”</td>
2403− <td valign="top" >RANGE</td>
2404− <td valign="top" >Min=0, Max= SDVO dependent</td>
2405− <td valign="top" >Connector</td>
2406− <td valign="top" >TBD</td>
2407− </tr>
2408− <tr>
2409− <td valign="top" >“sharpness”</td>
2410− <td valign="top" >RANGE</td>
2411− <td valign="top" >Min=0, Max= SDVO dependent</td>
2412− <td valign="top" >Connector</td>
2413− <td valign="top" >TBD</td>
2414− </tr>
2415− <tr>
2416− <td valign="top" >“flicker_filter”</td>
2417− <td valign="top" >RANGE</td>
2418− <td valign="top" >Min=0, Max= SDVO dependent</td>
2419− <td valign="top" >Connector</td>
2420− <td valign="top" >TBD</td>
2421− </tr>
2422− <tr>
2423− <td valign="top" >“flicker_filter_adaptive”</td>
2424− <td valign="top" >RANGE</td>
2425− <td valign="top" >Min=0, Max= SDVO dependent</td>
2426− <td valign="top" >Connector</td>
2427− <td valign="top" >TBD</td>
2428− </tr>
2429− <tr>
2430− <td valign="top" >“flicker_filter_2d”</td>
2431− <td valign="top" >RANGE</td>
2432− <td valign="top" >Min=0, Max= SDVO dependent</td>
2433− <td valign="top" >Connector</td>
2434− <td valign="top" >TBD</td>
2435− </tr>
2436− <tr>
2437− <td valign="top" >“tv_chroma_filter”</td>
2438− <td valign="top" >RANGE</td>
2439− <td valign="top" >Min=0, Max= SDVO dependent</td>
2440− <td valign="top" >Connector</td>
2441− <td valign="top" >TBD</td>
2442− </tr>
2443− <tr>
2444− <td valign="top" >“tv_luma_filter”</td>
2445− <td valign="top" >RANGE</td>
2446− <td valign="top" >Min=0, Max= SDVO dependent</td>
2447− <td valign="top" >Connector</td>
2448− <td valign="top" >TBD</td>
2449− </tr>
2450− <tr>
2451− <td valign="top" >“dot_crawl”</td>
2452− <td valign="top" >RANGE</td>
2453− <td valign="top" >Min=0, Max=1</td>
2454− <td valign="top" >Connector</td>
2455− <td valign="top" >TBD</td>
2456− </tr>
2457− <tr>
2458− <td valign="top" >SDVO-TV/LVDS</td>
2459− <td valign="top" >“brightness”</td>
2460− <td valign="top" >RANGE</td>
2461− <td valign="top" >Min=0, Max= SDVO dependent</td>
2462− <td valign="top" >Connector</td>
2463− <td valign="top" >TBD</td>
2464− </tr>
2465− <tr>
2466− <td rowspan="11" valign="top" >armada</td>
2467− <td rowspan="2" valign="top" >CRTC</td>
2468− <td valign="top" >"CSC_YUV"</td>
2469− <td valign="top" >ENUM</td>
2470− <td valign="top" >{ "Auto" , "CCIR601", "CCIR709" }</td>
2471− <td valign="top" >CRTC</td>
2472− <td valign="top" >TBD</td>
2473− </tr>
2474− <tr>
2475− <td valign="top" >"CSC_RGB"</td>
2476− <td valign="top" >ENUM</td>
2477− <td valign="top" >{ "Auto", "Computer system", "Studio" }</td>
2478− <td valign="top" >CRTC</td>
2479− <td valign="top" >TBD</td>
2480− </tr>
2481− <tr>
2482− <td rowspan="9" valign="top" >Overlay</td>
2483− <td valign="top" >"colorkey"</td>
2484− <td valign="top" >RANGE</td>
2485− <td valign="top" >Min=0, Max=0xffffff</td>
2486− <td valign="top" >Plane</td>
2487− <td valign="top" >TBD</td>
2488− </tr>
2489− <tr>
2490− <td valign="top" >"colorkey_min"</td>
2491− <td valign="top" >RANGE</td>
2492− <td valign="top" >Min=0, Max=0xffffff</td>
2493− <td valign="top" >Plane</td>
2494− <td valign="top" >TBD</td>
2495− </tr>
2496− <tr>
2497− <td valign="top" >"colorkey_max"</td>
2498− <td valign="top" >RANGE</td>
2499− <td valign="top" >Min=0, Max=0xffffff</td>
2500− <td valign="top" >Plane</td>
2501− <td valign="top" >TBD</td>
2502− </tr>
2503− <tr>
2504− <td valign="top" >"colorkey_val"</td>
2505− <td valign="top" >RANGE</td>
2506− <td valign="top" >Min=0, Max=0xffffff</td>
2507− <td valign="top" >Plane</td>
2508− <td valign="top" >TBD</td>
2509− </tr>
2510− <tr>
2511− <td valign="top" >"colorkey_alpha"</td>
2512− <td valign="top" >RANGE</td>
2513− <td valign="top" >Min=0, Max=0xffffff</td>
2514− <td valign="top" >Plane</td>
2515− <td valign="top" >TBD</td>
2516− </tr>
2517− <tr>
2518− <td valign="top" >"colorkey_mode"</td>
2519− <td valign="top" >ENUM</td>
2520− <td valign="top" >{ "disabled", "Y component", "U component"
2521− , "V component", "RGB", “R component", "G component", "B component" }</td>
2522− <td valign="top" >Plane</td>
2523− <td valign="top" >TBD</td>
2524− </tr>
2525− <tr>
2526− <td valign="top" >"brightness"</td>
2527− <td valign="top" >RANGE</td>
2528− <td valign="top" >Min=0, Max=256 + 255</td>
2529− <td valign="top" >Plane</td>
2530− <td valign="top" >TBD</td>
2531− </tr>
2532− <tr>
2533− <td valign="top" >"contrast"</td>
2534− <td valign="top" >RANGE</td>
2535− <td valign="top" >Min=0, Max=0x7fff</td>
2536− <td valign="top" >Plane</td>
2537− <td valign="top" >TBD</td>
2538− </tr>
2539− <tr>
2540− <td valign="top" >"saturation"</td>
2541− <td valign="top" >RANGE</td>
2542− <td valign="top" >Min=0, Max=0x7fff</td>
2543− <td valign="top" >Plane</td>
2544− <td valign="top" >TBD</td>
2545− </tr>
2546− <tr>
2547− <td rowspan="2" valign="top" >exynos</td>
2548− <td valign="top" >CRTC</td>
2549− <td valign="top" >“mode”</td>
2550− <td valign="top" >ENUM</td>
2551− <td valign="top" >{ "normal", "blank" }</td>
2552− <td valign="top" >CRTC</td>
2553− <td valign="top" >TBD</td>
2554− </tr>
2555− <tr>
2556− <td valign="top" >Overlay</td>
2557− <td valign="top" >“zpos”</td>
2558− <td valign="top" >RANGE</td>
2559− <td valign="top" >Min=0, Max=MAX_PLANE-1</td>
2560− <td valign="top" >Plane</td>
2561− <td valign="top" >TBD</td>
2562− </tr>
2563− <tr>
2564− <td rowspan="2" valign="top" >i2c/ch7006_drv</td>
2565− <td valign="top" >Generic</td>
2566− <td valign="top" >“scale”</td>
2567− <td valign="top" >RANGE</td>
2568− <td valign="top" >Min=0, Max=2</td>
2569− <td valign="top" >Connector</td>
2570− <td valign="top" >TBD</td>
2571− </tr>
2572− <tr>
2573− <td rowspan="1" valign="top" >TV</td>
2574− <td valign="top" >“mode”</td>
2575− <td valign="top" >ENUM</td>
2576− <td valign="top" >{ "PAL", "PAL-M","PAL-N"}, ”PAL-Nc"
2577− , "PAL-60", "NTSC-M", "NTSC-J" }</td>
2578− <td valign="top" >Connector</td>
2579− <td valign="top" >TBD</td>
2580− </tr>
2581− <tr>
2582− <td rowspan="15" valign="top" >nouveau</td>
2583− <td rowspan="6" valign="top" >NV10 Overlay</td>
2584− <td valign="top" >"colorkey"</td>
2585− <td valign="top" >RANGE</td>
2586− <td valign="top" >Min=0, Max=0x01ffffff</td>
2587− <td valign="top" >Plane</td>
2588− <td valign="top" >TBD</td>
2589− </tr>
2590− <tr>
2591− <td valign="top" >“contrast”</td>
2592− <td valign="top" >RANGE</td>
2593− <td valign="top" >Min=0, Max=8192-1</td>
2594− <td valign="top" >Plane</td>
2595− <td valign="top" >TBD</td>
2596− </tr>
2597− <tr>
2598− <td valign="top" >“brightness”</td>
2599− <td valign="top" >RANGE</td>
2600− <td valign="top" >Min=0, Max=1024</td>
2601− <td valign="top" >Plane</td>
2602− <td valign="top" >TBD</td>
2603− </tr>
2604− <tr>
2605− <td valign="top" >“hue”</td>
2606− <td valign="top" >RANGE</td>
2607− <td valign="top" >Min=0, Max=359</td>
2608− <td valign="top" >Plane</td>
2609− <td valign="top" >TBD</td>
2610− </tr>
2611− <tr>
2612− <td valign="top" >“saturation”</td>
2613− <td valign="top" >RANGE</td>
2614− <td valign="top" >Min=0, Max=8192-1</td>
2615− <td valign="top" >Plane</td>
2616− <td valign="top" >TBD</td>
2617− </tr>
2618− <tr>
2619− <td valign="top" >“iturbt_709”</td>
2620− <td valign="top" >RANGE</td>
2621− <td valign="top" >Min=0, Max=1</td>
2622− <td valign="top" >Plane</td>
2623− <td valign="top" >TBD</td>
2624− </tr>
2625− <tr>
2626− <td rowspan="2" valign="top" >Nv04 Overlay</td>
2627− <td valign="top" >“colorkey”</td>
2628− <td valign="top" >RANGE</td>
2629− <td valign="top" >Min=0, Max=0x01ffffff</td>
2630− <td valign="top" >Plane</td>
2631− <td valign="top" >TBD</td>
2632− </tr>
2633− <tr>
2634− <td valign="top" >“brightness”</td>
2635− <td valign="top" >RANGE</td>
2636− <td valign="top" >Min=0, Max=1024</td>
2637− <td valign="top" >Plane</td>
2638− <td valign="top" >TBD</td>
2639− </tr>
2640− <tr>
2641− <td rowspan="7" valign="top" >Display</td>
2642− <td valign="top" >“dithering mode”</td>
2643− <td valign="top" >ENUM</td>
2644− <td valign="top" >{ "auto", "off", "on" }</td>
2645− <td valign="top" >Connector</td>
2646− <td valign="top" >TBD</td>
2647− </tr>
2648− <tr>
2649− <td valign="top" >“dithering depth”</td>
2650− <td valign="top" >ENUM</td>
2651− <td valign="top" >{ "auto", "off", "on", "static 2x2", "dynamic 2x2", "temporal" }</td>
2652− <td valign="top" >Connector</td>
2653− <td valign="top" >TBD</td>
2654− </tr>
2655− <tr>
2656− <td valign="top" >“underscan”</td>
2657− <td valign="top" >ENUM</td>
2658− <td valign="top" >{ "auto", "6 bpc", "8 bpc" }</td>
2659− <td valign="top" >Connector</td>
2660− <td valign="top" >TBD</td>
2661− </tr>
2662− <tr>
2663− <td valign="top" >“underscan hborder”</td>
2664− <td valign="top" >RANGE</td>
2665− <td valign="top" >Min=0, Max=128</td>
2666− <td valign="top" >Connector</td>
2667− <td valign="top" >TBD</td>
2668− </tr>
2669− <tr>
2670− <td valign="top" >“underscan vborder”</td>
2671− <td valign="top" >RANGE</td>
2672− <td valign="top" >Min=0, Max=128</td>
2673− <td valign="top" >Connector</td>
2674− <td valign="top" >TBD</td>
2675− </tr>
2676− <tr>
2677− <td valign="top" >“vibrant hue”</td>
2678− <td valign="top" >RANGE</td>
2679− <td valign="top" >Min=0, Max=180</td>
2680− <td valign="top" >Connector</td>
2681− <td valign="top" >TBD</td>
2682− </tr>
2683− <tr>
2684− <td valign="top" >“color vibrance”</td>
2685− <td valign="top" >RANGE</td>
2686− <td valign="top" >Min=0, Max=200</td>
2687− <td valign="top" >Connector</td>
2688− <td valign="top" >TBD</td>
2689− </tr>
2690− <tr>
2691− <td valign="top" >omap</td>
2692− <td valign="top" >Generic</td>
2693− <td valign="top" >“zorder”</td>
2694− <td valign="top" >RANGE</td>
2695− <td valign="top" >Min=0, Max=3</td>
2696− <td valign="top" >CRTC, Plane</td>
2697− <td valign="top" >TBD</td>
2698− </tr>
2699− <tr>
2700− <td valign="top" >qxl</td>
2701− <td valign="top" >Generic</td>
2702− <td valign="top" >“hotplug_mode_update"</td>
2703− <td valign="top" >RANGE</td>
2704− <td valign="top" >Min=0, Max=1</td>
2705− <td valign="top" >Connector</td>
2706− <td valign="top" >TBD</td>
2707− </tr>
2708− <tr>
2709− <td rowspan="9" valign="top" >radeon</td>
2710− <td valign="top" >DVI-I</td>
2711− <td valign="top" >“coherent”</td>
2712− <td valign="top" >RANGE</td>
2713− <td valign="top" >Min=0, Max=1</td>
2714− <td valign="top" >Connector</td>
2715− <td valign="top" >TBD</td>
2716− </tr>
2717− <tr>
2718− <td valign="top" >DAC enable load detect</td>
2719− <td valign="top" >“load detection”</td>
2720− <td valign="top" >RANGE</td>
2721− <td valign="top" >Min=0, Max=1</td>
2722− <td valign="top" >Connector</td>
2723− <td valign="top" >TBD</td>
2724− </tr>
2725− <tr>
2726− <td valign="top" >TV Standard</td>
2727− <td valign="top" >"tv standard"</td>
2728− <td valign="top" >ENUM</td>
2729− <td valign="top" >{ "ntsc", "pal", "pal-m", "pal-60", "ntsc-j"
2730− , "scart-pal", "pal-cn", "secam" }</td>
2731− <td valign="top" >Connector</td>
2732− <td valign="top" >TBD</td>
2733− </tr>
2734− <tr>
2735− <td valign="top" >legacy TMDS PLL detect</td>
2736− <td valign="top" >"tmds_pll"</td>
2737− <td valign="top" >ENUM</td>
2738− <td valign="top" >{ "driver", "bios" }</td>
2739− <td valign="top" >-</td>
2740− <td valign="top" >TBD</td>
2741− </tr>
2742− <tr>
2743− <td rowspan="3" valign="top" >Underscan</td>
2744− <td valign="top" >"underscan"</td>
2745− <td valign="top" >ENUM</td>
2746− <td valign="top" >{ "off", "on", "auto" }</td>
2747− <td valign="top" >Connector</td>
2748− <td valign="top" >TBD</td>
2749− </tr>
2750− <tr>
2751− <td valign="top" >"underscan hborder"</td>
2752− <td valign="top" >RANGE</td>
2753− <td valign="top" >Min=0, Max=128</td>
2754− <td valign="top" >Connector</td>
2755− <td valign="top" >TBD</td>
2756− </tr>
2757− <tr>
2758− <td valign="top" >"underscan vborder"</td>
2759− <td valign="top" >RANGE</td>
2760− <td valign="top" >Min=0, Max=128</td>
2761− <td valign="top" >Connector</td>
2762− <td valign="top" >TBD</td>
2763− </tr>
2764− <tr>
2765− <td valign="top" >Audio</td>
2766− <td valign="top" >“audio”</td>
2767− <td valign="top" >ENUM</td>
2768− <td valign="top" >{ "off", "on", "auto" }</td>
2769− <td valign="top" >Connector</td>
2770− <td valign="top" >TBD</td>
2771− </tr>
2772− <tr>
2773− <td valign="top" >FMT Dithering</td>
2774− <td valign="top" >“dither”</td>
2775− <td valign="top" >ENUM</td>
2776− <td valign="top" >{ "off", "on" }</td>
2777− <td valign="top" >Connector</td>
2778− <td valign="top" >TBD</td>
2779− </tr>
2780− <tr>
2781− <td rowspan="3" valign="top" >rcar-du</td>
2782− <td rowspan="3" valign="top" >Generic</td>
2783− <td valign="top" >"alpha"</td>
2784− <td valign="top" >RANGE</td>
2785− <td valign="top" >Min=0, Max=255</td>
2786− <td valign="top" >Plane</td>
2787− <td valign="top" >TBD</td>
2788− </tr>
2789− <tr>
2790− <td valign="top" >"colorkey"</td>
2791− <td valign="top" >RANGE</td>
2792− <td valign="top" >Min=0, Max=0x01ffffff</td>
2793− <td valign="top" >Plane</td>
2794− <td valign="top" >TBD</td>
2795− </tr>
2796− <tr>
2797− <td valign="top" >"zpos"</td>
2798− <td valign="top" >RANGE</td>
2799− <td valign="top" >Min=1, Max=7</td>
2800− <td valign="top" >Plane</td>
2801− <td valign="top" >TBD</td>
2802− </tr>
2803− </tbody>
2804− </table>
2805− </sect2>
2806− </sect1>
2807−
2808− <!-- Internals: vertical blanking -->
2809−
2810− <sect1 id="drm-vertical-blank">
2811− <title>Vertical Blanking</title>
2812− <para>
2813− Vertical blanking plays a major role in graphics rendering. To achieve
2814− tear-free display, users must synchronize page flips and/or rendering to
2815− vertical blanking. The DRM API offers ioctls to perform page flips
2816− synchronized to vertical blanking and wait for vertical blanking.
2817− </para>
2818− <para>
2819− The DRM core handles most of the vertical blanking management logic, which
2820− involves filtering out spurious interrupts, keeping race-free blanking
2821− counters, coping with counter wrap-around and resets and keeping use
2822− counts. It relies on the driver to generate vertical blanking interrupts
2823− and optionally provide a hardware vertical blanking counter. Drivers must
2824− implement the following operations.
2825− </para>
2826− <itemizedlist>
2827− <listitem>
2828− <synopsis>int (*enable_vblank) (struct drm_device *dev, int crtc);
2829−void (*disable_vblank) (struct drm_device *dev, int crtc);</synopsis>
2830− <para>
2831− Enable or disable vertical blanking interrupts for the given CRTC.
2832− </para>
2833− </listitem>
2834− <listitem>
2835− <synopsis>u32 (*get_vblank_counter) (struct drm_device *dev, int crtc);</synopsis>
2836− <para>
2837− Retrieve the value of the vertical blanking counter for the given
2838− CRTC. If the hardware maintains a vertical blanking counter its value
2839− should be returned. Otherwise drivers can use the
2840− <function>drm_vblank_count</function> helper function to handle this
2841− operation.
2842− </para>
2843− </listitem>
2844− </itemizedlist>
2845− <para>
2846− Drivers must initialize the vertical blanking handling core with a call to
2847− <function>drm_vblank_init</function> in their
2848− <methodname>load</methodname> operation. The function will set the struct
2849− <structname>drm_device</structname>
2850− <structfield>vblank_disable_allowed</structfield> field to 0. This will
2851− keep vertical blanking interrupts enabled permanently until the first mode
2852− set operation, where <structfield>vblank_disable_allowed</structfield> is
2853− set to 1. The reason behind this is not clear. Drivers can set the field
2854− to 1 after <function>calling drm_vblank_init</function> to make vertical
2855− blanking interrupts dynamically managed from the beginning.
2856− </para>
2857− <para>
2858− Vertical blanking interrupts can be enabled by the DRM core or by drivers
2859− themselves (for instance to handle page flipping operations). The DRM core
2860− maintains a vertical blanking use count to ensure that the interrupts are
2861− not disabled while a user still needs them. To increment the use count,
2862− drivers call <function>drm_vblank_get</function>. Upon return vertical
2863− blanking interrupts are guaranteed to be enabled.
2864− </para>
2865− <para>
2866− To decrement the use count drivers call
2867− <function>drm_vblank_put</function>. Only when the use count drops to zero
2868− will the DRM core disable the vertical blanking interrupts after a delay
2869− by scheduling a timer. The delay is accessible through the vblankoffdelay
2870− module parameter or the <varname>drm_vblank_offdelay</varname> global
2871− variable and expressed in milliseconds. Its default value is 5000 ms.
2872− Zero means never disable, and a negative value means disable immediately.
2873− Drivers may override the behaviour by setting the
2874− <structname>drm_device</structname>
2875− <structfield>vblank_disable_immediate</structfield> flag, which when set
2876− causes vblank interrupts to be disabled immediately regardless of the
2877− drm_vblank_offdelay value. The flag should only be set if there's a
2878− properly working hardware vblank counter present.
2879− </para>
2880− <para>
2881− When a vertical blanking interrupt occurs drivers only need to call the
2882− <function>drm_handle_vblank</function> function to account for the
2883− interrupt.
2884− </para>
2885− <para>
2886− Resources allocated by <function>drm_vblank_init</function> must be freed
2887− with a call to <function>drm_vblank_cleanup</function> in the driver
2888− <methodname>unload</methodname> operation handler.
2889− </para>
2890− <sect2>
2891− <title>Vertical Blanking and Interrupt Handling Functions Reference</title>
2892−!Edrivers/gpu/drm/drm_irq.c
2893−!Finclude/drm/drmP.h drm_crtc_vblank_waitqueue
2894− </sect2>
2895− </sect1>
2896−
2897− <!-- Internals: open/close, file operations and ioctls -->
2898−
2899− <sect1>
2900− <title>Open/Close, File Operations and IOCTLs</title>
2901− <sect2>
2902− <title>Open and Close</title>
2903− <synopsis>int (*firstopen) (struct drm_device *);
2904−void (*lastclose) (struct drm_device *);
2905−int (*open) (struct drm_device *, struct drm_file *);
2906−void (*preclose) (struct drm_device *, struct drm_file *);
2907−void (*postclose) (struct drm_device *, struct drm_file *);</synopsis>
2908− <abstract>Open and close handlers. None of those methods are mandatory.
2909− </abstract>
2910− <para>
2911− The <methodname>firstopen</methodname> method is called by the DRM core
2912− for legacy UMS (User Mode Setting) drivers only when an application
2913− opens a device that has no other opened file handle. UMS drivers can
2914− implement it to acquire device resources. KMS drivers can't use the
2915− method and must acquire resources in the <methodname>load</methodname>
2916− method instead.
2917− </para>
2918− <para>
2919− Similarly the <methodname>lastclose</methodname> method is called when
2920− the last application holding a file handle opened on the device closes
2921− it, for both UMS and KMS drivers. Additionally, the method is also
2922− called at module unload time or, for hot-pluggable devices, when the
2923− device is unplugged. The <methodname>firstopen</methodname> and
2924− <methodname>lastclose</methodname> calls can thus be unbalanced.
2925− </para>
2926− <para>
2927− The <methodname>open</methodname> method is called every time the device
2928− is opened by an application. Drivers can allocate per-file private data
2929− in this method and store them in the struct
2930− <structname>drm_file</structname> <structfield>driver_priv</structfield>
2931− field. Note that the <methodname>open</methodname> method is called
2932− before <methodname>firstopen</methodname>.
2933− </para>
2934− <para>
2935− The close operation is split into <methodname>preclose</methodname> and
2936− <methodname>postclose</methodname> methods. Drivers must stop and
2937− cleanup all per-file operations in the <methodname>preclose</methodname>
2938− method. For instance pending vertical blanking and page flip events must
2939− be cancelled. No per-file operation is allowed on the file handle after
2940− returning from the <methodname>preclose</methodname> method.
2941− </para>
2942− <para>
2943− Finally the <methodname>postclose</methodname> method is called as the
2944− last step of the close operation, right before calling the
2945− <methodname>lastclose</methodname> method if no other open file handle
2946− exists for the device. Drivers that have allocated per-file private data
2947− in the <methodname>open</methodname> method should free it here.
2948− </para>
2949− <para>
2950− The <methodname>lastclose</methodname> method should restore CRTC and
2951− plane properties to default value, so that a subsequent open of the
2952− device will not inherit state from the previous user. It can also be
2953− used to execute delayed power switching state changes, e.g. in
2954− conjunction with the vga_switcheroo infrastructure (see
2955− <xref linkend="vga_switcheroo"/>). Beyond that KMS drivers should not
2956− do any further cleanup. Only legacy UMS drivers might need to clean up
2957− device state so that the vga console or an independent fbdev driver
2958− could take over.
2959− </para>
2960− </sect2>
2961− <sect2>
2962− <title>File Operations</title>
2963−!Pdrivers/gpu/drm/drm_fops.c file operations
2964−!Edrivers/gpu/drm/drm_fops.c
2965− </sect2>
2966− <sect2>
2967− <title>IOCTLs</title>
2968− <synopsis>struct drm_ioctl_desc *ioctls;
2969−int num_ioctls;</synopsis>
2970− <abstract>Driver-specific ioctls descriptors table.</abstract>
2971− <para>
2972− Driver-specific ioctls numbers start at DRM_COMMAND_BASE. The ioctls
2973− descriptors table is indexed by the ioctl number offset from the base
2974− value. Drivers can use the DRM_IOCTL_DEF_DRV() macro to initialize the
2975− table entries.
2976− </para>
2977− <para>
2978− <programlisting>DRM_IOCTL_DEF_DRV(ioctl, func, flags)</programlisting>
2979− <para>
2980− <parameter>ioctl</parameter> is the ioctl name. Drivers must define
2981− the DRM_##ioctl and DRM_IOCTL_##ioctl macros to the ioctl number
2982− offset from DRM_COMMAND_BASE and the ioctl number respectively. The
2983− first macro is private to the device while the second must be exposed
2984− to userspace in a public header.
2985− </para>
2986− <para>
2987− <parameter>func</parameter> is a pointer to the ioctl handler function
2988− compatible with the <type>drm_ioctl_t</type> type.
2989− <programlisting>typedef int drm_ioctl_t(struct drm_device *dev, void *data,
2990− struct drm_file *file_priv);</programlisting>
2991− </para>
2992− <para>
2993− <parameter>flags</parameter> is a bitmask combination of the following
2994− values. It restricts how the ioctl is allowed to be called.
2995− <itemizedlist>
2996− <listitem><para>
2997− DRM_AUTH - Only authenticated callers allowed
2998− </para></listitem>
2999− <listitem><para>
3000− DRM_MASTER - The ioctl can only be called on the master file
3001− handle
3002− </para></listitem>
3003− <listitem><para>
3004− DRM_ROOT_ONLY - Only callers with the SYSADMIN capability allowed
3005− </para></listitem>
3006− <listitem><para>
3007− DRM_CONTROL_ALLOW - The ioctl can only be called on a control
3008− device
3009− </para></listitem>
3010− <listitem><para>
3011− DRM_UNLOCKED - The ioctl handler will be called without locking
3012− the DRM global mutex. This is the enforced default for kms drivers
3013− (i.e. using the DRIVER_MODESET flag) and hence shouldn't be used
3014− any more for new drivers.
3015− </para></listitem>
3016− </itemizedlist>
3017− </para>
3018− </para>
3019−!Edrivers/gpu/drm/drm_ioctl.c
3020− </sect2>
3021− </sect1>
3022− <sect1>
3023− <title>Legacy Support Code</title>
3024− <para>
3025− The section very briefly covers some of the old legacy support code which
3026− is only used by old DRM drivers which have done a so-called shadow-attach
3027− to the underlying device instead of registering as a real driver. This
3028− also includes some of the old generic buffer management and command
3029− submission code. Do not use any of this in new and modern drivers.
3030− </para>
3031−
3032− <sect2>
3033− <title>Legacy Suspend/Resume</title>
3034− <para>
3035− The DRM core provides some suspend/resume code, but drivers wanting full
3036− suspend/resume support should provide save() and restore() functions.
3037− These are called at suspend, hibernate, or resume time, and should perform
3038− any state save or restore required by your device across suspend or
3039− hibernate states.
3040− </para>
3041− <synopsis>int (*suspend) (struct drm_device *, pm_message_t state);
3042− int (*resume) (struct drm_device *);</synopsis>
3043− <para>
3044− Those are legacy suspend and resume methods which
3045− <emphasis>only</emphasis> work with the legacy shadow-attach driver
3046− registration functions. New driver should use the power management
3047− interface provided by their bus type (usually through
3048− the struct <structname>device_driver</structname> dev_pm_ops) and set
3049− these methods to NULL.
3050− </para>
3051− </sect2>
3052−
3053− <sect2>
3054− <title>Legacy DMA Services</title>
3055− <para>
3056− This should cover how DMA mapping etc. is supported by the core.
3057− These functions are deprecated and should not be used.
3058− </para>
3059− </sect2>
3060− </sect1>
3061− </chapter>
3062−
3063−<!-- TODO
3064−
3065−- Add a glossary
3066−- Document the struct_mutex catch-all lock
3067−- Document connector properties
3068−
3069−- Why is the load method optional?
3070−- What are drivers supposed to set the initial display state to, and how?
3071− Connector's DPMS states are not initialized and are thus equal to
3072− DRM_MODE_DPMS_ON. The fbcon compatibility layer calls
3073− drm_helper_disable_unused_functions(), which disables unused encoders and
3074− CRTCs, but doesn't touch the connectors' DPMS state, and
3075− drm_helper_connector_dpms() in reaction to fbdev blanking events. Do drivers
3076− that don't implement (or just don't use) fbcon compatibility need to call
3077− those functions themselves?
3078−- KMS drivers must call drm_vblank_pre_modeset() and drm_vblank_post_modeset()
3079− around mode setting. Should this be done in the DRM core?
3080−- vblank_disable_allowed is set to 1 in the first drm_vblank_post_modeset()
3081− call and never set back to 0. It seems to be safe to permanently set it to 1
3082− in drm_vblank_init() for KMS driver, and it might be safe for UMS drivers as
3083− well. This should be investigated.
3084−- crtc and connector .save and .restore operations are only used internally in
3085− drivers, should they be removed from the core?
3086−- encoder mid-layer .save and .restore operations are only used internally in
3087− drivers, should they be removed from the core?
3088−- encoder mid-layer .detect operation is only used internally in drivers,
3089− should it be removed from the core?
3090−-->
3091−
3092− <!-- External interfaces -->
3093−
3094− <chapter id="drmExternals">
3095− <title>Userland interfaces</title>
3096− <para>
3097− The DRM core exports several interfaces to applications,
3098− generally intended to be used through corresponding libdrm
3099− wrapper functions. In addition, drivers export device-specific
3100− interfaces for use by userspace drivers &amp; device-aware
3101− applications through ioctls and sysfs files.
3102− </para>
3103− <para>
3104− External interfaces include: memory mapping, context management,
3105− DMA operations, AGP management, vblank control, fence
3106− management, memory management, and output management.
3107− </para>
3108− <para>
3109− Cover generic ioctls and sysfs layout here. We only need high-level
3110− info, since man pages should cover the rest.
3111− </para>
3112−
3113− <!-- External: render nodes -->
3114−
3115− <sect1>
3116− <title>Render nodes</title>
3117− <para>
3118− DRM core provides multiple character-devices for user-space to use.
3119− Depending on which device is opened, user-space can perform a different
3120− set of operations (mainly ioctls). The primary node is always created
3121− and called card&lt;num&gt;. Additionally, a currently
3122− unused control node, called controlD&lt;num&gt; is also
3123− created. The primary node provides all legacy operations and
3124− historically was the only interface used by userspace. With KMS, the
3125− control node was introduced. However, the planned KMS control interface
3126− has never been written and so the control node stays unused to date.
3127− </para>
3128− <para>
3129− With the increased use of offscreen renderers and GPGPU applications,
3130− clients no longer require running compositors or graphics servers to
3131− make use of a GPU. But the DRM API required unprivileged clients to
3132− authenticate to a DRM-Master prior to getting GPU access. To avoid this
3133− step and to grant clients GPU access without authenticating, render
3134− nodes were introduced. Render nodes solely serve render clients, that
3135− is, no modesetting or privileged ioctls can be issued on render nodes.
3136− Only non-global rendering commands are allowed. If a driver supports
3137− render nodes, it must advertise it via the DRIVER_RENDER
3138− DRM driver capability. If not supported, the primary node must be used
3139− for render clients together with the legacy drmAuth authentication
3140− procedure.
3141− </para>
3142− <para>
3143− If a driver advertises render node support, DRM core will create a
3144− separate render node called renderD&lt;num&gt;. There will
3145− be one render node per device. No ioctls except PRIME-related ioctls
3146− will be allowed on this node. Especially GEM_OPEN will be
3147− explicitly prohibited. Render nodes are designed to avoid the
3148− buffer-leaks, which occur if clients guess the flink names or mmap
3149− offsets on the legacy interface. Additionally to this basic interface,
3150− drivers must mark their driver-dependent render-only ioctls as
3151− DRM_RENDER_ALLOW so render clients can use them. Driver
3152− authors must be careful not to allow any privileged ioctls on render
3153− nodes.
3154− </para>
3155− <para>
3156− With render nodes, user-space can now control access to the render node
3157− via basic file-system access-modes. A running graphics server which
3158− authenticates clients on the privileged primary/legacy node is no longer
3159− required. Instead, a client can open the render node and is immediately
3160− granted GPU access. Communication between clients (or servers) is done
3161− via PRIME. FLINK from render node to legacy node is not supported. New
3162− clients must not use the insecure FLINK interface.
3163− </para>
3164− <para>
3165− Besides dropping all modeset/global ioctls, render nodes also drop the
3166− DRM-Master concept. There is no reason to associate render clients with
3167− a DRM-Master as they are independent of any graphics server. Besides,
3168− they must work without any running master, anyway.
3169− Drivers must be able to run without a master object if they support
3170− render nodes. If, on the other hand, a driver requires shared state
3171− between clients which is visible to user-space and accessible beyond
3172− open-file boundaries, they cannot support render nodes.
3173− </para>
3174− </sect1>
3175−
3176− <!-- External: vblank handling -->
3177−
3178− <sect1>
3179− <title>VBlank event handling</title>
3180− <para>
3181− The DRM core exposes two vertical blank related ioctls:
3182− <variablelist>
3183− <varlistentry>
3184− <term>DRM_IOCTL_WAIT_VBLANK</term>
3185− <listitem>
3186− <para>
3187− This takes a struct drm_wait_vblank structure as its argument,
3188− and it is used to block or request a signal when a specified
3189− vblank event occurs.
3190− </para>
3191− </listitem>
3192− </varlistentry>
3193− <varlistentry>
3194− <term>DRM_IOCTL_MODESET_CTL</term>
3195− <listitem>
3196− <para>
3197− This was only used for user-mode-settind drivers around
3198− modesetting changes to allow the kernel to update the vblank
3199− interrupt after mode setting, since on many devices the vertical
3200− blank counter is reset to 0 at some point during modeset. Modern
3201− drivers should not call this any more since with kernel mode
3202− setting it is a no-op.
3203− </para>
3204− </listitem>
3205− </varlistentry>
3206− </variablelist>
3207− </para>
3208− </sect1>
3209−
3210− </chapter>
3211−</part>
3212−<part id="drmDrivers">
3213− <title>DRM Drivers</title>
3214−
3215− <partintro>
3216− <para>
3217− This second part of the GPU Driver Developer's Guide documents driver
3218− code, implementation details and also all the driver-specific userspace
3219− interfaces. Especially since all hardware-acceleration interfaces to
3220− userspace are driver specific for efficiency and other reasons these
3221− interfaces can be rather substantial. Hence every driver has its own
3222− chapter.
3223− </para>
3224− </partintro>
3225−
3226− <chapter id="drmI915">
3227− <title>drm/i915 Intel GFX Driver</title>
3228− <para>
3229− The drm/i915 driver supports all (with the exception of some very early
3230− models) integrated GFX chipsets with both Intel display and rendering
3231− blocks. This excludes a set of SoC platforms with an SGX rendering unit,
3232− those have basic support through the gma500 drm driver.
3233− </para>
3234− <sect1>
3235− <title>Core Driver Infrastructure</title>
3236− <para>
3237− This section covers core driver infrastructure used by both the display
3238− and the GEM parts of the driver.
3239− </para>
3240− <sect2>
3241− <title>Runtime Power Management</title>
3242−!Pdrivers/gpu/drm/i915/intel_runtime_pm.c runtime pm
3243−!Idrivers/gpu/drm/i915/intel_runtime_pm.c
3244−!Idrivers/gpu/drm/i915/intel_uncore.c
3245− </sect2>
3246− <sect2>
3247− <title>Interrupt Handling</title>
3248−!Pdrivers/gpu/drm/i915/i915_irq.c interrupt handling
3249−!Fdrivers/gpu/drm/i915/i915_irq.c intel_irq_init intel_irq_init_hw intel_hpd_init
3250−!Fdrivers/gpu/drm/i915/i915_irq.c intel_runtime_pm_disable_interrupts
3251−!Fdrivers/gpu/drm/i915/i915_irq.c intel_runtime_pm_enable_interrupts
3252− </sect2>
3253− <sect2>
3254− <title>Intel GVT-g Guest Support(vGPU)</title>
3255−!Pdrivers/gpu/drm/i915/i915_vgpu.c Intel GVT-g guest support
3256−!Idrivers/gpu/drm/i915/i915_vgpu.c
3257− </sect2>
3258− </sect1>
3259− <sect1>
3260− <title>Display Hardware Handling</title>
3261− <para>
3262− This section covers everything related to the display hardware including
3263− the mode setting infrastructure, plane, sprite and cursor handling and
3264− display, output probing and related topics.
3265− </para>
3266− <sect2>
3267− <title>Mode Setting Infrastructure</title>
3268− <para>
3269− The i915 driver is thus far the only DRM driver which doesn't use the
3270− common DRM helper code to implement mode setting sequences. Thus it
3271− has its own tailor-made infrastructure for executing a display
3272− configuration change.
3273− </para>
3274− </sect2>
3275− <sect2>
3276− <title>Frontbuffer Tracking</title>
3277−!Pdrivers/gpu/drm/i915/intel_frontbuffer.c frontbuffer tracking
3278−!Idrivers/gpu/drm/i915/intel_frontbuffer.c
3279−!Fdrivers/gpu/drm/i915/i915_gem.c i915_gem_track_fb
3280− </sect2>
3281− <sect2>
3282− <title>Display FIFO Underrun Reporting</title>
3283−!Pdrivers/gpu/drm/i915/intel_fifo_underrun.c fifo underrun handling
3284−!Idrivers/gpu/drm/i915/intel_fifo_underrun.c
3285− </sect2>
3286− <sect2>
3287− <title>Plane Configuration</title>
3288− <para>
3289− This section covers plane configuration and composition with the
3290− primary plane, sprites, cursors and overlays. This includes the
3291− infrastructure to do atomic vsync'ed updates of all this state and
3292− also tightly coupled topics like watermark setup and computation,
3293− framebuffer compression and panel self refresh.
3294− </para>
3295− </sect2>
3296− <sect2>
3297− <title>Atomic Plane Helpers</title>
3298−!Pdrivers/gpu/drm/i915/intel_atomic_plane.c atomic plane helpers
3299−!Idrivers/gpu/drm/i915/intel_atomic_plane.c
3300− </sect2>
3301− <sect2>
3302− <title>Output Probing</title>
3303− <para>
3304− This section covers output probing and related infrastructure like the
3305− hotplug interrupt storm detection and mitigation code. Note that the
3306− i915 driver still uses most of the common DRM helper code for output
3307− probing, so those sections fully apply.
3308− </para>
3309− </sect2>
3310− <sect2>
3311− <title>Hotplug</title>
3312−!Pdrivers/gpu/drm/i915/intel_hotplug.c Hotplug
3313−!Idrivers/gpu/drm/i915/intel_hotplug.c
3314− </sect2>
3315− <sect2>
3316− <title>High Definition Audio</title>
3317−!Pdrivers/gpu/drm/i915/intel_audio.c High Definition Audio over HDMI and Display Port
3318−!Idrivers/gpu/drm/i915/intel_audio.c
3319−!Iinclude/drm/i915_component.h
3320− </sect2>
3321− <sect2>
3322− <title>Panel Self Refresh PSR (PSR/SRD)</title>
3323−!Pdrivers/gpu/drm/i915/intel_psr.c Panel Self Refresh (PSR/SRD)
3324−!Idrivers/gpu/drm/i915/intel_psr.c
3325− </sect2>
3326− <sect2>
3327− <title>Frame Buffer Compression (FBC)</title>
3328−!Pdrivers/gpu/drm/i915/intel_fbc.c Frame Buffer Compression (FBC)
3329−!Idrivers/gpu/drm/i915/intel_fbc.c
3330− </sect2>
3331− <sect2>
3332− <title>Display Refresh Rate Switching (DRRS)</title>
3333−!Pdrivers/gpu/drm/i915/intel_dp.c Display Refresh Rate Switching (DRRS)
3334−!Fdrivers/gpu/drm/i915/intel_dp.c intel_dp_set_drrs_state
3335−!Fdrivers/gpu/drm/i915/intel_dp.c intel_edp_drrs_enable
3336−!Fdrivers/gpu/drm/i915/intel_dp.c intel_edp_drrs_disable
3337−!Fdrivers/gpu/drm/i915/intel_dp.c intel_edp_drrs_invalidate
3338−!Fdrivers/gpu/drm/i915/intel_dp.c intel_edp_drrs_flush
3339−!Fdrivers/gpu/drm/i915/intel_dp.c intel_dp_drrs_init
3340−
3341− </sect2>
3342− <sect2>
3343− <title>DPIO</title>
3344−!Pdrivers/gpu/drm/i915/i915_reg.h DPIO
3345− </sect2>
3346−
3347− <sect2>
3348− <title>CSR firmware support for DMC</title>
3349−!Pdrivers/gpu/drm/i915/intel_csr.c csr support for dmc
3350−!Idrivers/gpu/drm/i915/intel_csr.c
3351− </sect2>
3352− <sect2>
3353− <title>Video BIOS Table (VBT)</title>
3354−!Pdrivers/gpu/drm/i915/intel_bios.c Video BIOS Table (VBT)
3355−!Idrivers/gpu/drm/i915/intel_bios.c
3356−!Idrivers/gpu/drm/i915/intel_vbt_defs.h
3357− </sect2>
3358− </sect1>
3359−
3360− <sect1>
3361− <title>Memory Management and Command Submission</title>
3362− <para>
3363− This sections covers all things related to the GEM implementation in the
3364− i915 driver.
3365− </para>
3366− <sect2>
3367− <title>Batchbuffer Parsing</title>
3368−!Pdrivers/gpu/drm/i915/i915_cmd_parser.c batch buffer command parser
3369−!Idrivers/gpu/drm/i915/i915_cmd_parser.c
3370− </sect2>
3371− <sect2>
3372− <title>Batchbuffer Pools</title>
3373−!Pdrivers/gpu/drm/i915/i915_gem_batch_pool.c batch pool
3374−!Idrivers/gpu/drm/i915/i915_gem_batch_pool.c
3375− </sect2>
3376− <sect2>
3377− <title>Logical Rings, Logical Ring Contexts and Execlists</title>
3378−!Pdrivers/gpu/drm/i915/intel_lrc.c Logical Rings, Logical Ring Contexts and Execlists
3379−!Idrivers/gpu/drm/i915/intel_lrc.c
3380− </sect2>
3381− <sect2>
3382− <title>Global GTT views</title>
3383−!Pdrivers/gpu/drm/i915/i915_gem_gtt.c Global GTT views
3384−!Idrivers/gpu/drm/i915/i915_gem_gtt.c
3385− </sect2>
3386− <sect2>
3387− <title>GTT Fences and Swizzling</title>
3388−!Idrivers/gpu/drm/i915/i915_gem_fence.c
3389− <sect3>
3390− <title>Global GTT Fence Handling</title>
3391−!Pdrivers/gpu/drm/i915/i915_gem_fence.c fence register handling
3392− </sect3>
3393− <sect3>
3394− <title>Hardware Tiling and Swizzling Details</title>
3395−!Pdrivers/gpu/drm/i915/i915_gem_fence.c tiling swizzling details
3396− </sect3>
3397− </sect2>
3398− <sect2>
3399− <title>Object Tiling IOCTLs</title>
3400−!Idrivers/gpu/drm/i915/i915_gem_tiling.c
3401−!Pdrivers/gpu/drm/i915/i915_gem_tiling.c buffer object tiling
3402− </sect2>
3403− <sect2>
3404− <title>Buffer Object Eviction</title>
3405− <para>
3406− This section documents the interface functions for evicting buffer
3407− objects to make space available in the virtual gpu address spaces.
3408− Note that this is mostly orthogonal to shrinking buffer objects
3409− caches, which has the goal to make main memory (shared with the gpu
3410− through the unified memory architecture) available.
3411− </para>
3412−!Idrivers/gpu/drm/i915/i915_gem_evict.c
3413− </sect2>
3414− <sect2>
3415− <title>Buffer Object Memory Shrinking</title>
3416− <para>
3417− This section documents the interface function for shrinking memory
3418− usage of buffer object caches. Shrinking is used to make main memory
3419− available. Note that this is mostly orthogonal to evicting buffer
3420− objects, which has the goal to make space in gpu virtual address
3421− spaces.
3422− </para>
3423−!Idrivers/gpu/drm/i915/i915_gem_shrinker.c
3424− </sect2>
3425− </sect1>
3426− <sect1>
3427− <title>GuC</title>
3428− <sect2>
3429− <title>GuC-specific firmware loader</title>
3430−!Pdrivers/gpu/drm/i915/intel_guc_loader.c GuC-specific firmware loader
3431−!Idrivers/gpu/drm/i915/intel_guc_loader.c
3432− </sect2>
3433− <sect2>
3434− <title>GuC-based command submission</title>
3435−!Pdrivers/gpu/drm/i915/i915_guc_submission.c GuC-based command submission
3436−!Idrivers/gpu/drm/i915/i915_guc_submission.c
3437− </sect2>
3438− <sect2>
3439− <title>GuC Firmware Layout</title>
3440−!Pdrivers/gpu/drm/i915/intel_guc_fwif.h GuC Firmware Layout
3441− </sect2>
3442− </sect1>
3443−
3444− <sect1>
3445− <title> Tracing </title>
3446− <para>
3447− This sections covers all things related to the tracepoints implemented in
3448− the i915 driver.
3449− </para>
3450− <sect2>
3451− <title> i915_ppgtt_create and i915_ppgtt_release </title>
3452−!Pdrivers/gpu/drm/i915/i915_trace.h i915_ppgtt_create and i915_ppgtt_release tracepoints
3453− </sect2>
3454− <sect2>
3455− <title> i915_context_create and i915_context_free </title>
3456−!Pdrivers/gpu/drm/i915/i915_trace.h i915_context_create and i915_context_free tracepoints
3457− </sect2>
3458− <sect2>
3459− <title> switch_mm </title>
3460−!Pdrivers/gpu/drm/i915/i915_trace.h switch_mm tracepoint
3461− </sect2>
3462− </sect1>
3463−
3464− </chapter>
3465−!Cdrivers/gpu/drm/i915/i915_irq.c
3466−</part>
3467−
3468−<part id="vga_switcheroo">
3469− <title>vga_switcheroo</title>
3470− <partintro>
3471−!Pdrivers/gpu/vga/vga_switcheroo.c Overview
3472− </partintro>
3473−
3474− <chapter id="modes_of_use">
3475− <title>Modes of Use</title>
3476− <sect1>
3477− <title>Manual switching and manual power control</title>
3478−!Pdrivers/gpu/vga/vga_switcheroo.c Manual switching and manual power control
3479− </sect1>
3480− <sect1>
3481− <title>Driver power control</title>
3482−!Pdrivers/gpu/vga/vga_switcheroo.c Driver power control
3483− </sect1>
3484− </chapter>
3485−
3486− <chapter id="api">
3487− <title>API</title>
3488− <sect1>
3489− <title>Public functions</title>
3490−!Edrivers/gpu/vga/vga_switcheroo.c
3491− </sect1>
3492− <sect1>
3493− <title>Public structures</title>
3494−!Finclude/linux/vga_switcheroo.h vga_switcheroo_handler
3495−!Finclude/linux/vga_switcheroo.h vga_switcheroo_client_ops
3496− </sect1>
3497− <sect1>
3498− <title>Public constants</title>
3499−!Finclude/linux/vga_switcheroo.h vga_switcheroo_handler_flags_t
3500−!Finclude/linux/vga_switcheroo.h vga_switcheroo_client_id
3501−!Finclude/linux/vga_switcheroo.h vga_switcheroo_state
3502− </sect1>
3503− <sect1>
3504− <title>Private structures</title>
3505−!Fdrivers/gpu/vga/vga_switcheroo.c vgasr_priv
3506−!Fdrivers/gpu/vga/vga_switcheroo.c vga_switcheroo_client
3507− </sect1>
3508− </chapter>
3509−
3510− <chapter id="handlers">
3511− <title>Handlers</title>
3512− <sect1>
3513− <title>apple-gmux Handler</title>
3514−!Pdrivers/platform/x86/apple-gmux.c Overview
3515−!Pdrivers/platform/x86/apple-gmux.c Interrupt
3516− <sect2>
3517− <title>Graphics mux</title>
3518−!Pdrivers/platform/x86/apple-gmux.c Graphics mux
3519− </sect2>
3520− <sect2>
3521− <title>Power control</title>
3522−!Pdrivers/platform/x86/apple-gmux.c Power control
3523− </sect2>
3524− <sect2>
3525− <title>Backlight control</title>
3526−!Pdrivers/platform/x86/apple-gmux.c Backlight control
3527− </sect2>
3528− <sect2>
3529− <title>Public functions</title>
3530−!Iinclude/linux/apple-gmux.h
3531− </sect2>
3532− </sect1>
3533− </chapter>
3534−
3535−!Cdrivers/gpu/vga/vga_switcheroo.c
3536−!Cinclude/linux/vga_switcheroo.h
3537−!Cdrivers/platform/x86/apple-gmux.c
3538−</part>
3539−
3540−</book>
Documentation/DocBook/media/.gitignore+0−1
@@ -1 +0,0 @@
1−!*.svg
Documentation/DocBook/media/Makefile+0−427
@@ -1,427 +0,0 @@
1−###
2−# Media build rules - Auto-generates media contents/indexes and *.h xml's
3−#
4−
5−SHELL=/bin/bash
6−
7−MEDIA_OBJ_DIR=$(objtree)/Documentation/DocBook/
8−MEDIA_SRC_DIR=$(srctree)/Documentation/DocBook/media
9−
10−MEDIA_TEMP = media-entities.tmpl \
11− media-indices.tmpl \
12− videodev2.h.xml \
13− v4l2.xml \
14− audio.h.xml \
15− ca.h.xml \
16− dmx.h.xml \
17− frontend.h.xml \
18− net.h.xml \
19− video.h.xml \
20−
21−IMGFILES := $(patsubst %.b64,%, $(notdir $(shell ls $(MEDIA_SRC_DIR)/*.b64)))
22−OBJIMGFILES := $(addprefix $(MEDIA_OBJ_DIR)/, $(IMGFILES))
23−GENFILES := $(addprefix $(MEDIA_OBJ_DIR)/, $(MEDIA_TEMP))
24−
25−PHONY += cleanmediadocs
26−
27−cleanmediadocs:
28− -@rm -f `find $(MEDIA_OBJ_DIR) -type l` $(GENFILES) $(OBJIMGFILES) 2>/dev/null
29−
30−$(obj)/media_api.xml: $(GENFILES) FORCE
31−
32−#$(MEDIA_OBJ_DIR)/media_api.html: $(MEDIA_OBJ_DIR)/media_api.xml
33−#$(MEDIA_OBJ_DIR)/media_api.pdf: $(MEDIA_OBJ_DIR)/media_api.xml
34−#$(MEDIA_OBJ_DIR)/media_api.ps: $(MEDIA_OBJ_DIR)/media_api.xml
35−
36−V4L_SGMLS = \
37− $(shell ls $(MEDIA_SRC_DIR)/v4l/*.xml|perl -ne 'print "$$1 " if (m,.*/(.*)\n,)') \
38− capture.c.xml \
39− keytable.c.xml \
40− v4l2grab.c.xml
41−
42−DVB_SGMLS = \
43− $(shell ls $(MEDIA_SRC_DIR)/dvb/*.xml|perl -ne 'print "$$1 " if (m,.*/(.*)\n,)')
44−
45−MEDIA_SGMLS = $(addprefix ./,$(V4L_SGMLS)) $(addprefix ./,$(DVB_SGMLS)) $(addprefix ./,$(MEDIA_TEMP))
46−
47−FUNCS = \
48− close \
49− ioctl \
50− mmap \
51− munmap \
52− open \
53− poll \
54− read \
55− select \
56− write \
57−
58−IOCTLS = \
59− $(shell perl -ne 'print "$$1 " if /\#define\s+([^\s]+)\s+_IO/' $(srctree)/include/uapi/linux/videodev2.h) \
60− $(shell perl -ne 'print "$$1 " if /\#define\s+([^\s]+)\s+_IO/' $(srctree)/include/uapi/linux/dvb/audio.h) \
61− $(shell perl -ne 'print "$$1 " if /\#define\s+([^\s]+)\s+_IO/' $(srctree)/include/uapi/linux/dvb/ca.h) \
62− $(shell perl -ne 'print "$$1 " if /\#define\s+([^\s]+)\s+_IO/' $(srctree)/include/uapi/linux/dvb/dmx.h) \
63− $(shell perl -ne 'print "$$1 " if /\#define\s+([^\s]+)\s+_IO/' $(srctree)/include/uapi/linux/dvb/frontend.h) \
64− $(shell perl -ne 'print "$$1 " if /\#define\s+([A-Z][^\s]+)\s+_IO/' $(srctree)/include/uapi/linux/dvb/net.h) \
65− $(shell perl -ne 'print "$$1 " if /\#define\s+([^\s]+)\s+_IO/' $(srctree)/include/uapi/linux/dvb/video.h) \
66− $(shell perl -ne 'print "$$1 " if /\#define\s+([^\s]+)\s+_IO/' $(srctree)/include/uapi/linux/media.h) \
67− $(shell perl -ne 'print "$$1 " if /\#define\s+([^\s]+)\s+_IO/' $(srctree)/include/linux/cec.h) \
68− $(shell perl -ne 'print "$$1 " if /\#define\s+([^\s]+)\s+_IO/' $(srctree)/include/uapi/linux/v4l2-subdev.h) \
69−
70−DEFINES = \
71− $(shell perl -ne 'print "$$1 " if /\#define\s+(DTV_[^\s]+)\s+/' $(srctree)/include/uapi/linux/dvb/frontend.h) \
72−
73−TYPES = \
74− $(shell perl -ne 'print "$$1 " if /^typedef\s+.*\s+(\S+)\;/' $(srctree)/include/uapi/linux/videodev2.h) \
75− $(shell perl -ne 'print "$$1 " if /^typedef\s+.*\s+(\S+)\;/' $(srctree)/include/uapi/linux/dvb/frontend.h)
76−
77−ENUMS = \
78− $(shell perl -ne 'print "$$1 " if /^enum\s+([^\s]+)\s+/' \
79− $(srctree)/include/uapi/linux/videodev2.h \
80− $(srctree)/include/uapi/linux/dvb/audio.h \
81− $(srctree)/include/uapi/linux/dvb/ca.h \
82− $(srctree)/include/uapi/linux/dvb/dmx.h \
83− $(srctree)/include/uapi/linux/dvb/frontend.h \
84− $(srctree)/include/uapi/linux/dvb/net.h \
85− $(srctree)/include/uapi/linux/dvb/video.h \
86− $(srctree)/include/uapi/linux/media.h \
87− $(srctree)/include/uapi/linux/v4l2-mediabus.h \
88− $(srctree)/include/uapi/linux/v4l2-subdev.h)
89−
90−ENUM_DEFS = \
91− $(shell perl -e 'open IN,"cat @ARGV| cpp -fpreprocessed |"; while (<IN>) { if ($$enum) {print "$$1\n" if (/\s*([A-Z]\S+)\b/); } $$enum = 0 if ($$enum && /^\}/); $$enum = 1 if(/^\s*enum\s/); }; close IN;' \
92− $(srctree)/include/uapi/linux/dvb/dmx.h \
93− $(srctree)/include/uapi/linux/dvb/frontend.h)
94−
95−STRUCTS = \
96− $(shell perl -ne 'print "$$1 " if /^struct\s+([^\s]+)\s+/' $(srctree)/include/uapi/linux/videodev2.h) \
97− $(shell perl -ne 'print "$$1 " if (/^struct\s+([^\s\{]+)\s*/)' $(srctree)/include/uapi/linux/dvb/audio.h) \
98− $(shell perl -ne 'print "$$1 " if (/^struct\s+([^\s]+)\s+/)' $(srctree)/include/uapi/linux/dvb/ca.h) \
99− $(shell perl -ne 'print "$$1 " if (/^struct\s+([^\s]+)\s+/)' $(srctree)/include/uapi/linux/dvb/dmx.h) \
100− $(shell perl -ne 'print "$$1 " if (!/dtv\_cmds\_h/ && /^struct\s+([^\s]+)\s+/)' $(srctree)/include/uapi/linux/dvb/frontend.h) \
101− $(shell perl -ne 'print "$$1 " if (/^struct\s+([^\s]+)\s+/ && !/_old/)' $(srctree)/include/uapi/linux/dvb/net.h) \
102− $(shell perl -ne 'print "$$1 " if (/^struct\s+([^\s]+)\s+/)' $(srctree)/include/uapi/linux/dvb/video.h) \
103− $(shell perl -ne 'print "$$1 " if /^struct\s+([^\s]+)\s+/' $(srctree)/include/uapi/linux/media.h) \
104− $(shell perl -ne 'print "$$1 " if /^struct\s+([^\s]+)\s+/' $(srctree)/include/linux/cec.h) \
105− $(shell perl -ne 'print "$$1 " if /^struct\s+([^\s]+)\s+/' $(srctree)/include/uapi/linux/v4l2-subdev.h) \
106− $(shell perl -ne 'print "$$1 " if /^struct\s+([^\s]+)\s+/' $(srctree)/include/uapi/linux/v4l2-mediabus.h)
107−
108−ERRORS = \
109− E2BIG \
110− EACCES \
111− EAGAIN \
112− EBADF \
113− EBADFD \
114− EBADR \
115− EBADRQC \
116− EBUSY \
117− ECHILD \
118− ECONNRESET \
119− EDEADLK \
120− EDOM \
121− EEXIST \
122− EFAULT \
123− EFBIG \
124− EILSEQ \
125− EINIT \
126− EINPROGRESS \
127− EINTR \
128− EINVAL \
129− EIO \
130− EMFILE \
131− ENFILE \
132− ENOBUFS \
133− ENODATA \
134− ENODEV \
135− ENOENT \
136− ENOIOCTLCMD \
137− ENOMEM \
138− ENOSPC \
139− ENOSR \
140− ENOSYS \
141− ENOTSUP \
142− ENOTSUPP \
143− ENOTTY \
144− ENXIO \
145− EOPNOTSUPP \
146− EOVERFLOW \
147− EPERM \
148− EPIPE \
149− EPROTO \
150− ERANGE \
151− EREMOTE \
152− EREMOTEIO \
153− ERESTART \
154− ERESTARTSYS \
155− ESHUTDOWN \
156− ESPIPE \
157− ETIME \
158− ETIMEDOUT \
159− EUSERS \
160− EWOULDBLOCK \
161− EXDEV \
162−
163−ESCAPE = \
164− -e "s/&/\\&amp;/g" \
165− -e "s/</\\&lt;/g" \
166− -e "s/>/\\&gt;/g"
167−
168−FILENAME = \
169− -e s,"^[^\/]*/",, \
170− -e s/"\\.xml"// \
171− -e s/"\\.tmpl"// \
172− -e s/\\\./-/g \
173− -e s/"^func-"// \
174− -e s/"^pixfmt-"// \
175− -e s/"^vidioc-"//
176−
177−# Generate references to these structs in videodev2.h.xml.
178−DOCUMENTED = \
179− -e "s/\(enum *\)v4l2_mpeg_cx2341x_video_\([a-z]*_spatial_filter_type\)/\1<link linkend=\"\2\">v4l2_mpeg_cx2341x_video_\2<\/link>/g" \
180− -e "s/\(\(enum\|struct\) *\)\(v4l2_[a-zA-Z0-9_]*\)/\1<link linkend=\"\3\">\3<\/link>/g" \
181− -e "s/\(V4L2_PIX_FMT_[A-Z0-9_]\+\)\(\s\+v4l2_fourcc\)/<link linkend=\"\1\">\1<\/link>\2/g" \
182− -e ":a;s/\(linkend=\".*\)_\(.*\">\)/\1-\2/;ta" \
183− -e "s/v4l2\-mpeg\-vbi\-ITV0/v4l2-mpeg-vbi-itv0-1/g"
184−
185−DVB_DOCUMENTED = \
186− -e "s,\(struct\s\+\)\([a-z0-9_]\+\)\(\s\+{\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \
187− -e "s,\(}\s\+\)\([a-z0-9_]\+_t\+\),\1\<link linkend=\"\2\">\2\<\/link\>,g" \
188− -e "s,\(define\s\+\)\(DTV_[A-Z0-9_]\+\)\(\s\+[0-9]\+\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \
189− -e "s,<link\s\+linkend=\".*\">\(DTV_IOCTL_MAX_MSGS\|dtv_cmds_h\|__.*_old\)<\/link>,\1,g" \
190− -e ":a;s/\(linkend=\".*\)_\(.*\">\)/\1-\2/;ta" \
191− -e "s,\(audio-mixer\|audio-karaoke\|audio-status\|ca-slot-info\|ca-descr-info\|ca-caps\|ca-msg\|ca-descr\|ca-pid\|dmx-filter\|dmx-caps\|video-system\|video-highlight\|video-spu\|video-spu-palette\|video-navi-pack\)-t,\1,g" \
192− -e "s,DTV-ISDBT-LAYER[A-C],DTV-ISDBT-LAYER,g" \
193− -e "s,\(define\s\+\)\([A-Z0-9_]\+\)\(\s\+_IO\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \
194− -e "s,\(define\s\+\)\(DTV_[A-Z0-9_]\+\)\(\s\+\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \
195− -e "s,<link\s\+linkend=\".*\">\(__.*_OLD\)<\/link>,\1,g" \
196− -e "s/\(linkend\=\"\)FE_SET_PROPERTY/\1FE_GET_PROPERTY/g" \
197− -e "s,<link\s\+linkend=\".*\">\(DTV_ISDBS_TS_ID_LEGACY\|DTV_MAX_COMMAND\|DTV_IOCTL_MAX_MSGS\)<\/link>,\1,g" \
198−
199−#
200−# Media targets and dependencies
201−#
202−
203−install_media_images = \
204− $(Q)if [ "x$(findstring media_api.xml,$(DOCBOOKS))" != "x" ]; then \
205− mkdir -p $(MEDIA_OBJ_DIR)/media_api; \
206− cp $(OBJIMGFILES) $(MEDIA_SRC_DIR)/*.svg $(MEDIA_SRC_DIR)/v4l/*.svg $(MEDIA_OBJ_DIR)/media_api; \
207− fi
208−
209−$(MEDIA_OBJ_DIR)/%: $(MEDIA_SRC_DIR)/%.b64
210− $(Q)base64 -d $< >$@
211−
212−$(MEDIA_OBJ_DIR)/v4l2.xml: $(OBJIMGFILES)
213− @$($(quiet)gen_xml)
214− @(ln -sf `cd $(MEDIA_SRC_DIR) && /bin/pwd`/v4l/*xml $(MEDIA_OBJ_DIR)/)
215− @(ln -sf `cd $(MEDIA_SRC_DIR) && /bin/pwd`/dvb/*xml $(MEDIA_OBJ_DIR)/)
216−
217−$(MEDIA_OBJ_DIR)/videodev2.h.xml: $(srctree)/include/uapi/linux/videodev2.h $(MEDIA_OBJ_DIR)/v4l2.xml
218− @$($(quiet)gen_xml)
219− @( \
220− echo "<programlisting>") > $@
221− @( \
222− expand --tabs=8 < $< | \
223− sed $(ESCAPE) $(DOCUMENTED) | \
224− sed 's/i\.e\./&ie;/') >> $@
225− @( \
226− echo "</programlisting>") >> $@
227−
228−$(MEDIA_OBJ_DIR)/audio.h.xml: $(srctree)/include/uapi/linux/dvb/audio.h $(MEDIA_OBJ_DIR)/v4l2.xml
229− @$($(quiet)gen_xml)
230− @( \
231− echo "<programlisting>") > $@
232− @( \
233− expand --tabs=8 < $< | \
234− sed $(ESCAPE) $(DVB_DOCUMENTED) | \
235− sed 's/i\.e\./&ie;/') >> $@
236− @( \
237− echo "</programlisting>") >> $@
238−
239−$(MEDIA_OBJ_DIR)/ca.h.xml: $(srctree)/include/uapi/linux/dvb/ca.h $(MEDIA_OBJ_DIR)/v4l2.xml
240− @$($(quiet)gen_xml)
241− @( \
242− echo "<programlisting>") > $@
243− @( \
244− expand --tabs=8 < $< | \
245− sed $(ESCAPE) $(DVB_DOCUMENTED) | \
246− sed 's/i\.e\./&ie;/') >> $@
247− @( \
248− echo "</programlisting>") >> $@
249−
250−$(MEDIA_OBJ_DIR)/dmx.h.xml: $(srctree)/include/uapi/linux/dvb/dmx.h $(MEDIA_OBJ_DIR)/v4l2.xml
251− @$($(quiet)gen_xml)
252− @( \
253− echo "<programlisting>") > $@
254− @( \
255− for ident in $(ENUM_DEFS) ; do \
256− entity=`echo $$ident | tr _ -` ; \
257− r="$$r s/([^\w\-])$$ident([^\w\-])/\1\&$$entity\;\2/g;";\
258− done; \
259− expand --tabs=8 < $< | \
260− sed $(ESCAPE) $(DVB_DOCUMENTED) | \
261− sed 's/i\.e\./&ie;/' | \
262− perl -ne "$$r print $$_;") >> $@
263− @( \
264− echo "</programlisting>") >> $@
265−
266−$(MEDIA_OBJ_DIR)/frontend.h.xml: $(srctree)/include/uapi/linux/dvb/frontend.h $(MEDIA_OBJ_DIR)/v4l2.xml
267− @$($(quiet)gen_xml)
268− @( \
269− echo "<programlisting>") > $@
270− @( \
271− for ident in $(ENUM_DEFS) ; do \
272− entity=`echo $$ident | tr _ -` ; \
273− r="$$r s/([^\w\-])$$ident([^\w\-])/\1\&$$entity\;\2/g;";\
274− done; \
275− expand --tabs=8 < $< | \
276− sed $(ESCAPE) $(DVB_DOCUMENTED) | \
277− sed 's/i\.e\./&ie;/' | \
278− perl -ne "$$r print $$_;") >> $@
279− @( \
280− echo "</programlisting>") >> $@
281−
282−$(MEDIA_OBJ_DIR)/net.h.xml: $(srctree)/include/uapi/linux/dvb/net.h $(MEDIA_OBJ_DIR)/v4l2.xml
283− @$($(quiet)gen_xml)
284− @( \
285− echo "<programlisting>") > $@
286− @( \
287− expand --tabs=8 < $< | \
288− sed $(ESCAPE) $(DVB_DOCUMENTED) | \
289− sed 's/i\.e\./&ie;/') >> $@
290− @( \
291− echo "</programlisting>") >> $@
292−
293−$(MEDIA_OBJ_DIR)/video.h.xml: $(srctree)/include/uapi/linux/dvb/video.h $(MEDIA_OBJ_DIR)/v4l2.xml
294− @$($(quiet)gen_xml)
295− @( \
296− echo "<programlisting>") > $@
297− @( \
298− expand --tabs=8 < $< | \
299− sed $(ESCAPE) $(DVB_DOCUMENTED) | \
300− sed 's/i\.e\./&ie;/') >> $@
301− @( \
302− echo "</programlisting>") >> $@
303−
304−$(MEDIA_OBJ_DIR)/media-entities.tmpl: $(MEDIA_OBJ_DIR)/v4l2.xml
305− @$($(quiet)gen_xml)
306− @( \
307− echo "<!-- Generated file! Do not edit. -->") >$@
308− @( \
309− echo -e "\n<!-- Functions -->") >>$@
310− @( \
311− for ident in $(FUNCS) ; do \
312− entity=`echo $$ident | tr _ -` ; \
313− echo "<!ENTITY func-$$entity \"<link" \
314− "linkend='func-$$entity'><function>$$ident()</function></link>\">" \
315− >>$@ ; \
316− done)
317− @( \
318− echo -e "\n<!-- Ioctls -->") >>$@
319− @( \
320− for ident in `echo $(IOCTLS) | sed -e "s,VIDIOC_RESERVED,,"`; do\
321− entity=`echo $$ident | tr _ -` ; \
322− id=`grep -e "<refname>$$ident" -e "<section id=\"$$ident\"" $$(find $(MEDIA_SRC_DIR) -name *.xml -type f)| sed -r s,"^.*/(.*).xml.*","\1",` ; \
323− if [ "$$id" != "" ]; then echo "<!ENTITY $$entity \"<link" \
324− "linkend='$$id'><constant>$$ident</constant></link>\">" \
325− >>$@ ; else \
326− echo "Warning: undocumented ioctl: $$ident. Please document it at the media DocBook!" >&2; \
327− fi; \
328− done)
329− @( \
330− echo -e "\n<!-- Defines -->") >>$@
331− @( \
332− for ident in $(DEFINES) ; do \
333− entity=`echo $$ident | tr _ -` ; \
334− echo "<!ENTITY $$entity \"<link" \
335− "linkend='$$entity'><constant>$$ident</constant></link>\">" \
336− >>$@ ; \
337− done)
338− @( \
339− echo -e "\n<!-- Types -->") >>$@
340− @( \
341− for ident in $(TYPES) ; do \
342− entity=`echo $$ident | tr _ -` ; \
343− echo "<!ENTITY $$entity \"<link" \
344− "linkend='$$entity'>$$ident</link>\">" >>$@ ; \
345− done)
346− @( \
347− echo -e "\n<!-- Enums -->") >>$@
348− @( \
349− for ident in $(ENUMS) ; do \
350− entity=`echo $$ident | sed -e "s/v4l2_mpeg_cx2341x_video_\([a-z]*_spatial_filter_type\)/\1/" | tr _ -` ; \
351− echo "<!ENTITY $$entity \"enum&nbsp;<link" \
352− "linkend='$$entity'>$$ident</link>\">" >>$@ ; \
353− done)
354− @( \
355− echo -e "\n<!-- Enum definitions -->") >>$@
356− @( \
357− for ident in $(ENUM_DEFS) ; do \
358− entity=`echo $$ident | tr _ -` ; \
359− echo "<!ENTITY $$entity \"<link" \
360− "linkend='$$entity'><constant>$$ident</constant></link>\">" \
361− >>$@ ; \
362− done)
363− @( \
364− echo -e "\n<!-- Structures -->") >>$@
365− @( \
366− for ident in $(STRUCTS) ; do \
367− entity=`echo $$ident | tr _ - | sed s/v4l2-mpeg-vbi-ITV0/v4l2-mpeg-vbi-itv0-1/g` ; \
368− echo "<!ENTITY $$entity \"struct&nbsp;<link" \
369− "linkend='$$entity'>$$ident</link>\">" >>$@ ; \
370− done)
371− @( \
372− echo -e "\n<!-- Error Codes -->") >>$@
373− @( \
374− for ident in $(ERRORS) ; do \
375− echo "<!ENTITY $$ident \"<errorcode>$$ident</errorcode>" \
376− "error code\">" >>$@ ; \
377− done)
378− @( \
379− echo -e "\n<!-- Subsections -->") >>$@
380− @( \
381− for file in $(MEDIA_SGMLS) ; do \
382− entity=`echo "$$file" | sed $(FILENAME) -e s/"^([^-]*)"/sub\1/` ; \
383− if ! echo "$$file" | \
384− grep -q -E -e '^(func|vidioc|pixfmt)-' ; then \
385− echo "<!ENTITY sub-$$entity SYSTEM \"$$file\">" >>$@ ; \
386− fi ; \
387− done)
388− @( \
389− echo -e "\n<!-- Function Reference -->") >>$@
390− @( \
391− for file in $(MEDIA_SGMLS) ; do \
392− if echo "$$file" | \
393− grep -q -E -e '(func|vidioc|pixfmt)-' ; then \
394− entity=`echo "$$file" |sed $(FILENAME)` ; \
395− echo "<!ENTITY $$entity SYSTEM \"$$file\">" >>$@ ; \
396− fi ; \
397− done)
398−
399−# Jade can auto-generate a list-of-tables, which includes all structs,
400−# but we only want data types, all types, and sorted please.
401−$(MEDIA_OBJ_DIR)/media-indices.tmpl: $(MEDIA_OBJ_DIR)/v4l2.xml
402− @$($(quiet)gen_xml)
403− @( \
404− echo "<!-- Generated file! Do not edit. -->") >$@
405− @( \
406− echo -e "\n<index><title>List of Types</title>") >>$@
407− @( \
408− for ident in $(TYPES) ; do \
409− id=`echo $$ident | tr _ -` ; \
410− echo "<indexentry><primaryie><link" \
411− "linkend='$$id'>$$ident</link></primaryie></indexentry>" >>$@ ; \
412− done)
413− @( \
414− for ident in $(ENUMS) ; do \
415− id=`echo $$ident | sed -e "s/v4l2_mpeg_cx2341x_video_\([a-z]*_spatial_filter_type\)/\1/" | tr _ -`; \
416− echo "<indexentry><primaryie>enum&nbsp;<link" \
417− "linkend='$$id'>$$ident</link></primaryie></indexentry>" >>$@ ; \
418− done)
419− @( \
420− for ident in $(STRUCTS) ; do \
421− id=`echo $$ident | tr _ - | sed s/v4l2-mpeg-vbi-ITV0/v4l2-mpeg-vbi-itv0-1/g` ; \
422− echo "<indexentry><primaryie>struct&nbsp;<link" \
423− "linkend='$$id'>$$ident</link></primaryie></indexentry>" >>$@ ; \
424− done)
425− @( \
426− echo "</index>") >>$@
427−
Documentation/DocBook/media/bayer.png.b64+0−171
@@ -1,171 +0,0 @@
1−iVBORw0KGgoAAAANSUhEUgAAAlgAAACqCAMAAABGfcHVAAAAAXNSR0IArs4c6QAAAwBQTFRFAAIA
2−CAICAAQVEQEBAgsAJgECAAogAwsTAQopHQYBNAEAAAxNARQAERIQAhoDABwAABZEHRQKGRYKQw0F
3−ACMBACUAERwpHR4cVRAFBR5rZhADACR2JiIhBDAGAiWGgQ4AcxQABDYACSeQMSYlJykmESxYlQ4A
4−PSYZIS05OSsJHS5JOC8kAEMDUC8SADXLNDUzADbEAEsAADX/2RABCFIAAD/qxB0AAD//BFgAK0Vp
5−WT4r3hwA3RsTRERAAEf/5CIA2iYCCUv+WUgz7iIAOk5g3CgVSU5SiD8uB2sABm8AE1X/U1RQOFyL
6−4jkfIlz/RV98M1j+G2H/fVk23jtD4T0pXl9ieFtGcV894UIiYWJfAIwA50gOV2p+4kssO2j+dGZx
7−bG1qVmj/OHH/aHJzfnBX5lQ7B50AZnahdXd0AKUG5V1ARnz/6mErCqgAAKsAent46GBIW4GhAK0A
8−AK8B42FtALIOin9/ALUAiIOBALkAVIf/6WxWg4eBi4SKJrEAmoVtdY2geoP/rYVXhoyOqYVuJbUh
9−IrgWX5D/jo6J7nszP7gAsI9S63xnN70zZqO/fZzCOb4+cZr+64dy8otYnJ6b7ImDRcM56IqcWMEo
10−oJb/N8ZoTMRL7Y9/QchcsaOTo6eohaj/7ZqKXspXj6v9xal+oK+7d7vTUM+Afco5r7CumLTVStKV
11−bs9ukbb/9qx/9q9l8queoLv/e9R66beG7rDImNRhi9aDwsPAs8bWzcK2cd67jtqP5MWUodyB8b+1
12−tMr/z8L/j9+kbOXWnN2ZstD7yc7Rzs7Ly9xb183UwdD/+si/qeOmvuKIx9fj4tPCtuWiqOrL+tS2
13−y9v++NPK2dvZt+m0ueq80+Wo3OeSwuy/yezG+d7f/eS/z/DS3uf/6Ono4PC71O39xPb02vPZ/+nR
14−+Ori6e399+vt+PGz+ur65fL55/Xb4vbh7ffX/PPY8vP9+vLy6Pf36fjr/PfM8vjr//f+/vn48P36
15−9vv+/vzf+fv4/fvu//z7+v7//P/7/v/8//QpxAAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAFY8AABWW
16−AQ2TT8cAAAAHdElNRQfaCRQXGSltwbPRAAAgAElEQVR42u2dDXwU1bXAZwEJtEaNH1nbh68fpoWK
17−iE1ao2Bgo9RqIrEg+BIFmqLYLOlMcHHlU6DiQmrJM2jKo0QIBHgUjD5ETcQIlKq0gKDmA+UjiRAT
18−BCOBkGzC5re/++6987Ezszszdzc7s9jfPa2wO+zMPefc/5575t67Z5hB/0Ek/W668xckcmVmQZ5S
19−CvLmgshl4QCiZu+8ntCOgWlzVfrl5ZZFrl6T/VYSv9x5K3Pj9wnkh9fFFxQE6VcVqXY+8PjgH5K0
20−+/0bBxDaYcsN0i+vLlTbzH9kjEknkEF3zptjLPPmXL2VwGC/nxysm+YRyc+/S2bHNYUgmtJkf5RI
21−vScH3HEvifz05mhqB8G68d6xJO3ecSWhHXYfYdvM99LHGEv6mEF3zmFJ5Gr49e9qVUh7O/wP/w/9
22−gf4EXnKwbpjNGQs779bvktlxzULg7TCQzvDAItBvzqMD7hjrMJaxPx0Cv3OdBvqFBRZJs46xCCwi
23−O+xNwNfSclom6F2L4j1A/UsG1hgI1jyWUzLEKf/gX0CwevIzsvSlJoyh8IY5LmPhEFhEhsCI9b7L
24−oy/uI2GBRaDfPATWaGO596dDADhioJ+7PKyI5SBoF4NFZAcEa6ZjvL7MOg9MAWtPxv4aHdlfM315
25−TMHy7Gg4pifN5cUxBMsPisub9dRrqHc1xBCsC7vHH6jVlQOO3eGBhccc9B+rGIWkP/ALBNYEA3uX
26−xxasooMGbVaWxhSs0kr9Njs8zbEE60C2UbOTTAOrR6/ZHjB/ZWzBet+gzR0xBmuHfpttsQbLIEP2
27−ZpsGVrsBWMspWBQsGrEoWFEAK1UUDbBkQEkJu+Ko+WDxDRmApWmH+WCF0u/bCFYIMyIHK30CL1kZ
28−Y1J17wo51snhW1/4d9BdoZlgcZx7mcezzM1yemBp22E2WBzL66fsExVYjmxBxsNed1gHVra8XX2w
29−WBc2A/4dDbCSp4v/2PrGb1L1hkKnZ8sRNFH39cel6K1lQyFbvLcZXf3YrmWsNlg6dpgMFltc3dAN
30−j3+zazWrCVbKBun8ltcfS3FYBpb0D721L+uCxXoqxO5VfEMiBmsa6BL/+UxWqhZYMFytPSVd5yMU
31−qKxJ3jlub7f4D5f+xmqDpW2HuWCxr0r69b7N6oAV6JsTj6VYBpaciP9L0QaLVXQv13ewUqeBdjyS
32−ZM0/Cf6uBRbkak03uLSraBHnWfsJAJ/LEi2TIxZs7bPyZS6XZwu0XEaWCiwdO0wFi3sXgC/K4QDi
33−qfhEoV8QWNtT8FLK+L90gddHWwjWjNGw1dG/mgW7/jFNsFjYvd/sKnK73Kh7P4oSWHw3JOcDkJGq
34−BVbxBfD5IidKqpzOV/3gb05rwGJfRXEAfYM41nMKfMXpgaVhh5lgsVsAeJvj9YOMXVrE6YAlvHwa
35−XJSFLJPBOg8m8W2lpLwFQ5YjNFgc6t45OFCx0OVgNRu1iIVEByznu+ArIUixnPMfKGRZARaCSRpf
36−ENx/4wwiVgg7TASLc52CA4f4BiobCFmaYDlSusBUC8GaGgC6VgssFnavS3QtC7uXiyJYMP09o5m8
37−O2GfOsW8il1TudoisF4FX8hGvy3lc1yGYAXZYSZYa+RBitvy9hyXIVij744RWP+jDRb8ygaCFLdm
38−x7KoJO/tyWj2Jz3/JPhjssY8lnNL91cvsNL8KOtk1fNY5iTv3D/AP2UJMaubvGvZYSJY8Jv+T04+
39−8eAyBCsFdvBXVg6F2UK7k85oDoUs7N5FsiwjSsk7v5cKkqHsD3nEcm4BnznxHINTENaaCVJpcBGn
40−zXQilpYdZoL1iThSB+kXBNbu8VOhzFhwAICXrUzeF2RPnTpp6qy/nAG9YzWSd5gpfqZhRl/AkpjY
41−P0HrrtBZDQ468ZuKHVgqXdYk793Ag4zkllXyDZfq5FhadpgJVjMoxZ3g3sHrV84ZzmMB8LpjdCym
42−G3r/oDXdwFaD97EZHG9FxQ53VHKsadOh5K8/q51jYbDwC/FSiywFixX7/Sirk2Np2GEmWA2gHOvn
43−Efe3aCfvXiTA27J9lpVLOl7cLvyH2g2PaU6QSmCx4mXcXDTASkaSmpxxEvw1VXsofBLPt79/9AgU
44−2DJr5VDIFh2rh9IM6vXA0rDDgqGQW4b1awAN+neFvzoDvpTPjlqVvD8Nw+ToFG2wxKGQO3gUmnEk
45−GmAlS/M/Y5KXg5pkLbD45F3IsdhgsExO3vHS5JMV2mDp2GFJ8o71KzYCK+VhSJYjxXKw4A0DeF0P
46−LDF5xxOVXLQiltg384PAktaanxSmG+D9AkrtEFhWLEKzr4Jv+FsUNOizO/QjloYd5k439C6SVIID
47−doPRPNbTXeA96yPW6JS3AFCkWMrpBg/qXmmYcEcbLO2IxTrfBRdfcAqYOZ1WDYVozvGf0s2vkxAs
48−6yIWGqs/l9ZsnWtBsxFYKHa8bOEitDiPBQfhc49prhWyqHuliWhX1HIsvI1JL8eCMJ0CF1ezeBxk
49−iz+xLMdCSyYfzRZugbd0gCO6OVZoO0xd0lnTDT57QdiktqYDtBnOvMPYcc7CRWhpghSmWW9qgoVW
50−EC6u5uMGh7s3KmBNQzJ9+UnQpTnzzjmLTwHwRUVxcemWBnjnusuqRWi0ctX5cXlR8dq9HQB8s1pv
51−SUfDDlMjFkxPQO/H5auKy/e2of0XhmuFKQ93gTctHwpHO1ColA+GqkVovntXFQndG5WZd0m6fqe9
52−bYZzej6RPvjZ6qAJUtP2vLNrpP0c53bNYXVm3rXsMHnbzFrJL727XtCbIA0srYA/pVg33SAu6dx9
53−BpyQ3Teot80oujc6E6TtWBpr1mfobPRDUrzlSEfH10d3FcEbBws3+rnX7m3o6Pjm43K9jX46dpi8
54−0Y9zFe891tHZ/HHFMo5zEawV/uo4+HKsVWCdli1C+2F2p7nRj+OK+O7dUeRio7vnPdVoazIr3/Ru
55−4dZkce2bI9vznmr51mRh2wd72e95T9HdmhzKDEt+paP4MQX9+Rf9lU60wKI//6JgUbAoWJczWMRF
56−QehQSMEyJWJNM7B3eYwj1re8KEhnjMGaZNSsaUVB0tcrZaPqbVaMyxiVVlcqRP22KLZljEqLlApV
57−q97uiG0ZowOOVzboyitmlTECK6fly2V6fr7qfXtMwTpaVKyUUtX74uYYggVAs1o9lX5F1SCGYDWB
58−l2bMVMos5dsZL4HwwTIQFwYrmmICWNEUM8CKnpgDFpmEAVZQM263+shsl1ZxWz/6H/oD/ukPC6x5
59−s42L6s4mrEFqClgkRX8hWPeONRYzwBpN0i4Ci8iOkGB5Q7xjbP2CZGDwoX62K29Qy/U33RB8bEDS
60−SLUkpfUlYjE3EMmVIewIJTZ7sH4FfQHrqhuuV8tNQUduuJrpTyQ228hg/UoiByuXsN3+A64OtiPE
61−kauYEP0bslw4c9MD9xPIA9d/5wc/JJH+uWUlaunL6Di3P1GzPxhMaMfV920N0q8qcvVO27/34/80
62−lh9/b8D9D5DIz+3B7ivZFzlYv73+AaKG7x9AaEd8YbB+IUdH5hdkddR/9H2iOuX3XrE1ujnW3O+Q
63−tXsdqR3PRnko/GUGQXX5jNsYjki9B5JIWvWSg3UrmVtY5jYSO9J/SV7n/efzOJKsDYI1mkSugOGp
64−7ai+HAsLrLEE2afj3uvI7JhzEwTrgJGEA9ZtRPXlbx/wJMlNCA/WfgNpB/4wwCJyy5PM7UQ56u0w
65−x2o7YtC/bSaB1eZx6xcqd9XHFKyXpLpnGuLYQBwTog+WF7wmlo3TkIzp7SB2YJ027F63p80csOoX
66−dXR3aksHKC2PKVjZG8BpPQEvzYgpWPkrhd1koaWnJqMmhmCdqXd3dOpJd4e73hywjngM7C2viClY
67−M7YbtPnKrFiDpSutWY0xBcuoe4HHNLC6KVgmgtUYa7AM8ncfBYuCRcGiYH3rwRJ+UKYLVookVoLl
68−0Gw3FFgh7TAZrNRkQVKNwVKXCLIIrNBuUYKlZUZfwOJYd3FpeemqZawOWI4VCwSZ6bAyYk0V2501
69−VVnzIBgsDTvMBSt1+vL5WPKVtZNCgMW6iqB6pcs41lKwtNyiACt1gmjGNHWZ/IjBYj17+T0jX+9a
70−xGqCNT5wlZbXrQMrJUBEb+0f5D9NDwJLyw5zwUreLx4/80Z6qg5YrGvLMeykznplPXiTwZLc8o3K
71−LQqwkqX9cl5VdbGIwWLXXIDGNjc0dwBwSfFLRWXEAoB/NN3xLgBetw6sDeC00C5UT/5LXjVYmnaY
72−DNYe0IoeydgIe75GBywO/SC0t62hARXpV5S7NhcsdouWW9RgdfFm+EGXskx+hGCxW/yoTjnHch6o
73−wsUXdMDi053Rk94CQFFewmSwtgsp1oIz4M2xmmBp22E6WCtxapK+shv8MVUTLM8p0LurCFVRXauq
74−B28qWKj2hcwti3TAqklORRlWvrpMfoRgeU6Cz4VfvqLyDB+x2mA5UCV62OV3v6V8xoHpYOHC+6ic
75−9CUZ0CqwtO0wHaz1yWPSUfb7GngjWQss9l0UL4QSVKgevEVgofrtvFtw9Y1drA5YqenIjuT5UqGx
76−voCFCnzPFltzvgo+l1XADwZL6Oy/SHUIrAFLfH0azNACS8cOK8DCr1aCPVpgscXdgSjFek71yoqH
77−mAkWrt+u4ZbgiKWuYNcXsIrlNe9dntJlLpcxWG8pC+JYBdbDivroSrB07LAALFw9acwH2kMh7ODP
78−ZflN6arZ1kQsPbeEAAvbsTIaQyG79pQ8HXEpCnyHzrFSUHGJP8Ugx4Ij8InHNHIsPTtMB2vjmIyM
79−jKzpe5QdohwK/6GsB29R8q7rliCwxmRBM6at7z7zm2iABb7RLPCtBmsFlld2A/CplXeFtQtwuxvO
80−AHmxFDVY2naYDpbU+2O0wTolPPmBcwbVgzcVLB23aEw3gK7fJfd9uoEtB8f4Osw7ULnc+vpjHlYL
81−rIDjP1UW/jUZrIC8PFoTLB07LAML7E/XBMsnlBUv4tU7uoO1BKwK0S2VQrsezhAs0Pi71KiB5XaK
82−v6srZnXnsbygd/tMVWFnk8FqOYAnsb58KVt75l3PDvNzrFS0E3nCym7FWKgEqxsUadSrNxUsyS1t
83−wW4JcVcIBT2VrysKEWut/yIfossr0SMJOsEqVjfHelo9O2pRjvUW+FJZ9Fc9FGrbYdFdYWry/G4g
84−G0XUQyFOojkPUq/iiKxIr7lDodotRazBXWFqctZJ8NfkKCTvwnQsXw65Qw8sNI/FFwxPsRYs9BzH
85−46D3MZ2IpWOHVdMNY1JrwHwNsHTq1ZsJFgfd8oLCLYZgwZfrFfNxkc5jfSKfS2QNwBIKhv/J4oiF
86−XkxCFTS1F6F17LAMrGRtsFhUDz6g7A6LwFK5hbMQLG4NWl/gxJKMHXo5Ft+vdx9XFQy3BCx+ENZe
87−hNaxwyqwUtNPakcszyk0A87x6jmrZWXFzQULAh1wC8z0VhmClZr6RjTAQlN34O1l+HET7jUNQIa0
88−BlgpDwNFOWmrJkhhqOzVWYTWtsOatcLk5DGvgTOy/Q2qJZ21F8AXq92ouoq7aK8ffMxatFao7ZZg
89−sPj9WMv9QHFbGCFYnAs23ftxZcWOgx3oOezGM+9BT8+waOYdDoafai9Ca9thOlh7lq+Esr4GKJJe
90−1SI03nzxBVSvGpW9/uwFa5Z0VG659LbOPFYjNmPlHgD+nhyV/VicVEi996NlrM5+LLG3YQ9flG+6
91−Mxms3YFnGsufIBm0H0vLDqv2YwGwUXc/VvFe8XNflLo4y/ZjabpFcx5rf3qUdpCyruLqg0cOVpe7
92−We2Nfo7aA9Ja4YLa2plWgbXi+EvSIvT22t1jdXaQathhMljra/BPlfe8sVK5jSloBynLeir2HqlH
93−5eBZ6/ZjSW6pVLtFCVa+YMaejdNTo73nnTXY8x76tfl73h2ybfcke97Z2Ox5Tybd887FZs87S7bn
94−PWjTu9m/0nE4ZC8dlu15d2i1e9n8SkeonfFt/5VOuoYd9Odf9OdffQKL/q6QgkXBomBRsPoKlo+C
95−9e8MllGzZoFV7+4EPm3pBqWxBSt7A/DqyWVQxqirpwv+H/6BRfybF9AY4zJGHt3u9YFOs8BqVlfi
96−KlIXXjsYU7BWOCYpC61NUr6f5NhArJ4ZYK1Pn6astKZ6mzWtNYZgnf7aYyjNPFizSeowQ7DGkgiq
97−QdpWf0QhR5Vv64+CcMAiaheBRWZHqFKRu1UCog7WbQOcROWucanID5RSs3+PUlrDKhVJ5BYnQ2iH
98−vQl8repetdTj/ZXMreyTBML+6EbHHSRyRYmv6fQZlYDI5ZnvELU7+joyO5w3PXO+6YJKuiNXr8l+
99−+5hfGkv67cyjThI3329vamrqVYu61TCK2/6IzC2PwohFYAeMWB8Gd29IdZgBVwbJVVcFHxtgG0wk
100−tiH2IBnZB7BKCNu9NpQdwYeuZOKD1IvP7QNYSf0GBsmg4EP9mBC6XB3iWLB69viIn3ngA8+GajeU
101−MKR2BOtnD13nPbNuH4HUjcwl+ty+pMLgz9X1BayRZPpl9sGOPujXNKSs7kNjqSuzV5HoV1eYFOJo
102−U+Rg5RK6pcreBztCTgIwhF/XtKVkn0siqfPeRe6bQsLHWuROJrRjIYimNNnJqKyznyf63NakaGrn
103−Azk5ZJ/sIraDpM67VwCrcf1GXVnfDjtkLgANldX6gsAqA2C//vXWv0acJPBgvW/QbmUbADkQrI0b
104−CewoAJ1GZlSHAxYcB+r1L1gJ7773oWfQbDd4HNsBASwD7SobwgLLf3yDgWzn7TDqXtGOAxsM7fBi
105−sHqmTcifriP5WfkYrA6P+nlsKnFVYLBqMqZN15X0jWFFrGqXfrPFniIfAmtlhq4Zgh3PglJ3qbEd
106−YYBVb6Sfqx53yAbHzBm64qiFYPlAhUtfvyJPWzhgeWdkz9JtdqZjA7TjX4bdy9txoXb8jBmGdmCw
107−2rMMJtzemIDBanYbGFRZjMHak2VgbziP7oVgVRg98PSYuwOBZTRjzdvxLPAYPmG1OCywqosMPlRU
108−jcFascDgc9m7MVhGj+7tcDeEA9bp8bUGH1uwAoH1tbuDxI4LB7KBsR08WBP2AP6Rb/5QAjtkGg+W
109−0SNj0bOUk/hnQoe8EN9GTwRg6Q/sxzydAlh+YzuejfIzoavA+0ZgreLBemmBfgrgJQQrnGdCQ7DO
110−Zx8wSIh4sNoMA+EqASyyZ0IjsPYbfNPDBSuKT7EnilgSWAR2ULAoWBQsChYFi4JFwaJgfVvBajcA
111−azkFi4JFIxYFi4JFwaJgUbAoWBQsChZN3ilYNGJRsChYFCwKVphg5RCCVUAG1pCS6A6Fc0eSgNUB
112−cu4jBKsgumDFE4IVTwZWmT3KYGWC00RgxROCFU8MViEZWLklZGDlVEU3YpXlkkWswgIysKAdUQUr
113−s44IrLpMMrCqMkFUwVo4lzBiZf7raxKw6jK7ScECRGChaxGBBSWqYEEhAgsKCVjQDm80wUJCAhYS
114−ErCQRA8sLERg4e5tI7Jjd1TBQjuiiMDygegOhfCCZGD1kEUsnzeqEQvZSwSWjxAsX5TB8hGC5SME
115−yxdtsC77iOUnAwsKjViXU8QKC6xoRiwKFgWLRiwKFgWLgkXBomBRsChYFCwKFgWL3hVSsChYNGJR
116−sChYFCwKFgWLgkXBomBhsGoIwTIoR1IpgmWg4PIwk/dygw80IMUgWOsJwTKsNhNlsIolsPRlkgBW
117−pf7HOsIFy6jazIoVRN0r2LHbsNrMJBGsjNcaa3SkcT1fl6jBVd/coCNtFXz5nz0ZNcrrqa7emB8m
118−WMVtDbrtHnR1oC9e/nxdMyQ7PJUG16soDku/ao+uWxqaPTwpK2Ycr9WV8TxYxeW6+jUfcTWEo97p
119−8dv12z0+cwXfvUeI7Ng9vraWwA4IFliZkaWQaRMUbydk8KHAV+7WL+8t1G9vn66+nvJtFnEBfGGk
120−W2RQVhwXSvNDoLN0RbSj0uUhsoNUDOvaCxGmdrxKpirfOma04M/VG+jnLveFpd8Kh7Kd7Gy1IgeI
121−ulewo2WG6nrjs0PZwaCa4Y2tja2tjY3wL/g3fo3+j9/gF9LorpQO1Xt+jPaDdnxuo3AJ8bKyNkjr
122−lIuxv81AhM81tirsaNWyo43wepHqp37fKeQyLcdb9OT4eSEHazO4XpjqAf1moVZ8uz4jt3TyZpw3
123−uh62gyFSzQ8uf/H/m9jxbyIMdQEVChYVChYVChYVKhQsKhQsKhQsKlQoWFQoWFQoWCD0g0V8fvUL
124−2SdDbKDwmqqu1xtQQd1SqCNBp/WYrKDkpR5/kEt9BKf5zFscUDTfE/zSq+llXwTdq4hYWwvmIlla
125−8o786M6SwmeXbj6ruOjhrYVzl5YdEo41FSycK5z5odnfhJadJagZ6XG7hULLSBm0ZFNXoDgiSi86
126−benmdtO/qYGGsGuqeJfOXbi0rJVfUtonOHnp5h6VlxeqvRxlrsokXTa3KjpzHWq6Sd408vKzopel
127−M5eWHIpsKExjBIkfd1LEc93wBHxo2JRuiebD9wyxoWOJ4w7hz9QxktinmNp3LYtvxi3HD1si+EFs
128−2JY4hf9yyHXhu9ILehcPF0/zmxey4IV7BXfFDVvSjRvKlanzIj5SKB0Y9g7Q8rIpYKUxoZremZYg
129−eOuk6JqAlzerzhTACBesTGZkDpTJsKlbeANbHoH43Dc5J3M4w9wiXvP5BCYOHUuzMQO3ocel1jHx
130−OVgyYf89ZOJ37vBQ6JP7YDsJjO0hXsN4JlNs+SkcIhi7qAsDj3Sh074cJZ3G3GVaz6H9C7Ahu+Cu
131−u86iYwVMkqBOAtNvG3JNCX9kMjww6JD8tEzey2dN857QvTk5sH8HviN00xM2Ji5tMvZfIj7mlbyc
132−hrzs589ME8Eg9Z8KrBL+xbqh/V7EcX0iE7fkEPrWt6yTrvmcjZnyYQ+Ol6OYQTU4YsVLEaV/3Aem
133−9dyXI5jEzdjxdYttzO9xOLIzTfwQ9Hx/rEsVIz7bvOURW2KNeNqSJv60BHiaecPgKNjQId4PCcyD
134−PFjis5EPj7Jh1kqYTOHACPgRv+RlIHj5Qb95YJWIugy1Pci/eo6JEzpz3XAhdEB3DdvcJHr5KcWZ
135−6wbzYIQNlvjA9CeY3yKbN6GQJMh7gxkcGE8k2J4Sj50bxUzhwRLzu97/Mq/n4LWlqAnxjsOv7cw+
136−4V+HM1sxWElisnnpZ7YXkRXPMbdIucEm4bToC24oUcpON/W3HVKABb66FkeoEiYNKojo2cQMA7yX
137−A6dBL79jHliFUjPMNThlec8WJ4FyYiizJNjLiScVSCIwIgfLDxZiPHqHMjI+JyIdusAjzDi/6Enw
138−pu2hs3Kw/HJPRrvjDg+OCzj93IjEDySwvH6o2HDbZgVYXYI9h69gtgXgHJG4zaxtWS3XMbJrTxy4
139−TeUO/jvAg4XzdeYWrNJ1zIuB9GFi3IsWgNXL2M6jUW8UzFykf3+OeQpqj73slcYI6OUAWH6QRxo3
140−QkescyP6ob54b8A1rYF/PXcIJiz+iz/jUwW+oUsfnvdaFrH+zPwk0AG9hw95gWwohN91/EWTR6x7
141−bEuE0wLSiawwR95kftKtcpccrBPX9jskHwrBRD4rhNHjrPo08yPWoPNYpUEBiADsTOyuu4CkQm8n
142−9LIsYn05ot8HEYGVu68KyrpRcLSDt3+/tj0l3HBCEW6Ot18x7JR0DM+6+GU5Vi/MsfaY1XG/Zv4X
143−KNThc6wSrPPihMRtQJFj9T5iG/gBPu2/g08zI3VXNCT0TagcKw0rvPUe20N4UgJ62a/2sgU5Fmpz
144−Q/9xFwKdqeVldGYeD8bQuCWE92YqsEQZ181rsjTohHXMfUGXhmAVYMk19a5wKBNiGiU+XtSZn26o
145−YobMRark5eK7Qi867R1ggfjguLI56GgBM5JXJwfeSgt3haLGiYcwj6G8bBJYabwu8IZ0IJ4oeoZ5
146−POj7EexlnwqMSMCyJyEZYkP5G5q+4BH3jeQlTYjkXlxCPAkfS6rDYEkTHQ+1muYaO1OHo03VEL7l
147−PB6sJEFnfGsMwZJ0ieMjwRCmisdfUDgH+MzpuJH47gGAJqGhTHisIDB3lMinEBAsXuEEG8zZ/TIv
148−JwW8bBJY4pyfeLeQJ8bTNEFlH/DFq7xcgM+UgxF5jtWybiiDponE75JPpAb75T4erCTh4D4MVi6U
149−oTbhZtskuVn4LolzoJkibcJEBx6Jqhg7VCUnIT5xyVnxtHeEWMZLmllgpQkRS5wvTsJgjczLzc0c
150−HD9MnPUXcyzv4XuYRMXXV+ZlsyIWdE1mf2bcZiHuSBFLRA7mqwlBXg4Moi3rbmYe8kcOFkzuEq75
151−AA23S7AGvq1QqgqZIfD17sHj+ByrCh3cahfAQkc+HYxaNW+x60Zh9G/C6uSIYO0Tb/ZtP+mRcqxN
152−trglqtSMPy3XLLACORbvLogUBiuXny5KFO9MA3eFJ0b0ezHotELIo6k5Vu9E5hYxY39ezLFwZ5bF
153−I7DUXs5RpP0QjJo+gNUDhjNl6DZHfldYh8E68bNB2xTD077AXeGmBHT3ahpZf2YelC2eFirAQvdT
154−TL/zgbvC51CGhXVR3hVuNQss3JDM9io5WLA3+21TgyVMCilvJveZCVYh8si5UWjePYBJICXGEes5
155−6OUumZdz5Gm/X5gtjBSsLhif4fmXZPNYfvAhAgvNYz0kW65UgAWet9leNAsrPzjcP64m8G6pGqxe
156−xtYjm26YaBO6Ep4mZu9ePygzD6xzV0jzWLChrXKwwLkRaNxTgCVOcp2TzbMhL5sLFpozGMrccoEP
157−sqOYpwJN92CwdvZPVHhZAVaXlEhGOBQKcUk+lQzvB6/FlPfv91RgkeVaOVj+XvhlOGkWWTiIB67+
158−hHoofNP23XYZWOew+/zq0xabB5Ziih+6Sw4WzhOE5F1U4NJE2+9BsJeHmD6Ptckm8iRfWgGH8awp
159−dNddSi+LYHl5MPZHApYAZssjDB58YSOJwlrhzidsaAUCyNYKfXWLb7bZ6gJgecGJwba7zNs+EFjF
160−atl5j42ZrJggPTwUeyswQWjMGXEAAAJqSURBVPpef366gV8rPCuddp9pYPGLkry7HrEx4+RgoTUo
161−YbohU5zzs/FBLMjLfpPBgtFcXISeKK4Vnt+3OMEWh159qvTy44oJ0ntIJxxUYKUVoNu7nOEMjs5e
162−YXcDOmJjmHHC1/F5G9rdkItWv6EKfsXM+3MMs80srsR1d3hnAxWMm9LKg5WTh3TOTGDUM++PMGgM
163−9PrA4VH8adiKKa3m6Ye2UUjuwhMvAbBganNLK45YSdjJuXg/hh97+Z4QXjYTLDgY3iXQ/QQT6Mxx
164−7wS8PFn08ln+fhI7OedmJo5wUjD0fixmmLRss244nhey2ccJW3jwfqwEfr/OyCU9wv21CNalEcwg
165−8wZDaacQY59yiE/NmcBWITznt5Wxi2DBACJsQhH3Y/GnmSi968SGkLu8aD9WjrSM0h9veAjsx7Lz
166−82z8Nq74wGlmgZXGzBW/AZsYKbkS92PF4xiBs4qWxUPkXvaFBCMcsEpy87Aod1ruLJlbwG/HlO0w
167−hMcKln4oZDdNuXmBT+dONm8XKcqYdhbCljdLq2sFvMoFS/mOBHU5c6UAsi53ssiR+jTzBDaUt7Ss
168−SbwJzSmTdH8+93GYX1TlCE4uUygDvZyn9nKUwSrJqZLePZO7tNsrtHUYdTDuTG9IL/tkYBAvORnu
169−eff6Zb0qSo/OcADM3Pfu1VHWq3fAr2djlNlXudQXdCTYjV4L6uCodfEG97RwSL7nXa2zPwKwqFCJ
170−mlCwqFCwqFCwqFCwqFChYFGhYFGhYFGhQsGiQsGiQsGiQoWCRYWCRYWCRYUKBYsKBYsKBYsKFQoW
171−FQoWFQoWFSoULCqXq/w/gbudjI6bMwYAAAAASUVORK5CYII=
Documentation/DocBook/media/constraints.png.b64+0−59
@@ -1,59 +0,0 @@
1−iVBORw0KGgoAAAANSUhEUgAAAlQAAAFYCAYAAACVsmLPAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A
2−/wD/oL2nkwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAAd0SU1FB9sLCBIAKVtZsMAAAAxxSURBVHja
3−7d3ZbqvIAkDRLsv//8v0QytXvpYZap7Wko56OAnE2AXbBSbhOI7jHwAAkr1sAgAAQQUAIKgAAAQV
4−AICgAgBAUAEACCoAAEEFACCoAAAQVAAAzb2jvyMEWw0AmFvh37xnhgoAQFABAPT1zvruwtNlAADV
5−VLxsyQwVAICgAgAQVAAAggoAQFABACCoYEohuFkugKACsmLq178DIKiAyJgSVQCCCigQU6IKQFAB
6−BWJKVAEIKqBgKIkqAEEFFAgkUQUgqIACYSSqAAQViKkwxjIAEFSwbUyJKgBBBWJq8GUCIKhgm5gS
7−VQCCCsSUqAIQVMBYoSOqAAQVLOk41lwXAIIKhoqqJyFUYhkACCpYMqpiQqjEMgAQVLBUVKWEUIll
8−ACCoYImoygmhEssAQFDBElHVexkACCoAAEEFACCoAAAQVAAAggoAQFABAAgqAAAEFQCAoAIAEFQA
9−AIIKAABBBQAgqAAABBUAgKACAOA/b5sAGjsO2wBgMWaoAAAEFQCAoAIAEFQAADtzUXohIQQbAYDi
10−Dh9kmYIZKgAAQQUAIKgAAAQVAICgAgAgmU/5VeSTGQDE8InxeZmhAgAQVAAAggoAQFABAAgqAAAE
11−FQCAoAIAEFQAAHtyY0/o4O7efe4JCzAXM1QAAIIKAEBQAQAIKgAAQQUAgKACABBUAACCCgBAUAEA
12−IKgAAAQVAICgAgAQVAAACCoAAEEFACCoAAAEFVBICGMsAwBBBVPHVE4QlVgGAIIKpo6ps/9utQwA
13−BBUsEVMpQVRiGQAIKlgqpmKCqMQyABBUsGRMzbouAAQVNHMca64LAEEFy0WVmAIQVCCqxBSAoAL6
14−hI+YAhBUIKrEFICgAvqEkJgCEFQgqo4+3wuAoILto0pMAQgqICOQxBSAoAIyQklMAQgqICOYxBSA
15−oAIyokpMAQgqICOqxBTAvN42AYwTVQDMyQwVAICgAgAQVAAAggoAQFABAJDMp/y4FIJtwJx8ehJo
16−yQwVAICgAgDoyyk/HnMKhdE5RQ30YoYKAEBQAQAIKgAAQQUAIKgAABBUAACCCgBAUAEACCoAAAQV
17−AICgAgAQVAAAggoAAEEFACCoAAAEFQCAoAIAQFABAAgqAABBBQAgqAAAEFQAAIIKAEBQAQAIKgAA
18−BBUAgKACABBUAACCCgAAQQUAIKgAAAQVAICgAgBAUAEACCoAAEEFACCoAAAQVAAAggoAQFABAAgq
19−AACGCKoQPAs2JQAIquwCUAI2JQAIqowCOPtvbEoAEFQRBaAEbEoAEFQFCkAJ2JQAIKgKFIASsClh
20−szEKrDGoXkNuiOPwwim4iezYoc9+39iDfQbVq+mGEFOiCjZ7E23swR6D6tV8Q4gpUQWb7PeNPdhn
21−UL26bAgxJapgk/2+sQd7DKr3EDE1y96mUPT1fqgh6Ffosbsz9mDdQfXquiEY/rUKlBtLYgoqDJZB
22−Dmjlg8qRWlSBMSSmYLOoKhtUjtCiCowdMQUbRtXLswUgpkBU5XkXf9CmPJZ9nQJrft6Gife9XmC/
23−t0mHg9tr3FcJYgrmjilgn8Fa55SfI7WYAvtnYKNBW+8+VLGn/zY6wtd4qDY1iCngx+BtdNCre1G6
24−W3gPt7MXUwAwW1CJKjEFCzB2wODtH1SiSkyB/TKw+KB9DfnARJWYAvtnYKLB+m7+AJ+UgL2WTQmT
25−jz1jEJVf0ASD7jXck2/vY1PCQscwE+6wfkz1CaqrB6wAbEoQVcBkMdUvqH49cAVgU4KoAiaMqb5B
26−9bkBFIBNCaIKmDSm+geVArApYaOxZ4zCuoPq5VkDqL//F1Ow9qASVACV9/9iCtYfVIIKoOL+X0zB
27−HoNKUAFU2v+LKdhnUAkqgAZvqoG1B5WgAgAQVAAAggoAQFABAAgqAAAEFQCAoAIAEFQAAIIKAABB
28−BQAgqAAABBUAgKACAEBQAQAIKgAAQQUAIKgAABBUAACCCgBAUAEACCoAAAQVAICgAgAY3NsmIEYI
29−//3zONK/7u/v/nx+zdPl/1rO0++LWd6vZZ59Xe7jSfnZSq3z6jnJ2ValX09PHj9AD2aoiPJ34Lo6
30−wJWKiJQD7N2BN/WAzbNtZTsCuzJDRZeD8XHkH3zPZo5CSJudeTKbdrX+lkE7QkzFbq8VHj/AGTNU
31−dDkY1ziw1jjY7nAA/wzKqxnIu5gSPICggoTIuDroXh1YRz3ohuCUlcgESOOUH81iZdR1fJ9+zL1Q
32−use1Y6nrvLsearR46rHNAQQVw6l14HtyOurJz5USVqs9LynXt8V+ShBAUMHHQfdzFuMsQGqHSW5M
33−PQmrVtdsjRCkOwY5gKBiGne3Okg5WJaMqbuw2uX5+P6aX4H8/f922F4AgorlgyD3hp47z3ycPfZf
34−p/FSb00BIKjg4kD8/cm4mFNjKfd/OpsJyb2GJ+V+UzEXSK9wAfuvqGr9s7ooHRiV2yYgDCe8xUOp
35−gHny2GNjVdwAOzJDRbUYSfnep8srfdCOWV6tr225ztzt3PpxiTRgdGaoAAAEFQBAX075sbS7C6dH
36−OJU0w8/ocQEIKjY2w0F71bAQTMBOnPIDABBUAAB9OeXHY36tCAD8ZoYKAEBQAQD05ZQfl3xSCwDu
37−maECABBUAACCCgBAUAEACCqgiRDczwtAUAFZMfXr3wEQVEBkTIkqAEEFFIgpUQUgqIACMSWqAAQV
38−UDCURBWAoAIKBJKoAhBUQIEwElUAggrEVBhjGQAIKtg2pkQVgKACMTX4MgEQVLBNTIkqAEEFYkpU
39−AQgqYKzQEVUAggqWdBxrrgsAQQVDRdWTECqxDAAEFSwZVTEhVGIZAAgqWCqqUkKoxDIAEFSwRFTl
40−hFCJZQAgqGCJqOq9DAAEFQCAoAIAEFQAAAgqAABBBQAwibdNAECqcPKLJo8fH1cNN7+U8up7jpOP
41−v6as//PvPr+/xPpTlsEazFABUDSmnsRTie/pvX74ZIYKgKz4+J55+fu7EMLPWZmU2auY9YsjejBD
42−BUDRmDk7pdZq/Vf/P2bZT7/2OI7/rU/ICSoAiHIVLS2uFyq5Dtc3kcspPwCairmQvHUghhBOT1U+
43−eQx/fyfQBBUALBNrtcPmc/l/QYagAoDqYi9ib/2zPZ2l+hVw7Ms1VAAkKXXbgpIXkH9eIF7r8T15
44−bEJLUAHA4wD6FQ5PPoVXc/0ll3/3db/+sCen/ABIio7PU3U5YfIdY0++78n6RzPqxfiUYYYKqh94
45−rv/AzFGV8nelouLue3JC5e5XzTx57E777SUcsa+4zxeIo8HlOw/vOgBwLBlqA1drGDNUAACCCgBA
46−UAEATM2n/CpyQSIA7MEMFQCAoAIAEFQAAIIKAGBnLkovxI3XAGBfZqgAAAQVAEBfTvlBbXf3I3O6
47−GGB6ZqgAAAQVAICgAgAQVAAAggoAAEEFACCoAAAEFQCAoAIAQFABAAgqAABBBQAgqAAAEFQAAIIK
48−AEBQAQAIKiBFCGMsAwBBBVPHVE4QlVgGAM29bQIoGFOf/30c7ZcBrV/zd6/Rq6/7fs1/fs3T5Z+9
49−AckZO2dvaL6XeffGJ/XxpPxspdZ59ZzkbKve278BM1RQOqaeDvbSy4CW/g5WV6/RUhHRcuwYc2W2
50−VY3tP/hzY4YKar5bfLIDeLIMM1WsOnaOI/9AeTZzETt2YmbTrtbfMmhH2PfFbq/Syxxk/2iGCmrF
51−1Kzrgplez78OpjUOsDu8qfkMyqsZyLvwSdleNZYpqGASLQe3GSpGHgNXB92r1+6or+sQvInptV+a
52−eF/nlB/kDv7aO14xxUpahErqOr7Hc+yF9y3Hbul13l27NPJ+aJBTgYIKRo4qMcXK46b2wTVlHb9m
53−3VpcXD/i85Kyb4v9lGCvZQoq2CiqxBQzvfY/ZzHOAqR2mOTG1JOwanXN1ghBunucR3INFYw4qMUU
54−K/sLsO9rlXKuXSoZU99jcfXxmPpp5LP7f5W+B9Ukz4GggtGiSkxBn5ja/UL0v3D5/nO1jyq1zWos
55−szGn/KDGTinnoliY9TV/FzZnr++U+z+dfcIw93qblPtNxVwUvcIF7N/7uZJRlbLMQS5KN0MFtQ4w
56−YgrWGberjs+Y21vExmqN/eDAz0M4jsifrtZ5alh5ZyWmAMbaJxfe75qhgl7veMUUwDIEFfSMKjEF
57−sAQXpUOrqJrk5nSwpLvT7yOMxxl+Ro9LUMFQUSWmoP348zN6XIIK7FgAWDWo/DZuAAAXpQMACCoA
58−gM7iT/m5BgQA4P+YoQIAEFQAAIIKAEBQAQAIKgAABBUAgKACABBUAAB7+hfHbDX87cMFJQAAAABJ
59−RU5ErkJggg==
Documentation/DocBook/media/crop.gif.b64+0−105
@@ -1,105 +0,0 @@
1−R0lGODlhuQJGAeMAAAAAAH9/fwCvAP8AANEA0dEAAK8Ar////wCOAAAA0QAA////////////////
2−/////ywAAAAAuQJGAQAE/vDISau9OOvNu/9gKI5kaZ5oqq5s675wLM90bd94ru987//AoHBILBqP
3−yKRyyWw6n9CodEqtWq/YrHbL7Xq/4LB4TC6bz+i0es1uu9/wuHxOr9vv+Lx+z+/7/4CBgoOEhYaH
4−iImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6gQC9vr/A
5−wcLDxMXGx8jJysvMzc7P0NHS09TV1tfYxbth2d3e3+DRAePk5ebn6Onl4ezt7u3q8fLqANtg7/j5
6−+s/z/f4B+wIKHAjsn8F09ex5IciwobuDEM1Bi0ixosWLGDNqrJhQIZdk/htDihxJsiTJiSZTqlzJ
7−MmNHj1q+tRznsKbNmzhzDoz3EiYWmTN7+vQJgOfQmN5mAjzKtCg9pj+TBoU61ClCqlaAthSKVZdV
8−dFy7NtHKMqxYW1/PmT2bhOzKtWxlpZUYF4pblXDrvpq7Tq+Tu+UGCB5MuLDhw4gTK17MuLHjx5Aj
9−S55MubLly5gza95MmVxev0EAkxsg8jNoVXNJ0zy9RPQ41RtNsz6V2vPstlLTwdYo+zap2qt9G3Ed
10−YLdL4bGAL0VOhLhxjL2Zf1IeXboM56Wtt6KuPXRudM8vVu+eiTt5H9hDjj9vyfyIXrTW80gfO4OC
11−+/jz69/Pv7///wAG/ijggAQWaOCBCCao4IIMNujggRe4J4IwBxBg4YUYZqjhhhx26OGHIIYo4ogk
12−loihMBbi1k084VlklgLsWQKjBRJqgIwEBJRyY4UqZsNidhjMGOMkQlLgnjERwkdBjuVpk2QFTB5B
13−H2/2DUlJkRNYhWQKUTKyJQpdFjHlcUFaSaQxo9nGQph/fCkDm0OMCV2VZh7iZpbnwCYfBnDKcecO
14−fXq3ojotckRnnXr8SQGWEtQIphuKEhEoEHKKdygHCUiQ6QEJdDrEphWA2oGo3UXaAaMHOHrCpFmY
15−2gSr6H2XJ5AXoHqBp5xyuimpPfCa6we+6uWqCaiqagKsTAxrBbLz/slqTqEUvWgBqLviSqqvnXpq
16−rbbZTpDtt9ziSsG3unKraabkltutWMq+UOyswa3A7A/tfjGvDpW6eKm3v+a667i38vvvuQLzW7Cm
17−AJ878L/W9ouuR/Xi8O6zasorRMRo3JtDvoaWOe2v4IIc7LUIE4zwtd1Sm7C6KZ8MLsmzYBzExIFV
18−rILGJsgcB843cBztvgqHWnKwup5s8rroVivwwEc3DHLR/jKcis5K0JxmvDezQLUePNvgc0TSBix0
19−1OuG6nS56nob7ssqp132wuIi7cnWU1j9ms1chkD3IF3X8DVEYe9AtNi37M2F3cXh/WgFhjPSNw1/
20−HxS4CS97MPjH/ts5uQfieqbQuCWPzxC5QZPncPnYoXz+BueKY+Bm6J3AHsPo/5TOmup5sB5vxLJv
21−0vsLtPtjO1W4D0Kz6r9nknwLwfczvFeam6IAmndjnfcsy2vtbM3qAT2KkhkULwj4SRITIbzLWYx9
22−j9j82L3HvyljivzeG1tC9qCzf4379cEPigACCAYAB0jAAhrwgAhMoAIXyMAGOvCBEIygAVMVDBLo
23−Ln1ZWx8SmjeP521CAEYiXypAGML1XHBPF8BfJVToue1drX+1GgUJZTHDFJywBSycRA5PwEF5eFAT
24−NYRFEE9wwzXRYoc5c2H1YGgBW32QFkMk1vkoZr3FyQKJJeih/lH894kotsKLFpwi9zB4vSvqzxr8
25−oxIXPQHGVbRRBEVUnxk3qMTEvS+GonjjBBCwxwMg4I+d0CMI4pjBOUqpjtACm/c4IUhASuCPfPQj
26−I1lAyDLGAosk0OJT1hhIC0RSkpDsoyg9GUpAhtKPp6QAJD9pB0F+oJJWvOQZq5FGMuExFFHkYyR1
27−OUpWqrKPvHykJIXZyzy40gOwXNURZ0mNWs6Jk5P0JChXKUxHXsCXwQTlKIe5h2OeSowvRKEFMOkI
28−ck4IkbRqogyvaU1uZpOd1URlNXepSnriwZscSOaxlknHQekmnRVwIhAxgM09rtKXBrXnKalJzFTe
29−AZ8b0Of9/vh5SH+CB6CLWicPEAoIiGpAoiQwp+OYOQ1nWgqaT0TBQTl6TUN4tH7oEyeUKDocdN5R
30−nXnsAUv98FJO2i+kNBWTTZkYUI3SkJLgXKJMlxTU5gxVjbf8HxSRSqOY4rCpcXqqLXGKy6muAKQj
31−EOkixPoBTV4FpQOdRU+jiicqkjGWsCCrB8wKlkWm9KhfTaod36pMDVbUR4TC6AQEmom1spGqjLOq
32−Ef1aU4uiD6pclapaEWskxcpRlv0E7D9vWtScTjavVXXrUicgV0SUlgN0VYtd04pXFYBVBKc1RGxt
33−pNVnsvWwn3WtXju3WEM2VrMX5WxGPdtaG+62dftkrFAd/utWyHa2q7k1bmjHOFocYfVitT3pbTsZ
34−XRS8NgSzJUR4XZddfaG1sF7V7XTDeVXlOpW5Y3TucKFbXO8et4p99e1ygfvYrT5XsvUl4n35mlz9
35−vpe/zfXvfAEcC8P+t63Uba+BswrfF8p3sEZtMGUhzN7eYvav7QuscDFMXA2DNrGilfCHfxvizRJ1
36−wV1Mr3RRHGEPx5Wk0jCpebcbzQBLcb1KVfGNM9vi4L6YxPQ1sXpp3OHLDhnE+xPxkSVAWEw4uMcz
37−rmyKbfyK8ZYPwfFVMJIZLMQNN8qyhVzxfovcX9tGNsbdFTCQ91pdHrmXwmC2sJipnOEyn1jLNXZy
38−l3Es/g4pX5jPJfbzkgHd5DQ/mcVRdvGhD1DlS1z5rlnmcJC57Aov06i8HeMxphWd6TNvWdCdJjRK
39−JL1nSvf5FZdGNJM3jepWeJpxoP7Zea0sY/vOmbe1ZsWtS5jnJU660paINXr/rGk6C3nQRI60kY/9
40−alco+7sgGLYftN2oXCty15butZxn7WxO21rV/DB0q5FdCWXzmtmmDrSjoQ1lNKrbzQ/GrY9LgO0P
41−cJsP/04tXcCdbHH/mNzAnneqo21vVuMbxvpWcqlThWZLPnrN0m6zdt8ccVL7GuHIneidsVthY6+7
42−2l80M8VPrfBzM5yW9954vrm77zD+OuRAHbmgir1X/monGtYq/2lYr7tzNif44WOGc81H0G8P/HsP
43−Afc24Fa77KXDccB1fjrX0O0MHYea4zSX+McZTeuWC5vrzfC6rkXNWrGPm+zlDvYqol7ynp/859YO
44−esXhSm9IN3zad0+yx9/e7IRbvO8Y/7vGdwx2LA/+4HA3PN8XXm+YO1zmEA/74/mN9WdT3u+WBzzS
45−ZU1moMN75fI+/OcTH/rFf33mjjf9oguP86HrnFJSlxzV3231EDS9A1rPA915nsipE7zdBuf8zfFb
46−YDUf2OhhHr2r8Z7y0wsdtkTHfd2Lr/vjU8Ld4bb+3vPrfDxDX8/SZ/f3k29zkDNf5BMmOfEFS3ql
47−/rsd8rR/f87jX/SMHx3zSddxsjdx1wde2UcvuUc6uxd+vTdInWduZ/dyzRRzjAd7ozaAY5d/BAZ/
48−5Sd/52dy6YdyrHBtDyh3qjB8H2h3IUh9I6h3LKd6Lld5E3h5FZh5sZd34veCkxeDoDeDogeA9SeA
49−ODh78dZoMBiBMlhSFPh6NniBQ0iA49d8F/d8/hd9QDh9goeBhFeEZXeEc4d2zKB238Z2VXd/yud+
50−G7h/Hdh/ivd/NRiAmqeF+MeFcWd2XyiBSkiDTAiHN1h9RIh6RriDSNiDefiDbxiEcfiEGUiHkkd+
51−U2h+VYh+V6h+kyBBlniJmJiJmriJluiCqSeI/neYhDm2hGvXeJzgCzEjQkxXgnZ4gmC4DGJofGS4
52−CcAAC7XYfpFXe9h3ewi4ffSHhfGjiqvwC2eYi/pne/ynffM3YoiYOqhoi894dcuXhsi4hsqYgtyn
53−gN5XHt1mi93oe6zoha6Ih6Ooh6VogTpSZ+3RG7/HAcGHBygYiSA4idCYisgUjqA4jqJYaOY4hqY4
54−NepYCcI4cwWYbQcYK77IjMBYj3KxFu24Ae94B/HYhlZ4iAuZHAFJCQP5kBoQkXYwka3nhnvYjAyJ
55−kWBXkP52kD0gcH2xjQBpj3CIkk6nks2SkFN2kWiRkZOgJByZAR5ZByDpg653jk1YCwM5jADQ/pN8
56−QpM7wJIhR4l7oZOSoIoyCXxMiS8JWDsLaJRS+QgwQj5V6Y5XuTFZKTxbmZOvICRKEpYQOZY44JTv
57−B5Xx0ZWKgCW+EIUc+IgeKI8qSI9YcZSiUCxp0YhSiHhUSJGSaJFyWTh0WQjv0guB6IiGCYmIOY+K
58−GReA2QnHUxSEmZeTuZeV2ZeXWReZqQl2A5nHuIvJ2IvLeJOLuQ2leQmcA5lZ55Y9U5bOc5ZHEZtX
59−cl+8mZK8iJCt6XO305h6cEK/KZbBuZK42UG6STzGeQdFlJw+aZte05w+9Jx/GZ10QEjUOU7W6TfY
60−uUWzKCzcGQew9J2kFZ6QM56bVJ5+oZ6E/qBP6vmTdBCUhTiU/oiOtyGfgQBS1Gmfc4Cf5WiII4mT
61−0uGffvBavymgckCg/GigRMmH1qGgm4OP5GWVy1mTwxl4Q2KheNB0memgO/OKyhCL3QefzAGiddCO
62−R0micAChqyah+1mU58GicsCRwgijbyCj6daPsviPMYKjq4OhZdUTPOoGPtp1pFijFGomRMoGSvmN
63−draawomNv/iaCXqeh2Ok51Sl1siaWKqQWlqhXJoFU4pr7Ck67nlWKgqlZ2oFaQolUZo/5Bih+hmk
64−/IkoIfQHc8pUFKSXbBiSFXmgZcoedQoGf7qeWRKngrCkadekemqjfPokx+mlakilqQCp/mEoqSkq
65−pJWaoSGKqdXYp5tqoiDhqdr4pqFqqi1KqqppqabAqbCoqlrpkq3aqK86jbW5AYlqWqiKDCi6qqCa
66−q7Q1B4tqXR3wq4VAqydqq2aJq8bqqm6QrGCKWo4KlMF6DMN6q6w6rbIqpbBqgHqTrQ+6rdQDpJ+6
67−p+C6rObqA9baNcy6behaDN0ard/arqKaBvGaRJzgrKmqrsTKrvo6V++aA/3KQwebBgArrNCam9Ja
68−sPtKBgmLAvMqkfVKDPcKsfkqscdKseNqkCtwsfeZscOwsc4ZsR4bPgsbAxU7si0bBg3LrQ+bsh27
69−sr4asy3wstojCTObrjQ6qU+Ks/7q/gU8yzw6uwU/a681m50qS7Q52wVH6wIkuwZLq7FNS57FCrVZ
70−lLTFqIG92p4jdaczmqfrSqlcq7BoGrLAeZ2KcLUnm7XvubVpW7RVMLVsCqxk+6NBe7ZDW7cqULUu
71−y7Yz2ZRe+wRwKwwo67Q3C7jlWjeEq6HNIl4mq7hy66Z067gWe7gwpYOSiZWPWrnBsLhaS7CaG7ic
72−e5J4manMCQiJO7qXW1dPe7pfygR4O7l98LoFEbuqNbu0W7tJcLutC3Wiu7sC662Z+7swG7yRq5w1
73−tXV7y6THi6/Jq7zLawTCi3vwWLy/QLpza7rWS7U6m73e8ZHce5e8O3CNG76bOwTk/otdJRu9kTq9
74−HFu97Iu0M9O8bfkEgvsq54ua9Guz9nu/+Auv+tuRUtC/SqC73Zu+Lbm+BIy6PfC+h6Sk/8sXiWmo
75−EQy/OkDBdMQGDIy+Acy4A7zBwHOeHowbahDCANy3A4u2JnybN5DCSqDAQcDCGGyZGhzDTlUDNNwa
76−qQuB18iX2Yi84MvDbisDP5wsQSyOV0rEWYrEFQwDSzwWTVyYlEmoGTyhJCnFCOguB1yd3HDFpXqY
77−WqzDXIygXly+nhiZWNwFNmwDOOy9mHvEa0yWOfiJn/sFcTwDc+zAT3nHQAyFnvvG90DGzkuIBWq2
78−L/y3gqy9cwiIXZiPfIzIYryP/mUrkml8qI8snl/LiLpIrmrQx0IsplBMpp38F+NRxUhBBX88wqUL
79−w6nMxq8Uxkv5BqS8x4MqlJrspF08y897j7zqeWuQy6ybxbxcqJsMzFEQm6xcyU7wyi5sxLLMzFkV
80−UbacQnZgzG2ryHjay0L7y9b8wT61umXsJ6krzYxMzY48zlNMkOYcq9t8uOoMzn4rzu6swpnHlgi8
81−B9x8y5jMt+tMvXaczz2MiPx8yf4cs/WszL6sxgatyjiZ0ADdB//MqAEtvdNM0NUc0eSMhmHbJu/a
82−0Fv80Jzs0T8wPT1B0do8CNxM0mhs0ih9BTMCPiwNnoWQyzAtmjs801RQJPBx/tMzZSdcutNFzNHt
83−7NNHwCgtPMm6zAvcadRRrNSQ+2lf0ZnHnNPGKdWoTNVSMDGoidXnTNQ0wNWu6dVfDU69INbyvAgX
84−a9bEidZOgDioGdKOwKxw7aFybbvHFY2tmAiJmtcruNdNgJyl7NbVJdh+Sdh8Pcw4yiwGMAGRbQCU
85−jQGRnQKXvQWPfcF0LLsQzNg+XIIgiiyVLQGUfdmZTQGpbQKr3cpPbcqhedT1W9CgjbDhqKBsktmT
86−XdoHkNqtXdqnLdm7fdqVTdy7PcaGPMSxPdW1zbzD/GnHPNmm3duSXd0XIN3TTd3ajdoVwN1iIJ+K
87−PZrNjQQS9Z1wIt3GPd28/m0B2L3d2e3dxJ3dY2DenA3IcTnezg3SUdvNwu3b1d3aqt3b8P3e6m3d
88−AH7IIpvR87vRs93R+D3D48qbfbLaup3e7G3avD3g1G3c7W0GEl7fsPy9Dv7gof3c7prIolCa4d3T
89−JO6+kQuYssPhgL0WK77MLU4ED7mWQ40KOg6oCt6pIV7HI37jg2vi50Q+SVoGxIjR3pzJDh3OEE3k
90−tm3kR94RSa7k0VjjMi3l+Uvl5fqMV04GFaTlUH7SXL6FklyH/hrmZ+ALZH7PUX7mJa7fa2Iidn7n
91−eJ7ner7nJgLiDC7AtC3neezG9wuXG2jmgr6KXh7Bhv5DiT4D1qqvja6d/o/+h0K9spPuu5UujXTO
92−w5n+2ZsOjotOwJ9ewqGOi2ArxaUe6Keu6J0ew6s+5K3u6sZIjdYb60k962h+6R6L6/is64uY5myt
93−vL4e58Ae7LwuscWO6Me+XclesMve7EqczUQb7dJOxdSOs9Z+7S4Q6e267dzexk5N6m3q2aYe7uVc
94−yIVe7r0L6ugek/FM7OyuvudurAUgAfd+AAWw7z+Q7yfg79806utuk3F9uvyu7/qe7wCvAwtPAg3/
95−UdmO6fP+wPVuJf5+7/uu8BXw8BmP8QrP7x0/AR0/8gl/8CKf8fhu8hpf8h4P8iHfuXpM7gAw8wBQ
96−8zZ/8zif8zrf2e1e/vEWj/AIv/L4fgEXD/QXX/RFL/JAv/RLr/JDb/Qpr/QmD/ECz746f/VYj/U8
97−T++sjigYz/Jfn/AYsPBC7/Rkj/JJ//Ri//Qr//FKz/JU/+omnPV0X/dbT/FdXyco//ZCbwEHH/Z/
98−//drb/Z9H/htz/Ypr/Fp7+zx/rt1//hXf/eB7LhkP/Qk7/eCn/hwr/kjf/lBv/d7v/mKj/ahn+4x
99−P/CQn/o5zNM2jtIPnwGvvwPeDq6qX/uSf99I3PkeEPtE7+JVH761r/q3f+g+zft+7/tyv8HBn/rD
100−7+jvLurJz+jL//jNT+nPb/qEbvXTb/f2fegP8v3gH/7iP/7kX/7m/n/+6D/707r93K8bnPH+8B//
101−8j//9F//9n//+E//oez47J/1SmHJEHDkpNVenPXm3X8wFEeyNM8RCFa2BVA4lme6tm8g13e+9/lW
102−UDgkFgOvW1K5ZDadT6hSVURGrVdsdvnjdntGcHhY1ZbNZ3Ra3ZkSyWt4XF7z1rtivNi+5/f9f8BA
103−wUHCQsNDxETFHaO3uUfISDa7vErLS8xMzU3OTr1Az1DRUdJS0yBHSdXVyL3TV9hY2dmjRdtb3NxB
104−2iNW3985XeFh4mLjY+Rk5WUeYOdn6Gjpaepq62vsbO1t7m7vb/Bw8XHycvNz9HT1dfZ293f4ePl5
105−+nr7e/x8/X3+G37/f4ABBQ4kWNDgQYQJFS5k2NDhQ4gRJdKLAAA7
Documentation/DocBook/media/dvb/.gitignore+0−1
@@ -1 +0,0 @@
1−!*.xml
Documentation/DocBook/media/dvb/audio.xml+0−1314
@@ -1,1314 +0,0 @@
1−<title>DVB Audio Device</title>
2−<para>The DVB audio device controls the MPEG2 audio decoder of the DVB hardware. It
3−can be accessed through <constant>/dev/dvb/adapter?/audio?</constant>. Data types and and
4−ioctl definitions can be accessed by including <constant>linux/dvb/audio.h</constant> in your
5−application.
6−</para>
7−<para>Please note that some DVB cards don&#8217;t have their own MPEG decoder, which results in
8−the omission of the audio and video device.
9−</para>
10−<para>
11−These ioctls were also used by V4L2 to control MPEG decoders implemented in V4L2. The use
12−of these ioctls for that purpose has been made obsolete and proper V4L2 ioctls or controls
13−have been created to replace that functionality.</para>
14−
15−<section id="audio_data_types">
16−<title>Audio Data Types</title>
17−<para>This section describes the structures, data types and defines used when talking to the
18−audio device.
19−</para>
20−
21−<section id="audio-stream-source-t">
22−<title>audio_stream_source_t</title>
23−<para>The audio stream source is set through the AUDIO_SELECT_SOURCE call and can take
24−the following values, depending on whether we are replaying from an internal (demux) or
25−external (user write) source.
26−</para>
27−<programlisting>
28−typedef enum {
29− AUDIO_SOURCE_DEMUX,
30− AUDIO_SOURCE_MEMORY
31−} audio_stream_source_t;
32−</programlisting>
33−<para>AUDIO_SOURCE_DEMUX selects the demultiplexer (fed either by the frontend or the
34−DVR device) as the source of the video stream. If AUDIO_SOURCE_MEMORY
35−is selected the stream comes from the application through the <constant>write()</constant> system
36−call.
37−</para>
38−
39−</section>
40−<section id="audio-play-state-t">
41−<title>audio_play_state_t</title>
42−<para>The following values can be returned by the AUDIO_GET_STATUS call representing the
43−state of audio playback.
44−</para>
45−<programlisting>
46−typedef enum {
47− AUDIO_STOPPED,
48− AUDIO_PLAYING,
49− AUDIO_PAUSED
50−} audio_play_state_t;
51−</programlisting>
52−
53−</section>
54−<section id="audio-channel-select-t">
55−<title>audio_channel_select_t</title>
56−<para>The audio channel selected via AUDIO_CHANNEL_SELECT is determined by the
57−following values.
58−</para>
59−<programlisting>
60−typedef enum {
61− AUDIO_STEREO,
62− AUDIO_MONO_LEFT,
63− AUDIO_MONO_RIGHT,
64− AUDIO_MONO,
65− AUDIO_STEREO_SWAPPED
66−} audio_channel_select_t;
67−</programlisting>
68−
69−</section>
70−<section id="audio-status">
71−<title>struct audio_status</title>
72−<para>The AUDIO_GET_STATUS call returns the following structure informing about various
73−states of the playback operation.
74−</para>
75−<programlisting>
76−typedef struct audio_status {
77− boolean AV_sync_state;
78− boolean mute_state;
79− audio_play_state_t play_state;
80− audio_stream_source_t stream_source;
81− audio_channel_select_t channel_select;
82− boolean bypass_mode;
83− audio_mixer_t mixer_state;
84−} audio_status_t;
85−</programlisting>
86−
87−</section>
88−<section id="audio-mixer">
89−<title>struct audio_mixer</title>
90−<para>The following structure is used by the AUDIO_SET_MIXER call to set the audio
91−volume.
92−</para>
93−<programlisting>
94−typedef struct audio_mixer {
95− unsigned int volume_left;
96− unsigned int volume_right;
97−} audio_mixer_t;
98−</programlisting>
99−
100−</section>
101−<section id="audio_encodings">
102−<title>audio encodings</title>
103−<para>A call to AUDIO_GET_CAPABILITIES returns an unsigned integer with the following
104−bits set according to the hardwares capabilities.
105−</para>
106−<programlisting>
107− #define AUDIO_CAP_DTS 1
108− #define AUDIO_CAP_LPCM 2
109− #define AUDIO_CAP_MP1 4
110− #define AUDIO_CAP_MP2 8
111− #define AUDIO_CAP_MP3 16
112− #define AUDIO_CAP_AAC 32
113− #define AUDIO_CAP_OGG 64
114− #define AUDIO_CAP_SDDS 128
115− #define AUDIO_CAP_AC3 256
116−</programlisting>
117−
118−</section>
119−<section id="audio-karaoke">
120−<title>struct audio_karaoke</title>
121−<para>The ioctl AUDIO_SET_KARAOKE uses the following format:
122−</para>
123−<programlisting>
124−typedef
125−struct audio_karaoke {
126− int vocal1;
127− int vocal2;
128− int melody;
129−} audio_karaoke_t;
130−</programlisting>
131−<para>If Vocal1 or Vocal2 are non-zero, they get mixed into left and right t at 70% each. If both,
132−Vocal1 and Vocal2 are non-zero, Vocal1 gets mixed into the left channel and Vocal2 into the
133−right channel at 100% each. Ff Melody is non-zero, the melody channel gets mixed into left
134−and right.
135−</para>
136−
137−</section>
138−<section id="audio-attributes-t">
139−<title>audio attributes</title>
140−<para>The following attributes can be set by a call to AUDIO_SET_ATTRIBUTES:
141−</para>
142−<programlisting>
143− typedef uint16_t audio_attributes_t;
144− /&#x22C6; bits: descr. &#x22C6;/
145− /&#x22C6; 15-13 audio coding mode (0=ac3, 2=mpeg1, 3=mpeg2ext, 4=LPCM, 6=DTS, &#x22C6;/
146− /&#x22C6; 12 multichannel extension &#x22C6;/
147− /&#x22C6; 11-10 audio type (0=not spec, 1=language included) &#x22C6;/
148− /&#x22C6; 9- 8 audio application mode (0=not spec, 1=karaoke, 2=surround) &#x22C6;/
149− /&#x22C6; 7- 6 Quantization / DRC (mpeg audio: 1=DRC exists)(lpcm: 0=16bit, &#x22C6;/
150− /&#x22C6; 5- 4 Sample frequency fs (0=48kHz, 1=96kHz) &#x22C6;/
151− /&#x22C6; 2- 0 number of audio channels (n+1 channels) &#x22C6;/
152−</programlisting>
153− </section></section>
154−<section id="audio_function_calls">
155−<title>Audio Function Calls</title>
156−
157−
158−<section id="audio_fopen">
159−<title>open()</title>
160−<para>DESCRIPTION
161−</para>
162−<informaltable><tgroup cols="1"><tbody><row><entry
163− align="char">
164−<para>This system call opens a named audio device (e.g. /dev/dvb/adapter0/audio0)
165− for subsequent use. When an open() call has succeeded, the device will be ready
166− for use. The significance of blocking or non-blocking mode is described in the
167− documentation for functions where there is a difference. It does not affect the
168− semantics of the open() call itself. A device opened in blocking mode can later
169− be put into non-blocking mode (and vice versa) using the F_SETFL command
170− of the fcntl system call. This is a standard system call, documented in the Linux
171− manual page for fcntl. Only one user can open the Audio Device in O_RDWR
172− mode. All other attempts to open the device in this mode will fail, and an error
173− code will be returned. If the Audio Device is opened in O_RDONLY mode, the
174− only ioctl call that can be used is AUDIO_GET_STATUS. All other call will
175− return with an error code.</para>
176−</entry>
177− </row></tbody></tgroup></informaltable>
178−<para>SYNOPSIS
179−</para>
180−<informaltable><tgroup cols="1"><tbody><row><entry
181− align="char">
182−<para>int open(const char &#x22C6;deviceName, int flags);</para>
183−</entry>
184− </row></tbody></tgroup></informaltable>
185−<para>PARAMETERS
186−</para>
187−<informaltable><tgroup cols="2"><tbody><row><entry
188− align="char">
189−<para>const char
190− *deviceName</para>
191−</entry><entry
192− align="char">
193−<para>Name of specific audio device.</para>
194−</entry>
195− </row><row><entry
196− align="char">
197−<para>int flags</para>
198−</entry><entry
199− align="char">
200−<para>A bit-wise OR of the following flags:</para>
201−</entry>
202− </row><row><entry
203− align="char">
204−</entry><entry
205− align="char">
206−<para>O_RDONLY read-only access</para>
207−</entry>
208− </row><row><entry
209− align="char">
210−</entry><entry
211− align="char">
212−<para>O_RDWR read/write access</para>
213−</entry>
214− </row><row><entry
215− align="char">
216−</entry><entry
217− align="char">
218−<para>O_NONBLOCK open in non-blocking mode</para>
219−</entry>
220− </row><row><entry
221− align="char">
222−</entry><entry
223− align="char">
224−<para>(blocking mode is the default)</para>
225−</entry>
226− </row></tbody></tgroup></informaltable>
227−<para>RETURN VALUE</para>
228−<informaltable><tgroup cols="2"><tbody><row><entry
229− align="char">
230−<para>ENODEV</para>
231−</entry><entry
232− align="char">
233−<para>Device driver not loaded/available.</para>
234−</entry>
235− </row><row><entry
236− align="char">
237−<para>EBUSY</para>
238−</entry><entry
239− align="char">
240−<para>Device or resource busy.</para>
241−</entry>
242− </row><row><entry
243− align="char">
244−<para>EINVAL</para>
245−</entry><entry
246− align="char">
247−<para>Invalid argument.</para>
248−</entry>
249− </row></tbody></tgroup></informaltable>
250−
251−</section>
252−<section id="audio_fclose">
253−<title>close()</title>
254−<para>DESCRIPTION
255−</para>
256−<informaltable><tgroup cols="1"><tbody><row><entry
257− align="char">
258−<para>This system call closes a previously opened audio device.</para>
259−</entry>
260− </row></tbody></tgroup></informaltable>
261−<para>SYNOPSIS
262−</para>
263−<informaltable><tgroup cols="1"><tbody><row><entry
264− align="char">
265−<para>int close(int fd);</para>
266−</entry>
267− </row></tbody></tgroup></informaltable>
268−<para>PARAMETERS
269−</para>
270−<informaltable><tgroup cols="2"><tbody><row><entry
271− align="char">
272−<para>int fd</para>
273−</entry><entry
274− align="char">
275−<para>File descriptor returned by a previous call to open().</para>
276−</entry>
277− </row></tbody></tgroup></informaltable>
278−<para>RETURN VALUE</para>
279−<informaltable><tgroup cols="2"><tbody><row><entry
280− align="char">
281−<para>EBADF</para>
282−</entry><entry
283− align="char">
284−<para>fd is not a valid open file descriptor.</para>
285−</entry>
286− </row></tbody></tgroup></informaltable>
287−
288−</section>
289−<section id="audio_fwrite">
290−<title>write()</title>
291−<para>DESCRIPTION
292−</para>
293−<informaltable><tgroup cols="1"><tbody><row><entry
294− align="char">
295−<para>This system call can only be used if AUDIO_SOURCE_MEMORY is selected
296− in the ioctl call AUDIO_SELECT_SOURCE. The data provided shall be in
297− PES format. If O_NONBLOCK is not specified the function will block until
298− buffer space is available. The amount of data to be transferred is implied by
299− count.</para>
300−</entry>
301− </row></tbody></tgroup></informaltable>
302−<para>SYNOPSIS
303−</para>
304−<informaltable><tgroup cols="1"><tbody><row><entry
305− align="char">
306−<para>size_t write(int fd, const void &#x22C6;buf, size_t count);</para>
307−</entry>
308− </row></tbody></tgroup></informaltable>
309−<para>PARAMETERS
310−</para>
311−<informaltable><tgroup cols="2"><tbody><row><entry
312− align="char">
313−<para>int fd</para>
314−</entry><entry
315− align="char">
316−<para>File descriptor returned by a previous call to open().</para>
317−</entry>
318− </row><row><entry
319− align="char">
320−<para>void *buf</para>
321−</entry><entry
322− align="char">
323−<para>Pointer to the buffer containing the PES data.</para>
324−</entry>
325− </row><row><entry
326− align="char">
327−<para>size_t count</para>
328−</entry><entry
329− align="char">
330−<para>Size of buf.</para>
331−</entry>
332− </row></tbody></tgroup></informaltable>
333−<para>RETURN VALUE</para>
334−<informaltable><tgroup cols="2"><tbody><row><entry
335− align="char">
336−<para>EPERM</para>
337−</entry><entry
338− align="char">
339−<para>Mode AUDIO_SOURCE_MEMORY not selected.</para>
340−</entry>
341− </row><row><entry
342− align="char">
343−<para>ENOMEM</para>
344−</entry><entry
345− align="char">
346−<para>Attempted to write more data than the internal buffer can
347− hold.</para>
348−</entry>
349− </row><row><entry
350− align="char">
351−<para>EBADF</para>
352−</entry><entry
353− align="char">
354−<para>fd is not a valid open file descriptor.</para>
355−</entry>
356− </row></tbody></tgroup></informaltable>
357−
358−</section><section id="AUDIO_STOP"
359−role="subsection"><title>AUDIO_STOP</title>
360−<para>DESCRIPTION
361−</para>
362−<informaltable><tgroup cols="1"><tbody><row><entry
363− align="char">
364−<para>This ioctl call asks the Audio Device to stop playing the current stream.</para>
365−</entry>
366− </row></tbody></tgroup></informaltable>
367−<para>SYNOPSIS
368−</para>
369−<informaltable><tgroup cols="1"><tbody><row><entry
370− align="char">
371−<para>int ioctl(int fd, int request = AUDIO_STOP);</para>
372−</entry>
373− </row></tbody></tgroup></informaltable>
374−<para>PARAMETERS
375−</para>
376−<informaltable><tgroup cols="2"><tbody><row><entry
377− align="char">
378−<para>int fd</para>
379−</entry><entry
380− align="char">
381−<para>File descriptor returned by a previous call to open().</para>
382−</entry>
383− </row><row><entry
384− align="char">
385−<para>int request</para>
386−</entry><entry
387− align="char">
388−<para>Equals AUDIO_STOP for this command.</para>
389−</entry>
390− </row></tbody></tgroup></informaltable>
391−&return-value-dvb;
392−
393−</section><section id="AUDIO_PLAY"
394−role="subsection"><title>AUDIO_PLAY</title>
395−<para>DESCRIPTION
396−</para>
397−<informaltable><tgroup cols="1"><tbody><row><entry
398− align="char">
399−<para>This ioctl call asks the Audio Device to start playing an audio stream from the
400− selected source.</para>
401−</entry>
402− </row></tbody></tgroup></informaltable>
403−<para>SYNOPSIS
404−</para>
405−<informaltable><tgroup cols="1"><tbody><row><entry
406− align="char">
407−<para>int ioctl(int fd, int request = AUDIO_PLAY);</para>
408−</entry>
409− </row></tbody></tgroup></informaltable>
410−<para>PARAMETERS
411−</para>
412−<informaltable><tgroup cols="2"><tbody><row><entry
413− align="char">
414−<para>int fd</para>
415−</entry><entry
416− align="char">
417−<para>File descriptor returned by a previous call to open().</para>
418−</entry>
419− </row><row><entry
420− align="char">
421−<para>int request</para>
422−</entry><entry
423− align="char">
424−<para>Equals AUDIO_PLAY for this command.</para>
425−</entry>
426− </row></tbody></tgroup></informaltable>
427−&return-value-dvb;
428−
429−</section><section id="AUDIO_PAUSE"
430−role="subsection"><title>AUDIO_PAUSE</title>
431−<para>DESCRIPTION
432−</para>
433−<informaltable><tgroup cols="1"><tbody><row><entry
434− align="char">
435−<para>This ioctl call suspends the audio stream being played. Decoding and playing
436− are paused. It is then possible to restart again decoding and playing process of
437− the audio stream using AUDIO_CONTINUE command.</para>
438−</entry>
439− </row><row><entry
440− align="char">
441−<para>If AUDIO_SOURCE_MEMORY is selected in the ioctl call
442− AUDIO_SELECT_SOURCE, the DVB-subsystem will not decode (consume)
443− any more data until the ioctl call AUDIO_CONTINUE or AUDIO_PLAY is
444− performed.</para>
445−</entry>
446− </row></tbody></tgroup></informaltable>
447−<para>SYNOPSIS
448−</para>
449−<informaltable><tgroup cols="1"><tbody><row><entry
450− align="char">
451−<para>int ioctl(int fd, int request = AUDIO_PAUSE);</para>
452−</entry>
453− </row></tbody></tgroup></informaltable>
454−<para>PARAMETERS
455−</para>
456−<informaltable><tgroup cols="2"><tbody><row><entry
457− align="char">
458−<para>int fd</para>
459−</entry><entry
460− align="char">
461−<para>File descriptor returned by a previous call to open().</para>
462−</entry>
463− </row><row><entry
464− align="char">
465−<para>int request</para>
466−</entry><entry
467− align="char">
468−<para>Equals AUDIO_PAUSE for this command.</para>
469−</entry>
470− </row></tbody></tgroup></informaltable>
471−&return-value-dvb;
472−
473−</section><section id="AUDIO_CONTINUE"
474−role="subsection"><title>AUDIO_CONTINUE</title>
475−<para>DESCRIPTION
476−</para>
477−<informaltable><tgroup cols="1"><tbody><row><entry
478− align="char">
479−<para>This ioctl restarts the decoding and playing process previously paused
480−with AUDIO_PAUSE command.</para>
481−</entry>
482− </row><row><entry
483− align="char">
484−<para>It only works if the stream were previously stopped with AUDIO_PAUSE</para>
485−</entry>
486− </row></tbody></tgroup></informaltable>
487−<para>SYNOPSIS
488−</para>
489−<informaltable><tgroup cols="1"><tbody><row><entry
490− align="char">
491−<para>int ioctl(int fd, int request = AUDIO_CONTINUE);</para>
492−</entry>
493− </row></tbody></tgroup></informaltable>
494−<para>PARAMETERS
495−</para>
496−<informaltable><tgroup cols="2"><tbody><row><entry
497− align="char">
498−<para>int fd</para>
499−</entry><entry
500− align="char">
501−<para>File descriptor returned by a previous call to open().</para>
502−</entry>
503− </row><row><entry
504− align="char">
505−<para>int request</para>
506−</entry><entry
507− align="char">
508−<para>Equals AUDIO_CONTINUE for this command.</para>
509−</entry>
510− </row></tbody></tgroup></informaltable>
511−&return-value-dvb;
512−
513−</section><section id="AUDIO_SELECT_SOURCE"
514−role="subsection"><title>AUDIO_SELECT_SOURCE</title>
515−<para>DESCRIPTION
516−</para>
517−<informaltable><tgroup cols="1"><tbody><row><entry
518− align="char">
519−<para>This ioctl call informs the audio device which source shall be used
520− for the input data. The possible sources are demux or memory. If
521− AUDIO_SOURCE_MEMORY is selected, the data is fed to the Audio Device
522− through the write command.</para>
523−</entry>
524− </row></tbody></tgroup></informaltable>
525−<para>SYNOPSIS
526−</para>
527−<informaltable><tgroup cols="1"><tbody><row><entry
528− align="char">
529−<para>int ioctl(int fd, int request = AUDIO_SELECT_SOURCE,
530− audio_stream_source_t source);</para>
531−</entry>
532− </row></tbody></tgroup></informaltable>
533−<para>PARAMETERS
534−</para>
535−<informaltable><tgroup cols="2"><tbody><row><entry
536− align="char">
537−<para>int fd</para>
538−</entry><entry
539− align="char">
540−<para>File descriptor returned by a previous call to open().</para>
541−</entry>
542− </row><row><entry
543− align="char">
544−<para>int request</para>
545−</entry><entry
546− align="char">
547−<para>Equals AUDIO_SELECT_SOURCE for this command.</para>
548−</entry>
549− </row><row><entry
550− align="char">
551−<para>audio_stream_source_t
552− source</para>
553−</entry><entry
554− align="char">
555−<para>Indicates the source that shall be used for the Audio
556− stream.</para>
557−</entry>
558− </row></tbody></tgroup></informaltable>
559−&return-value-dvb;
560−
561−</section><section id="AUDIO_SET_MUTE"
562−role="subsection"><title>AUDIO_SET_MUTE</title>
563−<para>DESCRIPTION
564−</para>
565−<para>This ioctl is for DVB devices only. To control a V4L2 decoder use the V4L2
566−&VIDIOC-DECODER-CMD; with the <constant>V4L2_DEC_CMD_START_MUTE_AUDIO</constant> flag instead.</para>
567−<informaltable><tgroup cols="1"><tbody><row><entry
568− align="char">
569−<para>This ioctl call asks the audio device to mute the stream that is currently being
570− played.</para>
571−</entry>
572− </row></tbody></tgroup></informaltable>
573−<para>SYNOPSIS
574−</para>
575−<informaltable><tgroup cols="1"><tbody><row><entry
576− align="char">
577−<para>int ioctl(int fd, int request = AUDIO_SET_MUTE,
578− boolean state);</para>
579−</entry>
580− </row></tbody></tgroup></informaltable>
581−<para>PARAMETERS
582−</para>
583−<informaltable><tgroup cols="2"><tbody><row><entry
584− align="char">
585−<para>int fd</para>
586−</entry><entry
587− align="char">
588−<para>File descriptor returned by a previous call to open().</para>
589−</entry>
590− </row><row><entry
591− align="char">
592−<para>int request</para>
593−</entry><entry
594− align="char">
595−<para>Equals AUDIO_SET_MUTE for this command.</para>
596−</entry>
597− </row><row><entry
598− align="char">
599−<para>boolean state</para>
600−</entry><entry
601− align="char">
602−<para>Indicates if audio device shall mute or not.</para>
603−</entry>
604− </row><row><entry
605− align="char">
606−</entry><entry
607− align="char">
608−<para>TRUE Audio Mute</para>
609−</entry>
610− </row><row><entry
611− align="char">
612−</entry><entry
613− align="char">
614−<para>FALSE Audio Un-mute</para>
615−</entry>
616− </row></tbody></tgroup></informaltable>
617−&return-value-dvb;
618−
619−</section><section id="AUDIO_SET_AV_SYNC"
620−role="subsection"><title>AUDIO_SET_AV_SYNC</title>
621−<para>DESCRIPTION
622−</para>
623−<informaltable><tgroup cols="1"><tbody><row><entry
624− align="char">
625−<para>This ioctl call asks the Audio Device to turn ON or OFF A/V synchronization.</para>
626−</entry>
627− </row></tbody></tgroup></informaltable>
628−<para>SYNOPSIS
629−</para>
630−<informaltable><tgroup cols="1"><tbody><row><entry
631− align="char">
632−<para>int ioctl(int fd, int request = AUDIO_SET_AV_SYNC,
633− boolean state);</para>
634−</entry>
635− </row></tbody></tgroup></informaltable>
636−<para>PARAMETERS
637−</para>
638−<informaltable><tgroup cols="2"><tbody><row><entry
639− align="char">
640−<para>int fd</para>
641−</entry><entry
642− align="char">
643−<para>File descriptor returned by a previous call to open().</para>
644−</entry>
645− </row><row><entry
646− align="char">
647−<para>int request</para>
648−</entry><entry
649− align="char">
650−<para>Equals AUDIO_AV_SYNC for this command.</para>
651−</entry>
652− </row><row><entry
653− align="char">
654−<para>boolean state</para>
655−</entry><entry
656− align="char">
657−<para>Tells the DVB subsystem if A/V synchronization shall be
658− ON or OFF.</para>
659−</entry>
660− </row><row><entry
661− align="char">
662−</entry><entry
663− align="char">
664−<para>TRUE AV-sync ON</para>
665−</entry>
666− </row><row><entry
667− align="char">
668−</entry><entry
669− align="char">
670−<para>FALSE AV-sync OFF</para>
671−</entry>
672− </row></tbody></tgroup></informaltable>
673−&return-value-dvb;
674−
675−</section><section id="AUDIO_SET_BYPASS_MODE"
676−role="subsection"><title>AUDIO_SET_BYPASS_MODE</title>
677−<para>DESCRIPTION
678−</para>
679−<informaltable><tgroup cols="1"><tbody><row><entry
680− align="char">
681−<para>This ioctl call asks the Audio Device to bypass the Audio decoder and forward
682− the stream without decoding. This mode shall be used if streams that can&#8217;t be
683− handled by the DVB system shall be decoded. Dolby DigitalTM streams are
684− automatically forwarded by the DVB subsystem if the hardware can handle it.</para>
685−</entry>
686− </row></tbody></tgroup></informaltable>
687−<para>SYNOPSIS
688−</para>
689−<informaltable><tgroup cols="1"><tbody><row><entry
690− align="char">
691−<para>int ioctl(int fd, int request =
692− AUDIO_SET_BYPASS_MODE, boolean mode);</para>
693−</entry>
694− </row></tbody></tgroup></informaltable>
695−<para>PARAMETERS
696−</para>
697−<informaltable><tgroup cols="2"><tbody><row><entry
698− align="char">
699−<para>int fd</para>
700−</entry><entry
701− align="char">
702−<para>File descriptor returned by a previous call to open().</para>
703−</entry>
704− </row><row><entry
705− align="char">
706−<para>int request</para>
707−</entry><entry
708− align="char">
709−<para>Equals AUDIO_SET_BYPASS_MODE for this
710− command.</para>
711−</entry>
712− </row><row><entry
713− align="char">
714−<para>boolean mode</para>
715−</entry><entry
716− align="char">
717−<para>Enables or disables the decoding of the current Audio
718− stream in the DVB subsystem.</para>
719−</entry>
720− </row><row><entry
721− align="char">
722−</entry><entry
723− align="char">
724−<para>TRUE Bypass is disabled</para>
725−</entry>
726− </row><row><entry
727− align="char">
728−</entry><entry
729− align="char">
730−<para>FALSE Bypass is enabled</para>
731−</entry>
732− </row></tbody></tgroup></informaltable>
733−&return-value-dvb;
734−
735−</section><section id="AUDIO_CHANNEL_SELECT"
736−role="subsection"><title>AUDIO_CHANNEL_SELECT</title>
737−<para>DESCRIPTION
738−</para>
739−<para>This ioctl is for DVB devices only. To control a V4L2 decoder use the V4L2
740−<constant>V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK</constant> control instead.</para>
741−<informaltable><tgroup cols="1"><tbody><row><entry
742− align="char">
743−<para>This ioctl call asks the Audio Device to select the requested channel if possible.</para>
744−</entry>
745− </row></tbody></tgroup></informaltable>
746−<para>SYNOPSIS
747−</para>
748−<informaltable><tgroup cols="1"><tbody><row><entry
749− align="char">
750−<para>int ioctl(int fd, int request =
751− AUDIO_CHANNEL_SELECT, audio_channel_select_t);</para>
752−</entry>
753− </row></tbody></tgroup></informaltable>
754−<para>PARAMETERS
755−</para>
756−<informaltable><tgroup cols="2"><tbody><row><entry
757− align="char">
758−<para>int fd</para>
759−</entry><entry
760− align="char">
761−<para>File descriptor returned by a previous call to open().</para>
762−</entry>
763− </row><row><entry
764− align="char">
765−<para>int request</para>
766−</entry><entry
767− align="char">
768−<para>Equals AUDIO_CHANNEL_SELECT for this
769− command.</para>
770−</entry>
771− </row><row><entry
772− align="char">
773−<para>audio_channel_select_t
774− ch</para>
775−</entry><entry
776− align="char">
777−<para>Select the output format of the audio (mono left/right,
778− stereo).</para>
779−</entry>
780− </row></tbody></tgroup></informaltable>
781−&return-value-dvb;
782−
783−</section><section id="AUDIO_BILINGUAL_CHANNEL_SELECT"
784−role="subsection"><title>AUDIO_BILINGUAL_CHANNEL_SELECT</title>
785−<para>DESCRIPTION
786−</para>
787−<para>This ioctl is obsolete. Do not use in new drivers. It has been replaced by
788−the V4L2 <constant>V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK</constant> control
789−for MPEG decoders controlled through V4L2.</para>
790−<informaltable><tgroup cols="1"><tbody><row><entry
791− align="char">
792−<para>This ioctl call asks the Audio Device to select the requested channel for bilingual streams if possible.</para>
793−</entry>
794− </row></tbody></tgroup></informaltable>
795−<para>SYNOPSIS
796−</para>
797−<informaltable><tgroup cols="1"><tbody><row><entry
798− align="char">
799−<para>int ioctl(int fd, int request =
800− AUDIO_BILINGUAL_CHANNEL_SELECT, audio_channel_select_t);</para>
801−</entry>
802− </row></tbody></tgroup></informaltable>
803−<para>PARAMETERS
804−</para>
805−<informaltable><tgroup cols="2"><tbody><row><entry
806− align="char">
807−<para>int fd</para>
808−</entry><entry
809− align="char">
810−<para>File descriptor returned by a previous call to open().</para>
811−</entry>
812− </row><row><entry
813− align="char">
814−<para>int request</para>
815−</entry><entry
816− align="char">
817−<para>Equals AUDIO_BILINGUAL_CHANNEL_SELECT for this
818− command.</para>
819−</entry>
820− </row><row><entry
821− align="char">
822−<para>audio_channel_select_t
823−ch</para>
824−</entry><entry
825− align="char">
826−<para>Select the output format of the audio (mono left/right,
827− stereo).</para>
828−</entry>
829− </row>
830−</tbody></tgroup></informaltable>
831−&return-value-dvb;
832−
833−</section><section id="AUDIO_GET_PTS"
834−role="subsection"><title>AUDIO_GET_PTS</title>
835−<para>DESCRIPTION
836−</para>
837−<para>This ioctl is obsolete. Do not use in new drivers. If you need this functionality,
838−then please contact the linux-media mailing list (&v4l-ml;).</para>
839−<informaltable><tgroup cols="1"><tbody><row><entry
840− align="char">
841−<para>This ioctl call asks the Audio Device to return the current PTS timestamp.</para>
842−</entry>
843− </row></tbody></tgroup></informaltable>
844−<para>SYNOPSIS
845−</para>
846−<informaltable><tgroup cols="1"><tbody><row><entry
847− align="char">
848−<para>int ioctl(int fd, int request =
849− AUDIO_GET_PTS, __u64 *pts);</para>
850−</entry>
851− </row></tbody></tgroup></informaltable>
852−<para>PARAMETERS
853−</para>
854−<informaltable><tgroup cols="2"><tbody><row><entry
855− align="char">
856−<para>int fd</para>
857−</entry><entry
858− align="char">
859−<para>File descriptor returned by a previous call to open().</para>
860−</entry>
861− </row><row><entry
862− align="char">
863−<para>int request</para>
864−</entry><entry
865− align="char">
866−<para>Equals AUDIO_GET_PTS for this
867− command.</para>
868−</entry>
869− </row><row><entry
870− align="char">
871−<para>__u64 *pts
872−</para>
873−</entry><entry
874− align="char">
875−<para>Returns the 33-bit timestamp as defined in ITU T-REC-H.222.0 / ISO/IEC 13818-1.
876−</para>
877−<para>
878−The PTS should belong to the currently played
879−frame if possible, but may also be a value close to it
880−like the PTS of the last decoded frame or the last PTS
881−extracted by the PES parser.</para>
882−</entry>
883− </row></tbody></tgroup></informaltable>
884−&return-value-dvb;
885−
886−</section><section id="AUDIO_GET_STATUS"
887−role="subsection"><title>AUDIO_GET_STATUS</title>
888−<para>DESCRIPTION
889−</para>
890−<informaltable><tgroup cols="1"><tbody><row><entry
891− align="char">
892−<para>This ioctl call asks the Audio Device to return the current state of the Audio
893− Device.</para>
894−</entry>
895− </row></tbody></tgroup></informaltable>
896−<para>SYNOPSIS
897−</para>
898−<informaltable><tgroup cols="1"><tbody><row><entry
899− align="char">
900−<para>int ioctl(int fd, int request = AUDIO_GET_STATUS,
901− struct audio_status &#x22C6;status);</para>
902−</entry>
903− </row></tbody></tgroup></informaltable>
904−<para>PARAMETERS
905−</para>
906−<informaltable><tgroup cols="2"><tbody><row><entry
907− align="char">
908−<para>int fd</para>
909−</entry><entry
910− align="char">
911−<para>File descriptor returned by a previous call to open().</para>
912−</entry>
913− </row><row><entry
914− align="char">
915−<para>int request</para>
916−</entry><entry
917− align="char">
918−<para>Equals AUDIO_GET_STATUS for this command.</para>
919−</entry>
920− </row><row><entry
921− align="char">
922−<para>struct audio_status
923− *status</para>
924−</entry><entry
925− align="char">
926−<para>Returns the current state of Audio Device.</para>
927−</entry>
928− </row></tbody></tgroup></informaltable>
929−&return-value-dvb;
930−
931−</section><section id="AUDIO_GET_CAPABILITIES"
932−role="subsection"><title>AUDIO_GET_CAPABILITIES</title>
933−<para>DESCRIPTION
934−</para>
935−<informaltable><tgroup cols="1"><tbody><row><entry
936− align="char">
937−<para>This ioctl call asks the Audio Device to tell us about the decoding capabilities
938− of the audio hardware.</para>
939−</entry>
940− </row></tbody></tgroup></informaltable>
941−<para>SYNOPSIS
942−</para>
943−<informaltable><tgroup cols="1"><tbody><row><entry
944− align="char">
945−<para>int ioctl(int fd, int request =
946− AUDIO_GET_CAPABILITIES, unsigned int &#x22C6;cap);</para>
947−</entry>
948− </row></tbody></tgroup></informaltable>
949−<para>PARAMETERS
950−</para>
951−<informaltable><tgroup cols="2"><tbody><row><entry
952− align="char">
953−<para>int fd</para>
954−</entry><entry
955− align="char">
956−<para>File descriptor returned by a previous call to open().</para>
957−</entry>
958− </row><row><entry
959− align="char">
960−<para>int request</para>
961−</entry><entry
962− align="char">
963−<para>Equals AUDIO_GET_CAPABILITIES for this
964− command.</para>
965−</entry>
966− </row><row><entry
967− align="char">
968−<para>unsigned int *cap</para>
969−</entry><entry
970− align="char">
971−<para>Returns a bit array of supported sound formats.</para>
972−</entry>
973− </row></tbody></tgroup></informaltable>
974−&return-value-dvb;
975−
976−</section><section id="AUDIO_CLEAR_BUFFER"
977−role="subsection"><title>AUDIO_CLEAR_BUFFER</title>
978−<para>DESCRIPTION
979−</para>
980−<informaltable><tgroup cols="1"><tbody><row><entry
981− align="char">
982−<para>This ioctl call asks the Audio Device to clear all software and hardware buffers
983− of the audio decoder device.</para>
984−</entry>
985− </row></tbody></tgroup></informaltable>
986−<para>SYNOPSIS
987−</para>
988−<informaltable><tgroup cols="1"><tbody><row><entry
989− align="char">
990−<para>int ioctl(int fd, int request = AUDIO_CLEAR_BUFFER);</para>
991−</entry>
992− </row></tbody></tgroup></informaltable>
993−<para>PARAMETERS
994−</para>
995−<informaltable><tgroup cols="2"><tbody><row><entry
996− align="char">
997−<para>int fd</para>
998−</entry><entry
999− align="char">
1000−<para>File descriptor returned by a previous call to open().</para>
1001−</entry>
1002− </row><row><entry
1003− align="char">
1004−<para>int request</para>
1005−</entry><entry
1006− align="char">
1007−<para>Equals AUDIO_CLEAR_BUFFER for this command.</para>
1008−</entry>
1009− </row></tbody></tgroup></informaltable>
1010−&return-value-dvb;
1011−
1012−</section><section id="AUDIO_SET_ID"
1013−role="subsection"><title>AUDIO_SET_ID</title>
1014−<para>DESCRIPTION
1015−</para>
1016−<informaltable><tgroup cols="1"><tbody><row><entry
1017− align="char">
1018−<para>This ioctl selects which sub-stream is to be decoded if a program or system
1019− stream is sent to the video device. If no audio stream type is set the id has to be
1020− in [0xC0,0xDF] for MPEG sound, in [0x80,0x87] for AC3 and in [0xA0,0xA7]
1021− for LPCM. More specifications may follow for other stream types. If the stream
1022− type is set the id just specifies the substream id of the audio stream and only
1023− the first 5 bits are recognized.</para>
1024−</entry>
1025− </row></tbody></tgroup></informaltable>
1026−<para>SYNOPSIS
1027−</para>
1028−<informaltable><tgroup cols="1"><tbody><row><entry
1029− align="char">
1030−<para>int ioctl(int fd, int request = AUDIO_SET_ID, int
1031− id);</para>
1032−</entry>
1033− </row></tbody></tgroup></informaltable>
1034−<para>PARAMETERS
1035−</para>
1036−<informaltable><tgroup cols="2"><tbody><row><entry
1037− align="char">
1038−<para>int fd</para>
1039−</entry><entry
1040− align="char">
1041−<para>File descriptor returned by a previous call to open().</para>
1042−</entry>
1043− </row><row><entry
1044− align="char">
1045−<para>int request</para>
1046−</entry><entry
1047− align="char">
1048−<para>Equals AUDIO_SET_ID for this command.</para>
1049−</entry>
1050− </row><row><entry
1051− align="char">
1052−<para>int id</para>
1053−</entry><entry
1054− align="char">
1055−<para>audio sub-stream id</para>
1056−</entry>
1057− </row></tbody></tgroup></informaltable>
1058−&return-value-dvb;
1059−
1060−</section><section id="AUDIO_SET_MIXER"
1061−role="subsection"><title>AUDIO_SET_MIXER</title>
1062−<para>DESCRIPTION
1063−</para>
1064−<informaltable><tgroup cols="1"><tbody><row><entry
1065− align="char">
1066−<para>This ioctl lets you adjust the mixer settings of the audio decoder.</para>
1067−</entry>
1068− </row></tbody></tgroup></informaltable>
1069−<para>SYNOPSIS
1070−</para>
1071−<informaltable><tgroup cols="1"><tbody><row><entry
1072− align="char">
1073−<para>int ioctl(int fd, int request = AUDIO_SET_MIXER,
1074− audio_mixer_t &#x22C6;mix);</para>
1075−</entry>
1076− </row></tbody></tgroup></informaltable>
1077−<para>PARAMETERS
1078−</para>
1079−<informaltable><tgroup cols="2"><tbody><row><entry
1080− align="char">
1081−<para>int fd</para>
1082−</entry><entry
1083− align="char">
1084−<para>File descriptor returned by a previous call to open().</para>
1085−</entry>
1086− </row><row><entry
1087− align="char">
1088−<para>int request</para>
1089−</entry><entry
1090− align="char">
1091−<para>Equals AUDIO_SET_ID for this command.</para>
1092−</entry>
1093− </row><row><entry
1094− align="char">
1095−<para>audio_mixer_t *mix</para>
1096−</entry><entry
1097− align="char">
1098−<para>mixer settings.</para>
1099−</entry>
1100− </row></tbody></tgroup></informaltable>
1101−&return-value-dvb;
1102−
1103−</section><section id="AUDIO_SET_STREAMTYPE"
1104−role="subsection"><title>AUDIO_SET_STREAMTYPE</title>
1105−<para>DESCRIPTION
1106−</para>
1107−<informaltable><tgroup cols="1"><tbody><row><entry
1108− align="char">
1109−<para>This ioctl tells the driver which kind of audio stream to expect. This is useful
1110− if the stream offers several audio sub-streams like LPCM and AC3.</para>
1111−</entry>
1112− </row></tbody></tgroup></informaltable>
1113−<para>SYNOPSIS
1114−</para>
1115−<informaltable><tgroup cols="1"><tbody><row><entry
1116− align="char">
1117−<para>int ioctl(fd, int request = AUDIO_SET_STREAMTYPE,
1118− int type);</para>
1119−</entry>
1120− </row></tbody></tgroup></informaltable>
1121−<para>PARAMETERS
1122−</para>
1123−<informaltable><tgroup cols="2"><tbody><row><entry
1124− align="char">
1125−<para>int fd</para>
1126−</entry><entry
1127− align="char">
1128−<para>File descriptor returned by a previous call to open().</para>
1129−</entry>
1130− </row><row><entry
1131− align="char">
1132−<para>int request</para>
1133−</entry><entry
1134− align="char">
1135−<para>Equals AUDIO_SET_STREAMTYPE for this
1136− command.</para>
1137−</entry>
1138− </row><row><entry
1139− align="char">
1140−<para>int type</para>
1141−</entry><entry
1142− align="char">
1143−<para>stream type</para>
1144−</entry>
1145− </row></tbody></tgroup></informaltable>
1146−&return-value-dvb;
1147−<informaltable><tgroup cols="2"><tbody><row><entry
1148− align="char">
1149−<para>EINVAL</para>
1150−</entry><entry
1151− align="char">
1152−<para>type is not a valid or supported stream type.</para>
1153−</entry>
1154− </row></tbody></tgroup></informaltable>
1155−
1156−</section><section id="AUDIO_SET_EXT_ID"
1157−role="subsection"><title>AUDIO_SET_EXT_ID</title>
1158−<para>DESCRIPTION
1159−</para>
1160−<informaltable><tgroup cols="1"><tbody><row><entry
1161− align="char">
1162−<para>This ioctl can be used to set the extension id for MPEG streams in DVD
1163− playback. Only the first 3 bits are recognized.</para>
1164−</entry>
1165− </row></tbody></tgroup></informaltable>
1166−<para>SYNOPSIS
1167−</para>
1168−<informaltable><tgroup cols="1"><tbody><row><entry
1169− align="char">
1170−<para>int ioctl(fd, int request = AUDIO_SET_EXT_ID, int
1171− id);</para>
1172−</entry>
1173− </row></tbody></tgroup></informaltable>
1174−<para>PARAMETERS
1175−</para>
1176−<informaltable><tgroup cols="2"><tbody><row><entry
1177− align="char">
1178−<para>int fd</para>
1179−</entry><entry
1180− align="char">
1181−<para>File descriptor returned by a previous call to open().</para>
1182−</entry>
1183− </row><row><entry
1184− align="char">
1185−<para>int request</para>
1186−</entry><entry
1187− align="char">
1188−<para>Equals AUDIO_SET_EXT_ID for this command.</para>
1189−</entry>
1190− </row><row><entry
1191− align="char">
1192−<para>int id</para>
1193−</entry><entry
1194− align="char">
1195−<para>audio sub_stream_id</para>
1196−</entry>
1197− </row></tbody></tgroup></informaltable>
1198−&return-value-dvb;
1199−<informaltable><tgroup cols="2"><tbody><row><entry
1200− align="char">
1201−<para>EINVAL</para>
1202−</entry><entry
1203− align="char">
1204−<para>id is not a valid id.</para>
1205−</entry>
1206− </row></tbody></tgroup></informaltable>
1207−
1208−</section><section id="AUDIO_SET_ATTRIBUTES"
1209−role="subsection"><title>AUDIO_SET_ATTRIBUTES</title>
1210−<para>DESCRIPTION
1211−</para>
1212−<informaltable><tgroup cols="1"><tbody><row><entry
1213− align="char">
1214−<para>This ioctl is intended for DVD playback and allows you to set certain
1215− information about the audio stream.</para>
1216−</entry>
1217− </row></tbody></tgroup></informaltable>
1218−<para>SYNOPSIS
1219−</para>
1220−<informaltable><tgroup cols="1"><tbody><row><entry
1221− align="char">
1222−<para>int ioctl(fd, int request = AUDIO_SET_ATTRIBUTES,
1223− audio_attributes_t attr );</para>
1224−</entry>
1225− </row></tbody></tgroup></informaltable>
1226−<para>PARAMETERS
1227−</para>
1228−<informaltable><tgroup cols="2"><tbody><row><entry
1229− align="char">
1230−<para>int fd</para>
1231−</entry><entry
1232− align="char">
1233−<para>File descriptor returned by a previous call to open().</para>
1234−</entry>
1235− </row><row><entry
1236− align="char">
1237−<para>int request</para>
1238−</entry><entry
1239− align="char">
1240−<para>Equals AUDIO_SET_ATTRIBUTES for this command.</para>
1241−</entry>
1242− </row><row><entry
1243− align="char">
1244−<para>audio_attributes_t
1245− attr</para>
1246−</entry><entry
1247− align="char">
1248−<para>audio attributes according to section ??</para>
1249−</entry>
1250− </row></tbody></tgroup></informaltable>
1251−&return-value-dvb;
1252−<informaltable><tgroup cols="2"><tbody><row><entry
1253− align="char">
1254−<para>EINVAL</para>
1255−</entry><entry
1256− align="char">
1257−<para>attr is not a valid or supported attribute setting.</para>
1258−</entry>
1259− </row></tbody></tgroup></informaltable>
1260−
1261−</section><section id="AUDIO_SET_KARAOKE"
1262−role="subsection"><title>AUDIO_SET_KARAOKE</title>
1263−<para>DESCRIPTION
1264−</para>
1265−<informaltable><tgroup cols="1"><tbody><row><entry
1266− align="char">
1267−<para>This ioctl allows one to set the mixer settings for a karaoke DVD.</para>
1268−</entry>
1269− </row></tbody></tgroup></informaltable>
1270−<para>SYNOPSIS
1271−</para>
1272−<informaltable><tgroup cols="1"><tbody><row><entry
1273− align="char">
1274−<para>int ioctl(fd, int request = AUDIO_SET_KARAOKE,
1275− audio_karaoke_t &#x22C6;karaoke);</para>
1276−</entry>
1277− </row></tbody></tgroup></informaltable>
1278−<para>PARAMETERS
1279−</para>
1280−<informaltable><tgroup cols="2"><tbody><row><entry
1281− align="char">
1282−<para>int fd</para>
1283−</entry><entry
1284− align="char">
1285−<para>File descriptor returned by a previous call to open().</para>
1286−</entry>
1287− </row><row><entry
1288− align="char">
1289−<para>int request</para>
1290−</entry><entry
1291− align="char">
1292−<para>Equals AUDIO_SET_KARAOKE for this
1293− command.</para>
1294−</entry>
1295− </row><row><entry
1296− align="char">
1297−<para>audio_karaoke_t
1298− *karaoke</para>
1299−</entry><entry
1300− align="char">
1301−<para>karaoke settings according to section ??.</para>
1302−</entry>
1303− </row></tbody></tgroup></informaltable>
1304−&return-value-dvb;
1305−<informaltable><tgroup cols="2"><tbody><row><entry
1306− align="char">
1307−<para>EINVAL</para>
1308−</entry><entry
1309− align="char">
1310−<para>karaoke is not a valid or supported karaoke setting.</para>
1311−</entry>
1312− </row></tbody></tgroup></informaltable>
1313− </section>
1314−</section>
Documentation/DocBook/media/dvb/ca.xml+0−582
@@ -1,582 +0,0 @@
1−<title>DVB CA Device</title>
2−<para>The DVB CA device controls the conditional access hardware. It can be accessed through
3−<constant>/dev/dvb/adapter?/ca?</constant>. Data types and and ioctl definitions can be accessed by
4−including <constant>linux/dvb/ca.h</constant> in your application.
5−</para>
6−
7−<section id="ca_data_types">
8−<title>CA Data Types</title>
9−
10−
11−<section id="ca-slot-info">
12−<title>ca_slot_info_t</title>
13− <programlisting>
14−typedef struct ca_slot_info {
15− int num; /&#x22C6; slot number &#x22C6;/
16−
17− int type; /&#x22C6; CA interface this slot supports &#x22C6;/
18−#define CA_CI 1 /&#x22C6; CI high level interface &#x22C6;/
19−#define CA_CI_LINK 2 /&#x22C6; CI link layer level interface &#x22C6;/
20−#define CA_CI_PHYS 4 /&#x22C6; CI physical layer level interface &#x22C6;/
21−#define CA_DESCR 8 /&#x22C6; built-in descrambler &#x22C6;/
22−#define CA_SC 128 /&#x22C6; simple smart card interface &#x22C6;/
23−
24− unsigned int flags;
25−#define CA_CI_MODULE_PRESENT 1 /&#x22C6; module (or card) inserted &#x22C6;/
26−#define CA_CI_MODULE_READY 2
27−} ca_slot_info_t;
28−</programlisting>
29−
30−</section>
31−<section id="ca-descr-info">
32−<title>ca_descr_info_t</title>
33−<programlisting>
34−typedef struct ca_descr_info {
35− unsigned int num; /&#x22C6; number of available descramblers (keys) &#x22C6;/
36− unsigned int type; /&#x22C6; type of supported scrambling system &#x22C6;/
37−#define CA_ECD 1
38−#define CA_NDS 2
39−#define CA_DSS 4
40−} ca_descr_info_t;
41−</programlisting>
42−
43−</section>
44−<section id="ca-caps">
45−<title>ca_caps_t</title>
46−<programlisting>
47−typedef struct ca_caps {
48− unsigned int slot_num; /&#x22C6; total number of CA card and module slots &#x22C6;/
49− unsigned int slot_type; /&#x22C6; OR of all supported types &#x22C6;/
50− unsigned int descr_num; /&#x22C6; total number of descrambler slots (keys) &#x22C6;/
51− unsigned int descr_type;/&#x22C6; OR of all supported types &#x22C6;/
52− } ca_cap_t;
53−</programlisting>
54−
55−</section>
56−<section id="ca-msg">
57−<title>ca_msg_t</title>
58−<programlisting>
59−/&#x22C6; a message to/from a CI-CAM &#x22C6;/
60−typedef struct ca_msg {
61− unsigned int index;
62− unsigned int type;
63− unsigned int length;
64− unsigned char msg[256];
65−} ca_msg_t;
66−</programlisting>
67−
68−</section>
69−<section id="ca-descr">
70−<title>ca_descr_t</title>
71−<programlisting>
72−typedef struct ca_descr {
73− unsigned int index;
74− unsigned int parity;
75− unsigned char cw[8];
76−} ca_descr_t;
77−</programlisting>
78−</section>
79−
80−<section id="ca-pid">
81−<title>ca-pid</title>
82−<programlisting>
83−typedef struct ca_pid {
84− unsigned int pid;
85− int index; /&#x22C6; -1 == disable&#x22C6;/
86−} ca_pid_t;
87−</programlisting>
88−</section></section>
89−
90−<section id="ca_function_calls">
91−<title>CA Function Calls</title>
92−
93−
94−<section id="ca_fopen">
95−<title>open()</title>
96−<para>DESCRIPTION
97−</para>
98−<informaltable><tgroup cols="1"><tbody><row><entry
99− align="char">
100−<para>This system call opens a named ca device (e.g. /dev/ost/ca) for subsequent use.</para>
101−<para>When an open() call has succeeded, the device will be ready for use.
102− The significance of blocking or non-blocking mode is described in the
103− documentation for functions where there is a difference. It does not affect the
104− semantics of the open() call itself. A device opened in blocking mode can later
105− be put into non-blocking mode (and vice versa) using the F_SETFL command
106− of the fcntl system call. This is a standard system call, documented in the Linux
107− manual page for fcntl. Only one user can open the CA Device in O_RDWR
108− mode. All other attempts to open the device in this mode will fail, and an error
109− code will be returned.</para>
110−</entry>
111− </row></tbody></tgroup></informaltable>
112−<para>SYNOPSIS
113−</para>
114−<informaltable><tgroup cols="1"><tbody><row><entry
115− align="char">
116−<para>int open(const char &#x22C6;deviceName, int flags);</para>
117−</entry>
118− </row></tbody></tgroup></informaltable>
119−<para>PARAMETERS
120−</para>
121−<informaltable><tgroup cols="2"><tbody><row><entry
122− align="char">
123−<para>const char
124− *deviceName</para>
125−</entry><entry
126− align="char">
127−<para>Name of specific video device.</para>
128−</entry>
129− </row><row><entry
130− align="char">
131−<para>int flags</para>
132−</entry><entry
133− align="char">
134−<para>A bit-wise OR of the following flags:</para>
135−</entry>
136− </row><row><entry
137− align="char">
138−</entry><entry
139− align="char">
140−<para>O_RDONLY read-only access</para>
141−</entry>
142− </row><row><entry
143− align="char">
144−</entry><entry
145− align="char">
146−<para>O_RDWR read/write access</para>
147−</entry>
148− </row><row><entry
149− align="char">
150−</entry><entry
151− align="char">
152−<para>O_NONBLOCK open in non-blocking mode</para>
153−</entry>
154− </row><row><entry
155− align="char">
156−</entry><entry
157− align="char">
158−<para>(blocking mode is the default)</para>
159−</entry>
160− </row></tbody></tgroup></informaltable>
161−<para>RETURN VALUE</para>
162−<informaltable><tgroup cols="2"><tbody><row><entry
163− align="char">
164−<para>ENODEV</para>
165−</entry><entry
166− align="char">
167−<para>Device driver not loaded/available.</para>
168−</entry>
169− </row><row><entry
170− align="char">
171−<para>EINTERNAL</para>
172−</entry><entry
173− align="char">
174−<para>Internal error.</para>
175−</entry>
176− </row><row><entry
177− align="char">
178−<para>EBUSY</para>
179−</entry><entry
180− align="char">
181−<para>Device or resource busy.</para>
182−</entry>
183− </row><row><entry
184− align="char">
185−<para>EINVAL</para>
186−</entry><entry
187− align="char">
188−<para>Invalid argument.</para>
189−</entry>
190− </row></tbody></tgroup></informaltable>
191−
192−</section>
193−<section id="ca_fclose">
194−<title>close()</title>
195−<para>DESCRIPTION
196−</para>
197−<informaltable><tgroup cols="1"><tbody><row><entry
198− align="char">
199−<para>This system call closes a previously opened audio device.</para>
200−</entry>
201− </row></tbody></tgroup></informaltable>
202−<para>SYNOPSIS
203−</para>
204−<informaltable><tgroup cols="1"><tbody><row><entry
205− align="char">
206−<para>int close(int fd);</para>
207−</entry>
208− </row></tbody></tgroup></informaltable>
209−<para>PARAMETERS
210−</para>
211−<informaltable><tgroup cols="2"><tbody><row><entry
212− align="char">
213−<para>int fd</para>
214−</entry><entry
215− align="char">
216−<para>File descriptor returned by a previous call to open().</para>
217−</entry>
218− </row></tbody></tgroup></informaltable>
219−<para>RETURN VALUE</para>
220−<informaltable><tgroup cols="2"><tbody><row><entry
221− align="char">
222−<para>EBADF</para>
223−</entry><entry
224− align="char">
225−<para>fd is not a valid open file descriptor.</para>
226−</entry>
227− </row></tbody></tgroup></informaltable>
228− </section>
229−
230−<section id="CA_RESET"
231−role="subsection"><title>CA_RESET</title>
232−<para>DESCRIPTION
233−</para>
234−<informaltable><tgroup cols="1"><tbody><row><entry
235− align="char">
236−<para>This ioctl is undocumented. Documentation is welcome.</para>
237−</entry>
238− </row></tbody></tgroup></informaltable>
239−<para>SYNOPSIS
240−</para>
241−<informaltable><tgroup cols="1"><tbody><row><entry
242− align="char">
243−<para>int ioctl(fd, int request = CA_RESET);
244−</para>
245−</entry>
246− </row></tbody></tgroup></informaltable>
247−<para>PARAMETERS
248−</para>
249−<informaltable><tgroup cols="2"><tbody><row><entry
250− align="char">
251−<para>int fd</para>
252−</entry><entry
253− align="char">
254−<para>File descriptor returned by a previous call to open().</para>
255−</entry>
256− </row><row><entry
257− align="char">
258−<para>int request</para>
259−</entry><entry
260− align="char">
261−<para>Equals CA_RESET for this command.</para>
262−</entry>
263− </row></tbody></tgroup></informaltable>
264−&return-value-dvb;
265−</section>
266−
267−<section id="CA_GET_CAP"
268−role="subsection"><title>CA_GET_CAP</title>
269−<para>DESCRIPTION
270−</para>
271−<informaltable><tgroup cols="1"><tbody><row><entry
272− align="char">
273−<para>This ioctl is undocumented. Documentation is welcome.</para>
274−</entry>
275− </row></tbody></tgroup></informaltable>
276−<para>SYNOPSIS
277−</para>
278−<informaltable><tgroup cols="1"><tbody><row><entry
279− align="char">
280−<para>int ioctl(fd, int request = CA_GET_CAP,
281− ca_caps_t *);</para>
282−</entry>
283− </row></tbody></tgroup></informaltable>
284−<para>PARAMETERS
285−</para>
286−<informaltable><tgroup cols="2"><tbody><row><entry
287− align="char">
288−<para>int fd</para>
289−</entry><entry
290− align="char">
291−<para>File descriptor returned by a previous call to open().</para>
292−</entry>
293− </row><row><entry
294− align="char">
295−<para>int request</para>
296−</entry><entry
297− align="char">
298−<para>Equals CA_GET_CAP for this command.</para>
299−</entry>
300− </row><row><entry
301− align="char">
302−<para>ca_caps_t *
303−</para>
304−</entry><entry
305− align="char">
306−<para>Undocumented.</para>
307−</entry>
308− </row></tbody></tgroup></informaltable>
309−&return-value-dvb;
310−</section>
311−
312−<section id="CA_GET_SLOT_INFO"
313−role="subsection"><title>CA_GET_SLOT_INFO</title>
314−<para>DESCRIPTION
315−</para>
316−<informaltable><tgroup cols="1"><tbody><row><entry
317− align="char">
318−<para>This ioctl is undocumented. Documentation is welcome.</para>
319−</entry>
320− </row></tbody></tgroup></informaltable>
321−<para>SYNOPSIS
322−</para>
323−<informaltable><tgroup cols="1"><tbody><row><entry
324− align="char">
325−<para>int ioctl(fd, int request = CA_GET_SLOT_INFO,
326− ca_slot_info_t *);</para>
327−</entry>
328− </row></tbody></tgroup></informaltable>
329−<para>PARAMETERS
330−</para>
331−<informaltable><tgroup cols="2"><tbody><row><entry
332− align="char">
333−<para>int fd</para>
334−</entry><entry
335− align="char">
336−<para>File descriptor returned by a previous call to open().</para>
337−</entry>
338− </row><row><entry
339− align="char">
340−<para>int request</para>
341−</entry><entry
342− align="char">
343−<para>Equals CA_GET_SLOT_INFO for this command.</para>
344−</entry>
345− </row><row><entry
346− align="char">
347−<para>ca_slot_info_t *
348−</para>
349−</entry><entry
350− align="char">
351−<para>Undocumented.</para>
352−</entry>
353− </row></tbody></tgroup></informaltable>
354−&return-value-dvb;
355−</section>
356−
357−<section id="CA_GET_DESCR_INFO"
358−role="subsection"><title>CA_GET_DESCR_INFO</title>
359−<para>DESCRIPTION
360−</para>
361−<informaltable><tgroup cols="1"><tbody><row><entry
362− align="char">
363−<para>This ioctl is undocumented. Documentation is welcome.</para>
364−</entry>
365− </row></tbody></tgroup></informaltable>
366−<para>SYNOPSIS
367−</para>
368−<informaltable><tgroup cols="1"><tbody><row><entry
369− align="char">
370−<para>int ioctl(fd, int request = CA_GET_DESCR_INFO,
371− ca_descr_info_t *);</para>
372−</entry>
373− </row></tbody></tgroup></informaltable>
374−<para>PARAMETERS
375−</para>
376−<informaltable><tgroup cols="2"><tbody><row><entry
377− align="char">
378−<para>int fd</para>
379−</entry><entry
380− align="char">
381−<para>File descriptor returned by a previous call to open().</para>
382−</entry>
383− </row><row><entry
384− align="char">
385−<para>int request</para>
386−</entry><entry
387− align="char">
388−<para>Equals CA_GET_DESCR_INFO for this command.</para>
389−</entry>
390− </row><row><entry
391− align="char">
392−<para>ca_descr_info_t *
393−</para>
394−</entry><entry
395− align="char">
396−<para>Undocumented.</para>
397−</entry>
398− </row></tbody></tgroup></informaltable>
399−&return-value-dvb;
400−</section>
401−
402−<section id="CA_GET_MSG"
403−role="subsection"><title>CA_GET_MSG</title>
404−<para>DESCRIPTION
405−</para>
406−<informaltable><tgroup cols="1"><tbody><row><entry
407− align="char">
408−<para>This ioctl is undocumented. Documentation is welcome.</para>
409−</entry>
410− </row></tbody></tgroup></informaltable>
411−<para>SYNOPSIS
412−</para>
413−<informaltable><tgroup cols="1"><tbody><row><entry
414− align="char">
415−<para>int ioctl(fd, int request = CA_GET_MSG,
416− ca_msg_t *);</para>
417−</entry>
418− </row></tbody></tgroup></informaltable>
419−<para>PARAMETERS
420−</para>
421−<informaltable><tgroup cols="2"><tbody><row><entry
422− align="char">
423−<para>int fd</para>
424−</entry><entry
425− align="char">
426−<para>File descriptor returned by a previous call to open().</para>
427−</entry>
428− </row><row><entry
429− align="char">
430−<para>int request</para>
431−</entry><entry
432− align="char">
433−<para>Equals CA_GET_MSG for this command.</para>
434−</entry>
435− </row><row><entry
436− align="char">
437−<para>ca_msg_t *
438−</para>
439−</entry><entry
440− align="char">
441−<para>Undocumented.</para>
442−</entry>
443− </row></tbody></tgroup></informaltable>
444−&return-value-dvb;
445−</section>
446−
447−<section id="CA_SEND_MSG"
448−role="subsection"><title>CA_SEND_MSG</title>
449−<para>DESCRIPTION
450−</para>
451−<informaltable><tgroup cols="1"><tbody><row><entry
452− align="char">
453−<para>This ioctl is undocumented. Documentation is welcome.</para>
454−</entry>
455− </row></tbody></tgroup></informaltable>
456−<para>SYNOPSIS
457−</para>
458−<informaltable><tgroup cols="1"><tbody><row><entry
459− align="char">
460−<para>int ioctl(fd, int request = CA_SEND_MSG,
461− ca_msg_t *);</para>
462−</entry>
463− </row></tbody></tgroup></informaltable>
464−<para>PARAMETERS
465−</para>
466−<informaltable><tgroup cols="2"><tbody><row><entry
467− align="char">
468−<para>int fd</para>
469−</entry><entry
470− align="char">
471−<para>File descriptor returned by a previous call to open().</para>
472−</entry>
473− </row><row><entry
474− align="char">
475−<para>int request</para>
476−</entry><entry
477− align="char">
478−<para>Equals CA_SEND_MSG for this command.</para>
479−</entry>
480− </row><row><entry
481− align="char">
482−<para>ca_msg_t *
483−</para>
484−</entry><entry
485− align="char">
486−<para>Undocumented.</para>
487−</entry>
488− </row></tbody></tgroup></informaltable>
489−&return-value-dvb;
490−</section>
491−
492−<section id="CA_SET_DESCR"
493−role="subsection"><title>CA_SET_DESCR</title>
494−<para>DESCRIPTION
495−</para>
496−<informaltable><tgroup cols="1"><tbody><row><entry
497− align="char">
498−<para>This ioctl is undocumented. Documentation is welcome.</para>
499−</entry>
500− </row></tbody></tgroup></informaltable>
501−<para>SYNOPSIS
502−</para>
503−<informaltable><tgroup cols="1"><tbody><row><entry
504− align="char">
505−<para>int ioctl(fd, int request = CA_SET_DESCR,
506− ca_descr_t *);</para>
507−</entry>
508− </row></tbody></tgroup></informaltable>
509−<para>PARAMETERS
510−</para>
511−<informaltable><tgroup cols="2"><tbody><row><entry
512− align="char">
513−<para>int fd</para>
514−</entry><entry
515− align="char">
516−<para>File descriptor returned by a previous call to open().</para>
517−</entry>
518− </row><row><entry
519− align="char">
520−<para>int request</para>
521−</entry><entry
522− align="char">
523−<para>Equals CA_SET_DESCR for this command.</para>
524−</entry>
525− </row><row><entry
526− align="char">
527−<para>ca_descr_t *
528−</para>
529−</entry><entry
530− align="char">
531−<para>Undocumented.</para>
532−</entry>
533− </row></tbody></tgroup></informaltable>
534−&return-value-dvb;
535−</section>
536−
537−<section id="CA_SET_PID"
538−role="subsection"><title>CA_SET_PID</title>
539−<para>DESCRIPTION
540−</para>
541−<informaltable><tgroup cols="1"><tbody><row><entry
542− align="char">
543−<para>This ioctl is undocumented. Documentation is welcome.</para>
544−</entry>
545− </row></tbody></tgroup></informaltable>
546−<para>SYNOPSIS
547−</para>
548−<informaltable><tgroup cols="1"><tbody><row><entry
549− align="char">
550−<para>int ioctl(fd, int request = CA_SET_PID,
551− ca_pid_t *);</para>
552−</entry>
553− </row></tbody></tgroup></informaltable>
554−<para>PARAMETERS
555−</para>
556−<informaltable><tgroup cols="2"><tbody><row><entry
557− align="char">
558−<para>int fd</para>
559−</entry><entry
560− align="char">
561−<para>File descriptor returned by a previous call to open().</para>
562−</entry>
563− </row><row><entry
564− align="char">
565−<para>int request</para>
566−</entry><entry
567− align="char">
568−<para>Equals CA_SET_PID for this command.</para>
569−</entry>
570− </row><row><entry
571− align="char">
572−<para>ca_pid_t *
573−</para>
574−</entry><entry
575− align="char">
576−<para>Undocumented.</para>
577−</entry>
578− </row></tbody></tgroup></informaltable>
579−&return-value-dvb;
580−</section>
581−
582−</section>
Documentation/DocBook/media/dvb/demux.xml+0−1162
@@ -1,1162 +0,0 @@
1−<title>DVB Demux Device</title>
2−
3−<para>The DVB demux device controls the filters of the DVB hardware/software. It can be
4−accessed through <constant>/dev/adapter?/demux?</constant>. Data types and and ioctl definitions can be
5−accessed by including <constant>linux/dvb/dmx.h</constant> in your application.
6−</para>
7−<section id="dmx_types">
8−<title>Demux Data Types</title>
9−
10−<section id="dmx-output-t">
11−<title>Output for the demux</title>
12−
13−<table pgwide="1" frame="none" id="dmx-output">
14− <title>enum dmx_output</title>
15− <tgroup cols="2">
16− &cs-def;
17− <thead>
18− <row>
19− <entry>ID</entry>
20− <entry>Description</entry>
21− </row>
22− </thead>
23− <tbody valign="top">
24− <row>
25− <entry align="char" id="DMX-OUT-DECODER">DMX_OUT_DECODER</entry>
26− <entry>Streaming directly to decoder.</entry>
27− </row><row>
28− <entry align="char" id="DMX-OUT-TAP">DMX_OUT_TAP</entry>
29− <entry>Output going to a memory buffer (to be retrieved via the
30− read command). Delivers the stream output to the demux
31− device on which the ioctl is called.</entry>
32− </row><row>
33− <entry align="char" id="DMX-OUT-TS-TAP">DMX_OUT_TS_TAP</entry>
34− <entry>Output multiplexed into a new TS (to be retrieved by
35− reading from the logical DVR device). Routes output to the
36− logical DVR device <constant>/dev/dvb/adapter?/dvr?</constant>,
37− which delivers a TS multiplexed from all filters for which
38− <constant>DMX_OUT_TS_TAP</constant> was specified.</entry>
39− </row><row>
40− <entry align="char" id="DMX-OUT-TSDEMUX-TAP">DMX_OUT_TSDEMUX_TAP</entry>
41− <entry>Like &DMX-OUT-TS-TAP; but retrieved from the DMX
42− device.</entry>
43− </row>
44− </tbody>
45− </tgroup>
46−</table>
47−
48−</section>
49−
50−<section id="dmx-input-t">
51−<title>dmx_input_t</title>
52−<programlisting>
53−typedef enum
54−{
55− DMX_IN_FRONTEND, /&#x22C6; Input from a front-end device. &#x22C6;/
56− DMX_IN_DVR /&#x22C6; Input from the logical DVR device. &#x22C6;/
57−} dmx_input_t;
58−</programlisting>
59−</section>
60−
61−<section id="dmx-pes-type-t">
62−<title>dmx_pes_type_t</title>
63−<programlisting>
64−typedef enum
65−{
66− DMX_PES_AUDIO0,
67− DMX_PES_VIDEO0,
68− DMX_PES_TELETEXT0,
69− DMX_PES_SUBTITLE0,
70− DMX_PES_PCR0,
71−
72− DMX_PES_AUDIO1,
73− DMX_PES_VIDEO1,
74− DMX_PES_TELETEXT1,
75− DMX_PES_SUBTITLE1,
76− DMX_PES_PCR1,
77−
78− DMX_PES_AUDIO2,
79− DMX_PES_VIDEO2,
80− DMX_PES_TELETEXT2,
81− DMX_PES_SUBTITLE2,
82− DMX_PES_PCR2,
83−
84− DMX_PES_AUDIO3,
85− DMX_PES_VIDEO3,
86− DMX_PES_TELETEXT3,
87− DMX_PES_SUBTITLE3,
88− DMX_PES_PCR3,
89−
90− DMX_PES_OTHER
91−} dmx_pes_type_t;
92−</programlisting>
93−</section>
94−
95−<section id="dmx-filter">
96−<title>struct dmx_filter</title>
97− <programlisting>
98− typedef struct dmx_filter
99−{
100− __u8 filter[DMX_FILTER_SIZE];
101− __u8 mask[DMX_FILTER_SIZE];
102− __u8 mode[DMX_FILTER_SIZE];
103−} dmx_filter_t;
104−</programlisting>
105−</section>
106−
107−<section id="dmx-sct-filter-params">
108−<title>struct dmx_sct_filter_params</title>
109−<programlisting>
110−struct dmx_sct_filter_params
111−{
112− __u16 pid;
113− dmx_filter_t filter;
114− __u32 timeout;
115− __u32 flags;
116−#define DMX_CHECK_CRC 1
117−#define DMX_ONESHOT 2
118−#define DMX_IMMEDIATE_START 4
119−#define DMX_KERNEL_CLIENT 0x8000
120−};
121−</programlisting>
122−</section>
123−
124−<section id="dmx-pes-filter-params">
125−<title>struct dmx_pes_filter_params</title>
126−<programlisting>
127−struct dmx_pes_filter_params
128−{
129− __u16 pid;
130− dmx_input_t input;
131− dmx_output_t output;
132− dmx_pes_type_t pes_type;
133− __u32 flags;
134−};
135−</programlisting>
136−</section>
137−
138−<section id="dmx-event">
139−<title>struct dmx_event</title>
140− <programlisting>
141− struct dmx_event
142− {
143− dmx_event_t event;
144− time_t timeStamp;
145− union
146− {
147− dmx_scrambling_status_t scrambling;
148− } u;
149− };
150−</programlisting>
151−</section>
152−
153−<section id="dmx-stc">
154−<title>struct dmx_stc</title>
155−<programlisting>
156−struct dmx_stc {
157− unsigned int num; /&#x22C6; input : which STC? 0..N &#x22C6;/
158− unsigned int base; /&#x22C6; output: divisor for stc to get 90 kHz clock &#x22C6;/
159− __u64 stc; /&#x22C6; output: stc in 'base'&#x22C6;90 kHz units &#x22C6;/
160−};
161−</programlisting>
162−</section>
163−
164−<section id="dmx-caps">
165−<title>struct dmx_caps</title>
166−<programlisting>
167− typedef struct dmx_caps {
168− __u32 caps;
169− int num_decoders;
170−} dmx_caps_t;
171−</programlisting>
172−</section>
173−
174−<section id="dmx-source-t">
175−<title>enum dmx_source_t</title>
176−<programlisting>
177−typedef enum {
178− DMX_SOURCE_FRONT0 = 0,
179− DMX_SOURCE_FRONT1,
180− DMX_SOURCE_FRONT2,
181− DMX_SOURCE_FRONT3,
182− DMX_SOURCE_DVR0 = 16,
183− DMX_SOURCE_DVR1,
184− DMX_SOURCE_DVR2,
185− DMX_SOURCE_DVR3
186−} dmx_source_t;
187−</programlisting>
188−</section>
189−
190−</section>
191−<section id="dmx_fcalls">
192−<title>Demux Function Calls</title>
193−
194−<section id="dmx_fopen">
195−<title>open()</title>
196−<para>DESCRIPTION
197−</para>
198−<informaltable><tgroup cols="1"><tbody><row><entry
199− align="char">
200−<para>This system call, used with a device name of /dev/dvb/adapter0/demux0,
201− allocates a new filter and returns a handle which can be used for subsequent
202− control of that filter. This call has to be made for each filter to be used, i.e. every
203− returned file descriptor is a reference to a single filter. /dev/dvb/adapter0/dvr0
204− is a logical device to be used for retrieving Transport Streams for digital
205− video recording. When reading from this device a transport stream containing
206− the packets from all PES filters set in the corresponding demux device
207− (/dev/dvb/adapter0/demux0) having the output set to DMX_OUT_TS_TAP. A
208− recorded Transport Stream is replayed by writing to this device. </para>
209−<para>The significance of blocking or non-blocking mode is described in the
210− documentation for functions where there is a difference. It does not affect the
211− semantics of the open() call itself. A device opened in blocking mode can later
212− be put into non-blocking mode (and vice versa) using the F_SETFL command
213− of the fcntl system call.</para>
214−</entry>
215− </row></tbody></tgroup></informaltable>
216−<para>SYNOPSIS
217−</para>
218−<informaltable><tgroup cols="1"><tbody><row><entry
219− align="char">
220−<para>int open(const char &#x22C6;deviceName, int flags);</para>
221−</entry>
222− </row></tbody></tgroup></informaltable>
223−<para>PARAMETERS
224−</para>
225−<informaltable><tgroup cols="2"><tbody><row><entry
226− align="char">
227−<para>const char
228− *deviceName</para>
229−</entry><entry
230− align="char">
231−<para>Name of demux device.</para>
232−</entry>
233− </row><row><entry
234− align="char">
235−<para>int flags</para>
236−</entry><entry
237− align="char">
238−<para>A bit-wise OR of the following flags:</para>
239−</entry>
240− </row><row><entry
241− align="char">
242−</entry><entry
243− align="char">
244−<para>O_RDWR read/write access</para>
245−</entry>
246− </row><row><entry
247− align="char">
248−</entry><entry
249− align="char">
250−<para>O_NONBLOCK open in non-blocking mode</para>
251−</entry>
252− </row><row><entry
253− align="char">
254−</entry><entry
255− align="char">
256−<para>(blocking mode is the default)</para>
257−</entry>
258− </row></tbody></tgroup></informaltable>
259−<para>RETURN VALUE</para>
260−<informaltable><tgroup cols="2"><tbody><row><entry
261− align="char">
262−<para>ENODEV</para>
263−</entry><entry
264− align="char">
265−<para>Device driver not loaded/available.</para>
266−</entry>
267− </row><row><entry
268− align="char">
269−<para>EINVAL</para>
270−</entry><entry
271− align="char">
272−<para>Invalid argument.</para>
273−</entry>
274− </row><row><entry
275− align="char">
276−<para>EMFILE</para>
277−</entry><entry
278− align="char">
279−<para>&#8220;Too many open files&#8221;, i.e. no more filters available.</para>
280−</entry>
281− </row><row><entry
282− align="char">
283−<para>ENOMEM</para>
284−</entry><entry
285− align="char">
286−<para>The driver failed to allocate enough memory.</para>
287−</entry>
288− </row></tbody></tgroup></informaltable>
289−</section>
290−
291−<section id="dmx_fclose">
292−<title>close()</title>
293−<para>DESCRIPTION
294−</para>
295−<informaltable><tgroup cols="1"><tbody><row><entry
296− align="char">
297−<para>This system call deactivates and deallocates a filter that was previously
298− allocated via the open() call.</para>
299−</entry>
300− </row></tbody></tgroup></informaltable>
301−<para>SYNOPSIS
302−</para>
303−<informaltable><tgroup cols="1"><tbody><row><entry
304− align="char">
305−<para>int close(int fd);</para>
306−</entry>
307− </row></tbody></tgroup></informaltable>
308−<para>PARAMETERS
309−</para>
310−<informaltable><tgroup cols="2"><tbody><row><entry
311− align="char">
312−<para>int fd</para>
313−</entry><entry
314− align="char">
315−<para>File descriptor returned by a previous call to open().</para>
316−</entry>
317− </row></tbody></tgroup></informaltable>
318−<para>RETURN VALUE</para>
319−<informaltable><tgroup cols="2"><tbody><row><entry
320− align="char">
321−<para>EBADF</para>
322−</entry><entry
323− align="char">
324−<para>fd is not a valid open file descriptor.</para>
325−</entry>
326− </row></tbody></tgroup></informaltable>
327−</section>
328−
329−<section id="dmx_fread">
330−<title>read()</title>
331−<para>DESCRIPTION
332−</para>
333−<informaltable><tgroup cols="1"><tbody><row><entry
334− align="char">
335−<para>This system call returns filtered data, which might be section or PES data. The
336− filtered data is transferred from the driver&#8217;s internal circular buffer to buf. The
337− maximum amount of data to be transferred is implied by count.</para>
338−</entry>
339− </row><row><entry
340− align="char">
341−<para>When returning section data the driver always tries to return a complete single
342− section (even though buf would provide buffer space for more data). If the size
343− of the buffer is smaller than the section as much as possible will be returned,
344− and the remaining data will be provided in subsequent calls.</para>
345−</entry>
346− </row><row><entry
347− align="char">
348−<para>The size of the internal buffer is 2 * 4096 bytes (the size of two maximum
349− sized sections) by default. The size of this buffer may be changed by using the
350− DMX_SET_BUFFER_SIZE function. If the buffer is not large enough, or if
351− the read operations are not performed fast enough, this may result in a buffer
352− overflow error. In this case EOVERFLOW will be returned, and the circular
353− buffer will be emptied. This call is blocking if there is no data to return, i.e. the
354− process will be put to sleep waiting for data, unless the O_NONBLOCK flag
355− is specified.</para>
356−</entry>
357− </row><row><entry
358− align="char">
359−<para>Note that in order to be able to read, the filtering process has to be started
360− by defining either a section or a PES filter by means of the ioctl functions,
361− and then starting the filtering process via the DMX_START ioctl function
362− or by setting the DMX_IMMEDIATE_START flag. If the reading is done
363− from a logical DVR demux device, the data will constitute a Transport Stream
364− including the packets from all PES filters in the corresponding demux device
365− /dev/dvb/adapter0/demux0 having the output set to DMX_OUT_TS_TAP.</para>
366−</entry>
367− </row></tbody></tgroup></informaltable>
368−<para>SYNOPSIS
369−</para>
370−<informaltable><tgroup cols="1"><tbody><row><entry
371− align="char">
372−<para>size_t read(int fd, void &#x22C6;buf, size_t count);</para>
373−</entry>
374− </row></tbody></tgroup></informaltable>
375−<para>PARAMETERS
376−</para>
377−<informaltable><tgroup cols="2"><tbody><row><entry
378− align="char">
379−<para>int fd</para>
380−</entry><entry
381− align="char">
382−<para>File descriptor returned by a previous call to open().</para>
383−</entry>
384− </row><row><entry
385− align="char">
386−<para>void *buf</para>
387−</entry><entry
388− align="char">
389−<para>Pointer to the buffer to be used for returned filtered data.</para>
390−</entry>
391− </row><row><entry
392− align="char">
393−<para>size_t count</para>
394−</entry><entry
395− align="char">
396−<para>Size of buf.</para>
397−</entry>
398− </row></tbody></tgroup></informaltable>
399−<para>RETURN VALUE</para>
400−<informaltable><tgroup cols="2"><tbody><row><entry
401− align="char">
402−<para>EWOULDBLOCK</para>
403−</entry><entry
404− align="char">
405−<para>No data to return and O_NONBLOCK was specified.</para>
406−</entry>
407− </row><row><entry
408− align="char">
409−<para>EBADF</para>
410−</entry><entry
411− align="char">
412−<para>fd is not a valid open file descriptor.</para>
413−</entry>
414− </row><row><entry
415− align="char">
416−<para>ECRC</para>
417−</entry><entry
418− align="char">
419−<para>Last section had a CRC error - no data returned. The
420− buffer is flushed.</para>
421−</entry>
422− </row><row><entry
423− align="char">
424−<para>EOVERFLOW</para>
425−</entry><entry
426− align="char">
427−</entry>
428− </row><row><entry
429− align="char">
430−</entry><entry
431− align="char">
432−<para>The filtered data was not read from the buffer in due
433− time, resulting in non-read data being lost. The buffer is
434− flushed.</para>
435−</entry>
436− </row><row><entry
437− align="char">
438−<para>ETIMEDOUT</para>
439−</entry><entry
440− align="char">
441−<para>The section was not loaded within the stated timeout
442− period. See ioctl DMX_SET_FILTER for how to set a
443− timeout.</para>
444−</entry>
445− </row><row><entry
446− align="char">
447−<para>EFAULT</para>
448−</entry><entry
449− align="char">
450−<para>The driver failed to write to the callers buffer due to an
451− invalid *buf pointer.</para>
452−</entry>
453− </row></tbody></tgroup></informaltable>
454−</section>
455−
456−<section id="dmx_fwrite">
457−<title>write()</title>
458−<para>DESCRIPTION
459−</para>
460−<informaltable><tgroup cols="1"><tbody><row><entry
461− align="char">
462−<para>This system call is only provided by the logical device /dev/dvb/adapter0/dvr0,
463− associated with the physical demux device that provides the actual DVR
464− functionality. It is used for replay of a digitally recorded Transport Stream.
465− Matching filters have to be defined in the corresponding physical demux
466− device, /dev/dvb/adapter0/demux0. The amount of data to be transferred is
467− implied by count.</para>
468−</entry>
469− </row></tbody></tgroup></informaltable>
470−<para>SYNOPSIS
471−</para>
472−<informaltable><tgroup cols="1"><tbody><row><entry
473− align="char">
474−<para>ssize_t write(int fd, const void &#x22C6;buf, size_t
475− count);</para>
476−</entry>
477− </row></tbody></tgroup></informaltable>
478−<para>PARAMETERS
479−</para>
480−<informaltable><tgroup cols="2"><tbody><row><entry
481− align="char">
482−<para>int fd</para>
483−</entry><entry
484− align="char">
485−<para>File descriptor returned by a previous call to open().</para>
486−</entry>
487− </row><row><entry
488− align="char">
489−<para>void *buf</para>
490−</entry><entry
491− align="char">
492−<para>Pointer to the buffer containing the Transport Stream.</para>
493−</entry>
494− </row><row><entry
495− align="char">
496−<para>size_t count</para>
497−</entry><entry
498− align="char">
499−<para>Size of buf.</para>
500−</entry>
501− </row></tbody></tgroup></informaltable>
502−<para>RETURN VALUE</para>
503−<informaltable><tgroup cols="2"><tbody><row><entry
504− align="char">
505−<para>EWOULDBLOCK</para>
506−</entry><entry
507− align="char">
508−<para>No data was written. This
509− might happen if O_NONBLOCK was specified and there
510− is no more buffer space available (if O_NONBLOCK is
511− not specified the function will block until buffer space is
512− available).</para>
513−</entry>
514− </row><row><entry
515− align="char">
516−<para>EBUSY</para>
517−</entry><entry
518− align="char">
519−<para>This error code indicates that there are conflicting
520− requests. The corresponding demux device is setup to
521− receive data from the front- end. Make sure that these
522− filters are stopped and that the filters with input set to
523− DMX_IN_DVR are started.</para>
524−</entry>
525− </row><row><entry
526− align="char">
527−<para>EBADF</para>
528−</entry><entry
529− align="char">
530−<para>fd is not a valid open file descriptor.</para>
531−</entry>
532− </row></tbody></tgroup></informaltable>
533−</section>
534−
535−<section id="DMX_START">
536−<title>DMX_START</title>
537−<para>DESCRIPTION
538−</para>
539−<informaltable><tgroup cols="1"><tbody><row><entry
540− align="char">
541−<para>This ioctl call is used to start the actual filtering operation defined via the ioctl
542− calls DMX_SET_FILTER or DMX_SET_PES_FILTER.</para>
543−</entry>
544− </row></tbody></tgroup></informaltable>
545−<para>SYNOPSIS
546−</para>
547−<informaltable><tgroup cols="1"><tbody><row><entry
548− align="char">
549−<para>int ioctl( int fd, int request = DMX_START);</para>
550−</entry>
551− </row></tbody></tgroup></informaltable>
552−<para>PARAMETERS
553−</para>
554−<informaltable><tgroup cols="2"><tbody><row><entry
555− align="char">
556−<para>int fd</para>
557−</entry><entry
558− align="char">
559−<para>File descriptor returned by a previous call to open().</para>
560−</entry>
561− </row><row><entry
562− align="char">
563−<para>int request</para>
564−</entry><entry
565− align="char">
566−<para>Equals DMX_START for this command.</para>
567−</entry>
568− </row></tbody></tgroup></informaltable>
569−&return-value-dvb;
570−<informaltable><tgroup cols="2"><tbody><row><entry
571− align="char">
572−<para>EINVAL</para>
573−</entry><entry
574− align="char">
575−<para>Invalid argument, i.e. no filtering parameters provided via
576− the DMX_SET_FILTER or DMX_SET_PES_FILTER
577− functions.</para>
578−</entry>
579− </row><row><entry
580− align="char">
581−<para>EBUSY</para>
582−</entry><entry
583− align="char">
584−<para>This error code indicates that there are conflicting
585− requests. There are active filters filtering data from
586− another input source. Make sure that these filters are
587− stopped before starting this filter.</para>
588−</entry>
589− </row></tbody></tgroup></informaltable>
590−</section>
591−
592−<section id="DMX_STOP">
593−<title>DMX_STOP</title>
594−<para>DESCRIPTION
595−</para>
596−<informaltable><tgroup cols="1"><tbody><row><entry
597− align="char">
598−<para>This ioctl call is used to stop the actual filtering operation defined via the
599− ioctl calls DMX_SET_FILTER or DMX_SET_PES_FILTER and started via
600− the DMX_START command.</para>
601−</entry>
602− </row></tbody></tgroup></informaltable>
603−<para>SYNOPSIS
604−</para>
605−<informaltable><tgroup cols="1"><tbody><row><entry
606− align="char">
607−<para>int ioctl( int fd, int request = DMX_STOP);</para>
608−</entry>
609− </row></tbody></tgroup></informaltable>
610−<para>PARAMETERS
611−</para>
612−<informaltable><tgroup cols="2"><tbody><row><entry
613− align="char">
614−<para>int fd</para>
615−</entry><entry
616− align="char">
617−<para>File descriptor returned by a previous call to open().</para>
618−</entry>
619− </row><row><entry
620− align="char">
621−<para>int request</para>
622−</entry><entry
623− align="char">
624−<para>Equals DMX_STOP for this command.</para>
625−</entry>
626− </row></tbody></tgroup></informaltable>
627−&return-value-dvb;
628−</section>
629−
630−<section id="DMX_SET_FILTER">
631−<title>DMX_SET_FILTER</title>
632−<para>DESCRIPTION
633−</para>
634−<informaltable><tgroup cols="1"><tbody><row><entry
635− align="char">
636−<para>This ioctl call sets up a filter according to the filter and mask parameters
637− provided. A timeout may be defined stating number of seconds to wait for a
638− section to be loaded. A value of 0 means that no timeout should be applied.
639− Finally there is a flag field where it is possible to state whether a section should
640− be CRC-checked, whether the filter should be a &#8221;one-shot&#8221; filter, i.e. if the
641− filtering operation should be stopped after the first section is received, and
642− whether the filtering operation should be started immediately (without waiting
643− for a DMX_START ioctl call). If a filter was previously set-up, this filter will
644− be canceled, and the receive buffer will be flushed.</para>
645−</entry>
646− </row></tbody></tgroup></informaltable>
647−<para>SYNOPSIS
648−</para>
649−<informaltable><tgroup cols="1"><tbody><row><entry
650− align="char">
651−<para>int ioctl( int fd, int request = DMX_SET_FILTER,
652− struct dmx_sct_filter_params &#x22C6;params);</para>
653−</entry>
654− </row></tbody></tgroup></informaltable>
655−<para>PARAMETERS
656−</para>
657−<informaltable><tgroup cols="2"><tbody><row><entry
658− align="char">
659−<para>int fd</para>
660−</entry><entry
661− align="char">
662−<para>File descriptor returned by a previous call to open().</para>
663−</entry>
664− </row><row><entry
665− align="char">
666−<para>int request</para>
667−</entry><entry
668− align="char">
669−<para>Equals DMX_SET_FILTER for this command.</para>
670−</entry>
671− </row><row><entry
672− align="char">
673−<para>struct
674− dmx_sct_filter_params
675− *params</para>
676−</entry><entry
677− align="char">
678−<para>Pointer to structure containing filter parameters.</para>
679−</entry>
680− </row></tbody></tgroup></informaltable>
681−&return-value-dvb;
682−</section>
683−
684−<section id="DMX_SET_PES_FILTER">
685−<title>DMX_SET_PES_FILTER</title>
686−<para>DESCRIPTION
687−</para>
688−<informaltable><tgroup cols="1"><tbody><row><entry
689− align="char">
690−<para>This ioctl call sets up a PES filter according to the parameters provided. By a
691− PES filter is meant a filter that is based just on the packet identifier (PID), i.e.
692− no PES header or payload filtering capability is supported.</para>
693−</entry>
694− </row><row><entry
695− align="char">
696−<para>The transport stream destination for the filtered output may be set. Also the
697− PES type may be stated in order to be able to e.g. direct a video stream directly
698− to the video decoder. Finally there is a flag field where it is possible to state
699− whether the filtering operation should be started immediately (without waiting
700− for a DMX_START ioctl call). If a filter was previously set-up, this filter will
701− be cancelled, and the receive buffer will be flushed.</para>
702−</entry>
703− </row></tbody></tgroup></informaltable>
704−<para>SYNOPSIS
705−</para>
706−<informaltable><tgroup cols="1"><tbody><row><entry
707− align="char">
708−<para>int ioctl( int fd, int request = DMX_SET_PES_FILTER,
709− struct dmx_pes_filter_params &#x22C6;params);</para>
710−</entry>
711− </row></tbody></tgroup></informaltable>
712−<para>PARAMETERS
713−</para>
714−<informaltable><tgroup cols="2"><tbody><row><entry
715− align="char">
716−<para>int fd</para>
717−</entry><entry
718− align="char">
719−<para>File descriptor returned by a previous call to open().</para>
720−</entry>
721− </row><row><entry
722− align="char">
723−<para>int request</para>
724−</entry><entry
725− align="char">
726−<para>Equals DMX_SET_PES_FILTER for this command.</para>
727−</entry>
728− </row><row><entry
729− align="char">
730−<para>struct
731− dmx_pes_filter_params
732− *params</para>
733−</entry><entry
734− align="char">
735−<para>Pointer to structure containing filter parameters.</para>
736−</entry>
737− </row></tbody></tgroup></informaltable>
738−&return-value-dvb;
739−<informaltable><tgroup cols="2"><tbody><row><entry
740− align="char">
741−<para>EBUSY</para>
742−</entry><entry
743− align="char">
744−<para>This error code indicates that there are conflicting
745− requests. There are active filters filtering data from
746− another input source. Make sure that these filters are
747− stopped before starting this filter.</para>
748−</entry>
749− </row></tbody></tgroup></informaltable>
750−</section>
751−
752−<section id="DMX_SET_BUFFER_SIZE">
753−<title>DMX_SET_BUFFER_SIZE</title>
754−<para>DESCRIPTION
755−</para>
756−<informaltable><tgroup cols="1"><tbody><row><entry
757− align="char">
758−<para>This ioctl call is used to set the size of the circular buffer used for filtered data.
759− The default size is two maximum sized sections, i.e. if this function is not called
760− a buffer size of 2 * 4096 bytes will be used.</para>
761−</entry>
762− </row></tbody></tgroup></informaltable>
763−<para>SYNOPSIS
764−</para>
765−<informaltable><tgroup cols="1"><tbody><row><entry
766− align="char">
767−<para>int ioctl( int fd, int request =
768− DMX_SET_BUFFER_SIZE, unsigned long size);</para>
769−</entry>
770− </row></tbody></tgroup></informaltable>
771−<para>PARAMETERS
772−</para>
773−<informaltable><tgroup cols="2"><tbody><row><entry
774− align="char">
775−<para>int fd</para>
776−</entry><entry
777− align="char">
778−<para>File descriptor returned by a previous call to open().</para>
779−</entry>
780− </row><row><entry
781− align="char">
782−<para>int request</para>
783−</entry><entry
784− align="char">
785−<para>Equals DMX_SET_BUFFER_SIZE for this command.</para>
786−</entry>
787− </row><row><entry
788− align="char">
789−<para>unsigned long size</para>
790−</entry><entry
791− align="char">
792−<para>Size of circular buffer.</para>
793−</entry>
794− </row></tbody></tgroup></informaltable>
795−&return-value-dvb;
796−</section>
797−
798−<section id="DMX_GET_EVENT">
799−<title>DMX_GET_EVENT</title>
800−<para>DESCRIPTION
801−</para>
802−<informaltable><tgroup cols="1"><tbody><row><entry
803− align="char">
804−<para>This ioctl call returns an event if available. If an event is not available,
805− the behavior depends on whether the device is in blocking or non-blocking
806− mode. In the latter case, the call fails immediately with errno set to
807− EWOULDBLOCK. In the former case, the call blocks until an event becomes
808− available.</para>
809−</entry>
810− </row><row><entry
811− align="char">
812−<para>The standard Linux poll() and/or select() system calls can be used with the
813− device file descriptor to watch for new events. For select(), the file descriptor
814− should be included in the exceptfds argument, and for poll(), POLLPRI should
815− be specified as the wake-up condition. Only the latest event for each filter is
816− saved.</para>
817−</entry>
818− </row></tbody></tgroup></informaltable>
819−<para>SYNOPSIS
820−</para>
821−<informaltable><tgroup cols="1"><tbody><row><entry
822− align="char">
823−<para>int ioctl( int fd, int request = DMX_GET_EVENT,
824− struct dmx_event &#x22C6;ev);</para>
825−</entry>
826− </row></tbody></tgroup></informaltable>
827−<para>PARAMETERS
828−</para>
829−<informaltable><tgroup cols="2"><tbody><row><entry
830− align="char">
831−<para>int fd</para>
832−</entry><entry
833− align="char">
834−<para>File descriptor returned by a previous call to open().</para>
835−</entry>
836− </row><row><entry
837− align="char">
838−<para>int request</para>
839−</entry><entry
840− align="char">
841−<para>Equals DMX_GET_EVENT for this command.</para>
842−</entry>
843− </row><row><entry
844− align="char">
845−<para>struct dmx_event *ev</para>
846−</entry><entry
847− align="char">
848−<para>Pointer to the location where the event is to be stored.</para>
849−</entry>
850− </row></tbody></tgroup></informaltable>
851−&return-value-dvb;
852−<informaltable><tgroup cols="2"><tbody><row><entry
853− align="char">
854−<para>EWOULDBLOCK</para>
855−</entry><entry
856− align="char">
857−<para>There is no event pending, and the device is in
858− non-blocking mode.</para>
859−</entry>
860− </row></tbody></tgroup></informaltable>
861−</section>
862−
863−<section id="DMX_GET_STC">
864−<title>DMX_GET_STC</title>
865−<para>DESCRIPTION
866−</para>
867−<informaltable><tgroup cols="1"><tbody><row><entry
868− align="char">
869−<para>This ioctl call returns the current value of the system time counter (which is driven
870− by a PES filter of type DMX_PES_PCR). Some hardware supports more than one
871− STC, so you must specify which one by setting the num field of stc before the ioctl
872− (range 0...n). The result is returned in form of a ratio with a 64 bit numerator
873− and a 32 bit denominator, so the real 90kHz STC value is stc-&#x003E;stc /
874− stc-&#x003E;base
875− .</para>
876−</entry>
877− </row></tbody></tgroup></informaltable>
878−<para>SYNOPSIS
879−</para>
880−<informaltable><tgroup cols="1"><tbody><row><entry
881− align="char">
882−<para>int ioctl( int fd, int request = DMX_GET_STC, struct
883− dmx_stc &#x22C6;stc);</para>
884−</entry>
885− </row></tbody></tgroup></informaltable>
886−<para>PARAMETERS
887−</para>
888−<informaltable><tgroup cols="2"><tbody><row><entry
889− align="char">
890−<para>int fd</para>
891−</entry><entry
892− align="char">
893−<para>File descriptor returned by a previous call to open().</para>
894−</entry>
895− </row><row><entry
896− align="char">
897−<para>int request</para>
898−</entry><entry
899− align="char">
900−<para>Equals DMX_GET_STC for this command.</para>
901−</entry>
902− </row><row><entry
903− align="char">
904−<para>struct dmx_stc *stc</para>
905−</entry><entry
906− align="char">
907−<para>Pointer to the location where the stc is to be stored.</para>
908−</entry>
909− </row></tbody></tgroup></informaltable>
910−&return-value-dvb;
911−<informaltable><tgroup cols="2"><tbody><row><entry
912− align="char">
913−<para>EINVAL</para>
914−</entry><entry
915− align="char">
916−<para>Invalid stc number.</para>
917−</entry>
918− </row></tbody></tgroup></informaltable>
919− </section>
920−
921−<section id="DMX_GET_PES_PIDS"
922−role="subsection"><title>DMX_GET_PES_PIDS</title>
923−<para>DESCRIPTION
924−</para>
925−<informaltable><tgroup cols="1"><tbody><row><entry
926− align="char">
927−<para>This ioctl is undocumented. Documentation is welcome.</para>
928−</entry>
929− </row></tbody></tgroup></informaltable>
930−<para>SYNOPSIS
931−</para>
932−<informaltable><tgroup cols="1"><tbody><row><entry
933− align="char">
934−<para>int ioctl(fd, int request = DMX_GET_PES_PIDS,
935− __u16[5]);</para>
936−</entry>
937− </row></tbody></tgroup></informaltable>
938−<para>PARAMETERS
939−</para>
940−<informaltable><tgroup cols="2"><tbody><row><entry
941− align="char">
942−<para>int fd</para>
943−</entry><entry
944− align="char">
945−<para>File descriptor returned by a previous call to open().</para>
946−</entry>
947− </row><row><entry
948− align="char">
949−<para>int request</para>
950−</entry><entry
951− align="char">
952−<para>Equals DMX_GET_PES_PIDS for this command.</para>
953−</entry>
954− </row><row><entry
955− align="char">
956−<para>__u16[5]
957−</para>
958−</entry><entry
959− align="char">
960−<para>Undocumented.</para>
961−</entry>
962− </row></tbody></tgroup></informaltable>
963−&return-value-dvb;
964−</section>
965−
966−<section id="DMX_GET_CAPS"
967−role="subsection"><title>DMX_GET_CAPS</title>
968−<para>DESCRIPTION
969−</para>
970−<informaltable><tgroup cols="1"><tbody><row><entry
971− align="char">
972−<para>This ioctl is undocumented. Documentation is welcome.</para>
973−</entry>
974− </row></tbody></tgroup></informaltable>
975−<para>SYNOPSIS
976−</para>
977−<informaltable><tgroup cols="1"><tbody><row><entry
978− align="char">
979−<para>int ioctl(fd, int request = DMX_GET_CAPS,
980− dmx_caps_t *);</para>
981−</entry>
982− </row></tbody></tgroup></informaltable>
983−<para>PARAMETERS
984−</para>
985−<informaltable><tgroup cols="2"><tbody><row><entry
986− align="char">
987−<para>int fd</para>
988−</entry><entry
989− align="char">
990−<para>File descriptor returned by a previous call to open().</para>
991−</entry>
992− </row><row><entry
993− align="char">
994−<para>int request</para>
995−</entry><entry
996− align="char">
997−<para>Equals DMX_GET_CAPS for this command.</para>
998−</entry>
999− </row><row><entry
1000− align="char">
1001−<para>dmx_caps_t *
1002−</para>
1003−</entry><entry
1004− align="char">
1005−<para>Undocumented.</para>
1006−</entry>
1007− </row></tbody></tgroup></informaltable>
1008−&return-value-dvb;
1009−</section>
1010−
1011−<section id="DMX_SET_SOURCE"
1012−role="subsection"><title>DMX_SET_SOURCE</title>
1013−<para>DESCRIPTION
1014−</para>
1015−<informaltable><tgroup cols="1"><tbody><row><entry
1016− align="char">
1017−<para>This ioctl is undocumented. Documentation is welcome.</para>
1018−</entry>
1019− </row></tbody></tgroup></informaltable>
1020−<para>SYNOPSIS
1021−</para>
1022−<informaltable><tgroup cols="1"><tbody><row><entry
1023− align="char">
1024−<para>int ioctl(fd, int request = DMX_SET_SOURCE,
1025− dmx_source_t *);</para>
1026−</entry>
1027− </row></tbody></tgroup></informaltable>
1028−<para>PARAMETERS
1029−</para>
1030−<informaltable><tgroup cols="2"><tbody><row><entry
1031− align="char">
1032−<para>int fd</para>
1033−</entry><entry
1034− align="char">
1035−<para>File descriptor returned by a previous call to open().</para>
1036−</entry>
1037− </row><row><entry
1038− align="char">
1039−<para>int request</para>
1040−</entry><entry
1041− align="char">
1042−<para>Equals DMX_SET_SOURCE for this command.</para>
1043−</entry>
1044− </row><row><entry
1045− align="char">
1046−<para>dmx_source_t *
1047−</para>
1048−</entry><entry
1049− align="char">
1050−<para>Undocumented.</para>
1051−</entry>
1052− </row></tbody></tgroup></informaltable>
1053−&return-value-dvb;
1054−</section>
1055−
1056−<section id="DMX_ADD_PID"
1057−role="subsection"><title>DMX_ADD_PID</title>
1058−<para>DESCRIPTION
1059−</para>
1060−<informaltable><tgroup cols="1"><tbody><row><entry
1061− align="char">
1062−<para>This ioctl call allows to add multiple PIDs to a transport stream filter
1063−previously set up with DMX_SET_PES_FILTER and output equal to DMX_OUT_TSDEMUX_TAP.
1064−</para></entry></row><row><entry align="char"><para>
1065−It is used by readers of /dev/dvb/adapterX/demuxY.
1066−</para></entry></row><row><entry align="char"><para>
1067−It may be called at any time, i.e. before or after the first filter on the
1068−shared file descriptor was started. It makes it possible to record multiple
1069−services without the need to de-multiplex or re-multiplex TS packets.</para>
1070−</entry>
1071− </row></tbody></tgroup></informaltable>
1072−<para>SYNOPSIS
1073−</para>
1074−<informaltable><tgroup cols="1"><tbody><row><entry
1075− align="char">
1076−<para>int ioctl(fd, int request = DMX_ADD_PID,
1077− __u16 *);</para>
1078−</entry>
1079− </row></tbody></tgroup></informaltable>
1080−<para>PARAMETERS
1081−</para>
1082−<informaltable><tgroup cols="2"><tbody><row><entry
1083− align="char">
1084−<para>int fd</para>
1085−</entry><entry
1086− align="char">
1087−<para>File descriptor returned by a previous call to open().</para>
1088−</entry>
1089− </row><row><entry
1090− align="char">
1091−<para>int request</para>
1092−</entry><entry
1093− align="char">
1094−<para>Equals DMX_ADD_PID for this command.</para>
1095−</entry>
1096− </row><row><entry
1097− align="char">
1098−<para>__u16 *
1099−</para>
1100−</entry><entry
1101− align="char">
1102−<para>PID number to be filtered.</para>
1103−</entry>
1104− </row></tbody></tgroup></informaltable>
1105−&return-value-dvb;
1106−</section>
1107−
1108−<section id="DMX_REMOVE_PID"
1109−role="subsection"><title>DMX_REMOVE_PID</title>
1110−<para>DESCRIPTION
1111−</para>
1112−<informaltable><tgroup cols="1"><tbody><row><entry
1113− align="char">
1114−<para>This ioctl call allows to remove a PID when multiple PIDs are set on a
1115−transport stream filter, e. g. a filter previously set up with output equal to
1116−DMX_OUT_TSDEMUX_TAP, created via either DMX_SET_PES_FILTER or DMX_ADD_PID.
1117−</para></entry></row><row><entry align="char"><para>
1118−It is used by readers of /dev/dvb/adapterX/demuxY.
1119−</para></entry></row><row><entry align="char"><para>
1120−It may be called at any time, i.e. before or after the first filter on the
1121−shared file descriptor was started. It makes it possible to record multiple
1122−services without the need to de-multiplex or re-multiplex TS packets.</para>
1123−</entry>
1124− </row></tbody></tgroup></informaltable>
1125−<para>SYNOPSIS
1126−</para>
1127−<informaltable><tgroup cols="1"><tbody><row><entry
1128− align="char">
1129−<para>int ioctl(fd, int request = DMX_REMOVE_PID,
1130− __u16 *);</para>
1131−</entry>
1132− </row></tbody></tgroup></informaltable>
1133−<para>PARAMETERS
1134−</para>
1135−<informaltable><tgroup cols="2"><tbody><row><entry
1136− align="char">
1137−<para>int fd</para>
1138−</entry><entry
1139− align="char">
1140−<para>File descriptor returned by a previous call to open().</para>
1141−</entry>
1142− </row><row><entry
1143− align="char">
1144−<para>int request</para>
1145−</entry><entry
1146− align="char">
1147−<para>Equals DMX_REMOVE_PID for this command.</para>
1148−</entry>
1149− </row><row><entry
1150− align="char">
1151−<para>__u16 *
1152−</para>
1153−</entry><entry
1154− align="char">
1155−<para>PID of the PES filter to be removed.</para>
1156−</entry>
1157− </row></tbody></tgroup></informaltable>
1158−&return-value-dvb;
1159−</section>
1160−
1161−
1162−</section>
Documentation/DocBook/media/dvb/dvbapi.xml+0−156
@@ -1,156 +0,0 @@
1−<partinfo>
2−<authorgroup>
3−<author>
4−<firstname>Ralph</firstname>
5−<surname>Metzler</surname>
6−<othername role="mi">J. K.</othername>
7−<affiliation><address><email>rjkm@metzlerbros.de</email></address></affiliation>
8−</author>
9−<author>
10−<firstname>Marcus</firstname>
11−<surname>Metzler</surname>
12−<othername role="mi">O. C.</othername>
13−<affiliation><address><email>rjkm@metzlerbros.de</email></address></affiliation>
14−</author>
15−</authorgroup>
16−<authorgroup>
17−<author>
18−<firstname>Mauro</firstname>
19−<othername role="mi">Carvalho</othername>
20−<surname>Chehab</surname>
21−<affiliation><address><email>m.chehab@samsung.com</email></address></affiliation>
22−<contrib>Ported document to Docbook XML.</contrib>
23−</author>
24−</authorgroup>
25−<copyright>
26− <year>2002</year>
27− <year>2003</year>
28− <holder>Convergence GmbH</holder>
29−</copyright>
30−<copyright>
31− <year>2009-2015</year>
32− <holder>Mauro Carvalho Chehab</holder>
33−</copyright>
34−
35−<revhistory>
36−<!-- Put document revisions here, newest first. -->
37−<revision>
38− <revnumber>2.1.0</revnumber>
39− <date>2015-05-29</date>
40− <authorinitials>mcc</authorinitials>
41− <revremark>
42− DocBook improvements and cleanups, in order to document the
43− system calls on a more standard way and provide more description
44− about the current DVB API.
45− </revremark>
46−</revision>
47−<revision>
48− <revnumber>2.0.4</revnumber>
49− <date>2011-05-06</date>
50− <authorinitials>mcc</authorinitials>
51− <revremark>
52− Add more information about DVB APIv5, better describing the frontend GET/SET props ioctl's.
53− </revremark>
54−</revision>
55−<revision>
56− <revnumber>2.0.3</revnumber>
57− <date>2010-07-03</date>
58− <authorinitials>mcc</authorinitials>
59− <revremark>
60− Add some frontend capabilities flags, present on kernel, but missing at the specs.
61− </revremark>
62−</revision>
63−<revision>
64− <revnumber>2.0.2</revnumber>
65− <date>2009-10-25</date>
66− <authorinitials>mcc</authorinitials>
67− <revremark>
68− documents FE_SET_FRONTEND_TUNE_MODE and FE_DISHETWORK_SEND_LEGACY_CMD ioctls.
69− </revremark>
70−</revision>
71−<revision>
72−<revnumber>2.0.1</revnumber>
73−<date>2009-09-16</date>
74−<authorinitials>mcc</authorinitials>
75−<revremark>
76−Added ISDB-T test originally written by Patrick Boettcher
77−</revremark>
78−</revision>
79−<revision>
80−<revnumber>2.0.0</revnumber>
81−<date>2009-09-06</date>
82−<authorinitials>mcc</authorinitials>
83−<revremark>Conversion from LaTex to DocBook XML. The
84− contents is the same as the original LaTex version.</revremark>
85−</revision>
86−<revision>
87−<revnumber>1.0.0</revnumber>
88−<date>2003-07-24</date>
89−<authorinitials>rjkm</authorinitials>
90−<revremark>Initial revision on LaTEX.</revremark>
91−</revision>
92−</revhistory>
93−</partinfo>
94−
95−
96−<title>LINUX DVB API</title>
97−<subtitle>Version 5.10</subtitle>
98−<!-- ADD THE CHAPTERS HERE -->
99− <chapter id="dvb_introdution">
100− &sub-intro;
101− </chapter>
102− <chapter id="dvb_frontend">
103− &sub-frontend;
104− </chapter>
105− <chapter id="dvb_demux">
106− &sub-demux;
107− </chapter>
108− <chapter id="dvb_ca">
109− &sub-ca;
110− </chapter>
111− <chapter id="net">
112− &sub-net;
113− </chapter>
114− <chapter id="legacy_dvb_apis">
115− <title>DVB Deprecated APIs</title>
116− <para>The APIs described here are kept only for historical reasons. There's
117− just one driver for a very legacy hardware that uses this API. No
118− modern drivers should use it. Instead, audio and video should be using
119− the V4L2 and ALSA APIs, and the pipelines should be set using the
120− Media Controller API</para>
121− <section id="dvb_video">
122− &sub-video;
123− </section>
124− <section id="dvb_audio">
125− &sub-audio;
126− </section>
127− </chapter>
128− <chapter id="dvb_examples">
129− &sub-examples;
130− </chapter>
131−<!-- END OF CHAPTERS -->
132− <appendix id="audio_h">
133− <title>DVB Audio Header File</title>
134− &sub-audio-h;
135− </appendix>
136− <appendix id="ca_h">
137− <title>DVB Conditional Access Header File</title>
138− &sub-ca-h;
139− </appendix>
140− <appendix id="dmx_h">
141− <title>DVB Demux Header File</title>
142− &sub-dmx-h;
143− </appendix>
144− <appendix id="frontend_h">
145− <title>DVB Frontend Header File</title>
146− &sub-frontend-h;
147− </appendix>
148− <appendix id="net_h">
149− <title>DVB Network Header File</title>
150− &sub-net-h;
151− </appendix>
152− <appendix id="video_h">
153− <title>DVB Video Header File</title>
154− &sub-video-h;
155− </appendix>
156−
Documentation/DocBook/media/dvb/dvbproperty.xml+0−1680
@@ -1,1680 +0,0 @@
1−<section id="frontend-properties">
2−<title>DVB Frontend properties</title>
3−<para>Tuning into a Digital TV physical channel and starting decoding it
4− requires changing a set of parameters, in order to control the
5− tuner, the demodulator, the Linear Low-noise Amplifier (LNA) and to set the
6− antenna subsystem via Satellite Equipment Control (SEC), on satellite
7− systems. The actual parameters are specific to each particular digital
8− TV standards, and may change as the digital TV specs evolves.</para>
9−<para>In the past, the strategy used was to have a union with the parameters
10− needed to tune for DVB-S, DVB-C, DVB-T and ATSC delivery systems grouped
11− there. The problem is that, as the second generation standards appeared,
12− those structs were not big enough to contain the additional parameters.
13− Also, the union didn't have any space left to be expanded without breaking
14− userspace. So, the decision was to deprecate the legacy union/struct based
15− approach, in favor of a properties set approach.</para>
16−
17−<para>NOTE: on Linux DVB API version 3, setting a frontend were done via
18− <link linkend="dvb-frontend-parameters">struct <constant>dvb_frontend_parameters</constant></link>.
19− This got replaced on version 5 (also called "S2API", as this API were
20− added originally_enabled to provide support for DVB-S2), because the old
21− API has a very limited support to new standards and new hardware. This
22− section describes the new and recommended way to set the frontend, with
23− suppports all digital TV delivery systems.</para>
24−
25−<para>Example: with the properties based approach, in order to set the tuner
26− to a DVB-C channel at 651 kHz, modulated with 256-QAM, FEC 3/4 and symbol
27− rate of 5.217 Mbauds, those properties should be sent to
28− <link linkend="FE_GET_PROPERTY"><constant>FE_SET_PROPERTY</constant></link> ioctl:</para>
29− <itemizedlist>
30− <listitem><para>&DTV-DELIVERY-SYSTEM; = SYS_DVBC_ANNEX_A</para></listitem>
31− <listitem><para>&DTV-FREQUENCY; = 651000000</para></listitem>
32− <listitem><para>&DTV-MODULATION; = QAM_256</para></listitem>
33− <listitem><para>&DTV-INVERSION; = INVERSION_AUTO</para></listitem>
34− <listitem><para>&DTV-SYMBOL-RATE; = 5217000</para></listitem>
35− <listitem><para>&DTV-INNER-FEC; = FEC_3_4</para></listitem>
36− <listitem><para>&DTV-TUNE;</para></listitem>
37− </itemizedlist>
38−
39−<para>The code that would do the above is:</para>
40−<programlisting>
41−#include &lt;stdio.h&gt;
42−#include &lt;fcntl.h&gt;
43−#include &lt;sys/ioctl.h&gt;
44−#include &lt;linux/dvb/frontend.h&gt;
45−
46−static struct dtv_property props[] = {
47− { .cmd = DTV_DELIVERY_SYSTEM, .u.data = SYS_DVBC_ANNEX_A },
48− { .cmd = DTV_FREQUENCY, .u.data = 651000000 },
49− { .cmd = DTV_MODULATION, .u.data = QAM_256 },
50− { .cmd = DTV_INVERSION, .u.data = INVERSION_AUTO },
51− { .cmd = DTV_SYMBOL_RATE, .u.data = 5217000 },
52− { .cmd = DTV_INNER_FEC, .u.data = FEC_3_4 },
53− { .cmd = DTV_TUNE }
54−};
55−
56−static struct dtv_properties dtv_prop = {
57− .num = 6, .props = props
58−};
59−
60−int main(void)
61−{
62− int fd = open("/dev/dvb/adapter0/frontend0", O_RDWR);
63−
64− if (!fd) {
65− perror ("open");
66− return -1;
67− }
68− if (ioctl(fd, FE_SET_PROPERTY, &amp;dtv_prop) == -1) {
69− perror("ioctl");
70− return -1;
71− }
72− printf("Frontend set\n");
73− return 0;
74−}
75−</programlisting>
76−
77−<para>NOTE: While it is possible to directly call the Kernel code like the
78− above example, it is strongly recommended to use
79− <ulink url="https://linuxtv.org/docs/libdvbv5/index.html">libdvbv5</ulink>,
80− as it provides abstraction to work with the supported digital TV standards
81− and provides methods for usual operations like program scanning and to
82− read/write channel descriptor files.</para>
83−
84−<section id="dtv-stats">
85−<title>struct <structname>dtv_stats</structname></title>
86−<programlisting>
87−struct dtv_stats {
88− __u8 scale; /* enum fecap_scale_params type */
89− union {
90− __u64 uvalue; /* for counters and relative scales */
91− __s64 svalue; /* for 1/1000 dB measures */
92− };
93−} __packed;
94−</programlisting>
95−</section>
96−<section id="dtv-fe-stats">
97−<title>struct <structname>dtv_fe_stats</structname></title>
98−<programlisting>
99−#define MAX_DTV_STATS 4
100−
101−struct dtv_fe_stats {
102− __u8 len;
103− &dtv-stats; stat[MAX_DTV_STATS];
104−} __packed;
105−</programlisting>
106−</section>
107−
108−<section id="dtv-property">
109−<title>struct <structname>dtv_property</structname></title>
110−<programlisting>
111−/* Reserved fields should be set to 0 */
112−
113−struct dtv_property {
114− __u32 cmd;
115− __u32 reserved[3];
116− union {
117− __u32 data;
118− &dtv-fe-stats; st;
119− struct {
120− __u8 data[32];
121− __u32 len;
122− __u32 reserved1[3];
123− void *reserved2;
124− } buffer;
125− } u;
126− int result;
127−} __attribute__ ((packed));
128−
129−/* num of properties cannot exceed DTV_IOCTL_MAX_MSGS per ioctl */
130−#define DTV_IOCTL_MAX_MSGS 64
131−</programlisting>
132−</section>
133−<section id="dtv-properties">
134−<title>struct <structname>dtv_properties</structname></title>
135−<programlisting>
136−struct dtv_properties {
137− __u32 num;
138− &dtv-property; *props;
139−};
140−</programlisting>
141−</section>
142−
143−<section>
144− <title>Property types</title>
145−<para>
146−On <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY and FE_SET_PROPERTY</link>,
147−the actual action is determined by the dtv_property cmd/data pairs. With one single ioctl, is possible to
148−get/set up to 64 properties. The actual meaning of each property is described on the next sections.
149−</para>
150−
151−<para>The available frontend property types are shown on the next section.</para>
152−</section>
153−
154−<section id="fe_property_parameters">
155− <title>Digital TV property parameters</title>
156− <section id="DTV-UNDEFINED">
157− <title><constant>DTV_UNDEFINED</constant></title>
158− <para>Used internally. A GET/SET operation for it won't change or return anything.</para>
159− </section>
160− <section id="DTV-TUNE">
161− <title><constant>DTV_TUNE</constant></title>
162− <para>Interpret the cache of data, build either a traditional frontend tunerequest so we can pass validation in the <constant>FE_SET_FRONTEND</constant> ioctl.</para>
163− </section>
164− <section id="DTV-CLEAR">
165− <title><constant>DTV_CLEAR</constant></title>
166− <para>Reset a cache of data specific to the frontend here. This does not effect hardware.</para>
167− </section>
168− <section id="DTV-FREQUENCY">
169− <title><constant>DTV_FREQUENCY</constant></title>
170−
171− <para>Central frequency of the channel.</para>
172−
173− <para>Notes:</para>
174− <para>1)For satellite delivery systems, it is measured in kHz.
175− For the other ones, it is measured in Hz.</para>
176− <para>2)For ISDB-T, the channels are usually transmitted with an offset of 143kHz.
177− E.g. a valid frequency could be 474143 kHz. The stepping is bound to the bandwidth of
178− the channel which is 6MHz.</para>
179−
180− <para>3)As in ISDB-Tsb the channel consists of only one or three segments the
181− frequency step is 429kHz, 3*429 respectively. As for ISDB-T the
182− central frequency of the channel is expected.</para>
183− </section>
184− <section id="DTV-MODULATION">
185− <title><constant>DTV_MODULATION</constant></title>
186−<para>Specifies the frontend modulation type for delivery systems that supports
187− more than one modulation type. The modulation can be one of the types
188− defined by &fe-modulation;.</para>
189−
190−
191−<section id="fe-modulation-t">
192−<title>Modulation property</title>
193−
194−<para>Most of the digital TV standards currently offers more than one possible
195− modulation (sometimes called as "constellation" on some standards). This
196− enum contains the values used by the Kernel. Please note that not all
197− modulations are supported by a given standard.</para>
198−
199−<table pgwide="1" frame="none" id="fe-modulation">
200− <title>enum fe_modulation</title>
201− <tgroup cols="2">
202− &cs-def;
203− <thead>
204− <row>
205− <entry>ID</entry>
206− <entry>Description</entry>
207− </row>
208− </thead>
209− <tbody valign="top">
210− <row>
211− <entry id="QPSK"><constant>QPSK</constant></entry>
212− <entry>QPSK modulation</entry>
213− </row><row>
214− <entry id="QAM-16"><constant>QAM_16</constant></entry>
215− <entry>16-QAM modulation</entry>
216− </row><row>
217− <entry id="QAM-32"><constant>QAM_32</constant></entry>
218− <entry>32-QAM modulation</entry>
219− </row><row>
220− <entry id="QAM-64"><constant>QAM_64</constant></entry>
221− <entry>64-QAM modulation</entry>
222− </row><row>
223− <entry id="QAM-128"><constant>QAM_128</constant></entry>
224− <entry>128-QAM modulation</entry>
225− </row><row>
226− <entry id="QAM-256"><constant>QAM_256</constant></entry>
227− <entry>256-QAM modulation</entry>
228− </row><row>
229− <entry id="QAM-AUTO"><constant>QAM_AUTO</constant></entry>
230− <entry>Autodetect QAM modulation</entry>
231− </row><row>
232− <entry id="VSB-8"><constant>VSB_8</constant></entry>
233− <entry>8-VSB modulation</entry>
234− </row><row>
235− <entry id="VSB-16"><constant>VSB_16</constant></entry>
236− <entry>16-VSB modulation</entry>
237− </row><row>
238− <entry id="PSK-8"><constant>PSK_8</constant></entry>
239− <entry>8-PSK modulation</entry>
240− </row><row>
241− <entry id="APSK-16"><constant>APSK_16</constant></entry>
242− <entry>16-APSK modulation</entry>
243− </row><row>
244− <entry id="APSK-32"><constant>APSK_32</constant></entry>
245− <entry>32-APSK modulation</entry>
246− </row><row>
247− <entry id="DQPSK"><constant>DQPSK</constant></entry>
248− <entry>DQPSK modulation</entry>
249− </row><row>
250− <entry id="QAM-4-NR"><constant>QAM_4_NR</constant></entry>
251− <entry>4-QAM-NR modulation</entry>
252− </row>
253− </tbody>
254− </tgroup>
255−</table>
256−</section>
257−
258− </section>
259− <section id="DTV-BANDWIDTH-HZ">
260− <title><constant>DTV_BANDWIDTH_HZ</constant></title>
261−
262− <para>Bandwidth for the channel, in HZ.</para>
263−
264− <para>Possible values:
265− <constant>1712000</constant>,
266− <constant>5000000</constant>,
267− <constant>6000000</constant>,
268− <constant>7000000</constant>,
269− <constant>8000000</constant>,
270− <constant>10000000</constant>.
271− </para>
272−
273− <para>Notes:</para>
274−
275− <para>1) For ISDB-T it should be always 6000000Hz (6MHz)</para>
276− <para>2) For ISDB-Tsb it can vary depending on the number of connected segments</para>
277− <para>3) Bandwidth doesn't apply for DVB-C transmissions, as the bandwidth
278− for DVB-C depends on the symbol rate</para>
279− <para>4) Bandwidth in ISDB-T is fixed (6MHz) or can be easily derived from
280− other parameters (DTV_ISDBT_SB_SEGMENT_IDX,
281− DTV_ISDBT_SB_SEGMENT_COUNT).</para>
282− <para>5) DVB-T supports 6, 7 and 8MHz.</para>
283− <para>6) In addition, DVB-T2 supports 1.172, 5 and 10MHz.</para>
284− </section>
285− <section id="DTV-INVERSION">
286− <title><constant>DTV_INVERSION</constant></title>
287−
288− <para>Specifies if the frontend should do spectral inversion or not.</para>
289−
290−<section id="fe-spectral-inversion-t">
291−<title>enum fe_modulation: Frontend spectral inversion</title>
292−
293−<para>This parameter indicates if spectral inversion should be presumed or not.
294− In the automatic setting (<constant>INVERSION_AUTO</constant>) the hardware
295− will try to figure out the correct setting by itself. If the hardware
296− doesn't support, the DVB core will try to lock at the carrier first with
297− inversion off. If it fails, it will try to enable inversion.
298−</para>
299−
300−<table pgwide="1" frame="none" id="fe-spectral-inversion">
301− <title>enum fe_modulation</title>
302− <tgroup cols="2">
303− &cs-def;
304− <thead>
305− <row>
306− <entry>ID</entry>
307− <entry>Description</entry>
308− </row>
309− </thead>
310− <tbody valign="top">
311− <row>
312− <entry id="INVERSION-OFF"><constant>INVERSION_OFF</constant></entry>
313− <entry>Don't do spectral band inversion.</entry>
314− </row><row>
315− <entry id="INVERSION-ON"><constant>INVERSION_ON</constant></entry>
316− <entry>Do spectral band inversion.</entry>
317− </row><row>
318− <entry id="INVERSION-AUTO"><constant>INVERSION_AUTO</constant></entry>
319− <entry>Autodetect spectral band inversion.</entry>
320− </row>
321− </tbody>
322− </tgroup>
323−</table>
324−</section>
325−
326− </section>
327− <section id="DTV-DISEQC-MASTER">
328− <title><constant>DTV_DISEQC_MASTER</constant></title>
329− <para>Currently not implemented.</para>
330− </section>
331− <section id="DTV-SYMBOL-RATE">
332− <title><constant>DTV_SYMBOL_RATE</constant></title>
333− <para>Digital TV symbol rate, in bauds (symbols/second). Used on cable standards.</para>
334− </section>
335− <section id="DTV-INNER-FEC">
336− <title><constant>DTV_INNER_FEC</constant></title>
337− <para>Used cable/satellite transmissions. The acceptable values are:
338− </para>
339−<section id="fe-code-rate-t">
340−<title>enum fe_code_rate: type of the Forward Error Correction.</title>
341−
342−<table pgwide="1" frame="none" id="fe-code-rate">
343− <title>enum fe_code_rate</title>
344− <tgroup cols="2">
345− &cs-def;
346− <thead>
347− <row>
348− <entry>ID</entry>
349− <entry>Description</entry>
350− </row>
351− </thead>
352− <tbody valign="top">
353− <row>
354− <entry id="FEC-NONE"><constant>FEC_NONE</constant></entry>
355− <entry>No Forward Error Correction Code</entry>
356− </row><row>
357− <entry id="FEC-AUTO"><constant>FEC_AUTO</constant></entry>
358− <entry>Autodetect Error Correction Code</entry>
359− </row><row>
360− <entry id="FEC-1-2"><constant>FEC_1_2</constant></entry>
361− <entry>Forward Error Correction Code 1/2</entry>
362− </row><row>
363− <entry id="FEC-2-3"><constant>FEC_2_3</constant></entry>
364− <entry>Forward Error Correction Code 2/3</entry>
365− </row><row>
366− <entry id="FEC-3-4"><constant>FEC_3_4</constant></entry>
367− <entry>Forward Error Correction Code 3/4</entry>
368− </row><row>
369− <entry id="FEC-4-5"><constant>FEC_4_5</constant></entry>
370− <entry>Forward Error Correction Code 4/5</entry>
371− </row><row>
372− <entry id="FEC-5-6"><constant>FEC_5_6</constant></entry>
373− <entry>Forward Error Correction Code 5/6</entry>
374− </row><row>
375− <entry id="FEC-6-7"><constant>FEC_6_7</constant></entry>
376− <entry>Forward Error Correction Code 6/7</entry>
377− </row><row>
378− <entry id="FEC-7-8"><constant>FEC_7_8</constant></entry>
379− <entry>Forward Error Correction Code 7/8</entry>
380− </row><row>
381− <entry id="FEC-8-9"><constant>FEC_8_9</constant></entry>
382− <entry>Forward Error Correction Code 8/9</entry>
383− </row><row>
384− <entry id="FEC-9-10"><constant>FEC_9_10</constant></entry>
385− <entry>Forward Error Correction Code 9/10</entry>
386− </row><row>
387− <entry id="FEC-2-5"><constant>FEC_2_5</constant></entry>
388− <entry>Forward Error Correction Code 2/5</entry>
389− </row><row>
390− <entry id="FEC-3-5"><constant>FEC_3_5</constant></entry>
391− <entry>Forward Error Correction Code 3/5</entry>
392− </row>
393− </tbody>
394− </tgroup>
395−</table>
396−</section>
397− </section>
398− <section id="DTV-VOLTAGE">
399− <title><constant>DTV_VOLTAGE</constant></title>
400− <para>The voltage is usually used with non-DiSEqC capable LNBs to switch
401− the polarzation (horizontal/vertical). When using DiSEqC epuipment this
402− voltage has to be switched consistently to the DiSEqC commands as
403− described in the DiSEqC spec.</para>
404−
405−<table pgwide="1" frame="none" id="fe-sec-voltage">
406− <title id="fe-sec-voltage-t">enum fe_sec_voltage</title>
407− <tgroup cols="2">
408− &cs-def;
409− <thead>
410− <row>
411− <entry>ID</entry>
412− <entry>Description</entry>
413− </row>
414− </thead>
415− <tbody valign="top">
416− <row>
417− <entry align="char" id="SEC-VOLTAGE-13"><constant>SEC_VOLTAGE_13</constant></entry>
418− <entry align="char">Set DC voltage level to 13V</entry>
419− </row><row>
420− <entry align="char" id="SEC-VOLTAGE-18"><constant>SEC_VOLTAGE_18</constant></entry>
421− <entry align="char">Set DC voltage level to 18V</entry>
422− </row><row>
423− <entry align="char" id="SEC-VOLTAGE-OFF"><constant>SEC_VOLTAGE_OFF</constant></entry>
424− <entry align="char">Don't send any voltage to the antenna</entry>
425− </row>
426− </tbody>
427− </tgroup>
428−</table>
429− </section>
430− <section id="DTV-TONE">
431− <title><constant>DTV_TONE</constant></title>
432− <para>Currently not used.</para>
433− </section>
434− <section id="DTV-PILOT">
435− <title><constant>DTV_PILOT</constant></title>
436− <para>Sets DVB-S2 pilot</para>
437− <section id="fe-pilot-t">
438− <title>fe_pilot type</title>
439−<table pgwide="1" frame="none" id="fe-pilot">
440− <title>enum fe_pilot</title>
441− <tgroup cols="2">
442− &cs-def;
443− <thead>
444− <row>
445− <entry>ID</entry>
446− <entry>Description</entry>
447− </row>
448− </thead>
449− <tbody valign="top">
450− <row>
451− <entry align="char" id="PILOT-ON"><constant>PILOT_ON</constant></entry>
452− <entry align="char">Pilot tones enabled</entry>
453− </row><row>
454− <entry align="char" id="PILOT-OFF"><constant>PILOT_OFF</constant></entry>
455− <entry align="char">Pilot tones disabled</entry>
456− </row><row>
457− <entry align="char" id="PILOT-AUTO"><constant>PILOT_AUTO</constant></entry>
458− <entry align="char">Autodetect pilot tones</entry>
459− </row>
460− </tbody>
461− </tgroup>
462−</table>
463− </section>
464− </section>
465− <section id="DTV-ROLLOFF">
466− <title><constant>DTV_ROLLOFF</constant></title>
467− <para>Sets DVB-S2 rolloff</para>
468−
469− <section id="fe-rolloff-t">
470− <title>fe_rolloff type</title>
471−<table pgwide="1" frame="none" id="fe-rolloff">
472− <title>enum fe_rolloff</title>
473− <tgroup cols="2">
474− &cs-def;
475− <thead>
476− <row>
477− <entry>ID</entry>
478− <entry>Description</entry>
479− </row>
480− </thead>
481− <tbody valign="top">
482− <row>
483− <entry align="char" id="ROLLOFF-35"><constant>ROLLOFF_35</constant></entry>
484− <entry align="char">Roloff factor: &alpha;=35%</entry>
485− </row><row>
486− <entry align="char" id="ROLLOFF-20"><constant>ROLLOFF_20</constant></entry>
487− <entry align="char">Roloff factor: &alpha;=20%</entry>
488− </row><row>
489− <entry align="char" id="ROLLOFF-25"><constant>ROLLOFF_25</constant></entry>
490− <entry align="char">Roloff factor: &alpha;=25%</entry>
491− </row><row>
492− <entry align="char" id="ROLLOFF-AUTO"><constant>ROLLOFF_AUTO</constant></entry>
493− <entry align="char">Auto-detect the roloff factor.</entry>
494− </row>
495− </tbody>
496− </tgroup>
497−</table>
498− </section>
499− </section>
500− <section id="DTV-DISEQC-SLAVE-REPLY">
501− <title><constant>DTV_DISEQC_SLAVE_REPLY</constant></title>
502− <para>Currently not implemented.</para>
503− </section>
504− <section id="DTV-FE-CAPABILITY-COUNT">
505− <title><constant>DTV_FE_CAPABILITY_COUNT</constant></title>
506− <para>Currently not implemented.</para>
507− </section>
508− <section id="DTV-FE-CAPABILITY">
509− <title><constant>DTV_FE_CAPABILITY</constant></title>
510− <para>Currently not implemented.</para>
511− </section>
512− <section id="DTV-DELIVERY-SYSTEM">
513− <title><constant>DTV_DELIVERY_SYSTEM</constant></title>
514− <para>Specifies the type of Delivery system</para>
515− <section id="fe-delivery-system-t">
516− <title>fe_delivery_system type</title>
517− <para>Possible values: </para>
518−
519−<table pgwide="1" frame="none" id="fe-delivery-system">
520− <title>enum fe_delivery_system</title>
521− <tgroup cols="2">
522− &cs-def;
523− <thead>
524− <row>
525− <entry>ID</entry>
526− <entry>Description</entry>
527− </row>
528− </thead>
529− <tbody valign="top">
530− <row>
531− <entry id="SYS-UNDEFINED"><constant>SYS_UNDEFINED</constant></entry>
532− <entry>Undefined standard. Generally, indicates an error</entry>
533− </row><row>
534− <entry id="SYS-DVBC-ANNEX-A"><constant>SYS_DVBC_ANNEX_A</constant></entry>
535− <entry>Cable TV: DVB-C following ITU-T J.83 Annex A spec</entry>
536− </row><row>
537− <entry id="SYS-DVBC-ANNEX-B"><constant>SYS_DVBC_ANNEX_B</constant></entry>
538− <entry>Cable TV: DVB-C following ITU-T J.83 Annex B spec (ClearQAM)</entry>
539− </row><row>
540− <entry id="SYS-DVBC-ANNEX-C"><constant>SYS_DVBC_ANNEX_C</constant></entry>
541− <entry>Cable TV: DVB-C following ITU-T J.83 Annex C spec</entry>
542− </row><row>
543− <entry id="SYS-ISDBC"><constant>SYS_ISDBC</constant></entry>
544− <entry>Cable TV: ISDB-C (no drivers yet)</entry>
545− </row><row>
546− <entry id="SYS-DVBT"><constant>SYS_DVBT</constant></entry>
547− <entry>Terrestral TV: DVB-T</entry>
548− </row><row>
549− <entry id="SYS-DVBT2"><constant>SYS_DVBT2</constant></entry>
550− <entry>Terrestral TV: DVB-T2</entry>
551− </row><row>
552− <entry id="SYS-ISDBT"><constant>SYS_ISDBT</constant></entry>
553− <entry>Terrestral TV: ISDB-T</entry>
554− </row><row>
555− <entry id="SYS-ATSC"><constant>SYS_ATSC</constant></entry>
556− <entry>Terrestral TV: ATSC</entry>
557− </row><row>
558− <entry id="SYS-ATSCMH"><constant>SYS_ATSCMH</constant></entry>
559− <entry>Terrestral TV (mobile): ATSC-M/H</entry>
560− </row><row>
561− <entry id="SYS-DTMB"><constant>SYS_DTMB</constant></entry>
562− <entry>Terrestrial TV: DTMB</entry>
563− </row><row>
564− <entry id="SYS-DVBS"><constant>SYS_DVBS</constant></entry>
565− <entry>Satellite TV: DVB-S</entry>
566− </row><row>
567− <entry id="SYS-DVBS2"><constant>SYS_DVBS2</constant></entry>
568− <entry>Satellite TV: DVB-S2</entry>
569− </row><row>
570− <entry id="SYS-TURBO"><constant>SYS_TURBO</constant></entry>
571− <entry>Satellite TV: DVB-S Turbo</entry>
572− </row><row>
573− <entry id="SYS-ISDBS"><constant>SYS_ISDBS</constant></entry>
574− <entry>Satellite TV: ISDB-S</entry>
575− </row><row>
576− <entry id="SYS-DAB"><constant>SYS_DAB</constant></entry>
577− <entry>Digital audio: DAB (not fully supported)</entry>
578− </row><row>
579− <entry id="SYS-DSS"><constant>SYS_DSS</constant></entry>
580− <entry>Satellite TV:"DSS (not fully supported)</entry>
581− </row><row>
582− <entry id="SYS-CMMB"><constant>SYS_CMMB</constant></entry>
583− <entry>Terrestral TV (mobile):CMMB (not fully supported)</entry>
584− </row><row>
585− <entry id="SYS-DVBH"><constant>SYS_DVBH</constant></entry>
586− <entry>Terrestral TV (mobile): DVB-H (standard deprecated)</entry>
587− </row>
588− </tbody>
589− </tgroup>
590−</table>
591−
592−
593−</section>
594− </section>
595− <section id="DTV-ISDBT-PARTIAL-RECEPTION">
596− <title><constant>DTV_ISDBT_PARTIAL_RECEPTION</constant></title>
597−
598− <para>If <constant>DTV_ISDBT_SOUND_BROADCASTING</constant> is '0' this bit-field represents whether
599− the channel is in partial reception mode or not.</para>
600−
601− <para>If '1' <constant>DTV_ISDBT_LAYERA_*</constant> values are assigned to the center segment and
602− <constant>DTV_ISDBT_LAYERA_SEGMENT_COUNT</constant> has to be '1'.</para>
603−
604− <para>If in addition <constant>DTV_ISDBT_SOUND_BROADCASTING</constant> is '1'
605− <constant>DTV_ISDBT_PARTIAL_RECEPTION</constant> represents whether this ISDB-Tsb channel
606− is consisting of one segment and layer or three segments and two layers.</para>
607−
608− <para>Possible values: 0, 1, -1 (AUTO)</para>
609− </section>
610− <section id="DTV-ISDBT-SOUND-BROADCASTING">
611− <title><constant>DTV_ISDBT_SOUND_BROADCASTING</constant></title>
612−
613− <para>This field represents whether the other DTV_ISDBT_*-parameters are
614− referring to an ISDB-T and an ISDB-Tsb channel. (See also
615− <constant>DTV_ISDBT_PARTIAL_RECEPTION</constant>).</para>
616−
617− <para>Possible values: 0, 1, -1 (AUTO)</para>
618− </section>
619− <section id="DTV-ISDBT-SB-SUBCHANNEL-ID">
620− <title><constant>DTV_ISDBT_SB_SUBCHANNEL_ID</constant></title>
621−
622− <para>This field only applies if <constant>DTV_ISDBT_SOUND_BROADCASTING</constant> is '1'.</para>
623−
624− <para>(Note of the author: This might not be the correct description of the
625− <constant>SUBCHANNEL-ID</constant> in all details, but it is my understanding of the technical
626− background needed to program a device)</para>
627−
628− <para>An ISDB-Tsb channel (1 or 3 segments) can be broadcasted alone or in a
629− set of connected ISDB-Tsb channels. In this set of channels every
630− channel can be received independently. The number of connected
631− ISDB-Tsb segment can vary, e.g. depending on the frequency spectrum
632− bandwidth available.</para>
633−
634− <para>Example: Assume 8 ISDB-Tsb connected segments are broadcasted. The
635− broadcaster has several possibilities to put those channels in the
636− air: Assuming a normal 13-segment ISDB-T spectrum he can align the 8
637− segments from position 1-8 to 5-13 or anything in between.</para>
638−
639− <para>The underlying layer of segments are subchannels: each segment is
640− consisting of several subchannels with a predefined IDs. A sub-channel
641− is used to help the demodulator to synchronize on the channel.</para>
642−
643− <para>An ISDB-T channel is always centered over all sub-channels. As for
644− the example above, in ISDB-Tsb it is no longer as simple as that.</para>
645−
646− <para><constant>The DTV_ISDBT_SB_SUBCHANNEL_ID</constant> parameter is used to give the
647− sub-channel ID of the segment to be demodulated.</para>
648−
649− <para>Possible values: 0 .. 41, -1 (AUTO)</para>
650− </section>
651− <section id="DTV-ISDBT-SB-SEGMENT-IDX">
652− <title><constant>DTV_ISDBT_SB_SEGMENT_IDX</constant></title>
653− <para>This field only applies if <constant>DTV_ISDBT_SOUND_BROADCASTING</constant> is '1'.</para>
654− <para><constant>DTV_ISDBT_SB_SEGMENT_IDX</constant> gives the index of the segment to be
655− demodulated for an ISDB-Tsb channel where several of them are
656− transmitted in the connected manner.</para>
657− <para>Possible values: 0 .. <constant>DTV_ISDBT_SB_SEGMENT_COUNT</constant> - 1</para>
658− <para>Note: This value cannot be determined by an automatic channel search.</para>
659− </section>
660− <section id="DTV-ISDBT-SB-SEGMENT-COUNT">
661− <title><constant>DTV_ISDBT_SB_SEGMENT_COUNT</constant></title>
662− <para>This field only applies if <constant>DTV_ISDBT_SOUND_BROADCASTING</constant> is '1'.</para>
663− <para><constant>DTV_ISDBT_SB_SEGMENT_COUNT</constant> gives the total count of connected ISDB-Tsb
664− channels.</para>
665− <para>Possible values: 1 .. 13</para>
666− <para>Note: This value cannot be determined by an automatic channel search.</para>
667− </section>
668− <section id="isdb-hierq-layers">
669− <title><constant>DTV-ISDBT-LAYER*</constant> parameters</title>
670− <para>ISDB-T channels can be coded hierarchically. As opposed to DVB-T in
671− ISDB-T hierarchical layers can be decoded simultaneously. For that
672− reason a ISDB-T demodulator has 3 Viterbi and 3 Reed-Solomon decoders.</para>
673− <para>ISDB-T has 3 hierarchical layers which each can use a part of the
674− available segments. The total number of segments over all layers has
675− to 13 in ISDB-T.</para>
676− <para>There are 3 parameter sets, for Layers A, B and C.</para>
677− <section id="DTV-ISDBT-LAYER-ENABLED">
678− <title><constant>DTV_ISDBT_LAYER_ENABLED</constant></title>
679− <para>Hierarchical reception in ISDB-T is achieved by enabling or disabling
680− layers in the decoding process. Setting all bits of
681− <constant>DTV_ISDBT_LAYER_ENABLED</constant> to '1' forces all layers (if applicable) to be
682− demodulated. This is the default.</para>
683− <para>If the channel is in the partial reception mode
684− (<constant>DTV_ISDBT_PARTIAL_RECEPTION</constant> = 1) the central segment can be decoded
685− independently of the other 12 segments. In that mode layer A has to
686− have a <constant>SEGMENT_COUNT</constant> of 1.</para>
687− <para>In ISDB-Tsb only layer A is used, it can be 1 or 3 in ISDB-Tsb
688− according to <constant>DTV_ISDBT_PARTIAL_RECEPTION</constant>. <constant>SEGMENT_COUNT</constant> must be filled
689− accordingly.</para>
690− <para>Possible values: 0x1, 0x2, 0x4 (|-able)</para>
691− <para><constant>DTV_ISDBT_LAYER_ENABLED[0:0]</constant> - layer A</para>
692− <para><constant>DTV_ISDBT_LAYER_ENABLED[1:1]</constant> - layer B</para>
693− <para><constant>DTV_ISDBT_LAYER_ENABLED[2:2]</constant> - layer C</para>
694− <para><constant>DTV_ISDBT_LAYER_ENABLED[31:3]</constant> unused</para>
695− </section>
696− <section id="DTV-ISDBT-LAYER-FEC">
697− <title><constant>DTV_ISDBT_LAYER*_FEC</constant></title>
698− <para>Possible values: <constant>FEC_AUTO</constant>, <constant>FEC_1_2</constant>, <constant>FEC_2_3</constant>, <constant>FEC_3_4</constant>, <constant>FEC_5_6</constant>, <constant>FEC_7_8</constant></para>
699− </section>
700− <section id="DTV-ISDBT-LAYER-MODULATION">
701− <title><constant>DTV_ISDBT_LAYER*_MODULATION</constant></title>
702− <para>Possible values: <constant>QAM_AUTO</constant>, QP<constant>SK, QAM_16</constant>, <constant>QAM_64</constant>, <constant>DQPSK</constant></para>
703− <para>Note: If layer C is <constant>DQPSK</constant> layer B has to be <constant>DQPSK</constant>. If layer B is <constant>DQPSK</constant>
704− and <constant>DTV_ISDBT_PARTIAL_RECEPTION</constant>=0 layer has to be <constant>DQPSK</constant>.</para>
705− </section>
706− <section id="DTV-ISDBT-LAYER-SEGMENT-COUNT">
707− <title><constant>DTV_ISDBT_LAYER*_SEGMENT_COUNT</constant></title>
708− <para>Possible values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1 (AUTO)</para>
709− <para>Note: Truth table for <constant>DTV_ISDBT_SOUND_BROADCASTING</constant> and
710− <constant>DTV_ISDBT_PARTIAL_RECEPTION</constant> and <constant>LAYER</constant>*_SEGMENT_COUNT</para>
711− <informaltable id="isdbt-layer_seg-cnt-table">
712− <tgroup cols="6">
713− <tbody>
714− <row>
715− <entry>PR</entry>
716− <entry>SB</entry>
717− <entry>Layer A width</entry>
718− <entry>Layer B width</entry>
719− <entry>Layer C width</entry>
720− <entry>total width</entry>
721− </row>
722− <row>
723− <entry>0</entry>
724− <entry>0</entry>
725− <entry>1 .. 13</entry>
726− <entry>1 .. 13</entry>
727− <entry>1 .. 13</entry>
728− <entry>13</entry>
729− </row>
730− <row>
731− <entry>1</entry>
732− <entry>0</entry>
733− <entry>1</entry>
734− <entry>1 .. 13</entry>
735− <entry>1 .. 13</entry>
736− <entry>13</entry>
737− </row>
738− <row>
739− <entry>0</entry>
740− <entry>1</entry>
741− <entry>1</entry>
742− <entry>0</entry>
743− <entry>0</entry>
744− <entry>1</entry>
745− </row>
746− <row>
747− <entry>1</entry>
748− <entry>1</entry>
749− <entry>1</entry>
750− <entry>2</entry>
751− <entry>0</entry>
752− <entry>13</entry>
753− </row>
754− </tbody>
755− </tgroup>
756− </informaltable>
757− </section>
758− <section id="DTV-ISDBT-LAYER-TIME-INTERLEAVING">
759− <title><constant>DTV_ISDBT_LAYER*_TIME_INTERLEAVING</constant></title>
760− <para>Valid values: 0, 1, 2, 4, -1 (AUTO)</para>
761− <para>when DTV_ISDBT_SOUND_BROADCASTING is active, value 8 is also valid.</para>
762− <para>Note: The real time interleaving length depends on the mode (fft-size). The values
763− here are referring to what can be found in the TMCC-structure, as shown in the table below.</para>
764− <informaltable id="isdbt-layer-interleaving-table">
765− <tgroup cols="4" align="center">
766− <tbody>
767− <row>
768− <entry>DTV_ISDBT_LAYER*_TIME_INTERLEAVING</entry>
769− <entry>Mode 1 (2K FFT)</entry>
770− <entry>Mode 2 (4K FFT)</entry>
771− <entry>Mode 3 (8K FFT)</entry>
772− </row>
773− <row>
774− <entry>0</entry>
775− <entry>0</entry>
776− <entry>0</entry>
777− <entry>0</entry>
778− </row>
779− <row>
780− <entry>1</entry>
781− <entry>4</entry>
782− <entry>2</entry>
783− <entry>1</entry>
784− </row>
785− <row>
786− <entry>2</entry>
787− <entry>8</entry>
788− <entry>4</entry>
789− <entry>2</entry>
790− </row>
791− <row>
792− <entry>4</entry>
793− <entry>16</entry>
794− <entry>8</entry>
795− <entry>4</entry>
796− </row>
797− </tbody>
798− </tgroup>
799− </informaltable>
800− </section>
801− <section id="DTV-ATSCMH-FIC-VER">
802− <title><constant>DTV_ATSCMH_FIC_VER</constant></title>
803− <para>Version number of the FIC (Fast Information Channel) signaling data.</para>
804− <para>FIC is used for relaying information to allow rapid service acquisition by the receiver.</para>
805− <para>Possible values: 0, 1, 2, 3, ..., 30, 31</para>
806− </section>
807− <section id="DTV-ATSCMH-PARADE-ID">
808− <title><constant>DTV_ATSCMH_PARADE_ID</constant></title>
809− <para>Parade identification number</para>
810− <para>A parade is a collection of up to eight MH groups, conveying one or two ensembles.</para>
811− <para>Possible values: 0, 1, 2, 3, ..., 126, 127</para>
812− </section>
813− <section id="DTV-ATSCMH-NOG">
814− <title><constant>DTV_ATSCMH_NOG</constant></title>
815− <para>Number of MH groups per MH subframe for a designated parade.</para>
816− <para>Possible values: 1, 2, 3, 4, 5, 6, 7, 8</para>
817− </section>
818− <section id="DTV-ATSCMH-TNOG">
819− <title><constant>DTV_ATSCMH_TNOG</constant></title>
820− <para>Total number of MH groups including all MH groups belonging to all MH parades in one MH subframe.</para>
821− <para>Possible values: 0, 1, 2, 3, ..., 30, 31</para>
822− </section>
823− <section id="DTV-ATSCMH-SGN">
824− <title><constant>DTV_ATSCMH_SGN</constant></title>
825− <para>Start group number.</para>
826− <para>Possible values: 0, 1, 2, 3, ..., 14, 15</para>
827− </section>
828− <section id="DTV-ATSCMH-PRC">
829− <title><constant>DTV_ATSCMH_PRC</constant></title>
830− <para>Parade repetition cycle.</para>
831− <para>Possible values: 1, 2, 3, 4, 5, 6, 7, 8</para>
832− </section>
833− <section id="DTV-ATSCMH-RS-FRAME-MODE">
834− <title><constant>DTV_ATSCMH_RS_FRAME_MODE</constant></title>
835− <para>Reed Solomon (RS) frame mode.</para>
836− <para>Possible values are:</para>
837−<table pgwide="1" frame="none" id="atscmh-rs-frame-mode">
838− <title>enum atscmh_rs_frame_mode</title>
839− <tgroup cols="2">
840− &cs-def;
841− <thead>
842− <row>
843− <entry>ID</entry>
844− <entry>Description</entry>
845− </row>
846− </thead>
847− <tbody valign="top">
848− <row>
849− <entry id="ATSCMH-RSFRAME-PRI-ONLY"><constant>ATSCMH_RSFRAME_PRI_ONLY</constant></entry>
850− <entry>Single Frame: There is only a primary RS Frame for all
851− Group Regions.</entry>
852− </row><row>
853− <entry id="ATSCMH-RSFRAME-PRI-SEC"><constant>ATSCMH_RSFRAME_PRI_SEC</constant></entry>
854− <entry>Dual Frame: There are two separate RS Frames: Primary RS
855− Frame for Group Region A and B and Secondary RS Frame for Group
856− Region C and D.</entry>
857− </row>
858− </tbody>
859− </tgroup>
860−</table>
861− </section>
862− <section id="DTV-ATSCMH-RS-FRAME-ENSEMBLE">
863− <title><constant>DTV_ATSCMH_RS_FRAME_ENSEMBLE</constant></title>
864− <para>Reed Solomon(RS) frame ensemble.</para>
865− <para>Possible values are:</para>
866−<table pgwide="1" frame="none" id="atscmh-rs-frame-ensemble">
867− <title>enum atscmh_rs_frame_ensemble</title>
868− <tgroup cols="2">
869− &cs-def;
870− <thead>
871− <row>
872− <entry>ID</entry>
873− <entry>Description</entry>
874− </row>
875− </thead>
876− <tbody valign="top">
877− <row>
878− <entry id="ATSCMH-RSFRAME-ENS-PRI"><constant>ATSCMH_RSFRAME_ENS_PRI</constant></entry>
879− <entry>Primary Ensemble.</entry>
880− </row><row>
881− <entry id="ATSCMH-RSFRAME-ENS-SEC"><constant>AATSCMH_RSFRAME_PRI_SEC</constant></entry>
882− <entry>Secondary Ensemble.</entry>
883− </row><row>
884− <entry id="ATSCMH-RSFRAME-RES"><constant>AATSCMH_RSFRAME_RES</constant></entry>
885− <entry>Reserved. Shouldn't be used.</entry>
886− </row>
887− </tbody>
888− </tgroup>
889−</table>
890− </section>
891− <section id="DTV-ATSCMH-RS-CODE-MODE-PRI">
892− <title><constant>DTV_ATSCMH_RS_CODE_MODE_PRI</constant></title>
893− <para>Reed Solomon (RS) code mode (primary).</para>
894− <para>Possible values are:</para>
895−<table pgwide="1" frame="none" id="atscmh-rs-code-mode">
896− <title>enum atscmh_rs_code_mode</title>
897− <tgroup cols="2">
898− &cs-def;
899− <thead>
900− <row>
901− <entry>ID</entry>
902− <entry>Description</entry>
903− </row>
904− </thead>
905− <tbody valign="top">
906− <row>
907− <entry id="ATSCMH-RSCODE-211-187"><constant>ATSCMH_RSCODE_211_187</constant></entry>
908− <entry>Reed Solomon code (211,187).</entry>
909− </row><row>
910− <entry id="ATSCMH-RSCODE-223-187"><constant>ATSCMH_RSCODE_223_187</constant></entry>
911− <entry>Reed Solomon code (223,187).</entry>
912− </row><row>
913− <entry id="ATSCMH-RSCODE-235-187"><constant>ATSCMH_RSCODE_235_187</constant></entry>
914− <entry>Reed Solomon code (235,187).</entry>
915− </row><row>
916− <entry id="ATSCMH-RSCODE-RES"><constant>ATSCMH_RSCODE_RES</constant></entry>
917− <entry>Reserved. Shouldn't be used.</entry>
918− </row>
919− </tbody>
920− </tgroup>
921−</table>
922− </section>
923− <section id="DTV-ATSCMH-RS-CODE-MODE-SEC">
924− <title><constant>DTV_ATSCMH_RS_CODE_MODE_SEC</constant></title>
925− <para>Reed Solomon (RS) code mode (secondary).</para>
926− <para>Possible values are the same as documented on
927− &atscmh-rs-code-mode;:</para>
928− </section>
929− <section id="DTV-ATSCMH-SCCC-BLOCK-MODE">
930− <title><constant>DTV_ATSCMH_SCCC_BLOCK_MODE</constant></title>
931− <para>Series Concatenated Convolutional Code Block Mode.</para>
932− <para>Possible values are:</para>
933−<table pgwide="1" frame="none" id="atscmh-sccc-block-mode">
934− <title>enum atscmh_scc_block_mode</title>
935− <tgroup cols="2">
936− &cs-def;
937− <thead>
938− <row>
939− <entry>ID</entry>
940− <entry>Description</entry>
941− </row>
942− </thead>
943− <tbody valign="top">
944− <row>
945− <entry id="ATSCMH-SCCC-BLK-SEP"><constant>ATSCMH_SCCC_BLK_SEP</constant></entry>
946− <entry>Separate SCCC: the SCCC outer code mode shall be set independently
947− for each Group Region (A, B, C, D)</entry>
948− </row><row>
949− <entry id="ATSCMH-SCCC-BLK-COMB"><constant>ATSCMH_SCCC_BLK_COMB</constant></entry>
950− <entry>Combined SCCC: all four Regions shall have the same SCCC outer
951− code mode.</entry>
952− </row><row>
953− <entry id="ATSCMH-SCCC-BLK-RES"><constant>ATSCMH_SCCC_BLK_RES</constant></entry>
954− <entry>Reserved. Shouldn't be used.</entry>
955− </row>
956− </tbody>
957− </tgroup>
958−</table>
959− </section>
960− <section id="DTV-ATSCMH-SCCC-CODE-MODE-A">
961− <title><constant>DTV_ATSCMH_SCCC_CODE_MODE_A</constant></title>
962− <para>Series Concatenated Convolutional Code Rate.</para>
963− <para>Possible values are:</para>
964−<table pgwide="1" frame="none" id="atscmh-sccc-code-mode">
965− <title>enum atscmh_sccc_code_mode</title>
966− <tgroup cols="2">
967− &cs-def;
968− <thead>
969− <row>
970− <entry>ID</entry>
971− <entry>Description</entry>
972− </row>
973− </thead>
974− <tbody valign="top">
975− <row>
976− <entry id="ATSCMH-SCCC-CODE-HLF"><constant>ATSCMH_SCCC_CODE_HLF</constant></entry>
977− <entry>The outer code rate of a SCCC Block is 1/2 rate.</entry>
978− </row><row>
979− <entry id="ATSCMH-SCCC-CODE-QTR"><constant>ATSCMH_SCCC_CODE_QTR</constant></entry>
980− <entry>The outer code rate of a SCCC Block is 1/4 rate.</entry>
981− </row><row>
982− <entry id="ATSCMH-SCCC-CODE-RES"><constant>ATSCMH_SCCC_CODE_RES</constant></entry>
983− <entry>to be documented.</entry>
984− </row>
985− </tbody>
986− </tgroup>
987−</table>
988− </section>
989− <section id="DTV-ATSCMH-SCCC-CODE-MODE-B">
990− <title><constant>DTV_ATSCMH_SCCC_CODE_MODE_B</constant></title>
991− <para>Series Concatenated Convolutional Code Rate.</para>
992− <para>Possible values are the same as documented on
993− &atscmh-sccc-code-mode;.</para>
994− </section>
995− <section id="DTV-ATSCMH-SCCC-CODE-MODE-C">
996− <title><constant>DTV_ATSCMH_SCCC_CODE_MODE_C</constant></title>
997− <para>Series Concatenated Convolutional Code Rate.</para>
998− <para>Possible values are the same as documented on
999− &atscmh-sccc-code-mode;.</para>
1000− </section>
1001− <section id="DTV-ATSCMH-SCCC-CODE-MODE-D">
1002− <title><constant>DTV_ATSCMH_SCCC_CODE_MODE_D</constant></title>
1003− <para>Series Concatenated Convolutional Code Rate.</para>
1004− <para>Possible values are the same as documented on
1005− &atscmh-sccc-code-mode;.</para>
1006− </section>
1007− </section>
1008− <section id="DTV-API-VERSION">
1009− <title><constant>DTV_API_VERSION</constant></title>
1010− <para>Returns the major/minor version of the DVB API</para>
1011− </section>
1012− <section id="DTV-CODE-RATE-HP">
1013− <title><constant>DTV_CODE_RATE_HP</constant></title>
1014− <para>Used on terrestrial transmissions. The acceptable values are
1015− the ones described at &fe-transmit-mode-t;.
1016− </para>
1017− </section>
1018− <section id="DTV-CODE-RATE-LP">
1019− <title><constant>DTV_CODE_RATE_LP</constant></title>
1020− <para>Used on terrestrial transmissions. The acceptable values are
1021− the ones described at &fe-transmit-mode-t;.
1022− </para>
1023−
1024− </section>
1025−
1026− <section id="DTV-GUARD-INTERVAL">
1027− <title><constant>DTV_GUARD_INTERVAL</constant></title>
1028−
1029− <para>Possible values are:</para>
1030−
1031−<section id="fe-guard-interval-t">
1032−<title>Modulation guard interval</title>
1033−
1034−<table pgwide="1" frame="none" id="fe-guard-interval">
1035− <title>enum fe_guard_interval</title>
1036− <tgroup cols="2">
1037− &cs-def;
1038− <thead>
1039− <row>
1040− <entry>ID</entry>
1041− <entry>Description</entry>
1042− </row>
1043− </thead>
1044− <tbody valign="top">
1045− <row>
1046− <entry id="GUARD-INTERVAL-AUTO"><constant>GUARD_INTERVAL_AUTO</constant></entry>
1047− <entry>Autodetect the guard interval</entry>
1048− </row><row>
1049− <entry id="GUARD-INTERVAL-1-128"><constant>GUARD_INTERVAL_1_128</constant></entry>
1050− <entry>Guard interval 1/128</entry>
1051− </row><row>
1052− <entry id="GUARD-INTERVAL-1-32"><constant>GUARD_INTERVAL_1_32</constant></entry>
1053− <entry>Guard interval 1/32</entry>
1054− </row><row>
1055− <entry id="GUARD-INTERVAL-1-16"><constant>GUARD_INTERVAL_1_16</constant></entry>
1056− <entry>Guard interval 1/16</entry>
1057− </row><row>
1058− <entry id="GUARD-INTERVAL-1-8"><constant>GUARD_INTERVAL_1_8</constant></entry>
1059− <entry>Guard interval 1/8</entry>
1060− </row><row>
1061− <entry id="GUARD-INTERVAL-1-4"><constant>GUARD_INTERVAL_1_4</constant></entry>
1062− <entry>Guard interval 1/4</entry>
1063− </row><row>
1064− <entry id="GUARD-INTERVAL-19-128"><constant>GUARD_INTERVAL_19_128</constant></entry>
1065− <entry>Guard interval 19/128</entry>
1066− </row><row>
1067− <entry id="GUARD-INTERVAL-19-256"><constant>GUARD_INTERVAL_19_256</constant></entry>
1068− <entry>Guard interval 19/256</entry>
1069− </row><row>
1070− <entry id="GUARD-INTERVAL-PN420"><constant>GUARD_INTERVAL_PN420</constant></entry>
1071− <entry>PN length 420 (1/4)</entry>
1072− </row><row>
1073− <entry id="GUARD-INTERVAL-PN595"><constant>GUARD_INTERVAL_PN595</constant></entry>
1074− <entry>PN length 595 (1/6)</entry>
1075− </row><row>
1076− <entry id="GUARD-INTERVAL-PN945"><constant>GUARD_INTERVAL_PN945</constant></entry>
1077− <entry>PN length 945 (1/9)</entry>
1078− </row>
1079− </tbody>
1080− </tgroup>
1081−</table>
1082−
1083− <para>Notes:</para>
1084− <para>1) If <constant>DTV_GUARD_INTERVAL</constant> is set the <constant>GUARD_INTERVAL_AUTO</constant> the hardware will
1085− try to find the correct guard interval (if capable) and will use TMCC to fill
1086− in the missing parameters.</para>
1087− <para>2) Intervals 1/128, 19/128 and 19/256 are used only for DVB-T2 at present</para>
1088− <para>3) DTMB specifies PN420, PN595 and PN945.</para>
1089−</section>
1090− </section>
1091− <section id="DTV-TRANSMISSION-MODE">
1092− <title><constant>DTV_TRANSMISSION_MODE</constant></title>
1093−
1094− <para>Specifies the number of carriers used by the standard.
1095− This is used only on OFTM-based standards, e. g.
1096− DVB-T/T2, ISDB-T, DTMB</para>
1097−
1098−<section id="fe-transmit-mode-t">
1099−<title>enum fe_transmit_mode: Number of carriers per channel</title>
1100−
1101−<table pgwide="1" frame="none" id="fe-transmit-mode">
1102− <title>enum fe_transmit_mode</title>
1103− <tgroup cols="2">
1104− &cs-def;
1105− <thead>
1106− <row>
1107− <entry>ID</entry>
1108− <entry>Description</entry>
1109− </row>
1110− </thead>
1111− <tbody valign="top">
1112− <row>
1113− <entry id="TRANSMISSION-MODE-AUTO"><constant>TRANSMISSION_MODE_AUTO</constant></entry>
1114− <entry>Autodetect transmission mode. The hardware will try to find
1115− the correct FFT-size (if capable) to fill in the missing
1116− parameters.</entry>
1117− </row><row>
1118− <entry id="TRANSMISSION-MODE-1K"><constant>TRANSMISSION_MODE_1K</constant></entry>
1119− <entry>Transmission mode 1K</entry>
1120− </row><row>
1121− <entry id="TRANSMISSION-MODE-2K"><constant>TRANSMISSION_MODE_2K</constant></entry>
1122− <entry>Transmission mode 2K</entry>
1123− </row><row>
1124− <entry id="TRANSMISSION-MODE-8K"><constant>TRANSMISSION_MODE_8K</constant></entry>
1125− <entry>Transmission mode 8K</entry>
1126− </row><row>
1127− <entry id="TRANSMISSION-MODE-4K"><constant>TRANSMISSION_MODE_4K</constant></entry>
1128− <entry>Transmission mode 4K</entry>
1129− </row><row>
1130− <entry id="TRANSMISSION-MODE-16K"><constant>TRANSMISSION_MODE_16K</constant></entry>
1131− <entry>Transmission mode 16K</entry>
1132− </row><row>
1133− <entry id="TRANSMISSION-MODE-32K"><constant>TRANSMISSION_MODE_32K</constant></entry>
1134− <entry>Transmission mode 32K</entry>
1135− </row><row>
1136− <entry id="TRANSMISSION-MODE-C1"><constant>TRANSMISSION_MODE_C1</constant></entry>
1137− <entry>Single Carrier (C=1) transmission mode (DTMB)</entry>
1138− </row><row>
1139− <entry id="TRANSMISSION-MODE-C3780"><constant>TRANSMISSION_MODE_C3780</constant></entry>
1140− <entry>Multi Carrier (C=3780) transmission mode (DTMB)</entry>
1141− </row>
1142− </tbody>
1143− </tgroup>
1144−</table>
1145−
1146−
1147− <para>Notes:</para>
1148− <para>1) ISDB-T supports three carrier/symbol-size: 8K, 4K, 2K. It is called
1149− 'mode' in the standard: Mode 1 is 2K, mode 2 is 4K, mode 3 is 8K</para>
1150−
1151− <para>2) If <constant>DTV_TRANSMISSION_MODE</constant> is set the <constant>TRANSMISSION_MODE_AUTO</constant> the
1152− hardware will try to find the correct FFT-size (if capable) and will
1153− use TMCC to fill in the missing parameters.</para>
1154− <para>3) DVB-T specifies 2K and 8K as valid sizes.</para>
1155− <para>4) DVB-T2 specifies 1K, 2K, 4K, 8K, 16K and 32K.</para>
1156− <para>5) DTMB specifies C1 and C3780.</para>
1157−</section>
1158− </section>
1159− <section id="DTV-HIERARCHY">
1160− <title><constant>DTV_HIERARCHY</constant></title>
1161− <para>Frontend hierarchy</para>
1162−
1163−
1164−<section id="fe-hierarchy-t">
1165−<title>Frontend hierarchy</title>
1166−
1167−<table pgwide="1" frame="none" id="fe-hierarchy">
1168− <title>enum fe_hierarchy</title>
1169− <tgroup cols="2">
1170− &cs-def;
1171− <thead>
1172− <row>
1173− <entry>ID</entry>
1174− <entry>Description</entry>
1175− </row>
1176− </thead>
1177− <tbody valign="top">
1178− <row>
1179− <entry id="HIERARCHY-NONE"><constant>HIERARCHY_NONE</constant></entry>
1180− <entry>No hierarchy</entry>
1181− </row><row>
1182− <entry id="HIERARCHY-AUTO"><constant>HIERARCHY_AUTO</constant></entry>
1183− <entry>Autodetect hierarchy (if supported)</entry>
1184− </row><row>
1185− <entry id="HIERARCHY-1"><constant>HIERARCHY_1</constant></entry>
1186− <entry>Hierarchy 1</entry>
1187− </row><row>
1188− <entry id="HIERARCHY-2"><constant>HIERARCHY_2</constant></entry>
1189− <entry>Hierarchy 2</entry>
1190− </row><row>
1191− <entry id="HIERARCHY-4"><constant>HIERARCHY_4</constant></entry>
1192− <entry>Hierarchy 4</entry>
1193− </row>
1194− </tbody>
1195− </tgroup>
1196−</table>
1197−</section>
1198−
1199− </section>
1200− <section id="DTV-STREAM-ID">
1201− <title><constant>DTV_STREAM_ID</constant></title>
1202− <para>DVB-S2, DVB-T2 and ISDB-S support the transmission of several
1203− streams on a single transport stream.
1204− This property enables the DVB driver to handle substream filtering,
1205− when supported by the hardware.
1206− By default, substream filtering is disabled.
1207− </para><para>
1208− For DVB-S2 and DVB-T2, the valid substream id range is from 0 to 255.
1209− </para><para>
1210− For ISDB, the valid substream id range is from 1 to 65535.
1211− </para><para>
1212− To disable it, you should use the special macro NO_STREAM_ID_FILTER.
1213− </para><para>
1214− Note: any value outside the id range also disables filtering.
1215− </para>
1216− </section>
1217− <section id="DTV-DVBT2-PLP-ID-LEGACY">
1218− <title><constant>DTV_DVBT2_PLP_ID_LEGACY</constant></title>
1219− <para>Obsolete, replaced with DTV_STREAM_ID.</para>
1220− </section>
1221− <section id="DTV-ENUM-DELSYS">
1222− <title><constant>DTV_ENUM_DELSYS</constant></title>
1223− <para>A Multi standard frontend needs to advertise the delivery systems provided.
1224− Applications need to enumerate the provided delivery systems, before using
1225− any other operation with the frontend. Prior to it's introduction,
1226− FE_GET_INFO was used to determine a frontend type. A frontend which
1227− provides more than a single delivery system, FE_GET_INFO doesn't help much.
1228− Applications which intends to use a multistandard frontend must enumerate
1229− the delivery systems associated with it, rather than trying to use
1230− FE_GET_INFO. In the case of a legacy frontend, the result is just the same
1231− as with FE_GET_INFO, but in a more structured format </para>
1232− </section>
1233− <section id="DTV-INTERLEAVING">
1234− <title><constant>DTV_INTERLEAVING</constant></title>
1235−
1236−<para>Time interleaving to be used. Currently, used only on DTMB.</para>
1237−
1238−<table pgwide="1" frame="none" id="fe-interleaving">
1239− <title>enum fe_interleaving</title>
1240− <tgroup cols="2">
1241− &cs-def;
1242− <thead>
1243− <row>
1244− <entry>ID</entry>
1245− <entry>Description</entry>
1246− </row>
1247− </thead>
1248− <tbody valign="top">
1249− <row>
1250− <entry id="INTERLEAVING-NONE"><constant>INTERLEAVING_NONE</constant></entry>
1251− <entry>No interleaving.</entry>
1252− </row><row>
1253− <entry id="INTERLEAVING-AUTO"><constant>INTERLEAVING_AUTO</constant></entry>
1254− <entry>Auto-detect interleaving.</entry>
1255− </row><row>
1256− <entry id="INTERLEAVING-240"><constant>INTERLEAVING_240</constant></entry>
1257− <entry>Interleaving of 240 symbols.</entry>
1258− </row><row>
1259− <entry id="INTERLEAVING-720"><constant>INTERLEAVING_720</constant></entry>
1260− <entry>Interleaving of 720 symbols.</entry>
1261− </row>
1262− </tbody>
1263− </tgroup>
1264−</table>
1265−
1266− </section>
1267− <section id="DTV-LNA">
1268− <title><constant>DTV_LNA</constant></title>
1269− <para>Low-noise amplifier.</para>
1270− <para>Hardware might offer controllable LNA which can be set manually
1271− using that parameter. Usually LNA could be found only from
1272− terrestrial devices if at all.</para>
1273− <para>Possible values: 0, 1, LNA_AUTO</para>
1274− <para>0, LNA off</para>
1275− <para>1, LNA on</para>
1276− <para>use the special macro LNA_AUTO to set LNA auto</para>
1277− </section>
1278−</section>
1279−
1280− <section id="frontend-stat-properties">
1281− <title>Frontend statistics indicators</title>
1282− <para>The values are returned via <constant>dtv_property.stat</constant>.
1283− If the property is supported, <constant>dtv_property.stat.len</constant> is bigger than zero.</para>
1284− <para>For most delivery systems, <constant>dtv_property.stat.len</constant>
1285− will be 1 if the stats is supported, and the properties will
1286− return a single value for each parameter.</para>
1287− <para>It should be noted, however, that new OFDM delivery systems
1288− like ISDB can use different modulation types for each group of
1289− carriers. On such standards, up to 3 groups of statistics can be
1290− provided, and <constant>dtv_property.stat.len</constant> is updated
1291− to reflect the "global" metrics, plus one metric per each carrier
1292− group (called "layer" on ISDB).</para>
1293− <para>So, in order to be consistent with other delivery systems, the first
1294− value at <link linkend="dtv-stats"><constant>dtv_property.stat.dtv_stats</constant></link>
1295− array refers to the global metric. The other elements of the array
1296− represent each layer, starting from layer A(index 1),
1297− layer B (index 2) and so on.</para>
1298− <para>The number of filled elements are stored at <constant>dtv_property.stat.len</constant>.</para>
1299− <para>Each element of the <constant>dtv_property.stat.dtv_stats</constant> array consists on two elements:</para>
1300− <itemizedlist mark='opencircle'>
1301− <listitem><para><constant>svalue</constant> or <constant>uvalue</constant>, where
1302− <constant>svalue</constant> is for signed values of the measure (dB measures)
1303− and <constant>uvalue</constant> is for unsigned values (counters, relative scale)</para></listitem>
1304− <listitem><para><constant>scale</constant> - Scale for the value. It can be:</para>
1305− <itemizedlist mark='bullet' id="fecap-scale-params">
1306− <listitem id="FE-SCALE-NOT-AVAILABLE"><para><constant>FE_SCALE_NOT_AVAILABLE</constant> - The parameter is supported by the frontend, but it was not possible to collect it (could be a transitory or permanent condition)</para></listitem>
1307− <listitem id="FE-SCALE-DECIBEL"><para><constant>FE_SCALE_DECIBEL</constant> - parameter is a signed value, measured in 1/1000 dB</para></listitem>
1308− <listitem id="FE-SCALE-RELATIVE"><para><constant>FE_SCALE_RELATIVE</constant> - parameter is a unsigned value, where 0 means 0% and 65535 means 100%.</para></listitem>
1309− <listitem id="FE-SCALE-COUNTER"><para><constant>FE_SCALE_COUNTER</constant> - parameter is a unsigned value that counts the occurrence of an event, like bit error, block error, or lapsed time.</para></listitem>
1310− </itemizedlist>
1311− </listitem>
1312− </itemizedlist>
1313− <section id="DTV-STAT-SIGNAL-STRENGTH">
1314− <title><constant>DTV_STAT_SIGNAL_STRENGTH</constant></title>
1315− <para>Indicates the signal strength level at the analog part of the tuner or of the demod.</para>
1316− <para>Possible scales for this metric are:</para>
1317− <itemizedlist mark='bullet'>
1318− <listitem><para><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</para></listitem>
1319− <listitem><para><constant>FE_SCALE_DECIBEL</constant> - signal strength is in 0.001 dBm units, power measured in miliwatts. This value is generally negative.</para></listitem>
1320− <listitem><para><constant>FE_SCALE_RELATIVE</constant> - The frontend provides a 0% to 100% measurement for power (actually, 0 to 65535).</para></listitem>
1321− </itemizedlist>
1322− </section>
1323− <section id="DTV-STAT-CNR">
1324− <title><constant>DTV_STAT_CNR</constant></title>
1325− <para>Indicates the Signal to Noise ratio for the main carrier.</para>
1326− <para>Possible scales for this metric are:</para>
1327− <itemizedlist mark='bullet'>
1328− <listitem><para><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</para></listitem>
1329− <listitem><para><constant>FE_SCALE_DECIBEL</constant> - Signal/Noise ratio is in 0.001 dB units.</para></listitem>
1330− <listitem><para><constant>FE_SCALE_RELATIVE</constant> - The frontend provides a 0% to 100% measurement for Signal/Noise (actually, 0 to 65535).</para></listitem>
1331− </itemizedlist>
1332− </section>
1333− <section id="DTV-STAT-PRE-ERROR-BIT-COUNT">
1334− <title><constant>DTV_STAT_PRE_ERROR_BIT_COUNT</constant></title>
1335− <para>Measures the number of bit errors before the forward error correction (FEC) on the inner coding block (before Viterbi, LDPC or other inner code).</para>
1336− <para>This measure is taken during the same interval as <constant>DTV_STAT_PRE_TOTAL_BIT_COUNT</constant>.</para>
1337− <para>In order to get the BER (Bit Error Rate) measurement, it should be divided by
1338− <link linkend="DTV-STAT-PRE-TOTAL-BIT-COUNT"><constant>DTV_STAT_PRE_TOTAL_BIT_COUNT</constant></link>.</para>
1339− <para>This measurement is monotonically increased, as the frontend gets more bit count measurements.
1340− The frontend may reset it when a channel/transponder is tuned.</para>
1341− <para>Possible scales for this metric are:</para>
1342− <itemizedlist mark='bullet'>
1343− <listitem><para><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</para></listitem>
1344− <listitem><para><constant>FE_SCALE_COUNTER</constant> - Number of error bits counted before the inner coding.</para></listitem>
1345− </itemizedlist>
1346− </section>
1347− <section id="DTV-STAT-PRE-TOTAL-BIT-COUNT">
1348− <title><constant>DTV_STAT_PRE_TOTAL_BIT_COUNT</constant></title>
1349− <para>Measures the amount of bits received before the inner code block, during the same period as
1350− <link linkend="DTV-STAT-PRE-ERROR-BIT-COUNT"><constant>DTV_STAT_PRE_ERROR_BIT_COUNT</constant></link> measurement was taken.</para>
1351− <para>It should be noted that this measurement can be smaller than the total amount of bits on the transport stream,
1352− as the frontend may need to manually restart the measurement, losing some data between each measurement interval.</para>
1353− <para>This measurement is monotonically increased, as the frontend gets more bit count measurements.
1354− The frontend may reset it when a channel/transponder is tuned.</para>
1355− <para>Possible scales for this metric are:</para>
1356− <itemizedlist mark='bullet'>
1357− <listitem><para><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</para></listitem>
1358− <listitem><para><constant>FE_SCALE_COUNTER</constant> - Number of bits counted while measuring
1359− <link linkend="DTV-STAT-PRE-ERROR-BIT-COUNT"><constant>DTV_STAT_PRE_ERROR_BIT_COUNT</constant></link>.</para></listitem>
1360− </itemizedlist>
1361− </section>
1362− <section id="DTV-STAT-POST-ERROR-BIT-COUNT">
1363− <title><constant>DTV_STAT_POST_ERROR_BIT_COUNT</constant></title>
1364− <para>Measures the number of bit errors after the forward error correction (FEC) done by inner code block (after Viterbi, LDPC or other inner code).</para>
1365− <para>This measure is taken during the same interval as <constant>DTV_STAT_POST_TOTAL_BIT_COUNT</constant>.</para>
1366− <para>In order to get the BER (Bit Error Rate) measurement, it should be divided by
1367− <link linkend="DTV-STAT-POST-TOTAL-BIT-COUNT"><constant>DTV_STAT_POST_TOTAL_BIT_COUNT</constant></link>.</para>
1368− <para>This measurement is monotonically increased, as the frontend gets more bit count measurements.
1369− The frontend may reset it when a channel/transponder is tuned.</para>
1370− <para>Possible scales for this metric are:</para>
1371− <itemizedlist mark='bullet'>
1372− <listitem><para><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</para></listitem>
1373− <listitem><para><constant>FE_SCALE_COUNTER</constant> - Number of error bits counted after the inner coding.</para></listitem>
1374− </itemizedlist>
1375− </section>
1376− <section id="DTV-STAT-POST-TOTAL-BIT-COUNT">
1377− <title><constant>DTV_STAT_POST_TOTAL_BIT_COUNT</constant></title>
1378− <para>Measures the amount of bits received after the inner coding, during the same period as
1379− <link linkend="DTV-STAT-POST-ERROR-BIT-COUNT"><constant>DTV_STAT_POST_ERROR_BIT_COUNT</constant></link> measurement was taken.</para>
1380− <para>It should be noted that this measurement can be smaller than the total amount of bits on the transport stream,
1381− as the frontend may need to manually restart the measurement, losing some data between each measurement interval.</para>
1382− <para>This measurement is monotonically increased, as the frontend gets more bit count measurements.
1383− The frontend may reset it when a channel/transponder is tuned.</para>
1384− <para>Possible scales for this metric are:</para>
1385− <itemizedlist mark='bullet'>
1386− <listitem><para><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</para></listitem>
1387− <listitem><para><constant>FE_SCALE_COUNTER</constant> - Number of bits counted while measuring
1388− <link linkend="DTV-STAT-POST-ERROR-BIT-COUNT"><constant>DTV_STAT_POST_ERROR_BIT_COUNT</constant></link>.</para></listitem>
1389− </itemizedlist>
1390− </section>
1391− <section id="DTV-STAT-ERROR-BLOCK-COUNT">
1392− <title><constant>DTV_STAT_ERROR_BLOCK_COUNT</constant></title>
1393− <para>Measures the number of block errors after the outer forward error correction coding (after Reed-Solomon or other outer code).</para>
1394− <para>This measurement is monotonically increased, as the frontend gets more bit count measurements.
1395− The frontend may reset it when a channel/transponder is tuned.</para>
1396− <para>Possible scales for this metric are:</para>
1397− <itemizedlist mark='bullet'>
1398− <listitem><para><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</para></listitem>
1399− <listitem><para><constant>FE_SCALE_COUNTER</constant> - Number of error blocks counted after the outer coding.</para></listitem>
1400− </itemizedlist>
1401− </section>
1402− <section id="DTV-STAT-TOTAL-BLOCK-COUNT">
1403− <title><constant>DTV-STAT_TOTAL_BLOCK_COUNT</constant></title>
1404− <para>Measures the total number of blocks received during the same period as
1405− <link linkend="DTV-STAT-ERROR-BLOCK-COUNT"><constant>DTV_STAT_ERROR_BLOCK_COUNT</constant></link> measurement was taken.</para>
1406− <para>It can be used to calculate the PER indicator, by dividing
1407− <link linkend="DTV-STAT-ERROR-BLOCK-COUNT"><constant>DTV_STAT_ERROR_BLOCK_COUNT</constant></link>
1408− by <link linkend="DTV-STAT-TOTAL-BLOCK-COUNT"><constant>DTV-STAT-TOTAL-BLOCK-COUNT</constant></link>.</para>
1409− <para>Possible scales for this metric are:</para>
1410− <itemizedlist mark='bullet'>
1411− <listitem><para><constant>FE_SCALE_NOT_AVAILABLE</constant> - it failed to measure it, or the measurement was not complete yet.</para></listitem>
1412− <listitem><para><constant>FE_SCALE_COUNTER</constant> - Number of blocks counted while measuring
1413− <link linkend="DTV-STAT-ERROR-BLOCK-COUNT"><constant>DTV_STAT_ERROR_BLOCK_COUNT</constant></link>.</para></listitem>
1414− </itemizedlist>
1415− </section>
1416− </section>
1417−
1418− <section id="frontend-property-terrestrial-systems">
1419− <title>Properties used on terrestrial delivery systems</title>
1420− <section id="dvbt-params">
1421− <title>DVB-T delivery system</title>
1422− <para>The following parameters are valid for DVB-T:</para>
1423− <itemizedlist mark='opencircle'>
1424− <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem>
1425− <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem>
1426− <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem>
1427− <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem>
1428− <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem>
1429− <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem>
1430− <listitem><para><link linkend="DTV-BANDWIDTH-HZ"><constant>DTV_BANDWIDTH_HZ</constant></link></para></listitem>
1431− <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem>
1432− <listitem><para><link linkend="DTV-CODE-RATE-HP"><constant>DTV_CODE_RATE_HP</constant></link></para></listitem>
1433− <listitem><para><link linkend="DTV-CODE-RATE-LP"><constant>DTV_CODE_RATE_LP</constant></link></para></listitem>
1434− <listitem><para><link linkend="DTV-GUARD-INTERVAL"><constant>DTV_GUARD_INTERVAL</constant></link></para></listitem>
1435− <listitem><para><link linkend="DTV-TRANSMISSION-MODE"><constant>DTV_TRANSMISSION_MODE</constant></link></para></listitem>
1436− <listitem><para><link linkend="DTV-HIERARCHY"><constant>DTV_HIERARCHY</constant></link></para></listitem>
1437− <listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem>
1438− </itemizedlist>
1439− <para>In addition, the <link linkend="frontend-stat-properties">DTV QoS statistics</link> are also valid.</para>
1440− </section>
1441− <section id="dvbt2-params">
1442− <title>DVB-T2 delivery system</title>
1443− <para>DVB-T2 support is currently in the early stages
1444− of development, so expect that this section maygrow and become
1445− more detailed with time.</para>
1446− <para>The following parameters are valid for DVB-T2:</para>
1447− <itemizedlist mark='opencircle'>
1448− <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem>
1449− <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem>
1450− <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem>
1451− <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem>
1452− <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem>
1453− <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem>
1454− <listitem><para><link linkend="DTV-BANDWIDTH-HZ"><constant>DTV_BANDWIDTH_HZ</constant></link></para></listitem>
1455− <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem>
1456− <listitem><para><link linkend="DTV-CODE-RATE-HP"><constant>DTV_CODE_RATE_HP</constant></link></para></listitem>
1457− <listitem><para><link linkend="DTV-CODE-RATE-LP"><constant>DTV_CODE_RATE_LP</constant></link></para></listitem>
1458− <listitem><para><link linkend="DTV-GUARD-INTERVAL"><constant>DTV_GUARD_INTERVAL</constant></link></para></listitem>
1459− <listitem><para><link linkend="DTV-TRANSMISSION-MODE"><constant>DTV_TRANSMISSION_MODE</constant></link></para></listitem>
1460− <listitem><para><link linkend="DTV-HIERARCHY"><constant>DTV_HIERARCHY</constant></link></para></listitem>
1461− <listitem><para><link linkend="DTV-STREAM-ID"><constant>DTV_STREAM_ID</constant></link></para></listitem>
1462− <listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem>
1463− </itemizedlist>
1464− <para>In addition, the <link linkend="frontend-stat-properties">DTV QoS statistics</link> are also valid.</para>
1465− </section>
1466− <section id="isdbt">
1467− <title>ISDB-T delivery system</title>
1468− <para>This ISDB-T/ISDB-Tsb API extension should reflect all information
1469− needed to tune any ISDB-T/ISDB-Tsb hardware. Of course it is possible
1470− that some very sophisticated devices won't need certain parameters to
1471− tune.</para>
1472− <para>The information given here should help application writers to know how
1473− to handle ISDB-T and ISDB-Tsb hardware using the Linux DVB-API.</para>
1474− <para>The details given here about ISDB-T and ISDB-Tsb are just enough to
1475− basically show the dependencies between the needed parameter values,
1476− but surely some information is left out. For more detailed information
1477− see the following documents:</para>
1478− <para>ARIB STD-B31 - "Transmission System for Digital Terrestrial
1479− Television Broadcasting" and</para>
1480− <para>ARIB TR-B14 - "Operational Guidelines for Digital Terrestrial
1481− Television Broadcasting".</para>
1482− <para>In order to understand the ISDB specific parameters,
1483− one has to have some knowledge the channel structure in
1484− ISDB-T and ISDB-Tsb. I.e. it has to be known to
1485− the reader that an ISDB-T channel consists of 13 segments,
1486− that it can have up to 3 layer sharing those segments,
1487− and things like that.</para>
1488− <para>The following parameters are valid for ISDB-T:</para>
1489− <itemizedlist mark='opencircle'>
1490− <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem>
1491− <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem>
1492− <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem>
1493− <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem>
1494− <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem>
1495− <listitem><para><link linkend="DTV-BANDWIDTH-HZ"><constant>DTV_BANDWIDTH_HZ</constant></link></para></listitem>
1496− <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem>
1497− <listitem><para><link linkend="DTV-GUARD-INTERVAL"><constant>DTV_GUARD_INTERVAL</constant></link></para></listitem>
1498− <listitem><para><link linkend="DTV-TRANSMISSION-MODE"><constant>DTV_TRANSMISSION_MODE</constant></link></para></listitem>
1499− <listitem><para><link linkend="DTV-ISDBT-LAYER-ENABLED"><constant>DTV_ISDBT_LAYER_ENABLED</constant></link></para></listitem>
1500− <listitem><para><link linkend="DTV-ISDBT-PARTIAL-RECEPTION"><constant>DTV_ISDBT_PARTIAL_RECEPTION</constant></link></para></listitem>
1501− <listitem><para><link linkend="DTV-ISDBT-SOUND-BROADCASTING"><constant>DTV_ISDBT_SOUND_BROADCASTING</constant></link></para></listitem>
1502− <listitem><para><link linkend="DTV-ISDBT-SB-SUBCHANNEL-ID"><constant>DTV_ISDBT_SB_SUBCHANNEL_ID</constant></link></para></listitem>
1503− <listitem><para><link linkend="DTV-ISDBT-SB-SEGMENT-IDX"><constant>DTV_ISDBT_SB_SEGMENT_IDX</constant></link></para></listitem>
1504− <listitem><para><link linkend="DTV-ISDBT-SB-SEGMENT-COUNT"><constant>DTV_ISDBT_SB_SEGMENT_COUNT</constant></link></para></listitem>
1505− <listitem><para><link linkend="DTV-ISDBT-LAYER-FEC"><constant>DTV_ISDBT_LAYERA_FEC</constant></link></para></listitem>
1506− <listitem><para><link linkend="DTV-ISDBT-LAYER-MODULATION"><constant>DTV_ISDBT_LAYERA_MODULATION</constant></link></para></listitem>
1507− <listitem><para><link linkend="DTV-ISDBT-LAYER-SEGMENT-COUNT"><constant>DTV_ISDBT_LAYERA_SEGMENT_COUNT</constant></link></para></listitem>
1508− <listitem><para><link linkend="DTV-ISDBT-LAYER-TIME-INTERLEAVING"><constant>DTV_ISDBT_LAYERA_TIME_INTERLEAVING</constant></link></para></listitem>
1509− <listitem><para><link linkend="DTV-ISDBT-LAYER-FEC"><constant>DTV_ISDBT_LAYERB_FEC</constant></link></para></listitem>
1510− <listitem><para><link linkend="DTV-ISDBT-LAYER-MODULATION"><constant>DTV_ISDBT_LAYERB_MODULATION</constant></link></para></listitem>
1511− <listitem><para><link linkend="DTV-ISDBT-LAYER-SEGMENT-COUNT"><constant>DTV_ISDBT_LAYERB_SEGMENT_COUNT</constant></link></para></listitem>
1512− <listitem><para><link linkend="DTV-ISDBT-LAYER-TIME-INTERLEAVING"><constant>DTV_ISDBT_LAYERB_TIME_INTERLEAVING</constant></link></para></listitem>
1513− <listitem><para><link linkend="DTV-ISDBT-LAYER-FEC"><constant>DTV_ISDBT_LAYERC_FEC</constant></link></para></listitem>
1514− <listitem><para><link linkend="DTV-ISDBT-LAYER-MODULATION"><constant>DTV_ISDBT_LAYERC_MODULATION</constant></link></para></listitem>
1515− <listitem><para><link linkend="DTV-ISDBT-LAYER-SEGMENT-COUNT"><constant>DTV_ISDBT_LAYERC_SEGMENT_COUNT</constant></link></para></listitem>
1516− <listitem><para><link linkend="DTV-ISDBT-LAYER-TIME-INTERLEAVING"><constant>DTV_ISDBT_LAYERC_TIME_INTERLEAVING</constant></link></para></listitem>
1517− </itemizedlist>
1518− <para>In addition, the <link linkend="frontend-stat-properties">DTV QoS statistics</link> are also valid.</para>
1519− </section>
1520− <section id="atsc-params">
1521− <title>ATSC delivery system</title>
1522− <para>The following parameters are valid for ATSC:</para>
1523− <itemizedlist mark='opencircle'>
1524− <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem>
1525− <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem>
1526− <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem>
1527− <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem>
1528− <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem>
1529− <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem>
1530− <listitem><para><link linkend="DTV-BANDWIDTH-HZ"><constant>DTV_BANDWIDTH_HZ</constant></link></para></listitem>
1531− </itemizedlist>
1532− <para>In addition, the <link linkend="frontend-stat-properties">DTV QoS statistics</link> are also valid.</para>
1533− </section>
1534− <section id="atscmh-params">
1535− <title>ATSC-MH delivery system</title>
1536− <para>The following parameters are valid for ATSC-MH:</para>
1537− <itemizedlist mark='opencircle'>
1538− <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem>
1539− <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem>
1540− <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem>
1541− <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem>
1542− <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem>
1543− <listitem><para><link linkend="DTV-BANDWIDTH-HZ"><constant>DTV_BANDWIDTH_HZ</constant></link></para></listitem>
1544− <listitem><para><link linkend="DTV-ATSCMH-FIC-VER"><constant>DTV_ATSCMH_FIC_VER</constant></link></para></listitem>
1545− <listitem><para><link linkend="DTV-ATSCMH-PARADE-ID"><constant>DTV_ATSCMH_PARADE_ID</constant></link></para></listitem>
1546− <listitem><para><link linkend="DTV-ATSCMH-NOG"><constant>DTV_ATSCMH_NOG</constant></link></para></listitem>
1547− <listitem><para><link linkend="DTV-ATSCMH-TNOG"><constant>DTV_ATSCMH_TNOG</constant></link></para></listitem>
1548− <listitem><para><link linkend="DTV-ATSCMH-SGN"><constant>DTV_ATSCMH_SGN</constant></link></para></listitem>
1549− <listitem><para><link linkend="DTV-ATSCMH-PRC"><constant>DTV_ATSCMH_PRC</constant></link></para></listitem>
1550− <listitem><para><link linkend="DTV-ATSCMH-RS-FRAME-MODE"><constant>DTV_ATSCMH_RS_FRAME_MODE</constant></link></para></listitem>
1551− <listitem><para><link linkend="DTV-ATSCMH-RS-FRAME-ENSEMBLE"><constant>DTV_ATSCMH_RS_FRAME_ENSEMBLE</constant></link></para></listitem>
1552− <listitem><para><link linkend="DTV-ATSCMH-RS-CODE-MODE-PRI"><constant>DTV_ATSCMH_RS_CODE_MODE_PRI</constant></link></para></listitem>
1553− <listitem><para><link linkend="DTV-ATSCMH-RS-CODE-MODE-SEC"><constant>DTV_ATSCMH_RS_CODE_MODE_SEC</constant></link></para></listitem>
1554− <listitem><para><link linkend="DTV-ATSCMH-SCCC-BLOCK-MODE"><constant>DTV_ATSCMH_SCCC_BLOCK_MODE</constant></link></para></listitem>
1555− <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE-MODE-A"><constant>DTV_ATSCMH_SCCC_CODE_MODE_A</constant></link></para></listitem>
1556− <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE-MODE-B"><constant>DTV_ATSCMH_SCCC_CODE_MODE_B</constant></link></para></listitem>
1557− <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE-MODE-C"><constant>DTV_ATSCMH_SCCC_CODE_MODE_C</constant></link></para></listitem>
1558− <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE-MODE-D"><constant>DTV_ATSCMH_SCCC_CODE_MODE_D</constant></link></para></listitem>
1559− </itemizedlist>
1560− <para>In addition, the <link linkend="frontend-stat-properties">DTV QoS statistics</link> are also valid.</para>
1561− </section>
1562− <section id="dtmb-params">
1563− <title>DTMB delivery system</title>
1564− <para>The following parameters are valid for DTMB:</para>
1565− <itemizedlist mark='opencircle'>
1566− <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem>
1567− <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem>
1568− <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem>
1569− <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem>
1570− <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem>
1571− <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem>
1572− <listitem><para><link linkend="DTV-BANDWIDTH-HZ"><constant>DTV_BANDWIDTH_HZ</constant></link></para></listitem>
1573− <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem>
1574− <listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem>
1575− <listitem><para><link linkend="DTV-GUARD-INTERVAL"><constant>DTV_GUARD_INTERVAL</constant></link></para></listitem>
1576− <listitem><para><link linkend="DTV-TRANSMISSION-MODE"><constant>DTV_TRANSMISSION_MODE</constant></link></para></listitem>
1577− <listitem><para><link linkend="DTV-INTERLEAVING"><constant>DTV_INTERLEAVING</constant></link></para></listitem>
1578− <listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem>
1579− </itemizedlist>
1580− <para>In addition, the <link linkend="frontend-stat-properties">DTV QoS statistics</link> are also valid.</para>
1581− </section>
1582− </section>
1583− <section id="frontend-property-cable-systems">
1584− <title>Properties used on cable delivery systems</title>
1585− <section id="dvbc-params">
1586− <title>DVB-C delivery system</title>
1587− <para>The DVB-C Annex-A is the widely used cable standard. Transmission uses QAM modulation.</para>
1588− <para>The DVB-C Annex-C is optimized for 6MHz, and is used in Japan. It supports a subset of the Annex A modulation types, and a roll-off of 0.13, instead of 0.15</para>
1589− <para>The following parameters are valid for DVB-C Annex A/C:</para>
1590− <itemizedlist mark='opencircle'>
1591− <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem>
1592− <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem>
1593− <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem>
1594− <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem>
1595− <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem>
1596− <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem>
1597− <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem>
1598− <listitem><para><link linkend="DTV-SYMBOL-RATE"><constant>DTV_SYMBOL_RATE</constant></link></para></listitem>
1599− <listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem>
1600− <listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem>
1601− </itemizedlist>
1602− <para>In addition, the <link linkend="frontend-stat-properties">DTV QoS statistics</link> are also valid.</para>
1603− </section>
1604− <section id="dvbc-annex-b-params">
1605− <title>DVB-C Annex B delivery system</title>
1606− <para>The DVB-C Annex-B is only used on a few Countries like the United States.</para>
1607− <para>The following parameters are valid for DVB-C Annex B:</para>
1608− <itemizedlist mark='opencircle'>
1609− <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem>
1610− <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem>
1611− <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem>
1612− <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem>
1613− <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem>
1614− <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem>
1615− <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem>
1616− <listitem><para><link linkend="DTV-LNA"><constant>DTV_LNA</constant></link></para></listitem>
1617− </itemizedlist>
1618− <para>In addition, the <link linkend="frontend-stat-properties">DTV QoS statistics</link> are also valid.</para>
1619− </section>
1620− </section>
1621− <section id="frontend-property-satellite-systems">
1622− <title>Properties used on satellite delivery systems</title>
1623− <section id="dvbs-params">
1624− <title>DVB-S delivery system</title>
1625− <para>The following parameters are valid for DVB-S:</para>
1626− <itemizedlist mark='opencircle'>
1627− <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem>
1628− <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem>
1629− <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem>
1630− <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem>
1631− <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem>
1632− <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem>
1633− <listitem><para><link linkend="DTV-SYMBOL-RATE"><constant>DTV_SYMBOL_RATE</constant></link></para></listitem>
1634− <listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem>
1635− <listitem><para><link linkend="DTV-VOLTAGE"><constant>DTV_VOLTAGE</constant></link></para></listitem>
1636− <listitem><para><link linkend="DTV-TONE"><constant>DTV_TONE</constant></link></para></listitem>
1637− </itemizedlist>
1638− <para>In addition, the <link linkend="frontend-stat-properties">DTV QoS statistics</link> are also valid.</para>
1639− <para>Future implementations might add those two missing parameters:</para>
1640− <itemizedlist mark='opencircle'>
1641− <listitem><para><link linkend="DTV-DISEQC-MASTER"><constant>DTV_DISEQC_MASTER</constant></link></para></listitem>
1642− <listitem><para><link linkend="DTV-DISEQC-SLAVE-REPLY"><constant>DTV_DISEQC_SLAVE_REPLY</constant></link></para></listitem>
1643− </itemizedlist>
1644− </section>
1645− <section id="dvbs2-params">
1646− <title>DVB-S2 delivery system</title>
1647− <para>In addition to all parameters valid for DVB-S, DVB-S2 supports the following parameters:</para>
1648− <itemizedlist mark='opencircle'>
1649− <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem>
1650− <listitem><para><link linkend="DTV-PILOT"><constant>DTV_PILOT</constant></link></para></listitem>
1651− <listitem><para><link linkend="DTV-ROLLOFF"><constant>DTV_ROLLOFF</constant></link></para></listitem>
1652− <listitem><para><link linkend="DTV-STREAM-ID"><constant>DTV_STREAM_ID</constant></link></para></listitem>
1653− </itemizedlist>
1654− <para>In addition, the <link linkend="frontend-stat-properties">DTV QoS statistics</link> are also valid.</para>
1655− </section>
1656− <section id="turbo-params">
1657− <title>Turbo code delivery system</title>
1658− <para>In addition to all parameters valid for DVB-S, turbo code supports the following parameters:</para>
1659− <itemizedlist mark='opencircle'>
1660− <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem>
1661− </itemizedlist>
1662− </section>
1663− <section id="isdbs-params">
1664− <title>ISDB-S delivery system</title>
1665− <para>The following parameters are valid for ISDB-S:</para>
1666− <itemizedlist mark='opencircle'>
1667− <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem>
1668− <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem>
1669− <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem>
1670− <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem>
1671− <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem>
1672− <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem>
1673− <listitem><para><link linkend="DTV-SYMBOL-RATE"><constant>DTV_SYMBOL_RATE</constant></link></para></listitem>
1674− <listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem>
1675− <listitem><para><link linkend="DTV-VOLTAGE"><constant>DTV_VOLTAGE</constant></link></para></listitem>
1676− <listitem><para><link linkend="DTV-STREAM-ID"><constant>DTV_STREAM_ID</constant></link></para></listitem>
1677− </itemizedlist>
1678− </section>
1679− </section>
1680−</section>
Documentation/DocBook/media/dvb/dvbstb.pdf+0−0

Binary file not shown.

Documentation/DocBook/media/dvb/examples.xml+0−367
@@ -1,367 +0,0 @@
1−<title>Examples</title>
2−<para>In this section we would like to present some examples for using the DVB API.
3−</para>
4−<para>NOTE: This section is out of date, and the code below won't even
5− compile. Please refer to the
6− <ulink url="https://linuxtv.org/docs/libdvbv5/index.html">libdvbv5</ulink>
7− for updated/recommended examples.
8−</para>
9−
10−<section id="tuning">
11−<title>Tuning</title>
12−<para>We will start with a generic tuning subroutine that uses the frontend and SEC, as well as
13−the demux devices. The example is given for QPSK tuners, but can easily be adjusted for
14−QAM.
15−</para>
16−<programlisting>
17− #include &#x003C;sys/ioctl.h&#x003E;
18− #include &#x003C;stdio.h&#x003E;
19− #include &#x003C;stdint.h&#x003E;
20− #include &#x003C;sys/types.h&#x003E;
21− #include &#x003C;sys/stat.h&#x003E;
22− #include &#x003C;fcntl.h&#x003E;
23− #include &#x003C;time.h&#x003E;
24− #include &#x003C;unistd.h&#x003E;
25−
26− #include &#x003C;linux/dvb/dmx.h&#x003E;
27− #include &#x003C;linux/dvb/frontend.h&#x003E;
28− #include &#x003C;linux/dvb/sec.h&#x003E;
29− #include &#x003C;sys/poll.h&#x003E;
30−
31− #define DMX "/dev/dvb/adapter0/demux1"
32− #define FRONT "/dev/dvb/adapter0/frontend1"
33− #define SEC "/dev/dvb/adapter0/sec1"
34−
35− /&#x22C6; routine for checking if we have a signal and other status information&#x22C6;/
36− int FEReadStatus(int fd, fe_status_t &#x22C6;stat)
37− {
38− int ans;
39−
40− if ( (ans = ioctl(fd,FE_READ_STATUS,stat) &#x003C; 0)){
41− perror("FE READ STATUS: ");
42− return -1;
43− }
44−
45− if (&#x22C6;stat &amp; FE_HAS_POWER)
46− printf("FE HAS POWER\n");
47−
48− if (&#x22C6;stat &amp; FE_HAS_SIGNAL)
49− printf("FE HAS SIGNAL\n");
50−
51− if (&#x22C6;stat &amp; FE_SPECTRUM_INV)
52− printf("SPEKTRUM INV\n");
53−
54− return 0;
55− }
56−
57−
58− /&#x22C6; tune qpsk &#x22C6;/
59− /&#x22C6; freq: frequency of transponder &#x22C6;/
60− /&#x22C6; vpid, apid, tpid: PIDs of video, audio and teletext TS packets &#x22C6;/
61− /&#x22C6; diseqc: DiSEqC address of the used LNB &#x22C6;/
62− /&#x22C6; pol: Polarisation &#x22C6;/
63− /&#x22C6; srate: Symbol Rate &#x22C6;/
64− /&#x22C6; fec. FEC &#x22C6;/
65− /&#x22C6; lnb_lof1: local frequency of lower LNB band &#x22C6;/
66− /&#x22C6; lnb_lof2: local frequency of upper LNB band &#x22C6;/
67− /&#x22C6; lnb_slof: switch frequency of LNB &#x22C6;/
68−
69− int set_qpsk_channel(int freq, int vpid, int apid, int tpid,
70− int diseqc, int pol, int srate, int fec, int lnb_lof1,
71− int lnb_lof2, int lnb_slof)
72− {
73− struct secCommand scmd;
74− struct secCmdSequence scmds;
75− struct dmx_pes_filter_params pesFilterParams;
76− FrontendParameters frp;
77− struct pollfd pfd[1];
78− FrontendEvent event;
79− int demux1, demux2, demux3, front;
80−
81− frequency = (uint32_t) freq;
82− symbolrate = (uint32_t) srate;
83−
84− if((front = open(FRONT,O_RDWR)) &#x003C; 0){
85− perror("FRONTEND DEVICE: ");
86− return -1;
87− }
88−
89− if((sec = open(SEC,O_RDWR)) &#x003C; 0){
90− perror("SEC DEVICE: ");
91− return -1;
92− }
93−
94− if (demux1 &#x003C; 0){
95− if ((demux1=open(DMX, O_RDWR|O_NONBLOCK))
96− &#x003C; 0){
97− perror("DEMUX DEVICE: ");
98− return -1;
99− }
100− }
101−
102− if (demux2 &#x003C; 0){
103− if ((demux2=open(DMX, O_RDWR|O_NONBLOCK))
104− &#x003C; 0){
105− perror("DEMUX DEVICE: ");
106− return -1;
107− }
108− }
109−
110− if (demux3 &#x003C; 0){
111− if ((demux3=open(DMX, O_RDWR|O_NONBLOCK))
112− &#x003C; 0){
113− perror("DEMUX DEVICE: ");
114− return -1;
115− }
116− }
117−
118− if (freq &#x003C; lnb_slof) {
119− frp.Frequency = (freq - lnb_lof1);
120− scmds.continuousTone = SEC_TONE_OFF;
121− } else {
122− frp.Frequency = (freq - lnb_lof2);
123− scmds.continuousTone = SEC_TONE_ON;
124− }
125− frp.Inversion = INVERSION_AUTO;
126− if (pol) scmds.voltage = SEC_VOLTAGE_18;
127− else scmds.voltage = SEC_VOLTAGE_13;
128−
129− scmd.type=0;
130− scmd.u.diseqc.addr=0x10;
131− scmd.u.diseqc.cmd=0x38;
132− scmd.u.diseqc.numParams=1;
133− scmd.u.diseqc.params[0] = 0xF0 | ((diseqc &#x22C6; 4) &amp; 0x0F) |
134− (scmds.continuousTone == SEC_TONE_ON ? 1 : 0) |
135− (scmds.voltage==SEC_VOLTAGE_18 ? 2 : 0);
136−
137− scmds.miniCommand=SEC_MINI_NONE;
138− scmds.numCommands=1;
139− scmds.commands=&amp;scmd;
140− if (ioctl(sec, SEC_SEND_SEQUENCE, &amp;scmds) &#x003C; 0){
141− perror("SEC SEND: ");
142− return -1;
143− }
144−
145− if (ioctl(sec, SEC_SEND_SEQUENCE, &amp;scmds) &#x003C; 0){
146− perror("SEC SEND: ");
147− return -1;
148− }
149−
150− frp.u.qpsk.SymbolRate = srate;
151− frp.u.qpsk.FEC_inner = fec;
152−
153− if (ioctl(front, FE_SET_FRONTEND, &amp;frp) &#x003C; 0){
154− perror("QPSK TUNE: ");
155− return -1;
156− }
157−
158− pfd[0].fd = front;
159− pfd[0].events = POLLIN;
160−
161− if (poll(pfd,1,3000)){
162− if (pfd[0].revents &amp; POLLIN){
163− printf("Getting QPSK event\n");
164− if ( ioctl(front, FE_GET_EVENT, &amp;event)
165−
166− == -EOVERFLOW){
167− perror("qpsk get event");
168− return -1;
169− }
170− printf("Received ");
171− switch(event.type){
172− case FE_UNEXPECTED_EV:
173− printf("unexpected event\n");
174− return -1;
175− case FE_FAILURE_EV:
176− printf("failure event\n");
177− return -1;
178−
179− case FE_COMPLETION_EV:
180− printf("completion event\n");
181− }
182− }
183− }
184−
185−
186− pesFilterParams.pid = vpid;
187− pesFilterParams.input = DMX_IN_FRONTEND;
188− pesFilterParams.output = DMX_OUT_DECODER;
189− pesFilterParams.pes_type = DMX_PES_VIDEO;
190− pesFilterParams.flags = DMX_IMMEDIATE_START;
191− if (ioctl(demux1, DMX_SET_PES_FILTER, &amp;pesFilterParams) &#x003C; 0){
192− perror("set_vpid");
193− return -1;
194− }
195−
196− pesFilterParams.pid = apid;
197− pesFilterParams.input = DMX_IN_FRONTEND;
198− pesFilterParams.output = DMX_OUT_DECODER;
199− pesFilterParams.pes_type = DMX_PES_AUDIO;
200− pesFilterParams.flags = DMX_IMMEDIATE_START;
201− if (ioctl(demux2, DMX_SET_PES_FILTER, &amp;pesFilterParams) &#x003C; 0){
202− perror("set_apid");
203− return -1;
204− }
205−
206− pesFilterParams.pid = tpid;
207− pesFilterParams.input = DMX_IN_FRONTEND;
208− pesFilterParams.output = DMX_OUT_DECODER;
209− pesFilterParams.pes_type = DMX_PES_TELETEXT;
210− pesFilterParams.flags = DMX_IMMEDIATE_START;
211− if (ioctl(demux3, DMX_SET_PES_FILTER, &amp;pesFilterParams) &#x003C; 0){
212− perror("set_tpid");
213− return -1;
214− }
215−
216− return has_signal(fds);
217− }
218−
219−</programlisting>
220−<para>The program assumes that you are using a universal LNB and a standard DiSEqC
221−switch with up to 4 addresses. Of course, you could build in some more checking if
222−tuning was successful and maybe try to repeat the tuning process. Depending on the
223−external hardware, i.e. LNB and DiSEqC switch, and weather conditions this may be
224−necessary.
225−</para>
226−</section>
227−
228−<section id="the_dvr_device">
229−<title>The DVR device</title>
230−<para>The following program code shows how to use the DVR device for recording.
231−</para>
232−<programlisting>
233− #include &#x003C;sys/ioctl.h&#x003E;
234− #include &#x003C;stdio.h&#x003E;
235− #include &#x003C;stdint.h&#x003E;
236− #include &#x003C;sys/types.h&#x003E;
237− #include &#x003C;sys/stat.h&#x003E;
238− #include &#x003C;fcntl.h&#x003E;
239− #include &#x003C;time.h&#x003E;
240− #include &#x003C;unistd.h&#x003E;
241−
242− #include &#x003C;linux/dvb/dmx.h&#x003E;
243− #include &#x003C;linux/dvb/video.h&#x003E;
244− #include &#x003C;sys/poll.h&#x003E;
245− #define DVR "/dev/dvb/adapter0/dvr1"
246− #define AUDIO "/dev/dvb/adapter0/audio1"
247− #define VIDEO "/dev/dvb/adapter0/video1"
248−
249− #define BUFFY (188&#x22C6;20)
250− #define MAX_LENGTH (1024&#x22C6;1024&#x22C6;5) /&#x22C6; record 5MB &#x22C6;/
251−
252−
253− /&#x22C6; switch the demuxes to recording, assuming the transponder is tuned &#x22C6;/
254−
255− /&#x22C6; demux1, demux2: file descriptor of video and audio filters &#x22C6;/
256− /&#x22C6; vpid, apid: PIDs of video and audio channels &#x22C6;/
257−
258− int switch_to_record(int demux1, int demux2, uint16_t vpid, uint16_t apid)
259− {
260− struct dmx_pes_filter_params pesFilterParams;
261−
262− if (demux1 &#x003C; 0){
263− if ((demux1=open(DMX, O_RDWR|O_NONBLOCK))
264− &#x003C; 0){
265− perror("DEMUX DEVICE: ");
266− return -1;
267− }
268− }
269−
270− if (demux2 &#x003C; 0){
271− if ((demux2=open(DMX, O_RDWR|O_NONBLOCK))
272− &#x003C; 0){
273− perror("DEMUX DEVICE: ");
274− return -1;
275− }
276− }
277−
278− pesFilterParams.pid = vpid;
279− pesFilterParams.input = DMX_IN_FRONTEND;
280− pesFilterParams.output = DMX_OUT_TS_TAP;
281− pesFilterParams.pes_type = DMX_PES_VIDEO;
282− pesFilterParams.flags = DMX_IMMEDIATE_START;
283− if (ioctl(demux1, DMX_SET_PES_FILTER, &amp;pesFilterParams) &#x003C; 0){
284− perror("DEMUX DEVICE");
285− return -1;
286− }
287− pesFilterParams.pid = apid;
288− pesFilterParams.input = DMX_IN_FRONTEND;
289− pesFilterParams.output = DMX_OUT_TS_TAP;
290− pesFilterParams.pes_type = DMX_PES_AUDIO;
291− pesFilterParams.flags = DMX_IMMEDIATE_START;
292− if (ioctl(demux2, DMX_SET_PES_FILTER, &amp;pesFilterParams) &#x003C; 0){
293− perror("DEMUX DEVICE");
294− return -1;
295− }
296− return 0;
297− }
298−
299− /&#x22C6; start recording MAX_LENGTH , assuming the transponder is tuned &#x22C6;/
300−
301− /&#x22C6; demux1, demux2: file descriptor of video and audio filters &#x22C6;/
302− /&#x22C6; vpid, apid: PIDs of video and audio channels &#x22C6;/
303− int record_dvr(int demux1, int demux2, uint16_t vpid, uint16_t apid)
304− {
305− int i;
306− int len;
307− int written;
308− uint8_t buf[BUFFY];
309− uint64_t length;
310− struct pollfd pfd[1];
311− int dvr, dvr_out;
312−
313− /&#x22C6; open dvr device &#x22C6;/
314− if ((dvr = open(DVR, O_RDONLY|O_NONBLOCK)) &#x003C; 0){
315− perror("DVR DEVICE");
316− return -1;
317− }
318−
319− /&#x22C6; switch video and audio demuxes to dvr &#x22C6;/
320− printf ("Switching dvr on\n");
321− i = switch_to_record(demux1, demux2, vpid, apid);
322− printf("finished: ");
323−
324− printf("Recording %2.0f MB of test file in TS format\n",
325− MAX_LENGTH/(1024.0&#x22C6;1024.0));
326− length = 0;
327−
328− /&#x22C6; open output file &#x22C6;/
329− if ((dvr_out = open(DVR_FILE,O_WRONLY|O_CREAT
330− |O_TRUNC, S_IRUSR|S_IWUSR
331− |S_IRGRP|S_IWGRP|S_IROTH|
332− S_IWOTH)) &#x003C; 0){
333− perror("Can't open file for dvr test");
334− return -1;
335− }
336−
337− pfd[0].fd = dvr;
338− pfd[0].events = POLLIN;
339−
340− /&#x22C6; poll for dvr data and write to file &#x22C6;/
341− while (length &#x003C; MAX_LENGTH ) {
342− if (poll(pfd,1,1)){
343− if (pfd[0].revents &amp; POLLIN){
344− len = read(dvr, buf, BUFFY);
345− if (len &#x003C; 0){
346− perror("recording");
347− return -1;
348− }
349− if (len &#x003E; 0){
350− written = 0;
351− while (written &#x003C; len)
352− written +=
353− write (dvr_out,
354− buf, len);
355− length += len;
356− printf("written %2.0f MB\r",
357− length/1024./1024.);
358− }
359− }
360− }
361− }
362− return 0;
363− }
364−
365−</programlisting>
366−
367−</section>
Documentation/DocBook/media/dvb/fe-diseqc-recv-slave-reply.xml+0−78
@@ -1,78 +0,0 @@
1−<refentry id="FE_DISEQC_RECV_SLAVE_REPLY">
2− <refmeta>
3− <refentrytitle>ioctl FE_DISEQC_RECV_SLAVE_REPLY</refentrytitle>
4− &manvol;
5− </refmeta>
6−
7− <refnamediv>
8− <refname>FE_DISEQC_RECV_SLAVE_REPLY</refname>
9− <refpurpose>Receives reply from a DiSEqC 2.0 command</refpurpose>
10− </refnamediv>
11−
12− <refsynopsisdiv>
13− <funcsynopsis>
14− <funcprototype>
15− <funcdef>int <function>ioctl</function></funcdef>
16− <paramdef>int <parameter>fd</parameter></paramdef>
17− <paramdef>int <parameter>request</parameter></paramdef>
18− <paramdef>struct dvb_diseqc_slave_reply *<parameter>argp</parameter></paramdef>
19− </funcprototype>
20− </funcsynopsis>
21− </refsynopsisdiv>
22−
23− <refsect1>
24− <title>Arguments</title>
25− <variablelist>
26− <varlistentry>
27− <term><parameter>fd</parameter></term>
28− <listitem>
29− <para>&fe_fd;</para>
30− </listitem>
31− </varlistentry>
32− <varlistentry>
33− <term><parameter>request</parameter></term>
34− <listitem>
35− <para>FE_DISEQC_RECV_SLAVE_REPLY</para>
36− </listitem>
37− </varlistentry>
38− <varlistentry>
39− <term><parameter>argp</parameter></term>
40− <listitem>
41− <para>pointer to &dvb-diseqc-slave-reply;</para>
42− </listitem>
43− </varlistentry>
44− </variablelist>
45− </refsect1>
46−
47− <refsect1>
48− <title>Description</title>
49−
50− <para>Receives reply from a DiSEqC 2.0 command.</para>
51−&return-value-dvb;
52−
53−<table pgwide="1" frame="none" id="dvb-diseqc-slave-reply">
54− <title>struct <structname>dvb_diseqc_slave_reply</structname></title>
55− <tgroup cols="3">
56− &cs-str;
57− <tbody valign="top">
58− <row>
59− <entry>uint8_t</entry>
60− <entry>msg[4]</entry>
61− <entry>DiSEqC message (framing, data[3])</entry>
62− </row><row>
63− <entry>uint8_t</entry>
64− <entry>msg_len</entry>
65− <entry>Length of the DiSEqC message. Valid values are 0 to 4,
66− where 0 means no msg</entry>
67− </row><row>
68− <entry>int</entry>
69− <entry>timeout</entry>
70− <entry>Return from ioctl after timeout ms with errorcode when no
71− message was received</entry>
72− </row>
73− </tbody>
74− </tgroup>
75−</table>
76−
77−</refsect1>
78−</refentry>
Documentation/DocBook/media/dvb/fe-diseqc-reset-overload.xml+0−51
@@ -1,51 +0,0 @@
1−<refentry id="FE_DISEQC_RESET_OVERLOAD">
2− <refmeta>
3− <refentrytitle>ioctl FE_DISEQC_RESET_OVERLOAD</refentrytitle>
4− &manvol;
5− </refmeta>
6−
7− <refnamediv>
8− <refname>FE_DISEQC_RESET_OVERLOAD</refname>
9− <refpurpose>Restores the power to the antenna subsystem, if it was powered
10− off due to power overload.</refpurpose>
11− </refnamediv>
12−
13− <refsynopsisdiv>
14− <funcsynopsis>
15− <funcprototype>
16− <funcdef>int <function>ioctl</function></funcdef>
17− <paramdef>int <parameter>fd</parameter></paramdef>
18− <paramdef>int <parameter>request</parameter></paramdef>
19− <paramdef>NULL</paramdef>
20− </funcprototype>
21− </funcsynopsis>
22− </refsynopsisdiv>
23−
24− <refsect1>
25− <title>Arguments</title>
26− <variablelist>
27− <varlistentry>
28− <term><parameter>fd</parameter></term>
29− <listitem>
30− <para>&fe_fd;</para>
31− </listitem>
32− </varlistentry>
33− <varlistentry>
34− <term><parameter>request</parameter></term>
35− <listitem>
36− <para>FE_DISEQC_RESET_OVERLOAD</para>
37− </listitem>
38− </varlistentry>
39− </variablelist>
40− </refsect1>
41−
42− <refsect1>
43− <title>Description</title>
44−
45− <para>If the bus has been automatically powered off due to power overload, this ioctl
46− call restores the power to the bus. The call requires read/write access to the
47− device. This call has no effect if the device is manually powered off. Not all
48− DVB adapters support this ioctl.</para>
49−&return-value-dvb;
50−</refsect1>
51−</refentry>
Documentation/DocBook/media/dvb/fe-diseqc-send-burst.xml+0−89
@@ -1,89 +0,0 @@
1−<refentry id="FE_DISEQC_SEND_BURST">
2− <refmeta>
3− <refentrytitle>ioctl FE_DISEQC_SEND_BURST</refentrytitle>
4− &manvol;
5− </refmeta>
6−
7− <refnamediv>
8− <refname>FE_DISEQC_SEND_BURST</refname>
9− <refpurpose>Sends a 22KHz tone burst for 2x1 mini DiSEqC satellite selection.</refpurpose>
10− </refnamediv>
11−
12− <refsynopsisdiv>
13− <funcsynopsis>
14− <funcprototype>
15− <funcdef>int <function>ioctl</function></funcdef>
16− <paramdef>int <parameter>fd</parameter></paramdef>
17− <paramdef>int <parameter>request</parameter></paramdef>
18− <paramdef>enum fe_sec_mini_cmd *<parameter>tone</parameter></paramdef>
19− </funcprototype>
20− </funcsynopsis>
21− </refsynopsisdiv>
22−
23− <refsect1>
24− <title>Arguments</title>
25− <variablelist>
26− <varlistentry>
27− <term><parameter>fd</parameter></term>
28− <listitem>
29− <para>&fe_fd;</para>
30− </listitem>
31− </varlistentry>
32− <varlistentry>
33− <term><parameter>request</parameter></term>
34− <listitem>
35− <para>FE_DISEQC_SEND_BURST</para>
36− </listitem>
37− </varlistentry>
38− <varlistentry>
39− <term><parameter>tone</parameter></term>
40− <listitem>
41− <para>pointer to &fe-sec-mini-cmd;</para>
42− </listitem>
43− </varlistentry>
44− </variablelist>
45− </refsect1>
46−
47− <refsect1>
48− <title>Description</title>
49−
50−<para>This ioctl is used to set the generation of a 22kHz tone burst for mini
51− DiSEqC satellite
52− selection for 2x1 switches.
53− This call requires read/write permissions.</para>
54−<para>It provides support for what's specified at
55− <ulink url="http://www.eutelsat.com/files/contributed/satellites/pdf/Diseqc/associated%20docs/simple_tone_burst_detec.pdf">Digital Satellite Equipment Control
56− (DiSEqC) - Simple "ToneBurst" Detection Circuit specification.</ulink>
57− </para>
58−&return-value-dvb;
59−</refsect1>
60−
61−<refsect1 id="fe-sec-mini-cmd-t">
62−<title>enum fe_sec_mini_cmd</title>
63−
64−<table pgwide="1" frame="none" id="fe-sec-mini-cmd">
65− <title>enum fe_sec_mini_cmd</title>
66− <tgroup cols="2">
67− &cs-def;
68− <thead>
69− <row>
70− <entry>ID</entry>
71− <entry>Description</entry>
72− </row>
73− </thead>
74− <tbody valign="top">
75− <row>
76− <entry align="char" id="SEC-MINI-A"><constant>SEC_MINI_A</constant></entry>
77− <entry align="char">Sends a mini-DiSEqC 22kHz '0' Tone Burst to
78− select satellite-A</entry>
79− </row><row>
80− <entry align="char" id="SEC-MINI-B"><constant>SEC_MINI_B</constant></entry>
81− <entry align="char">Sends a mini-DiSEqC 22kHz '1' Data Burst to
82− select satellite-B</entry>
83− </row>
84− </tbody>
85− </tgroup>
86−</table>
87−</refsect1>
88−
89−</refentry>
Documentation/DocBook/media/dvb/fe-diseqc-send-master-cmd.xml+0−72
@@ -1,72 +0,0 @@
1−<refentry id="FE_DISEQC_SEND_MASTER_CMD">
2− <refmeta>
3− <refentrytitle>ioctl FE_DISEQC_SEND_MASTER_CMD</refentrytitle>
4− &manvol;
5− </refmeta>
6−
7− <refnamediv>
8− <refname>FE_DISEQC_SEND_MASTER_CMD</refname>
9− <refpurpose>Sends a DiSEqC command</refpurpose>
10− </refnamediv>
11−
12− <refsynopsisdiv>
13− <funcsynopsis>
14− <funcprototype>
15− <funcdef>int <function>ioctl</function></funcdef>
16− <paramdef>int <parameter>fd</parameter></paramdef>
17− <paramdef>int <parameter>request</parameter></paramdef>
18− <paramdef>struct dvb_diseqc_master_cmd *<parameter>argp</parameter></paramdef>
19− </funcprototype>
20− </funcsynopsis>
21− </refsynopsisdiv>
22−
23− <refsect1>
24− <title>Arguments</title>
25− <variablelist>
26− <varlistentry>
27− <term><parameter>fd</parameter></term>
28− <listitem>
29− <para>&fe_fd;</para>
30− </listitem>
31− </varlistentry>
32− <varlistentry>
33− <term><parameter>request</parameter></term>
34− <listitem>
35− <para>FE_DISEQC_SEND_MASTER_CMD</para>
36− </listitem>
37− </varlistentry>
38− <varlistentry>
39− <term><parameter>argp</parameter></term>
40− <listitem>
41− <para>pointer to &dvb-diseqc-master-cmd;</para>
42− </listitem>
43− </varlistentry>
44− </variablelist>
45− </refsect1>
46−
47− <refsect1>
48− <title>Description</title>
49−
50− <para>Sends a DiSEqC command to the antenna subsystem.</para>
51−&return-value-dvb;
52−
53−<table pgwide="1" frame="none" id="dvb-diseqc-master-cmd">
54− <title>struct <structname>dvb_diseqc_master_cmd</structname></title>
55− <tgroup cols="3">
56− &cs-str;
57− <tbody valign="top">
58− <row>
59− <entry>uint8_t</entry>
60− <entry>msg[6]</entry>
61− <entry>DiSEqC message (framing, address, command, data[3])</entry>
62− </row><row>
63− <entry>uint8_t</entry>
64− <entry>msg_len</entry>
65− <entry>Length of the DiSEqC message. Valid values are 3 to 6</entry>
66− </row>
67− </tbody>
68− </tgroup>
69−</table>
70−
71−</refsect1>
72−</refentry>
Documentation/DocBook/media/dvb/fe-enable-high-lnb-voltage.xml+0−61
@@ -1,61 +0,0 @@
1−<refentry id="FE_ENABLE_HIGH_LNB_VOLTAGE">
2− <refmeta>
3− <refentrytitle>ioctl FE_ENABLE_HIGH_LNB_VOLTAGE</refentrytitle>
4− &manvol;
5− </refmeta>
6−
7− <refnamediv>
8− <refname>FE_ENABLE_HIGH_LNB_VOLTAGE</refname>
9− <refpurpose>Select output DC level between normal LNBf voltages or higher
10− LNBf voltages.</refpurpose>
11− </refnamediv>
12−
13− <refsynopsisdiv>
14− <funcsynopsis>
15− <funcprototype>
16− <funcdef>int <function>ioctl</function></funcdef>
17− <paramdef>int <parameter>fd</parameter></paramdef>
18− <paramdef>int <parameter>request</parameter></paramdef>
19− <paramdef>unsigned int <parameter>high</parameter></paramdef>
20− </funcprototype>
21− </funcsynopsis>
22− </refsynopsisdiv>
23−
24− <refsect1>
25− <title>Arguments</title>
26− <variablelist>
27− <varlistentry>
28− <term><parameter>fd</parameter></term>
29− <listitem>
30− <para>&fe_fd;</para>
31− </listitem>
32− </varlistentry>
33− <varlistentry>
34− <term><parameter>request</parameter></term>
35− <listitem>
36− <para>FE_ENABLE_HIGH_LNB_VOLTAGE</para>
37− </listitem>
38− </varlistentry>
39− <varlistentry>
40− <term><parameter>high</parameter></term>
41− <listitem>
42− <para>Valid flags:</para>
43− <itemizedlist>
44− <listitem><para>0 - normal 13V and 18V.</para></listitem>
45− <listitem><para>&gt;0 - enables slightly higher voltages instead of
46− 13/18V, in order to compensate for long antenna cables.</para></listitem>
47− </itemizedlist>
48− </listitem>
49− </varlistentry>
50− </variablelist>
51− </refsect1>
52−
53− <refsect1>
54− <title>Description</title>
55−
56− <para>Select output DC level between normal LNBf voltages or higher
57− LNBf voltages between 0 (normal) or a value grater than 0 for higher
58− voltages.</para>
59−&return-value-dvb;
60−</refsect1>
61−</refentry>
Documentation/DocBook/media/dvb/fe-get-info.xml+0−266
@@ -1,266 +0,0 @@
1−<refentry id="FE_GET_INFO">
2− <refmeta>
3− <refentrytitle>ioctl FE_GET_INFO</refentrytitle>
4− &manvol;
5− </refmeta>
6−
7− <refnamediv>
8− <refname>FE_GET_INFO</refname>
9− <refpurpose>Query DVB frontend capabilities and returns information about
10− the front-end. This call only requires read-only access to the device</refpurpose>
11− </refnamediv>
12−
13− <refsynopsisdiv>
14− <funcsynopsis>
15− <funcprototype>
16− <funcdef>int <function>ioctl</function></funcdef>
17− <paramdef>int <parameter>fd</parameter></paramdef>
18− <paramdef>int <parameter>request</parameter></paramdef>
19− <paramdef>struct dvb_frontend_info *<parameter>argp</parameter></paramdef>
20− </funcprototype>
21− </funcsynopsis>
22− </refsynopsisdiv>
23−
24− <refsect1>
25− <title>Arguments</title>
26− <variablelist>
27− <varlistentry>
28− <term><parameter>fd</parameter></term>
29− <listitem>
30− <para>&fe_fd;</para>
31− </listitem>
32− </varlistentry>
33− <varlistentry>
34− <term><parameter>request</parameter></term>
35− <listitem>
36− <para>FE_GET_INFO</para>
37− </listitem>
38− </varlistentry>
39− <varlistentry>
40− <term><parameter>argp</parameter></term>
41− <listitem>
42− <para>pointer to struct &dvb-frontend-info;</para>
43− </listitem>
44− </varlistentry>
45− </variablelist>
46− </refsect1>
47−
48− <refsect1>
49− <title>Description</title>
50−
51− <para>All DVB frontend devices support the
52−<constant>FE_GET_INFO</constant> ioctl. It is used to identify
53−kernel devices compatible with this specification and to obtain
54−information about driver and hardware capabilities. The ioctl takes a
55−pointer to dvb_frontend_info which is filled by the driver. When the
56−driver is not compatible with this specification the ioctl returns an error.
57−</para>
58−&return-value-dvb;
59−
60− <table pgwide="1" frame="none" id="dvb-frontend-info">
61− <title>struct <structname>dvb_frontend_info</structname></title>
62− <tgroup cols="3">
63− &cs-str;
64− <tbody valign="top">
65− <row>
66− <entry>char</entry>
67− <entry>name[128]</entry>
68− <entry>Name of the frontend</entry>
69− </row><row>
70− <entry>fe_type_t</entry>
71− <entry>type</entry>
72− <entry><emphasis role="bold">DEPRECATED</emphasis>. DVBv3 type. Should not be used on modern programs, as a
73− frontend may have more than one type. So, the DVBv5 API should
74− be used instead to enumerate and select the frontend type.</entry>
75− </row><row>
76− <entry>uint32_t</entry>
77− <entry>frequency_min</entry>
78− <entry>Minimal frequency supported by the frontend</entry>
79− </row><row>
80− <entry>uint32_t</entry>
81− <entry>frequency_max</entry>
82− <entry>Maximal frequency supported by the frontend</entry>
83− </row><row>
84− <entry>uint32_t</entry>
85− <entry>frequency_stepsize</entry>
86− <entry>Frequency step - all frequencies are multiple of this value</entry>
87− </row><row>
88− <entry>uint32_t</entry>
89− <entry>frequency_tolerance</entry>
90− <entry>Tolerance of the frequency</entry>
91− </row><row>
92− <entry>uint32_t</entry>
93− <entry>symbol_rate_min</entry>
94− <entry>Minimal symbol rate (for Cable/Satellite systems), in bauds</entry>
95− </row><row>
96− <entry>uint32_t</entry>
97− <entry>symbol_rate_max</entry>
98− <entry>Maximal symbol rate (for Cable/Satellite systems), in bauds</entry>
99− </row><row>
100− <entry>uint32_t</entry>
101− <entry>symbol_rate_tolerance</entry>
102− <entry>Maximal symbol rate tolerance, in ppm</entry>
103− </row><row>
104− <entry>uint32_t</entry>
105− <entry>notifier_delay</entry>
106− <entry><emphasis role="bold">DEPRECATED</emphasis>. Not used by any driver.</entry>
107− </row><row>
108− <entry>&fe-caps;</entry>
109− <entry>caps</entry>
110− <entry>Capabilities supported by the frontend</entry>
111− </row>
112− </tbody>
113− </tgroup>
114− </table>
115−
116− <para>NOTE: The frequencies are specified in Hz for Terrestrial and Cable
117− systems. They're specified in kHz for Satellite systems</para>
118− </refsect1>
119−
120−<refsect1 id="fe-caps-t">
121−<title>frontend capabilities</title>
122−
123−<para>Capabilities describe what a frontend can do. Some capabilities are
124− supported only on some specific frontend types.</para>
125−
126−<table pgwide="1" frame="none" id="fe-caps">
127− <title>enum fe_caps</title>
128− <tgroup cols="2">
129− &cs-def;
130− <thead>
131− <row>
132− <entry>ID</entry>
133− <entry>Description</entry>
134− </row>
135− </thead>
136− <tbody valign="top">
137− <row>
138− <entry id="FE-IS-STUPID"><constant>FE_IS_STUPID</constant></entry>
139− <entry>There's something wrong at the frontend, and it can't
140− report its capabilities</entry>
141− </row>
142− <row>
143− <entry id="FE-CAN-INVERSION-AUTO"><constant>FE_CAN_INVERSION_AUTO</constant></entry>
144− <entry>The frontend is capable of auto-detecting inversion</entry>
145− </row>
146− <row>
147− <entry id="FE-CAN-FEC-1-2"><constant>FE_CAN_FEC_1_2</constant></entry>
148− <entry>The frontend supports FEC 1/2</entry>
149− </row>
150− <row>
151− <entry id="FE-CAN-FEC-2-3"><constant>FE_CAN_FEC_2_3</constant></entry>
152− <entry>The frontend supports FEC 2/3</entry>
153− </row>
154− <row>
155− <entry id="FE-CAN-FEC-3-4"><constant>FE_CAN_FEC_3_4</constant></entry>
156− <entry>The frontend supports FEC 3/4</entry>
157− </row>
158− <row>
159− <entry id="FE-CAN-FEC-4-5"><constant>FE_CAN_FEC_4_5</constant></entry>
160− <entry>The frontend supports FEC 4/5</entry>
161− </row>
162− <row>
163− <entry id="FE-CAN-FEC-5-6"><constant>FE_CAN_FEC_5_6</constant></entry>
164− <entry>The frontend supports FEC 5/6</entry>
165− </row>
166− <row>
167− <entry id="FE-CAN-FEC-6-7"><constant>FE_CAN_FEC_6_7</constant></entry>
168− <entry>The frontend supports FEC 6/7</entry>
169− </row>
170− <row>
171− <entry id="FE-CAN-FEC-7-8"><constant>FE_CAN_FEC_7_8</constant></entry>
172− <entry>The frontend supports FEC 7/8</entry>
173− </row>
174− <row>
175− <entry id="FE-CAN-FEC-8-9"><constant>FE_CAN_FEC_8_9</constant></entry>
176− <entry>The frontend supports FEC 8/9</entry>
177− </row>
178− <row>
179− <entry id="FE-CAN-FEC-AUTO"><constant>FE_CAN_FEC_AUTO</constant></entry>
180− <entry>The frontend can autodetect FEC.</entry>
181− </row>
182− <row>
183− <entry id="FE-CAN-QPSK"><constant>FE_CAN_QPSK</constant></entry>
184− <entry>The frontend supports QPSK modulation</entry>
185− </row>
186− <row>
187− <entry id="FE-CAN-QAM-16"><constant>FE_CAN_QAM_16</constant></entry>
188− <entry>The frontend supports 16-QAM modulation</entry>
189− </row>
190− <row>
191− <entry id="FE-CAN-QAM-32"><constant>FE_CAN_QAM_32</constant></entry>
192− <entry>The frontend supports 32-QAM modulation</entry>
193− </row>
194− <row>
195− <entry id="FE-CAN-QAM-64"><constant>FE_CAN_QAM_64</constant></entry>
196− <entry>The frontend supports 64-QAM modulation</entry>
197− </row>
198− <row>
199− <entry id="FE-CAN-QAM-128"><constant>FE_CAN_QAM_128</constant></entry>
200− <entry>The frontend supports 128-QAM modulation</entry>
201− </row>
202− <row>
203− <entry id="FE-CAN-QAM-256"><constant>FE_CAN_QAM_256</constant></entry>
204− <entry>The frontend supports 256-QAM modulation</entry>
205− </row>
206− <row>
207− <entry id="FE-CAN-QAM-AUTO"><constant>FE_CAN_QAM_AUTO</constant></entry>
208− <entry>The frontend can autodetect modulation</entry>
209− </row>
210− <row>
211− <entry id="FE-CAN-TRANSMISSION-MODE-AUTO"><constant>FE_CAN_TRANSMISSION_MODE_AUTO</constant></entry>
212− <entry>The frontend can autodetect the transmission mode</entry>
213− </row>
214− <row>
215− <entry id="FE-CAN-BANDWIDTH-AUTO"><constant>FE_CAN_BANDWIDTH_AUTO</constant></entry>
216− <entry>The frontend can autodetect the bandwidth</entry>
217− </row>
218− <row>
219− <entry id="FE-CAN-GUARD-INTERVAL-AUTO"><constant>FE_CAN_GUARD_INTERVAL_AUTO</constant></entry>
220− <entry>The frontend can autodetect the guard interval</entry>
221− </row>
222− <row>
223− <entry id="FE-CAN-HIERARCHY-AUTO"><constant>FE_CAN_HIERARCHY_AUTO</constant></entry>
224− <entry>The frontend can autodetect hierarch</entry>
225− </row>
226− <row>
227− <entry id="FE-CAN-8VSB"><constant>FE_CAN_8VSB</constant></entry>
228− <entry>The frontend supports 8-VSB modulation</entry>
229− </row>
230− <row>
231− <entry id="FE-CAN-16VSB"><constant>FE_CAN_16VSB</constant></entry>
232− <entry>The frontend supports 16-VSB modulation</entry>
233− </row>
234− <row>
235− <entry id="FE-HAS-EXTENDED-CAPS"><constant>FE_HAS_EXTENDED_CAPS</constant></entry>
236− <entry>Currently, unused</entry>
237− </row>
238− <row>
239− <entry id="FE-CAN-MULTISTREAM"><constant>FE_CAN_MULTISTREAM</constant></entry>
240− <entry>The frontend supports multistream filtering</entry>
241− </row>
242− <row>
243− <entry id="FE-CAN-TURBO-FEC"><constant>FE_CAN_TURBO_FEC</constant></entry>
244− <entry>The frontend supports turbo FEC modulation</entry>
245− </row>
246− <row>
247− <entry id="FE-CAN-2G-MODULATION"><constant>FE_CAN_2G_MODULATION</constant></entry>
248− <entry>The frontend supports "2nd generation modulation" (DVB-S2/T2)></entry>
249− </row>
250− <row>
251− <entry id="FE-NEEDS-BENDING"><constant>FE_NEEDS_BENDING</constant></entry>
252− <entry>Not supported anymore, don't use it</entry>
253− </row>
254− <row>
255− <entry id="FE-CAN-RECOVER"><constant>FE_CAN_RECOVER</constant></entry>
256− <entry>The frontend can recover from a cable unplug automatically</entry>
257− </row>
258− <row>
259− <entry id="FE-CAN-MUTE-TS"><constant>FE_CAN_MUTE_TS</constant></entry>
260− <entry>The frontend can stop spurious TS data output</entry>
261− </row>
262− </tbody>
263− </tgroup>
264−</table>
265−</refsect1>
266−</refentry>
Documentation/DocBook/media/dvb/fe-get-property.xml+0−81
@@ -1,81 +0,0 @@
1−<refentry id="FE_GET_PROPERTY">
2− <refmeta>
3− <refentrytitle>ioctl FE_SET_PROPERTY, FE_GET_PROPERTY</refentrytitle>
4− &manvol;
5− </refmeta>
6−
7− <refnamediv>
8− <refname>FE_SET_PROPERTY</refname>
9− <refname>FE_GET_PROPERTY</refname>
10− <refpurpose>FE_SET_PROPERTY sets one or more frontend properties.
11− FE_GET_PROPERTY returns one or more frontend properties.</refpurpose>
12− </refnamediv>
13−
14− <refsynopsisdiv>
15− <funcsynopsis>
16− <funcprototype>
17− <funcdef>int <function>ioctl</function></funcdef>
18− <paramdef>int <parameter>fd</parameter></paramdef>
19− <paramdef>int <parameter>request</parameter></paramdef>
20− <paramdef>struct dtv_properties *<parameter>argp</parameter></paramdef>
21− </funcprototype>
22− </funcsynopsis>
23− </refsynopsisdiv>
24−
25− <refsect1>
26− <title>Arguments</title>
27− <variablelist>
28− <varlistentry>
29− <term><parameter>fd</parameter></term>
30− <listitem>
31− <para>&fe_fd;</para>
32− </listitem>
33− </varlistentry>
34− <varlistentry>
35− <term><parameter>request</parameter></term>
36− <listitem>
37− <para>FE_SET_PROPERTY, FE_GET_PROPERTY</para>
38− </listitem>
39− </varlistentry>
40− <varlistentry>
41− <term><parameter>argp</parameter></term>
42− <listitem>
43− <para>pointer to &dtv-properties;</para>
44− </listitem>
45− </varlistentry>
46− </variablelist>
47− </refsect1>
48−
49− <refsect1>
50− <title>Description</title>
51−
52− <para>All DVB frontend devices support the
53−<constant>FE_SET_PROPERTY</constant> and <constant>FE_GET_PROPERTY</constant>
54−ioctls. The supported properties and statistics depends on the delivery system
55−and on the device:</para>
56−<itemizedlist>
57−<listitem>
58− <para><constant>FE_SET_PROPERTY:</constant></para>
59−<itemizedlist>
60−<listitem><para>This ioctl is used to set one or more
61− frontend properties.</para></listitem>
62−<listitem><para>This is the basic command to request the frontend to tune into some
63− frequency and to start decoding the digital TV signal.</para></listitem>
64−<listitem><para>This call requires read/write access to the device.</para></listitem>
65−<listitem><para>At return, the values are updated to reflect the
66− actual parameters used.</para></listitem>
67−</itemizedlist>
68−</listitem>
69−<listitem>
70− <para><constant>FE_GET_PROPERTY:</constant></para>
71−<itemizedlist>
72−<listitem><para>This ioctl is used to get properties and
73−statistics from the frontend.</para></listitem>
74−<listitem><para>No properties are changed, and statistics aren't reset.</para></listitem>
75−<listitem><para>This call only requires read-only access to the device.</para></listitem>
76−</itemizedlist>
77−</listitem>
78−</itemizedlist>
79−&return-value-dvb;
80−</refsect1>
81−</refentry>
Documentation/DocBook/media/dvb/fe-read-status.xml+0−107
@@ -1,107 +0,0 @@
1−<refentry id="FE_READ_STATUS">
2− <refmeta>
3− <refentrytitle>ioctl FE_READ_STATUS</refentrytitle>
4− &manvol;
5− </refmeta>
6−
7− <refnamediv>
8− <refname>FE_READ_STATUS</refname>
9− <refpurpose>Returns status information about the front-end. This call only
10− requires read-only access to the device</refpurpose>
11− </refnamediv>
12−
13− <refsynopsisdiv>
14− <funcsynopsis>
15− <funcprototype>
16− <funcdef>int <function>ioctl</function></funcdef>
17− <paramdef>int <parameter>fd</parameter></paramdef>
18− <paramdef>int <parameter>request</parameter></paramdef>
19− <paramdef>unsigned int *<parameter>status</parameter></paramdef>
20− </funcprototype>
21− </funcsynopsis>
22− </refsynopsisdiv>
23−
24− <refsect1>
25− <title>Arguments</title>
26− <variablelist>
27− <varlistentry>
28− <term><parameter>fd</parameter></term>
29− <listitem>
30− <para>&fe_fd;</para>
31− </listitem>
32− </varlistentry>
33− <varlistentry>
34− <term><parameter>request</parameter></term>
35− <listitem>
36− <para>FE_READ_STATUS</para>
37− </listitem>
38− </varlistentry>
39− <varlistentry>
40− <term><parameter>status</parameter></term>
41− <listitem>
42− <para>pointer to a bitmask integer filled with the values defined by
43− &fe-status;.</para>
44− </listitem>
45− </varlistentry>
46− </variablelist>
47− </refsect1>
48−
49− <refsect1>
50− <title>Description</title>
51−
52− <para>All DVB frontend devices support the
53−<constant>FE_READ_STATUS</constant> ioctl. It is used to check about the
54−locking status of the frontend after being tuned. The ioctl takes a
55−pointer to an integer where the status will be written.
56−</para>
57−<para>NOTE: the size of status is actually sizeof(enum fe_status), with varies
58− according with the architecture. This needs to be fixed in the future.</para>
59−&return-value-dvb;
60−</refsect1>
61−
62−<refsect1 id="fe-status-t">
63−<title>int fe_status</title>
64−
65−<para>The fe_status parameter is used to indicate the current state
66− and/or state changes of the frontend hardware. It is produced using
67− the &fe-status; values on a bitmask</para>
68−
69−<table pgwide="1" frame="none" id="fe-status">
70− <title>enum fe_status</title>
71− <tgroup cols="2">
72− &cs-def;
73− <thead>
74− <row>
75− <entry>ID</entry>
76− <entry>Description</entry>
77− </row>
78− </thead>
79− <tbody valign="top">
80− <row>
81− <entry align="char" id="FE-HAS-SIGNAL"><constant>FE_HAS_SIGNAL</constant></entry>
82− <entry align="char">The frontend has found something above the noise level</entry>
83− </row><row>
84− <entry align="char" id="FE-HAS-CARRIER"><constant>FE_HAS_CARRIER</constant></entry>
85− <entry align="char">The frontend has found a DVB signal</entry>
86− </row><row>
87− <entry align="char" id="FE-HAS-VITERBI"><constant>FE_HAS_VITERBI</constant></entry>
88− <entry align="char">The frontend FEC inner coding (Viterbi, LDPC or other inner code) is stable</entry>
89− </row><row>
90− <entry align="char" id="FE-HAS-SYNC"><constant>FE_HAS_SYNC</constant></entry>
91− <entry align="char">Synchronization bytes was found</entry>
92− </row><row>
93− <entry align="char" id="FE-HAS-LOCK"><constant>FE_HAS_LOCK</constant></entry>
94− <entry align="char">The DVB were locked and everything is working</entry>
95− </row><row>
96− <entry align="char" id="FE-TIMEDOUT"><constant>FE_TIMEDOUT</constant></entry>
97− <entry align="char">no lock within the last about 2 seconds</entry>
98− </row><row>
99− <entry align="char" id="FE-REINIT"><constant>FE_REINIT</constant></entry>
100− <entry align="char">The frontend was reinitialized, application is
101− recommended to reset DiSEqC, tone and parameters</entry>
102− </row>
103− </tbody>
104− </tgroup>
105−</table>
106−</refsect1>
107−</refentry>
Documentation/DocBook/media/dvb/fe-set-frontend-tune-mode.xml+0−64
@@ -1,64 +0,0 @@
1−<refentry id="FE_SET_FRONTEND_TUNE_MODE">
2− <refmeta>
3− <refentrytitle>ioctl FE_SET_FRONTEND_TUNE_MODE</refentrytitle>
4− &manvol;
5− </refmeta>
6−
7− <refnamediv>
8− <refname>FE_SET_FRONTEND_TUNE_MODE</refname>
9− <refpurpose>Allow setting tuner mode flags to the frontend.</refpurpose>
10− </refnamediv>
11−
12− <refsynopsisdiv>
13− <funcsynopsis>
14− <funcprototype>
15− <funcdef>int <function>ioctl</function></funcdef>
16− <paramdef>int <parameter>fd</parameter></paramdef>
17− <paramdef>int <parameter>request</parameter></paramdef>
18− <paramdef>unsigned int <parameter>flags</parameter></paramdef>
19− </funcprototype>
20− </funcsynopsis>
21− </refsynopsisdiv>
22−
23− <refsect1>
24− <title>Arguments</title>
25− <variablelist>
26− <varlistentry>
27− <term><parameter>fd</parameter></term>
28− <listitem>
29− <para>&fe_fd;</para>
30− </listitem>
31− </varlistentry>
32− <varlistentry>
33− <term><parameter>request</parameter></term>
34− <listitem>
35− <para>FE_SET_FRONTEND_TUNE_MODE</para>
36− </listitem>
37− </varlistentry>
38− <varlistentry>
39− <term><parameter>flags</parameter></term>
40− <listitem>
41− <para>Valid flags:</para>
42− <itemizedlist>
43− <listitem><para>0 - normal tune mode</para></listitem>
44− <listitem><para>FE_TUNE_MODE_ONESHOT - When set, this flag will
45− disable any zigzagging or other "normal" tuning behaviour.
46− Additionally, there will be no automatic monitoring of the
47− lock status, and hence no frontend events will be
48− generated. If a frontend device is closed, this flag will
49− be automatically turned off when the device is reopened
50− read-write.</para></listitem>
51− </itemizedlist>
52− </listitem>
53− </varlistentry>
54− </variablelist>
55− </refsect1>
56−
57− <refsect1>
58− <title>Description</title>
59−
60− <para>Allow setting tuner mode flags to the frontend, between 0 (normal)
61− or FE_TUNE_MODE_ONESHOT mode</para>
62−&return-value-dvb;
63−</refsect1>
64−</refentry>
Documentation/DocBook/media/dvb/fe-set-tone.xml+0−91
@@ -1,91 +0,0 @@
1−<refentry id="FE_SET_TONE">
2− <refmeta>
3− <refentrytitle>ioctl FE_SET_TONE</refentrytitle>
4− &manvol;
5− </refmeta>
6−
7− <refnamediv>
8− <refname>FE_SET_TONE</refname>
9− <refpurpose>Sets/resets the generation of the continuous 22kHz tone.</refpurpose>
10− </refnamediv>
11−
12− <refsynopsisdiv>
13− <funcsynopsis>
14− <funcprototype>
15− <funcdef>int <function>ioctl</function></funcdef>
16− <paramdef>int <parameter>fd</parameter></paramdef>
17− <paramdef>int <parameter>request</parameter></paramdef>
18− <paramdef>enum fe_sec_tone_mode *<parameter>tone</parameter></paramdef>
19− </funcprototype>
20− </funcsynopsis>
21− </refsynopsisdiv>
22−
23− <refsect1>
24− <title>Arguments</title>
25− <variablelist>
26− <varlistentry>
27− <term><parameter>fd</parameter></term>
28− <listitem>
29− <para>&fe_fd;</para>
30− </listitem>
31− </varlistentry>
32− <varlistentry>
33− <term><parameter>request</parameter></term>
34− <listitem>
35− <para>FE_SET_TONE</para>
36− </listitem>
37− </varlistentry>
38− <varlistentry>
39− <term><parameter>tone</parameter></term>
40− <listitem>
41− <para>pointer to &fe-sec-tone-mode;</para>
42− </listitem>
43− </varlistentry>
44− </variablelist>
45− </refsect1>
46−
47− <refsect1>
48− <title>Description</title>
49−
50−<para>This ioctl is used to set the generation of the continuous 22kHz tone.
51− This call requires read/write permissions.</para>
52−<para>Usually, satellite antenna subsystems require that the digital TV
53− device to send a 22kHz tone in order to select between high/low band on
54− some dual-band LNBf. It is also used to send signals to DiSEqC equipment,
55− but this is done using the DiSEqC ioctls.</para>
56−<para>NOTE: if more than one device is connected to the same antenna,
57− setting a tone may interfere on other devices, as they may lose
58− the capability of selecting the band. So, it is recommended that
59− applications would change to SEC_TONE_OFF when the device is not used.</para>
60−
61−&return-value-dvb;
62−</refsect1>
63−
64−<refsect1 id="fe-sec-tone-mode-t">
65−<title>enum fe_sec_tone_mode</title>
66−
67−<table pgwide="1" frame="none" id="fe-sec-tone-mode">
68− <title>enum fe_sec_tone_mode</title>
69− <tgroup cols="2">
70− &cs-def;
71− <thead>
72− <row>
73− <entry>ID</entry>
74− <entry>Description</entry>
75− </row>
76− </thead>
77− <tbody valign="top">
78− <row>
79− <entry align="char" id="SEC-TONE-ON"><constant>SEC_TONE_ON</constant></entry>
80− <entry align="char">Sends a 22kHz tone burst to the antenna</entry>
81− </row><row>
82− <entry align="char" id="SEC-TONE-OFF"><constant>SEC_TONE_OFF</constant></entry>
83− <entry align="char">Don't send a 22kHz tone to the antenna
84− (except if the FE_DISEQC_* ioctls are called)</entry>
85− </row>
86− </tbody>
87− </tgroup>
88−</table>
89−</refsect1>
90−
91−</refentry>
Documentation/DocBook/media/dvb/fe-set-voltage.xml+0−69
@@ -1,69 +0,0 @@
1−<refentry id="FE_SET_VOLTAGE">
2− <refmeta>
3− <refentrytitle>ioctl FE_SET_VOLTAGE</refentrytitle>
4− &manvol;
5− </refmeta>
6−
7− <refnamediv>
8− <refname>FE_SET_VOLTAGE</refname>
9− <refpurpose>Allow setting the DC level sent to the antenna subsystem.</refpurpose>
10− </refnamediv>
11−
12− <refsynopsisdiv>
13− <funcsynopsis>
14− <funcprototype>
15− <funcdef>int <function>ioctl</function></funcdef>
16− <paramdef>int <parameter>fd</parameter></paramdef>
17− <paramdef>int <parameter>request</parameter></paramdef>
18− <paramdef>enum fe_sec_voltage *<parameter>voltage</parameter></paramdef>
19− </funcprototype>
20− </funcsynopsis>
21− </refsynopsisdiv>
22−
23− <refsect1>
24− <title>Arguments</title>
25− <variablelist>
26− <varlistentry>
27− <term><parameter>fd</parameter></term>
28− <listitem>
29− <para>&fe_fd;</para>
30− </listitem>
31− </varlistentry>
32− <varlistentry>
33− <term><parameter>request</parameter></term>
34− <listitem>
35− <para>FE_SET_VOLTAGE</para>
36− </listitem>
37− </varlistentry>
38− <varlistentry>
39− <term><parameter>voltage</parameter></term>
40− <listitem>
41− <para>pointer to &fe-sec-voltage;</para>
42− <para>Valid values are described at &fe-sec-voltage;.</para>
43− </listitem>
44− </varlistentry>
45− </variablelist>
46− </refsect1>
47−
48− <refsect1>
49− <title>Description</title>
50−
51−<para>This ioctl allows to set the DC voltage level sent through the antenna
52− cable to 13V, 18V or off.</para>
53−<para>Usually, a satellite antenna subsystems require that the digital TV
54− device to send a DC voltage to feed power to the LNBf. Depending on the
55− LNBf type, the polarization or the intermediate frequency (IF) of the LNBf
56− can controlled by the voltage level. Other devices (for example, the ones
57− that implement DISEqC and multipoint LNBf's don't need to control the
58− voltage level, provided that either 13V or 18V is sent to power up the
59− LNBf.</para>
60−<para>NOTE: if more than one device is connected to the same antenna,
61− setting a voltage level may interfere on other devices, as they may lose
62− the capability of setting polarization or IF. So, on those
63− cases, setting the voltage to SEC_VOLTAGE_OFF while the device is not is
64− used is recommended.</para>
65−
66−&return-value-dvb;
67−</refsect1>
68−
69−</refentry>
Documentation/DocBook/media/dvb/frontend.xml+0−269
@@ -1,269 +0,0 @@
1−<title>DVB Frontend API</title>
2−
3−<para>The DVB frontend API was designed to support three types of delivery systems:</para>
4−<itemizedlist>
5− <listitem><para>Terrestrial systems: DVB-T, DVB-T2, ATSC, ATSC M/H, ISDB-T, DVB-H, DTMB, CMMB</para></listitem>
6− <listitem><para>Cable systems: DVB-C Annex A/C, ClearQAM (DVB-C Annex B), ISDB-C</para></listitem>
7− <listitem><para>Satellite systems: DVB-S, DVB-S2, DVB Turbo, ISDB-S, DSS</para></listitem>
8−</itemizedlist>
9−<para>The DVB frontend controls several sub-devices including:</para>
10−<itemizedlist>
11− <listitem><para>Tuner</para></listitem>
12− <listitem><para>Digital TV demodulator</para></listitem>
13− <listitem><para>Low noise amplifier (LNA)</para></listitem>
14− <listitem><para>Satellite Equipment Control (SEC) hardware (only for Satellite).</para></listitem>
15−</itemizedlist>
16−<para>The frontend can be accessed through
17− <constant>/dev/dvb/adapter?/frontend?</constant>. Data types and
18− ioctl definitions can be accessed by including
19− <constant>linux/dvb/frontend.h</constant> in your application.
20−</para>
21−
22−<para>NOTE: Transmission via the internet (DVB-IP)
23− is not yet handled by this API but a future extension is possible.</para>
24−<para>On Satellite systems, the API support for the Satellite Equipment Control
25− (SEC) allows to power control and to send/receive signals to control the
26− antenna subsystem, selecting the polarization and choosing the Intermediate
27− Frequency IF) of the Low Noise Block Converter Feed Horn (LNBf). It
28− supports the DiSEqC and V-SEC protocols. The DiSEqC (digital SEC)
29−specification is available at
30−<ulink url="http://www.eutelsat.com/satellites/4_5_5.html">Eutelsat</ulink>.</para>
31−
32−<section id="query-dvb-frontend-info">
33−<title>Querying frontend information</title>
34−
35−<para>Usually, the first thing to do when the frontend is opened is to
36− check the frontend capabilities. This is done using <link linkend="FE_GET_INFO">FE_GET_INFO</link>. This ioctl will enumerate
37− the DVB API version and other characteristics about the frontend, and
38− can be opened either in read only or read/write mode.</para>
39−</section>
40−
41−<section id="dvb-fe-read-status">
42−<title>Querying frontend status and statistics</title>
43−
44−<para>Once <link linkend="FE_GET_PROPERTY"><constant>FE_SET_PROPERTY</constant></link>
45− is called, the frontend will run a kernel thread that will periodically
46− check for the tuner lock status and provide statistics about the quality
47− of the signal.</para>
48−<para>The information about the frontend tuner locking status can be queried
49− using <link linkend="FE_READ_STATUS">FE_READ_STATUS</link>.</para>
50−<para>Signal statistics are provided via <link linkend="FE_GET_PROPERTY"><constant>FE_GET_PROPERTY</constant></link>.
51− Please note that several statistics require the demodulator to be fully
52− locked (e. g. with FE_HAS_LOCK bit set). See
53− <link linkend="frontend-stat-properties">Frontend statistics indicators</link>
54− for more details.</para>
55−</section>
56−
57−&sub-dvbproperty;
58−
59−<section id="frontend_fcalls">
60−<title>Frontend Function Calls</title>
61−
62−<refentry id="frontend_f_open">
63− <refmeta>
64− <refentrytitle>DVB frontend open()</refentrytitle>
65− &manvol;
66− </refmeta>
67−
68− <refnamediv>
69− <refname>fe-open</refname>
70− <refpurpose>Open a frontend device</refpurpose>
71− </refnamediv>
72−
73− <refsynopsisdiv>
74− <funcsynopsis>
75− <funcsynopsisinfo>#include &lt;fcntl.h&gt;</funcsynopsisinfo>
76− <funcprototype>
77− <funcdef>int <function>open</function></funcdef>
78− <paramdef>const char *<parameter>device_name</parameter></paramdef>
79− <paramdef>int <parameter>flags</parameter></paramdef>
80− </funcprototype>
81− </funcsynopsis>
82− </refsynopsisdiv>
83−
84− <refsect1>
85− <title>Arguments</title>
86−
87− <variablelist>
88− <varlistentry>
89− <term><parameter>device_name</parameter></term>
90− <listitem>
91− <para>Device to be opened.</para>
92− </listitem>
93− </varlistentry>
94− <varlistentry>
95− <term><parameter>flags</parameter></term>
96− <listitem>
97− <para>Open flags. Access can either be
98− <constant>O_RDWR</constant> or <constant>O_RDONLY</constant>.</para>
99− <para>Multiple opens are allowed with <constant>O_RDONLY</constant>. In this mode, only query and read ioctls are allowed.</para>
100− <para>Only one open is allowed in <constant>O_RDWR</constant>. In this mode, all ioctls are allowed.</para>
101− <para>When the <constant>O_NONBLOCK</constant> flag is given, the system calls may return &EAGAIN; when no data is available or when the device driver is temporarily busy.</para>
102− <para>Other flags have no effect.</para>
103− </listitem>
104− </varlistentry>
105− </variablelist>
106− </refsect1>
107− <refsect1>
108− <title>Description</title>
109− <para>This system call opens a named frontend device (<constant>/dev/dvb/adapter?/frontend?</constant>)
110− for subsequent use. Usually the first thing to do after a successful open is to
111− find out the frontend type with <link linkend="FE_GET_INFO">FE_GET_INFO</link>.</para>
112−<para>The device can be opened in read-only mode, which only allows monitoring of
113− device status and statistics, or read/write mode, which allows any kind of use
114− (e.g. performing tuning operations.)
115−</para>
116−<para>In a system with multiple front-ends, it is usually the case that multiple devices
117− cannot be open in read/write mode simultaneously. As long as a front-end
118− device is opened in read/write mode, other open() calls in read/write mode will
119− either fail or block, depending on whether non-blocking or blocking mode was
120− specified. A front-end device opened in blocking mode can later be put into
121− non-blocking mode (and vice versa) using the F_SETFL command of the fcntl
122− system call. This is a standard system call, documented in the Linux manual
123− page for fcntl. When an open() call has succeeded, the device will be ready
124− for use in the specified mode. This implies that the corresponding hardware is
125− powered up, and that other front-ends may have been powered down to make
126− that possible.</para>
127− </refsect1>
128−
129− <refsect1>
130− <title>Return Value</title>
131−
132− <para>On success <function>open</function> returns the new file
133−descriptor. On error -1 is returned, and the <varname>errno</varname>
134−variable is set appropriately. Possible error codes are:</para>
135−
136− <variablelist>
137− <varlistentry>
138− <term><errorcode>EACCES</errorcode></term>
139− <listitem>
140− <para>The caller has no permission to access the
141−device.</para>
142− </listitem>
143− </varlistentry>
144− <varlistentry>
145− <term><errorcode>EBUSY</errorcode></term>
146− <listitem>
147− <para>The the device driver is already in use.</para>
148− </listitem>
149− </varlistentry>
150− <varlistentry>
151− <term><errorcode>ENXIO</errorcode></term>
152− <listitem>
153− <para>No device corresponding to this device special file
154−exists.</para>
155− </listitem>
156− </varlistentry>
157− <varlistentry>
158− <term><errorcode>ENOMEM</errorcode></term>
159− <listitem>
160− <para>Not enough kernel memory was available to complete the
161−request.</para>
162− </listitem>
163− </varlistentry>
164− <varlistentry>
165− <term><errorcode>EMFILE</errorcode></term>
166− <listitem>
167− <para>The process already has the maximum number of
168−files open.</para>
169− </listitem>
170− </varlistentry>
171− <varlistentry>
172− <term><errorcode>ENFILE</errorcode></term>
173− <listitem>
174− <para>The limit on the total number of files open on the
175−system has been reached.</para>
176− </listitem>
177− </varlistentry>
178− <varlistentry>
179− <term><errorcode>ENODEV</errorcode></term>
180− <listitem>
181− <para>The device got removed.</para>
182− </listitem>
183− </varlistentry>
184− </variablelist>
185− </refsect1>
186−</refentry>
187−
188−<refentry id="frontend_f_close">
189− <refmeta>
190− <refentrytitle>DVB frontend close()</refentrytitle>
191− &manvol;
192− </refmeta>
193−
194− <refnamediv>
195− <refname>fe-close</refname>
196− <refpurpose>Close a frontend device</refpurpose>
197− </refnamediv>
198−
199− <refsynopsisdiv>
200− <funcsynopsis>
201− <funcsynopsisinfo>#include &lt;unistd.h&gt;</funcsynopsisinfo>
202− <funcprototype>
203− <funcdef>int <function>close</function></funcdef>
204− <paramdef>int <parameter>fd</parameter></paramdef>
205− </funcprototype>
206− </funcsynopsis>
207− </refsynopsisdiv>
208−
209− <refsect1>
210− <title>Arguments</title>
211−
212− <variablelist>
213− <varlistentry>
214− <term><parameter>fd</parameter></term>
215− <listitem>
216− <para>&fd;</para>
217− </listitem>
218− </varlistentry>
219− </variablelist>
220− </refsect1>
221−
222− <refsect1>
223− <title>Description</title>
224−<para>This system call closes a previously opened front-end device. After closing
225− a front-end device, its corresponding hardware might be powered down
226− automatically.</para>
227−</refsect1>
228− <refsect1>
229− <title>Return Value</title>
230−
231− <para>The function returns <returnvalue>0</returnvalue> on
232−success, <returnvalue>-1</returnvalue> on failure and the
233−<varname>errno</varname> is set appropriately. Possible error
234−codes:</para>
235−
236− <variablelist>
237− <varlistentry>
238− <term><errorcode>EBADF</errorcode></term>
239− <listitem>
240− <para><parameter>fd</parameter> is not a valid open file
241−descriptor.</para>
242− </listitem>
243− </varlistentry>
244− </variablelist>
245− </refsect1>
246−</refentry>
247−
248−&sub-fe-get-info;
249−&sub-fe-read-status;
250−&sub-fe-get-property;
251−&sub-fe-diseqc-reset-overload;
252−&sub-fe-diseqc-send-master-cmd;
253−&sub-fe-diseqc-recv-slave-reply;
254−&sub-fe-diseqc-send-burst;
255−&sub-fe-set-tone;
256−&sub-fe-set-voltage;
257−&sub-fe-enable-high-lnb-voltage;
258−&sub-fe-set-frontend-tune-mode;
259−
260−</section>
261−
262−<section id="frontend_legacy_dvbv3_api">
263−<title>DVB Frontend legacy API (a. k. a. DVBv3)</title>
264−<para>The usage of this API is deprecated, as it doesn't support all digital
265− TV standards, doesn't provide good statistics measurements and provides
266− incomplete information. This is kept only to support legacy applications.</para>
267−
268−&sub-frontend_legacy_api;
269−</section>
Documentation/DocBook/media/dvb/frontend_legacy_api.xml+0−654
@@ -1,654 +0,0 @@
1−<section id="frontend_legacy_types">
2−<title>Frontend Legacy Data Types</title>
3−
4−<section id="fe-type-t">
5−<title>Frontend type</title>
6−
7−<para>For historical reasons, frontend types are named by the type of modulation
8− used in transmission. The fontend types are given by fe_type_t type, defined as:</para>
9−
10−<table pgwide="1" frame="none" id="fe-type">
11−<title>Frontend types</title>
12−<tgroup cols="3">
13− &cs-def;
14− <thead>
15− <row>
16− <entry>fe_type</entry>
17− <entry>Description</entry>
18− <entry><link linkend="DTV-DELIVERY-SYSTEM">DTV_DELIVERY_SYSTEM</link> equivalent type</entry>
19− </row>
20− </thead>
21− <tbody valign="top">
22− <row>
23− <entry id="FE-QPSK"><constant>FE_QPSK</constant></entry>
24− <entry>For DVB-S standard</entry>
25− <entry><constant>SYS_DVBS</constant></entry>
26− </row>
27− <row>
28− <entry id="FE-QAM"><constant>FE_QAM</constant></entry>
29− <entry>For DVB-C annex A standard</entry>
30− <entry><constant>SYS_DVBC_ANNEX_A</constant></entry>
31− </row>
32− <row>
33− <entry id="FE-OFDM"><constant>FE_OFDM</constant></entry>
34− <entry>For DVB-T standard</entry>
35− <entry><constant>SYS_DVBT</constant></entry>
36− </row>
37− <row>
38− <entry id="FE-ATSC"><constant>FE_ATSC</constant></entry>
39− <entry>For ATSC standard (terrestrial) or for DVB-C Annex B (cable) used in US.</entry>
40− <entry><constant>SYS_ATSC</constant> (terrestrial) or <constant>SYS_DVBC_ANNEX_B</constant> (cable)</entry>
41− </row>
42−</tbody></tgroup></table>
43−
44−<para>Newer formats like DVB-S2, ISDB-T, ISDB-S and DVB-T2 are not described at the above, as they're
45−supported via the new <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY/FE_GET_SET_PROPERTY</link> ioctl's, using the <link linkend="DTV-DELIVERY-SYSTEM">DTV_DELIVERY_SYSTEM</link> parameter.
46−</para>
47−
48−<para>In the old days, &dvb-frontend-info; used to contain
49− <constant>fe_type_t</constant> field to indicate the delivery systems,
50− filled with either FE_QPSK, FE_QAM, FE_OFDM or FE_ATSC. While this is
51− still filled to keep backward compatibility, the usage of this
52− field is deprecated, as it can report just one delivery system, but some
53− devices support multiple delivery systems. Please use
54− <link linkend="DTV-ENUM-DELSYS">DTV_ENUM_DELSYS</link> instead.
55−</para>
56−<para>On devices that support multiple delivery systems,
57− &dvb-frontend-info;::<constant>fe_type_t</constant> is filled with the
58− currently standard, as selected by the last call to
59− <link linkend="FE_GET_PROPERTY">FE_SET_PROPERTY</link>
60− using the &DTV-DELIVERY-SYSTEM; property.</para>
61−</section>
62−
63−<section id="fe-bandwidth-t">
64−<title>Frontend bandwidth</title>
65−
66−<table pgwide="1" frame="none" id="fe-bandwidth">
67− <title>enum fe_bandwidth</title>
68− <tgroup cols="2">
69− &cs-def;
70− <thead>
71− <row>
72− <entry>ID</entry>
73− <entry>Description</entry>
74− </row>
75− </thead>
76− <tbody valign="top">
77− <row>
78− <entry id="BANDWIDTH-AUTO"><constant>BANDWIDTH_AUTO</constant></entry>
79− <entry>Autodetect bandwidth (if supported)</entry>
80− </row><row>
81− <entry id="BANDWIDTH-1-712-MHZ"><constant>BANDWIDTH_1_712_MHZ</constant></entry>
82− <entry>1.712 MHz</entry>
83− </row><row>
84− <entry id="BANDWIDTH-5-MHZ"><constant>BANDWIDTH_5_MHZ</constant></entry>
85− <entry>5 MHz</entry>
86− </row><row>
87− <entry id="BANDWIDTH-6-MHZ"><constant>BANDWIDTH_6_MHZ</constant></entry>
88− <entry>6 MHz</entry>
89− </row><row>
90− <entry id="BANDWIDTH-7-MHZ"><constant>BANDWIDTH_7_MHZ</constant></entry>
91− <entry>7 MHz</entry>
92− </row><row>
93− <entry id="BANDWIDTH-8-MHZ"><constant>BANDWIDTH_8_MHZ</constant></entry>
94− <entry>8 MHz</entry>
95− </row><row>
96− <entry id="BANDWIDTH-10-MHZ"><constant>BANDWIDTH_10_MHZ</constant></entry>
97− <entry>10 MHz</entry>
98− </row>
99− </tbody>
100− </tgroup>
101−</table>
102−
103−</section>
104−
105−<section id="dvb-frontend-parameters">
106−<title>frontend parameters</title>
107−<para>The kind of parameters passed to the frontend device for tuning depend on
108−the kind of hardware you are using.</para>
109−<para>The struct <constant>dvb_frontend_parameters</constant> uses an
110−union with specific per-system parameters. However, as newer delivery systems
111−required more data, the structure size weren't enough to fit, and just
112−extending its size would break the existing applications. So, those parameters
113−were replaced by the usage of <link linkend="FE_GET_PROPERTY">
114−<constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant></link> ioctl's. The
115−new API is flexible enough to add new parameters to existing delivery systems,
116−and to add newer delivery systems.</para>
117−<para>So, newer applications should use <link linkend="FE_GET_PROPERTY">
118−<constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant></link> instead, in
119−order to be able to support the newer System Delivery like DVB-S2, DVB-T2,
120−DVB-C2, ISDB, etc.</para>
121−<para>All kinds of parameters are combined as an union in the FrontendParameters structure:
122−<programlisting>
123−struct dvb_frontend_parameters {
124− uint32_t frequency; /&#x22C6; (absolute) frequency in Hz for QAM/OFDM &#x22C6;/
125− /&#x22C6; intermediate frequency in kHz for QPSK &#x22C6;/
126− &fe-spectral-inversion-t; inversion;
127− union {
128− struct dvb_qpsk_parameters qpsk;
129− struct dvb_qam_parameters qam;
130− struct dvb_ofdm_parameters ofdm;
131− struct dvb_vsb_parameters vsb;
132− } u;
133−};
134−</programlisting></para>
135−<para>In the case of QPSK frontends the <constant>frequency</constant> field specifies the intermediate
136−frequency, i.e. the offset which is effectively added to the local oscillator frequency (LOF) of
137−the LNB. The intermediate frequency has to be specified in units of kHz. For QAM and
138−OFDM frontends the <constant>frequency</constant> specifies the absolute frequency and is given in Hz.
139−</para>
140−
141−<section id="dvb-qpsk-parameters">
142−<title>QPSK parameters</title>
143−<para>For satellite QPSK frontends you have to use the <constant>dvb_qpsk_parameters</constant> structure:</para>
144−<programlisting>
145− struct dvb_qpsk_parameters {
146− uint32_t symbol_rate; /&#x22C6; symbol rate in Symbols per second &#x22C6;/
147− &fe-code-rate-t; fec_inner; /&#x22C6; forward error correction (see above) &#x22C6;/
148− };
149−</programlisting>
150−</section>
151−
152−<section id="dvb-qam-parameters">
153−<title>QAM parameters</title>
154−<para>for cable QAM frontend you use the <constant>dvb_qam_parameters</constant> structure:</para>
155−<programlisting>
156− struct dvb_qam_parameters {
157− uint32_t symbol_rate; /&#x22C6; symbol rate in Symbols per second &#x22C6;/
158− &fe-code-rate-t; fec_inner; /&#x22C6; forward error correction (see above) &#x22C6;/
159− &fe-modulation-t; modulation; /&#x22C6; modulation type (see above) &#x22C6;/
160− };
161−</programlisting>
162−</section>
163−
164−<section id="dvb-vsb-parameters">
165−<title>VSB parameters</title>
166−<para>ATSC frontends are supported by the <constant>dvb_vsb_parameters</constant> structure:</para>
167−<programlisting>
168−struct dvb_vsb_parameters {
169− &fe-modulation-t; modulation; /&#x22C6; modulation type (see above) &#x22C6;/
170−};
171−</programlisting>
172−</section>
173−
174−<section id="dvb-ofdm-parameters">
175−<title>OFDM parameters</title>
176−<para>DVB-T frontends are supported by the <constant>dvb_ofdm_parameters</constant> structure:</para>
177−<programlisting>
178− struct dvb_ofdm_parameters {
179− &fe-bandwidth-t; bandwidth;
180− &fe-code-rate-t; code_rate_HP; /&#x22C6; high priority stream code rate &#x22C6;/
181− &fe-code-rate-t; code_rate_LP; /&#x22C6; low priority stream code rate &#x22C6;/
182− &fe-modulation-t; constellation; /&#x22C6; modulation type (see above) &#x22C6;/
183− &fe-transmit-mode-t; transmission_mode;
184− &fe-guard-interval-t; guard_interval;
185− &fe-hierarchy-t; hierarchy_information;
186− };
187−</programlisting>
188−</section>
189−</section>
190−
191−<section id="dvb-frontend-event">
192−<title>frontend events</title>
193− <programlisting>
194− struct dvb_frontend_event {
195− fe_status_t status;
196− struct dvb_frontend_parameters parameters;
197− };
198−</programlisting>
199− </section>
200−</section>
201−
202−<section id="frontend_legacy_fcalls">
203−<title>Frontend Legacy Function Calls</title>
204−
205−<para>Those functions are defined at DVB version 3. The support is kept in
206− the kernel due to compatibility issues only. Their usage is strongly
207− not recommended</para>
208−
209−<section id="FE_READ_BER">
210−<title>FE_READ_BER</title>
211−<para>DESCRIPTION
212−</para>
213−<informaltable><tgroup cols="1"><tbody><row><entry
214− align="char">
215−<para>This ioctl call returns the bit error rate for the signal currently
216− received/demodulated by the front-end. For this command, read-only access to
217− the device is sufficient.</para>
218−</entry>
219− </row></tbody></tgroup></informaltable>
220−<para>SYNOPSIS
221−</para>
222−<informaltable><tgroup cols="1"><tbody><row><entry
223− align="char">
224−<para>int ioctl(int fd, int request = <link linkend="FE_READ_BER">FE_READ_BER</link>,
225− uint32_t &#x22C6;ber);</para>
226−</entry>
227− </row></tbody></tgroup></informaltable>
228−<para>PARAMETERS
229−</para>
230−<informaltable><tgroup cols="2"><tbody><row><entry
231− align="char">
232−<para>int fd</para>
233−</entry><entry
234− align="char">
235−<para>File descriptor returned by a previous call to open().</para>
236−</entry>
237− </row><row><entry
238− align="char">
239−<para>int request</para>
240−</entry><entry
241− align="char">
242−<para>Equals <link linkend="FE_READ_BER">FE_READ_BER</link> for this command.</para>
243−</entry>
244− </row><row><entry
245− align="char">
246−<para>uint32_t *ber</para>
247−</entry><entry
248− align="char">
249−<para>The bit error rate is stored into *ber.</para>
250−</entry>
251− </row></tbody></tgroup></informaltable>
252−
253−&return-value-dvb;
254−</section>
255−
256−<section id="FE_READ_SNR">
257−<title>FE_READ_SNR</title>
258−
259−<para>DESCRIPTION
260−</para>
261−<informaltable><tgroup cols="1"><tbody><row><entry
262− align="char">
263−<para>This ioctl call returns the signal-to-noise ratio for the signal currently received
264− by the front-end. For this command, read-only access to the device is sufficient.</para>
265−</entry>
266− </row></tbody></tgroup></informaltable>
267−<para>SYNOPSIS
268−</para>
269−<informaltable><tgroup cols="1"><tbody><row><entry
270− align="char">
271−<para>int ioctl(int fd, int request = <link linkend="FE_READ_SNR">FE_READ_SNR</link>, uint16_t
272− &#x22C6;snr);</para>
273−</entry>
274− </row></tbody></tgroup></informaltable>
275−<para>PARAMETERS
276−</para>
277−<informaltable><tgroup cols="2"><tbody><row><entry
278− align="char">
279−<para>int fd</para>
280−</entry><entry
281− align="char">
282−<para>File descriptor returned by a previous call to open().</para>
283−</entry>
284− </row><row><entry
285− align="char">
286−<para>int request</para>
287−</entry><entry
288− align="char">
289−<para>Equals <link linkend="FE_READ_SNR">FE_READ_SNR</link> for this command.</para>
290−</entry>
291− </row><row><entry
292− align="char">
293−<para>uint16_t *snr</para>
294−</entry><entry
295− align="char">
296−<para>The signal-to-noise ratio is stored into *snr.</para>
297−</entry>
298− </row></tbody></tgroup></informaltable>
299−
300−&return-value-dvb;
301−</section>
302−
303−<section id="FE_READ_SIGNAL_STRENGTH">
304−<title>FE_READ_SIGNAL_STRENGTH</title>
305−<para>DESCRIPTION
306−</para>
307−<informaltable><tgroup cols="1"><tbody><row><entry
308− align="char">
309−<para>This ioctl call returns the signal strength value for the signal currently received
310− by the front-end. For this command, read-only access to the device is sufficient.</para>
311−</entry>
312− </row></tbody></tgroup></informaltable>
313−<para>SYNOPSIS
314−</para>
315−<informaltable><tgroup cols="1"><tbody><row><entry
316− align="char">
317−<para>int ioctl( int fd, int request =
318− <link linkend="FE_READ_SIGNAL_STRENGTH">FE_READ_SIGNAL_STRENGTH</link>, uint16_t &#x22C6;strength);</para>
319−</entry>
320− </row></tbody></tgroup></informaltable>
321−
322−<para>PARAMETERS
323−</para>
324−<informaltable><tgroup cols="2"><tbody><row><entry
325− align="char">
326−<para>int fd</para>
327−</entry><entry
328− align="char">
329−<para>File descriptor returned by a previous call to open().</para>
330−</entry>
331− </row><row><entry
332− align="char">
333−<para>int request</para>
334−</entry><entry
335− align="char">
336−<para>Equals <link linkend="FE_READ_SIGNAL_STRENGTH">FE_READ_SIGNAL_STRENGTH</link> for this
337− command.</para>
338−</entry>
339− </row><row><entry
340− align="char">
341−<para>uint16_t *strength</para>
342−</entry><entry
343− align="char">
344−<para>The signal strength value is stored into *strength.</para>
345−</entry>
346− </row></tbody></tgroup></informaltable>
347−
348−&return-value-dvb;
349−</section>
350−
351−<section id="FE_READ_UNCORRECTED_BLOCKS">
352−<title>FE_READ_UNCORRECTED_BLOCKS</title>
353−<para>DESCRIPTION
354−</para>
355−<informaltable><tgroup cols="1"><tbody><row><entry
356− align="char">
357−<para>This ioctl call returns the number of uncorrected blocks detected by the device
358− driver during its lifetime. For meaningful measurements, the increment in block
359− count during a specific time interval should be calculated. For this command,
360− read-only access to the device is sufficient.</para>
361−</entry>
362− </row><row><entry
363− align="char">
364−<para>Note that the counter will wrap to zero after its maximum count has been
365− reached.</para>
366−</entry>
367− </row></tbody></tgroup></informaltable>
368−<para>SYNOPSIS
369−</para>
370−<informaltable><tgroup cols="1"><tbody><row><entry
371− align="char">
372−<para>int ioctl( int fd, int request =
373− <link linkend="FE_READ_UNCORRECTED_BLOCKS">FE_READ_UNCORRECTED_BLOCKS</link>, uint32_t &#x22C6;ublocks);</para>
374−</entry>
375− </row></tbody></tgroup></informaltable>
376−<para>PARAMETERS
377−</para>
378−<informaltable><tgroup cols="2"><tbody><row><entry
379− align="char">
380−<para>int fd</para>
381−</entry><entry
382− align="char">
383−<para>File descriptor returned by a previous call to open().</para>
384−</entry>
385− </row><row><entry
386− align="char">
387−<para>int request</para>
388−</entry><entry
389− align="char">
390−<para>Equals <link linkend="FE_READ_UNCORRECTED_BLOCKS">FE_READ_UNCORRECTED_BLOCKS</link> for this
391− command.</para>
392−</entry>
393− </row><row><entry
394− align="char">
395−<para>uint32_t *ublocks</para>
396−</entry><entry
397− align="char">
398−<para>The total number of uncorrected blocks seen by the driver
399− so far.</para>
400−</entry>
401− </row></tbody></tgroup></informaltable>
402−
403−&return-value-dvb;
404−</section>
405−
406−<section id="FE_SET_FRONTEND">
407−<title>FE_SET_FRONTEND</title>
408−<para>DESCRIPTION
409−</para>
410−<informaltable><tgroup cols="1"><tbody><row><entry
411− align="char">
412−<para>This ioctl call starts a tuning operation using specified parameters. The result
413− of this call will be successful if the parameters were valid and the tuning could
414− be initiated. The result of the tuning operation in itself, however, will arrive
415− asynchronously as an event (see documentation for <link linkend="FE_GET_EVENT">FE_GET_EVENT</link> and
416− FrontendEvent.) If a new <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> operation is initiated before
417− the previous one was completed, the previous operation will be aborted in favor
418− of the new one. This command requires read/write access to the device.</para>
419−</entry>
420− </row></tbody></tgroup></informaltable>
421−
422−<para>SYNOPSIS
423−</para>
424−<informaltable><tgroup cols="1"><tbody><row><entry
425− align="char">
426−<para>int ioctl(int fd, int request = <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link>,
427− struct dvb_frontend_parameters &#x22C6;p);</para>
428−</entry>
429− </row></tbody></tgroup></informaltable>
430−<para>PARAMETERS
431−</para>
432−<informaltable><tgroup cols="2"><tbody><row><entry
433− align="char">
434−<para>int fd</para>
435−</entry><entry
436− align="char">
437−<para>File descriptor returned by a previous call to open().</para>
438−</entry>
439− </row><row><entry
440− align="char">
441−<para>int request</para>
442−</entry><entry
443− align="char">
444−<para>Equals <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> for this command.</para>
445−</entry>
446− </row><row><entry
447− align="char">
448−<para>struct
449− dvb_frontend_parameters
450− *p</para>
451−</entry><entry
452− align="char">
453−<para>Points to parameters for tuning operation.</para>
454−</entry>
455− </row></tbody></tgroup></informaltable>
456−
457−&return-value-dvb;
458−<informaltable><tgroup cols="2"><tbody><row><entry
459− align="char">
460−<para>EINVAL</para>
461−</entry><entry
462− align="char">
463−<para>Maximum supported symbol rate reached.</para>
464−</entry>
465−</row></tbody></tgroup></informaltable>
466−</section>
467−
468−<section id="FE_GET_FRONTEND">
469−<title>FE_GET_FRONTEND</title>
470−<para>DESCRIPTION
471−</para>
472−<informaltable><tgroup cols="1"><tbody><row><entry
473− align="char">
474−<para>This ioctl call queries the currently effective frontend parameters. For this
475− command, read-only access to the device is sufficient.</para>
476−</entry>
477− </row></tbody></tgroup></informaltable>
478−
479−<para>SYNOPSIS
480−</para>
481−<informaltable><tgroup cols="1"><tbody><row><entry
482− align="char">
483−<para>int ioctl(int fd, int request = <link linkend="FE_GET_FRONTEND">FE_GET_FRONTEND</link>,
484− struct dvb_frontend_parameters &#x22C6;p);</para>
485−</entry>
486− </row></tbody></tgroup></informaltable>
487−
488−<para>PARAMETERS
489−</para>
490−<informaltable><tgroup cols="2"><tbody><row><entry
491− align="char">
492−<para>int fd</para>
493−</entry><entry
494− align="char">
495−<para>File descriptor returned by a previous call to open().</para>
496−</entry>
497− </row><row><entry
498− align="char">
499−<para>int request</para>
500−</entry><entry
501− align="char">
502−<para>Equals <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> for this command.</para>
503−</entry>
504− </row><row><entry
505− align="char">
506−<para>struct
507− dvb_frontend_parameters
508− *p</para>
509−</entry><entry
510− align="char">
511−<para>Points to parameters for tuning operation.</para>
512−</entry>
513− </row></tbody></tgroup></informaltable>
514−
515−&return-value-dvb;
516−<informaltable><tgroup cols="2"><tbody><row><entry
517− align="char">
518−<para>EINVAL</para>
519−</entry><entry
520− align="char">
521−<para>Maximum supported symbol rate reached.</para>
522−</entry>
523− </row></tbody></tgroup></informaltable>
524−
525−</section>
526−
527−<section id="FE_GET_EVENT">
528−<title>FE_GET_EVENT</title>
529−<para>DESCRIPTION
530−</para>
531−<informaltable><tgroup cols="1"><tbody><row><entry
532− align="char">
533−<para>This ioctl call returns a frontend event if available. If an event is not
534− available, the behavior depends on whether the device is in blocking or
535− non-blocking mode. In the latter case, the call fails immediately with errno
536− set to EWOULDBLOCK. In the former case, the call blocks until an event
537− becomes available.</para>
538−</entry>
539− </row><row><entry
540− align="char">
541−<para>The standard Linux poll() and/or select() system calls can be used with the
542− device file descriptor to watch for new events. For select(), the file descriptor
543− should be included in the exceptfds argument, and for poll(), POLLPRI should
544− be specified as the wake-up condition. Since the event queue allocated is
545− rather small (room for 8 events), the queue must be serviced regularly to avoid
546− overflow. If an overflow happens, the oldest event is discarded from the queue,
547− and an error (EOVERFLOW) occurs the next time the queue is read. After
548− reporting the error condition in this fashion, subsequent
549− <link linkend="FE_GET_EVENT">FE_GET_EVENT</link>
550− calls will return events from the queue as usual.</para>
551−</entry>
552− </row><row><entry
553− align="char">
554−<para>For the sake of implementation simplicity, this command requires read/write
555− access to the device.</para>
556−</entry>
557− </row></tbody></tgroup></informaltable>
558−
559−<para>SYNOPSIS
560−</para>
561−<informaltable><tgroup cols="1"><tbody><row><entry
562− align="char">
563−<para>int ioctl(int fd, int request = QPSK_GET_EVENT,
564− struct dvb_frontend_event &#x22C6;ev);</para>
565−</entry>
566− </row></tbody></tgroup></informaltable>
567−
568−<para>PARAMETERS
569−</para>
570−<informaltable><tgroup cols="2"><tbody><row><entry
571− align="char">
572−<para>int fd</para>
573−</entry><entry
574− align="char">
575−<para>File descriptor returned by a previous call to open().</para>
576−</entry>
577− </row><row><entry
578− align="char">
579−<para>int request</para>
580−</entry><entry
581− align="char">
582−<para>Equals <link linkend="FE_GET_EVENT">FE_GET_EVENT</link> for this command.</para>
583−</entry>
584− </row><row><entry
585− align="char">
586−<para>struct
587− dvb_frontend_event
588− *ev</para>
589−</entry><entry
590− align="char">
591−<para>Points to the location where the event,</para>
592−</entry>
593− </row><row><entry
594− align="char">
595−</entry><entry
596− align="char">
597−<para>if any, is to be stored.</para>
598−</entry>
599− </row></tbody></tgroup></informaltable>
600−
601−&return-value-dvb;
602−<informaltable><tgroup cols="2"><tbody><row><entry
603− align="char">
604−<para>EWOULDBLOCK</para>
605−</entry><entry
606− align="char">
607−<para>There is no event pending, and the device is in
608− non-blocking mode.</para>
609−</entry>
610− </row><row><entry
611− align="char">
612−<para>EOVERFLOW</para>
613−</entry><entry
614− align="char">
615−<para>Overflow in event queue - one or more events were lost.</para>
616−</entry>
617−</row></tbody></tgroup></informaltable>
618−</section>
619−
620−<section id="FE_DISHNETWORK_SEND_LEGACY_CMD">
621− <title>FE_DISHNETWORK_SEND_LEGACY_CMD</title>
622−<para>DESCRIPTION</para>
623−<informaltable><tgroup cols="1"><tbody><row>
624−<entry align="char">
625−<para>WARNING: This is a very obscure legacy command, used only at stv0299 driver. Should not be used on newer drivers.</para>
626−<para>It provides a non-standard method for selecting Diseqc voltage on the frontend, for Dish Network legacy switches.</para>
627−<para>As support for this ioctl were added in 2004, this means that such dishes were already legacy in 2004.</para>
628−</entry>
629−</row></tbody></tgroup></informaltable>
630−
631−<para>SYNOPSIS</para>
632−<informaltable><tgroup cols="1"><tbody><row>
633−<entry align="char">
634−<para>int ioctl(int fd, int request =
635− <link linkend="FE_DISHNETWORK_SEND_LEGACY_CMD">FE_DISHNETWORK_SEND_LEGACY_CMD</link>, unsigned long cmd);</para>
636−</entry>
637−</row></tbody></tgroup></informaltable>
638−
639−<para>PARAMETERS</para>
640−<informaltable><tgroup cols="2"><tbody><row>
641−<entry align="char">
642− <para>unsigned long cmd</para>
643−</entry>
644−<entry align="char">
645−<para>
646−sends the specified raw cmd to the dish via DISEqC.
647−</para>
648−</entry>
649− </row></tbody></tgroup></informaltable>
650−
651−&return-value-dvb;
652−</section>
653−
654−</section>
Documentation/DocBook/media/dvb/intro.xml+0−211
@@ -1,211 +0,0 @@
1−<title>Introduction</title>
2−
3−<section id="requisites">
4−<title>What you need to know</title>
5−
6−<para>The reader of this document is required to have some knowledge in
7−the area of digital video broadcasting (DVB) and should be familiar with
8−part I of the MPEG2 specification ISO/IEC 13818 (aka ITU-T H.222), i.e
9−you should know what a program/transport stream (PS/TS) is and what is
10−meant by a packetized elementary stream (PES) or an I-frame.</para>
11−
12−<para>Various DVB standards documents are available from
13−<ulink url="http://www.dvb.org" /> and/or
14−<ulink url="http://www.etsi.org" />.</para>
15−
16−<para>It is also necessary to know how to access unix/linux devices and
17−how to use ioctl calls. This also includes the knowledge of C or C++.
18−</para>
19−</section>
20−
21−<section id="history">
22−<title>History</title>
23−
24−<para>The first API for DVB cards we used at Convergence in late 1999
25−was an extension of the Video4Linux API which was primarily developed
26−for frame grabber cards. As such it was not really well suited to be
27−used for DVB cards and their new features like recording MPEG streams
28−and filtering several section and PES data streams at the same time.
29−</para>
30−
31−<para>In early 2000, we were approached by Nokia with a proposal for a
32−new standard Linux DVB API. As a commitment to the development of
33−terminals based on open standards, Nokia and Convergence made it
34−available to all Linux developers and published it on
35−<ulink url="https://linuxtv.org" /> in September 2000.
36−Convergence is the maintainer of the Linux DVB API. Together with the
37−LinuxTV community (i.e. you, the reader of this document), the Linux DVB
38−API will be constantly reviewed and improved. With the Linux driver for
39−the Siemens/Hauppauge DVB PCI card Convergence provides a first
40−implementation of the Linux DVB API.</para>
41−</section>
42−
43−<section id="overview">
44−<title>Overview</title>
45−
46−<figure id="stb_components">
47−<title>Components of a DVB card/STB</title>
48−<mediaobject>
49−<imageobject>
50−<imagedata fileref="dvbstb.pdf" format="PS" />
51−</imageobject>
52−<imageobject>
53−<imagedata fileref="dvbstb.png" format="PNG" />
54−</imageobject>
55−</mediaobject>
56−</figure>
57−
58−<para>A DVB PCI card or DVB set-top-box (STB) usually consists of the
59−following main hardware components: </para>
60−
61−<itemizedlist>
62− <listitem>
63−
64−<para>Frontend consisting of tuner and DVB demodulator</para>
65−
66−<para>Here the raw signal reaches the DVB hardware from a satellite dish
67−or antenna or directly from cable. The frontend down-converts and
68−demodulates this signal into an MPEG transport stream (TS). In case of a
69−satellite frontend, this includes a facility for satellite equipment
70−control (SEC), which allows control of LNB polarization, multi feed
71−switches or dish rotors.</para>
72−
73−</listitem>
74− <listitem>
75−
76−<para>Conditional Access (CA) hardware like CI adapters and smartcard slots
77−</para>
78−
79−<para>The complete TS is passed through the CA hardware. Programs to
80−which the user has access (controlled by the smart card) are decoded in
81−real time and re-inserted into the TS.</para>
82−
83−</listitem>
84− <listitem>
85− <para>Demultiplexer which filters the incoming DVB stream</para>
86−
87−<para>The demultiplexer splits the TS into its components like audio and
88−video streams. Besides usually several of such audio and video streams
89−it also contains data streams with information about the programs
90−offered in this or other streams of the same provider.</para>
91−
92−</listitem>
93−<listitem>
94−
95−<para>MPEG2 audio and video decoder</para>
96−
97−<para>The main targets of the demultiplexer are the MPEG2 audio and
98−video decoders. After decoding they pass on the uncompressed audio and
99−video to the computer screen or (through a PAL/NTSC encoder) to a TV
100−set.</para>
101−
102−
103−</listitem>
104−</itemizedlist>
105−
106−<para><xref linkend="stb_components" /> shows a crude schematic of the control and data flow
107−between those components.</para>
108−
109−<para>On a DVB PCI card not all of these have to be present since some
110−functionality can be provided by the main CPU of the PC (e.g. MPEG
111−picture and sound decoding) or is not needed (e.g. for data-only uses
112−like &#8220;internet over satellite&#8221;). Also not every card or STB
113−provides conditional access hardware.</para>
114−
115−</section>
116−
117−<section id="dvb_devices">
118−<title>Linux DVB Devices</title>
119−
120−<para>The Linux DVB API lets you control these hardware components
121−through currently six Unix-style character devices for video, audio,
122−frontend, demux, CA and IP-over-DVB networking. The video and audio
123−devices control the MPEG2 decoder hardware, the frontend device the
124−tuner and the DVB demodulator. The demux device gives you control over
125−the PES and section filters of the hardware. If the hardware does not
126−support filtering these filters can be implemented in software. Finally,
127−the CA device controls all the conditional access capabilities of the
128−hardware. It can depend on the individual security requirements of the
129−platform, if and how many of the CA functions are made available to the
130−application through this device.</para>
131−
132−<para>All devices can be found in the <constant>/dev</constant>
133−tree under <constant>/dev/dvb</constant>. The individual devices
134−are called:</para>
135−
136−<itemizedlist>
137−<listitem>
138−
139−<para><constant>/dev/dvb/adapterN/audioM</constant>,</para>
140−</listitem>
141−<listitem>
142−<para><constant>/dev/dvb/adapterN/videoM</constant>,</para>
143−</listitem>
144−<listitem>
145−<para><constant>/dev/dvb/adapterN/frontendM</constant>,</para>
146−</listitem>
147− <listitem>
148−
149−<para><constant>/dev/dvb/adapterN/netM</constant>,</para>
150−</listitem>
151− <listitem>
152−
153−<para><constant>/dev/dvb/adapterN/demuxM</constant>,</para>
154−</listitem>
155− <listitem>
156−
157−<para><constant>/dev/dvb/adapterN/dvrM</constant>,</para>
158−</listitem>
159− <listitem>
160−
161−<para><constant>/dev/dvb/adapterN/caM</constant>,</para></listitem></itemizedlist>
162−
163−<para>where N enumerates the DVB PCI cards in a system starting
164−from&#x00A0;0, and M enumerates the devices of each type within each
165−adapter, starting from&#x00A0;0, too. We will omit the &#8220;
166−<constant>/dev/dvb/adapterN/</constant>&#8221; in the further discussion
167−of these devices.</para>
168−
169−<para>More details about the data structures and function calls of all
170−the devices are described in the following chapters.</para>
171−
172−</section>
173−
174−<section id="include_files">
175−<title>API include files</title>
176−
177−<para>For each of the DVB devices a corresponding include file exists.
178−The DVB API include files should be included in application sources with
179−a partial path like:</para>
180−
181−<programlisting>
182− #include &#x003C;linux/dvb/audio.h&#x003E;
183−</programlisting>
184−<programlisting>
185− #include &#x003C;linux/dvb/ca.h&#x003E;
186−</programlisting>
187−<programlisting>
188− #include &#x003C;linux/dvb/dmx.h&#x003E;
189−</programlisting>
190−<programlisting>
191− #include &#x003C;linux/dvb/frontend.h&#x003E;
192−</programlisting>
193−<programlisting>
194− #include &#x003C;linux/dvb/net.h&#x003E;
195−</programlisting>
196−<programlisting>
197− #include &#x003C;linux/dvb/osd.h&#x003E;
198−</programlisting>
199−<programlisting>
200− #include &#x003C;linux/dvb/video.h&#x003E;
201−</programlisting>
202−
203−<para>To enable applications to support different API version, an
204−additional include file
205−<constant>linux/dvb/version.h</constant> exists, which defines the
206−constant <constant>DVB_API_VERSION</constant>. This document
207−describes <constant>DVB_API_VERSION 5.10</constant>.
208−</para>
209−
210−</section>
211−
Documentation/DocBook/media/dvb/net.xml+0−238
@@ -1,238 +0,0 @@
1−<title>DVB Network API</title>
2−<para>The DVB net device controls the mapping of data packages that are
3− part of a transport stream to be mapped into a virtual network interface,
4− visible through the standard Linux network protocol stack.</para>
5−<para>Currently, two encapsulations are supported:</para>
6−<itemizedlist>
7− <listitem><para><ulink url="http://en.wikipedia.org/wiki/Multiprotocol_Encapsulation">
8− Multi Protocol Encapsulation (MPE)</ulink></para></listitem>
9− <listitem><para><ulink url="http://en.wikipedia.org/wiki/Unidirectional_Lightweight_Encapsulation">
10− Ultra Lightweight Encapsulation (ULE)</ulink></para></listitem>
11−</itemizedlist>
12−
13−<para>In order to create the Linux virtual network interfaces, an application
14− needs to tell to the Kernel what are the PIDs and the encapsulation types
15− that are present on the transport stream. This is done through
16− <constant>/dev/dvb/adapter?/net?</constant> device node.
17− The data will be available via virtual <constant>dvb?_?</constant>
18− network interfaces, and will be controlled/routed via the standard
19− ip tools (like ip, route, netstat, ifconfig, etc).</para>
20−<para> Data types and and ioctl definitions are defined via
21− <constant>linux/dvb/net.h</constant> header.</para>
22−
23−<section id="net_fcalls">
24−<title>DVB net Function Calls</title>
25−
26−
27−<refentry id="NET_ADD_IF">
28− <refmeta>
29− <refentrytitle>ioctl NET_ADD_IF</refentrytitle>
30− &manvol;
31− </refmeta>
32−
33− <refnamediv>
34− <refname>NET_ADD_IF</refname>
35− <refpurpose>Creates a new network interface for a given Packet ID.</refpurpose>
36− </refnamediv>
37−
38− <refsynopsisdiv>
39− <funcsynopsis>
40− <funcprototype>
41− <funcdef>int <function>ioctl</function></funcdef>
42− <paramdef>int <parameter>fd</parameter></paramdef>
43− <paramdef>int <parameter>request</parameter></paramdef>
44− <paramdef>struct dvb_net_if *<parameter>net_if</parameter></paramdef>
45− </funcprototype>
46− </funcsynopsis>
47− </refsynopsisdiv>
48−
49− <refsect1>
50− <title>Arguments</title>
51− <variablelist>
52− <varlistentry>
53− <term><parameter>fd</parameter></term>
54− <listitem>
55− <para>&fe_fd;</para>
56− </listitem>
57− </varlistentry>
58− <varlistentry>
59− <term><parameter>request</parameter></term>
60− <listitem>
61− <para>FE_SET_TONE</para>
62− </listitem>
63− </varlistentry>
64− <varlistentry>
65− <term><parameter>net_if</parameter></term>
66− <listitem>
67− <para>pointer to &dvb-net-if;</para>
68− </listitem>
69− </varlistentry>
70− </variablelist>
71− </refsect1>
72−
73− <refsect1>
74− <title>Description</title>
75−
76−<para>The NET_ADD_IF ioctl system call selects the Packet ID (PID) that
77− contains a TCP/IP traffic, the type of encapsulation to be used (MPE or ULE)
78− and the interface number for the new interface to be created. When the
79− system call successfully returns, a new virtual network interface is created.</para>
80−<para>The &dvb-net-if;::ifnum field will be filled with the number of the
81− created interface.</para>
82−
83−&return-value-dvb;
84−</refsect1>
85−
86−<refsect1 id="dvb-net-if-t">
87−<title>struct <structname>dvb_net_if</structname> description</title>
88−
89−<table pgwide="1" frame="none" id="dvb-net-if">
90− <title>struct <structname>dvb_net_if</structname></title>
91− <tgroup cols="2">
92− &cs-def;
93− <thead>
94− <row>
95− <entry>ID</entry>
96− <entry>Description</entry>
97− </row>
98− </thead>
99− <tbody valign="top">
100− <row>
101− <entry align="char">pid</entry>
102− <entry align="char">Packet ID (PID) of the MPEG-TS that contains
103− data</entry>
104− </row><row>
105− <entry align="char">ifnum</entry>
106− <entry align="char">number of the DVB interface.</entry>
107− </row><row>
108− <entry align="char">feedtype</entry>
109− <entry align="char">Encapsulation type of the feed. It can be:
110− <constant>DVB_NET_FEEDTYPE_MPE</constant> for MPE encoding
111− or
112− <constant>DVB_NET_FEEDTYPE_ULE</constant> for ULE encoding.
113− </entry>
114− </row>
115− </tbody>
116− </tgroup>
117−</table>
118−</refsect1>
119−</refentry>
120−
121−<refentry id="NET_REMOVE_IF">
122− <refmeta>
123− <refentrytitle>ioctl NET_REMOVE_IF</refentrytitle>
124− &manvol;
125− </refmeta>
126−
127− <refnamediv>
128− <refname>NET_REMOVE_IF</refname>
129− <refpurpose>Removes a network interface.</refpurpose>
130− </refnamediv>
131−
132− <refsynopsisdiv>
133− <funcsynopsis>
134− <funcprototype>
135− <funcdef>int <function>ioctl</function></funcdef>
136− <paramdef>int <parameter>fd</parameter></paramdef>
137− <paramdef>int <parameter>request</parameter></paramdef>
138− <paramdef>int <parameter>ifnum</parameter></paramdef>
139− </funcprototype>
140− </funcsynopsis>
141− </refsynopsisdiv>
142−
143− <refsect1>
144− <title>Arguments</title>
145− <variablelist>
146− <varlistentry>
147− <term><parameter>fd</parameter></term>
148− <listitem>
149− <para>&fe_fd;</para>
150− </listitem>
151− </varlistentry>
152− <varlistentry>
153− <term><parameter>request</parameter></term>
154− <listitem>
155− <para>FE_SET_TONE</para>
156− </listitem>
157− </varlistentry>
158− <varlistentry>
159− <term><parameter>net_if</parameter></term>
160− <listitem>
161− <para>number of the interface to be removed</para>
162− </listitem>
163− </varlistentry>
164− </variablelist>
165− </refsect1>
166−
167− <refsect1>
168− <title>Description</title>
169−
170−<para>The NET_REMOVE_IF ioctl deletes an interface previously created
171− via &NET-ADD-IF;.</para>
172−
173−&return-value-dvb;
174−</refsect1>
175−</refentry>
176−
177−
178−<refentry id="NET_GET_IF">
179− <refmeta>
180− <refentrytitle>ioctl NET_GET_IF</refentrytitle>
181− &manvol;
182− </refmeta>
183−
184− <refnamediv>
185− <refname>NET_GET_IF</refname>
186− <refpurpose>Read the configuration data of an interface created via
187− &NET-ADD-IF;.</refpurpose>
188− </refnamediv>
189−
190− <refsynopsisdiv>
191− <funcsynopsis>
192− <funcprototype>
193− <funcdef>int <function>ioctl</function></funcdef>
194− <paramdef>int <parameter>fd</parameter></paramdef>
195− <paramdef>int <parameter>request</parameter></paramdef>
196− <paramdef>struct dvb_net_if *<parameter>net_if</parameter></paramdef>
197− </funcprototype>
198− </funcsynopsis>
199− </refsynopsisdiv>
200−
201− <refsect1>
202− <title>Arguments</title>
203− <variablelist>
204− <varlistentry>
205− <term><parameter>fd</parameter></term>
206− <listitem>
207− <para>&fe_fd;</para>
208− </listitem>
209− </varlistentry>
210− <varlistentry>
211− <term><parameter>request</parameter></term>
212− <listitem>
213− <para>FE_SET_TONE</para>
214− </listitem>
215− </varlistentry>
216− <varlistentry>
217− <term><parameter>net_if</parameter></term>
218− <listitem>
219− <para>pointer to &dvb-net-if;</para>
220− </listitem>
221− </varlistentry>
222− </variablelist>
223− </refsect1>
224−
225− <refsect1>
226− <title>Description</title>
227−
228−<para>The NET_GET_IF ioctl uses the interface number given by the
229− &dvb-net-if;::ifnum field and fills the content of &dvb-net-if; with
230− the packet ID and encapsulation type used on such interface. If the
231− interface was not created yet with &NET-ADD-IF;, it will return -1 and
232− fill the <constant>errno</constant> with <constant>EINVAL</constant>
233− error code.</para>
234−
235−&return-value-dvb;
236−</refsect1>
237−</refentry>
238−</section>
Documentation/DocBook/media/dvb/video.xml+0−1968
@@ -1,1968 +0,0 @@
1−<title>DVB Video Device</title>
2−<para>The DVB video device controls the MPEG2 video decoder of the DVB hardware. It
3−can be accessed through <emphasis role="bold">/dev/dvb/adapter0/video0</emphasis>. Data types and and
4−ioctl definitions can be accessed by including <emphasis role="bold">linux/dvb/video.h</emphasis> in your
5−application.
6−</para>
7−<para>Note that the DVB video device only controls decoding of the MPEG video stream, not
8−its presentation on the TV or computer screen. On PCs this is typically handled by an
9−associated video4linux device, e.g. <emphasis role="bold">/dev/video</emphasis>, which allows scaling and defining output
10−windows.
11−</para>
12−<para>Some DVB cards don&#8217;t have their own MPEG decoder, which results in the omission of
13−the audio and video device as well as the video4linux device.
14−</para>
15−<para>The ioctls that deal with SPUs (sub picture units) and navigation packets are only
16−supported on some MPEG decoders made for DVD playback.
17−</para>
18−<para>
19−These ioctls were also used by V4L2 to control MPEG decoders implemented in V4L2. The use
20−of these ioctls for that purpose has been made obsolete and proper V4L2 ioctls or controls
21−have been created to replace that functionality.</para>
22−<section id="video_types">
23−<title>Video Data Types</title>
24−
25−<section id="video-format-t">
26−<title>video_format_t</title>
27−<para>The <constant>video_format_t</constant> data type defined by
28−</para>
29−<programlisting>
30−typedef enum {
31− VIDEO_FORMAT_4_3, /&#x22C6; Select 4:3 format &#x22C6;/
32− VIDEO_FORMAT_16_9, /&#x22C6; Select 16:9 format. &#x22C6;/
33− VIDEO_FORMAT_221_1 /&#x22C6; 2.21:1 &#x22C6;/
34−} video_format_t;
35−</programlisting>
36−<para>is used in the VIDEO_SET_FORMAT function (??) to tell the driver which aspect ratio
37−the output hardware (e.g. TV) has. It is also used in the data structures video_status
38−(??) returned by VIDEO_GET_STATUS (??) and video_event (??) returned by
39−VIDEO_GET_EVENT (??) which report about the display format of the current video
40−stream.
41−</para>
42−</section>
43−
44−<section id="video-displayformat-t">
45−<title>video_displayformat_t</title>
46−<para>In case the display format of the video stream and of the display hardware differ the
47−application has to specify how to handle the cropping of the picture. This can be done using
48−the VIDEO_SET_DISPLAY_FORMAT call (??) which accepts
49−</para>
50−<programlisting>
51−typedef enum {
52− VIDEO_PAN_SCAN, /&#x22C6; use pan and scan format &#x22C6;/
53− VIDEO_LETTER_BOX, /&#x22C6; use letterbox format &#x22C6;/
54− VIDEO_CENTER_CUT_OUT /&#x22C6; use center cut out format &#x22C6;/
55−} video_displayformat_t;
56−</programlisting>
57−<para>as argument.
58−</para>
59−</section>
60−
61−<section id="video-stream-source-t">
62−<title>video_stream_source_t</title>
63−<para>The video stream source is set through the VIDEO_SELECT_SOURCE call and can take
64−the following values, depending on whether we are replaying from an internal (demuxer) or
65−external (user write) source.
66−</para>
67−<programlisting>
68−typedef enum {
69− VIDEO_SOURCE_DEMUX, /&#x22C6; Select the demux as the main source &#x22C6;/
70− VIDEO_SOURCE_MEMORY /&#x22C6; If this source is selected, the stream
71− comes from the user through the write
72− system call &#x22C6;/
73−} video_stream_source_t;
74−</programlisting>
75−<para>VIDEO_SOURCE_DEMUX selects the demultiplexer (fed either by the frontend or the
76−DVR device) as the source of the video stream. If VIDEO_SOURCE_MEMORY
77−is selected the stream comes from the application through the <emphasis role="bold">write()</emphasis> system
78−call.
79−</para>
80−</section>
81−
82−<section id="video-play-state-t">
83−<title>video_play_state_t</title>
84−<para>The following values can be returned by the VIDEO_GET_STATUS call representing the
85−state of video playback.
86−</para>
87−<programlisting>
88−typedef enum {
89− VIDEO_STOPPED, /&#x22C6; Video is stopped &#x22C6;/
90− VIDEO_PLAYING, /&#x22C6; Video is currently playing &#x22C6;/
91− VIDEO_FREEZED /&#x22C6; Video is freezed &#x22C6;/
92−} video_play_state_t;
93−</programlisting>
94−</section>
95−
96−<section id="video-command">
97−<title>struct video_command</title>
98−<para>The structure must be zeroed before use by the application
99−This ensures it can be extended safely in the future.</para>
100−<programlisting>
101−struct video_command {
102− __u32 cmd;
103− __u32 flags;
104− union {
105− struct {
106− __u64 pts;
107− } stop;
108−
109− struct {
110− /&#x22C6; 0 or 1000 specifies normal speed,
111− 1 specifies forward single stepping,
112− -1 specifies backward single stepping,
113− &gt;>1: playback at speed/1000 of the normal speed,
114− &lt;-1: reverse playback at (-speed/1000) of the normal speed. &#x22C6;/
115− __s32 speed;
116− __u32 format;
117− } play;
118−
119− struct {
120− __u32 data[16];
121− } raw;
122− };
123−};
124−</programlisting>
125−</section>
126−
127−<section id="video-size-t">
128−<title>video_size_t</title>
129−<programlisting>
130−typedef struct {
131− int w;
132− int h;
133− video_format_t aspect_ratio;
134−} video_size_t;
135−</programlisting>
136−</section>
137−
138−
139−<section id="video-event">
140−<title>struct video_event</title>
141−<para>The following is the structure of a video event as it is returned by the VIDEO_GET_EVENT
142−call.
143−</para>
144−<programlisting>
145−struct video_event {
146− __s32 type;
147−#define VIDEO_EVENT_SIZE_CHANGED 1
148−#define VIDEO_EVENT_FRAME_RATE_CHANGED 2
149−#define VIDEO_EVENT_DECODER_STOPPED 3
150−#define VIDEO_EVENT_VSYNC 4
151− __kernel_time_t timestamp;
152− union {
153− video_size_t size;
154− unsigned int frame_rate; /&#x22C6; in frames per 1000sec &#x22C6;/
155− unsigned char vsync_field; /&#x22C6; unknown/odd/even/progressive &#x22C6;/
156− } u;
157−};
158−</programlisting>
159−</section>
160−
161−<section id="video-status">
162−<title>struct video_status</title>
163−<para>The VIDEO_GET_STATUS call returns the following structure informing about various
164−states of the playback operation.
165−</para>
166−<programlisting>
167−struct video_status {
168− int video_blank; /&#x22C6; blank video on freeze? &#x22C6;/
169− video_play_state_t play_state; /&#x22C6; current state of playback &#x22C6;/
170− video_stream_source_t stream_source; /&#x22C6; current source (demux/memory) &#x22C6;/
171− video_format_t video_format; /&#x22C6; current aspect ratio of stream &#x22C6;/
172− video_displayformat_t display_format;/&#x22C6; selected cropping mode &#x22C6;/
173−};
174−</programlisting>
175−<para>If video_blank is set video will be blanked out if the channel is changed or if playback is
176−stopped. Otherwise, the last picture will be displayed. play_state indicates if the video is
177−currently frozen, stopped, or being played back. The stream_source corresponds to the seleted
178−source for the video stream. It can come either from the demultiplexer or from memory.
179−The video_format indicates the aspect ratio (one of 4:3 or 16:9) of the currently
180−played video stream. Finally, display_format corresponds to the selected cropping
181−mode in case the source video format is not the same as the format of the output
182−device.
183−</para>
184−</section>
185−
186−<section id="video-still-picture">
187−<title>struct video_still_picture</title>
188−<para>An I-frame displayed via the VIDEO_STILLPICTURE call is passed on within the
189−following structure.
190−</para>
191−<programlisting>
192−/&#x22C6; pointer to and size of a single iframe in memory &#x22C6;/
193−struct video_still_picture {
194− char &#x22C6;iFrame; /&#x22C6; pointer to a single iframe in memory &#x22C6;/
195− int32_t size;
196−};
197−</programlisting>
198−</section>
199−
200−<section id="video_caps">
201−<title>video capabilities</title>
202−<para>A call to VIDEO_GET_CAPABILITIES returns an unsigned integer with the following
203−bits set according to the hardwares capabilities.
204−</para>
205−<programlisting>
206− /&#x22C6; bit definitions for capabilities: &#x22C6;/
207− /&#x22C6; can the hardware decode MPEG1 and/or MPEG2? &#x22C6;/
208− #define VIDEO_CAP_MPEG1 1
209− #define VIDEO_CAP_MPEG2 2
210− /&#x22C6; can you send a system and/or program stream to video device?
211− (you still have to open the video and the audio device but only
212− send the stream to the video device) &#x22C6;/
213− #define VIDEO_CAP_SYS 4
214− #define VIDEO_CAP_PROG 8
215− /&#x22C6; can the driver also handle SPU, NAVI and CSS encoded data?
216− (CSS API is not present yet) &#x22C6;/
217− #define VIDEO_CAP_SPU 16
218− #define VIDEO_CAP_NAVI 32
219− #define VIDEO_CAP_CSS 64
220−</programlisting>
221−</section>
222−
223−<section id="video-system">
224−<title>video_system_t</title>
225−<para>A call to VIDEO_SET_SYSTEM sets the desired video system for TV output. The
226−following system types can be set:
227−</para>
228−<programlisting>
229−typedef enum {
230− VIDEO_SYSTEM_PAL,
231− VIDEO_SYSTEM_NTSC,
232− VIDEO_SYSTEM_PALN,
233− VIDEO_SYSTEM_PALNc,
234− VIDEO_SYSTEM_PALM,
235− VIDEO_SYSTEM_NTSC60,
236− VIDEO_SYSTEM_PAL60,
237− VIDEO_SYSTEM_PALM60
238−} video_system_t;
239−</programlisting>
240−</section>
241−
242−<section id="video-highlight">
243−<title>struct video_highlight</title>
244−<para>Calling the ioctl VIDEO_SET_HIGHLIGHTS posts the SPU highlight information. The
245−call expects the following format for that information:
246−</para>
247−<programlisting>
248− typedef
249− struct video_highlight {
250− boolean active; /&#x22C6; 1=show highlight, 0=hide highlight &#x22C6;/
251− uint8_t contrast1; /&#x22C6; 7- 4 Pattern pixel contrast &#x22C6;/
252− /&#x22C6; 3- 0 Background pixel contrast &#x22C6;/
253− uint8_t contrast2; /&#x22C6; 7- 4 Emphasis pixel-2 contrast &#x22C6;/
254− /&#x22C6; 3- 0 Emphasis pixel-1 contrast &#x22C6;/
255− uint8_t color1; /&#x22C6; 7- 4 Pattern pixel color &#x22C6;/
256− /&#x22C6; 3- 0 Background pixel color &#x22C6;/
257− uint8_t color2; /&#x22C6; 7- 4 Emphasis pixel-2 color &#x22C6;/
258− /&#x22C6; 3- 0 Emphasis pixel-1 color &#x22C6;/
259− uint32_t ypos; /&#x22C6; 23-22 auto action mode &#x22C6;/
260− /&#x22C6; 21-12 start y &#x22C6;/
261− /&#x22C6; 9- 0 end y &#x22C6;/
262− uint32_t xpos; /&#x22C6; 23-22 button color number &#x22C6;/
263− /&#x22C6; 21-12 start x &#x22C6;/
264− /&#x22C6; 9- 0 end x &#x22C6;/
265− } video_highlight_t;
266−</programlisting>
267−
268−</section>
269−<section id="video-spu">
270−<title>struct video_spu</title>
271−<para>Calling VIDEO_SET_SPU deactivates or activates SPU decoding, according to the
272−following format:
273−</para>
274−<programlisting>
275− typedef
276− struct video_spu {
277− boolean active;
278− int stream_id;
279− } video_spu_t;
280−</programlisting>
281−
282−</section>
283−<section id="video-spu-palette">
284−<title>struct video_spu_palette</title>
285−<para>The following structure is used to set the SPU palette by calling VIDEO_SPU_PALETTE:
286−</para>
287−<programlisting>
288− typedef
289− struct video_spu_palette {
290− int length;
291− uint8_t &#x22C6;palette;
292− } video_spu_palette_t;
293−</programlisting>
294−
295−</section>
296−<section id="video-navi-pack">
297−<title>struct video_navi_pack</title>
298−<para>In order to get the navigational data the following structure has to be passed to the ioctl
299−VIDEO_GET_NAVI:
300−</para>
301−<programlisting>
302− typedef
303− struct video_navi_pack {
304− int length; /&#x22C6; 0 ... 1024 &#x22C6;/
305− uint8_t data[1024];
306− } video_navi_pack_t;
307−</programlisting>
308−</section>
309−
310−
311−<section id="video-attributes-t">
312−<title>video_attributes_t</title>
313−<para>The following attributes can be set by a call to VIDEO_SET_ATTRIBUTES:
314−</para>
315−<programlisting>
316− typedef uint16_t video_attributes_t;
317− /&#x22C6; bits: descr. &#x22C6;/
318− /&#x22C6; 15-14 Video compression mode (0=MPEG-1, 1=MPEG-2) &#x22C6;/
319− /&#x22C6; 13-12 TV system (0=525/60, 1=625/50) &#x22C6;/
320− /&#x22C6; 11-10 Aspect ratio (0=4:3, 3=16:9) &#x22C6;/
321− /&#x22C6; 9- 8 permitted display mode on 4:3 monitor (0=both, 1=only pan-sca &#x22C6;/
322− /&#x22C6; 7 line 21-1 data present in GOP (1=yes, 0=no) &#x22C6;/
323− /&#x22C6; 6 line 21-2 data present in GOP (1=yes, 0=no) &#x22C6;/
324− /&#x22C6; 5- 3 source resolution (0=720x480/576, 1=704x480/576, 2=352x480/57 &#x22C6;/
325− /&#x22C6; 2 source letterboxed (1=yes, 0=no) &#x22C6;/
326− /&#x22C6; 0 film/camera mode (0=camera, 1=film (625/50 only)) &#x22C6;/
327−</programlisting>
328−</section></section>
329−
330−
331−<section id="video_function_calls">
332−<title>Video Function Calls</title>
333−
334−
335−<section id="video_fopen">
336−<title>open()</title>
337−<para>DESCRIPTION
338−</para>
339−<informaltable><tgroup cols="1"><tbody><row><entry
340− align="char">
341−<para>This system call opens a named video device (e.g. /dev/dvb/adapter0/video0)
342− for subsequent use.</para>
343−<para>When an open() call has succeeded, the device will be ready for use.
344− The significance of blocking or non-blocking mode is described in the
345− documentation for functions where there is a difference. It does not affect the
346− semantics of the open() call itself. A device opened in blocking mode can later
347− be put into non-blocking mode (and vice versa) using the F_SETFL command
348− of the fcntl system call. This is a standard system call, documented in the Linux
349− manual page for fcntl. Only one user can open the Video Device in O_RDWR
350− mode. All other attempts to open the device in this mode will fail, and an
351− error-code will be returned. If the Video Device is opened in O_RDONLY
352− mode, the only ioctl call that can be used is VIDEO_GET_STATUS. All other
353− call will return an error code.</para>
354−</entry>
355− </row></tbody></tgroup></informaltable>
356−
357−<para>SYNOPSIS
358−</para>
359−<informaltable><tgroup cols="1"><tbody><row><entry
360− align="char">
361−<para>int open(const char &#x22C6;deviceName, int flags);</para>
362−</entry>
363− </row></tbody></tgroup></informaltable>
364−<para>PARAMETERS
365−</para>
366−<informaltable><tgroup cols="2"><tbody><row><entry
367− align="char">
368−<para>const char
369− *deviceName</para>
370−</entry><entry
371− align="char">
372−<para>Name of specific video device.</para>
373−</entry>
374− </row><row><entry
375− align="char">
376−<para>int flags</para>
377−</entry><entry
378− align="char">
379−<para>A bit-wise OR of the following flags:</para>
380−</entry>
381− </row><row><entry
382− align="char">
383−</entry><entry
384− align="char">
385−<para>O_RDONLY read-only access</para>
386−</entry>
387− </row><row><entry
388− align="char">
389−</entry><entry
390− align="char">
391−<para>O_RDWR read/write access</para>
392−</entry>
393− </row><row><entry
394− align="char">
395−</entry><entry
396− align="char">
397−<para>O_NONBLOCK open in non-blocking mode</para>
398−</entry>
399− </row><row><entry
400− align="char">
401−</entry><entry
402− align="char">
403−<para>(blocking mode is the default)</para>
404−</entry>
405− </row></tbody></tgroup></informaltable>
406−<para>RETURN VALUE</para>
407−<informaltable><tgroup cols="2"><tbody><row><entry
408− align="char">
409−<para>ENODEV</para>
410−</entry><entry
411− align="char">
412−<para>Device driver not loaded/available.</para>
413−</entry>
414− </row><row><entry
415− align="char">
416−<para>EINTERNAL</para>
417−</entry><entry
418− align="char">
419−<para>Internal error.</para>
420−</entry>
421− </row><row><entry
422− align="char">
423−<para>EBUSY</para>
424−</entry><entry
425− align="char">
426−<para>Device or resource busy.</para>
427−</entry>
428− </row><row><entry
429− align="char">
430−<para>EINVAL</para>
431−</entry><entry
432− align="char">
433−<para>Invalid argument.</para>
434−</entry>
435− </row></tbody></tgroup></informaltable>
436−
437−</section>
438−<section id="video_fclose">
439−<title>close()</title>
440−<para>DESCRIPTION
441−</para>
442−<informaltable><tgroup cols="1"><tbody><row><entry
443− align="char">
444−<para>This system call closes a previously opened video device.</para>
445−</entry>
446− </row></tbody></tgroup></informaltable>
447−<para>SYNOPSIS
448−</para>
449−<informaltable><tgroup cols="1"><tbody><row><entry
450− align="char">
451−<para>int close(int fd);</para>
452−</entry>
453− </row></tbody></tgroup></informaltable>
454−<para>PARAMETERS
455−</para>
456−<informaltable><tgroup cols="2"><tbody><row><entry
457− align="char">
458−<para>int fd</para>
459−</entry><entry
460− align="char">
461−<para>File descriptor returned by a previous call to open().</para>
462−</entry>
463− </row></tbody></tgroup></informaltable>
464−<para>RETURN VALUE</para>
465−<informaltable><tgroup cols="2"><tbody><row><entry
466− align="char">
467−<para>EBADF</para>
468−</entry><entry
469− align="char">
470−<para>fd is not a valid open file descriptor.</para>
471−</entry>
472− </row></tbody></tgroup></informaltable>
473−
474−</section>
475−<section id="video_fwrite">
476−<title>write()</title>
477−<para>DESCRIPTION
478−</para>
479−<informaltable><tgroup cols="1"><tbody><row><entry
480− align="char">
481−<para>This system call can only be used if VIDEO_SOURCE_MEMORY is selected
482− in the ioctl call VIDEO_SELECT_SOURCE. The data provided shall be in
483− PES format, unless the capability allows other formats. If O_NONBLOCK is
484− not specified the function will block until buffer space is available. The amount
485− of data to be transferred is implied by count.</para>
486−</entry>
487− </row></tbody></tgroup></informaltable>
488−<para>SYNOPSIS
489−</para>
490−<informaltable><tgroup cols="1"><tbody><row><entry
491− align="char">
492−<para>size_t write(int fd, const void &#x22C6;buf, size_t count);</para>
493−</entry>
494− </row></tbody></tgroup></informaltable>
495−<para>PARAMETERS
496−</para>
497−<informaltable><tgroup cols="2"><tbody><row><entry
498− align="char">
499−<para>int fd</para>
500−</entry><entry
501− align="char">
502−<para>File descriptor returned by a previous call to open().</para>
503−</entry>
504− </row><row><entry
505− align="char">
506−<para>void *buf</para>
507−</entry><entry
508− align="char">
509−<para>Pointer to the buffer containing the PES data.</para>
510−</entry>
511− </row><row><entry
512− align="char">
513−<para>size_t count</para>
514−</entry><entry
515− align="char">
516−<para>Size of buf.</para>
517−</entry>
518− </row></tbody></tgroup></informaltable>
519−<para>RETURN VALUE</para>
520−<informaltable><tgroup cols="2"><tbody><row><entry
521− align="char">
522−<para>EPERM</para>
523−</entry><entry
524− align="char">
525−<para>Mode VIDEO_SOURCE_MEMORY not selected.</para>
526−</entry>
527− </row><row><entry
528− align="char">
529−<para>ENOMEM</para>
530−</entry><entry
531− align="char">
532−<para>Attempted to write more data than the internal buffer can
533− hold.</para>
534−</entry>
535− </row><row><entry
536− align="char">
537−<para>EBADF</para>
538−</entry><entry
539− align="char">
540−<para>fd is not a valid open file descriptor.</para>
541−</entry>
542− </row></tbody></tgroup></informaltable>
543−
544−</section><section id="VIDEO_STOP"
545−role="subsection"><title>VIDEO_STOP</title>
546−<para>DESCRIPTION
547−</para>
548−<para>This ioctl is for DVB devices only. To control a V4L2 decoder use the V4L2
549−&VIDIOC-DECODER-CMD; instead.</para>
550−<informaltable><tgroup cols="1"><tbody><row><entry
551− align="char">
552−<para>This ioctl call asks the Video Device to stop playing the current stream.
553− Depending on the input parameter, the screen can be blanked out or displaying
554− the last decoded frame.</para>
555−</entry>
556− </row></tbody></tgroup></informaltable>
557−<para>SYNOPSIS
558−</para>
559−<informaltable><tgroup cols="1"><tbody><row><entry
560− align="char">
561−<para>int ioctl(fd, int request = VIDEO_STOP, boolean
562− mode);</para>
563−</entry>
564− </row></tbody></tgroup></informaltable>
565−<para>PARAMETERS
566−</para>
567−<informaltable><tgroup cols="2"><tbody><row><entry
568− align="char">
569−<para>int fd</para>
570−</entry><entry
571− align="char">
572−<para>File descriptor returned by a previous call to open().</para>
573−</entry>
574− </row><row><entry
575− align="char">
576−<para>int request</para>
577−</entry><entry
578− align="char">
579−<para>Equals VIDEO_STOP for this command.</para>
580−</entry>
581− </row><row><entry
582− align="char">
583−<para>Boolean mode</para>
584−</entry><entry
585− align="char">
586−<para>Indicates how the screen shall be handled.</para>
587−</entry>
588− </row><row><entry
589− align="char">
590−</entry><entry
591− align="char">
592−<para>TRUE: Blank screen when stop.</para>
593−</entry>
594− </row><row><entry
595− align="char">
596−</entry><entry
597− align="char">
598−<para>FALSE: Show last decoded frame.</para>
599−</entry>
600− </row></tbody></tgroup></informaltable>
601−&return-value-dvb;
602−
603−</section><section id="VIDEO_PLAY"
604−role="subsection"><title>VIDEO_PLAY</title>
605−<para>DESCRIPTION
606−</para>
607−<para>This ioctl is for DVB devices only. To control a V4L2 decoder use the V4L2
608−&VIDIOC-DECODER-CMD; instead.</para>
609−<informaltable><tgroup cols="1"><tbody><row><entry
610− align="char">
611−<para>This ioctl call asks the Video Device to start playing a video stream from the
612− selected source.</para>
613−</entry>
614− </row></tbody></tgroup></informaltable>
615−<para>SYNOPSIS
616−</para>
617−<informaltable><tgroup cols="1"><tbody><row><entry
618− align="char">
619−<para>int ioctl(fd, int request = VIDEO_PLAY);</para>
620−</entry>
621− </row></tbody></tgroup></informaltable>
622−<para>PARAMETERS
623−</para>
624−<informaltable><tgroup cols="2"><tbody><row><entry
625− align="char">
626−<para>int fd</para>
627−</entry><entry
628− align="char">
629−<para>File descriptor returned by a previous call to open().</para>
630−</entry>
631− </row><row><entry
632− align="char">
633−<para>int request</para>
634−</entry><entry
635− align="char">
636−<para>Equals VIDEO_PLAY for this command.</para>
637−</entry>
638− </row></tbody></tgroup></informaltable>
639−&return-value-dvb;
640−
641−</section><section id="VIDEO_FREEZE"
642−role="subsection"><title>VIDEO_FREEZE</title>
643−<para>DESCRIPTION
644−</para>
645−<para>This ioctl is for DVB devices only. To control a V4L2 decoder use the V4L2
646−&VIDIOC-DECODER-CMD; instead.</para>
647−<informaltable><tgroup cols="1"><tbody><row><entry
648− align="char">
649−<para>This ioctl call suspends the live video stream being played. Decoding
650− and playing are frozen. It is then possible to restart the decoding
651− and playing process of the video stream using the VIDEO_CONTINUE
652− command. If VIDEO_SOURCE_MEMORY is selected in the ioctl call
653− VIDEO_SELECT_SOURCE, the DVB subsystem will not decode any more
654− data until the ioctl call VIDEO_CONTINUE or VIDEO_PLAY is performed.</para>
655−</entry>
656− </row></tbody></tgroup></informaltable>
657−<para>SYNOPSIS
658−</para>
659−<informaltable><tgroup cols="1"><tbody><row><entry
660− align="char">
661−<para>int ioctl(fd, int request = VIDEO_FREEZE);</para>
662−</entry>
663− </row></tbody></tgroup></informaltable>
664−<para>PARAMETERS
665−</para>
666−<informaltable><tgroup cols="2"><tbody><row><entry
667− align="char">
668−<para>int fd</para>
669−</entry><entry
670− align="char">
671−<para>File descriptor returned by a previous call to open().</para>
672−</entry>
673− </row><row><entry
674− align="char">
675−<para>int request</para>
676−</entry><entry
677− align="char">
678−<para>Equals VIDEO_FREEZE for this command.</para>
679−</entry>
680− </row></tbody></tgroup></informaltable>
681−&return-value-dvb;
682−
683−</section><section id="VIDEO_CONTINUE"
684−role="subsection"><title>VIDEO_CONTINUE</title>
685−<para>DESCRIPTION
686−</para>
687−<para>This ioctl is for DVB devices only. To control a V4L2 decoder use the V4L2
688−&VIDIOC-DECODER-CMD; instead.</para>
689−<informaltable><tgroup cols="1"><tbody><row><entry
690− align="char">
691−<para>This ioctl call restarts decoding and playing processes of the video stream
692− which was played before a call to VIDEO_FREEZE was made.</para>
693−</entry>
694− </row></tbody></tgroup></informaltable>
695−<para>SYNOPSIS
696−</para>
697−<informaltable><tgroup cols="1"><tbody><row><entry
698− align="char">
699−<para>int ioctl(fd, int request = VIDEO_CONTINUE);</para>
700−</entry>
701− </row></tbody></tgroup></informaltable>
702−<para>PARAMETERS
703−</para>
704−<informaltable><tgroup cols="2"><tbody><row><entry
705− align="char">
706−<para>int fd</para>
707−</entry><entry
708− align="char">
709−<para>File descriptor returned by a previous call to open().</para>
710−</entry>
711− </row><row><entry
712− align="char">
713−<para>int request</para>
714−</entry><entry
715− align="char">
716−<para>Equals VIDEO_CONTINUE for this command.</para>
717−</entry>
718− </row></tbody></tgroup></informaltable>
719−&return-value-dvb;
720−
721−</section><section id="VIDEO_SELECT_SOURCE"
722−role="subsection"><title>VIDEO_SELECT_SOURCE</title>
723−<para>DESCRIPTION
724−</para>
725−<para>This ioctl is for DVB devices only. This ioctl was also supported by the
726−V4L2 ivtv driver, but that has been replaced by the ivtv-specific
727−<constant>IVTV_IOC_PASSTHROUGH_MODE</constant> ioctl.</para>
728−<informaltable><tgroup cols="1"><tbody><row><entry
729− align="char">
730−<para>This ioctl call informs the video device which source shall be used for the input
731− data. The possible sources are demux or memory. If memory is selected, the
732− data is fed to the video device through the write command.</para>
733−</entry>
734− </row></tbody></tgroup></informaltable>
735−<para>SYNOPSIS
736−</para>
737−<informaltable><tgroup cols="1"><tbody><row><entry
738− align="char">
739−<para>int ioctl(fd, int request = VIDEO_SELECT_SOURCE,
740− video_stream_source_t source);</para>
741−</entry>
742− </row></tbody></tgroup></informaltable>
743−<para>PARAMETERS
744−</para>
745−<informaltable><tgroup cols="2"><tbody><row><entry
746− align="char">
747−<para>int fd</para>
748−</entry><entry
749− align="char">
750−<para>File descriptor returned by a previous call to open().</para>
751−</entry>
752− </row><row><entry
753− align="char">
754−<para>int request</para>
755−</entry><entry
756− align="char">
757−<para>Equals VIDEO_SELECT_SOURCE for this command.</para>
758−</entry>
759− </row><row><entry
760− align="char">
761−<para>video_stream_source_t
762− source</para>
763−</entry><entry
764− align="char">
765−<para>Indicates which source shall be used for the Video stream.</para>
766−</entry>
767− </row></tbody></tgroup></informaltable>
768−&return-value-dvb;
769−
770−</section><section id="VIDEO_SET_BLANK"
771−role="subsection"><title>VIDEO_SET_BLANK</title>
772−<para>DESCRIPTION
773−</para>
774−<informaltable><tgroup cols="1"><tbody><row><entry
775− align="char">
776−<para>This ioctl call asks the Video Device to blank out the picture.</para>
777−</entry>
778− </row></tbody></tgroup></informaltable>
779−<para>SYNOPSIS
780−</para>
781−<informaltable><tgroup cols="1"><tbody><row><entry
782− align="char">
783−<para>int ioctl(fd, int request = VIDEO_SET_BLANK, boolean
784− mode);</para>
785−</entry>
786− </row></tbody></tgroup></informaltable>
787−<para>PARAMETERS
788−</para>
789−<informaltable><tgroup cols="2"><tbody><row><entry
790− align="char">
791−<para>int fd</para>
792−</entry><entry
793− align="char">
794−<para>File descriptor returned by a previous call to open().</para>
795−</entry>
796− </row><row><entry
797− align="char">
798−<para>int request</para>
799−</entry><entry
800− align="char">
801−<para>Equals VIDEO_SET_BLANK for this command.</para>
802−</entry>
803− </row><row><entry
804− align="char">
805−<para>boolean mode</para>
806−</entry><entry
807− align="char">
808−<para>TRUE: Blank screen when stop.</para>
809−</entry>
810− </row><row><entry
811− align="char">
812−</entry><entry
813− align="char">
814−<para>FALSE: Show last decoded frame.</para>
815−</entry>
816− </row></tbody></tgroup></informaltable>
817−&return-value-dvb;
818−
819−</section><section id="VIDEO_GET_STATUS"
820−role="subsection"><title>VIDEO_GET_STATUS</title>
821−<para>DESCRIPTION
822−</para>
823−<informaltable><tgroup cols="1"><tbody><row><entry
824− align="char">
825−<para>This ioctl call asks the Video Device to return the current status of the device.</para>
826−</entry>
827− </row></tbody></tgroup></informaltable>
828−<para>SYNOPSIS
829−</para>
830−<informaltable><tgroup cols="1"><tbody><row><entry
831− align="char">
832−<para> int ioctl(fd, int request = VIDEO_GET_STATUS, struct
833− video_status &#x22C6;status);</para>
834−</entry>
835− </row></tbody></tgroup></informaltable>
836−<para>PARAMETERS
837−</para>
838−<informaltable><tgroup cols="2"><tbody><row><entry
839− align="char">
840−<para>int fd</para>
841−</entry><entry
842− align="char">
843−<para>File descriptor returned by a previous call to open().</para>
844−</entry>
845− </row><row><entry
846− align="char">
847−<para>int request</para>
848−</entry><entry
849− align="char">
850−<para>Equals VIDEO_GET_STATUS for this command.</para>
851−</entry>
852− </row><row><entry
853− align="char">
854−<para>struct video_status
855− *status</para>
856−</entry><entry
857− align="char">
858−<para>Returns the current status of the Video Device.</para>
859−</entry>
860− </row></tbody></tgroup></informaltable>
861−&return-value-dvb;
862−
863−</section><section id="VIDEO_GET_FRAME_COUNT"
864−role="subsection"><title>VIDEO_GET_FRAME_COUNT</title>
865−<para>DESCRIPTION
866−</para>
867−<para>This ioctl is obsolete. Do not use in new drivers. For V4L2 decoders this
868−ioctl has been replaced by the <constant>V4L2_CID_MPEG_VIDEO_DEC_FRAME</constant> control.</para>
869−<informaltable><tgroup cols="1"><tbody><row><entry
870− align="char">
871−<para>This ioctl call asks the Video Device to return the number of displayed frames
872−since the decoder was started.</para>
873−</entry>
874− </row></tbody></tgroup></informaltable>
875−<para>SYNOPSIS
876−</para>
877−<informaltable><tgroup cols="1"><tbody><row><entry
878− align="char">
879−<para>int ioctl(int fd, int request =
880− VIDEO_GET_FRAME_COUNT, __u64 *pts);</para>
881−</entry>
882− </row></tbody></tgroup></informaltable>
883−<para>PARAMETERS
884−</para>
885−<informaltable><tgroup cols="2"><tbody><row><entry
886− align="char">
887−<para>int fd</para>
888−</entry><entry
889− align="char">
890−<para>File descriptor returned by a previous call to open().</para>
891−</entry>
892− </row><row><entry
893− align="char">
894−<para>int request</para>
895−</entry><entry
896− align="char">
897−<para>Equals VIDEO_GET_FRAME_COUNT for this
898− command.</para>
899−</entry>
900− </row><row><entry
901− align="char">
902−<para>__u64 *pts
903−</para>
904−</entry><entry
905− align="char">
906−<para>Returns the number of frames displayed since the decoder was started.
907−</para>
908−</entry>
909− </row></tbody></tgroup></informaltable>
910−&return-value-dvb;
911−
912−</section><section id="VIDEO_GET_PTS"
913−role="subsection"><title>VIDEO_GET_PTS</title>
914−<para>DESCRIPTION
915−</para>
916−<para>This ioctl is obsolete. Do not use in new drivers. For V4L2 decoders this
917−ioctl has been replaced by the <constant>V4L2_CID_MPEG_VIDEO_DEC_PTS</constant> control.</para>
918−<informaltable><tgroup cols="1"><tbody><row><entry
919− align="char">
920−<para>This ioctl call asks the Video Device to return the current PTS timestamp.</para>
921−</entry>
922− </row></tbody></tgroup></informaltable>
923−<para>SYNOPSIS
924−</para>
925−<informaltable><tgroup cols="1"><tbody><row><entry
926− align="char">
927−<para>int ioctl(int fd, int request =
928− VIDEO_GET_PTS, __u64 *pts);</para>
929−</entry>
930− </row></tbody></tgroup></informaltable>
931−<para>PARAMETERS
932−</para>
933−<informaltable><tgroup cols="2"><tbody><row><entry
934− align="char">
935−<para>int fd</para>
936−</entry><entry
937− align="char">
938−<para>File descriptor returned by a previous call to open().</para>
939−</entry>
940− </row><row><entry
941− align="char">
942−<para>int request</para>
943−</entry><entry
944− align="char">
945−<para>Equals VIDEO_GET_PTS for this
946− command.</para>
947−</entry>
948− </row><row><entry
949− align="char">
950−<para>__u64 *pts
951−</para>
952−</entry><entry
953− align="char">
954−<para>Returns the 33-bit timestamp as defined in ITU T-REC-H.222.0 / ISO/IEC 13818-1.
955−</para>
956−<para>
957−The PTS should belong to the currently played
958−frame if possible, but may also be a value close to it
959−like the PTS of the last decoded frame or the last PTS
960−extracted by the PES parser.</para>
961−</entry>
962− </row></tbody></tgroup></informaltable>
963−&return-value-dvb;
964−
965−</section><section id="VIDEO_GET_FRAME_RATE"
966−role="subsection"><title>VIDEO_GET_FRAME_RATE</title>
967−<para>DESCRIPTION
968−</para>
969−<informaltable><tgroup cols="1"><tbody><row><entry
970− align="char">
971−<para>This ioctl call asks the Video Device to return the current framerate.</para>
972−</entry>
973− </row></tbody></tgroup></informaltable>
974−<para>SYNOPSIS
975−</para>
976−<informaltable><tgroup cols="1"><tbody><row><entry
977− align="char">
978−<para>int ioctl(int fd, int request =
979− VIDEO_GET_FRAME_RATE, unsigned int *rate);</para>
980−</entry>
981− </row></tbody></tgroup></informaltable>
982−<para>PARAMETERS
983−</para>
984−<informaltable><tgroup cols="2"><tbody><row><entry
985− align="char">
986−<para>int fd</para>
987−</entry><entry
988− align="char">
989−<para>File descriptor returned by a previous call to open().</para>
990−</entry>
991− </row><row><entry
992− align="char">
993−<para>int request</para>
994−</entry><entry
995− align="char">
996−<para>Equals VIDEO_GET_FRAME_RATE for this
997− command.</para>
998−</entry>
999− </row><row><entry
1000− align="char">
1001−<para>unsigned int *rate
1002−</para>
1003−</entry><entry
1004− align="char">
1005−<para>Returns the framerate in number of frames per 1000 seconds.
1006−</para>
1007−</entry>
1008− </row></tbody></tgroup></informaltable>
1009−&return-value-dvb;
1010−
1011−</section><section id="VIDEO_GET_EVENT"
1012−role="subsection"><title>VIDEO_GET_EVENT</title>
1013−<para>DESCRIPTION
1014−</para>
1015−<para>This ioctl is for DVB devices only. To get events from a V4L2 decoder use the V4L2
1016−&VIDIOC-DQEVENT; ioctl instead.</para>
1017−<informaltable><tgroup cols="1"><tbody><row><entry
1018− align="char">
1019−<para>This ioctl call returns an event of type video_event if available. If an event is
1020− not available, the behavior depends on whether the device is in blocking or
1021− non-blocking mode. In the latter case, the call fails immediately with errno
1022− set to EWOULDBLOCK. In the former case, the call blocks until an event
1023− becomes available. The standard Linux poll() and/or select() system calls can
1024− be used with the device file descriptor to watch for new events. For select(),
1025− the file descriptor should be included in the exceptfds argument, and for
1026− poll(), POLLPRI should be specified as the wake-up condition. Read-only
1027− permissions are sufficient for this ioctl call.</para>
1028−</entry>
1029− </row></tbody></tgroup></informaltable>
1030−<para>SYNOPSIS
1031−</para>
1032−<informaltable><tgroup cols="1"><tbody><row><entry
1033− align="char">
1034−<para> int ioctl(fd, int request = VIDEO_GET_EVENT, struct
1035− video_event &#x22C6;ev);</para>
1036−</entry>
1037− </row></tbody></tgroup></informaltable>
1038−<para>PARAMETERS
1039−</para>
1040−<informaltable><tgroup cols="2"><tbody><row><entry
1041− align="char">
1042−<para>int fd</para>
1043−</entry><entry
1044− align="char">
1045−<para>File descriptor returned by a previous call to open().</para>
1046−</entry>
1047− </row><row><entry
1048− align="char">
1049−<para>int request</para>
1050−</entry><entry
1051− align="char">
1052−<para>Equals VIDEO_GET_EVENT for this command.</para>
1053−</entry>
1054− </row><row><entry
1055− align="char">
1056−<para>struct video_event
1057− *ev</para>
1058−</entry><entry
1059− align="char">
1060−<para>Points to the location where the event, if any, is to be
1061− stored.</para>
1062−</entry>
1063− </row></tbody></tgroup></informaltable>
1064−&return-value-dvb;
1065−<informaltable><tgroup cols="2"><tbody><row><entry
1066− align="char">
1067−<para>EWOULDBLOCK</para>
1068−</entry><entry
1069− align="char">
1070−<para>There is no event pending, and the device is in
1071− non-blocking mode.</para>
1072−</entry>
1073− </row><row><entry
1074− align="char">
1075−<para>EOVERFLOW</para>
1076−</entry><entry
1077− align="char">
1078−<para>Overflow in event queue - one or more events were lost.</para>
1079−</entry>
1080− </row></tbody></tgroup></informaltable>
1081−
1082−</section><section id="VIDEO_COMMAND"
1083−role="subsection"><title>VIDEO_COMMAND</title>
1084−<para>DESCRIPTION
1085−</para>
1086−<para>This ioctl is obsolete. Do not use in new drivers. For V4L2 decoders this
1087−ioctl has been replaced by the &VIDIOC-DECODER-CMD; ioctl.</para>
1088−<informaltable><tgroup cols="1"><tbody><row><entry
1089− align="char">
1090−<para>This ioctl commands the decoder. The <constant>video_command</constant> struct
1091−is a subset of the <constant>v4l2_decoder_cmd</constant> struct, so refer to the
1092−&VIDIOC-DECODER-CMD; documentation for more information.</para>
1093−</entry>
1094− </row></tbody></tgroup></informaltable>
1095−<para>SYNOPSIS
1096−</para>
1097−<informaltable><tgroup cols="1"><tbody><row><entry
1098− align="char">
1099−<para>int ioctl(int fd, int request =
1100− VIDEO_COMMAND, struct video_command *cmd);</para>
1101−</entry>
1102− </row></tbody></tgroup></informaltable>
1103−<para>PARAMETERS
1104−</para>
1105−<informaltable><tgroup cols="2"><tbody><row><entry
1106− align="char">
1107−<para>int fd</para>
1108−</entry><entry
1109− align="char">
1110−<para>File descriptor returned by a previous call to open().</para>
1111−</entry>
1112− </row><row><entry
1113− align="char">
1114−<para>int request</para>
1115−</entry><entry
1116− align="char">
1117−<para>Equals VIDEO_COMMAND for this
1118− command.</para>
1119−</entry>
1120− </row><row><entry
1121− align="char">
1122−<para>struct video_command *cmd
1123−</para>
1124−</entry><entry
1125− align="char">
1126−<para>Commands the decoder.
1127−</para>
1128−</entry>
1129− </row></tbody></tgroup></informaltable>
1130−&return-value-dvb;
1131−
1132−</section><section id="VIDEO_TRY_COMMAND"
1133−role="subsection"><title>VIDEO_TRY_COMMAND</title>
1134−<para>DESCRIPTION
1135−</para>
1136−<para>This ioctl is obsolete. Do not use in new drivers. For V4L2 decoders this
1137−ioctl has been replaced by the &VIDIOC-TRY-DECODER-CMD; ioctl.</para>
1138−<informaltable><tgroup cols="1"><tbody><row><entry
1139− align="char">
1140−<para>This ioctl tries a decoder command. The <constant>video_command</constant> struct
1141−is a subset of the <constant>v4l2_decoder_cmd</constant> struct, so refer to the
1142−&VIDIOC-TRY-DECODER-CMD; documentation for more information.</para>
1143−</entry>
1144− </row></tbody></tgroup></informaltable>
1145−<para>SYNOPSIS
1146−</para>
1147−<informaltable><tgroup cols="1"><tbody><row><entry
1148− align="char">
1149−<para>int ioctl(int fd, int request =
1150− VIDEO_TRY_COMMAND, struct video_command *cmd);</para>
1151−</entry>
1152− </row></tbody></tgroup></informaltable>
1153−<para>PARAMETERS
1154−</para>
1155−<informaltable><tgroup cols="2"><tbody><row><entry
1156− align="char">
1157−<para>int fd</para>
1158−</entry><entry
1159− align="char">
1160−<para>File descriptor returned by a previous call to open().</para>
1161−</entry>
1162− </row><row><entry
1163− align="char">
1164−<para>int request</para>
1165−</entry><entry
1166− align="char">
1167−<para>Equals VIDEO_TRY_COMMAND for this
1168− command.</para>
1169−</entry>
1170− </row><row><entry
1171− align="char">
1172−<para>struct video_command *cmd
1173−</para>
1174−</entry><entry
1175− align="char">
1176−<para>Try a decoder command.
1177−</para>
1178−</entry>
1179− </row></tbody></tgroup></informaltable>
1180−&return-value-dvb;
1181−
1182−</section><section id="VIDEO_GET_SIZE"
1183−role="subsection"><title>VIDEO_GET_SIZE</title>
1184−<para>DESCRIPTION
1185−</para>
1186−<informaltable><tgroup cols="1"><tbody><row><entry
1187− align="char">
1188−<para>This ioctl returns the size and aspect ratio.</para>
1189−</entry>
1190− </row></tbody></tgroup></informaltable>
1191−<para>SYNOPSIS
1192−</para>
1193−<informaltable><tgroup cols="1"><tbody><row><entry
1194− align="char">
1195−<para>int ioctl(int fd, int request =
1196− VIDEO_GET_SIZE, video_size_t *size);</para>
1197−</entry>
1198− </row></tbody></tgroup></informaltable>
1199−<para>PARAMETERS
1200−</para>
1201−<informaltable><tgroup cols="2"><tbody><row><entry
1202− align="char">
1203−<para>int fd</para>
1204−</entry><entry
1205− align="char">
1206−<para>File descriptor returned by a previous call to open().</para>
1207−</entry>
1208− </row><row><entry
1209− align="char">
1210−<para>int request</para>
1211−</entry><entry
1212− align="char">
1213−<para>Equals VIDEO_GET_SIZE for this
1214− command.</para>
1215−</entry>
1216− </row><row><entry
1217− align="char">
1218−<para>video_size_t *size
1219−</para>
1220−</entry><entry
1221− align="char">
1222−<para>Returns the size and aspect ratio.
1223−</para>
1224−</entry>
1225− </row></tbody></tgroup></informaltable>
1226−&return-value-dvb;
1227−
1228−</section><section id="VIDEO_SET_DISPLAY_FORMAT"
1229−role="subsection"><title>VIDEO_SET_DISPLAY_FORMAT</title>
1230−<para>DESCRIPTION
1231−</para>
1232−<informaltable><tgroup cols="1"><tbody><row><entry
1233− align="char">
1234−<para>This ioctl call asks the Video Device to select the video format to be applied
1235− by the MPEG chip on the video.</para>
1236−</entry>
1237− </row></tbody></tgroup></informaltable>
1238−<para>SYNOPSIS
1239−</para>
1240−<informaltable><tgroup cols="1"><tbody><row><entry
1241− align="char">
1242−<para> int ioctl(fd, int request =
1243− VIDEO_SET_DISPLAY_FORMAT, video_display_format_t
1244− format);</para>
1245−</entry>
1246− </row></tbody></tgroup></informaltable>
1247−<para>PARAMETERS
1248−</para>
1249−<informaltable><tgroup cols="2"><tbody><row><entry
1250− align="char">
1251−<para>int fd</para>
1252−</entry><entry
1253− align="char">
1254−<para>File descriptor returned by a previous call to open().</para>
1255−</entry>
1256− </row><row><entry
1257− align="char">
1258−<para>int request</para>
1259−</entry><entry
1260− align="char">
1261−<para>Equals VIDEO_SET_DISPLAY_FORMAT for this
1262− command.</para>
1263−</entry>
1264− </row><row><entry
1265− align="char">
1266−<para>video_display_format_t
1267− format</para>
1268−</entry><entry
1269− align="char">
1270−<para>Selects the video format to be used.</para>
1271−</entry>
1272− </row></tbody></tgroup></informaltable>
1273−&return-value-dvb;
1274−
1275−</section><section id="VIDEO_STILLPICTURE"
1276−role="subsection"><title>VIDEO_STILLPICTURE</title>
1277−<para>DESCRIPTION
1278−</para>
1279−<informaltable><tgroup cols="1"><tbody><row><entry
1280− align="char">
1281−<para>This ioctl call asks the Video Device to display a still picture (I-frame). The
1282− input data shall contain an I-frame. If the pointer is NULL, then the current
1283− displayed still picture is blanked.</para>
1284−</entry>
1285− </row></tbody></tgroup></informaltable>
1286−<para>SYNOPSIS
1287−</para>
1288−<informaltable><tgroup cols="1"><tbody><row><entry
1289− align="char">
1290−<para>int ioctl(fd, int request = VIDEO_STILLPICTURE,
1291− struct video_still_picture &#x22C6;sp);</para>
1292−</entry>
1293− </row></tbody></tgroup></informaltable>
1294−<para>PARAMETERS
1295−</para>
1296−<informaltable><tgroup cols="2"><tbody><row><entry
1297− align="char">
1298−<para>int fd</para>
1299−</entry><entry
1300− align="char">
1301−<para>File descriptor returned by a previous call to open().</para>
1302−</entry>
1303− </row><row><entry
1304− align="char">
1305−<para>int request</para>
1306−</entry><entry
1307− align="char">
1308−<para>Equals VIDEO_STILLPICTURE for this command.</para>
1309−</entry>
1310− </row><row><entry
1311− align="char">
1312−<para>struct
1313− video_still_picture
1314− *sp</para>
1315−</entry><entry
1316− align="char">
1317−<para>Pointer to a location where an I-frame and size is stored.</para>
1318−</entry>
1319− </row></tbody></tgroup></informaltable>
1320−&return-value-dvb;
1321−
1322−</section><section id="VIDEO_FAST_FORWARD"
1323−role="subsection"><title>VIDEO_FAST_FORWARD</title>
1324−<para>DESCRIPTION
1325−</para>
1326−<informaltable><tgroup cols="1"><tbody><row><entry
1327− align="char">
1328−<para>This ioctl call asks the Video Device to skip decoding of N number of I-frames.
1329− This call can only be used if VIDEO_SOURCE_MEMORY is selected.</para>
1330−</entry>
1331− </row></tbody></tgroup></informaltable>
1332−<para>SYNOPSIS
1333−</para>
1334−<informaltable><tgroup cols="1"><tbody><row><entry
1335− align="char">
1336−<para>int ioctl(fd, int request = VIDEO_FAST_FORWARD, int
1337− nFrames);</para>
1338−</entry>
1339− </row></tbody></tgroup></informaltable>
1340−<para>PARAMETERS
1341−</para>
1342−<informaltable><tgroup cols="2"><tbody><row><entry
1343− align="char">
1344−<para>int fd</para>
1345−</entry><entry
1346− align="char">
1347−<para>File descriptor returned by a previous call to open().</para>
1348−</entry>
1349− </row><row><entry
1350− align="char">
1351−<para>int request</para>
1352−</entry><entry
1353− align="char">
1354−<para>Equals VIDEO_FAST_FORWARD for this command.</para>
1355−</entry>
1356− </row><row><entry
1357− align="char">
1358−<para>int nFrames</para>
1359−</entry><entry
1360− align="char">
1361−<para>The number of frames to skip.</para>
1362−</entry>
1363− </row></tbody></tgroup></informaltable>
1364−&return-value-dvb;
1365−<informaltable><tgroup cols="2"><tbody><row><entry
1366− align="char">
1367−<para>EPERM</para>
1368−</entry><entry
1369− align="char">
1370−<para>Mode VIDEO_SOURCE_MEMORY not selected.</para>
1371−</entry>
1372− </row></tbody></tgroup></informaltable>
1373−
1374−</section><section id="VIDEO_SLOWMOTION"
1375−role="subsection"><title>VIDEO_SLOWMOTION</title>
1376−<para>DESCRIPTION
1377−</para>
1378−<informaltable><tgroup cols="1"><tbody><row><entry
1379− align="char">
1380−<para>This ioctl call asks the video device to repeat decoding frames N number of
1381− times. This call can only be used if VIDEO_SOURCE_MEMORY is selected.</para>
1382−</entry>
1383− </row></tbody></tgroup></informaltable>
1384−<para>SYNOPSIS
1385−</para>
1386−<informaltable><tgroup cols="1"><tbody><row><entry
1387− align="char">
1388−<para>int ioctl(fd, int request = VIDEO_SLOWMOTION, int
1389− nFrames);</para>
1390−</entry>
1391− </row></tbody></tgroup></informaltable>
1392−<para>PARAMETERS
1393−</para>
1394−<informaltable><tgroup cols="2"><tbody><row><entry
1395− align="char">
1396−<para>int fd</para>
1397−</entry><entry
1398− align="char">
1399−<para>File descriptor returned by a previous call to open().</para>
1400−</entry>
1401− </row><row><entry
1402− align="char">
1403−<para>int request</para>
1404−</entry><entry
1405− align="char">
1406−<para>Equals VIDEO_SLOWMOTION for this command.</para>
1407−</entry>
1408− </row><row><entry
1409− align="char">
1410−<para>int nFrames</para>
1411−</entry><entry
1412− align="char">
1413−<para>The number of times to repeat each frame.</para>
1414−</entry>
1415− </row></tbody></tgroup></informaltable>
1416−&return-value-dvb;
1417−<informaltable><tgroup cols="2"><tbody><row><entry
1418− align="char">
1419−<para>EPERM</para>
1420−</entry><entry
1421− align="char">
1422−<para>Mode VIDEO_SOURCE_MEMORY not selected.</para>
1423−</entry>
1424− </row></tbody></tgroup></informaltable>
1425−
1426−</section><section id="VIDEO_GET_CAPABILITIES"
1427−role="subsection"><title>VIDEO_GET_CAPABILITIES</title>
1428−<para>DESCRIPTION
1429−</para>
1430−<informaltable><tgroup cols="1"><tbody><row><entry
1431− align="char">
1432−<para>This ioctl call asks the video device about its decoding capabilities. On success
1433− it returns and integer which has bits set according to the defines in section ??.</para>
1434−</entry>
1435− </row></tbody></tgroup></informaltable>
1436−<para>SYNOPSIS
1437−</para>
1438−<informaltable><tgroup cols="1"><tbody><row><entry
1439− align="char">
1440−<para>int ioctl(fd, int request = VIDEO_GET_CAPABILITIES,
1441− unsigned int &#x22C6;cap);</para>
1442−</entry>
1443− </row></tbody></tgroup></informaltable>
1444−<para>PARAMETERS
1445−</para>
1446−<informaltable><tgroup cols="2"><tbody><row><entry
1447− align="char">
1448−<para>int fd</para>
1449−</entry><entry
1450− align="char">
1451−<para>File descriptor returned by a previous call to open().</para>
1452−</entry>
1453− </row><row><entry
1454− align="char">
1455−<para>int request</para>
1456−</entry><entry
1457− align="char">
1458−<para>Equals VIDEO_GET_CAPABILITIES for this
1459− command.</para>
1460−</entry>
1461− </row><row><entry
1462− align="char">
1463−<para>unsigned int *cap</para>
1464−</entry><entry
1465− align="char">
1466−<para>Pointer to a location where to store the capability
1467− information.</para>
1468−</entry>
1469− </row></tbody></tgroup></informaltable>
1470−&return-value-dvb;
1471−
1472−</section><section id="VIDEO_SET_ID"
1473−role="subsection"><title>VIDEO_SET_ID</title>
1474−<para>DESCRIPTION
1475−</para>
1476−<informaltable><tgroup cols="1"><tbody><row><entry
1477− align="char">
1478−<para>This ioctl selects which sub-stream is to be decoded if a program or system
1479− stream is sent to the video device.</para>
1480−</entry>
1481− </row></tbody></tgroup></informaltable>
1482−<para>SYNOPSIS
1483−</para>
1484−<informaltable><tgroup cols="1"><tbody><row><entry
1485− align="char">
1486−<para>int ioctl(int fd, int request = VIDEO_SET_ID, int
1487− id);</para>
1488−</entry>
1489− </row></tbody></tgroup></informaltable>
1490−<para>PARAMETERS
1491−</para>
1492−<informaltable><tgroup cols="2"><tbody><row><entry
1493− align="char">
1494−<para>int fd</para>
1495−</entry><entry
1496− align="char">
1497−<para>File descriptor returned by a previous call to open().</para>
1498−</entry>
1499− </row><row><entry
1500− align="char">
1501−<para>int request</para>
1502−</entry><entry
1503− align="char">
1504−<para>Equals VIDEO_SET_ID for this command.</para>
1505−</entry>
1506− </row><row><entry
1507− align="char">
1508−<para>int id</para>
1509−</entry><entry
1510− align="char">
1511−<para>video sub-stream id</para>
1512−</entry>
1513− </row></tbody></tgroup></informaltable>
1514−&return-value-dvb;
1515−<informaltable><tgroup cols="2"><tbody><row><entry
1516− align="char">
1517−<para>EINVAL</para>
1518−</entry><entry
1519− align="char">
1520−<para>Invalid sub-stream id.</para>
1521−</entry>
1522− </row></tbody></tgroup></informaltable>
1523−
1524−</section><section id="VIDEO_CLEAR_BUFFER"
1525−role="subsection"><title>VIDEO_CLEAR_BUFFER</title>
1526−<para>DESCRIPTION
1527−</para>
1528−<informaltable><tgroup cols="1"><tbody><row><entry
1529− align="char">
1530−<para>This ioctl call clears all video buffers in the driver and in the decoder hardware.</para>
1531−</entry>
1532− </row></tbody></tgroup></informaltable>
1533−<para>SYNOPSIS
1534−</para>
1535−<informaltable><tgroup cols="1"><tbody><row><entry
1536− align="char">
1537−<para>int ioctl(fd, int request = VIDEO_CLEAR_BUFFER);</para>
1538−</entry>
1539− </row></tbody></tgroup></informaltable>
1540−<para>PARAMETERS
1541−</para>
1542−<informaltable><tgroup cols="2"><tbody><row><entry
1543− align="char">
1544−<para>int fd</para>
1545−</entry><entry
1546− align="char">
1547−<para>File descriptor returned by a previous call to open().</para>
1548−</entry>
1549− </row><row><entry
1550− align="char">
1551−<para>int request</para>
1552−</entry><entry
1553− align="char">
1554−<para>Equals VIDEO_CLEAR_BUFFER for this command.</para>
1555−</entry>
1556− </row></tbody></tgroup></informaltable>
1557−&return-value-dvb;
1558−
1559−</section><section id="VIDEO_SET_STREAMTYPE"
1560−role="subsection"><title>VIDEO_SET_STREAMTYPE</title>
1561−<para>DESCRIPTION
1562−</para>
1563−<informaltable><tgroup cols="1"><tbody><row><entry
1564− align="char">
1565−<para>This ioctl tells the driver which kind of stream to expect being written to it. If
1566− this call is not used the default of video PES is used. Some drivers might not
1567− support this call and always expect PES.</para>
1568−</entry>
1569− </row></tbody></tgroup></informaltable>
1570−<para>SYNOPSIS
1571−</para>
1572−<informaltable><tgroup cols="1"><tbody><row><entry
1573− align="char">
1574−<para>int ioctl(fd, int request = VIDEO_SET_STREAMTYPE,
1575− int type);</para>
1576−</entry>
1577− </row></tbody></tgroup></informaltable>
1578−<para>PARAMETERS
1579−</para>
1580−<informaltable><tgroup cols="2"><tbody><row><entry
1581− align="char">
1582−<para>int fd</para>
1583−</entry><entry
1584− align="char">
1585−<para>File descriptor returned by a previous call to open().</para>
1586−</entry>
1587− </row><row><entry
1588− align="char">
1589−<para>int request</para>
1590−</entry><entry
1591− align="char">
1592−<para>Equals VIDEO_SET_STREAMTYPE for this command.</para>
1593−</entry>
1594− </row><row><entry
1595− align="char">
1596−<para>int type</para>
1597−</entry><entry
1598− align="char">
1599−<para>stream type</para>
1600−</entry>
1601− </row></tbody></tgroup></informaltable>
1602−&return-value-dvb;
1603−
1604−</section><section id="VIDEO_SET_FORMAT"
1605−role="subsection"><title>VIDEO_SET_FORMAT</title>
1606−<para>DESCRIPTION
1607−</para>
1608−<informaltable><tgroup cols="1"><tbody><row><entry
1609− align="char">
1610−<para>This ioctl sets the screen format (aspect ratio) of the connected output device
1611− (TV) so that the output of the decoder can be adjusted accordingly.</para>
1612−</entry>
1613− </row></tbody></tgroup></informaltable>
1614−<para>SYNOPSIS
1615−</para>
1616−<informaltable><tgroup cols="1"><tbody><row><entry
1617− align="char">
1618−<para> int ioctl(fd, int request = VIDEO_SET_FORMAT,
1619− video_format_t format);</para>
1620−</entry>
1621− </row></tbody></tgroup></informaltable>
1622−<para>PARAMETERS
1623−</para>
1624−<informaltable><tgroup cols="2"><tbody><row><entry
1625− align="char">
1626−<para>int fd</para>
1627−</entry><entry
1628− align="char">
1629−<para>File descriptor returned by a previous call to open().</para>
1630−</entry>
1631− </row><row><entry
1632− align="char">
1633−<para>int request</para>
1634−</entry><entry
1635− align="char">
1636−<para>Equals VIDEO_SET_FORMAT for this command.</para>
1637−</entry>
1638− </row><row><entry
1639− align="char">
1640−<para>video_format_t
1641− format</para>
1642−</entry><entry
1643− align="char">
1644−<para>video format of TV as defined in section ??.</para>
1645−</entry>
1646− </row></tbody></tgroup></informaltable>
1647−&return-value-dvb;
1648−<informaltable><tgroup cols="2"><tbody><row><entry
1649− align="char">
1650−<para>EINVAL</para>
1651−</entry><entry
1652− align="char">
1653−<para>format is not a valid video format.</para>
1654−</entry>
1655− </row></tbody></tgroup></informaltable>
1656−
1657−</section><section id="VIDEO_SET_SYSTEM"
1658−role="subsection"><title>VIDEO_SET_SYSTEM</title>
1659−<para>DESCRIPTION
1660−</para>
1661−<informaltable><tgroup cols="1"><tbody><row><entry
1662− align="char">
1663−<para>This ioctl sets the television output format. The format (see section ??) may
1664− vary from the color format of the displayed MPEG stream. If the hardware is
1665− not able to display the requested format the call will return an error.</para>
1666−</entry>
1667− </row></tbody></tgroup></informaltable>
1668−<para>SYNOPSIS
1669−</para>
1670−<informaltable><tgroup cols="1"><tbody><row><entry
1671− align="char">
1672−<para> int ioctl(fd, int request = VIDEO_SET_SYSTEM ,
1673− video_system_t system);</para>
1674−</entry>
1675− </row></tbody></tgroup></informaltable>
1676−<para>PARAMETERS
1677−</para>
1678−<informaltable><tgroup cols="2"><tbody><row><entry
1679− align="char">
1680−<para>int fd</para>
1681−</entry><entry
1682− align="char">
1683−<para>File descriptor returned by a previous call to open().</para>
1684−</entry>
1685− </row><row><entry
1686− align="char">
1687−<para>int request</para>
1688−</entry><entry
1689− align="char">
1690−<para>Equals VIDEO_SET_FORMAT for this command.</para>
1691−</entry>
1692− </row><row><entry
1693− align="char">
1694−<para>video_system_t
1695− system</para>
1696−</entry><entry
1697− align="char">
1698−<para>video system of TV output.</para>
1699−</entry>
1700− </row></tbody></tgroup></informaltable>
1701−&return-value-dvb;
1702−<informaltable><tgroup cols="2"><tbody><row><entry
1703− align="char">
1704−<para>EINVAL</para>
1705−</entry><entry
1706− align="char">
1707−<para>system is not a valid or supported video system.</para>
1708−</entry>
1709− </row></tbody></tgroup></informaltable>
1710−
1711−</section><section id="VIDEO_SET_HIGHLIGHT"
1712−role="subsection"><title>VIDEO_SET_HIGHLIGHT</title>
1713−<para>DESCRIPTION
1714−</para>
1715−<informaltable><tgroup cols="1"><tbody><row><entry
1716− align="char">
1717−<para>This ioctl sets the SPU highlight information for the menu access of a DVD.</para>
1718−</entry>
1719− </row></tbody></tgroup></informaltable>
1720−<para>SYNOPSIS
1721−</para>
1722−<informaltable><tgroup cols="1"><tbody><row><entry
1723− align="char">
1724−<para> int ioctl(fd, int request = VIDEO_SET_HIGHLIGHT
1725− ,video_highlight_t &#x22C6;vhilite)</para>
1726−</entry>
1727− </row></tbody></tgroup></informaltable>
1728−<para>PARAMETERS
1729−</para>
1730−<informaltable><tgroup cols="2"><tbody><row><entry
1731− align="char">
1732−<para>int fd</para>
1733−</entry><entry
1734− align="char">
1735−<para>File descriptor returned by a previous call to open().</para>
1736−</entry>
1737− </row><row><entry
1738− align="char">
1739−<para>int request</para>
1740−</entry><entry
1741− align="char">
1742−<para>Equals VIDEO_SET_HIGHLIGHT for this command.</para>
1743−</entry>
1744− </row><row><entry
1745− align="char">
1746−<para>video_highlight_t
1747− *vhilite</para>
1748−</entry><entry
1749− align="char">
1750−<para>SPU Highlight information according to section ??.</para>
1751−</entry>
1752− </row></tbody></tgroup></informaltable>
1753−&return-value-dvb;
1754−
1755−</section><section id="VIDEO_SET_SPU"
1756−role="subsection"><title>VIDEO_SET_SPU</title>
1757−<para>DESCRIPTION
1758−</para>
1759−<informaltable><tgroup cols="1"><tbody><row><entry
1760− align="char">
1761−<para>This ioctl activates or deactivates SPU decoding in a DVD input stream. It can
1762− only be used, if the driver is able to handle a DVD stream.</para>
1763−</entry>
1764− </row></tbody></tgroup></informaltable>
1765−<para>SYNOPSIS
1766−</para>
1767−<informaltable><tgroup cols="1"><tbody><row><entry
1768− align="char">
1769−<para> int ioctl(fd, int request = VIDEO_SET_SPU ,
1770− video_spu_t &#x22C6;spu)</para>
1771−</entry>
1772− </row></tbody></tgroup></informaltable>
1773−<para>PARAMETERS
1774−</para>
1775−<informaltable><tgroup cols="2"><tbody><row><entry
1776− align="char">
1777−<para>int fd</para>
1778−</entry><entry
1779− align="char">
1780−<para>File descriptor returned by a previous call to open().</para>
1781−</entry>
1782− </row><row><entry
1783− align="char">
1784−<para>int request</para>
1785−</entry><entry
1786− align="char">
1787−<para>Equals VIDEO_SET_SPU for this command.</para>
1788−</entry>
1789− </row><row><entry
1790− align="char">
1791−<para>video_spu_t *spu</para>
1792−</entry><entry
1793− align="char">
1794−<para>SPU decoding (de)activation and subid setting according
1795− to section ??.</para>
1796−</entry>
1797− </row></tbody></tgroup></informaltable>
1798−&return-value-dvb;
1799−<informaltable><tgroup cols="2"><tbody><row><entry
1800− align="char">
1801−<para>EINVAL</para>
1802−</entry><entry
1803− align="char">
1804−<para>input is not a valid spu setting or driver cannot handle
1805− SPU.</para>
1806−</entry>
1807− </row></tbody></tgroup></informaltable>
1808−
1809−</section><section id="VIDEO_SET_SPU_PALETTE"
1810−role="subsection"><title>VIDEO_SET_SPU_PALETTE</title>
1811−<para>DESCRIPTION
1812−</para>
1813−<informaltable><tgroup cols="1"><tbody><row><entry
1814− align="char">
1815−<para>This ioctl sets the SPU color palette.</para>
1816−</entry>
1817− </row></tbody></tgroup></informaltable>
1818−<para>SYNOPSIS
1819−</para>
1820−<informaltable><tgroup cols="1"><tbody><row><entry
1821− align="char">
1822−<para> int ioctl(fd, int request = VIDEO_SET_SPU_PALETTE
1823− ,video_spu_palette_t &#x22C6;palette )</para>
1824−</entry>
1825− </row></tbody></tgroup></informaltable>
1826−<para>PARAMETERS
1827−</para>
1828−<informaltable><tgroup cols="2"><tbody><row><entry
1829− align="char">
1830−<para>int fd</para>
1831−</entry><entry
1832− align="char">
1833−<para>File descriptor returned by a previous call to open().</para>
1834−</entry>
1835− </row><row><entry
1836− align="char">
1837−<para>int request</para>
1838−</entry><entry
1839− align="char">
1840−<para>Equals VIDEO_SET_SPU_PALETTE for this command.</para>
1841−</entry>
1842− </row><row><entry
1843− align="char">
1844−<para>video_spu_palette_t
1845− *palette</para>
1846−</entry><entry
1847− align="char">
1848−<para>SPU palette according to section ??.</para>
1849−</entry>
1850− </row></tbody></tgroup></informaltable>
1851−&return-value-dvb;
1852−<informaltable><tgroup cols="2"><tbody><row><entry
1853− align="char">
1854−<para>EINVAL</para>
1855−</entry><entry
1856− align="char">
1857−<para>input is not a valid palette or driver doesn&#8217;t handle SPU.</para>
1858−</entry>
1859− </row></tbody></tgroup></informaltable>
1860−
1861−</section><section id="VIDEO_GET_NAVI"
1862−role="subsection"><title>VIDEO_GET_NAVI</title>
1863−<para>DESCRIPTION
1864−</para>
1865−<informaltable><tgroup cols="1"><tbody><row><entry
1866− align="char">
1867−<para>This ioctl returns navigational information from the DVD stream. This is
1868− especially needed if an encoded stream has to be decoded by the hardware.</para>
1869−</entry>
1870− </row></tbody></tgroup></informaltable>
1871−<para>SYNOPSIS
1872−</para>
1873−<informaltable><tgroup cols="1"><tbody><row><entry
1874− align="char">
1875−<para> int ioctl(fd, int request = VIDEO_GET_NAVI ,
1876− video_navi_pack_t &#x22C6;navipack)</para>
1877−</entry>
1878− </row></tbody></tgroup></informaltable>
1879−<para>PARAMETERS
1880−</para>
1881−<informaltable><tgroup cols="2"><tbody><row><entry
1882− align="char">
1883−<para>int fd</para>
1884−</entry><entry
1885− align="char">
1886−<para>File descriptor returned by a previous call to open().</para>
1887−</entry>
1888− </row><row><entry
1889− align="char">
1890−<para>int request</para>
1891−</entry><entry
1892− align="char">
1893−<para>Equals VIDEO_GET_NAVI for this command.</para>
1894−</entry>
1895− </row><row><entry
1896− align="char">
1897−<para>video_navi_pack_t
1898− *navipack</para>
1899−</entry><entry
1900− align="char">
1901−<para>PCI or DSI pack (private stream 2) according to section
1902− ??.</para>
1903−</entry>
1904− </row></tbody></tgroup></informaltable>
1905−&return-value-dvb;
1906−<informaltable><tgroup cols="2"><tbody><row><entry
1907− align="char">
1908−<para>EFAULT</para>
1909−</entry><entry
1910− align="char">
1911−<para>driver is not able to return navigational information</para>
1912−</entry>
1913− </row></tbody></tgroup></informaltable>
1914−
1915−</section><section id="VIDEO_SET_ATTRIBUTES"
1916−role="subsection"><title>VIDEO_SET_ATTRIBUTES</title>
1917−<para>DESCRIPTION
1918−</para>
1919−<informaltable><tgroup cols="1"><tbody><row><entry
1920− align="char">
1921−<para>This ioctl is intended for DVD playback and allows you to set certain
1922− information about the stream. Some hardware may not need this information,
1923− but the call also tells the hardware to prepare for DVD playback.</para>
1924−</entry>
1925− </row></tbody></tgroup></informaltable>
1926−<para>SYNOPSIS
1927−</para>
1928−<informaltable><tgroup cols="1"><tbody><row><entry
1929− align="char">
1930−<para> int ioctl(fd, int request = VIDEO_SET_ATTRIBUTE
1931− ,video_attributes_t vattr)</para>
1932−</entry>
1933− </row></tbody></tgroup></informaltable>
1934−<para>PARAMETERS
1935−</para>
1936−<informaltable><tgroup cols="2"><tbody><row><entry
1937− align="char">
1938−<para>int fd</para>
1939−</entry><entry
1940− align="char">
1941−<para>File descriptor returned by a previous call to open().</para>
1942−</entry>
1943− </row><row><entry
1944− align="char">
1945−<para>int request</para>
1946−</entry><entry
1947− align="char">
1948−<para>Equals VIDEO_SET_ATTRIBUTE for this command.</para>
1949−</entry>
1950− </row><row><entry
1951− align="char">
1952−<para>video_attributes_t
1953− vattr</para>
1954−</entry><entry
1955− align="char">
1956−<para>video attributes according to section ??.</para>
1957−</entry>
1958− </row></tbody></tgroup></informaltable>
1959−&return-value-dvb;
1960−<informaltable><tgroup cols="2"><tbody><row><entry
1961− align="char">
1962−<para>EINVAL</para>
1963−</entry><entry
1964− align="char">
1965−<para>input is not a valid attribute setting.</para>
1966−</entry>
1967− </row></tbody></tgroup></informaltable>
1968− </section></section>
Documentation/DocBook/media/dvbstb.png.b64+0−398
@@ -1,398 +0,0 @@
1−iVBORw0KGgoAAAANSUhEUgAAAzMAAAGaCAYAAAA7Jx25AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBI
2−WXMAAA3XAAANiQFmEOuiAAAgAElEQVR42uzdd1RU18I28GdgKFZUBE0saFA0KoqFFkEhKhbAQmxJ
3−bIkNNEpMEUwsMZarJMZrw4KxRExQczUqil0jRBA1GAjGQqLYC4TemdnfH76cj3HodYDntxaLmTll
4−zuw57Zmz9z4yIYQAkYZzcnJCSkoKGjZsyMIgIiIiquPS09PRoEEDyBhmqCaQyWRo06YN3nvvPRYG
5−ERERUR137Ngx/Pnnn5CzKKgmMDAwwKpVqxhmiIiIiAj29vZ4//33ocWiICIiIiKimohhhoiIiIiI
6−GGaIiIiIiIgYZoiIiIiIiBhmiIiIiIiIYYaIiIiIiIhhhoiIiIiIiGGGiIiIiIgYZoiIiIiIiBhm
7−iIiIiIiIGGaIiIiIiIgYZoiIiIiIiGGGiIiIiIiIYYaIiIiIiIhhhoiIiIiIGGaIiIiIiIgYZoiI
8−iIiIiBhmiIiIiIiIYYaIiIiIiIhhhoiIiIiIqFLIWQRElSMsLAy2trZo1KgR5HJualTxEhIS8P33
9−3+PDDz+sM5+5bdu2ePDgAZo2bcoVgCplm3J0dMS5c+fqzGf++uuvsWTJEm5TVClSU1ORk5ODBw8e
10−oHXr1gwzRDVJbm4uAGDRokUwMDBggVCFmzlzJrKysurUZ3727BksLCzg4eHBFYAq3IIFC5CQkFCn
11−PnNGRgYAYNWqVVwBqMJFRUVh48aNUCqVlfYeDDNElWzGjBkMM1QpNm7cWOc+c8uWLTFjxgzMmDGD
12−KwBVuLt37yIkJKTOfW5nZ2duU1SpYaYysc0MERERERHVSAwzRERERETEMENERERERMQwQ0RERERE
13−xDBDREREREQMM0RERERERAwzREREREREDDNERERERMQwQ0RERERExDBDRERERETEMENERERERMQw
14−Q0REREREDDNEREREREQMM0RERERERAwzRERERETEMENERERERMQwQ0RERERExDBDREREREQMM0RE
15−RERERAwzREREREREDDNEREREREQMM0RERERExDBDRERERETEMENERERERMQwQ0REREREDDNERERE
16−REQMM0RERERERAwzRERERETEMENERERERMQwQ0REREREVGnkLAKimunBgwdISkoq8/SGhoZ47bXX
17−WJCV6NmzZwgMDMS5c+ewd+9eFgiVSVZWFkJCQnD16lU8evQICoUChoaG6NChA2xsbNCxY0fIZDI8
18−efIEp06dwuTJk0s876CgIJiYmKBLly4saKq2Y5Wuri6aNm0KQ0NDaGnxd3ZimCGqE/78808EBgbi
19−p59+QkJCgsowLS0tyGQy6blSqYQQQmWcjz/+GGvXrmVBVoKtW7di+/btuHbtGoQQMDQ0ZKFQqf37
20−77/w8fHBtm3bkJCQgCZNmsDS0hLGxsZ48OABtm/fjidPnsDU1BR2dnYICwtDz549SxxmlEol5s6d
21−CxsbG+zZs4cFTpV2rDpx4gQOHDiAJ0+eqAzT09ODUqlETk4OAEBfXx/dunWDvb093Nzc0LdvX5Vj
22−GVFBGH+JaqihQ4di06ZNOHr0qMrrly5dgkKhQG5urvSnVCqRlZWF27dvY8mSJQCA7OxsFmIlmTFj
23−Bs6ePctfu6nMTp48iTfffBOrV6+Gnp4e9uzZg+fPn+PUqVPw9/fHkSNH8PDhQxw9ehRCCOzevRu3
24−bt1CWlpaqd4jJiYG+/btw+PHj1noVGnHqnXr1uHcuXMqr+/fvx8ZGRnIzs5GSkoKIiIi8M0330BH
25−Rwdr166Fvb09evXqhdOnT7MQiWGGqDazsrJSeV5Y1TFdXV107NgRX331FSZPniz9ElbTnDp1SuOX
26−USaToXHjxujevTtXUCq1H3/8EcOGDcPz58/RtWtXREREYMKECdDR0VE9gGtpwcXFBdeuXYONjQ0A
27−ID09vcTvs2HDBgBATk4OfH19WfBUqTp16gS5/P9XCDI3N5euujRs2BAWFhb46KOP8Ntvv+HIkSNo
28−3rw5rl+/DicnJ3z66adQKpUsRGKYIaqNdHR0Sl3HeNy4cTXyysyBAwdq1EkX635TaV29ehVTpkyB
29−UqlEw4YNcfToUbRs2bLIaZo0aYIjR47AyMioxFdm7ty5g6CgIGhrawMAtmzZgoyMDH4BVGlkMhl0
30−dXVLNJ6rqyvCwsLQqlUrAMB3332Hjz/+mIVIDDNEtfkgURqOjo5YunRpjfqMd+7cwfTp0/llU62l
31−VCoxY8YM6arp/Pnz0b59+xJNa2RkBC8vrxJfmfH19YWVlRUmTJgAAIiPj2cnFaRRxypTU1McOnRI
32−CtwbNmzA4cOHWYjEMENUl+Xm5iIhIQH6+vowMTEpcJz8HQUIIdQ6DijoBKy0CppnUfN59uwZnJ2d
33−S9V7mxCiVMtW2mWqiPckyu/EiROIiIgAAGhra8Pd3b1U00+aNAlZWVnFjpeamoqdO3di9uzZmD17
34−tvT6f//732K3d6KqZGlpiRkzZkjPvby8it3HlmY/XNh+v6jtoCTHRU1RlmNSac8BGGaIqEpduXIF
35−CxYsUHs9MTERfn5+sLa2xrVr15CSkoJJkyZBX18fbdq0QWRkpMrOLTAwEMOHD4epqSnat2+Pxo0b
36−o3///vDz8yu0LU5ubi7Onz8PDw8PmJubS+87d+5cGBoaQi6Xw8LCQq2x5+XLl2Fra4s7d+4AAEJD
37−Q+Hi4gIXFxfMnz9fZdzs7Gz4+vrC2toa+vr60NHRQdeuXeHj41PgSV5Zl+lVx44dw8CBA/Haa6+h
38−Q4cO6NmzJw4cOFBn17OgoCC1XouoeD/++KP02NbWFkZGRqWa3sjICDt37ix2PH9/f8jlcowdOxaW
39−lpawtrYGAERHR+Ps2bP8IjRQaGgooqKi6mTYnDNnjvT41q1buHTpkto4pdn3CyFw7do1eHt7o127
40−dkhMTIQQAv7+/rCwsIBcLkfTpk3x8ccfS9Wxc3NzsXnzZvTu3Ru6urqoX78+3n33XbWeRPfv34/x
41−48dLx6jFixdLw5KSkjB37lwMHz5cGp6/hkRsbCzmz58vDcv7++KLL5Cbm4vDhw9j7Nix0utz587F
42−s2fPylUWZTkH0NTURqTxDAwMxN69e2vUMgcHBwsAIjExsdLfS1tbWwAQAMTdu3cLHW/hwoVi5syZ
43−0vMrV66IESNGCF1dXWn63377TfTv31/o6+tLry1YsEAIIUR6eroYPXq00NPTE7t37xY5OTlCCCFu
44−374t+vbtKwCIHj16iNjYWJX3PXXqlHBycpLm16JFCxEdHS06duwoHB0dhYuLi6hfv74AIHR0dMQf
45−f/whTfvXX3+J06dPC2NjYwFA2NraitOnT4vTp0+L8PBwabynT5+KPn36iOnTp4vIyEjx6NEjcejQ
46−IdGiRQsBQPTt21ekpaVVyDLlUSgUYvbs2UIul4stW7aI7OxsIYQQ0dHRwsLCQjRq1EgAEIaGhpXy
47−vZubmwtfX1+NW/fzyrRdu3Zi5syZIiAgQDx58qRC5t22bVuN/MwVoVWrVlLZeXp6Vsp7KJVK0bVr
48−V+Hl5SW95u/vL72vs7NznT7WeHt7Czs7O41brmnTpgkAwsDAQIwYMUKsX79eREZGCqVSWSGfuaq+
49−9wYNGkjr2l9//VXi6dq3by9Nt3jxYpVhpdn3X7p0SYwePVrI5XKV5Rg8eLCwsrIS7u7u4u2335aG
50−ff755+LJkyfirbfeEo6OjmLWrFli1KhRQktLSwAQrq6uast67949af6DBw9WGx4dHS0ds18td6VS
51−KZYtWya9f+/evVWGr1y5Uujq6oqAgIACv/vSHgdLew5QFpGRkQKA2nlBRQgMDBQGBgaCYYYYZmpZ
52−mDl48KAIDQ2V/i5duiTOnj0rvv76a6Grq6sSZtLS0kR2drZ0oAQgnJycxKFDh0RqaqqYOHGiaNKk
53−iTh9+rRQKpVi7NixAkCBJ5MpKSmic+fOAoDo1KmTSElJURtn6NChAoDQ19cXlpaWIiIiQhr2xx9/
54−SJ9jypQpatOamJgIAGLEiBFqw7Kzs0WfPn3EqFGj1Hbw+/fvlz6bt7d3hS7TokWLBACxZs0atWGP
55−Hz+WDtx1Lcw0a9ZMKnMdHR3pwF4R4aa2hpnk5GSpzApbpyrC2bNnhUwmU/nRIzMzU/qxAIC4efMm
56−w4yG8fDwkE6gtbS0hJ6eXoWFm5oQZkaOHClNN3r06HLv+xcsWCANs7GxUflhTKlUSu/XoEEDYWlp
57−KS5cuKAy/erVq6XpY2Ji1JbX1NS00DCT/3hWULkrlUoxZMgQ6bvOK6f09HTRsWNH8d133xU4z7KU
58−RWnOARhmiBhmqizMFPeXP8zk+eGHH6ThX331VYHvcezYMQFANG3aVGRlZRU4zpEjR6T5fPHFF2rD
59−P/roI2n4s2fP1Ib369dPCkOlCTNbt24VAMS5c+fUhmVmZkq/MDVt2lS6mlTeZbpx44bQ1tYWhoaG
60−hZbH8OHD62SYMTIyKnT9K2+4qa1h5p9//lEpp61bt1bK+4waNarAX5PzgjkAMWvWLIYZDQwz+a8m
61−5P8rb7ipCWFmxowZ0nSOjo7l3vdv375dml9YWJjatPv27ZOGb9q0SW34zZs3peG7du1SG96pU6ci
62−w0xe2Cms3O/fvy9d2XdychJKpVJMmzZNODg4CIVCUeA05TkOluQcQJPDjJw1UYlql5s3b6o07hdC
63−IC0tDZcuXcKHH35Y4DT5718xZMiQAsfJ6xLZysqq0O41hw0bBmNjYzx//hxbt27F0qVLVe4rkNcr
64−DQAYGxurTZ/XDWd8fHypPrOfnx8AIDw8HNHR0WrDmzVrhsePHyMhIQE3btxQuf9LWZdp3bp1UCgU
65−GDhwYKHl0ahRI66Qr8jfpurevXvYsWMHvv/+e+Tm5qJdu3YYPHgwHB0d0b9//2K7JK7NFApFhc8z
66−NjYWhw8fxvHjx9WGzZw5EytXroRCocCuXbuwfPlyNG3alCtsDZB3U+S8dhlHjx7FiRMnkJWVBQMD
67−Azg4OGDAgAFwcHBAt27dSt37pSbIv8z5j1dl3ffn3+83aNCg0P1+3jxe1aJFC+nxw4cPK/zztmnT
68−Bt988w3c3d1x6tQpTJo0CYcPH0ZUVFShXf6X5zhYknMATcYwQ1TL6OnpQV9fX+W1evXqYfjw4Viw
69−YIHUkL4w+Xfy+Q+WFy5cAAA0b968yGn79++PAwcOID4+HtHR0ejRo0eJlz1vJy1K0cg1OTkZ165d
70−g7a2dqGNzseMGaP2HuVZJiGE1EVo586dq/Uk5v79+7h27ZpGrYO5ubllDjfff/89tm/fDoVCIYWb
71−3r17w9XVtVaHm1eDQ1xcXIW/x5YtW/DGG29g0KBBBZ68ubm54cCBA0hPT8f27dvx+eef18l9aFpa
72−msZtUy9evChzuDly5AiCgoKQnZ2Nxo0bw9HREf369YO9vT369OlTI76Tf//9V3r8+uuvV/q+v6Dj
73−oMrJc74f6Srr/kzTp0/Hvn37cP78efj7+2Pjxo2F9kJakWVR3GdnmCGqQ4QG9jrz9ttv4+7du6We
74−Lj4+XroZX3Enqp06dZIeP3z4sFRhpizu3r0rdT+5Zs2aKtkRv3jxAk+fPgVQvVdfsrOzsWrVKqxa
75−tarWbDf516979+5h69atUkifOnVqpVyx0ARNmjSRrmoCQExMTIXOPyMjA35+flAoFCq/yL66nefZ
76−sGED5s2bp3LSVlfcuHGjxpzkl/RYlNcrV3JyMg4fPiz9GOPo6CiFA01269Yt6XHv3r2rbd9flbS0
77−tODn5wdzc3NkZGTg1KlTmDVrVoFX1mp7WTDMEFWDFy9eYPny5Rq3XD179sTGjRtLPV3+E8i8k/jC
78−GBoaSo+rYoeaF7KEELh//36JbzJYHvl/Nc/MzKy271NPTw/ffvttodUHq4uZmVmZryzo6ekhKysL
79−enp6sLS0hJOTE/r37w8bGxvo6uoiMDCw1u437OzscPDgQQAvu+KtSAEBAUhNTYWPj0+Rv8quWLEC
80−T58+xYMHD3Do0CGVX3Prip49exZYFa86ffbZZ/jhhx9KddUzj46ODpRKJZRKJTp06IChQ4fCwcEB
81−ffv2hbGxMRYsWIDExESNPp5GRUVJz11cXKpt31/V0tLSpOPvkSNHsG/fPowfP14jjoMMM0S12Llz
82−5zBgwABMnTq11nym5s2bQ0dHBzk5OYiOjoYQotB61/lv0PXGG29U+rLVr19fehwSElIlO3E9PT3p
83−8d9//11t34tMJkP9+vU1rm1Daerk6+vrIzMzUyW8ODo6Ftk2q7YaO3asFGbu3LmDqKgo6f5H5SGE
84−wIYNGzBmzBjMnTu3yHHj4+Px1VdfAXh5E826GGby7jOiSfLvc4qjq6sLhUIBpVKJjh07YsiQIXBw
85−cIC9vX2R1YQ11c6dO6WaDi4uLmjXrl217furUlZWFiZMmIClS5di48aNePToEebMmYMBAwao3YOq
86−tpdFcXjTTKIKolQqsXz5cgwYMAAAMHz48Fp1cM+7sV5cXBxu3LhR6Lh59XVbtWqFjh07VvqymZqa
87−SifPfn5+RVbvS01NxcyZM8v9nq1bt5YaTF64cIF3TS+FvPZcenp6sLOzwxdffIHg4GAkJycjODgY
88−ixYtgp2dXZ0LMgDg5uamchLy3XffVch8L168iIiICEyfPr3YcWfOnCmt25cuXUJ4eDhXWg2nq6sL
89−bW1tyGQymJmZwd3dHQcOHMCLFy9w69YtrFu3DqNGjaqRQebx48dSNVpdXV2sXr26Wvf9FaUkx4yF
90−CxeicePGmD9/PjZv3iwdfz09PTXiOMgwQ1TLvHjxAoMGDcKSJUsAvLxjcUE9oFTWTjH/1ZDKOrH+
91−4IMPpMcBAQGFjpd38uPu7l7qXnOKWva8eeXV/c7TqFEjKWgFBwdjz549BU6fm5uLKVOmwMnJqdzL
92−pKenh/79+wN4WVc5KCioyGnrWtjJq/Lwanixt7dneCmCjo4ONm3aJD3ftWsXTp8+XeLpExMT4erq
93−qnZX8NWrV8PMzAz29vbFzqNly5YYPXq09Hzt2rXcwWsApVIpVTcqaXjJX+W3Jp3E50lISMDIkSOR
94−kJAAANi0aRO6dOlSZfv+8sirYp2enl5gGaSkpBQ5/a+//oqNGzfCz88PWlpacHV1xbvvvgsA+Omn
95−n3D06NEqPQ4yzBDVcufPn0fXrl1x8eJFKJVKaGlp4bPPPquy909PT1c5QJSlZ5X8YaiwOtmTJk2C
96−paUlAGDz5s0F1rG+ffs2goODYWZmhnnz5qkNL67xdl7PVgUd8PKqfdy+fVsanp2djcePH6v8UjVt
97−2jSsX79e6s0HeFllx8XFBdnZ2XBzc6uQZcr/+Tw8PNS650xMTERISAiAl41uU1NT68w2kXcAfzW8
98−XLx4keGlGEOHDsWaNWuk525ubiVqJxQaGgpLS0v069dPpdvYK1euICgoCGPGjCnxjwvvvfee9PjA
99−gQPVWpWS/v8JsBCixoWXV/e1+dsYFhZshBA4deoU+vTpgytXrkBXVxfbtm3DtGnT1MYt674//zGv
100−LMfE4n5AzLvCevnyZdy+fVulDFasWCHtIwu6DUFycjImT56MBQsW4M0335ReX7dunfQdu7u7qx2D
101−y3McLMk5AMMMUS2kVCrx9ddfY+DAgYiPj0dubi7kcjnGjx+Ptm3bVtlynDx5UuV5YVcJipK/u+bf
102−f/+9wHHkcjkOHTqETp06IT4+HhMmTFD5BT4hIQETJ05EmzZtEBgYWGDf/flPivJ6bcp/QPjzzz8B
103−vOxONDk5WWW4ra2tNI/58+fj4MGDeOedd/Dvv/9i3LhxGDdunBQ+PD090bx5c/To0QOmpqYwMzND
104−UlIS/P391U7oyrpMw4YNg4eHBwDg/v376NWrF1asWIHAwEBs27YNjo6OMDAwkA4O3bt3r3WX9gtz
105−7do1ZGVlMbyU0SeffIJ9+/ahWbNmSE1NhaurK9zc3HDy5EmVX3pTU1MRFBSEd955By4uLli2bJlK
106−d8qZmZmYNWuWtP2WVF6bhLyTr3nz5hV78keVa968eYiLi6tR4eVV58+fV1mP9u3bh5iYGPz999/4
107−/fffcfjwYSxatAg9evTA4MGDce/ePbi5ueH69euFVpEs674/f2+BBQWK2NhY6XFB1aofPHggPX78
108−+LHa8LyaDNnZ2bCzs4OXlxe8vb1hbm4OIQQcHBwAAGFhYXj//fdx7Ngx6bxi2rRpUCqV8PLyUpmn
109−kZGRVPvj8ePHmDJlikrwKM9xsCTnAJqe9ok0noGBgdi7d6/GLM+TJ0+Eg4OD2h2ZZTKZiIyMFEII
110−ERwcLACIxMTESlkGPz8/MWjQoALvCm1nZyc+/fTTYudx5swZ4erqKrS0tKRp9fT0xKRJk8T27dsL
111−nCYpKUnMmzdPNGrUSLz++utixowZ4sMPPxQmJibC3d1dxMXFqU0TGhoqxo8fr7KMXbp0EV9++aUQ
112−QoiTJ08KJycnleE9e/YU27Ztk+YRGxsrWrduLQ1//fXXxfnz56XhOTk5YsmSJdJdk/P+DAwMxMKF
113−C0VGRkaFL5NCoRDffPONaNq0qcp4JiYm4ty5c+L9998XhoaGwsPDQwQHBxd65+ayMjc3F76+vnVq
114−X9C2bds685nj4uLEkiVLRNu2bVX2MYaGhqJZs2YCgGjTpo1YtGiR2na3f/9+0blzZ2k6uVwuRo0a
115−JY4fP17o+/31119i8uTJol27dmr7lN69e4tffvml1pe5t7e3sLOzq1PblLe3d6F3oq+oY5WTk5PQ
116−1dVVW6/y/zVu3Fh06dJFjB07VmzatEk8fPiwRPMvzb7/119/FbNmzRJ6enoq+2tvb28RGxsr/v77
117−bzFv3jzRvHlzabiurq7w8PAQFy5cEBkZGeLzzz8X7du3V9m23N3dRWBgoPQ+SqVSLF26VOX43KxZ
118−M+n44ezsLNq3by+8vb1FaGioyM3NFcHBweLtt98WAISRkZHw8fFR+Zznzp0TDg4OKp/R1tZWZZsu
119−7XGwLOcApRUZGSkAiNjY2ApftwIDA4WBgYGQCbZcpRqgSZMm8PX1Van+UJ2/Lo0ZMwYpKSkq7Tfk
120−cjkcHR1x6tQpAC97FLG3t0diYqL0C31tkpWVhT/++ANxcXFo2rQpevToodKjSmVIS0tDWFiY1PNV
121−QT38ZGRk4Pr160hISICRkRG6d+9eqp6AyloW169fR1xcHIyNjdGzZ0/I5XLExMTAxMRE5e7KFal7
122−9+7w8PCQrhDVBSYmJvD29q5Tn1kIgdu3b+PPP/9EXFwclEoljI2N0bVrV3Tq1KlG3tFdUy1YsAAh
123−ISEIDg6uU585Kiqqxnd7Xh37/uK8ePEC169fR7169dCnTx+pDeE///yDdu3alfomzjWxLKKiotC9
124−e3fExsZWeK2VY8eO4f3332fXzEQlpVAosGzZMixbtky6HPzq8C+++KLOlIeenh6srKyq9D0bNGgg
125−9RZXmHr16klV0qqyLPIaX+bXoUMHbjhUbjKZDJ06dVK5IS0RVf++vzhGRkYYNGiQ2uuVfdsCTSyL
126−ysQwQ1QCT58+xZgxYxAWFlZg3XEtLS1YWFhI9WCJiIiIqPKxAwCiYpw5cwbdunVDeHh4kb18LFy4
127−kIVFRERExDBDVP0UCgUWL14MJycnJCQkqN3fJI9MJoOJiQlGjBjBQiMiIiKqQqxmRlSAR48eYfz4
128−8QgLC5P69y+MtrY2vvjii0pryEdEREREDDNEJXLq1CkMHjwYurq6Jbp5lIGBASZNmsSCIyIiIqpi
129−/CmZKB8hBPbv3w8AhVYry09XVxdeXl68ISARERERwwxR9ZLJZNi+fTvWr18PLS2tYquO6ejoYMaM
130−GSw4IiIiIoYZIs0wZ84cnDlzBo0aNSr0hoe6urr46KOPauUNMYmIiIgYZohqMEdHR4SGhkJbW7vA
131−O2wrlUp4enqyoIiIiIgYZog0z6pVq9CsWTO4uLhAW1tbel1XVxeTJ0/Ga6+9xkIiIiIiYpgh0izr
132−1q1DQEAA/ve//+Hw4cNYvnw5tLS0IJPJkJ2dDS8vLxYSEREREcMMkWa5cOECPvvsM/j6+sLGxgYy
133−mQze3t4IDAyEEAI2Njbo2LEjC4qIiIioGvE+M0SvuH//PsaOHYtp06Zh6tSpKsOGDh2KW7duISsr
134−iwVFRERExDBDpDnS09Ph5uYGMzMzrFu3rsBxzMzMWFBEREREDDNEmsXDwwNPnz7F1atXeSNMIiIi
135−IoYZopohr8H/r7/+ipYtW7JAiIiIiBhmiDRfXoP/LVu2wMbGhgVCREREVAOwNzOq84pq8E9ERERE
136−DDNEGqkkDf6JiIiISDOxmhnVaWzwT0RERFQLwsz333+P77//Hg0aNGCpUIVTKBTIycnB//73Pxgb
137−G2vEMrHBPxEREVEtCTMxMTEIDQ2Fl5cXS4UqXFRUFM6fP4/MzEyNWB42+CciIiKqRWEGAJydnbFq
138−1SqWClVKmDl+/LhGLAsb/BMRERHVDuwAgOoUNvgnIiIiqj3YAQDVKWzwT0RERMQwQ1TjsME/ERER
139−EcMMUY3DBv9EREREtQ/bzFCtxwb/RERERAwzRDUOG/wTERER1V6sZka1Ghv8ExERETHMENU4bPBP
140−RERExDBDVOOwwT8RERFR7cc2M1TrsME/EREREcMMUY3DBv9EREREdQermVGtwgb/RERERAwzRDWO
141−pjb4X716NQwMDPgFUYWLioqqc5/54cOHWL16NZKTk7kCUKXsr83Nzevc5z527BhWr17NFaAYycnJ
142−uH//Ptq1a4eGDRuyQDTkOMUwQ7WCJjb4b9iwIUxMTHDixAloabFGJ1W8Nm3awMjIqE59ZkdHR9y/
143−fx8HDhzgCkAVrl27dujZs2ed+sytWrVCmzZtuE29QqlUIi0tTeUvJycHMpkM+vr66NKlCwupBLKz
144−s2FqalqptWUYZqjG09QG/xYWFrh37x6/IKIKdObMGRYCUQX66KOP8NFHH9XpMlAoFIiOjkZ4eDgu
145−X76My5cv48aNGxBCoHPnznBycoKVlRVsbGwQFRWFhQsX4urVq1x5NATDDNVobPBPREREpfHo0SMp
146−tFy+fBnXrhOJlUQAACAASURBVF1DamoqWrZsCWtra4wfPx42Njbo06cPGjdurDLtjRs3WIAMM0QV
147−hw3+iYiIqDCpqam4evUqwsPDERYWhvDwcDx69Aj169dH7969YWVlhdmzZ8Pa2hpt27ZlgTHMEFUd
148−TW3wT0RERFWvuOpi1tbWWLhwIWxsbNCtWzfI5TwNZpghqiaa2OCfiIiIqk55qosRwwxRtdHUBv9E
149−RERUOVhdjBhmqFZgg38iIqLajdXFiGGGai02+CciIqpdWF2MGGaoTjhx4gT27dvHBv9EREQ1FKuL
150−EcMM1Um5ubn48ccfsXXrVjb4JyIiqgFYXYwYZojwssF/eno63n77bTb4JyIi0lCsLkYMM0SvyGvw
151−r6WlhUmTJrFAiIiINACrixHDDFEJeHh44NmzZ2jQoAEvPxMREVUDVhcjhhmiMli3bh0CAgLw66+/
152−YsiQISwQIiKiKlCS6mLW1tawtLRkdTFimCEqyIULF/DZZ59hy5YtbPBPRERUSVhdjBhmiCrY/fv3
153−MXbsWEybNo0N/omIiCoIq4sRw0wVCAoKgomJCbp06cJvpw7Ka/BvZmaGdevWsUCIiIjKiNXFiGGm
154−iimVSsydOxc2NjbYs2cPv506KK/B/5UrV6Crq8sCISIiKgFWFyOGGQ1w8uRJxMTEIDY2FqtXr8br
155−r7/Ob6gOyd/gv2XLliwQIiKiAigUCty4cUPlqgurixHDjAbYsGEDACAnJwe+vr5Yvnx5lb7/qVOn
156−4OTkxLWiGrDBPxERUcFYXYyoBoSZO3fuICgoCNra2lAoFNiyZQu+/PJL1KtXr0re/8CBA9i7dy/D
157−TDVgg38iIqKXWF2MqIaGGV9fX1hZWeHNN9/E7t27ER8fj71792LatGlVEqSmT58OBwcHrhFVjA3+
158−iYiormJ1Mc329OlThISEYPTo0UWOFxMTg3/++Yc/iNflMJOamoqdO3di/fr1UpgBgP/+97+YOnUq
159−ZDJZieclhFAbX6lUQktLq8Dxnz17BmdnZyQlJZVqmYUQEEIUOt/yLFNFTfvqfACUqiyrAhv8ExFR
160−XcHqYjXLzZs3MW7cOMTFxaFp06aFjrdnzx4cPXqUYaaaaGnCQvj7+0Mul2Ps2LGwtLSEtbU1ACA6
161−Ohpnz54tdvrc3FycP38eHh4eMDc3BwAkJiZi7ty5MDQ0hFwuh4WFBU6fPq0y3eXLl2Fra4s7d+4A
162−AEJDQ+Hi4gIXFxfMnz9f7X2ys7Ph6+sLa2tr6OvrQ0dHB127doWPjw+ysrIqZJnKO21+V69excSJ
163−E2Fvb4/Bgwejbdu26N27N3bs2CGFm+qU1+D/wIEDbPBPRES1SmpqKi5cuAAfHx+4ubmhdevWaN26
164−NSZOnIjQ0FD06dMHO3bsQGxsLJ48eYJffvkFX3zxBQYMGMAgoyFsbGygq6uLkJCQIse7cOECHB0d
165−WWDVRfwfb29v4ezsLKqaUqkUXbt2FV5eXtJr/v7+AoAAUOwynTp1Sjg5OUnjt2jRQkRHR4uOHTsK
166−R0dH4eLiIurXry8ACB0dHfHHH39I0/7111/i9OnTwtjYWAAQtra24vTp0+L06dMiPDxc5X2ePn0q
167−+vTpI6ZPny4iIyPFo0ePxKFDh0SLFi0EANG3b1+RlpZW7mUqz7T5bdq0SchkMuHp6SkUCoUQQoi0
168−tDRhZ2cnAIgVK1ZU6fccGRkpAIjY2FghhBDnz58XcrlcbN++vUTTGxgYiL179woiIiJNk5ubKyIj
169−I4Wfn5+YNm2aMDc3F9ra2kJLS0t06dJFfPDBB2Lz5s0iIiJC5OTksMBqkH79+olPPvlEer53717R
170−tm1b6Xl6errQ09MTR44cYWFVscDAQGFgYCCqPcycPXtWyGQycffuXem1zMxMKWAAEDdv3ix2PkOH
171−DhUAhL6+vrC0tBQRERHSsD/++ENoa2sLAGLKlClq05qYmAgAYsSIEQXOOzs7W/Tp00eMGjVKKJVK
172−lWH79++XltPb27vClqk80z548EAafurUKZVhAQEBAoBo1KiRyMrKqpYwExsbK4yMjIS7u3uJp2eY
173−ISIiTfHw4UPxv//9T8yfP1/0799fNGzYUAAQLVu2FCNGjBArVqwQZ86cEUlJSSysGm7x4sWiZ8+e
174−hYaZ8+fPC21tbZGQkMDCqqYwU+3VzDZu3AgXFxe0a9dOek1PTw8zZ86Unq9fv77Y+ZiamgIAMjMz
175−ERgYCAsLC2lY9+7d0bdvX6kqWWnt3LkTV69exZw5c9TanAwfPhz6+voAgK1btyI3N7dClqk8096+
176−fRsKhQIAEBcXpzLM2NgYAJCSkoK7d+9W+fedkZHBBv9ERMTqYlQjODo64o8//kBCQkKBw8+fP4/u
177−3bujSZMmLKxqUq0dAMTGxuLw4cM4fvy42rCZM2di5cqVUCgU2LVrF5YvX15k4yttbW21E/b8WrVq
178−BQCIj48v9XL6+fkBAMLDwxEdHa02vFmzZnj8+DESEhJw48YNdO/evdzLVJ5p+/Xrh08//RRZWVkY
179−OXKkyrD8Yay0nR5UhC+//JIN/omISCOxdzF6lY2NDXR0dBASEgJXV1e14WwvU8fDzJYtW/DGG29g
180−0KBBBZ6su7m54cCBA0hPT8f27dvx+eefl/m98nr/EqVs+J6cnIxr165BW1sbT548KXCcMWPGqL1P
181−ZS5TcdPK5XJ8++23Kq+lp6cjICAAO3bskF5TKpVV/p0fOXIEFy9eZIN/IiKqduxdjIqjr68Pa2tr
182−XLhwQS3MZGRk4PLly/jss89YUHUxzGRkZMDPzw8KhUK6kvGq/FcdNmzYgHnz5lX5ryB3796FEAJK
183−pRJr1qxRuWJSE9y7dw/r16/HrVu3MHXqVCxZsqRauw5csWIFbGxsuOUREVGV4s0oqawcHBxw9OhR
184−tdcvX76M3Nxc2Nvbs5DqYpgJCAhAamoqfHx8iryasWLFCjx9+hQPHjzAoUOHVK6CVIW0tDQAL6+A
185−3L9/H+3bt68RX2xaWhoWLFgAf39/+Pr6Ys2aNZDJZLhw4UK1Ltft27dx//59HiiIiKjSsLoYVSRH
186−R0csX74ciYmJKq+zvUwdDjNCCGzYsAFjxozB3Llzixw3Pj4eX331FYCXN9Gs6jBTv3596XFISEiN
187−CDNJSUlwdHREREQEgoKCMGTIEI1Ztl69esHExASTJk2Cn58f280QEVG5sboYVaa8djPBwcEqr7O9
188−jGaolt7MLl68iIiICEyfPr3YcWfOnAkdHR0AwKVLlxAeHl6ly2pqaio1mvfz8yuyfUtqaqpKL2zV
189−ZeXKlYiIiICJiYlGBRkAcHZ2BgD88MMPePPNN3HixAluhUREVGLsXYyqWv52M3ny2ss4ODiwgOpi
190−mFm9ejXMzMxKVMewZcuWGD16tPR87dq1ZXrPokJIXljJzs5WG9aoUSNYW1sDAIKDg7Fnz54C55Gb
191−m4spU6aUqj1KWRr+l2TavN7h9PT01Ibl5ORU+0oXFRUF4GV7JGdnZ4wcORL//PMPt0YiIlKhUCgQ
192−FRWF7du3Y/r06VKVngEDBmD37t1o0qQJFi5ciIiICCQlJeHixYv49ttvMWbMGFZnpgrl4OCA8+fP
193−S8/DwsLYXqauhpkrV64gKCgIY8aMUbtnS2Hee+896fGBAwfw999/F7jDK0reSXxBISCvy+fbt29L
194−w7Ozs/H48WMAgKenpzTutGnTsH79emRlZUmv3blzBy4uLsjOzoabm1uFLFN5ps3rpezOnTv4888/
195−pdczMzOxe/dulV8VyhuqyqJbt2745JNPYGBgAF1dXcTExKBbt2746quvpGUiIiLNdP36ddy5c6dS
196−5v3o0SMcPHgQXl5ecHBwQJMmTdC9e3csWrQIL168wPjx43Hy5EkkJCQgOjoaO3bsgLu7OywsLNju
197−hSpV3v1m0tPTAbysYtajRw+2l6lrYSYzMxOzZs0CgFLtdPLfUFOhUGDevHlq3QrnDzjPnz9XGSaE
198−kE7qk5KSkJycrDLc1tZWmsf8+fNx8OBBvPPOO/j3338BAOPGjcO4ceOkEOHp6YnmzZujR48eMDU1
199−hZmZGZKSkuDv768S0MqzTOWZNu/qkBACgwYNwsKFCzF79mz06NEDXbt2lcZbtWoVlixZgh9++KHK
200−V7wlS5ZAX18fPXr0wN27dzFr1ixs3rwZXbp0waFDh7hlEhFpmN9//x0jR45Er169EBAQUO75sboY
201−1SR57WZu3rwphRlWMdMQ4v94e3sLZ2dnUVn2798vOnfuLAAIAEIul4tRo0aJ48ePFzrNX3/9JSZP
202−nizatWsnTZf317t3b/HLL7+I0NBQMX78eJVhXbp0EV9++aUQQoiTJ08KJycnleE9e/YU27Ztk94n
203−NjZWtG7dWhr++uuvi/Pnz6ssS05OjliyZIlo1KiRyrwMDAzEwoULRUZGhjRueZapIj5PUlKScHBw
204−UBnH2dlZxMTECIVCIczNzaXXR40aJdLT00Vli4yMFABEbGys9NquXbuEvr6+mDx5sqhfv744dOiQ
205−mDt3rpDL5WLIkCHi1q1b0rgGBgZi7969goiIqtaVK1eEq6urkMlkwsnJSYSEhJR6Hrm5uSIyMlL4
206−+fmJadOmCXNzc6GtrS20tLREly5dxAcffCA2b94sIiIiRE5ODgudNFK/fv3EsGHDRJs2bYSenp44
207−cuQIC6UaBQYGCgMDAyET/1fHaMGCBYiKikJgYGCdDHVpaWkICwuDnp4eLC0tC2xvArysmnX9+nUk
208−JCTAyMgI3bt3L3Tcag6piIyMxJMnT/Dmm2/CxMREGpaSkoLQ0FA0b94cPXv2LHF1v/KIiopC9+7d
209−ERsbK9VjFkLA3t4eTZo0QYcOHeDn54fDhw+jRYsWmDNnDkJDQ/HJJ5/gyy+/ROvWreHr66tS5ZCI
210−iCpPeHg4vv76axw7dgxDhgzB4sWLpZoMxSmudzErKyv2LkY1zpIlS+Dv74/U1FTEx8cjLi6O1cyq
211−0bFjx/D++++DFUz/T4MGDTBgwIBix6tXr16Jd+bVSSaToUePHujRo4fasEaNGlXrjTPzL+PGjRvR
212−p08f/PLLLwCAESNG4PDhwzh//jwCAgLw6aefwt/fXyM6LiAiqgvCwsLw9ddfIygoCMOGDUNYWJjU
213−EU5BeDNKqivy7jfToEEDtpfRIAwzVK0sLCwwY8YMzJs3D5GRkSqB5t1334Wrqyu+/vprfPPNN1i+
214−fLlaux8iIqoYv/32G77++mucPn0azs7OCA8Ph6Wlpco4vBkl1WXW1taQy+VISUlhexmGGaL/b9my
215−Zfj555/x7bffSl1v5wWagQMHwsfHB1u2bIFcLoeFhQXmzJmDxYsX8xcRIqIKEBwcjKVLl+LcuXNw
216−dXXFlStX0Lt3bwBFVxezsrLizSipTqlXrx7Mzc1x7do1hhmGGaL/z9DQECtXroSnpycmT55cYKDR
217−0tKCt7c39PX1MW/ePAQEBGD9+vUq9yAiIqKS+/XXX7F06VJcuHABI0eOREhICLKzs3H27FmsWLGC
218−1cWICtC8eXMA4P1lGGaIVH344YfYunUrPv30Uxw4cEAt0ORxc3PD0KFDsXLlSrXuuYmIqHjnz5/H
219−0qVLERwcjF69emHUqFG4c+cO+vXrx+piRMXw9vbGixcvWDuEYYZIlZaWFjZs2IC+ffvi1KlTcHJy
220−Ugk0+Xtcq1evHpYtW8ZCIyIqhb1792LChAkAAG1tbSiVSsTGxsLIyAgjR47E2rVrWV2MqBjW1tYY
221−PHgwC4JhhkidjY0NPvzwQ3h6eiIyMhI6OjpSoFm/fr10o9Ca4s8//8TEiRPRrFkzaGlp8QumCvf8
222−+XMsX74crq6udeYzv/POO3j48CFPuEshOTkZMTEx0o2ggZcN+QHgxYsXCAoKQlBQEJYtWwaZTCZd
223−hcn7r6Ojo/JcLpdDJpNBW1sbLVq0gKGhYa0pq3///RdvvfUWNmzYUGfWj++//x7r16+HsbExN5YS
224−ysrKwqBBg1gQJZCdnY309HQcO3as0tYxhhnSKCtXroSZmRnWrVuHzz77DDKZDGvXrsWWLVuwZs0a
225−vP322xg4cGCN+CyJiYm4fv063N3dYWBgwC+XKtzq1avx8OHDOvWZDx48iMaNG8PDw4MrQCk4OjpK
226−ISYnJ0f6r1QqkZ2drfZfCIGsrCzpf94JHABkZmZK/9u3b4+OHTvWqm0qOzu7Tq0bMTExiIyMhJeX
227−FzcUqnBRUVG4ePGitN9gmKFaz8jICEuXLsWXX36Jd999F61atYJMJoO+vj5sbW1VOgWoKVatWsUw
228−Q5Xi+PHjde4zt23bFt7e3gwzVClkMhlCQkLq3Od2dnbGqlWruAJQpYSZyj5Wse4LaZzZs2ejQ4cO
229−mD9/vsrrEyZMwPTp0zFixAicOXOGBUVERERUxzHMkMbR1tbG+vXrERAQgODgYOn1vCpnDDRERERE
230−BLCaGWkoe3t7zJw5E8+ePVN5PS/QAKiRVc6IiIiIiGGG6gBfX98CX2egISIiIiKGGaqxGGiIiIiI
231−iGGGGGiIiIiIiGGGiIGGiIiIiBhmiBhoiIiIiIhhhhhoiIiIiIhhhoiBhoiIiIgYZogYaIiIiIiI
232−YYaIgYaIiIiIYYaIgYaIiIiIGGaIGGiIiIiIiGGGiIGGiIiIiBhmiIGGiIiIiBhmiBhoiIiIiIhh
233−hoiBhoiIiIgYZogYaIiIiIgYZogYaIiIiIiIYYaIgYaIiIiIGGaIGGiIiIiIGGaIGGiIiIiIiGGG
234−iIGGiIiIiBhmiBhoiIiIiIhhhoiBhoiIiIhhhoiBhoiIiIiqNcxcuHABZ86cYalQhYuKimKgISIi
235−IqLKCzNpaWkYNGgQS4XqPAYaIiIiohoUZv7zn//gP//5D0uEiIGGiIiIqGaFGSJioCmMEALh4eE4
236−ceIEnj17BmNjY1haWuLtt99GvXr1kJiYiJ9//hnTpk2Tpnnw4AGSkpLK/J6GhoZ47bXXih0vKysL
237−ISEhuHr1Kh49egSFQgFDQ0N06NABNjY26NixI2QyGZ48eYJTp05h8uTJXLGpWgUFBcHExARdunTR
238−mGV69uwZAgMDce7cOezdu1dl2L179+Dh4QEDAwNs3boVBgYG/BKpytbLFy9eFDq8adOmaNWqVYHH
239−rOjo6AKnad++PRo0aFBh63ZR2w4xzBAx0GiAFy9eYNKkSThx4gSaN28OW1tb3L9/H76+vsjKyoKL
240−iwsePnwIuVyuEmb+/PNPBAYG4qeffkJCQoLKPLW0tCCTyaTnSqUSQgiVcT7++GOp3Avy77//wsfH
241−B9u2bUNCQgKaNGkCS0tLGBsb48GDB9i+fTuePHkCU1NT2NnZISwsDD179mSYoWqlVCoxd+5c2NjY
242−YM+ePdW+PFu3bsX27dtx7do1CCFgaGioNs6aNWtw4sQJAICtrS08PT35RVKV+Oeff+Dn54ddu3ap
243−HCM6deqE8ePHo1+/foWGmaCgIPz22284fPgwAMDAwACzZs3CRx99JIWZ8qzbJdl2qIoIohrAwMBA
244−7N27t1qXQalUCk9PT1G/fn1x+vTpYscPDg4WAERiYmKNLfeMjAxhYWEhAIjJkyeLjIwMaVh2drbY
245−vHmzqFevngAgOnfuXOA8QkJCBADpLyQkpMDxsrKyxO3bt8WSJUsEADFr1qxCl+vEiRPC2NhYABAt
246−W7YUe/bsEdnZ2SrjKBQKcfToUfHGG29I7+3q6lqrtgtzc3Ph6+tbp/YFbdu2rdGf+fjx4wKA0NHR
247−EY8ePar25VEqlSIpKUl07dpVABCGhoZq42zbtk0AEDKZTJw9e7ZWr1/e3t7Czs6uTm1T3t7ewtnZ
248−WaOX0cfHR+U48tNPP5V42i5duggA4sSJExW6bpdk2yEhIiMjBQARGxtb4fMODAwUBgYGQotxjqh0
249−V2imT5+OESNG1Ime/7Zt24br16+jSZMm2Lx5M/T19aVhOjo6cHd3x5kzZ1CvXj08evSowHlYWVmp
250−PC/oVzQA0NXVRceOHfHVV19h8uTJyMnJKXC8H3/8EcOGDcPz58/RtWtXREREYMKECdDR0VG7+uPi
251−4oJr167BxsYGAJCens4VmarVhg0bAAA5OTnw9fXViP1a48aN0b1790LHmT59Oi5fvoyoqCi8/fbb
252−/BKpys2bNw9vvvmm9DwkJKSkP9gjLi4OdnZ2GDx4cIWu2yXZdqhqMMwQMdAU6siRIwAAU1NT1KtX
253−r8Bx3nrrLXzzzTdISUlBSkqK2nAdHR1oaZVuVzNu3DhkZ2ervX716lVMmTIFSqUSDRs2xNGjR9Gy
254−Zcsi59WkSRMcOXIERkZGSEtL40pM1ebOnTsICgqCtrY2AGDLli3IyMjQjJOBYrZRKysrdO3alV8i
255−VQu5XI7FixdLz/39/Uu0Pw8PD8fz58/x0UcfVdq6XdrjGzHMEDHQVKHHjx9LJ2FFXdWYPn06WrRo
256−IY1fUJmVhqOjI5YuXarymlKpxIwZM6QrNvPnz0f79u1LND8jIyN4eXnxygxVK19fX1hZWWHChAkA
257−gPj4eDYYJiqh0aNHw8TEBACQlJSEHTt2FDvN999/j+bNm2PkyJEsQIYZIqqLgaZJkyYAgOTkZCxY
258−sKDQ8XR1dTFp0iT8+++/5X7PFy9eQF9fXzpo5Tlx4gQiIiIAANra2nB3dy/VfCdNmoSsrCyuvFQt
259−UlNTsXPnTsyePRuzZ8+WXv/vf/+r1vlFVRBCQKlUlmm6kirL/IkKI5fL8fHHH0vP165dC4VCUej4
260−KSkp+PHHHzF58mTo6elV2Lpd1m2nPNNyW2KYIWKgKaP8N9Fdv349Pv744wKrfwGAj48PbG1ty/V+
261−SqWy0J7ifvzxR+mxra0tjIyMSjVvIyMj7Ny5kysuVQt/f3/I5XKMHTsWlpaWsLa2BgBER0fj7Nmz
262−RU67f/9+jB8/Hi4uLnBxcVGpbpOUlIS5c+di+PDh0vBXr2rmd+zYMQwcOBCvvfYaOnTogJ49e+LA
263−gQNFvn9KSgp++OEHDB48GOvWrSvyRC0wMBDDhw+Hqakp2rdvj8aNG6N///7w8/MrtB0cUUlNnTpV
264−6j757t27Uk9lhR0z0tLSMH369HKv22XddgAgOzsbvr6+sLa2hr6+PnR0dNC1a1f4+PgU+gMbt6XS
265−p0Qi9mZWCb2c1YbezOLi4sRrr72m0ouMhYWFCA8PL9V8tLW1penv3r1b6HghISHCxMSkwGGtWrWS
266−5uHp6cmNgr2Z1RhKpVJ07dpVeHl5Sa/5+/tL63NJepK6d++ekMvlAoAYPHiw2vDo6GhpOytofgqF
267−QsyePVvI5XKxZcsWqfe/6OhoYWFhIRo1aqTWI1N0dLQYO3as0NfXl5b1m2++KXD50tPTxejRo4We
268−np7YvXu3yMnJEUIIcfv2bdG3b18BQPTo0aNSejRib2a1vzez/D7//HNpfezbt2+h21zPnj1Fv379
269−ChxemnW7LNtOnqdPn4o+ffqI6dOni8jISPHo0SNx6NAh0aJFC2n509LSauW2VJW9mTHMEMNMJQWa
270−2hBmhBDi999/F82bN1cJNADExIkTxcOHD0sdZg4ePChCQ0NV/n799VexZcsW0a5duwLDTHJyssp7
271−r1mzhhsFw0yNcfbsWSGTyVSCfGZmptS9OABx8+bNYudjampaaJgRQggTE5NCw8yiRYsK3XYeP34s
272−GjRooHZClpqaKjIzM8Xu3buLPOFTKpVi7NixAkCB301KSoro3LmzACA6deokUlJSGGYYZsrswYMH
273−UrAHIMLCwtTGuXLligAg/P39C5xHSdftsm47Qry8fUGfPn3EqFGjhFKpVBm2f/9+6X29vb1r5bZU
274−lWGG1cyIWOWsSD179sS1a9fUuq3cs2cPOnfujG3btpWqHr2bmxtsbW1V/vr37w93d3fcu3evwGni
275−4uJUnjds2JArHdUYGzduhIuLC9q1aye9pqenh5kzZ6pU4yyOXC4v0/C//voLK1euhKGhYYG9Or32
276−2msYMGCA2usNGjSAnp4e7O3ti3zfoKAg7N+/H02bNsXUqVPVhjds2BA+Pj4AgFu3buE///kPVwoq
277−s9atW2PcuHHS8++++05tnK1bt6Jp06Z45513CpxHSdftsm47ALBz505cvXoVc+bMUesEZ/jw4dKt
278−DrZu3Yrc3FxuS+XAMENUSYHm6tWrteaztW3bFmfOnMG+ffvwxhtvSK+npqZi5syZRd4X5lU3b95E
279−RkaG9Jeeno6kpCRcvXoVffv2LdE8imr0SaRJYmNjcfjwYZVG/3lmzpwpddO8a9cuJCQkVMoyrFu3
280−DgqFAgMHDoSurm6B4zRq1KjQ6V+9h9Or8u6XY2VlVej8hw0bBmNjY7WTN6Ky+OSTT6THP//8M2Jj
281−Y6XnycnJ+OmnnzBx4kSVe6OVZd0uz7bj5+cH4GX30Bs3blT58/PzQ7NmzQAACQkJuHHjBrclhhki
282−zQs0RfX+VVM/29ixY3Hjxg0sXbpU5VfgPXv2YPLkySW6QqOnpwd9fX3pr169emjcuDF69+6NzZs3
283−FzhN06ZNVZ6/eqWGSFNt2bIFb7zxhkpnGnlatWoFNzc3AC9v6Lp9+/YKf38hhNRIunPnzhU+f6VS
284−iQsXLgAAmjdvXuh42tra6N+/P4CXXVJHR0dz5aAy69WrFxwcHKR1MP+VzZI0/K/sbSc5ORnXrl2D
285−trY2njx5gpiYGLW/MWPGwNPTE56entDS0uK2VA5ybhJElRNoHj9+XKKeTmoaPT09LF68GEOGDMGI
286−ESPw9OlTAMBPP/2EUaNGYcyYMWWed7du3dCqVSu115s0aQJjY2M8f/4cABATE8MVjTReRkYG/Pz8
287−oFAoCr1LeHx8vPR4w4YNmDdvXrHVyUrjxYsX0jZa1NWXsoqPj5duXljcL8SdOnWSHj98+BA9evTg
288−SkJl9umnn0on/35+fliyZAkaNWqErVu3wtbWFt26dau2befu3btSN8xr1qyRrsAW937clhhmiDQq
289−0MyZM6dGh5nU1FQ0aNCg0BteWllZITg4GLa2ttKVEl9f33KFGZlMht9++63AYXZ2djh48CAAIDQ0
290−lCsZDE9QJwAAGAdJREFUabyAgACkpqbCx8enyLuEr1ixAk+fPsWDBw9w6NChcm1Dr8p/FTMzM7PC
291−P2P+Kp95J36FMTQ0lB6X5OSOqCjDhg1Dp06dcOvWLaSkpGD79u2wt7fH9evXK6Qb/vJsO3mhRAiB
292−+/fvl+gGz9yWGGaINDLQ1GTu7u6YNWsW3nrrrULH6dChA3x8fPDhhx8CAP74448KXYaHDx/CyMgI
293−enp6GDt2rBRm7ty5g6ioKJibm3NFI40khMCGDRswZswYzJ07t8hx4+Pj8dVXXwF4eRPNigwz+W8W
294−+Pfff1f452zevDl0dHSQk5OD6OhoCCEK3fflv/Ff/rZ3RGWhpaWFTz75ROpIY926dYiMjETjxo0r
295−ZBsqz7ZTv3596XFISEiJwgy3pXKsC9wciKiwoLJ8+fJix8t/o8yS3GW5pJKSkmBpaSldbndzc1M5
296−IBTUgw2Rprh48SIiIiJKVG9/5syZUkPkS5cuITw8vMwB6lWtW7eW5n3hwoVS9TxYEnK5XLoBaFxc
297−nNSQuSBPnjwB8LKtUMeOHbmSULlNnDhRal9y//597N69GxMmTECDBg3KPe/ybDumpqZSEPHz8yty
298−2ryOdLgtMcwQUSWEmaCgoCLvsAy8bBeQx8bGpsQnWcVZtGgROnfuLB2UdHR0sGnTJmn4rl27cPr0
299−6RLPLzExEa6urnj27Bm/XKp0q1evhpmZWbFdvwJAy5YtMXr0aOn52rVrCxwvrzpJenp6gdtYSkqK
300−2ut6enpSY+G7d+8iKCioyG20oG21uO33gw8+kB4HBAQUOl5eSHN3d6/xV65JM9SrVw+zZs1Sea00
301−Df+LWrfLs+00atRICibBwcHYs2dPgdPm5uZiypQpcHJy4rbEMENElRFm8nauRf1ClL9dUP7uMvNk
302−ZmaqXBIv7sQor3rOhg0b1HqAGjp0KNasWSM9d3NzQ2BgYLGfJTQ0FJaWlujXrx9atGjBL5cq1ZUr
303−VxAUFIQxY8aU+ETjvffeU9mmCqrWkndl8vLly7h9+7b0ukKhwIoVK6SQk79TAQCYN2+e9NjDwwMP
304−Hz5UC/ohISEAXvbClJqaqjI8f7frBTVMnjRpEiwtLQEAmzdvRmJioto4t2/fRnBwMMzMzFSWh6i8
305−Zs2aJdUK6NOnDywsLEo8bXHrdnm2HU9PT+nxtGnTsH79emRlZUmv3blzBy4uLsjOzpZ6NeS2xDBD
306−RJUQZhISEmBnZ4effvpJpYGiUqnEjh07pBt4LV++vMBfoV8NGzt27EBYWBhiYmJw79493L17Fzdv
307−3sTFixexadMm2NvbS20MBg4cqDa/Tz75BPv27UOzZs2QmpoKV1dXuLm54eTJkyq/WKempiIoKAjv
308−vPMOXFxcsGzZMnz++ef8YqlSZWZmSr8Ul6ZXsvw31FQoFJg3b57KjwB5PywAQHZ2Nuzs7ODl5QVv
309−b2+Ym5tDCCF1VRsWFob3338fx44dA/CyobSHhweAl1VxevXqhRUrViAwMBDbtm2Do6MjDAwMpBO6
310−7t27q9zQM/+PGbdu3VJbdrlcjkOHDqFTp06Ij4/HhAkTpAbQefuQiRMnok2bNggMDKyQKkBEeVq0
311−aIGJEycCAGbMmFGqaYtbt8uz7YwbN066uWdOTg48PT3RvHlz9OjRA6ampjAzM0NSUhL8/f2lHz24
312−LZWRIKoBDAwMxN69e2vUMgcHBwsAIjExsUaWuVKpFAYGBmLJkiXCy8tLmJmZiRYtWoghQ4YIV1dX
313−0bZtWwFAmJqaip9//lltej8/PzFgwAChra0tAJT6z8DAQOTm5ha6fHFxcWLJkiXScgAQMplMGBoa
314−imbNmgkAok2bNmLRokUiLi6uVm4X5ubmwtfXt07tC9q2bauxn3n//v2ic+fO0vool8vFqFGjxPHj
315−xwud5q+//hKTJ08W7dq1U9sGevfuLX755ReVbXLp0qVCLpdL4zRr1kxs27ZNCCGEs7OzaN++vfD2
316−9hahoaEq249CoRDffPONaNq0qcp7mJiYiHPnzon33/9/7d1/dNV1/cDxF9vdxgZzTn4VET/q2DIC
317−A9EgEaxOBxI9kOmRUA6dOqEQET+UMDrQOXKC6mQHS4qAlHM8mgdPHTMMzBN4GHFU1CUJyVkonFJ+
318−jDMYsrGN7dMfftnXxa8pG9y7PR5/7W73fnbv+3Mv7LnPfX12e9KtW7dk2rRpyebNm5OGhoZk06ZN
319−yYwZM5Lu3bs3e41NnDgxeeyxx055LEeOHElmz56dFBYWJr17906mTp2afOMb30j69euX3HXXXRnx
320−Opw/f34ycuTIDvWamj9/fjJu3LiMfgw7duxICgsLk6qqqhZd//08tz/Ia+ek+vr6ZNGiRUlhYeEp
321−/7/94Ac/SGpqak57/9rDa+mkV199NYmIZM+ePa2+7T/96U9JUVFR0ilp7WlAaAOXXnppLF++vNlb
322−MdJdaWlpXHfddXH48OGm39xkmqeffjpuuOGGk7/4iF27dkVZWVkcOnQo8vPzY9CgQTF06NCznnb2
323−AvxCJnbt2hX/+Mc/oqKiIhobG6Nnz54xcODAKCkpadfvJx48eHBMmzat6TeHHUG/fv1i/vz5Heox
324−/6+DBw9GWVlZ5Ofnx7Bhw5r+yvnu3bujf//+Z3091tbWRllZWVRUVETPnj1jyJAhkUqlory8PPr1
325−63fOv4jeErW1tfH3v/89Kioqori4OK688spmZ3dKZ/fee2+UlpbG5s2bO8zz6d57743t27e36C27
326−6ezll1+OoUOHttn2z+e1U1NTE2VlZVFZWRk9evSIwYMHt+iEOZn8Wjpp+/btMXjw4NizZ0/07du3
327−Vbe9bt26uP32252aGTizkyET8e6ppktKSpr9sa50kK73C9pKjx49Tpkni2jZKVrz8vKaBpPf6+Tb
328−SltDXl5eXHPNNXYUF1Rbhsz5vnby8/ObnfnTa6l1mZkBAADEDAAAgJgBAAAQMwAAgJgBAAAQMwAA
329−AGIGAAAQMwAAAGIGAABAzAAAAIgZAABAzAAAAIgZAAAAMQMAAIgZAAAAMQMAACBmAAAAMQMAACBm
330−AAAAxAwAAICYAQAAxAwAAICYAQAAEDMAAICYAQAAEDMAAABiBgAAEDMAAABiBgAAQMwAAACIGQAA
331−QMwAAACIGQAAADEDAACIGQAAgDSTsgTQttauXRtFRUUWgla3ffv2DveYKyoqYu3atdG9e/cO85gb
332−Ghri+PHj0aVLF096/163iXXr1sXatWs9AVqguro68vPzo1OnThYjTf6fEjPQVi+u1Lsvr9mzZ0dO
333−To4FoU3k5eV1qMdbVFQUGzdujLKysg7zmOvq6qK6ujry8vKic+fOfohqQ5WVlTF69OgO9Zjz8/Mj
334−IuLOO+/0BDiH2traqKmpiYKCgsjNzbUgLXDkyJGIiMjKars3g4kZaCPDhw+PJEksBLSit956q8M9
335−5rq6uli1alUsXbo0qqqqYubMmTFr1qwoLi72hOC8LVy4MBYuXGghzmL9+vUxd+7c2Lt3b9x3330x
336−Z86cpgjk4jMzAwBpLDc3N6ZPnx7l5eXxox/9KB566KEYMGBALFq0KCorKy0QtJHy8vIYP358jBs3
337−LoYPHx67du2KBQsWCBkxAwCIGkhPhw8fjrvvvjsGDhwYVVVVsW3btli9enV8+MMftjhiBgAQNZB+
338−Tpw4EcuXL4/LL7881q5dG2vWrImNGzfGkCFDLI6YAQBEDaSn9evXx5VXXhnf+973YtasWfHPf/4z
339−Jk6caGHEDAAgaiA9mYsRMwCAqIGMYi5GzAAAogYyirkYMQMAiBrIOOZixAwAIGogo5iLETMAQDuN
340−moULF4oa2iVzMWIGAGjnUfPwww+LGtoVczFiBgAQNZBxzMWIGQBA1IgaMkp5eXlMmDDBXIyYAQBE
341−jaghM7x3LubIkSPmYsQMACBqRA3pzVwMYgYAEDVkHHMxiBkAQNSQUczFIGYAAFFDRjEXg5gBAFo9
342−apYsWSJqaDPmYhAzAECbRc20adNEDW3CXAwt1SlJksQykPZP1E6dYvDgwTFp0iSLAZCGGhoa4sUX
343−X4yNGzdGbW1tXHvttTFy5EjzDLwvhw4dinXr1sXOnTvjqquuijFjxkRhYaGF4RTr1q2LzZs3ixky
344−wzXXXBNVVVXRtWtXiwGQxpIkiYqKiti3b180NDREz549o1evXpGdnW1xOGsMv/3223HgwIHo2rVr
345−9OnTJwoKCiwMZ1RdXR1du3YVMwBA66urq4vVq1fHkiVLoqqqKmbOnBmzZ8+O4uJii0OTEydOxG9+
346−85tYtGhRFBQUxI9//GNvJ+N9ETMAgKjhglu/fn3MnTs39u7dG/Pnz485c+Z4WyJiBgAQNaSv8vLy
347−uPvuu+Opp56Kr3/967F48WKnWeYDczYzAKDNOfsZ/l4MbcGRGQDggnOkpuMwF4OYAQBEDRnHXAxi
348−BgAQNWQUczFcKGZmAICLzkxN+2AuhgvNkRkAIO04UpNZzMUgZgAARE3GMReDmAEAEDUZxVwM6cDM
349−DACQ9szUpA9zMaQTR2YAgIzjSM2FZy4GMQMAIGoyjrkYxAwAgKjJKOZiSHdmZgCAjGempnWZiyFT
350−ODIDALQ7jtR8MP87F7N06dL42te+ZmEQMwAAoiZ9mYtBzAAAiJqMYi6GTGZmBgBo98zUnMpcDO2B
351−IzMAQIfTHo/UvPnmm/Hmm2/G9ddff9brmYtBzAAAdPCoOXbsWDz77LMxfvz4i/44du3aFSUlJU2P
352−KScn57TXMxdDe+NtZgBAh3U+bz/75S9/GRMmTIilS5de1Mewc+fOuPbaayM7OzuysrLigQceOOU6
353−5eXlMWHChBg3blwMHz48du3aFQsWLBAyZDxHZgAA/k9Lj9QcO3YsPvrRj0ZlZWVkZ2fHlClTYsWK
354−FZFKpS7o/S0rK4svfOELcfTo0Thx4kRERHTp0iXeeOON6NGjRxw+fDgWL14cv/jFL+Jzn/tc3H//
355−/TFkyBA7GjEDANBRo+anP/1pLFiwIOrr6yMiIicnJ0aOHBl/+MMfoqio6ILcx5deeik+//nPR3V1
356−dTQ0NDR9Pjc3NyZNmhRXX321uRjEDACAqPn/qLnzzjtj0KBBp7wNLTc3NwYMGBDPPPNM9O3bt03v
357−15YtW2LMmDFx/PjxZiHzXgUFBfH973/fXAxiBgBA1LwbNQcPHoz6+vrTRkROTk5ccsklsWHDhrjq
358−qqva5L5s2rQpvvzlL0ddXV00Njae9jpZWVkxZMiQ2LZtm52HmAEAIKKysjL69OkT1dXVZ7xOdnZ2
359−pFKpePzxx1v9TGcbNmyI8ePHR319/RlD5r1B87vf/S5uvfVWO452y9nMAABaaNWqVU1zMmfS0NAQ
360−dXV1cfPNN8eyZcta7Xs/9dRTceONN571iMx7JUkS3/3ud+P48eN2HGIGAKAjO3bsWCxZsuScMXMy
361−JBobG2POnDnx7W9/+4xzLS31xBNPxM033xwnTpyIlr6pJkmSePvtty/6qaNBzAAAXGTLli2Lo0eP
362−vq/bNDY2xsqVK+Omm26Kd9555wN930ceeSRuu+229xVEeXl50alTp4iIeO2118JUAe2VmRkAgHOo
363−qamJgoKCiHj3rGV1dXXv6/a5ubnxiU98IjZs2BC9e/du8e1Wr14dU6dObdF8TCqVirq6uhgwYEBM
364−mDAhxo4dG6NGjYrOnTvbgYgZAICObN++fbF169bYunVrPPfcc1FWVhZ1dXWRl5fXooH8nJycKC4u
365−jmeffTYGDRp0zu/34IMPxne+850zHlXJy8uLurq6yM3NjS9+8Ytx0003xdixY6N///52FmIGAIAz
366−q6+vj5dffjmef/75+Nvf/habNm2K/fv3RyqViuzs7KitrT3lNllZWZGXlxe///3vY+zYsWfc9s9+
367−9rOYN29es0By9AXEDABAm/nPf/4TL7zwQmzZsiU2bdoUr776atTX10fnzp2jtra22VGWX/3qV3HX
368−XXedso377rsvFi5cGBHvnua5sbHR0RcQMwAAF1ZdXV288sorsXXr1ti8eXOUlpbGgQMHmr7+pS99
369−KdavXx9ZWe+ek2natGnx61//OiIi+vfvH1/5ylccfQExAwBcKPv27Ys//vGPFuIMDh8+HP/617/i
370−6aefjoaGhujbt2/ccccdsX79+vj3v/8dH/rQh2L06NHRrVs3i3UWI0eOjE996lMWQsyIGQCg9ZSW
371−lsZ1110XvXr1ii5duliQczj5N2mysrKaTqfM2e3evTuWL18e06ZNsxgdXMoSAABt4fXXX4+ioiIL
372−QasbPHiwRSAi/NFMAABAzAAAAIgZAAAAMQMAAIgZAAAAMQMAACBmAAAAMQMAACBmAAAAxAwAAICY
373−AQAAxAwAAICYAQAAEDMAAICYAQAAEDMAAABiBgAAEDMAAABiBgAAQMwAAACIGQAAQMwAAACIGQAA
374−ADEDAACIGQAAADEDAAAgZgAAADEDAAAgZgAAAMQMAACAmAEAANqBlCUAADh/VVVVsXfv3vP7wSyV
375−ik9+8pOxf//+OHjw4BmvV1xcHB/5yEdO+XySJPHaa6+d9jYDBgyILl262FGIGQAAmvvLX/4St9xy
376−y3lto2fPnrF///7YvXt3rFy5Mh5++OFIkqTp6yUlJTFx4sQYNWrUGWPmz3/+c2zZsiWefPLJiIgo
377−KiqK6dOnx4wZM8QMYgYAgFPV1NRERETv3r1jwYIF8dnPfjYuu+yySKVSUVpaGpMmTYqIiI997GPx
378−3HPPRZIkcfz48XjrrbfiySefjGXLljVtY8SIETFixIi44oorYt68eU3f44c//GFMnDjxjPchKysr
379−7rnnnrjnnnti4MCBsWPHjnj88cdjzJgxdhBiBgCA06uuro6cnJz461//GiUlJc2+1qNHj6aPc3Jy
380−ok+fPk2XL7/88hg9enRceumlsXjx4ma3mz17djz00EOxc+fOiIgoLS09a8yclCRJVFRUxMiRI4UM
381−7ZoTAAAAtIKampoYP378KSHTUjNmzIjGxsZoaGho+lwqlYqFCxc2XX7kkUfi2LFj59zWCy+8EAcO
382−HIgZM2bYMYgZAADOHTPjxo37wLe/7LLLYtiwYXH8+PFmn7/llluiX79+ERFx5MiR+O1vf3vOba1e
383−vTq6d+8eEyZMsGMQMwAAnN28efNiypQp57WNLVu2REFBQbPPpVKpmDVrVtPln//8582O3vyvo0eP
384−xqOPPhpTpkyJvLw8OwYxAwDAOX6oysqKTp06ndc2srOzT7uNb37zm1FUVBQREW+88UbTmcpO59FH
385−H41jx47Ft771LTsFMQMAwMVVWFgYU6dObbp8//33n/Z6SZLEihUrYtSoUR94dgfEDAAArWrmzJmR
386−Sr17ItotW7bE888/f8p1XnrppXjllVeahQ+IGQAALqo+ffrEbbfd1nT5dEdnVqxYEcXFxfHVr37V
387−giFmAABIH3PmzGn6+Iknnog9e/Y0Xa6qqorHHnssJk+eHJ07d7ZYiBkAANLH0KFD4/rrr4+IiMbG
388−xnjggQeavmbwHzEDAEBamzt3btPHK1eujKqqqqbB/xEjRsSnP/1pi4SYAQAg/dxwww1NZyo7evRo
389−rFq1KrZt2xZlZWUG/xEzAACk8Q9vWVnNZmeWLVsWDz74YFxyySVx6623WiDEDAAA6Wvy5MnRvXv3
390−iIjYu3dvrFmzJu64447o0qWLxUHMAADQehobG1t1e/n5+TF9+vRmnzP4j5gBAKDVvfPOO00f19TU
391−tMo2p0+fHnl5eRERMWzYsPjMZz5joREzAAC0rmeeeabp471798aOHTvOe5u9evWKyZMnR0QY/EfM
392−AADQeg4dOhRTpkyJIUOGxIoVK5p97eqrr44bb7wxfvKTn5zX95gzZ04UFhbGxIkTLTgdUsoSAAC0
393−vm7dusWaNWva9HtcccUVsWnTpigsLLTgdEiOzAAAZLChQ4daBMQMAACAmAEAABAzAAAAYgYAABAz
394−AAAAYgYAAEDMAAAAYgYAAEDMAAAAiBkAAEDMAAAAiBkAAAAxAwAAIGYAAAAxAwAAIGYAAADEDAAA
395−IGYAAADEDAAAgJgBAADEjCUAAADEDAAAgJgBAAAQMwAAgJgBAAAQMwAAAGIGAAAQMwAAAGIGAABA
396−zAAAAIgZAABAzAAAAIgZAAAAMQMAAIgZAACA9JCyBABAW+jVq1cUFBRYCFpdZWWlRSAiIjolSZJY
397−BgCgtVRUVMTGjRstBG1q6NCh8fGPf9xCiBkxAwAAZB4zMwAAQEZKvb79xaYLJYOutiIAAEBGcGQG
398−AADISP8FpxZnWS0U37cAAAAASUVORK5CYII=
Documentation/DocBook/media/fieldseq_bt.gif.b64+0−447
@@ -1,447 +0,0 @@
1−R0lGODlhcwKfAucAAAAAAElJDK+vr0gSElYMDC8kDV5bEBcHOwYGSEQODmEaGgoKOBkTVC0tVyAg
2−aDcJC6Ojoys8DAAYGqSkxV9fFFtdEJmZmUA4EF0wMAAAcAoTHTZHJ0gYGAcMTwcSO29ISFUHB2AV
3−FXd3YAcHMRUVQiIAGg4HT3t7eywOJ3d3dwcHSEEgABMuDnd3OGpkSQAAYlZGBzEEBGJlDCstCxwc
4−WQcHSzkRGWBtYC0AACA3ABAKNhAQTTMwDA0VQD4AAEYVFVVVVSQMJQULOB8fQScnYBgYRD5VPmZm
5−DEZRB2ZiDAoKSgAAVAwQOH5+lBwcS+7u7hoaST4+X3d3WACPADMzMyBRIDgAAGBgc0JCEHEAAEwN
6−DRkwDAoKOR8kPZR7eyA1IABpABgNQBA9EABVAAsLRww/DAwMPgBNAENDCgc9B8zMzAUFQQBDAD4M
7−DAwOKgAAcQA5AEtLFYqKAA0NTC8HBxEREQgfCAArAAApACIqMkkGBhoqKnwAAAsGQ6qqqkoKCg4O
8−MlkcHAoZJCcrW6SkpFQAAAAAOBAOSwAVGh0ROgMPHWZmB00QEGUAAFQaGjEyC2w4OLe3n4qKioiI
9−iBAVMC4uXhkZUGIAAHJYWHd3AAAAPhAQUQUGL0BAIGggIBgAGkIVFV9fEAwcJR8KJA8MU9EAAAcH
10−VRoaYWhoaDcAALu7AGZmZnAAAGRkZGQVFVhqWD4KCgwOUzMzDAAAmgklBzEHBzExClhYWBMTPAYJ
11−Qy8fCFpaB///////ACISRExUDUQrDAwMVhISSEYYGHd3IDhcOERERElJAAkPNTsHF1hYckgGBj05
12−CFYAADg4OCAVO0hCDDAwMLu7ilpaDR8qCDg+EBxGHN3d3REGNjo9CDQ8DBwYRGZmHFMAABQ+FBE+
13−ESIiIhs+BxU0FWVeBw04DYqKsxAsEB8hQAwuDAc2BwwqDAoqCgcIL1dMDQAA0Q0iDQwiDAckBxAQ
14−EDwAAAAAU0JCDAkJPru7u5oAADg4bAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAALwALAAAAABzAp8C
15−AAj+AHkJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuX
16−MGPKnEmzps2bOHPq3Mkz5z0AQIMCSNHyZ0WjE5GqNAZAqcGmT+8VZMoL6k6rEp0KfEJl489VBcEB
17−GGjBwk8LBJsyFQqU15MUdQDUWfVk4JNVccER5ZXCT8+/gAN/xFp0LEWtDxEfRKo44s8n1/YeJCyQ
18−8GO+1xhSbvwxRWaklBEiXoVW4886BNW0FQjkyem6laUKdLqKSuZrQIxtpbLqc51JbsHBFkw8pYUT
19−w4uHDK2SM0PnCqHPNiz9uWGFoS1fb7h5u0nQshf+ar2G2isAKn4FpqByHQivn8YkY3WK9RoANXx1
20−kwUncBVw5QCSdAsA8jiDXIAeEQYXAMbgp0YKKQAFYVxEPbjgXm/FBURmD1pQxz1qsDfUdAVlCMCG
21−vFg4lhpMgbOKYX6IBY5fHX642FBx0cULbnKlUFdQkgS1IxA91mWMBWJRYQF7dZQ2HVBIsdhjbG4R
22−WUeE4f3UFlQN6hUiUK1puV1Q93Sp24LglNYlAGmmKGJrvBxJ4YWxiUkmLzGymZ6ULnqXAlgC5Tmj
23−QRE2qd+NkwDKCziTwAjcT6rhV1WW28013D11UfHfVrItieCnHw0YVIEHgnoRVutllgJ/X+F54hP+
24−fjT1FWR68WXbXV3dU4cxmBoDnGpSaZUqru/NJRUVrV3DXrHBAnCNrrwmN9Cs17jIC2+QUUEUY4Zh
25−qyxR52X2IlFwFWSUUU/8tmObXBrzxBNEhveeYVCd5wd5RD1Ra3eVzajGPeCoSq8x4qJ2ZXDghvlq
26−rFJBBR6z82aGbLbe+TqbjT9lNtCq4npHUMblqQEOUr3Nmx+VJJIVl7aSToqQan/ZydbMNNds8804
27−56zzzjzXbGpFWA0q0IdKWSWrswIhyUuTAtn3L9IE2ddsQUzveF/GKUJtwVirSAZECliLpnUdqmns
28−ockml500agCkx625YxnlqUCT6NaU2lbL+zD+AKXNpTHK09Lr5MaCk+h3WrIZ3fDULnc90Nd4b12Q
29−VY6zJtmiTnoc+LV+QYiUfuiyS6lB96wHAKDMAa5TZBC27vrrsMcu++y012777bjDHg3N4Dgj7c8P
30−YTXzPUUnTvx1Rgl/PFlUgBMv2gMp/zaJawUFtuabT6fUudTFjfxYVk2/uVERCmX38tHrTe/iTa8C
31−Th1A4MevyykCsStV9Bt1jfvwy288lQ5bX5zYcr3spU8g1ZMQ4gbCH7HxIlGLetp7/sOYOjxhPthz
32−FX40VRDPqA54IISIqAhkoN+F0CFBkxf0FBe2s1XNaVG6D5W08sKrGcY+ZuPa5aB3I7OBI3L+qHkb
33−EPPXPbiZzAKHSh8Om6YdAKowQ/TLnlUOhrbwbQeKinNiFaVSuYEskReSI4iNeNFFg1StKgnRH9lY
34−NZYUSEopX8NgWpIDlVURJFawSd0J92iQW5DKhHzkTnhS9UALFq9Op6MVuW5VG7RF6oFt46GtrkEs
35−pRgjWcvSVbCIhrwdUqtW3tLWvOqClFCCSzbiIxG61PUtlxnDXfBqosusAgQ42TGSHwPAj2TDSqbs
36−kkS1rMst/zdLxjkMYza6JMWmshdNQqx0fAkYGanjyW6J0iiHUkq65DiQV2aGWMFB0T1EmbVAmjMh
37−lDwnRRS0MvwcclI/WZCOTAQnpSwoPgD+mIRW6EnK6zyBKYZKmozQYk/vqIiKPEKoWNRAHtQkdC9W
38−TNn4DPMlKkIllldyYy61mKK1UAE/AI3aQq2CJDbBhW2oXJFH/YeyekmlodeSYUnb5BaAIrEgk3CP
39−QNlUmgi55UVNMoxPNwpJd95HMk5p1Ojsghe5lGwrTa1V0nSqzqpadSXVmckOr7rHdAEyNbDRVU+A
40−MDiumvWsHclqTO6xKbSeMAVlPcgqWgMvReWkWm7Nq14tota9+vUjb2FILF/FE7P89bCITaxiF8vY
41−xjr2sZCNrGQnS9nKWvaymM2sZjfL2c569rOgDa1oR1uSfxHvtKhNrWpXy9rWuva1sI3+7WkBaVrZ
42−2va2uM0tbNOo29769re7FQ1wh0vc3/K2uMhNbnAN4hrlOve5p21ZQvIxi+pa97rYza52t8vd7nr3
43−u+CtbgZUOBBP4OO86E2vetfL3va6973wja98z1uIhHBDFfjNr373y9/++ve/AA6wgAeMX24kxBpg
44−SLCCF8zgBjv4wRCOsIQnTOEEWyMhSwivhjfM4Q6DlwaiYcV8R0ziEptYvp5gSD7cweIWu/jFMI6x
45−jGdM4xrb+MYsngV5BeKJUvj4x0AOspCHTOQiG/nISE6yjy+REGL04slQjrKUp0zlKlv5yljOspaf
46−TIyEVGEKYA6zmMdM5jKb+cxoTrP+mtcM5iok5AU4jrOc50znGztANPhQsp73zOc+JznFC1lxnQdN
47−6ELTWMcI6bGfF83oRhuZyQhx8pYnTelKWzrLXUbIl9nM6U57+tNqdjNC4GzoUpt60HdeTJ4dzepW
48−LxrQChH0qWdN60PvmBeKdrWud/3oJl/618AONpYzfZBNg/rYyE72mUV9EFLX+tnQdkeqSbdqXlv7
49−2qWAdULOYYZue/vb4A63uMdN7nKb+9zo7jYXIIAQDhDg3fCOt7znTe962/ve+M63vt9di4TI4ggA
50−D7jAB07wghv84AhPuMIXDnBZJOQd6Ii4xCdO8Ypb/OIYz7jGN87xiL8jIexIt8j+R07ykqPbDQiB
51−wB/2zfKWu/zl+uaAiqNNc1oj+iC5xrbOWw3pg0ha2EAP+qWJbRBjK/voSP80sw3i7Jo7ndDTNle1
52−d051RmsbIbJ+utbnfHOD5LzqYN9zzw3yc6Gb/exWJnpBjJ70trvdzEsvSNO3TncbR/1jUw+73pF8
53−9YNkve6Al3HXC/L1vRt+yGMvSNnRznjGq50gbH+75N8ed4LMPfCYb/Hdp5X3w3v+x303yN8zn/nB
54−E6Twn/d84gmy+Ma7PuiPH0jkJ0/7o1d+IJcnfeA3P5vOp/7woS/IEOZA/OIb//jIT77yl8/85jv/
55−+cUnBEJ+oIXqW//62M++9rf+z/3ue//74K8+LBKChWmY//zoT7/618/+9rv//fCPv/mxkBBzkOP+
56−+M+//vfP//77//8AGIACeH/mkBD2AH0ImIAKuIDPxwQIQQjhF4ESOIEUGH4/MHO6p3umV16/14Gr
57−NxCt93oi+GuxJxCzV3soCGq3JxC5l4F0x3vv4XsdqHfBRxCj54J0t4E8NoOp94ECEYIjGISTVoK8
58−cIIpeIRstoK80II4+HQweA8yyINVV4MDcYNN+HQ6iGtSqHq+JoReWGlEaIRIOIbL9mZXuHt4toXA
59−h4FnmIO3hnpquHM+yAtA+IV2OGVhSIZ6mIRm2IYvmIZxSIMMAQUvUIiGeIj+iJiIiriIjNiIjviI
60−kFiIS8BuB5EA83CJmJiJmriJnNiJnviJoBiKoniJOJAQ2ZAJqJiKqriKrNiKrviKsBiLsjiLqJgN
61−CREPbJCLuriLvNiLvviLwBiMwjiMxJiL8ZAQhhCJyriMzNiMkDgCKZcKoziN1FiN1iiKCcCGfoiF
62−bxiIejeHdXiH4tgLebiH5liGo7aNW/eEUeiNvEaFAmGF6lhrWQiH7shr4DiO+oiHXnaO/khmSsiE
63−8zhr7HiPU6iNAwlt9WiQVJeP+/iQ5NiP/ziRUxCQCVlzBcmQOgePvEAEHvaRIBmS3pUBAoAQrsAH
64−KJmSKrmSLNmSLvmSMBn+kzI5kyjZDAkRCgSWkzq5kzw5YKGQEGJQYUI5lERZlBQmBhgmkkq5lCC5
65−CQghAI1Ak1I5lVRZlTPpCgzRAG+wlVzZlV75lWAZlmI5lmRZlma5lfRQkgehACfWlm75lvBVXwgR
66−B3JQl3Z5l3iZl3q5l3zZl375l4BZl3GQEOJwBoZ5mIiZmIq5mIzZmI75mJAZmYYpDgmhCWd5mZiZ
67−mZppliTwlCIGl6AZmm2pAAh5kTbXjRqJbQ4JkfpYjhTpjxZpmtCWkalpbRwpj7JZaAtZm9a2mqwp
68−jq75muYYm7lJa7TJm7p2m8VJj6iJnLrmm79ph8EpnHpInMtpasfpnKz+xpFOUAPe+Z3gGZ7iOZ7k
69−WZ7meZ7omZ7eqQKUaBADAALwGZ/yOZ/0WZ/2eZ/4mZ/6uZ/wGQMJgQa7EKACOqAEWqAGeqAImqAK
70−uqAMGqBokBDrkA4SOqEUWqEWeqEYmqEauqEc2qESug4JsQbqOaIkWqImmp4LkHJ6wJ8s2qIu+qL7
71−OQCleZ2EtpvayXNdGJ13OJ3UOYbWSaOFlp03anUzCqR0ZqND2mjQqaNCyKM9eoQ/aqR1JqRJ2mfK
72−KaW62ZxVumhLyqQj6KRPioJRiqVyRqVbqmdXSqZ1hqRnymdd6qWvB6ZhSntjqqZ2BohtaqUM0Z0n
73−2qd++qfmyZ4I8Z7+MFqohnqo+OmfCAGgDdqojvqokLqgD4oQEeqhlnqpmJqpHAqiCCGigPqpoNqn
74−KXoQELCiiHqqqFqoMhpodrqmWpqnevamcNp4cjqnklenrUpjZgqrRpamuYpjbMqrSCars4p2tWqr
75−boervxpjuyqsQ+ary1pjweqsRUasxWp2x4qsSaes0epizUqtQMaRWrmZ5Fqu5jqWaYkQbCma7Nqu
76−cZkQdBmY8jqv9FqvfzmYCFGYkrmv/Nqv/gqZlIkQlnmuBFuw5NqZByEAn+muDNuw+ECaC+GRTDmx
77−FDuSamkQJ2mVGruxHAuTNokQONmTIjuyJAtgP4kQQWmUKruyLBv+YUiJEBlWsTI7s9XllAkblR2b
78−szqrsVjJqt1qY9MKrkJmrdcKexKprWLahz+rq3gqtEUGrUsLY0HrtD9GtEUrbNmKtMrGrUv7rU4L
79−tVHrYlNLtaVgtVcLbFmrtcjGtT/rtULLkVHgAHI7t3Rbt3Z7t3ibt3q7t3zbt3JLA7eGAZ4wuIRb
80−uIZ7uIibuIq7uIzbuI47uKCQEJ1ADJRbuZZ7uZibuZq7uZzbuZ77uZTbCQnxBVVQuqZ7uqibuqq7
81−uqzbuq77urBbul+QELjgt7Z7u7ibu317DqIRCI/7u8AbvMLruBhAWsZ7vMibvMq7vMzbvM77vNAb
82−vdI7vdRbvdb+e73Ym73au73c273e+73gG77iO77kW77me77om77qy1VnBEblsRXNlEGawRa6ARr0
83−K0nzEhRCcxDlwxZScRdxYSnRIxRwsr4GfMAPkQJUxQtAYFdDhRhqQCSEhRCh8TBGdMHumx5ptB3k
84−gSK4UQcaYxXKssAIXMImPBCqARsXpMF+EBcSxUB0wRVJNDnkZcFEdcPRJB7bcUkFUUuAEysnHMRB
85−TFMt7EVpUkRTEVYZVMEChMEGZDV/cyN2IUOpoUtRBMRCnMUHrMD9IRm+kkqE0kCTUcNNjMMvHEVS
86−fMYcNcJa3Mbqm8JLIylcDMZ2ARe3VhVskTIzsy0eoxV6BD3+ilEv5vNVblzI3qskMXIx/aTGhUQw
87−2EHGH4S/TvFFDrQVVIzCVvzHhrzJ3ptTldO/ZIIYq3LHB3TBTEw622FH0bHDJOzDaMzJsAy+9vFD
88−qHzGFyRdCXHKryzJ1+EhGlzJTQM/t2E/IUzKsXzM19s8aSwzvDIzuQzJeJzHzJy/QLG/G1wiTXU4
89−kYzM3NzN3vzN4BzO4jzOZpUCr3TOr4TLH4FE6PxKcUXO8BzP8jzP9FzP9nzP+JzP+rzP/NzP/vzP
90−AP1YuTPQBF3QBn3QUexXrHPQDN3QDk3QCb1XpfPQFF3RFg0hjtUzGr3RHN3RPGPMZiUzHj3SJF3S
91−NwPSXAX+yia90ixN0hm9VXr1Eyh9VTKdWDWNWEOF0/K7VyOCWDd9WD/9V0HtVzl9WEWtWD0N1Joc
92−0kvNVUO9V0dN1DutV0ntBZhw1Vid1Vq91Vzd1V791WAd1mKN1YEz01b10zfwCmq91mzd1m791nAd
93−13I913Rd12p9A2WdWDl9DWPd137914A91l5AOC/NgWRLZD331DGNFWKotlub1zrNeYdNZLAW1YiV
94−1PZItond1DTN2I5Np5Bt1MjTjlRb2VOdV5g92YgX2kLt2Z99q6wt1ZKt2kFm2oW9g7QNZJtt1lX1
95−04392ioY21A92rkdroTdWEnNCKm63Mytn8sg3IsdHur+oKnUXd3WvaHqAN15ldOE0Nze/d3yyQjH
96−zVipXdxLpt1u5dvATXnojVY5DYXm7WO2jdySkdlUu9s27drrva3tfVbvTdpfO96LVd7mjd8+rd/7
97−bXv9Xc7EHd/zTd71Hd9lu+BOjeAJnmzMptjb3eDm/eADLhmECt4inqqKOi+8rU4/XanXveIsrqmc
98−auJ6fR2lOuI0fqqryhen7VYEXtwGrtTh8dsXvmYZztlW9d8S7uFIHeHx3eOt/eNBruDaE+Oz3eEC
99−nuSGXeAU3tlO/uQYnuVFzuHFjeSJldTr6rBmLppyCeMHHh76+q9u/uZw3pgBq+aiPRAKe+Z4DpoQ
100−i+P+t80LjpAFgB7ogj7ohF7ohn7oiJ7oir7ogO4DXt7bWOENLTvplL6y3vDo6pTTAtANjN7pnv7p
101−oL7ojlDlY67kWB7lay57XN7lqF7nvXfkpH7Zps7jmH5O6r3qxzbkJ35ORu7gsX5YO57bTO5Xt47r
102−Slfr5tTrVK4eOY5WST0MbRDt0j7t1F7t1n7t2J7t2r7t3B7tdIDsgfTT8FAG5F7u5n7u6J7u6r7u
103−7N7u7v7u5A4P4M5HOQ0BD9Dt+J7v+r7v3D4Mv/5XwU7bwy7RFm7sfNjqf6XsYf7vfhXwqj3w0a3q
104−Bu9pui7lr+7rzN7n9u20EJ9XxT7xB0/nCQ/muS3+5rJ+5bSO8MRe8CCPZhUf2Re/7HxO3wNBfRV4
105−8zif8903fipP8OFhfwMY9EI/9EQfgAXY83rF3Tq/9Eyf8xeY8TSP26cu8iu/5S0v5PO+Rwpf8gzP
106−07Mu7Fl/Qh9/9S4f9iG09bRt8sD+9QJv9iA09mQPd24PPGiv2moP8Gz/8HP/M3Af9wC596ZS95N9
107−9w0vGe4Gc4if+Ip/b/2G9B6PFRDXcZI/+ZRf+Rv3cY7vVvW+covf+Z6P+DIH9RCO8mCf+WjV934v
108−Zi/v6jEI66L/4aTf9qZ/Vqif+m0G+KAi+IdN+F4f+3o/+0xt9bb/98Cf0iSf9l1P1ZIRAnne/G3+
109−meYant5Y8Q1jUP3Wf/3Yn/3av/3c3/3e//3gX/3fgPufoukL6/zoL18hkPyoLRl/HurwH//yj+iO
110−XvxaPhCSXun6v/8Sdun2/+UAwUuggG5ZDB5EmFDhQoYNHT6EGNGgI4G8UgComFHjRo4dPX4EGVLk
111−yIwAUlT0VErlSpYtXb6EGVPmTJo1VV6qeA/APZI9ff4E2lMnT4FVphxFmlTpUqZNnT6FGlXq0So5
112−dwbFmlUryYs58dkEG1bs2JqeKnbdmlbt2oomUZKFG1fuTJwCh7LFm3fk3aJT/f4FHFhqVbtX9R5G
113−nBEtr3tf5z6GDNeswMWJLSd2KzBlZM6d6Vr+JXpZtFq+vIwKRp1a9VPCjA2Php11cWPPtW2vnGwR
114−Y2zeWzPzwuBJ+HDixY0fR55c+XLmzYWDAt1butDXX6pcx55d+3bu3b1/Bx9e/PUv0aefBzk7kHP2
115−7d2/b47h7G709UH+tp/fdWj99kv3r+8/AM+rbEAC6TMwP/wS7E1ABmNz8MHRIpTwsgIrHO1CDGNb
116−cEPLKPRQLxBDxGtEEtfS8MS8UlTxMABWuSdGGWeksUYbb8QxRx135DHHSV5rUUQAJumxSCOPRDLJ
117−GH/kL0i8LlIySimnNHIVBJ1EDAAtt+SySy+/BDNMMccks0wzm8SSNDPXZLNNN9/0Es00t7r+CE47
118−78TTzTkTo7JPP/+U8Yk92XoCUEMPRVLQQdW6BlFHH8VxUUknpbRSSy/FNFNNN+W0U08/BTVUUUcl
119−tVRTT0U1VVVXZbVVV1+FNVZZZ6W1VltvxTVXXXfltdfD6rAgIwvqyOiJk1zDyktjkOVFWWYz0mlL
120−cPz4qEsqQrtmlToAACcFQaPt8pYvj7WACi2pCFYgbjWyUk5f34V31xSAyAiIVRTbTaeN1ABCSyAU
121−5QjIwtRFU1+NDOZlWGo7MuwJbQW9po5VruFFDSqo0EjgZvlbhYqF/aDi3mYBUCOjbd2NN2WVY1UD
122−AEWfAGBhXvzYdmCNwFnliSeoWJbhgnf+0xhhqxQDx6PXYObJGHoreqLbktB8zQJwAOblCWCbpeLY
123−mc1FeWWvv0YVnHRprugasfO9khdjFBU6458J3qjtZ3m5BgCKAw7Nap1J1mgSjNuCOjQqJtkoBYyH
124−LFqgVZgEu3HHUZ1Xca2NIRLtj1JIHO+4gX774Cs1hrvqVaiVW2iNXwsao53AKZmXOuru+nHZZ6+0
125−ZUHraD1yg+UWyNg6UPbSZi9PKv1zd50t/umNUH97pxROAnlj2qen/lJ0/Uj8njq+tXyjSeow5m6f
126−Nw8d2rSFrlt8tyv6UQ2YW2f/7/IBr2hw7w+/R42iF5e+ev//T9Mk7HWsOnEpRmnDXOz++me++dmM
127−gWfJ3PL4cxWlFctp9FufQIZFNasF6yqse90CAThCEmKobqwj39yqxreQpK6BKnyWwowWmu8JJGIT
128−q9jFMqi8inTsYyGDm+H+BroSFtGI9qFCBIfmGi4ZA1xbmmEKv8TELS3ridOqFpeoAL9sbatbVBNh
129−A8t1LsLBrWVlJOIR1bhGNrbRjW+EYxzlOMdQpcAYd8SjMeCHGAvkEY/pomMgBTlIQhbSkIdEZCIV
130−uUhGNtKRj4RkJCU5SUpW0pKXxGR98rRJTnZyS1pD1RM9OUpSnmlVoixlKlXJJVgBwBjPg2UsZTlL
131−WtbSlrfEZS51mcsOlUonq9hlMIX+OUxiFvN57Trli4y5TGY2M5jGSJuqelmqaY7KRKC65qey6SkW
132−naqao/pmqLbZqXFyqpyb6qapwhmqdWozjaI6p6bimal0UlNryshHPvW5T37205//BGhABTpQguoT
133−fu30VGlc0AKGNtShD4VoRCU6UYpW1KIXZagLzJOq0lSioB8FaUhFStAozKeVWsuHO1S6Upa21KUv
134−hWlMZTpTmtZUpbMIDULJ+Rpi9MKnPwVqUIU6VKIW1ahHRWpSfUqMjYbyNS+waVSlOlWq1tQBJn3V
135−b1JaVa521asyxWlbQHmq0vRUqWdFa1rVilSmFkaB7gwNVL86V7py9aqUiWaqtFr+V772laZhVddY
136−TVXWtRbWsIc9alv3k8y4+tWxj13pXXVz0opsFbKXrStgmyVYX/IUsZ8FrWEVO09MlUaumEWtVyVb
137−T1L9BgovgG1sZTtb2tbWtrfFbW51u1vYLgECYmVsRWxxDOIW17jHRW5ylbtc5jbXuc8lri2aStbX
138−GIK318VudrW72xFg1VV7TW14q6pZnZrTs6FFb3oTO93BPlW875XqavOKKvDC175gzSlnSUVY9fbX
139−v0tlb2cbe18Cv1S+lBWIZQu8YHeQV7/WPO9/JRza0b5TnO5lMIMPnFWtEWEWHwZxiEU8YhKX2MQn
140−RnGKVfzhDAgAuKoqTShUMWP+GtfYxjfGcY51vGMe99jHMw5FgPf7miWs2MhHRnKSVbwJ77bqNw14
141−Q5SlPGUqV9nKV8ZylrW8ZS5HmR4uDmxwBRIHOZTZzGdGc5rVvGY2t9nNb4ZzmeMgZAiHRhNdxnOe
142−9bxnLpOgyayqb4YJ7GAx88KsE0b0YSv81oRiWNAE3vB3UfroAhMaxhFOdKbTuuhCn5bS8I20kyf9
143−aftamqOY1nSq2UpneDqa1OINNaC15oQa1NrWt8Z1rnW9a1732te/BnatVfDbMF86NGjYRbKVvWxm
144−N9vZz4Z2tKU9bWonGw2svnBo1hBsbnfb298G9gL+vKpAvzq1pnZqaA6tanb+F5XTxq6Ip82N2liT
145−e9TzPnd+C73udvcbqO8+9YDxTe9xS/PeA78suqmrbn83/N/YxqarEf7Yehu8shPHrMLby3CHOxzg
146−6Y43xi9bcb3OGtwnR3nKfT3sFwe8IsiudsxlPnOaT/vabi30tlW+c56fXNx4RTAvFCzyvmpcwBXh
147−d8fZ/fGFh5zojiU5fQ/+9MzqG94CSbrSU830jTud6nyNujen/vWvGn3IHNd6u7l+dIHIm+yqLXjJ
148−KwJlPtfd7nfP8pdbDvIxx9nvfwd84OE8Z5xfnRd3xnviFV93PwOdwxXxsJIlP3nKn7jFe2+6QGT8
149−Y8533vOf73GQC+9ygRT+ufKnR73kmex4SV/87XQ1e52RnvZ+r/3sXn893Fkvatfn3quxbzXaab91
150−iMMV976vatjVOXbkSxX42Z798FVte9m3vfldVb49KzKEYHTf+98Hf/jFP37yl9/850d/95VA7M0W
151−WhZHgH/85T9/+tff/vfHf/71v3/4y6L4jQ6NEUi/ASTAAjRA9HODuJO63ru+qXq+iBM+6Us06gu+
152−42tAm8q+1mK+C5ypBzQ+rJNA4hs9vuMFt+PAmcpAcNrAE4QpDwTA6AvBCfy/nRI4FqSpFBSVcrPB
153−mHJBGoTBGJwwCoQ+69vBG1RAsdu+OVDCJWTCJnTCJ4TCKJTCKaTCKlz+QkLAvK4TCCyYhi70wi8E
154−wzAUwzEkwzI0wzNEwy7Eghk0r9CwByuEwziUwzmsQiY4wuVjwCJsQasjPUMDQhkcwcwrQT1EwTvU
155−vgQjRPzKQrbzwz8MQjbcFNNKxJjCQXZawUTswTb8QUfsLyGEQAucRJWqRFDRwVBsMD4kwazjRAqD
156−RHmSOFN0h1H8lN9oAmWwxVvExVzUxV3kxV70xV8ExmC8RfEpr0h8DRGQgmRUxmVkxmZ0xmeExmiU
157−xmmkxmQUgVbMlNIQxm3kxm70RmG8AkPUQFkrNBI0x1NhLRUkR8M7Ry1MlXTMwQdTR3YUxHYsFXhk
158−J3Dwo33kx370x3/+BMiAFMiB5MdidEWeIciEVMiFZEiC5JpkQsiGlMiJpEiBBIf5OpWK1MiN5Mg/
159−WhU16MiQFMmF3KNTAcmRRMmU7MdMYsmWdMmXhMmYlMmZpMmatMmbxMmc1Mmd5Mme9MmfBMqgFMqh
160−JMrzuJqKGJZiORbeGQnkAZousaLz4RIsAomWWZr5QSWTQCXisZaFcaUHEoh+OShncZaiNEv0iJyK
161−sBd8caCK4Bd/ASMeeiAX8hykrAOZ6Yg6ARgieg3eEZoU2J6RKaNngZkOARILO8vEFA3b6Z2YqQia
162−6Z6MwBmd4ZkoqsswgqG/VKKNAJajxMzy8UvjaRZjCMxnmQRwOE3+CZJLxWTN3hAbgSAbGzqbthSI
163−taHN1RSezgFLurEbj/ADl1mFq+TL0AjNjKGYnaCCpUGYrKmbkjxMRmvN6ESRpQGmiqCc3cFIzLHM
164−udTNJcIgjgjOmXGZFwLNaPpLNMofxzSY5uSFrNmhz5TO+MwLxsQdyqAX7OwI3wGeLhGeLuHKFPpO
165−zlyYOkDP8SmMLuEJUTrKqwDMQtkNvxGIGlrN4ZHPCsWL68mewMRP7wEf9VHNy6TL3UyfjvhNLSLP
166−BSrOHkocwwgZgzEXLsHL57TQGc0LAapO3UBQuUmgFuqcEPVOi9jMHhIZ8TzO4yFO80QQgzGMlumK
167−ERUIIApQxKT+0SkdiRMqSWZpm/cRCbr0UQeSIY6wGrwkUPjsSyTlzvnACMPJCAmdHyml0jf9iCTi
168−COxsIlTaziWaIlGKSmnBS41IyozomJFhpe9EpajMiLqhFiAxF15AzUN1zDYNHjiV1Eml1Eq11Ev1
169−HzvaxyvNiz7aR0DC1FAV1VEl1VI11VNF1VRV1VVl1VZ1VQNxpliV1Vl9Hme4BVrF1VzdJVRwBlTQ
170−1V8FVlniVV8N1mLV1WE11mSl1VtwBmV11llVl1WS1mml1mq11mvF1mzV1m3l1m711m8Nk2KTJmdY
171−FUkAAEko13NNV3RVFWfASFFBC4PUFAAgV1UxV3ZNlXtd11X+cVdWiVd5zMF6zVd1tVeCHVh8RZV+
172−XZV/dUtIcdg+2UuBVYOHpdgoqQh9tYuK1dgjuViD3diP7ZGOxVeQJdkcqQiFrZqSVVkagR+GTbDU
173−g9mYTbEMyCmB9QR8wNmc1dmd5dme9dmfBdqgFdqhxdlCENmK4AbQU9qlZVoe44ajFQhrAIOppdqq
174−tdqrxdqs1dqt5dqu9dqptQao5QXTk9myNdtZoIGTpY97YAWiddu3hdu4HdrccFmhg8WWIi+bvY29
175−7Yy64AWMbcRV7ESxPY3VMNzDFYzWAFwTDEXJQlna4NvInQu6BZpLJMS8fQvJ1Vyy8FvAVUXBRSzF
176−AtzCRdz+0jVdp1Bcg2XcSXTctXWMzYVdm6BccR06WMRczYjd3KWJzjXYzwVd0SLc0xXe4UWK1MXX
177−1U3E1vUK3WVemJjd9hOIczCD6aXe6rXe68Xe7NXe7eXe7vXe6eUC9qPXiuAAAjDf80Xf9FXf9WXf
178−9nXf94Xf+DXfWhDb9+O/+8Xf/NVf/fM/gQDcd0CHABbgASbgAjbgA0bgBFbgBWbgAH4HsWWH75Xg
179−CabgCvbeBBQIlIWAP5DfDvbgDwbh+OUArCrFULxdXtiM5lXhmxBb3/3dtRJdgyVd4qVhwzVeUGxc
180−tV3eFV7h5y3hSTzhFOZh5uVdfHXhF9604K3hJV6NGyb+wrsVRR22i9cdYt31YcvVwyCu4uYt4k1E
181−YkVTYiYW48Bw4kGE4ijOYNfdYua94jy03ZrN3DWO3S4GwS8GrRjG1xke4z2GijJGXkJU3imW49xt
182−Y4EYAjpE5ERWZCrEQnUR2B/QgkiW5Emm5Eq25EvG5EzW5E3m5EiGBbHlwjQU5VEm5VI+wzX0X4M1
183−B3Jg5VZ25VeG5ViW5Vmm5Vq25VtmZXMQ2zdc5F72ZUS2wzSuCELo5GI25mNG5k7+ARLG4iLU4kGG
184−XToOXDsG41TOYz7G5qjw4zNGY154XCqG5sgtZLvl5mcOZ8mV5iOm5lWz5orQ42yGZ6oQ2z/Ww0Bm
185−DHD+PufbGOfaNUVzzue9Ted1Dt0wjueCnoJt5mZ7htx/3tt95uZTbAu9ZWiAbmGBrua/lWGD1miE
186−PmOFxueJ5oxx5r4DJOmSNunyW7+IrohhaIOWdumXhumYlumZpumatumbxumWpoP63d+e9umfzr/+
187−xWh8hYcyMOqjRuqkVuqlZuqmduqnhuqoNmp4EFsBPOmrxmqSxmBvpg8IeICcBuuwFuuxxulhYGY3
188−7mc4xl2Qto2AtujCwmN31miD5mgo9mi2tg2HLme1RmG8rg23fmu1iuu+mOt4ruu7vWu/7gy9PmN/
189−VuzHAOzARqvBNo3CNux5fujEfmzIGOfIO9vPTr3+y3PkinAFPjDt00bt1Fbt1Wbt1nbt14bt2Dbt
190−ZhDbzWva28Zt0BO9oa4IMfja3wbu4BZurxUDsSVb0EbuyVs9rq4IAWgE2Ybu6Jbu6Y5tVzhrgaC7
191−xdPu7c47MGsWgVUAuRXv8SbvoDXadu47wVPv9WbvNiM83hYIcTiD+abv+rbv+8bv/Nbv/ebv/vbv
192−+RYHsUU87ibwAn+DxmPugWjb8mbwBhdvBbhucm5svhbizZaLyJZspaLsd7ZsJj5sWNRsC5cLxoZi
193−xxZxzq3oDJ9sgu7wMf5wUwzxEycLEr9bE5fxsMBwFV8v9K7sFufjF89hYRbkG5eMCKe1nkPyJF/+
194−OfEV2AEAgSeH8iiX8imn8iq38ivH8izX8iePAbGFuZoD8zAXc2i7OfjmhXVIhzRX8zVn8zZ38zeH
195−8ziX8zmn8zRfB7HVOSXX8z2vgZ9LcF6AAD3Y8kEn9EI3dC0fgAjnZxOmcCKHixzXcXdjcR9fYiBn
196−XSm+Z0efcUV/aBvX9M/gcXWO9F7YcErfY0tPXkxf6E+XXU7fa5Vea1a3CUgfdaEqdVMXY1QHZFX/
197−aFl3XlefcFjva1+vCVqv9YfjcQ7H9dPV9XrmdWIviwgvAj6ndiVv5O+uCEY49G3n9m7H8mUQ23oY
198−83En9zCvB7FVhzpX93Vn93anc3XA82qX953+83OUJQRvx/d873ZGAPYSb3RoB3UzF/VIv/Vlr+Fm
199−L8IYB3iXoPE3FvYKX/iWMPZjB7BkN/hKx+yEfvaI/3XH+2FM/HeOd4mJp/iCv/jhRfgdVHiRL4Vx
200−zm4Dh3nF07vRFojwdvCbx3nzFlsya++e93n1fm/Ale//JvqiN/qj7+8A5/EBj/mmtzsER1kBWPCc
201−p/qqxwcI9/gOS+6tlzzRxnaBKG3qFvuxJ3vXpm0et+3cVvu117HdBlzfHu64l/u539ri5vHj5vq8
202−T7HljvrnLvu/B3yxt+6sR2tGf3iWH/kUp3iiMvmTZ/aM7+iNR3zc6PcaD/nJLwWSP/bGd/z+0k15
203−G1x5kW/4tD58zGfhUF98Sbf4zhfez2fB0Of4ca6E7aL92rf93FoCvg6ES+D93vf93wf+4Bf+4Sf+
204−4jf+4+d9KwDlTGD+5nf+54f+6Jf+6af+6rf+62d+VDZzFmCD7vf+7wf/8Bf/8Sf/8jf/80f/7mcB
205−sbWu23f/96d9XFD1QkD++rf/+8f/4w+ECNcrgUUVwAUIXgIHEixo8CDChAoXMmx4UBIASQ4nUqxo
206−8aJAiBIxcuzo0aEzAB9HkiyZQiQvAClKsmxpEYAzlzJnItRI8+ZNmzh3ttTJ8+fHkECHejwpUCXR
207−pBdhKm3q0KfTqA8jSq1qEKrVqkKzcjX+mnLVvbBix5Ita/Ys2rRq17JVCyBa27hy59KtG7YVgFZ2
208−9/LtGxevXr+CBwsGTPgw4rnRACRu7BjtKpQAJlOubPky5syaN3Pu7Pkz6NCiR5Mubfo06tSqV7Nu
209−7fo17NiyZ78W+Pg27rCSIOTufViAJAG+h/sFLpw48rrGkzOXC0FS8+hxuVKvbv069uzat3Pv7v07
210−+PDix5Mvb/48+vTq17Nv7/49/Pjy59Ovb/8+/vz69/Pv7/8/gAEKOCCBBRp4IIIJKrgggw06+CCE
211−EUo4IYUVWnghhhlq2N0TFvBizEIgJmSMMSlQoUaIaohI0IofbvgijDGilwKIIF5DhTH+JxbUokE1
212−NsTjQC0CKSORRRqp1CQe+rHSkj5a4Acv1/BYIonXuPjhNeCkoOU1JuqYQgoe8rJll7xYQAUVHoLo
213−B47gCDTkkXHKOadH1wDByyrXPOFji0vueA8v96xyJZ+8qHHnjR+iGKSLVDzBCzh78uLoE3XQeSmm
214−mVrkIxBW+mgoECvtyKiIhVpQolFTYqnllvd8Cqemscp66SSrqEliHacGusqjPQIq6KSGFqrGSh1e
215−SeqVkzT6RKWzOvssndcA0OubLq6CY4kFgUnio9eC6aKIXkJZarUgnknFSmvieOex0Lr7Lrzxyjsv
216−vQx1CSaYVta7L7/9+vsvwAELPDD+wQUbfDDCCSu8MMMNO/wwxBFLPHF1VOhrgbK8GNuuQiSSqOaH
217−HqfLIonoHlRHyYt6uZKKxqBM5ctK4kjFuIMKtAqsCIUpkJ0DiZkzySSOzMvLxqhYUNHUBukyiSiu
218−/GbJYlL0hJs3L2os0AQVjWKNIrfrsckGvazjmGiudCrT28ZcdtjG2Ixn1tqK2bNAPzvkcbZde/x1
219−yaIS1PLLvLCZI5Qh57jo1FXjuWjhcQu0tYhFgzxQ0ifnKOrgNJuJK5VMG822qG4PhHNFFtedsZnV
220−/ugxyHh/CvXlBqGNMpMzFz424hdNknGnAtGoepQz5w58uaMyerPUx0u6s5l+Czn+0D1APPoEEK4q
221−Do7jAx0qUJK2odSil8kTTyiLxgN70IrMWzB0sBYBsSgVA/3e4o2H9ziqqsfjKf6Vy4u5vv6Opb50
222−XS97AtkeL7o3JnINBAho4p+q8gc8WyFERNGbXvWuRLeKvE8g8TPU9whyD+Hd73gSvNL5jBe/C2os
223−g8RL3/8IOBDsVWR3AundAoFXP7KVr3wnXBEF0Wcb6bUQUCLa4EUSRTWBNAl4T4oSkCJoPB2yq4dP
224−YN+xnnczfUUJZ6uAkh9IV5FITcpK1GPgzTxYQhP2UH9wWtHzVvTBigAwjEycH0GeKKU1Fq+Nx0Ki
225−6q74tQDC0YdfFJwYKUJG0xH+C43EEojiAgiuKf6xisbL00CuMagjWnIidbSZGMGHIkAOkmNa5Jjq
226−QIRJnr3tlHE8ZBgNGDyNVa2RToTSHik5ST+uiJSqW2UXNdhJi1jMT5JC40D8tKO9gYt1pRwf0XBl
227−xDa6cplqGBRYZDkmCzzhgyk4GioltcymXaloppSkG30YtYssMQVQOiYqBec3ygmtXM48JSpfVodp
228−prOf5bomnlxlkTB184biBBIp8cY1w+WNlxUcn97AMTyHtBNKk/ADMpM5z8fVM3IeW6g/tZYjcOQy
229−pIUkFUCzScxrKFN6GZVnj5ipt4YS8qHnxJ1HdrcKFPUOmYfaKETPqb+ECqT+oNXUHzA1CaL4xU+b
230−h8JYoIbWoiumQGlBfSbw3lhTbRrkfR/sKcd+KkQfUrKXwxSRUampVmQxNZ4LeaqyUsDPqa6CV3zc
231−ZU15NsxfclGTbqWIV1tIPhGuAqil/CE6r3SopLZyrcVrqzZ16rS5/i1UY0WWQ/VqU8b+1SJ2+qDH
232−cnUsQVlVkq974eggyKgB5jVQRKSeQFNQ2M4mhAq9m91pO3jZVPoRhW+bImu5WhAL1BV2uWoRaW2K
233−2dYGUa2sRa3vYugi2WJxIra1Eo1cxr49cVGXp31mc8332gwKN4/FBZzRWgRA5Q42rym0YvXGCyjo
234−brNuI6MubQ/yWd/hin3+yd0tXukb3h6yELb5BexGPUqia9XTuwxNF+vAZljJ+c5smWWi7VwkLU/p
235−bo6qK5oAzOngaDYNbyup3G6fdmCG1KFwpBIZg7PlYBOTOL19s9zHKhw2+oKuWhtecUEm4eFyeuwE
236−2CPRXWc60+zGTrmZa9xIWtxDEx9Zxpml8NZQjLSPCi7Dre2xhgHAYfclmKMLxhZQI4g3hqKtyZd9
237−MjQpJuc5y+he+OouR/AFpvmqZ3344t9F/AwmQGfFzvn6iKFTgOfz6FmuIxE0865zj0aPJNGLNk+j
238−+dyRTNO5057+NKhDLepRk7rUpj41qlOt6lWzutWufjWsY91q0frMUgP+EWSgULIUy4DoHpLhda4N
239−4mvKgMPFB/F1rpPHmGFbZiWX6bVlNJcSTWvN1rdeRR0AUIeqHuUy3aYMDvkIhN9KK3d+YwxGmE2Z
240−YKfE29MuiLqLrRBkpwS5IsEMiDDz7cnIm91dBcDwXDUZ3ap7Mr+qTL8REm1AneQy1JZ1VFJgyXET
241−xCv0ruzASzsQdMNbMg+/OPR0bQEpIwTZvq4DtTh+FE2rPOQVR/m7DeKHybi4m71Tg21XfhCOPwHb
242−pX1kMq2dwEh6JebXzjYPha1rlxudIC3398iN3fFuow7kLX+6zn0Hc5DfejLzVAMAlHXFrS+d6WYi
243−+c7n23OYew/i1gH+e6+eAAAX+yHbbS8IOHjVTVhhnd59L7u/xxTJqfvayldn+cfLjm6s82LcFPdd
244−JMFuJca33MoDmQS10b7je9g966Mznc9LDni/P7zpgd9SQvzusl5ZHfFpd/rBDzIJcMyeRfNMU+DN
245−LviEqFzufOa6260CDjHVPZPDRwnwjcF6wG888Z7X/d15JmbR5xrsizo87JVekOljXe5+GPlAqIA6
246−2zyK8pq2wOBRWVyNAbyotNf10x39fBGO3uOvpz9Bfnxsj+c88Ng3yNWhCPBNiqK1H/vljhpYyQCC
247−nP4BIJ9VCrUMYPBFHLvM1ptgHvIxn/ykX/Npn+nlXu4xXrAh2+/+NN3/4Z/8ZAzWgZ/3zV8HOiAK
248−ZtJvMZGtnYn8yBX8lZ73XBoIkt79QZ8Ikh7YQUnrZR8M+o7NAF+5EWD0TZ0HvuAR9pyxSeAENgXc
249−EY3K3Am9SeDY6WC7VcbdXcZKAB/XBaFIIBvVeMgJfiFljKFl0BrWWVbjsYsIPtvzcd1FnQyUAEHG
250−jJC/ieDIjV/HVUbsseFkiMjTlaEO+mAKoFwRbhywGSJSgKCQcY+tSWDBZeD26aAdQl8VSkWa+EHV
251−cN6jbCHzTQLK8KAL+qATxmCUTN/+sRspruHfEcQqVM3TyZ1lPIr4DRegmF8eDd5ejQmvTF+lFOIH
252−3gM4gIMX9qD+/R2h7jWgE3IcFYDF0q0hFFrA9AEfFVgGLhmgbXjIAi6dNBphAoEjFX5iUkzCuIlK
253−wxEi8LUKQ9RiMtZfxXFg211cqNCi8zHd06Ff13kI6nUdlABjkMwT9SCEGuTKB2Wis1Eb5wliLE5j
254−6SXi0g3kRHIc2BWdCVak63FdA1bjm8yTZY3jPfKe6zWhOkaFtEiUB3Kd3E3UD/pjP8Zg1KXeGepa
255−pfDjE7Lb01keENyJzVnJjXyQQa6d0lgAoUEK7T3h0/UiQ5DhM25iK94k9Rldw5njB3Zk7pkIQaCi
256−90zCo6CiAjLfxVnlD4KlJ65kU1ABB5piZRhDJqKkB+pbwUH+G7FJHeEt3STQorcx4NxJIgSAo5lM
257−i8Zgm7bZlSQuXmWEm0ElxEks2sV5m8NdJQpixi9aRq7l5bxN5aRcI8tVZstpyWa2YVNmUmAGSjcC
258−AMGJYWkCQMLtXGUkXTqypW3eJm7mpm7uZp65DjnhRJvhzVJSSHA6E060jOsYFnsUZ47xpnM+J3RG
259−p3ROJ3VWp3VeJ3Zmp3Zu54D4pnd+J3iGp3iOJ3mWp3nKpH8gp3muJ3u2p3uyJ3r2B3O+J33Wp32S
260−p4LA5n3uJ3/yZzc24374Grb0J4EWqHn+Z4GchIEuKIOCJzhooIBM4oD4GoDqB4UWyIUSCEcKyIYW
261−iIQKSIb+TqgI9keIciiE9keHEsiHBkiJsuiI8keLAkiK/seMRqjfeAEm5KiO7iiP9qiP/iiQBqmQ
262−DimR6mjIVWh+hOgNvAKTNqmTPimURqmUTimVVqmVXimT3sCRJqiuXUORfimYhqmYFqkXyM+JAoiE
263−ekIprCmbtqmbvimcxqmczimd1qmdruklbCmBhGgVTIGf/imgBqqgDiqhFqqhHiqiJqqfVoGeDkjR
264−3QM+3KmkTiqlVqqdeoKZ5qffqKmldqqnfuqc5qn3ICl+8KminiqqpqqqJiqjjiqXQk+kgqqszmqn
265−YqrvnOl/pCmt7iqv1qmo5hqp3oepriqxFquxGmqrAuv+q9pGrPaqsz5rKdjqmOCqf+gqtF7rrv5q
266−jP7HsB6rt37rqibrtvrHozYrtp6rp0prjQaIhNpAMrwrvMarvM4rvdarvd4rvuarvr7rAzQqiKrc
267−FoSDwA4swRaswR4swiaswi4swzaswG6BvwZI0RHCvlasxV4sxu6rDWRqgkioA7gDyIasyI4syZas
268−yZ4syqasyq4syL5AxAJIiBJDL8wszdaszd4szuaszu4sz/asz84sMbwsjeraPcwCyx4t0iat0q6s
269−A3Asgnjs0kat1E5tyrqsq+6pysnsz24t13at1/Zs0F6toxKt0VKt2Z5t1DbtrWrqQHws2r4t3Fat
270−0Pr+R8x+rd3eLd7ybNgqq4aSbdz+LeCGrNpOK9sKhNsGLuKirdXyrYjymdbmLeRG7tfu7biiqN8m
271−LuZS7eCuK5r6DQqUAOiGruiOLumWrumeLuqmruquLuh+wtySqMrRAhvMLu3Wru3eLu7mru7uLu/2
272−ru/OLi28Ln8UHQSwrvEeL/ImL+uigNMeiLWiK/RWqra+aICqXJ+CK/Zm76GKK/XqR7lGL/hOqrpS
273−a388b/ier5xOb7DaR7dqr/u+L/eub318L/rWL5yOb+HyAqfaL//iqfBWL59d7/sOcPbG77IGirn2
274−b/3ib8d6rvI+MARHcOq6rtj+K59RQw5ksAZvMAf+d7AHfzAIh7AIjzAJZzA1/K/36lrxSjALtzAE
275−M+/aNnDbZi4NR+3iVi6MZq3k7jAPgy0K58ejlm0NDzHLbi758gfUErESy20Fu6jj9jAURzHNUm73
276−AvHlLjEWk6wR5+/hZrEXu8MNV3Gp6rAUl/EOU7H80kcQfzEbb7EMGy4bf3EYp/F81K0Z33HeovEB
277−F20ce7EbP63fhIEJDDIhF7IhHzIiJ7IiLzIjN7IjD3If/PAY81nAOqwlXzImZzLDQmwTy6iuEcIj
278−h7IojzIpP3IYNK+BmK8Co6/6Yqj1EjAsg6sB9y2srjL/MjAgD8T+2vL5tjLWBnAsB7OxzvLY1jL+
279−L6MvLjvvph4zK0uysL6yMEdzqhKziRozM4NvMqfyMl8z+Ppy4w6EAEuzOG+vM9sH/XIz9Gazh/rN
280−NpCCO78zPMezPM8zPdezPd8zPuezO7NDOddHiD6CDAS0QA80QRe0QR80Qie0Qi80Qwf0I/SzGqsw
281−GegzRVe0RV90Pm8DKq/zDPcxFs+xKz8xHo/05EL0fKyxRy/xHytzR6c0EYP0Lw/E45I0TfusHtOy
282−bQixS9fwSmtzS+80DcP0NwvETNe0UefsTRdzTgP1EPc0RwvEKcyCVE81VVe1VV81Vme1Vm81V3e1
283−VC+BSctHiFKAKpS1WZ81Wqe1Wq81W7e1W7/+NVyXNQWEdXwUnQBkgFfntV7vNV939SlstIr6jSNk
284−AWEXtmEfNmIntmIvNmM3tmM/NmH7AF3DR4iKwxlcNmZntmZvNmd3tmd/NmiHtmhftjhM9nvYdTdA
285−tmqvNmu39mM7AmAPiCqj87V6swWD8zjnNrKatnucM21jqzoHti7/NrrathPjtm4nd6BSs8QSbQIT
286−t7MGt2xvM3RDq3HDLDQrt3Yztydbc3VHd2zb6ECgQBCUt3mfN3qnt3qvN3u3t3u/N3yXNwUz7m0L
287−xAxEAH7nt37vN3/3t3//N4AHuIAPOH7PAG+3B/GOQnwvOIM3uIPDNwwT7hvzQhczdeIKdX3+80JR
288−HzWHT/GBswdKWzjmOrVww7GIYy6GHzdRdziL12xSV/NSn3jikvh0/7SM/22KY7dItziLv3hzQ49O
289−33jc0rh4m7iQ4/iHr4cd83iH+3h3x/iRD3l4s6vfPEMYXDmWZ7mWbzmXd7mXfzmYh7mYX7kOJLl6
290−hGg1/IKarzmbt7mbvzmcx7mczzmd17maV4OZp8fEjjmf97mf//mYP8OUd+5wf/ezXje3Zrd2Jzd3
291−D613G/quSneR6y+kOyui062iL3puNzq5Onel96qkU3mhfzqtXjrsArOmM3qez4inkzqthjqhC8Qu
292−u/qnmnoOo3qqb/qqM1qr0zqownqusjP+Rg87sRf7PfNzJyc6nwF0Qze7sz87tC/0Qyd7pw8EBEy0
293−sWe7tg+7RsdwLht5lL9tjiu7TDN5j+86pl1xuKMtkYs6uK+72Y47pu+4uRu1kzs6lMO72bZ7rFO4
294−visuupfHktd7Td97tef7v0stvwf7QER1Xz88xEe8VoM1tZ/6QFRAXGe8xm88x8N1BQQ8edg1Xks8
295−yZf8w/+1t7O0QAy2a7e8y788Y0t2xd/6QFj2aN88zue8zod2ac/8fqA2zAe90Ls8bKe8T8u6r8uq
296−rQMwcuf6OHO65T560lcqsFcrdU+9pS69hWa60wsz1A9vr2M91Q86wyO92Gc9yI9H+3b+vdenvXj4
297−9tlLatWXr9/4wgHcPd7nvd7vPd/3vd//PeAHvuDfPTa4fXiEaDYggeIvPuM3vuM/PuRHvuRPPuVX
298−vuJng+GDB/EOPud3vud//uD7AtlbvY0n/NLKu8WvOMHbe+Z/R4ibftqOPt2XPuwjLerTvOqvPk0b
299−fNQjfO0j7cKT/rv//tHePtPnvu6PNO+DPZAT/9IG/+wPv/OrrPFvPb0n/x0v/8+r+/Qzrewjsd8k
300−AuiPP/mXP+AXvs9b/0Bog+W3v/u/P/xXvja0vndMrPnfP/6XfyJ8/37Mdtz7KkDwEngPwD2BBxEm
301−VLiQYUOHDyFGfEjQoMAqUzBm1Lj+kWNHjx9BhhQ5EmOVgxQlplS5kmVLgSkAnMRXimZNmzdx5tS5
302−k2dPnz9pejoI02VRo0ddAkhx0BNQp0+hRv156WRBpFexYkVpkWRXr1/BjjQ50GpWs2dVEh04U2pb
303−t295Cn0ZE21duxCVMoW7l69bqmQr3hVsdyuvi2ERJ1YMciyvwoMhZ1XrmG1fy5fjDqUbmfPZvAId
304−ZRE9mnRp06dRp1a9mnVr0T6qBu48u2VhcWdw59a9m3dv37+BBxc+HLe42LSRs5wsoJtr58+hR2/t
305−SHNy6y0/8zo1i3t379/Bhxc/nnx58+e5Lzl+nX3DwhVUxZc/n359+/fx59e/n3/+/Arr2wsQoeUy
306−QM/AAxFM8LxTqhPQQYWyc8CdCSms0MILMcxQww057NDDCV8A8MH2CiOmlxNRTFHFFVls0cUXYYxR
307−xhOJEXHE6ya7Z5YPeezRxx89dKDBGx+MEMgjkUySwxABI5LEsngxccYpqazSyhhrbNJJHDfTUckv
308−wURSyLm2dNDIMNFMc0kby+ysxCvhjFNOGLN0DMo2Z8txRzX57HPCMXmZDE/rsjvkhUMRTVTRRRlt
309−1NFHIY1U0kMNYXPQwQrLJpNNOe3U009BDVXUUUkt1dRNs7H00rsmg2CJSWGNVdZZJT1kyFVpy64p
310−zHjtlaa/7JQNV8EKO2yxY5H+Dauxx4ZltcvKfI2WL7kC3axZznSVVtu9gGX2WrSKTVbccUVa9s5v
311−0coR2m3ZfYpaQdEVLNt26XWq23PjzSpccvnttyRV8z1K3XoJ9uldawOua96CGcbpXmETRmpffylO
312−1lyIIzZq4IY5rungjO3K7pkwSC7Z5JNRTlnllVlu2eWXSdYBYJBXKqyaX3DOWeedee7Z55+BDlro
313−oXGuZmaaU5qMEJiZbtrpp2F+5lakrzrTz6vDZDJYqo96c86vwYazTm+5TqvLPbFOO0lA4S27KKvV
314−jttHrcl2OyKvw85b7xfHxtfuiPSUW/Ae2Ub4b5bgHlzxDOn2+3CH8N5b8sn++8b48YYCX1xzDAu/
315−PKmlBJJw89EpbNxyzxWKfPLVw64cdcDPJl32zl9XKbsmlMld9915793334EPXvjhidf96NoLE0GK
316−5Zlv3vnnoY9e+umpr9765UU4/vXJrine++/BD7/4Jqau/aHszF+o7vS3Zl99x9lv230y53cI/frb
317−x19L/fPXX/75/6e/+9VvfekroPkOWLsAxs9w/OMFAMBhDAlOkIIVtOAFMZhBDW6Qgx3UIBXgZ0AA
318−UMGDJTThCVGYQgmC8HTpg4kKYRhDGZoQHA3k3wxxmEMdTlANDuSFGnYYRCGisIcOtMAQkZjEDPqQ
319−iU104hOhGEUpTpGKVbT+4hWxmEUtbpGLXfTiF8EYRjGOkYxlNOMZ0ZhGNa6RjW104xvhGEc5zpGO
320−dbTjHfGYRz3ukY999OMfARlIQQ6SkIU05CERyQsgrAIh1wBAEV9ykBBCDgCVtKSdBGJJTWZSWASx
321−JDj8QMlMGgMhBHmgJitJSlRWMpOaBCVZGAKERybkHsaoJBCK6ElNGkSXEAwlQ2Cyynv08pUKUQMj
322−z9fChFhlkispyBOM8YRETvMufqgDQiYBjgFt5lxPWEUdRgjJ1BnOlA/E2LnKyQsL1OGX72vlJKqC
323−kDv5DUopqIM004mQJ1QSdAJRAwDg+QR74rOB6VxnOxmSz3TCRJoJMYb+OIF5jZRYJQUSzYpVLIBM
324−am7ULOw8CBX6eQ9wSlJYq6CCRL/Z0HGu1JwLQae1UqDNhNIFAMa4JyxJKs9zysYq+TxINrOJEGP0
325−kxdUsAAmWfoSmbrHWvk8lxqWelFlJsUgT6iDRTma1aOsApn7LOITwDEJbgorBYFxnE+RSs9OWsuR
326−WKUlTe9BBSDglJM6dSlPe4jWolZ0lrzwKkLUIFG95rOtooynJN0aKNAZwwI1NCoI63BUq6gBsqCj
327−LD/rapUnyDKypFRDCuz5GW9WchXSHG0dYFKRVcBTq611iTUFYgEqDKWsY2VqYg9bSrje9a3LtFw5
328−C/LPUDqVpzsdCjL+0erIHoKUrr1Nal2ZqlvaKsQYrB0hSvNiz5ailhfXqINBqvtDZhrEKsYAwhOe
329−AELH1IGRfpilMUq7WUbG9BqjrcgkSOla/a7Eo0BgbVyR2tKFrJO179tlWlGZ35f6dqZ1HShx5Zng
330−VmoSdGidxGx5MYlrBvitqGyugBtcFVQe1a4P/GU5TWkV9uK2u+M1Z2ExSZCGFsSRDf0nLyIrEEdW
331−RK/79fFCUlBaAEjUqry0LS3BAY4WohW4xpXuQWDM0rJQYRUQzimEAmOBIXNYICDUZCiVW8qjDpat
332−W45ubr254SuXBcUxsco1VgGOOuBSnVQAhyzJm+d0OjLABeklK6H+xGYb/pjQ/owshv+cF3TWocBn
333−frJanavUM5fln4Kap5Pr6tMoU1kgQ0UIEJZC5gFF1Z255XJZBA3LOwm0Dv8soouDa2ZTppPGhgMH
334−iXc8EDUXmtcISXKj6XouKgA7xI/GNF0POunABLPE0GVwTn2aAgwLRMNkmYQ0NSzYgm4m2Yalqzfn
335−KlTr8pguKTYIdwMFDldnGAChdLF50ateWoM3vqsgJX3t+5L89prf1cItrT0szGIfdpXM9DAxESpl
336−2aj3yhM+8J3AEWpUxrTRjjyxl+lsp4lrvJLF9DbHb6nSlyAz1Zi0ih8w3sPQDhWgLoYmBFcRk3n7
337−VZYAOO9clJL+giL6t98997lDrkHqutyjoSJFilVF/nOl/7zKg4k4zTVaFNAuneorOaIFSSwYIFqQ
338−qFy7egWz3pJrdB0tQCRt0lsS9aqvne1td/vb4R53uc+d7nW3+93xnne9F1KJffd72PG3db8PXogQ
339−rZ/gCZ94HEIRgop3PAwHOD+CkPDxlS8hC304ectvnoM1ZDzZ6xd59yXwdaRHnek9t8DQg35+omcf
340−6i8H+8fJ/nCqbz3r3ed6EU619M3sPe9RZ/vc91MSrzD+8ZGffOUvn/nNd/7zoR/942NV9wiEEiaw
341−n33tb5/73ff+98EffvGPX/vaOz2UpJ9+9a+f/dK/QfkcmJ3+YlSM/scCg1lxv3u9dKxj1KL93wqD
342−DepvABGjMYSPfeSPABXQK+5PkvLP+gJjV/ivYfzP984vMARwATUwJAxw0PAnATcwBDuiATPpAZEH
343−SiRwAgumAoHPcwJQBGFQIzrw8w5i/mIwBknwgUzw9/ZPBVfQ/FwQSjLwBkVwBp8oO7qgB5RwCZmw
344−CZ3wCaEwCqVwCqmwCpeQEBww86DkAtqhC73wC8EwDMVwDMmwDM3wDNGwCy8ACGMPSpDBCuEwDuVw
345−DquQEuCPf7IjH2SHdGYB/7QwMKSEdQTxa1zHgQrjBfZwdGjHifIwETenD7PQEKEkEAexEq+kEPnn
346−EB1Rcxb+sYkacRMVBxJL8A8PghIt8RRnBBP1RxNBcXA6kYk+sRXlRhR1kBQFwhRRMRddRBXxhxVl
347−MW5e0YeyIw9EoRiN8RiRMRmVcRmZsRmd8RmhsRgFAQIiMROhpACAIRu1cRu5sRu98RvBMRzFcRzJ
348−MRsLgA1nD0o0IBrZsR3d8R2hUQPuUID6yQaJMARzsPpOMAJ9kGFY0BZ5YQjvUQONkBHrcSDx0Q8l
349−kR/7kWD+cSEPQiARkgAL0hMPciIXMB938AJ7sCHb5SGtEQMxcgErEhb7aQOIIyVVciVZcjjgQACq
350−cRWhBBSkoyZt8iZXAxTQ8XAK4w5a8ieBMiiDwzjoxyD+D6ISFCQplXIpyyMDYHIUIVIgKKA/qLIq
351−rfIq+YMCdhIAoWQJmPIrwVIpGWAeP7Cf9PAX44YW9ZEHb1EX3ZJvttJufBEtsSYY488s6VJt1HIj
352−gxAQ3/IvV4QXCQhKEDEv65IsV+8gztIw/WQvARIXAdMtBVPyCJMxr8Yu8bCfuqADOLMzPfMzQTM0
353−RXM0SbM0TfM0OTMXqBEqQ/IgeGAcYDM2ZXM2abM2bfM2cTM3dXM3YZMH4tJtCoMTUHM4ibM4jfM0
354−3QAxb68GR1IBNRIgU9AjtwUkZVIkm3MAS1IYL/I66e85o5IXolM6pYU6e1EIubP+svMumfM8K8Y7
355−W1P+IMJTPH2FPAfTOtnTX9IzM9fzPvvFPauzI+UzWuiTMu2TP8klP+nxIIbgOBm0QR3UNLGQNf9T
356−IKCBNy30QjE0Q3cTGn6zbAojFx40REW0QZlAOYdPMS2zMRXyPaMkMl10MkevMlOUTzAzQQViMWcU
357−TRzzOyHTRVERRl9PRnMUTWq0LFF0SHV0RSe0RX30L4FU/wSiMJEUTIo0MW90SsNkR1m0R5u0Ep8U
358−Ag9CSrF0bUwUAftpDyQgTdV0Tdm0Td30TeE0TuV0Tuk0TRFhNWvxO3VhBfi0T/30TwE1UAV1UAm1
359−UA31UPlUFzqUawpDEer0USE1UiWVTuWxKC1yPw3+dFz8szwZMkDHc1Gp5gUz9UDLNH1AcFTFZVPr
360−E0A9lVcGNEYLFFWPBUGNVCDsUVbtT0k5lVVb9TJeNUhjFVcTg1atlBfQdFKRNVmVNU7vNCZ3VSD2
361−FFGldVqptVoNVVH3Z0kddVm5tVuRtVKrhQavdEyVREuXlEu7VBC/dB/DlFyVpEqXc1zd9UjM9VmZ
362−NF1zcV3ZkhfEdF59BF5PVF791UfqdVXbEl/zFVSRZi4HlkcA1kyPtGF7pGAJtBQRNmGz1V77VWI7
363−5GFNtZ8WdERFdmQh1FkNlhcqVENVdmVZFjc5NGNPFkRJdmZpljNL1FJNElOFNTFUtWLhs1cFVGH+
364−aUZUd1YxiDVeeeFWizYsehZWeRVop0VoQYZol1ZZStV8TrVqwaJpgfVpoRYufhVKA1JrC/Bqaydr
365−ybYruFZs4/NrwVZqM4Zq05YkjjZgeeEcYiFv9XZv+bZv/fZvATdwBXdwCTdvyQBP15IjBYIHkqBx
366−HfdxITdyJXdyKbdyLfdyMbdxfRNmfZYX2KFwQTd0RXd0CTc5cVY7I5ZjPYRinfZgL9YS9VVx+VV1
367−HdZsXycWaZdDWLdrXfd1BzF2+7Jdc7djbRd1cHd4M2R3xRZdfTdvgLcNA2NjkddCPBZr+wkpwzJ7
368−tbcpnzJPWXQqsTJ8xXd880MrObd1ecErt3f+fdmXO8bydNVTIFBSKOm3fn/yJU22c2kSJ/m3f2tS
369−J8+Xd3nBJ+23gA14KIvXc9B2bkVibcH0Z93WV+E2YuSWgTkwgS9ngS34IxyYXSE4gvsibB94bDdY
370−LDD4cTS4hDmig/e1bUFYKkTYg0lYhRnjhA9nGOExh3V4h51xGvMXfbGxHIV4iIm4iMfxHANYbNeR
371−h5m4iXMYXA/wY1N3ei9EeUeYeZsXbJ43HaOXijWkes8WL70YQ6xYhrE4i+dki3lSSMe4QsD4dsW4
372−jSukjPf1jNE4TtSYK7tYjt3Yhv/meOWYjmXXju/4Eic4YRhWjt/YeDWTDh35kSGZCiPUe5f+lAvT
373−8JIxOZM1+QzXMIlH+A0jOZRF2ZHtEH7101ZpOCRYWHZd+IWhIob3VSJTeSPqFmJReZY9YpWD94Nd
374−+S1gWXZlGZf/xZRtNGmFeQR19WRbuZeB4pd3eYaPOSNqWYpvOZozQpeh12uZuZkPOWAq+Jin2XoP
375−Am9Jt5zN+ZwD93B/WIAZN3Pd+Z3hOZ4vd3P7x14/F53xOZ/L2XTD9QjjmI/dQZCfmZALuUryWC7Z
376−mI8XWYH/mY8FOpt7t6Cdt5vzJZHbeKEzuKEDOZk7l6AlOhUpOl4seowxGoX7aRDaN6W11ynXWWwN
377−gHxhOqbF1wBCGl0KQ31VOqeXcgf82G7+smN+DziohfoM8FdC7XV//TeplVo1ALieT5aAhzqq7Zco
378−+9koq9mapwCbuVibt9lgavpbvlmYwzmMdTaatXqNO7Wro8KZIRqarXms4bisj/ms9Zir1Xon2Hqr
379−BSKYxbqn3QYJPSCwBXuwCbuwDfuwETuxFXuxGVuwEZcv25oZYGCyKbuyLfuyMTuzNXuzObuzPXuy
380−meGrr6UwhKCxTfu0UTu1GRsQ/LpsALmNH1qv7/WjW0e0m2Wkvbikb1ijYZuj0dejaZtObHtYcJuK
381−dfuPeXuMYxutLTa4a9uTZVh6Sbq1uea1ldu3BRi4nbtFDho4E1qRqZtqskMZ8qG8zfv+vNE7vdV7
382−vdm7vd37veHbvCEpcZ/ZBVrgvvE7v/V7v/m7v/37vwE8wAX8vl1guHGlMCohvhV8wRm8weE7CsIb
383−aeiboQFySS0cf6JYnFH3Oy/8ZP3HA4v1lFm0wzv3wxkvgjgvxTFowtOR8lT8xVfIAoPQxWFcxT3v
384−iWo8xyUI8A5Px3Pc8OYH8Xw8xfeuyI38yJE8yZV8yZm8yZ38yaE8yqV8yqm8yq38yrE8y7V8y7m8
385−y738y8E8zMV8zMm8zM38zNEcInLsINZJnyoMxO1HwoBLzsnJlRIuIVgNANhrxlYJyr4JglIA7UTM
386−koDgGhKNxdP8y1Mg3ARikbbpw37+qOZujiHwpcmeC9k8iiFMSqKuAQgUDGO8axUkirKmLamugYSa
387−LdFVHbAAoKH2qZ2sqdxsLb5QndIhxtIjzdRiqiGgJMz8xrz0KawGzr1SfdWN/dYEArZ07NZknbqK
388−btAqfbdyvbmiLCH2/CSkCV/+CptK/cmSfd9AzNiNfdEFYhX6qbrazCF23dYV7tJPzXLWaYR0ruFM
389−DdLpauxETsbFHcz/SZpa7SXmKt0XgtVOp88RjMK47N0hR9oAgOTo3N3JYsSKfd8T3aj8QKZEiqDs
390−XcOMgcXoHaei/bmqvSHcq4e0va9+Sui+7ZsmnuLRfBIWCXSCaZfQKqamKuTDHdL+82ndXSrf82wh
391−gL3T7uHpSq259N3lu9yR1I2lfGrbk6ndpz3Aug3oO96vTMrZGmnF2O2mih7cWh7pzdzOSu3PjCHR
392−eP3WaarPyR7kPG7g/1zrTwmVKgLOwKmmkN3ACN3nwX7v9UcNiI3vAT/wBf+OUuCCgPwsvo6CeLwo
393−MGjwHf/xIT/yJX/yKb/yLf/yMT/zNZ8zQKvzPf/zQT/0RX/0Sb/0Tf/0Ub+ifGjsUr/1Xf/1YR/2
394−Pf71Yr/2bf/2YZ/xCm73eb/3ff/3gT/4hV/utXD4jf/4kT/5g78FL2fmlf/5oT/6f19cR9xeSdx9
395−Mrz54dxur1+Au9+Ftn97wp/+mqvfw60fw8c/9dKfrAViAsrh/eE//uV//um//u3//vE///Uf/g18
396−VQojEgBCmsCBBAsaPIgwocKFDBsKjMQr4j0A9yJavIgxo8aNHDt6/AjSYwoAFp+UO4kypcqVLFu6
397−fAkzpkyUEyyODIkzp86dPDUCSGHRwayhRIsaPYo0qdKlTJs6HbrE4sSKPatavRpyqkVuqrp6/Qo2
398−rNixZMuaPYu2KzepFLG6ffv2psQMT+vavYvXqQObJOH6/Vv1Z1B3hAsbPow4seLFjBs7fkz4BVuq
399−gCtbzqg1IrFenDt7/gw6tOjRpEubPs2Z2OTLrFnL5XVvFuTZtGvbfrw34uv+1rwtC47o4Lbw4cQb
400−S5bYtrdyt5l5bUYNPbr06aZVI6e8PDvP17GLe/8+PDev3drL8/zNKzj49eyNrzYPH2Tz59Tr278/
401−2jrs5PH7b+QuW3sCDkiYeOT5h2BG6O1gSoMOPghhhBJOSGGFFl6IYYMIvJdgh83Vs0uIIo5IYokm
402−nohiiiquyGKI9XDYIYKvEZJhjTbeiGOGO/AVY48WoacegUKCd9x+2PkI33z4Lcmkffo1hyR8AA5J
403−pXcG9hVlgkBWyaVwRUKZpXZKNklmmaU9yV+Y2k3ZZZuzXakmglu6Sad718VZ3phm7slnL2geiSdv
404−bNZJKGJwBgrfnIUuGhn+jIi2pmefkjL556PKDcpooYdamh16wuQIaqiiWsiJo5xW1pwsi6zKaquu
405−vgprrLLOSmuttq4qi6mn/vUaBAiMCmywoQrD467KKZopoV+maexfkU4KbX2VNlsZpsnSuSm1lyF7
406−rZvLAqotVs9GSy5004YLl7Xddpktun9xuy6X37oL17jl3kvaufRepW68VLa7r1vonZJXwQYfzFRU
407−dwZ8VXNxyAFxxBJPTHHFFl+MccYabwxxHLoynNNrAtCFcMkmF3xKsSALDFRElrwBc8wyz0xzzTbf
408−jHPOOu8MsyYfrywffxSkRXTRRh+NFgU/Ay0SlgLQw3PUUk9N9c6WqMz+dGAtp+evt0tnvZG9+I79
409−mb5gg9Rv1wQCfDZO8KpN4LxtZ8UffWTfXfbXc6vcHdxVsr23R2/73Z7cgXckNt5jm314RmkTvh7g
410−jfu0dRFmXI555ppvznnnnn8OeuiiX86O3oE390gAqq/Oeuuuvw577LLPTnvtqj9i+t69cjF6777/
411−DrzoRWA9eUeDQ05k7nMnrvi9jBevG5Z9Iz+g5ND/uHWQ1BeufNvMN0/u89A/vj1x1l/Py/HlD2c4
412−+gs7B37z4hdP/vq3nX+9+vbb1r7738c/qflNrn77ow3+oIceEsxhgQxsoAMfCMEISnCCFKygBRdo
413−j+6drTlYmIYHPwj+whCKcIQkLKEJT4jCFHoQCxoE24wuCMMYynCGFyQB8dx3Ef0VcDb9Q9//ANgn
414−ATaOgDvEzQ1xGBEdFtExPbzeD4G4JyEejohLZMwBi6fEKi6midB7IhTLJMXAUVGLibni5LJIRsRw
415−sXhe/GKTwqg76QUojbUxY+PQA4Vg6HGPfOyjH/8IyEAKcpCELKQeR9DCrKXqCIxspCMfCclISnKS
416−lKykJS/JyFy9D4e9UoIhPwnKUIqykFA4IhLRSMfCrHFybXTjkuA4tzGmskCmxCEqZ7nKxrXSlfeB
417−ZdtkOUs7Hu6Wqczl4XbJS2klkmnATKUwAzewk0lzmk1RmJGQ+L7+h3Fsm9zspjc15rFNuk9kJKOm
418−Oc85i5RFD5sK2trLqgbPeMoTZz4Tpw+FhrR86nOfZlGaPa8nMqjNc6AEhefV1snOHGZvlrQx5unq
419−lszwLRNozaTjM/dGTDo6dG/IjKh0fHm2iqbxonPLaBo3ujyIejSAE12ZSMlI0rahJxEmqKlNb4rT
420−nOp0pzztqU9/CtSaluqfXeQPC8KB1KQqdalMbapTnwrVqEp1qkhlQUtB1qs+BHWrXO2qV4GaiFq6
421−Dz2eKIVZz4rWtKp1rWxtq1vfCte4mvUSV2VYc6owhbzqda987atf/wrYwAp2sITNaxXqGjDu4EOu
422−jG2sYx8bV0/+iBV9ZIWsZS+L2bfSlahs5A9eCwva0Ip2tIM9LGcHKL3FZna1rLWsZBGa0CRurayt
423−ra1tNYvYfd2VtLztrW8Fa9prYlOxty2ucc/62vFgKbaVPa5za7tZ4SJxt7+trnV5G1wwoY+4z+1u
424−ZpN7IGyihxEgKK95z4ve9Kp3vextr3vfC9/yLiO39GqOOtKB3/zqd7/87a9//wvgAAt4wPhVB33d
425−NaP4KnjBDG5wfBkx2fzN1rsUtmx0tetEz153wxwu7YHRxd0Ki1iu4F1uQps74hS79cLMuidlPtvh
426−GMt4CtltMUBTq+Ics7XEscWeRWir4yDP9cPhou6Mj3zdGoP+a3w4FrKQedzj9E3YyUFm8ZI7+2Ik
427−a7m6SmZniKmsYij3GD0JmIeZz4zmNKt5zWxus5vfDOc4mxkHRNZWc+yAhzzrec987rOf/wzoQAt6
428−0ITOsx3qTK1epULOjG60ox8d5wREGIFTBrOKrcxOI29506Lt8nCbbOkUi5m5lQ61iDGNTU1zetUe
429−Pu0QQW3qCo/6xKWOtXdRPV0Ns3rXwEV0s75s6+7Omp1khrSxj43sN9PZ1cfkTzzYAO1oS3va1K62
430−ta+N7Wxre9vQjoevjaXoZIt73MeWNGxJ/eNgVxjXOFQ1r9+tV08jEdjqPu6wxVvrehuX3f7TNbz/
431−bdhv74r+3vq+7b1Pme+C25bfLrYIjAEOb3lzEtYKN/iksZjwirOW4RnOMsT/LfFxUlzjrT24LbdG
432−XgerfOUsb+98mf1QyqAjDTSvuc1vjvOc63znPO+5z39Oc3QI/FQJbrnRj75yCJ+b1ukm+W05XlSP
433−f/zdId/uyJ3+3YufMeNYt/DQOeXuqXO66jeWimq7zlqTj5XraHcs1LHscLFT/euWInjbH6t2yrL9
434−7nJ9Oyv9LfdVk53JZud71pdO7K1xgACMb7zjHw/5yEt+8pSvvOUvz/ha0P1RzXkHOj4P+tCLfvSk
435−L73pT4/61Kv+8+/YPKJ69QfMy372tK/95Tmg9Tvu3fD+uIU5RwEf+E0Pnn5X5z2Jcz/M3RufrX7X
436−JfCDr+Xho7bwy8c78qGp/OqntfnNljr0tyz9V1Nf+4zNu4QtogB8qH/97G+/+98P//jLf/70r7/6
437−C+H6QDXHG2Dov///D4ABKIADSIAFaIAHiID95w35hyciwwr2B4ERKIETWH8KcH0YtTWOkAUbyIEd
438−6IEfCIIhKIIjSIIlaIIb6AMMGCfNIQ5n4IIvCIMxKIMzSIM1aIM3iIM56ILioIJqIjLdcIJBKIRD
439−SIQm6AgXWFLZR35D5nsp5X3fh2ThN0XFt4RrZX6U1nRVCFfcF3NxB4Xg14NhYndamFZXiHFZSIZt
440−xYX+v/eEXyhjUihGVJiGZmWGW2cRw9AGeaiHe8iHfeiHfwiIgSiIg0iIeUgHYZglzQEPZcCIjeiI
441−jwiJkSiJk0iJlWiJl8iI8ICIUdIrD1CInwiKoSiKhDgMSChTSriEa+iEXuiGRwaHcTR+c2iFpng2
442−KCaLaqWK3vN8rchhrxhLcjiHdah7aHiLaJWLG7SLvJhkm4gkYyiLwph8xFiMTChd7ZaMyshlzOgj
443−zhiMtAg26PEBkCCO40iO5WiO54iO6aiO68iO7SiOGKCNPdIcRlAM9WiP94iP+aiP+8iP/eiP/wiQ
444−9WgE8Rgjr6EG7oiQCamQC+mOH+CNWYMe1nhlfzeTkc5XkVOYUOGFcJlmY1HHkRcZhxlpYon3kSWZ
445−ah1JfCIZZeljDCngki8JkzEpkzNJkzVpkzeJkzlpk6uAkn+3CjoJlEEplENJlC7JkyAZR0WplEvJ
446−lEFpDCMpXgAglVNJlVVplVeJlVmplVvJlV3ZlUiZUl4plmNJlmVpllUJlr90lmvJlm1plisJl3Ep
447−l3O5NwEBADs=
Documentation/DocBook/media/fieldseq_tb.gif.b64+0−445
@@ -1,445 +0,0 @@
1−R0lGODlhdQKaAucAAAAAAElJDK+vr1YMDBUVZC8kDQAAVkYQEBcHOwYGSCEJHSAgaKOjoys8DDMz
2−CgAYGp+fn19fFJmZmQoKO10wMA0VIAAAcDsICCsMDAcMT1MMD2ZmAAcSO29ISFUHByIAGoiIAA4H
3−T0pKDJaFhXd3d0EgABoaVGYyAC4AKXd3ODs7BwAAN1MAKQAAYlZGB2JlDBwcWWBtYCA3ABAQTQAA
4−ZQ0VQD4AAFVVVUhjSCQMJQAAfBMHMkQgIEtLSzAyDD5VPmZmDEZRB2FhEWZiDFo2ETkdCwAAVEUt
5−Gu7u7js7Ozc3N3d3WACPADU1NTMzMyBRIDgAAEJCEHEAAEwNDZeXAABpAEQFBSMjIxgNQDooCBA9
6−EEhIbwBVAAw/DAwMPgBNAENDCgc9B8zMzABDAD4MDAwOKjwKCkQWKUscHAAAcUtLFRMTEwohCoqK
7−AA0NTBEREQgfCBUqIgApADIAAA4ULzg+DEEfH3wAAAcHSaqqqlkcHDgMDKSkpFQAABUVRjEwCGZm
8−B00QEDAwXSUMJGUAAJaWlhQUUnx8jVQaGgcGLggSGy8GBmw4OGNAL4qKioiIiGIAAEsHB3JYWHd3
9−AAAAPlctLYQyAGggIBgAGkIVFQwcJRgYSA8MU9EAAAcHVQAALRoaYbu7AEY1H2ZmZlxdEHAAAD82
10−DlhqWExGHgwOUzMzDAAAmgA5KTEHB2ZmPlpaB///////ACISRExUDTJPJUQrDAwMVhISSEhISHd3
11−IC4xCjhcOA4ORERERBkVXElJAG5gYFhYcnt1ZkgGBlYAAAUFMTg4ODo3BTJrAFESEmZmMF5jBwoG
12−Q1paDUkKChxGHN3d3RwYRGZmHCgoKFMAACYmJi4YLhQ+FCIiIhU0FT0AKR4eHmVeBw04DRAsEAwu
13−DAc2BwoqCgAAPFdMDQAA0WAqKgwiDEgZGRkQRAckBxsTPDEwDBAQEDwAAEJGDAAAU0FBQEJCDLu7
14−u2IYGJoAABgYRjg4bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAALAALAAAAAB1ApoC
15−AAj+AGEJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuX
16−MGOelAegpk0AJFrSrLhTpYQ3AHoeDFpQqMCfQQHIXEh0olGBYkZtpGkTW56B0EYBfTMKCUEJEqja
17−7DpQDIAbBJsOJHF1qdu3cOOqVKtTKcWnEOnmlQALWk6Eep8C4Ou3YWC7JUlAg9VUL0K8vcRMRUwC
18−gFdoXBdD6+WE4A0kQqE5kSqwsuWBepFg8yq3tevXsPPKg4n3YW2HjnHPZrp7oODehoHDui2ysfDH
19−iKFi42iU6A20A5G84SsQrdE8iKdPR3181KPY4MP+NySBC4L4lHRJAI0MSwwJ0++B5nSvHqdAJPVv
20−LHb/U54YJzX99RR+QOnX3ntKidELANiMYlce2DB4FX9vHMdYTfIQeNZ+8dlHkFg9QSihQEQpyKCD
21−H9q0E4X+AfhGTir6ZhMskWGTU33Y8EWffFC5OB+CONX3V1BixVgfe7DgWFlB7621nmRMAjBdLwk1
22−Bw0SAEBZ1mKw5PHddQ9aNgp0jB0nQWfnpanmDTVNU56aI6lFghOLkbAcTVJh9xl28uCJBDQ2Jkkn
23−EqN0Js8bvWTYy3dmzfbUnFcWOhxXsznxmWhKHeooANAcmihrBhEFKaGGAtAVoH9xN1ymFa66GFH+
24−lv4JYEFE7eRphi/21ephJDqRR6fY1MlqnlnCkitmfZra5VlI8Fnms89CmuRy6jkKVEGLlkbntEwG
25−CwuKyK2VE3HfLhaapQKNuSxrjpkF50Sg9SnvvPTWa++9+Oar77789lsvPDcBsE0Tqb67kVpWDVSh
26−UMbRxKUEy23XV5YOFwRNrckZS93FYlRs1sNKjZLqDSRUnBBREnNsMsS0bvrtyDD6x+lRGWPsqkCZ
27−pSVcT4MZtCRN7M6Ws0AM70bU0UbPljDO8uQ4kAQ177a0scA5TWKVAQ8mVJECUbnqTZ/h3NYb30Hb
28−ssEQFZn12my37fbbcMct99xxo62RWlknq2r+mVsrhbfeRzmBDZsu68xdT33TGHDJGYc629+JG77T
29−gjfFHLmqtiKWFTZv3CAZr9CKcQOiC66q6uadd4yYcc+ynrdav5EYMHAIYx2dVljunGnZtWF3E5q5
30−5Wb3QfH6a/zxyCev/LwAB3xFEoUMnxHCuu9N5Myw/KSxQCrbZRaUNhOUMsV2XQzyy0U1fvb4qj/8
31−xtk7iey4+TTDn2njBJpNtF1N5Wp60QQhEABb97ikwQIbwrFa9qImEAQmRGKMsZ2MaESmdCmFBFCq
32−zShIs6xXWUh40gthStgEAHZYSksitIictvWIN4BmdUnzE6oEFalSQaVYjwDAVR41KEkJpRf+l5qV
33−piYFuOEUjESzGZUPTfWnQEmOVdYqIAVlxcDMKewvdtKf6aBFtr4s6IWq8p+dBog0xrRFVCx0YbWG
34−EyFslU1aLfRKyaa1GHDNMUW3QwtmDOSXa3ltiwF8Q1tw9p12qS+FiCxJoTyXyOkBpz5OkAwZk1Uf
35−smgobEI5UmUeMaD8eEUoSFjQlI4SIadlsnEAEsMlP4kToJDliaRkEHWIEkopSeCPSPwfYvIAoLNI
36−JpUEwcz7mgIxBqmnQjDsUi89N8lniRIWwIQklKSJyyRxUJokygmhbMm/I6otbH3RijFp5J4JFkR7
37−BJFU3rJXwUa6UySgemddxHPEhZBLnij+AVRDVEm097XmBtTBp0AHOrx7ukUeZXOIQQk6klFYqCBj
38−QgISbsBBuOiToRjNaHgWCieOarQjhVnIRGsCzriE5aMoTalKV8rSlrr0pTCNqUxnStOa2vSmOM2p
39−TnfK05769KdADapQh0rUohr1qEhNqlKXipARSOKpUI2qVKdK1apa9apYzapWocolgxwiGGANq1jH
40−StaymvWsaE2rWtca1oTE4BRwjatc50rXutr1rnjNq173CtcYJEQYSwisYAdL2MIa9rCITaxiF8vY
41−wAojIVuNrGQnS9mtAgMh0GCrZjfL2c6y9RAOYUQnRkva0pr2tKhNrWpXy9rWuna09Hj+6ALIQdva
42−2va2uM2tbnfL29769re0bUFCnsCE4hr3uMhNrnKXy9zmOve50C3uExKSi1hY97rYza52t8vd7nr3
43−u+ANr3VzkRBIvPa86E2vel17icesArjwja985/vbBYR2vfjNr35ZG1uEzJa+AA6wgHkrXIQQN7oI
44−TrCCF/zc6SKkuuKNsIQnTGHwkhch5t2vhjeM3/YeRB7vHbCIRwxg+zZEtBxOsYr5K1sSu/jFvi3w
45−QQ7M4Brb+MbMdfBBIFzhHvv4x9298EEyvOIiG7kTHjYIiGHM5CbX1sQMQfGRp8zh/h7kv07OMoll
46−bBAa4/jLYF6wjg3CYyCb+cwUFrL+QYhM5TbnN8lFCbGW5yxgKC/EDlPIs573zOc++/nPgA60oAdN
47−aD3zASF+cIOiF83oRjv60ZCOtKQnTelKK9oLCfFGNzbN6U57+tOgDrWoR03qUpt6095ISBSawepW
48−u/rVsI61rGdN61rb+tasjkJCzFDoXvv618Am9B4QwgdLG/vYyE62pf1wXzc7e71WNgiW6Uxt+XK5
49−IF4Os7a3vdwxF6TMaA63uLmr5oKw+dnobi2cPyTnaru7vs1Ot7xXG+2CTPvd+NbttQmSbW77m9ve
50−Jgi4x03wcZebIOeet8JJu27ftDvfELetnRUi5YVbvBP1Jsi9Ix7xfQ+k3/8O+Zf+Az6QgRf85GY+
51−+EASfnF5N5xoD+c4xCeekIq3fN4ZH8jGZY5vjwsE5CIPOoNJLhCTo/zoFVa5QFh+82e/fDgx5/m7
52−aY4QHgzg6ljPuta3zvWue/3rYA+72K/uDAYgpB5eSLva1872trv97XCPu9znTve0JyIh5uiC3vfO
53−9777/e+AD7zgB0/4wuvdHAlRBRAWz/jGO/7xkI+85CdP+cpbfvGqSEgrxs75znv+82LHAEIYMIG6
54−m/70qE893esR76bLO+cC2bnUq+1zWABd6LiPLtFhYXSk+168SocF013f5qcvefYzbz3xnw17WMge
55−+XOu/e1zT/0cU/f32E9zeZf+73L3Qj/fVD+Izbnf5uY///tOln7116/762f//eEN/vDJX2TjRx39
56−WQ6/QcpBj/77//8AGIACOIAEWIAGeIAI2H+lIAAIYQJp8IAQGIESOIEUWIEWeIEYmIEa+ICUkBDZ
57−8AUgGIIiOIIkWIImeIIomIIquIIgmA0JoQZtEIMyOIM0WIM2eIM4mIM6uIM8GINqkBB9kIBCOIRE
58−WIQImAwIIQDvsIFM2IRO+IQaaAIOUQlSUIVWeIVYmIVauIVc2IVe+IVgWIXUwIAHAQqrcIZomIZq
59−uIZs2IZu+IZwGIdyeIZGkBDXUAV4mId6uId82Id++IeAGIiCOIh4eA0JEQH+oZCIiriIjNiIjviI
60−kBiJkjiJlJiIEZAQNhCGmriJnNiJYJgJSWgBcziKpFiKpiiHoKB89Ddl5od/7qZ+7BeL1vdg8FeL
61−3iV/q+hs9ueK1aZ/BTF+uVhkrciLdAaLsniMx7V7vWeL8IeLwUhlu0iMc+aLBAGMz5hiwyiNWWaM
62−yIiMysiM4IhdzniNRhaN2uhk1DgQaBAJ7NiO7viO8BiP8jiP9FiP9niP7DgMZncQt+AJ/viPABmQ
63−AjmQBFmQBnmQCJmQ/lgMCREO4PCQEBmREjmRFFmRFnmRGJmRGvmQ4ZAQYPAKIBmSIjmSJFmSJnmS
64−KJmSKrmSIAkGCWEF+Bj+kzI5kzR5j8N2EAyQAAq5kzzZkz6ZkLegiuRYZS12juk3XN2YlN8YjuE4
65−jkOpYuZolDCWjgJhjU+pX9kolS/GjUkZi0vJlMzolFe5YVGplSRGlbBglWMJbUVpli7GlV25fl8J
66−lrUolmupX2XplgOGlmp5l+iVlXo5YHAZl9Q3l3T5fnbpl+uVl4FZYg6RCTUZmZI5mfZ4aAcxAz+Z
67−mZq5mQeZAAnxDWEQmqI5mqRZmqZ5mqiZmqq5mqwZmt+QECIACLI5m7RZm7Z5m7iZm7q5m7zZm7Ip
68−AglxAZQ5nMQpmTdpEHzAmcq5nJs5A0KpmOkFmI0JYINJmLhnmIeJfYn+CZ3oxZjTKV98yZ1Y2Zbf
69−SZ1IaZ3sh53Z6XvbKZ7s5X3lGWDh6Z5s6V/xGWDViZ4ip57reXTtSZ+r5Z336VvzCaB/SZ4DCl/5
70−qZ//xp/9eXL/aaCoJaAJultoeQ6QkKEauqEc2qEe+qEgGqIiOqIkmqF9sI8GwQvisKIs2qIu+qIw
71−GqMyOqM0WqM2uqKfkBDpMAY82qM++qNAGqRCOqREWqRGeqQ8mg4JoQKT0KRO+qRQGqVSOqVUWqVW
72−eqVY2qQqkBBQUKJe+qVgGqYk2gqjtwI3eqZomqZqaqO88JwSmlrSWaG9taAMCnDu96C/F6FvWloU
73−Kqe4VaB7ymL26af+wEWndaptDoqnBrd9gapu8EmoBOqmjUpacQqpuGWohwpmiaqo4aanjdqnlkoO
74−FyqmpFqqpiqiJ4oQKrqmrNqqrjqjOYoQcCAHtFqrtnqruJqrurqrvNqrvvqrtAoHCfEHv1Csxnqs
75−yJqsyrqszNqszvqs0Fqsf8Clp1qt1lqqZIqTZvqq3NqtrNqmJzapgnploTqn55mpQbepnHpmnhqo
76−oGqpgCqup1Wp5Rpc54quIaeu6wpk7bqn7wqp8SqvpUWv9Yqp+Gpj+rqvPtavb/qvhBqwAgtbCFqv
77−tmWwBzt0d6qwBMewEuqwfoqWHXAJIjuyJFuyJnuyKJuyKruyLNv+siOLQgRhDwswszRbszZ7szib
78−szq7szzbsz47szCQELTwBERbtEZ7tEibtEq7tEzbtE77tERLCwmhDLlQtVZ7tVibtVq7tVzbtV77
79−tWBbtcqQEHrgsmZ7tmibti1LAQghBj/7tnAbt3L7s/bAVHZ7t3ibt3q7t3zbt377t4AbuII7uIRb
80−uIZ7uIibuIq7uIzbuI77uJAbuZI7uZRbuZb7UhCUPf50HwJySIYRMFTCM6ALSDJSFYPkM2szG4Sy
81−Fa90ITZRUpcbu7KLESRQQRRFEEtCulBBQrB7NumTS78bvJp7uh+WHHukGaPDJU0hGu00u877vPt0
82−GrCAJYOUB9f+orsH1BVI4ATVZDjB6xh4YRRZpBBGAUQF8RzAuyzQu77sqxBWY71YkSN2ARmsQRzg
83−yz/HEb7Giz3hch/FQhBm4RVqgR3tW8AGnCTQIT9dw0nz67ncAhj5i79K1jixI0HYS0Dcgy4HvMHP
84−G8DGMk3W0cAIIUAnEzD7IzuVg70V3L8XfDQ30QvxxMEybLlOIAEQ0k+sdMIG0UK90FVDEcHpa054
85−hBX8W7zR8b9lcRogNMNMLLmPQFFYlDd4MUYMcb9BrMNDXBrLQb7JYb6eAR1L3MRi3LgXgw0wu0UD
86−gsQKYcVapMKI8RPEO8HB1DnI+wbK+1BjnMeMKzhG/DU2kSj+WXMyQOy6N+HHNRG6NzE1Fnwf4jQ0
87−bazHkBzJkjzJlFzJlnzJNEUCvbDJnIwkInFLnbzJAYXJpFzKpnzKqJzKqrzKrNzKrvzKsBzLsjzL
88−tFzLtnzLGhHKurzLvNzLvvzLwBzMwuzLo8xSCjLMyJzMyrzMy3zGKnXMzBzN0jzNyXxTDELN2JzN
89−2uwhLkUT3KvN4BzOyAwgePxR3izO6JzOvNxGNsXNLuXOLEUT5axR8gxT9fxSuVtT8MxS+6xS99zN
90−YZxR/9xS+UxT/axSB41SAx3PAY1RC71SBT1T3CwMjFDRFn3RGJ3RGr3RHN3RHv3RIG3RXZXQ5qwW
91−OLALKJ3+0iq90izd0i790jAd0zI90yiNAzIyzwKtFiG90zzd0z4d0h2wFg7cUtzcl5MabSRNz2ox
92−fRd7Yzr20P6sFvMnrkkW0TJV1BGLWkhdT1HdG0zd1DX21A3NUP881ZNa1UPNz6li1I261fa81GDt
93−b2KN0w4t1Vl9WmhtzWt916bl1i/1z18d1wo212/dG2b9qUKt1+pYnIzd2Paoj6jB1Sn1z2zQmpZ9
94−2Zid2azJBjdd2AMBk44d2qLNjsdp1TGF1XxNqb2R1Dnt1YK9bYT913ad2qOV1+2817SNcast2QoN
95−168dZrEN0Iad20iW2Lc9EGwdqH4t3B/328Dd2bI93Ln+bdv6nCpU6InYnd3a3YVjGNmeLRAfyILi
96−Pd7kXd4q6IL7Q9dkrRaZuN3u/d7YDYqlkdYrxc38Z4T4nd/6XYAL6N3RPRBaQIgCPuAEXuCDqAXQ
97−zdwCEYT73eAOjt9ION+KXZXEvdwtBdjOrakJfuGzTdvUbdC4TdsWztCuneE4FtwcLt0ebtzVjdwV
98−vtvfbXsmfuIbTuIrR9wfLtGpgqHX2uM+jqooytp13RuzCqxGfuRInuS+KqzpHeNd+uNQHuUZmq1J
99−Qt8IHeKpPeIrheEzjrA1vuUdnto5ftVYztda3tXN3eVh/eVovnQ4zuIg7uK5feaT7dtqLmZsXucq
100−Lub+cK7jci7iMP7fP3fnGNvkgi58by7hxy0QeBZsjv7okC5olskYvF3SvaFpp5bpmr7pnF5qqWbo
101−Cg4LvBbppF7qjl7aVp5SqA3o/h3qgU3oyIXiNu7m093nZP7nWR7org7rg53nvb3nfD3mp13md03n
102−v57mvN5+oJ7iN17rit7iFD7nus7sg57syr4q6k1QZZ3oVT7hsMADZBDu4j7u5F7u5n7u6J7u6r7u
103−7B7uZhDkla7UvZF3hlfv9n7v+E54iLfssw4Li9DuAB/wAj/w7C56zx7n0c7q2RTjr27tsg7mwH7X
104−wg5Tq57rrU7tMm7t0PXwbY7ozt7ti56WL37x/d7+8MnO8Xre7Ct+8H4uENcN3zAf89xNhpQe4+Ft
105−3jif8zp/guiN7THe3jIf9EIvBfIN8tAOC/f94Eq/9PxN80K+3r1xhwY+9VRf9YBoiPwO8QPB4Ezf
106−9V5PDxFu9Agv8tJO8lpf7RrvXCh/7LS+8mLf8mSv8DV/6CbP62tv6SrP5yx/6wlv8QtP92nfYL6O
107−922v92/P998Oeoq/+IwPdmVn9h1vDt8w+ZRf+ZZ/+Zif+Zq/+Zzf+Z4/+fvu84e+eY1f+qav+AZ/
108−+MOO62Y+7SUf+Go/+PKe98Fu66vf960P+SmP9rCvXHc/+4Vf+3t/+3Hv93O/673fbbLf2rQv8bb+
109−T/HEntXGTvgZn/zJ9fvMH/zOP/zQPxCS8NPgH/7i/9Fa8vTarhY/QNPqv/7s3/4z/QPLP+QDQQHj
110−X//2L/7P/1LmT1D7L1BQvfsAAUvgQIIFDR5EmFDhQoYNEcoDIM/hRIoVLV4USAIARo4dPXYEQOLj
111−SJIlQ5ZEmbIiRIkqXb48yBLmzJkyad5MqRHnTpgnef4EKRLo0JURiR51aBPp0odGmT4tqBPqVIQA
112−epHAmlXrVq5dvX4FG1bs2LA+qT6FOIrsWrZt3b7FOsrpWaZp4d7Fm3dtr410/QIAHFjwYMKFDR9G
113−nFjxYsZC/SKFyFjyZMqVLQ9u+fho5MudPX/+pqxZ9GjSpU2fRp1a9WrWrV2/hh1b9mzatW3fxp1b
114−927evX3/Bh5c+HDixY0fR55c+XLmzZ0/hx5d+nTq1a1fx55d+3buFN9IICjhDUEkQiFyJNwL1nlY
115−6df3JcgZALY8Cgc7yQxt1Jv5JJC8J+yGwoSSwAnAnABPoPkKkiuz7h6EMEKKSLiBoBtGIUgq9ggS
116−Q0AAbvivKgcFYm+ugTY8ET7x6hNRICT2+w+aN0aBBhYxnHCiIBMVdHAUJ1jMwwkM2wNADIL4G1FC
117−JZdUUgwAQkQCABZhyYM/EuEbCJtRkEDCCfVaLKjEJFG8MkNsEporSol6qXAgJLBxrL0k55L+AJsQ
118−XfyuPSccC3JHJv8EVDtsEqxyIGgG7YtMWHoJUdGB/BTTIEVRhAaAGg9K8w0uiyzokRwfnTMzJx4x
119−iIQcAXjkTIFGecTPQF+FFToKV3Wsl0fYc3QgElTFdMy+IMWyTIJcldPFUeqbFEs/5wJWTmyMhOWN
120−SpOMtVprj3PyvzegnRXXYN0k4Q1qFRxMWMJESlbHcd1LF1SDmPVVTqyoPHXca+/FtzcE81BVHk3f
121−E7bTN3q5FMz4fo03TCwrLVjdgVoVI0poH/6Ux3dFJbXTesU4k9Vi8wU55N0euVAojTBTdFd73VXY
122−4pZfzojXi4dds00X4aR5ZoHEuxMWJPL+NOpZaT8WuWijY6v0WUkTDVbihpolOsWlB1oRzcweGQ8W
123−GWm0EUeHv171R4GCHNIoUz8l9mi11x7NCZmlBjCwXuQDzOqpiSyXbvXko88+wZyYWD/+4Ow5apep
124−NhCAUd11MuO02YY8csknp7xyyy/HPPNYSeilc897mRgmCT73PEHNT0c9ddVXZ71111+HPXbZZ6e9
125−dttvxz133XeHXB7ffwc+eOGHJ754449HPnnlC08OCeWfhz566acXnnnkoKE+e+23n7460L4HP/zA
126−ViaObvHPR38x8oc7OX333y/M+1G4p7/++ltdXziIbrW/f/+hx59zNPI/AhaweHLxXpz+lKOU5TBw
127−gY8jjlSaI0HpmKWBEByOA5OjQeRQcDkehI4FH5i/4HDwOCY0DgiTo0LnmEUQC4BhDGU4QxrW0IY3
128−xGEOdbhDGNYgRSQEjlJQkQsiFtGIR0RiEpW4RCY20YlPJCIqfihA+MgDBjzEYha1uMUdCkJX33qO
129−WRZADjKW0YxnRGMa1bhGNrbRjW8kYwum2Byl5CIWd8RjHvW4Rz720Y9/BGQgBXnHXMyRORKUxyrg
130−uEhGNtKRb1zAFxM4kDE+0pKXxCQb5XglIP6mjoMEZShFOUpBFpKTVDyRIjO5SlZaMpIZAWMLHVPJ
131−VtbSlpo05AUzY0dS9tKXv/yjKd/+00nfIFKVt0RmMsnxSliwsDlmMUEapDlNalbTmtfEZja1uU1u
132−dlOalMjlCAeihjaU05znRGc61blOdrbTne+EZznVEM4VwkcA7/BmPvW5T3520wSSpI5ZQLEKghbU
133−oAdFaEIVulCGNtShDyWoEeiJHKVEIBQXxWhGNbpRjnbUox8FaUhFetEITPQ4EhSABSC6Upa21KUP
134−BQVApyNGZdbUlpscpnM+CUye9rSXwkRhcYxpU6KukpnOZA5Ni7rUR+I0qOWbCy99OlWqBtOkKazi
135−MZm6VUjKtIKz5GpY3ehUDOovqlVFa1rxCNSyBmeoYoVrGo8ay2c65haewGte9br+V7721a9/BWxg
136−BTtYvBbjqsVRChhesVjGNtaxj4VsZCU7WcpW1rKLBcNhIwgfBiSAsJ8FbWhFO9hbeDU6So1rauOo
137−2QyeVa2vnSpbidmbt6o2tXOdpEBoaVu4knW2vNkpbIX7S9mikkRa5W1YcRtQsCa3t6w16y6HO92f
138−QtetWXUuXJc70+Zml6u+1alrqTveQRZ3gtj1Lle3+9WBzGC074VvfAObAOsGcS4iAER+9btf/vbX
139−v/8FcIAFPGAC51cE9f2NBPkgXwY3OL4zMG0Iu5vepYKXjuIlb4b9aN5DopfCS13vaSf8YZtamDnB
140−1XCK9cjhD3qYxDYNsYQp+eL+oppYlwORqop1HAsWK6e2NFZmjMM4YiDf0sbiFEiOd5ziHtczlUWu
141−qZBlORBeiMPKV8ZylrW8ZS532ctfBnOYrfwJBPtGKSqYRJrVvGY2t9nNb4ZznOU8ZzqnWQVlpi1n
142−VyBmPvfZz38OMy8iPOQZQzmZR94ghpes4SZ30MWGrqWU61poSN8Uz8BV9KLJ2+iTPrrSRh30lHX7
143−aUuf8sLS1TSTL72bH5M6k5JOqmOqDGha19rWXiazqU88lz/8wte/BnawhT1sYhfb2MdGdrJ9/YdV
144−60aCDNjzraU9bVoLGpa5hcVuXY1JRFM006meLqex+uRtg/razKV0uS/Z7RP+fhvcwhW3UD2t7kbC
145−ejmopXdTm50bFL873PvGTavzzUh7KwffA2cku43Tb3/DG+C3ETjCu3pu7rbXwRfHuGDpq+sbCyQe
146−lwV5yEU+csvG4+G2UXDGVb5yvUKY4uwdtcQbqXDEurvhaY33Zskt80UWPDkH53kbaQ5VVN98uDln
147−37yDrkafIwfoS1fj0FtbdKPDFunCiTjU0dj04zxd62eUenRxXPWjn7w2Wf96GbluHLNswhZvh3vc
148−5T53utfd7nfHe971/nbDchzJsFAFEAQ/eMIX3vCHR3ziFb94xjde8KowO22ejYe9V97yl8e83jcR
149−6knHPO1Rj/xsGE72ql7+/bo7//zWOR/rdKfejGEvoc1J31PTAwftn197cbyeetjbl+qzL33oZXP7
150−tOeeOGJ8afKVv/yGStTvic6MNEY6fepX3/oilYbwY4NIlTLf+99PvvGHYxYxGND89tM+bJRyfvZz
151−L/2vkaDz2j9/6U0MqfdWIPTD+9vdPDXpz7k/g8s/b+M/3fA/sTsvAKQr1ju1/XPABDSumYKfCZzA
152−AuQ3CsRA97HAgMvADhSf6tCLEBTBEcyKhlEOaCDBFFRBtzDBDVrBF4TBr+CdGaTBGrTBG8TBHNTB
153−HeTBHvTBHwTCIBTCISTCIjTCI0TCJFTCJeSOPKGarHER81jAhWCXXxn+jL35Fr6ZkoRwEpuJGvMJ
154−CfNBl/tgEas4GAvhFHK5QryRGyZ0Q9OYlYG4kAxhGoPoEMAAEbt5Gag5w515gy08iJO5E2KZC0dB
155−kXD5D8DIGIBxEcDIPxNpqzeUxKfIlkackiqpw4LQEi7xEj3sQz6Em5hZiO9wQsNhGUaEGYuxin9B
156−xVRJFZ05nEmURc0YlLGBwkORgEwkCEYJGFiEG1DsRYZJiDx4klGwGULMDEMMFkuREydokw3Zk0oJ
157−naiJxFm0xp+IQ7UYCFvxFoXYFU/8xYTpw1M0CGOkkieJxZzpxVBsJseRBydBlr6QRljYE7AxxWvE
158−R6SoxG3JiArpxoP+KA9xQZNyYcRzQUV2vEeB+EOFdEeDMR+JoBsnNBtNYQ9PEQissUeDzMeNHIp9
159−6Zd/+UeBIRj7SBhgPEhhPAhi/Jt0PEVlJIhRUBWnEBL2SJzA2EJI3ECO1EmOIBltbCbC8J1vURmG
160−gBqTPMS3eckhOccaQUaE7MVIsZGQ2AiUpEelpMac3MmspIikmUZGJBOnIcqSFMdQrBqAXMiBeANS
161−acp1fEqE+aKNMBWCwEhyrEattEuOcJuYYBrBmBvCAEdz8Uu9iZv5AMTwgMKwYcO6ackqJIhKqQ8T
162−MRBYwIZF1BopoUu/vMvM1MzN5MzO9Ewe5BzSAZ2bGB3RNJ3PRM3+1FTN1WTN1nTN14TN2JTN2aTN
163−2jwd0cTN3NTN3eTN3vTN3/zNNZgG4CTO4jTO4yROJVgDJUDO5nTO5wRO5WRO6KTO6qRO6bTO7NTO
164−4pyGNdjO7wRP3hwWbAjP8jRPAGAH81TP7awGAKiG9YTP6mzP94zP+mzO+bTP/DROdrAK/fTP38QG
165−ZRlApzMG53AEAHAEA0VQBU3Q5jCGKdS5RxnQrivQ5jjQBmWOC2VQ53hQBRyWCWW7Cs3QBbVQEh1R
166−DF2ODo3A9nCMEZCEF4XRGJXRGaXRGrXRG8XRHNVRGC0YABDRQwiGIBXSISXSIjXSI0XSJFXSJWVS
167−IR0IDRWIGDj+hSml0iq10ivF0izV0i3l0i710imNgSc1UWFYgjI10zNF0zRV0zVl0zZ10zeF0zIV
168−BjHF0B210zvF0zzdUWAYCBXVmiYF1EAV1EFt0kPwKrNghE5Q1EVl1EZ11EeF1EiV1Eml1EpVVHrI
169−DB9tPddbLYGAUlh4AiYQ1VEl1VI11VNF1VRV1VVl1VYV1Seg07EDPpyLVYGABEvF1VzV1V2t1Evo
170−U6VLvfVCVF4l1mI11knF1EcRUW3jVHLAqU8NVVeV1mml1mplVVj1VBNVsln1KWH61Fs91nAVV2L1
171−VYHw00Rq1jMSVsdI1HF113dF1kxd1nR9vVoFVWvF13zV11X+xVZY+NRt5Vae8lYTBVd4NdiD7YRy
172−hYVzRa5mXdeBaFeEldhxTVYFmVd67VR/NdFo3deO9Vhr7dd/Ddjgy1YMLdiJRdliVViGxVgyeliB
173−sIMpkNmZpdmatdmbxdmc1dmd5dmenVk+UNaB8AM3INqiNdqjRdqkVdqlZdqmddqnJVovsFdv6Iaq
174−tdqrxdqs1dqt5dqu9dqvBduq9QZ7jYJmMNuzRdu0Vdu1Zdu2ddu3hdu4NdsosFcz8Nm7xdu81due
175−3YNfHQg+gNrAFdzBJVyo9YNDZdeUVVxirdj2uFiMfdaN/djJpdxrtVeAHVlfGliTXdzOzdWVBVbc
176−Q1yI9dz+0qXUxtVUz6PXyMVQjq3c14XdkNXWzI0tez1Z08VdRgVd1EvXl4WFiM3d4O0E1H3c1bVX
177−14Xd5P1Y2cVQzKXdUdrcgbhd4TXd3T2ull2m0RUI4KVe0yXeTeVU1h0I5FXe8s1X5pXV5wWm6LXV
178−7g1e612PhuVU3+WBAbDf+8Xf/NXf/eXf/vXf/wXgALZfZ2CAoBWIevCCBFbgBWbgBnbgB4bgCJbg
179−CabgBE4EezWHLtDgDebgDvbgDwbhEBbhESbhEtZgc7DXwHO8FWbhFnZhxoO8kh2IVhDgGrbhG8bh
180−AMYAvxUIBpiACgbiIBbiIabgetDe33Xf3P1e1U1X8RX+CPI13yieVvRNMvUVWNtNYtyFX3RtWd/l
181−3ixW3CXONux14nuV4jOmViqGBee14vLCYjD23C2WX9fzYjj2XDFm1vA9XjTmY1dVYzZu40BiX1iY
182−XjuWWDnGXt8tB3pg5EZ25EeG5EiW5Emm5Eq25Etm5FIQAAOGhWjqp08G5VDWJnCSYYHIhi9A5VRW
183−5VVm5VZ25VeG5ViW5VlG5WywV3KKp1zW5V3m5Xeap1KGhT7A5GEm5mI25ktOBh6GhXsS5WZ2ZlD+
184−p5czi0qQgmq25mvG5mzW5m3m5m725m8G52qmhk222IEYKPBD53RuPnu9hipw53eG53iW53mm53q2
185−53v+xud8dudrsFeLur5/BuiA/qiSAmYbCOeDRuiEVmhwzgRlTil1huiILqiYkubENeQwllfwdb0y
186−huI+9uhR/eNA1tw3vmiUReQuPuIvLmmDxWMy3uOPhulSDWmRJqVBLuSVfteTxtg6xmmJbemW5eiY
187−FupXvVyarmmS7mmD1Wl6pV8ycOqnhuqoluqppuqqtuqrxuqsdmozKOByFgi3y7ywFuuxvru+01gM
188−NYdvUOu1Zuu2duu3huu4luu5puu6VmsUBuZ1CIC95uu+9uu/BuzAFuzBJuzCNuy9Xgd7XQStZuzG
189−duzHzuodNlfOojyytuzLDuvNq2jSTeqD/WnIfen+oYbpmTbqULLpzj7Ype7dlEZtls5oJm7WoBbt
190−0S7q0jZtpG5tcVVth2Xt3HbXzzZeYO7o2Y5i0rbtUsJt3zbW3Z7f3lbucAXuJg5t4uZj4z5uQDrt
191−5w5X5qbjI86ESADv8Bbv8Sbv8jbv80bv9Fbv9Q5voPVqWHAvlpPvi9u4sx6IbwiD/Nbv/ebv/vbv
192−/wbwABfwASfw/P4Ge8WvAlPwBWfwBh+wAwPmC2DvCafwCrfw9e7byf7b+ebwBnO5n/xQztZuY43u
193−2J5u6j5j677uDUvuEddV7g5W53ZxXi1xPRZuFO9jFV9xPsruGedVGBfdzd5eH2fc1x5joD5xHDf+
194−Xx3f8RVrcSKnVCAvPhmHckut8Y1OciVXXiZv8rV68iqPVCn/Ot89B0gw8zNH8zRX8zVn8zZ38zeH
195−8zg38z7oaselMmrD8zwHs1yzb4FIhzEA9EAX9EEn9EI39ENH9ERX9EUH9HSwVzSrs0iX9Emn9Dm7
196−M2CGAjnX9E3n9E6P81ZQZmjT81En9SuzNhCXUBEH80q9ct7Lci2P3dru8j7q8VWPcmXm4p2mcluP
197−1Fb/PNmG9SWX9Vnfo1rn9TDH9TmOcSFH4mOPV07OYyy/8WAXdmAG5CY3dmd3VDHXOkU+5m8H93Cv
198−ZE3mZALQgXNH93RX93Vn93Z393eH93iX93P+NwB71QIuwPd81/d95/d+9/d/B/iAF/iBx3ctsFch
199−oIKEV/iFZ/iGd/iHh/iIl/iJp/iEFwJ7FWZx1/iN//Zk1nCBEAAamPeRJ/mSN3l5J4AjpuaFZvmW
200−d/luHmdOPmeJpnnwc74+h4V21ued5/me93l85mdg9meBJvqivz6CxnmDfvmlZ3qWb+iPX+buq/mp
201−Xz6KRnUFsWhth1RfTztgp/bk5fJZz3atX1RuhzqeJntH5fqv8/qvf92w7/KxT3uzXzq0T3tGXXut
202−a3u3p1y4x/Yv13q6Dzrf7YBLMPzDR/zEV/zFZ/zGd/zHh/zIP/yJSV1YsAcuwvzM1/wcggH+e6WF
203−JwD90Bf90Sf90jf900f91Ff91Qd9WrBXZYCi2Jf92af9J1IGe9UDydf93ef93o98ClBmMdj84Sd+
204−zbeHI04qEV2OT11+E21+FFUOP+2wEG8h5VcO5r9+589+6E8O6W8x6n8m608O7B9/7S9/7kcO7/cx
205−ZbmKGHT/F+yP95f/EewBAOiB+cd/vaj/+8///n+L/QcIEgIHEixo8CDChAoXMmyoEBsAhxInUqxo
206−cWAvALA2wgLg8SPIkCJHkixp8iTKlCpXsmzp8iXMmDJn0qxp8ybOnDp38uzpUyfHoEKHEi1q9CjS
207−pEqXMm3q9CnUqFKnUq1q9SrWrFq3cu3+6vUr2LBix5Ita/Ys2rRq17Jt6/Yt3Lhy59Kta/cu3rx6
208−9/Lt6/cv4MCCBxMubPgw4sSKFzNu7Pgx5MiSJ1OubPky5syaN3Pu7Pkz6NCiR5Mubfo06tSqV7Nu
209−7fo17NiyyyKRAKsXUtxGe/Ui4URMbjG6gw6/Pfs48uSbSeDGDc1Jr99Ciw9trpQ6x+LYlXPv7t3v
210−I9t5SMAab11CHljQqPfmDc34bWjYSMyH5lu6QNuw6NuHJcGJE7bhlgd02Gy03XcJKrigWtDcAMso
211−0CBhXXHjTScPLPKMAh+FsIjx4HO3AZedcU4gAQs2E8JiIhJvMPgijDGWZd0N71nn4Q3+5E1Hom4d
212−StAbCRqxF9989MlzI4IyKrkkk009MoqAvL3xY4ajnFgdhhqu6GGHYpBXG3w8wvdIiUi02CSaaapZ
213−FDQAXHmgcaNA15tQAvF2opwCGafbfen1CCdu/zlB3oDQPRjmmokquiijjTr6aFn2EfQepJVaeimm
214−mWq6KaedevopqKGKOiqppZp6KqqpqspWHhtu5ARH+iU51Bu83Vgrb8AVh2svb2bXC67A3aejrQFC
215−5QSlEpAJC5izTmergLfZSihxvA1KFK7S7QcgecIByxtzuIoHnRN+ugqhs0ORoJ+DscJ53bTw8Spc
216−tdHpGJS3uG407IHWjtgUEgZuNMr+iOkhitS8Pca7q62+clTrtfty65+UQH7bi2383nbuKOnWye6h
217−/r2blK0Y71kyosXey1G+vJVHrsHF/stUqxzBulHMTPEqL7SI8urwRhDrSGB06f34LXMXCzvxxhx1
218−TJXAYrgqj0aI3qffjiQerN1GWhI13LobSUDtq1A9smyN+9640XPRzTwyoFmPDGV1G6kYtn/3ct31
219−DSciccORAqPoMb6Hhtd11cXdACDWWmu999yNE8cR3mPD1+5TN4x4sxiJByUPuW+nDPfoVX5d9n76
220−WQ432KoTKjg2hLNsuH7Mwb24sXLHPbnjdJ+eYd/MAn55yE1F7WrncIPudt2P667+m9dZwypP8H9j
221−yDrlrt8Gu+xFjZJe2H//6TTqz5MOOYLDcT3czU6FGDDOtheHnnrYDTmk45jzjgTZI0MeIUeg0bHv
222−ledpTknRit4jvpF5aSOCc9y7IBcm/cltfWwrHlMsVzN0wY0EwKEg9rbGu4NFMISlG10vCNiq7jnw
223−RMjykO3C1EAUNU9MI5wgBrUGQLZtSDcgXAoB8WbA4nhQPTncG/789zvc7FA950Lf5FKYnhVSpWYm
224−2g+9SKgiWvEmWrDY2QnTB8HmWEtyTEGWhVS0tqBY6FkuO1kXT0hCXL0BQ1B0HHt6ITUIHekp60LC
225−zTw4vqD8sGS6Cpqt5ChG7Nn+ChuiUwr8SJCeR+RhkGxcGSLppLA43lEoEMOGjUbYyT3tcRR9dMof
226−b9Y3S16wOomEoyZvuMj78caRULHiiSjJyvhx0WS6mVcYsRUdUCZxlM0p5SmnAsoHyYNsxeEfCYBW
227−uiSGaZEorMrZCAaLtK0RR5g8nwjzd0S7wcqYTqOUE3EDq3I+5UPKypAzg4KEUViphiUcYwBzqEQb
228−TkVzsPobh4SioW9O03yke9eHgonHKG6JnU5xJ5lIYEe4zbOeutuTQY1YFN00UYAkfMoyhRfQz42C
229−oEjM6HZ086GOPlGUDF3nR51CT9scrVaI0txueEdN6J1LbpXrn1QcdDNbTan+OBqSpgh36jQzqi91
230−YtPbCKnnN8DhhgQljSlSnJC2mq5tQui8qCX/Z8aR/RSrGaQnl76Vxafm1Hmy7FpPtQbQspqwrFW9
231−KgtflbakvaF/Xt3ojpQ6sLHCR6rCmyhVZprWWq01b229Jz5N1zzrVW94ddXeXYEalc75apO9eAQY
232−DQrMnf0MsJRjWl6JkqPATktO4LInLAkFLZUJM47bipgJX1Y047QplE95RPvexSv6vPKGPMtVyZJm
233−r8fellhWeYPBIjit2L3WoMn9oq3EUNpe6lFiuJWjxpwDAN86BbhZ45UEqGs/1iYyubQ1rW7LddB2
234−ukmn0FLvN/eGXuy6bLv+nsxufKMLXtSqZ7xmXRWCE5ymsQ2EsE5pJkHsIqmBfDUqExZIhQnD4PxY
235−ZcN4o8uFSZDhp4R4xIIpyPWogmK7QHggVmmxnhQs4xnTuMY2vjGOc6zjHfO4xz7+MZCDLOQhE7nI
236−Rj4yp6YUFAm4iCP8Q5xURIIbqm1Eyhmq2udAgg0BD4XKVGscAORBNZGQx8pj/oh8O5JiTzbZyaN4
237−AwD6eqWRVBkkafvdRm7Q0zbN7F5hjsqZP3LlOoekymu+8ke2fBQqd8SoGhkJbujcES0bjNFDuQEA
238−3nYkj+AU0SDJEqWNEiSRiDnUSMYLCYqn56AECcpC+RCnkarmLlftzwL+xTJHLM1kLmf5ym94k60N
239−HZRg5xrXJPj1rIeSB49EF5BpE4NWhT0UW88T2a9eWR7aDItHPLDV0nYznLVFFEsX+9vDPrSuoWsU
240−RntkWYPmCLGJDe8UH/tE5HayR1bWOTLxD9n3drV/1L1oXFs6SLI+tVs4azcARDfbVfs3NqwEyCTJ
241−+90V/ze56bNujVCNTuaO96HfPe9kC0XPq97XAzv3noqT/DbffMShBb6ie8kDziMPipze82akYrzW
242−IW+5yPfzwFtXGVhXIjfIiZL0f28bG9wmzsqMxfSMD53Wvb45wuuCDf1kO4BbfziuD3T0sJ/b6kAP
243−OsALbGIvZzrTH1/+88XDbuCKI4HhTLaZu7t2IpYTO72whZCr6j6igD0Cy/KWKNaJrni+oxvXvS0K
244−u0F3KKTD/efxBg7TB8Xnhc9MDO+ZuuMNvPGrV9nEWXdLqgemN5iD/SgaL0rczZ322bN80FSOYdIT
245−n3YSLKvid6+7wWrPeNLzUNlN/g/lJGr4nyNu7WSPvNIbL5TaR75z6aF82adN76mRffMRYzraac/8
246−tBecoKd/i8LfMKLUMxr8/R6/SFxN5vDfm/oc10jAbJN7Qn+EPIGOs35U3Gpt06EIX0joBrHdGyVh
247−S3rcwLKAjsjVHpPl3a19msUdoOzVH/NBX71hH7xh4KSBhI78m3n+bVuTgd//tV72QR7BiYSDnR9b
248−BEgeCEzN2ZsKCgVo9YLpnR30KR7xPd643V/X/Nr+8SCujYLAyFvdhYQLUaAEYMjwxcrQ6dN+WImB
249−tQio6V6GYAM2jB/9+Vz0+aDasaC0OYEp4VoRYp0EGNi/OUFIpMfm5ZptgB4hiR4ZlpvdvBkM0sUj
250−6JmOjNqn/ZuRJEXsGaHZodzoWVqOFGEhyt+h+d3CZcwDAd/ZtZzH2Q0VahfyeVr/AV3NUWAQml0U
251−4iEi3qGtdY63vV0Yjty9AeGKuMolbpP/kV3Qvd7okWL47WFbtIktKd69CZ5SFGIjkuKuJSKWtQgj
252−hhy59WB2rMz+DTyIs73Hc9xMFFabr0iAg3EhKFqavDkBKIbi4lme9ImNzIkivXnEClbi0oWdbwQF
253−aCHOI+TSG3weLaYbr4mhpc0TFeriWjhB1b3b//VCChqFMMZfQHKiohmjOzKiQYZeeogEA7hdrNRX
254−tcWZRY0EFNpZhQVPUQRJhnFjoZHaHV4dRoagoAVaQprimrlhOpYksc0HJ0aE09VhpbkhAHRaCs5i
255−ot0jPoYER/IjUAalUA4lURYlYCiXIYXF0ZSMyXTHUpbMC16FtzCl+SHGU/aMUWalVm4lV3alV34l
256−WIalWI4lWZalWZ4lWqalcvwEW/qEF2JGCralXNLEW14GIM7+JV7ORGoAAJBchF/+JWA2xCjUnmZQ
257−TUkFJmImJmIOZl1aRpAoJmRGZkVkxF5WZWZQTWNWBmaKxmaGRiqCxmeWRkRwJmFeZmnC5WnaJS1y
258−RmiSxmiGRmeCRmx+xmx6Rmt2xm2KxmvCQgcwgm/+JnAGp3AOJ3EWp3EeJ3Imp29SQLFlJmXE5g/s
259−gnROJ3VWp3VeJ3Zmp3ZuJ3d2p3T+QHOKRiqKgXKWp3meJ3oqZwdQzmqGxm5eQifEp3zOJ33Wp33e
260−J37mp37uJ3/GJySEJ2wG2xMwAYEWqIEeKIImqIIuKIM2qIM+KIE+AYCCJpbJAz30J4ZmqIZuKH9e
261−AntWJkf+wCeHjiiJlmh+/ifiOOdkxOaAQqiLviiMxqiDSmiKimeFXqiJ5qiOjqiH7kt7gsZ77qiQ
262−Dul+ouiVqahksKiMLimTNmmD0uiR2miu4SiRVqmVdkKP7sePfkaQXqmXCqmR1mZnKKmTlqmZLimU
263−iilr3uiXtmmOZmluuue9WMMg1Kmd3ime5qme7imf9qmf/img1qkCTChtBpsPvACiJqqiLiqjNqqj
264−PiqkRqqkTiqi+gCh2iaWMYACBCqndqqnfiqgWsOHosZuLgA5nCqqpqqqriqrtqqrviqsxqqsnmoL
265−XOqYBlsuxIKu7iqv9qqv/iqwBquwDiuxFquu5oKtrmn+rq3CrDarsz4rtMrqAozqaZRqtF4rtmYr
266−rNZqjQZoiuWqsYaruI4ruRIrsnYrhS6rtq4ru2LrtPooiG6EqbYrvdbrtibrZsQmuJYrv/arvwbr
267−uUapZ1Yos9qrwR7sqb6rlsYrLPjCKjwsxEasxE4sxVasxV4sxmasxj6sEeBrYQYbKYSCyI4syZas
268−yZ4syqasyq4sy7asyJKCx2ZGKgqABWyszd4szuasxvoCtZrGbiKCFASt0A4t0Rat0R4t0iat0i4t
269−0watDcQsaqZYNnwB1Vat1V4t1mat1m4t13at134t1WYD1KomRwgANTQt2qat2q4t0yJCz4rmvYio
270−m87+7YaGaWpaBpmeqd7uLYOm6d1WRipaKN0ObobC6ZZ6RpcSruKe6NjirYDyLeRGboH6LZJGRuBS
271−6eJmLn0aLsPKreZ+bifYbeVCRt5KrumaKeVKaddgLuhmLueS6r3IAgLMLu3Wru3eLu7mru7uLu/2
272−ru/O7gQ0rmYGWx0EgfEeL/Imr/IuL/M2r/M+L/RGr/HWgfBSRioywO9mr/ZuL/f+riy8rWvey7wi
273−LPm2K7cKrGzi6r+uL/v2a8Cq6XIQbPnO77oqbJwCqfjSr/5e6/nC78d+a/sGsACba/VORuAW7P4m
274−8Kza7+F2hrUqMATfK7oWKgAPsAVf8LEWsGQccAT+d3CrMjDDjq8HjzA59O/fPqf6YrAKB/D7nrAB
275−yy8JkzAIwy5HyG733jAO5/DuBu8Ee0ZsFq/0BrEQDzERQy/19jBuZqoOLzET5/D3wisNb4Tntu7i
276−ii5ppliLnq4WN2nqDuyUUvHnvm61xi0Ya64VeytHZPEWrzGMdnG6rm4Zuy74jkbixvHgnnH6YjEb
277−7/GLuvFnXK4dK64Y++y9AC3bHjIiJ3LSPi0Sc0ZsTi3YRrIkTzIle63YNnL8lu3ZKjInd/Ihuy0U
278−jzFHOKzOlrIpn/LFdiwm/y9HhKzLvjIsx7IssyzMrrLMYhnNorIu77Ip82woEzJHiHAMR7AJj+7+
279−Y+jrCifz+rawMTsGBw+zB8+wKMsrNHtwMV8xR+yrMm/zuDKz6mYIAlezAkszMFOzOEPwNaPxRmgz
280−N7czAdsyZjzzOScwOcMtR0QDJ+SzPu8zP/ezP/8zQAe0QA80QedzImhwZMTmoVIqQze0Qz+0pFoq
281−PJPtRjAALxQ0Rme0Rm80QUfDHOsmGQfyHSM06T4uH5/0k5L0YwCySNPtINuzFLc03eIxBacxSt+0
282−gvoxpn6xTLvpS4dviPa0m9K0D5s0Th91hKq0M7OpUH/pT9NxSDf1lRL1reoxUiO1TicxT0u1lT41
283−SHOEOmCBWI81WZe1WZ81Wqe1Wq81W7e1WO/+gFI3xg/PAl3XtV3fNV7ntV7vNV/3tV//NV0fMfr+
284−MZbxgVsfNmIntmK7tTp8tJwG8zwrcDrncTa7s2W/82DvdNeEc2TPbz0DtTl3Nv1Odk2v82WfNrB6
285−sxdvtmjr72dDNWS39vySdlFXMGrfdgZPtGPCsGyT72t/dWj39sHSdlVXNm7jtmq/MTgLt287Nv5y
286−hDXkgHRPN3VXt3VfN3Znt3ZvN3d3t3RjQlwzRmzqQgOUt3mfN3qnt3qvN3u3t3u/N3yXty6E92Jc
287−r3ffN37nt357t6j+MkzDwhRzNZjSt2KU7lWjdFYrKxwLeJV69WPHNIMTKVU7slEfOIITeGL+sHSE
288−C6mDPzeEb/iOTni+VriF83GCZ/KCg7iOdjiXFrInvziMLy0jZ3ZxbwQkVzKO57iOb+0l07iCw4LZ
289−xriQD7nQgvLCRjEsgAIvLzmTZ6wq+/iIp1gEzDKVV7mVr2wEYDhizGzNNrmXf/nDgoJzt3hsM7fB
290−EjeF2/Zxn3ZyE7a6mrnB/vaDw4Iwwzm7onmUG/eas7mWH4Y823m7yrmH0zmg1yues7Jp7zmf6zbg
291−8nah1++YI+694DNHV7qlX3pAHzSjo3CKLTREfzqoh/qjSjSUa8b1XjSmp7qqV7pH+zdoA7iKh3if
292−G4aBlzgbn7ipM3WsmyiLS3pQ77qJijj+osOCGtv6rc96YWg4sPNopDtwVC87hwq7aVq1se8xrt/y
293−VkP7hva6s/+6ttctshNGrVf76V57POv6txdus3PGbqJDCLw7vMe7vM87vde7vd87vue7vr87M4T7
294−YMSmOyyDwA88wRe8wR88wie8wi88wze8wLuDv59YYe87xVe8xV/8vqPDum/GAz/6uh76tOu5ortz
295−m2v2cns8pLs6bAc3yvNvxAcGMo+8ZZe8VrN2y2eroJM5y9/8s4J81Iq8zG8zzf+4PHA2zztrzvv6
296−zh/9rPr8ZcR80HPz0KP4yTP9syZ9t2/EIHwA13e913892Ie92I892Ze92Z8914P3pq/+aLDJgNu/
297−PdzHvdzPPd3Xvd3fPd7nPdy//FFmKtr/PeAHvuCj/SBsvGbUcbr3p7T//EYUO7mXO9//hbInfoca
298−fmYgPuXr5+I/PYk/vumaO0VnCOtmfn5yO7s/O+kz7tonaed7fuSC/m5ne+rjp+lz/L2cAQvkvu7v
299−Pu/3vu//PvAHv/APP/HnPgpEvl8APDIsP/M3v/M/P/RHv/RPP/VXv/UvP8SvvuXisjYUv/d/P/iH
300−P/GfgeVjxm4qOZin/5I/uf+G/EZM+ZXHv/xTeZZrP2Rwufrnvy6LucoDN6FbPUCQEziQYEGBLWAl
301−lAdAXkKHDyFGlDiRYkWLFzFaXNj+MGGuWB9BhhQ5kmRJkydRplT5MZfDjRlhxpQ5k2ZCEgBcrjK4
302−k2dPnz+BBhU6cIHDmzWRJlWaFAAJhwuGRpU6lSpPhAoZLtW6devLjivBhhU7VmVLrBy5plUL86hC
303−nVXhxpVrsKhNnGvx5s3Y9Olcv3+nXoXlVW/hvIQ9klW8mPFJs4OzGpastu3gt4AxZ95ZF1blyZ/X
304−8k2ILkRp06dRp1a9mnVr169hl2bmMjJo2zUJu1u2m3dv37+BBxc+nHhx47vd0UZ7mznbu7D4xJY+
305−nXr12OiMPm++faZoWJc6hRc/nnx58+fRp1e/nn14SMq5x69I+AkT+/fx59e/n3/+f///AQzQvifg
306−k89AiCqTh572GGzQwQfZuyS7AymkyDvwIMxQww3Te++sCimkT8ARSSzRxAAJ/BBEAxNckMMXYcxQ
307−QrtWrBGWC2PMUcf1PIRsORuZE/HEIYks0r8UfQSSuxZ3bNJJ8WbsTDsl5cPxyStz7JEwKm0T0sgv
308−wTwRyS25/IxJLNHkMErPytzOO3Wsi1POOV1LpMA2PyNMl+P47NPPP43T5U48JauMAWboTFRROdWZ
309−kFA3nUoIKs0opVQwMh89rLbEGuvUU7IewzTTtRK8rNJT/eKMzVEn825SVGGN69LaWMULsU9xzTWl
310−UGmtlbLn5DE11mGjUnVKXwv+c5XYZaOa9Udku9pU12mpBYnXZ6FdqlRmuQXK2Gwlc3WVcckt19xz
311−0U1X3XXZbdfdcY0YFNylCJMmlHvxzVffffnt199/AQ5Y4HulkXfepBK04N2FGW7YYXe/PTgv78SQ
312−x+KLMc5Y44057tjjj0EO+WKDJaaJMJFRTlnllVEmuWSZKkOC5ZlprhlkMRx9OS3vdDa5155jEhVo
313−jIQe2qJVjcYI6aRl4pnpi4p+OqKopX6I6qppxPqipbWuyOmuIboaa7GrJltqrsGWMm2YAGjb7bfh
314−jlvuuemu2+678c4b27UXytvvvwEPXHC49077psERT1zxwNfOiITHIY9c8sn+Ka/c8ssxz1zzzaFp
315−PCJoNg9d9NFJL33yzj232vTVWW+99NRhj1322Wmv3fbbcc9d9915793334EPXvjhiS/e+OORT175
316−5Zlv3vnnoY9e+umpr97667HvXQwAUE9olBseygP1hZCK26ms+n7bKfIhgvuG7iVCHwAJHmLocMLT
317−d7uh/AHoBecbsbU98D0ECaN4AwCwEakbwa0XCXEf/ML2QP61TYFGgeDUjkUR8rEvWrB4X/ZAmDQn
318−POIhb6BfQrbHEQ46JA9OaNsokGChZ8lPIit0IEcK+IYYTkR+OnRIbVZoQ6w4BAk3aCAAJXK4HcIC
319−CU4YRefk8QYSIjEikcn+4RIj6BBoOOGIN5zIFi8COpiQT4xc2WAXQ5jGkj3CCSwEwBJ7ERkbQkOK
320−sNgiGts3w/1lUIi06kUF8wiZP/4QLUHko3bY9zNYmNCERkGjBLDhxSouZ5A11E4etKPIzgCSXhns
321−ZEKw8T81jhJc0OCeTQbYmUfIcUpi6KIQCTlJyFhSlg6BpAwhs73/ARGRh7RaJKkYvjd+zyEjJCBH
322−FEmrW9KShWjUJDYaIobHUZAEB1zfXaqJwP9lExv02+BdHoENBOahgf4TZzcTkodz5gGFccTGKO4y
323−Ck6Skp6jMiYssMFOWIghkqysCAmAGT89zhKDtRwiD/fYmSPy0mq+TEj+AZH5LGJicoeaTOZyYElQ
324−O5IAi4pEwikXMgpYYPIGSMCkxXCSQlg8ooHywEbnjvLNlb50pW27US86Z8DBvGGPnXNCSbcITjzW
325−k6iEYuM+31DMhvhTIjkUZRXfttA9Ek6jsaQNLsmHBHQylDZww8rbQinJEuqzjsFsH9wiRauMTvCE
326−Ym3oQanIEPJt7xFYnJBM0ZkQF97ohOSTp0NuQILtoU4Cd8loURELpI+CTqSdGSBTEfSGJ3ptoLDs
327−43KWKVCCRvGjhewlM5l4g8b2CpNvayMs7mlBs1o1IZnN4kN1ytq3ajQycr0LOQHgBHaK4QZv6EUc
328−Z0m+2sCTiuSLo/r+OMi+wyaWuSC6QTj1edy3VTUhN3DCUxEqS8sey4/z9CIHA8tVuM7WJlKFyCga
329−O9JTAlSYMbzoQypZ0KvKdr4crC1KIYJJMbwhUjIlX15hAVx//vUhpiSsYT3ZXAUfCJJJraUN8+DD
330−i/yMhvKtHw4NaNcLaxQJB/QseUFMAvMS8Q36TEgdtfpBeTghrdiyYoYnwsECpnK1P8SZfSNKvnBC
331−kXt1hEYcZYYT8gG0c6vEiT+juD+eBhioe13pUBccZfl8NL0bhoz67uc2XAZygi1F6wLd9kGsameV
332−H+6q+qoaxc7FTQIOdsgoTptDBCpQbg58m5gteeeO7k23tM0xTgr+2DZ0QnLOb+CpkLEpThYfWYV3
333−IXRekRBHEx5xFFOU8qUxbbRHeJcrYuhem5fyhgtmmtSlRlYTDUNkO7JYKRKosqlhjaffznrWkxEx
334−rX+L3ZfhutZJecSouYKEbPJXwzArdqyRnWxlL5vZzXb2s6EdbWlPm9rVtva1sZ1tbfOa29329rfB
335−HW5xj5vcbYWdK8mdbnWvm93s1nXj0N1uec+b3urWHQLrnW997/trjVsIF/cdcIGn24WFA9u/B55w
336−hXdbnPfmdNr6zTdNps1sT6s409AGu4ivbeMHn7jHDd61iyct46nrONhOrrWRG23lQ2s50EruOe+M
337−QBI1t/nNcZ7+c53vnOc99/nPgW7z7qV8bLWJwSmQnnSlL53pTXf606EedalPHekxcBnFaxN0rW+d
338−610POjBydjvvMCJNZc8QPdBC9LLVpj5hcvvb/zOmj4u8NpAw+90btKYEx27sePf7etD+w4fTHS1t
339−h/vhEc8EuYdc5XX/++PPo3eHO4TskLe8eALvwME3vvCJ9/zbFz87wtj98peXfO76XnrLZ/5Gmy96
340−5z8feyOFXnajV73lT48774jCBb33/e+BH3zhD5/4xTf+8ZHvez4IXvS1oQMHoB996U+f+tW3/vWx
341−n33tbx/6dLg6yB0ChuSPn/zlNz/yTRF223knBdVyf65CkXb+168dLa/q1v0LwpmX94wwk3j//zvl
342−MWKucdgPAA1QMeKP+WqvNuwP/xxQ/+aO8xzC/w6wAsFCAPdO4xSo/SywA1EiATWv+erPAUlQICCQ
343−8V5vAj1wBUsCAycvITiQBWXwI0Cw9USwL0rwAb+P8FRwBmfQBVFPgUShFoiwCI3wCJEwCZVwCZmw
344−CZ3wCYuQARQwdgijAjThCrEwC7VwC7mwC73wC8EwDMXwCitgByUwIbIACtVwDdmwDZ+wANSvdlLv
345−9v6O9dROarxE9vSwRGiPCh2PDv8u98ROgSoPEPHODucPD9luDxmRRPoQdmzPEPFOENePECXxEOXv
346−BhPC8Br+sRP74xFTJxIvsewoUQ4VqBKkIBVVcRVZsRVd8RVhMRZlcRZpMRWpQQCmEBJrIxu+oBd9
347−8ReBMRiFcRiJsRiN8RiRsRezwQxTMCFsoBahMRqlcRppMRPikHa8QxkGZhu5sRu9UWBAABdDcAHR
348−whAe5hzRMR3ZxRCYkf4cYgO+MR7lcR4BJgKucXYK0AdlsAbv0OIYMAd1UEX8EC0oUB9XEAh1bwMN
349−kgX5MRH9cQQB8v5OUBNhoSAX0gIRchAdIgYvsgIbkiIbMCKJZSLJsQc7sgIzshIdAhWGoCVd8iVh
350−MiZlciZpsiZt8iZxsiVfQQrHcSAdogxSISiFciiJsij+jfIokTIplXIpmTIoy6AdFREtjiEnqbIq
351−rfIqcXId7lF25nAU0QQRKZITPXEs8QMUPUcUvRJLShEbLTEtvzITS3ITyXIuyxIqH9IhSM8tr2Qt
352−8bEt9fJJwDIuYUEs6dITzdLf/vAvnYQvudIvFXNHAtMn5bIw5/IwJQ4t8vIxdYQx+U4Ix+EzQTM0
353−RXM0SbM0TfM0UTM1VRM0l68ndREt6KAGZHM2abM2bfM2cTM3dXM3ebM3ZdP7BPI1w281ibM4jfM4
354−VTP9siYhN/IkLfAjBTMkRTJWSFIyK9I5UXIrO7M5sdMAodM6pXM6UaU6hTMhLLI73S8lTZE70fP9
355−vrP+PGEhPMWzUsgzFGvjPNtzWtSTLdkzP6nlPe0TIudzWOrzLO/TP9NTOzXQIY6gBBz0QSE0QiV0
356−Qim0Qi30QjE0Qx+UJ21QMBXhAUA0REV0REm0RE30RFE0RVV0RUFUEeySaQijCDR0Rmm0Rm00Q+Fw
357−OTUyIQpRM3MkMuGTMCmTES0T6zDTR3eEMxeUR5FUR4A0QB1CSIdUD4sU/BIiM5tUTRTU5BwzSzfk
358−SQ0U9qa0E6uUB6/US2FESbnUIRrBEtz0TeE0TuV0Tum0Tu30TvE0T930BMSxQ60zDlghUAV1UAm1
359−UA31UBE1URV1URk1UOPgRZOGME5ATym1Ui31UvP+lAi2VOYUSBvp8VNBNR7DMRehNCHMUR1RNVXP
360−kR2Ds1RhAR5DNVZltR43lQAVEkH/Ey7Bc0BHElJZ7kBxVT9rleNuNVjhT1fhUz55FTMKFDEJ0lh1
361−ZT/7sj+htVMANExxcFnH01ddDlir1VOktTFXkhvItVzN9VzRNV3VdV3ZtV3d9V3JdRw4tB9htDbK
362−IAPwNV/1dV/5tV/99V8BNmAFdmDx9SlbFVsT4hjgdWEZtmEd9l3/YFghrkvRFELA1FmjdEwNk1uB
363−Bi0rFkLUlFMp72O/FFldVUo11vPK9AxhAUtJNu8kFuUo9mXb42IvM2NTlkg5lv8Sk2ZhVkdVkkn+
364−fdZBbNZIcTZnqXRndcZjh3Y9QtZWx/VhpXZqqZZd5ZVUERYW7pVgubZrvfZrBdZgk0QwFbZqzfZs
365−pTZigXY9YfBbP+VaMVZStBVWmvVmzdNtwTVmuyYf8ZYx4NZu43Nut/Vg4/Y6+5YxwnU72/ZwF+Nv
366−jVZuBZc+lfZl+o9xFyNxlxQWPHVWObdzQ2FUXdNVT1VVSbd014VVx9Y6YdVzWTdU7XFt+TMh2hRT
367−abd2bddO+RRrCxdQG7V3ffd3gXdRH5VwAXdSb/d4kZd2NRV2p1Vom7ZmTTZrURZp4W5lm7Fln5dB
368−npZYRzZ72aNorXQwqTdpifdxsdd7nVZvtab+K9H3PMDXTMV3fGPPet3xTNs3PbZ3Yh1iCN2wf/33
369−f5twXh2yXtHCCsfwgBE4gRU4DMuwfMM3DQE4giW4f3NUbYKQWi0XLBw3fJU1cuOibs0XPzO4LNQX
370−a/h2hDU4egu3gz24KkA4fEUYhR2jhKvmhGU4JTYYflm4hafiheE3hm+YJDB3TRc3iHFYhQF3h3m4
371−WCa3ZCrXiHeFhqVm95Cziq34ilOzNf0UPmPTN734i8E4jHkTOFMXPsEAi9E4ja1YOS2YOZ33fs3j
372−fVl2euUXTOg3KvESjtEjf2W2e/W4POT4eum4jmeviSWGaf+4E/h4b2f2jwO5fuOXkBHvju/+0n4T
373−eTwWeX0bWY8fGY8nU5IPj5IJOI8vGZOl+Gm8gyWxcpVZuZVrcid1F3CBsilpuZZt+ZaXUmz3b2lr
374−Yypd+ZeBeZW1knnFtYih2CRymGWVeImFwodZFoiPmSVOmWlsOJpFIpmvd5mZ2VsM+WCe2JqFeJqT
375−pprBmQaR2Hy1eZt9wpmvF5qjeYhFNiE2t3XpWR5Bd4tF13T1eZ/JBXV3mXJrY3XreaC78XXbeEdh
376−ARWpcaEZuqFj8RZj2Xx5MRkpuqIt+qKPcRkdGH6f0aE9+qMX2hqJWXFhoUdLuZMrOZJBGfS6eV4Q
377−+Y8z2YQ3GY5RepQ/eaXdTpQjtWdLOab+a3im77emd1pMcTpMdPpXj7SUoUScjWb3JvipofoJBZgi
378−DXiBrfqqsdoLG7iMXRWCo/qrwboWKngAudeYyxkksBmS01mdeYKdIdmdjxmeodaszzoW0tqTA5et
379−5cKt8RquoViuyxoWOLKu7fqcOViv97qlweWbCTsWAFt/6fqs7zql1xqxCYKvU9qvjfix+zghliAF
380−QDu0RXu0Sbu0Tfu0UTu1VXu1Q1uU6HWoHcIeZHu2abu2bfu2cTu3dXu3ebu3aVuxs4UwlIG1ibu4
381−jfu4V9sVmHpoXnucBxi2BRM+YYesIbuYrVO6XXW6M5CIrRu7s9a7G4e6Ue6PXKe8zdv+vJu7W+Xp
382−vNm7vUUHnlBw7dbbvem7vicHuFBvcfR7v/mbgpqvvwE8wAEnvhVRwA38wOdG2xR8wRm8wR38wSE8
383−wiV8wim8wi38wjE8wzV8wzm8wz38w0E8xEV8xEm8xE38xFE8xVV8xVm8xV38xWE8sRrJltyMifpr
384−uy2EgQgqbrwMg9wmnypC2A5IsioqbrTIgObs2MAsqvgHz2L8yZmDBGhMtB6iLYSIt9qmpLZstn5G
385−iDiozUwsIuCsc6DBiNxKiySrc8TACU6LsuZr1aAMyuW8MLZnhz7KxCIMwSLinZCgieK8xhLpWbxc
386−O9gruxLClHBGkXqBxrTK0gy9qjD+ac4l/TPyKsK0qJv0HCJ6YYcOq8vvwtMtzI5OSSKI3CXc61k+
387−CruOys3Hi5wm/dULQ8q9R4F64RGUa+8KXbNeC9Rfi75oPLcEy9cH3SLEC3SUHNaRHSnqfJG2CXxu
388−fSKEvHCMfMe/bNitLMZIwIVGS8etfcvZKtnBnSucQALUSSF86Nkj4hF8C9jOfMcF/VhWyMAwQr9q
389−LNUhIpyI3cyYKLbCvd+R4hFEK1KyrG3wC0GgacLevd27vTMCqor2rMaYzCF6waUGT7yoy98xPiNM
390−Kaxey4bsHeHli9fJC8wp4rc6p4BOS5HoaLJWScK8/TlmLONlPiacoOHri4EmaMv+56vO+MfLfjzM
391−I0LO0tzOqMqOkLx/AOzRm/zYZ77pdUcMHN3ppX7qqR7Cbw3X3k0tJIDbzE0puq3qwT7sxX7syb7s
392−zf7s0T7t1X7t2f7B7fvt4R5y2B1sQCfu7Z6+517k7n7v2fveEPzv/57A/RHwCV/ABR/jCj/x+/sF
393−rzu7Hd9zxBvxGR+8AZfyDQfHsSbyNZkiLT98tZt2NF+mHaJibKb0TZ9mgBtaTub0Wb/1Qyb1kSVm
394−XH/2aR9jRCn0f9ohLoEeeL/3ff/3gT/4hX/4ib/4jf/4eb8PYN9XCOMZquD5oT/6pX/6qb/6rf/6
395−sT/7tf/5n2H5ayVBSgH5xX/+/Mm//I/fp6dYgTBEqTtBSyJQkIuapTdaa86E/dEfldWf/d3D+1kl
396−D+O/kAECFix5AOQJPIgwocKFDBs6fAgx4kMSAA7Ko9cpo8aNHDt6/AgypMiRJDNeOkhRosqVLFu6
397−bAiAxMFLJWvavImTJCSLBV/6/AlUJUGDAp8wOYo0qdKlTJs6fQo1qtSjT3gSDYo1a9CUAi/m/Ao2
398−rMiTArlqPYv2Z8yDBzy4fQs3rty5dOvavYs3r9tFVtP6/ctw6MFw4AobPow4seLFjBs7fgy5cLi+
399−gCsDNstgmN7NnDt7znsAZUXLpEmvFUhTrOrVX3d27Vk6NlbBRafavo07t9T+qq+vyv7t0qxX1sSL
400−jxUNPDnW07BSG38OvZPrgbCVW4dIG5ZR3dy7e3/Km7rv6+QVCscYPT1xsrDMln/vkLlz9fTBTs8O
401−H3727d/7+9cdHn75lXdefQZ+xZ57Ay4Ii3wHPmjTfdUxeN1+/12IYVQBTkihcgVCCOJxZY3W4YDM
402−BfJZiiqueNcwlJWoXHbfhEFjjTbeiGOOOu7IY48+/kjjNy/CCJxZfLCIZJIrBoIckfA5GGKUHkk4
403−npOlWZhhllpSNaSVpX0oZZgmNenldVCKGSaVZcqG5ZZu/rdhlWv+BSaaUSZI4pzAnWlniGrqaVmb
404−bw7aXZyAWlZnnxDieej+njIJNA89kk5KaaWWXopppppuymmnkvbRZaNnZZfNF6aeimqqqq7Kaquu
405−vgprrKZmE6qoWZklQCme7sprr752Og+ZtlrG3Dx3HItsssouy2yzzj4LbbTSHktMrcMClZ0WVWzL
406−bbfefgtuuOKOS2655m6rhbXX+oQrIdO+C2+88kob7IjrEvtoc4pG+ee9s1XHH6EC42aov1gluq+B
407−jBrsF58JG9gvwz4JOnDFGqorsUQIP6zewhlr5TDH6kX8MUsUW4wyUwWX3NLGIkPnMctAMXdAOzbf
408−jHPOOu/Mc88+/wx00DbPgbHMgVUHhxxKL810004/DXXUUk9NddVKw1H+tNHmkcgAFEJ/DXbYYgcd
409−mr1aq5XvfC+nR/LZDp2cctxc9ua2xiQOt3bHwta9Ush5G9c23wrBLXfKKwvOkMt/sxYz4hH5vThr
410−gTtOd22FX87E4ZQjpHjkYjW+OUxpew7d5JQTjvnAmofe3t3okV4c6KwrdKKStt+Ol4uVz747YZH9
411−Dnzwwj822e68G4l78srDxaTZvDMEOez2Zc036qkTunronUuPk+zPCxQ99ziZ7rj117+Z/ebbi1+T
412−99+Hz35N5CNu/vlbpk/5+vGP5P7z8O8/kvkJrn72yxL+HKc/AIKkf7xjzjkGAMEISnCCFKygBS+I
413−wQxqcIMQbAX16pb+HXN0YYQkLKEJT4jCFKpwhSxsoQtHaI4Pug0zzuCgDW+Iwxxu8Bx7+95B/qdA
414−kAiwegArIMoOiLgEBrEjDJwdEJfYkSGCsIhGrBgSBadEKGqkiax7ohY1IkW3EbCKcJLh2bL4RS6G
415−rli/aqMb37gpUBlvdqSSlR3viMc8xopWc2QdrnQFx0AKso31ap0PF8IcREhhkYxspCMfCclISnKS
416−lKykJRdpAzNqLTvXOJcnPwnKUJrrGpo0Gq6occlUqnKVrLQkInp4SC9+UTqllNkYydifK/INjVpU
417−4+Zk+cUwnu2WuPSOLuvGSyj6knLA1KIwN0nFYqKvlixL5hKX6Tj+B2pgm9zspje/Cc5winOc5Cyn
418−ObfpwT6GLju6aIA73wnPeMpznvSspz3vic98ulMX1CwZDc8J0IAKdKDm5KHzDvnDfC2AHAxtqEMf
419−CtGISnSiFK2oRS/K0Bb082PZyUUsPgrSkIp0pCQtqUlPitKUqvSjudhoxoSzCozKdKY0relFFwBL
420−HzJnoTbtqU9/SlGNqnNzHV2pUY+K1KSqtKVDzd/dYgrUqEq1pzg9KEIbpNCpanWrFhWqeHxYVKWK
421−daxkPSlTv/o9mHJ1rWxtaFUNedWEHoSnba3rVL0qINaFtax87atSz5pX7T3VroSN6lsVhFDm+MEN
422−jG2sYx8L2cj+SnaylK2sZS/LWC+4VGLZiUIzPgva0Ip2tKQtrWlPi9rUqvazUdgsw4yE2djKdra0
423−xawfcvq+rBZ2tzbFK4f0Wh2P+nW4xEUpYH8rWItAlbfMxehh83TVnTZ3ul11rcH2Wtzsave4clLf
424−YKkL3og+N65yFQhdw4tecvi2u6cLrnbfm13u+lCt6U3veMmL1bnWN73rBat74Qvgvso3rd/dL3jv
425−S17m8EIcDG6wgx8M4QhLeMIUrrCFL8zgT1jXX9lRwSQ+DOIQi3jEJC6xiU+M4hSr+MMq2PC9MLMC
426−DMt4xjSu8YV5gVv/6dbA1O3v97Ab4CAndcDPoy+Pp4vguEr+98jT9fHzgCzkKC/VxesyMpN5m+To
427−7vjKu3Uy76As5TCXlMjHKzCXC5vlxOaLADpos5vfDOc4y3nOdK6zne+M5zYbgMrXyo4QqADoQAt6
428−0IQutKEPjehEK3rRgBYCn4eFKxrkedKUrrSl8UyAHDcwX6BYhac/DepQi3rUpC61qU+N6lR72giP
429−tlV2IhCKWMt61rSuta1vjetc63rXvI51BFotKlxZQNXELraxj51qUGjaiVs+s129TMf/innaYwZ2
430−o6zs7LqmOZbNzjZboQ3cqwiX2uQOKZlnh21vr3XbOu22urcK7nVKu9zlPrcfzfxurrI7twe5hSf+
431−DfCAC3z+4AQvuMEPjvCEK/zfxbD2obIDhldIfOIUr7jFL47xjGt84xzvuMTB4HBAYSYBCy+5yU+O
432−coXfYtlddHe+pRpvos6b3tS2d3K7styXb3XfOtavzrka8/aKm+b0trl3lftzfbN8jS5Pek+DXr6Z
433−Ez3MRncq0p0+VZ5v2udYjyrU6Sf1qUe56gjEd9epuvRf5svfKW+7299+8IY3NepXcQAg7o73vOt9
434−73zvu9//DvjAC/7uDgi5nkYO98Qr3u0rt6qauX52n359gGEXe5DJnkSzR56mWmc25Ddf08kTceiW
435−FzPmsah50Ds37cxsuuorKvopkr70Uj79LlP/+op2vuX+B+k0sn8P/OCbmtVzB/tV1NCG5Ct/+cxv
436−vvOfD/3oS3/61E++Ggw/J2ELf/vcB76yHc/tg7D50uQvv/nrvOfiU/4qQui1+98P//jz2tHqv/1B
437−BCDp8+t//+TPNPjb/Xm5d1GxJ0aVR3vvZXvIhHsCKFG7x3QByIBBhX1rAmYHiIATWCbpFoET5YBq
438−B4EbGFEEOEwGaIHFlYAztIAg6Fasl035Ug9eAIMxKIMzSIM1aIM3iIM5qIM7CIOJgIFekh3rEABD
439−SIRFaIRHiIRJqIRLyIRN6IRDuA4/aCWYMQE8aIVXiIVZuIP1wIKIs2QqKIH1J3sHMW4lCGAneEYp
440−CIb+Hdh6HwiGDSWC0DR7ZghfaKg1GviGK/h//GZeeThRcWg0FUiHw2WHpqSGKsiGLeiGeQiItkSC
441−g8hXhSgzeOiHieiF+bIF9qCJm8iJneiJnwiKoSiKo0iKpaiJgiCFTpIdrpACreiKrwiLsSiLs0iL
442−tWiLt4iLregKqUgkZiEGpgiMwSiMw2iKW9CFgsMcX4ZcMsdedDdf0IVu0Bh+P7aMQudfzZh5h4RY
443−0/hk1eiM1IiNqKeN0qhTvUAC54iO6aiO68iO7eiO7wiP8SiP7zgK3gh2ozCP+aiP+8iP/XiO9RiO
444−t+ePA0mQBamPvUCO7wMAC8mQDemQDwmRESmRE0kokRVpkRYZkFN0kRvJkR3pkR/pkBmJgiBJkiVp
445−kh6JXympkivJkm4TEAA7
Documentation/DocBook/media/nv12mt.gif.b64+0−37
@@ -1,37 +0,0 @@
1−R0lGODlhFgFnAMZnAAAAAAYCAgAASAwFBQAAdEgAACQODkgASCoQEEgAdHQAADATEjUVFHQASDsX
2−F3QAdE0eHVMhIABISABInEhIAIM0Mok2NI84Nk9PT5o9O5xIAHRInFlZWaxEQbhJRgB0v75LSLhQ
3−TbRTUcBRTrBXVatcWsJWVKdfXW9vb6VhX0h0v8RcWZhpaJJubpBwb8ZiX8ZiYI5zc4t1dYd4eMhn
4−Zb90AIN8fH9/f8pracpta8ttasxzcM51dM52dM53dc94dkic39F+fNOEgpmZmdWJh9ePjdiTkt+c
5−SNuamd2gnt6lo3S//5y/nOCqqeKwr+S1tOa7uv+/dOjBwOrGxuzKye3KyuzMy5zf/7/fnO/S0fHX
6−1//fnPPd3fTe3vXj4vfo6Pnu7r////v09N////35+f//v///3///////////////////////////
7−/////////////////////////////////////////////////////////////////////////yH+
8−FE5WMTJNVCBtZW1vcnkgbGF5b3V0ACwAAAAAFgFnAAAH/oBngoOEhYaHiImKi4yNjo+QkZKTlJWW
9−l5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGmkM3ysvMzc7P
10−0NHS0CjT1tfY19XZ3N3Y297h4sxDlQDj6OLn6ezZ6+3w0u/x9M0A5r/3vvq9/Lz+kQDqEpiLIC6D
11−txAyUliLIS2HsyDKkniIIiyLrzC60tiKoyCPq0CqEpmKJCqQJk+lNLWyVEtSKPPJ3Ddz0stRN0Xl
12−DLUTVEyaQPvVlNTzU1FPRzsl5fRTaNB/QwNGHTi1IL6nu5Zu0qqpKVSsVME+4pqJLCazl9Ba8oqp
13−jAIA/gTCIOXkVsAVo52OAABgV6kmMxr2Cgbil9LLGh/OIJ6r6QgBLAfuMm48YYzPT1siF7a5qUyD
14−u1HibtaUWfLoS55NT+a0+DSklqXPxK5EJkuhm7NdV8pMYW9i3YJsT8q99Wqm2MQn/cihZRBuzasv
15−RenrdgnwM8uFQzpSOfrrTcihW5KyogiYM89VF9cUWq7i3+sRTVlB5Lyj6ngNd/58pn0mMUmY4ER6
16−+R2nGWCEMbUIGQE2QUYj3Fnm3VibIPgeJ178kEFz4Imn4F8aEJbcWY18EcQLViziVoITOvLSFgXA
17−5R4iVvxg44045oijByAU0QMIQAYppJAwPHhIFILx/qUeieDFCIB1igjBg45U4nhBlVSaAEIQYiTi
18−2IzXLbTKF1mUaeaZaJr5RAc5aKeIFStw0RErVehARZp4mrlAnmlCscILU8yp3y5iILECBI7AKaeg
19−q3DxQ5cuMgLgCg5uZBwuTpiAhBgQKZqRK45CKqYiftZ30aW1WEFDEF58xIinn4L6aCMIabHDDhye
20−OqgtYgSRonOLwBqrrKImglAQUjyEalg0xjlRLKEuotayFIoliLC6whKtsVVFai222Wo7KyLT7kpU
21−VeCGK26xhJTLmblZGZKuuutW1C2tUc1Lb7233TuqU9c6m9At2wJrLb68JEEGP/rG4u4iBaPnr7S8
22−/ohhgsRnNOxwLgU/LJVh9YR8Qwsl3HCOCyHIIDI986yMjgwkzKBMyy63g1LN8JzAgskoq4wzOzT/
23−3E0MIIiQggM2CG0ztbW88MUZDAgc7y5aFlHBCDsk4ebA8NryxQsZd7DoV7oIQcQKBpyhRRM/jOCE
24−VV3X8kQRcKYtCBnsNsQLFHSLPQjecL+bi9lxApCFEjuM0ASzuXwNtdSMf5yLlkQEAcIOSmzN9S5O
25−A6Dxs3HPogUIOSBhRQATy1LEE/d8vq+3t5BhhH0YA6zLFELo47qlocNChhC/unowLRYzDLnevbvy
26−e/DC265LEqgPsntITCsPvCEef4fV9CVVz8ry/vYOjzwh3KvkvSrgh+985AGPDbrgvl9PbuoRNev+
27−6wjHzzz29L8v7/G8g18r0sct8SkrEeXTyfkigaS9sIgRBCwge/bSlzBNAjAV/BACAXgIGAmmOxo8
28−lybK8AC5TGdJh4igBAuhOUaUYQOWqQEIMVGb2jVGAh6iRA0N9iYOFmJE8RFhJ/CzIPn9qxDZoYR/
29−NLEcBNClAUzIISWWw6FO+XAQQOzKAocjxUKoUBEImY+pIAEY+GhCCh0wT2OAkEVJkMc8EtGYB/cC
30−pRBKjjVmTKER85fCBhlpEQ2c4SYGEKC3XWILCQhDGyUBIBNE4BG7O0IGtZg8SkRIEV+k2CJM/oSi
31−R0gShWs5Q4aYY4kaiKiLlvDCBUjZCNcRMYh3zMSXFuEDHGAJS1e65Y20xKVGvPJNurTSjUbQox8N
32−6ZhAosEf3ZIkADxQXsHU0QWI6SNkIrNIKlJAHSkpwEvIUEKK6AKfxrmncZbJT4BSxBZUIIgTlsic
33−ZyrnE1bQJkws8gxkgieaIEDPFkaiBlCapR21dxwn7UWQTErEpCqlCMBQEJRrKdQKnkAaVFKiUB2g
34−aEEPCk5YEpRshygV7VwRAU3lbRaZQsIA+qc+kBLCVriKhaos0CpcqIpVNpxaNwNXCGTJoldWyJ5C
35−fcVDl35Up0blKVJjyT6lNvUgW/TfUp+6jzkhJhWqBqxfJQ+4Pqd6FXZXrepUv8rHsWK1q2e1qlnF
36−SlVbsKWt4wurW6O6saxKFa5gZCn+5mrXiijNZn8FWmDTEbTBuqMSHDDsODCgWHEwtrHeeCxkucGB
37−Y1j2spjNrGY3y9nOevazoA2taEdL2tKa9rSoTa1qV8va1rr2tbCNrWxnS9va2va2uM3tLQIBADs=
Documentation/DocBook/media/nv12mt_example.gif.b64+0−121
@@ -1,121 +0,0 @@
1−R0lGODlhoAHkAOe1AAAAAAAASAAAdEgAAEgASEgAdBgYGHQAABoaGnQASHQAdC0eHigoKEIlJEYm
2−JS4uLlssKzY2NgBISFIyMQBInEBAQEhBQUhIAFBBQVhCQkhISF5DQ2NDQmdDQ3NEQ05OToNGRHhJ
3−SJxIAItHRY9HRXRInJdIRlpaWppLSaJJRqpJR7BIRa5KR2NfX7JKR2BgYGxdXWleXmZfX31ZWXJc
4−XHpaWQB0v29dXLZKSHhbWolXVpVUU5JVU55SUJhUUqdQTrpLSK9OTKRRT6FSULRNS7hMSrVNSr5L
5−SL9MSr1OS7xQTsBRTrtTUL5WU7lYVsJWVEh0v7deW4pqab5dW8RcWbdgXrZjYcZgXnd3d8ZiX8Zi
6−YL9lY7RoZshnZb90ALJubLFwb8prabBzccpta79wbsttaqx6ecxzcKt8e4aGhr93dc10cs51dM52
7−dImJib97ec53dc94dqiEhKeHhkic39F+fKeKiaWPj9OEgqSSkb6PjtWJh5qamqGamqCcnNePjZ+f
8−n9iTkr6amtiUktmVk9+cSL6enduamb+jo92gnr+pqd6lo7Ozs7+wsHS//7W1tZy/nOCqqbm5ub+4
9−uOKwr+S1tL+/v9+/dOa7uv+/dOjBwOrGxuzKye3KyuzMy5zf/7/fnO/S0d/fnPHX1+Dg4P/fnPPd
10−3fTe3vXj4vfo6L//v+/v7/nu7r///9//v/v09N//39////35+f//v///3///////////////////
11−////////////////////////////////////////////////////////////////////////////
12−////////////////////////////////////////////////////////////////////////////
13−////////////////////////////////////////////////////////////////////////////
14−/////////////////////////////////////////////////////yH+EUNyZWF0ZWQgd2l0aCBH
15−SU1QACwAAAAAoAHkAAAI/gBrCRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJ
16−sqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtapV
17−h6QkWdrKtavXr2DDih0rlpFWsmjTqkVrdq3bt27bwp1L16vcunjn3s3LNy2jVRU/MKhAuLDhw4gT
18−K17MeDGCwY0jS54c+THly5gvW87MufPhzZ5DcwYturRkBGkqvgAEdPVP169Z+4Q9W3ZP2hJx89St
19−k3dv27uBB4+tWvhO3ziRJzeeU/lN5zWhK5ROk7pM69eZL2+t/Xl3hthj/oZ/OZ789+jn0ROnWN5l
20−e5bv4aefGX9l/ZTx7+Ofn537+tr/5cZffwAGeNyA4iFoXnH+FejgcAb+xmCEzSm44IMQ3mbhQPqh
21−1KFJH4K4oXwNajghhhJSuJ2K3p1oIoopvgjjihOFWJKNI+GY44j28dgji+D5qJKOIRFZpJAeIpkk
22−kAvZOMsBAAjQykdOHhDAJ1QqSVAhAABwpUcf0iJCl2TS0ZGNmZDpSJYcpekllmfyaKMXNtRCZ0av
23−jEJQiIUIAAoBcMbJUSEUxHJkQa+wglEpgGKUJ4da1vLkmn1OiZEsoUC6USkDrJmJlIKyF+ksCWD5
24−qaUWydJFHagIhCOj/oFyFCKpsYIp3CZPRCKLRXdeumqrs5Zay6kaxTGGniESS2uoNUYKay3PZhQJ
25−FYnI8mqjtm5KwAVd1pltQangkYUnFEUrLbUtRGqnAKocsOZGmlDxRwyRZvLlpMwKqC2W5mLEyh5U
26−zKAutNjme5G9WOJr8ECerJqKRIQautG/RsjRkRcAFNrRK4kUYQZHGHt5wbsb5edso/1mFEoQVrS6
27−L5saEWunt7J+N221DyncUQ5OsJrRk2Z6AWpHN1RxbEc6a2TyRsvKjJAncUQt9dRUT/3DEUgcofXW
28−XHc9CEMpK30ylmKaaRAebFSt9to/VLG21F0cQYUmDkXMENRvs13F/hFLXNH131wvgpCy7t6dt9pt
29−L3HEH20ADrgWuyrktNguXlT2zAulEsrmnHfueec6KNEFuQt5QoUpYBdc80aXh11LJ2Vw8vnss+dg
30−B+2cH3IEHg8zBHRDmuNOew5mPDE6RggTXOtBwQvveQ5oUDFGpnefvtCTNJcsp7qcRomqRq8Q4nFD
31−pqMuOZlvLmxR9wCQbJApcbzSbEKoGEt9Q5V+9IoPSlCyEZddch/4dsCESjikfAl5UrdgNj+eUOIJ
32−h5BBehB4oZTAT34R8c0rDvEEA8bkgTvog09AKELyWa8lS9NJw3wGHQpW0ILxy6BxHngIDL5khagw
33−EkdwSB0XkkhU/jpBxRhIVwvn+NA9A4PIBSGiG0z4LCZCJJ0OwVcHKU7whEis3IEScsQstmSJDpmi
34−+ipUOix6sYEz6uIZWQLGIDFJPVw04xplWCKCqHGOK2njdJJ4KBbd8UdAjNAfUchHiegRIWJcnYoG
35−OaTt1bEWjPwhTA5pkERq75ECieR+tBgjSMqRPoWcCCX3FMpvoUiTmwykg1AJSJmM0lWlHCONMvnJ
36−BHHyJtWCDStb6coYHsSSlPsJD/xgx1raUpU6ecUTisiaXfKylzYk5Rtn8ooi2MaZS0JmTjaBB2Zi
37−s5E3McUaeifNGd1kE0OQzTdPEp8TYKEv8ByLGvRgCQ1IoQmK/oinPr+igXfuE56IOMIU3iCISWyl
38−n/9M6EH9qdB9qiEE7zQEPhsKTw3woSIagIxpNqoYFmCgAg5YQQY4StLEGECjJTUNDo5AAhMAIQUg
39−aABKU1rSk9L0pixYAAM44IKR3pSjBkiNNm+SiixA0gh3mCZL8AAw1I0iEj9Igv9ktJOivmAOxoQj
40−GnNSiT+YjgaykUU0W4QTTHj1hC/ww1jJ2JOu1oAJ5quFWNm6VZww9XQvsMMizrCESGwRJ0X1JOqA
41−mRHCXoSpSK1FKPbaV7rqaydPOMIe6nCEKCzifp20SRYeVj7DXsSzFYlsD6xwhDNc9q91tckojjCG
42−Q3giXUpl/skfPPjVWCpyJ6sdww7mELkMPRYnsgiEomAZ25Vwk2GJNedMgqso0N6yIc51iCzwQERm
43−FlclyiTIW+OKWuBSl7jKbZJtKTLd6lo3vDDBmauwyl3H2qS8mkJvQqK7EPgWhL6/1dA6s3kT+4KX
44−qnSsiX/LCeAt7ldE3jUvfgOc2pcMmMC+hdCBSbJghDz4vAV+SIUJcuH4ZpiuExbJhgvS4RFD15Ey
45−6bCHI9zdEIPExAJRMYzF+9yUqHjF3Y2wi00ZkxvPeI81PsmNcZzZHAvWJiYe8o/ni+KYlekhQyay
46−QBIlETd9CXzIGpiYrkyRR1WSOc5kX8YkdkmMPInLChxa/n2/C2SEYPZ6VgrUmZcX5Db/TAFTSh5D
47−oizlWuBKVzkrgaG8oLGMqKoONxhYISSgOokc2mV93qXrgmmRPv0pUHfqlUL4rBz7McTS2AI1nYeq
48−YT4mzcJsPnFCwjWuKqtZWkYQQ2/NnABINHoiN+utclg56cJqKVpNe7VB+Izhg2yCCnsYrkL61ev8
49−MpgjzZZrqlWtkBWSkyFiyp5GYsAFKmxCI4WgQ7Qd8i9v//cgqBSzAH2tkWg9q9fELvZBZJGIXM3a
50−IMy+dZ2Z/BFNo9q8bmRIrhfipkLXLBS/ukgpCtCKcT8E4axqYVYRUgguU1rh2Hq3vqUNcH4zJBV1
51−aDVC/vI96gaHMYl2UwgcwnA4xLmt5XGI29zwZ/GnwVxqbYsa1hwHOMEZxAtmmjTebj41vhGB53/z
52−uUNOjZEPuRtlG1850eOQ85tHtg5rVR5BHH7yfUMkfws5hfOGd7uxh0J3vGsI0w3SPLPbLhQPPB5F
53−FIg+s4HL7J+Lew1MXbjbYhxOwf4eQcSO98293eyYoEIWvn0QkpfZ5BQhNJl5jJD6TW8hpYCCQPRc
54−sj4Q4glTzQjXGRI+0MubV+8C++P/LpDL+fuz6eEYFQA9ctWNPuCQl4iYxyzLWmywgw0RU5dqnpHQ
55−1RDaG48IDTEYIvYZfPUUcdPw+TUA70HfIIlPdkKk/v8m7hM/9zRm0fJh0jAh5AEnOISwkYs8kFGc
56−4Qx6Oib4tVoQJ0LaJVFcchS/fN0XFqQOdANKXkcgHzZL6+de7Nd1/UdImISACUhW81cd43VxLOaA
57−FgiBznaAGFiBBqiBSNZkBfiBDdiBDyiCpHaBJihfBBiC9PdsHLiBHtiCMSiBAyh/LwiDKJiCNxh+
58−KmiDO0iDCyhJGViCMkiEQNiDMJFCSOh/MyiAQfhMTDSBFGiER/iDVdiECOFOFPVPCLWF8dSFXlhR
59−DBWGeQGGZFiGY3iGdGFRGDVTP7VRNvWGJBWHcghUbliHnkGHeFgaeriHeShUEeiELFiEJJiDVxiF
60−/iOIg4YoiIPIiC6IhT4IiUkohey2hOoniUxIhStohZuIiE8ITp+YSpbIgCdYiIpoijrIiZFYaomY
61−ipiIR5q4igo4ikKoipPYioRIbbQIhbF4i6HIX0O4iJ3Yi5kojLKoi404jMboi7sIioGojKcYjbko
62−jYfIir/ITpTYdNloEUvmccn4S9vIjeFYitToiK9Iis94jK5IjLC4jMWIjLb4juUIjfOojjxoEXM2
63−ENJnd9r4M3Gmj9M3hRORj5unJtc3kP9YkOlTiQfzZJICJcImjhmxjwJBkAwZjF/nJ9gyC3g2LN+X
64−jhSnkYAnaHbyfDUYkpdWkYWjerCHEaImEJzi/ikRCZIHwZF59iWZpm0SeRE26ZGf8JICOYusVxBr
65−R5O1tzyTc5IJAWzCkpRKeZSbByrL0o9M4y6BF5Rz13e3d4+PWC63tpXeOJQDkW1YGRHmIjTtsm5P
66−2XjYkjxF2ZUVASsaV3Jw6ZVwApZhWZdmeWuvBxFedm7rUzAFN3k7uSiqgzEmWZhTpmwQcZbDNzJd
67−Fn+nxyt1MpcVgSl9Fnk0g5eIBIKBWSspNxGPBphxeWsVR5fWaJiAdwBBM5N19Wf3ljrL85b1lXB8
68−ojGWWRHGkmX/Y3CcCY5riW+qw5IUkWtOd2u0mZpDSThqmVqs1nFLeWtOCRE3A1sZAXZXaRHx/jIv
69−WsKSv8l/5NiYBSN5GlFuAtNuGad5PnmRn7l5X/Kdl5hJDuMQKYM9/rIHFZMR5Nl6IhA0OjkRHDM+
70−GLGfAwGf8SmU0Yc+V7J7iSkRK9MyDUkmVyJ8C0mVFuF9WAJA7XOQAzFw26egn0B3/0kRPPNE5VJ9
71−ZFIo3eOaE1E0RxOXKNolFHAJIMqenqgSQzd1V5M1SMc1X4OOJoE2U0c1Vfc2MheAG5GjN9c2fOM3
72−Pbo1SocRStpyibM4jfOkRwA5vIigJ9F2hRc6cldtE0dh2Qg7slN4nXN4uIN215YRXup2xROmKPGm
73−zgM90vNmTzOmfWSUKxE+AlpG7eWMJ/FK/lxJEJaHp33KP6G3E69AQB5UPYGKjcGJEjQkQZDKjChB
74−qHk5ZRz0qC9BQiP0BCF0QHoqYp5pE+kncZEqqJnqS8opEONHfr/SjXY0q/OxY8FJq7Wwf6RZTKvK
75−qq2adXlpfzLBq7rqe1XUqwWBq7k6jqXIrC35Ra6Ke/Eoj0eGqXq5jtdKjyWhqQdaj+oIrc3agOIa
76−rS7hrcoKrtjqq+b4qkZWruZ6rtPamdcoqehWqvbKp7UIr/Eqr8KamdpKgvwannZGVQOrmC+hqcf6
77−rTB4sPq6sATmsJPqEYQKsem6gRKLkdSqE7mkTvhai5M0rwA7jTYxTOyqrgxLTcvkGhk7/rEfMUoW
78−O5k4UU3X9LHA+hBaqIZ0IQhkUE9YIFH5pLNwYYZCKxaKsAWNwE9pWLRrQbRMqxaCgAL+BLRPmxZs
79−SBEZ5YehQQIeUAEGMAE9pbV5eIdiqxgbcAQqMAIdYAGE0Ydlexlu+7aTQQIQMBg85VNyKxlB5bIl
80−sVm1sF3NOBKR9Qd4sARnkAg54KwaWxNZAAOA0LLjWlVG5QnJ9Y0qcVdOBVVSFbhdmgVXZbNAmq0x
81−0VW1FWP/yq0uYVYUlFanW4034VZwNRBzhYqFahOYm1eM5Vfs2LlHFrMWi1hJtVh8pbsoO7IxEVmT
82−VVmnVa0o4bedpbiiKxOiRVqmhaiu/guPqsVarmWdlqsSs0VLYFWvI5FbuxWbtFuw7yVcxtuuM3Fc
83−mVS5zGtj6uu7p7pc00a/ybRMAwG43asS9oW/BMsSDwbAOaFeRcRe/YsS/kXAiyvA03axJIsekBvA
84−DlxdDBy9NvbAEHy9LTLBDVzB9wW9N/rBCqzBG8y+K+LBI2y/AHfBK+xgJnzCqHuEKsylMFFiIuyu
85−OgzCm+qOL1TDG3vDMezCO+y/Mby+M+yIQIy+MAydMlu8MjwSnJbDNoyAS0yvKXbETxywQYyQFrdl
86−qElsyEFlS5eQYtagD/EoHWKRtQBAH5kQfxmfrJSPFOqQ/ZqgXWI2FLlnWvzE1nsQ/ntsZahZxF0c
87−EUApEIuWfBxXxbD5aSIJk4oMEYeWaC75yIiMxnuWcAeqSYdcoJFcxRDRkwgjym8cY338xJ52PR05
88−yiRJoAj7wnY5EKRiayUXb0/8nA3xdINMnbFmvrq3kcJiER76xOnGlyNKwmXsPrQpxt9xbNqndn0X
89−lYJHwcApegUTbpNmy1sMSfO5bBkXo80pEdxmbkPJKNwCAMfMEOXGeEZUqiljoFGcy7aXfPEGHfRm
90−b7I5liKQzrAMynt5lwznOtq8zQIxzMK5PKfpaxB3f78MJ24ZzROx0Kqaz1uCyRjsEK/Xl7J7yusL
91−ciKXEL0ymGVZuxMRLUCndQYh/nVDWqSHc6RQSZQQbUc6+nI7h6VHEKWQ7NBDo2lTenNGZ9M3jXmq
92−k5z9PBGh2caYrNJL+nIwd3XCetRtXMqETNIN/ZDoAwD8KBCEh6ahoKbOw6YvTRBFSae483Zx58QU
93−/SyXIxBk7Tx692vDadEXvRAsSZwFsdV459XCk3iLF5LTTNTYO9UP8c6fLNiH6s1w4gWpx6JM5Hmm
94−15610DqFjRCl5z/HKWes6XcV4cqubKMGIXu093O+qZ6c98qCzRAY6sm77M+/56kGgaHOR5gVYXyt
95−S3A1yj7hzBCxqh+pbdembZYxmjGiENxy7c+1kH2MWRAMCgtjUqF3fNooHKsu/lF+53cT6YfE9piL
96−7gd/SVzNM0KsMJF/VFwQvJqyHBywAHjeTLy7IMveW3q+KFzI8N3d2R3fXBzBPezDoXuO7a3f/R3Y
97−/v3eUCzg963e+T3f9W3fBq7gDI7FnJuvCfzfA36zxo3f9L2uAU7gC+7dEa7hG47hGS6KyJzgJF7i
98−1mrhJm7eH37iK96OCA7iAP7iLN7gKe7iBX7gEy7i8evhNA7j8p3jwLjjFC7jNr4QOVu1buG0SD4W
99−Sr7kYtHkTq60Ua4WUD7lXHG1E5G1eZsZcbvljNHlXr4YYB7miDHmZH4YZn7mbQuII+7jKF7jEn7j
100−F67iPT7jc77f7j3kPy7n/nAe5y1e5H8ez24e6H5e53Y+6DjO54hu6Hge4kFe1EAO4UKu4/zN4xw+
101−6Y+e55Su6Zle4YSu54p+6Ive5zFL0Ize6JEu6e5d6kTs6KrO6a/u6adu6X0O6m8u6nR+54U+67b+
102−6Zsu67pO66M+7MQO6Il+68bO679O5Ki+58je7KGe7MHe6w5+E3F8rF62ZHGM3dglmab+Etk+3s5+
103−7A2xx5EtAlK9aZrcIRR5xrINZbY6kXbsxqstu5rM7R+ax3Wcx6K57koSyAaZKvGOPA4pyCO93hFB
104−ynCSyPWOEMaJJAoPzwVNBSbLk6v8JVAdEcOsHwq/dZN9EA9vZhcfoivJ/tgOMS0Vj48jH5PDYvLA
105−Dp4agS+z/PEJYZ7qMikSLxCs0ANMwHj+6AhTaRHrLOhw5j4aDRE2zxGTkp0XsfM9X5WOoCzB/Nwv
106−n8/YTPMK8aAM/ZnqpjR2cO9cvy0LZBESzT0FA89a/zJoGdPc+PUm+pkPndvQfekXcScL13D61tNU
107−WtNYitM/p20JbRB6/zY516RA7fcCcSdxzzBDKjU/bdOI//cVLduDnzdX0zeHrxCahpjvnkkr7TaG
108−D/kI0SshEwCQaaFtrhB2c9Ku09bCA6Zo/RBQvXauXzt2cNYXYTcyo2m1Tztv3ZtkRvtcvTmwf50a
109−8ztCM81szdW2g/uV/maSgD3u1V5pUgkldeco4vMx1xmR0b8QMvAFj039lqLW/VkRlf3tjvw9GQ+g
110−2Q9uQ8OcGvH94V8Rdj2dqY/vo5+YBlqpSkKgio3IACGgVS2CBQ0eRFiQUhEwrxI+hOiFQqyCtETQ
111−qVWKwCeIHWtRenLIYa0XgDyeJCiRYsFZBzCi9AjykAyTMDuqLJgpAEeNHG1CXNjw50OcB1vaGAqx
112−ZNKCS5kaLDUAwFQAEwn2fErQU5c6qEjWzJpRKlUKosZaDbu1zg2wWaNSrRrrLQBHTNV6bdr26dyp
113−EwsJDFvr7tfAYuH6pVo3sFq2hflWdXVgKtLCBJ0yvVxZs0FUYzzl/t0cmrNnwqIrd/58MLPpwKhB
114−sw7tejVszbNt2qZdGHfurLt5P/X9e2hw4T+JF0d5/KFy5B6ZN1+uF3rS59NVS7d+G3v2k9UNeude
115−Orz28cO3l08Inrt66+zZtz+P/rp8mO+h278fn75l/R3xN/+vuAAF7I++AYU7kDf3CjSQQfQSVNDB
116−8iDMjULYFtyvOwnHs/DCDcPrkLUQRcMwQ/8+XA/FFE1USsXsRgytRBbTc3E6GGOsMb8Zo9sRIRl7
117−fA1I/oT8LkcAjTySyCGBQxK5G2trkkAlxSPyycp+FNJK3aJEkMsIp6QSSCzF9LLCMs2cUsst03RR
118−zcDc7O1M2uBksRJMOjFz8QQsLOGzTz//BDRQQQcldFAN9iw0UUUXTfRQRh+F9FFHI6W00j8ntTRT
119−SjHVtFNFNeAjKzciqKBUU09FNVVVV2W1VVYfINVVWWelVVZYa8U1V1xv1bVXX1Hl9Vdhew12WGNn
120−feARMJdltllnn4U2WmmnpbZaa6/FNlttt+W2W2+/BTdcccclt1xzz0U3XXXXZbddd9+FN15556W3
121−XnvvxTdfffflt19//+03IAA7
Documentation/DocBook/media/pipeline.png.b64+0−213
@@ -1,213 +0,0 @@
1−iVBORw0KGgoAAAANSUhEUgAAAlgAAAEcCAMAAAAsmToJAAAAAXNSR0IArs4c6QAAAwBQTFRFAAEA
2−EAEBAwUBCgMBCAUKAgkMHQIDCwYXFQYDBgkVDwgFCAsHChASJwkDFA4NEg4TDhANHgwHDg8aExAG
3−DBEjBBUZERMQCBNRDxU0ExcZFRgVFRcgCRkzHBcUDRdCNRELIxYTAx4mLBUMEBwcEhsiDxwhExsu
4−Dh8XJRkQByAtDCMUHx4bACk0DSsiGScsFCRcJSUiGSZCDiwqGCg1LyQbIycpVhsPDy0wNyQVECxA
5−PSIfCS84ADJCEStWRiIULSwpADdHCDkgEy1/BjorEjhADDhXCzZvITNPUysQDzs8MjIvCj04BT1O
6−PDEoQjEhMDU3LzY9KTdFTTMYNzk2GD6PAEpfEUVjBExFCEpPB1ArK0FjKEVZYTscdDYXG0d5SkA5
7−FEiJQUNAOURPAFhCA1RpP0ZJVEMvYUAyBFtRWkYnDlR+QEleAF1jkTojHlV1AGB4PlN5YU87cUws
8−SVRXAGaBWVJKUlRRRVZlAG1PWFNSBGt5AmqVAG+NAHNpK17BWl9ifFs9KWmnSGZ0YGFfp1IuCnWj
9−AHuKbWBXoVNAdGBPDniWAHujTWmLk14rAH+ch19XX2aRX2t8AIeLiWgvAIeeAIaqa21rOnehdW1m
10−AImspWJYj2tLW3C0AIyvWXaNAo6xb3Z5dXZzent4WIKiQojAen+CkX1pcoSWcYDOoH9fp4E+Y4ur
11−hoWCXIvGb4mut3xpqYNYnYdUO5rDyXxdjY6LYJqk0IRGb5azXZnMjJGUgJWqpJB8l5aUyJN4kKK1
12−rZ6IYqzge6Xho6GdnaWpgqy6yZ9zvaR0hqzMk6rN5Jxxw6mF26lbq7C2pLTGwrCbs7Owvb+8zcGc
13−8rp42L2xsMbY3L+jtMfsz8W2nM/yx8jH0MfA7MWU78h/3crIyNTo4NLD6dK1z9bc1dbT3NXOv9vr
14−/OKSwur8++Gw4uTh0ef78uPU+OPL3Ojz++bGyfH36evo/+3b6vT88vPw/feu1/v+//bb//nK/PnW
15−5f/+//ro+fv49/7///37//71//3//v/8sZeTnQAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAFY4AABWO
16−AUTUBDsAAAAHdElNRQfaCRQPAiJBEFMLAAAgAElEQVR42u2dD3wU5bX300nWws50shA4lyTGikRE
17−Qy0aUChKvJZqTQGBFNurVo0FWq2VqhAq0hc0t1rAxtLLpu61cUl6gWtNe3vb7Z9IKm+Xqn2tkFih
18−GmwFA9Xwpw1s/UOyCc97zvPM7L/sbjabXTLZPL/PhzA7O7M7s893zjnPmec5k8WkpNKgLPkTSEmw
19−pCRYVlSjp5n/3+3xGGsONHt2vx1t04PNTbtP8aUujxAuHvN6XjHe721pbmqLsp/H021+crP5wce8
20−Ta8Evi+wKMHKHKkwjf/vA+D/77SrAKDeeTRiO3/vcnzDoTzXgy/+CEKMbVdw5dh9tMGubAfuuMjf
21−E7HnfgAf/X9yJn6Aupqv206fNfYdXHr/Aloc944EK7PBWg9QurVxlQ3s70Vs+FmAdQ0LAP6By1cA
22−KCT2AsBqXKme7mEfajBr25MaTIjkSjPA0mHsVnz/G8jgzyBna4MGH/UzdgHYt9ZrMNovwcpksN4E
23−eJpeHbLB5PDtelT4L/wP4Fr+95NirQa34d85cB1jX3eAsGVhiPRuR644WPjOafxgHXw9uD8axL/k
24−3+gj3P4vLgJ0SrAyGaxzoFCsfpObJh8aJVMtzUSMA3JZTw/Ab8RKYcD+Rvu2ehsJJIBu9llFwdW3
25−0l8N1B0CrDlgpz1K4OfIkRqgT4cOjNkkWBkLFiM4ejT4nXjVrcH/wb9G4BUUwOcZ+xCgtkh74Ci9
26−9Iu1Jig/BjhDhmzCGUTzccaKNx9lAqwSUAVY17Kvw7U7S2wLn6fXRXCzn90P2dIVZhxYIlxSiCE0
27−W+8F1l+GYDU0hG99P9/gVxiEKxiGvYPMoCMjT2a8fxyRQkQw9HpJg3EBGAmsr4PDz8Eaxz4F+UBf
28−+DjtMZ0WJ/9ZBu8ZDlZwfX7fjTG0x9ibPTF93D52UEdELgD9LXYw19zteA7onMwLAHuI74SB9QGG
29−b372DKAvLQF4xN/7FPlR/17gjD3H/BKszHWFYRbr6siEA7sL4Jbga4zG2Yd2sCuqaoC1H63YS3wJ
30−nSW3RyFgsQ0coQLsNn4KdD/3gtcauG0HOCItVgYH78EYq4fHWOFaDLA6tMNHe3St0m0L3+Ixln+/
31−BqP3ib0xGue2LRQstmu+vXjz13mMZYRbubhoFw7yXyRYmdwrHMN7hR/fgVGSdrovVzvEUpuXYPhn
32−wG9+wJcOaTDZ3GcOpU/fiACLmb3CP5o0ncemCcamQY4EK+PzWD3zYayNYvcwYUj0UiCldTf+9yXQ
33−2RNlKl+6Aw2YLRCtU/D+uBZgxQDr9iIkrauIeo067OOu8Cfs38Fxgi9+XoKVyWCx+wBKG5t1tDfU
34−9ME81hlybtki3U59w9XNuOVL/r+IJbu/58yXwOgGdPd0aXAuwXU384eAdT7YtzXqPPO+HuybPRdA
35−9hnW5YDR2zz41ntnJFiZDBbbbnfQvUI7OBaF5bF+ZdwehALCj+4n2n9qLDkK/8zxMdSNjlA/3UP4
36−vRFqsf4+xhG4V8h3G0sB+/4ptJjzB5luyDDV1otUVXd9vbGmpXFr09td96mXha5kT9Yb4psfbKxv
37−EgMdDjZuE2MTzPfru/9eX/8HsabWeMcY3eBtaHrL+LiDjVt3B75v224/k2CNFL3+D/kbSLCkJFhS
38−EiwpKQmWlARLSoIlJSXBkpJgSUmwpKQkWFISLCkJlpSUBEtKgiUlwZKSkmBJSbCkJFhSUhIsKQmW
39−leRP28f50/H5EizLSlHEDC9jCuGxJ6crtoU7TkVjxJxkuGu+XVvNp9t0bS9SFu4Ra1+/PTt/c+R+
40−uFLbfMJYtNvMbRk7nq34JFiZrPB5hYdsoKqqA9Sjfbm61ZhkOAdwG1D3IVd2WhJFGp4CB+6Xw8Iq
41−kD6j0QbZR3D3F/he8CPjHT1s3r0EK8PB6rHBLARmby7kRm538i4QYP2Jag4dmwkOKkU69gjbqcEb
42−rOddgD1sL8DDofu8D/C4/9gCyPHTrNVZp3oXixpZjCCVYI0gsHy8Tihjf1Rt+Le7pSWw2U4bjBZg
43−faUEkRJ1QETZte8ShefDT3CxtukV1tXSQm6yBXf+d7Nc0T9o2/d4SUjCyf8iTJZgjTCwng2+FVKG
44−janqMn9o3UgDLOKmy1g83NrKQ6zzwc493+/YFFFKpoAqIuk03/5dmoCP1g/00xKsjAerpIWLYzMK
45−oDTw9ACfqgY2w7A8rCDpHEETzZb+kPgCeIpqAz7HOD0PI2yXMfYpUcS2gGosLwf7bq8G1zNuwn7D
46−JFgZD1ZAFBWdTxVBcjZHezJFKFhPAfyQwLqDu0LOGCysmi8qHS0G+Dg6wR4qJHKCVy4ajWtn0lec
47−SzvfDzczCVbmg1VQxWVgs2E6oaY/HgcsP3FVKvB6pGUDCLCu53aMB+eE0E9E3y9ntxet4Gh6a/QD
48−q3Qi62UYyyRYIyzdwPt/O2/Xg+X4+oJF1bNhEV/k1YgWCVdIXvGfIupCS6Xz9/8+xQGQOwddoXh8
49−ABqv/8JNf9/a2goQ0jWQYGU2WH7W0cbJ6dL6lLYNsVi3AnzNWHfwyXV7WDCOZyI4p7ptRvW/XdVb
50−T8/B4P1TZtnRccFCWqoEa6RYrCvUfHPt5JhgfTeQ5uxobz1DVd7HElH0rIq/cb5wAx3yCLTDbf4z
51−It1gxPElMAE7mCQqFS/BGilgIRiXdeDyTkoWsO7W1ihgvYkheCuJPz7nBDumUTbrV5D3NvOdT2VI
52−j2O8hRudxz/8YT97EXL9fnSFz/nZq4FnpbA+z7yQYGVyjLXcAXb+MIFFEXmsIFi5gU6kv0tFs6OK
53−eGsBf1iF9g9yhLnMz0vh+u/npd3VN/j7/EEBpWcCYMngPaOlqCWhSatd84tUteDGHZF5LAKLv+xR
54−TeGLQ/N1dcZm8faGEjV/4VF0hCoHaaaqnOIrtYXivuP2MlBnBOvEq6oESyq+QobC9ER7vydyq5Eq
55−CZaUBEtKgiUlwZJKnyqmlXRLsKRSrhJlBI5KlmClX+USLKl0qFKCJZUO1UqwpNKhZkVtl2BJpVzt
56−qtIswZJKvRSlUoIllQ6wFAmWVOqlKkq3BEsq5apWyzokWFIpV4eiVEiwpNISZHVLsKRSrlpFaZBg
57−SaVeoCidEiyplKthZGYcJFhpV4FSPgIHZUmw0q8KtFkdEiypVKsbwVIafBIsqVSrhNCq7ZBgSaU8
58−gie2ytq6JVhSqVWVSlZLbeiUYEmlVp4ChexWebsESyq16qzgZmtahwRLKg1mSylvlGBJpVotQLGW
59−T4IllXKrpYyAjKkEaygEmU+WBGtINE3J9AmHEqwhIwskWFKpV4mi1EuwpFIvJbMHAEqwhkrNme0M
60−+4Dl6+w4++rs7EnT+Q3R6SRysxm7hu3D5HQGC1Z3x7Kc8RNnX2XIds1VadXU8ebS7Ik2W+pHlfja
61−Z+RMnBg4CVt6z+YqW+CHmzrRNr6x39PpUJQBPQjF10anY37HNek+nYkXm42Dp6N5O5MHy9eQs8Lt
62−CqpufOirNGjtNaGv3POyWlOJVWeVbW3YCUysS+/pTHWGnc5VOYf7OcKCgSSzOm8cXxN6Au7x6T0b
63−15IVoSy4LtYOJwlWs80Z/slnGSxaYUuZ1equ7XP0Zxcs1NJ+TqdNUaoSPZ2qyKM/u2DxCz/flwRY
64−3fkrIz/57IPlqrumKjVcdUReJUMBlqtuam3co0y4sENn39M562DRV3oHDFZ7Tl+IhgAsl6smPxWD
65−LFuiQXT2wXK5NtrinU5VGbQlcjreiX0/eQjAQhtcNUCwWi+OwtCQgOVy2gbPlWdetK8bCrBc7nh3
66−broVpTyB09m6xGURsFxrywcE1oGov/nQgOVyOgadIVrisgxYSFb3IH1h41KXZcBybawcAFi+0VEJ
67−GiKwXM6iwXHVNs9lIbCQrNiHWpFA9r09+q80RGC5VtYmDlZBdICGCizX2nWDSjPE+sWHCCyXszrm
68−sbYqiqe/89FclgLLNa8lUbDqV7qsBZZr9mACeJvbYmC55nbEuWFY0s/pFNVYDCy3LUGwfBe7rAaW
69−syR5rg6sdFkNLFdsZ+io6KesQ3uM5h06sFw1tYmB9aDTcmC5ViQ9Rao7x2U9sNYeiHW40/ob76e7
70−LAeW62JfQmDFMlhDCZZzWrJgHV5pQbBim6zGfu7qdC+1IFg1iUwyyvKstCBYrquSBSvfZUWwlsS6
71−xtv7id5vrLEgWHUTEwGr3G1FsNY2JTmgYbwlwaqrjToEprMdu4UFFQWxx89oLguC5Zp3IAGwprqs
72−CFZNeXJgdaywJFiurOiDkwOKZdGWWBKstZ4EwFpiSbBcSSZJm93WBCvaLcP2ELBi5bnWWhIs94PD
73−F6z85MCqqrMmWBdGM0mOAFexplU0bLQmWAn4k6yl1gRrYnJgLbMoWHN90buEhmL1DGstCtalIw6s
74−iuEEFus3xFpnUbAulGBZGqwyg6uY4zkkWBKsZMDqNMDySLAkWKkEixcHiTdxVYIlwUoKrGYBVrcE
75−S4KVUrBE+B77xqgES4KVHFj00ArFK8GSYKUYLF/cEEuCJcFKEiwevndLsCRYqQbLqyhx5r1IsCRY
76−SYKF4XurBEuClXqwKuONTZZgSbCSBYvFe/yqBEuClTRYtRIsCVY6wGISLAmWBEuCJcGSYEmwMhGs
77−JRIslFM3phzrOsQ54keHCViz9VFiI11fGe901kiLlW6wwOBJh/zYW10EwwUs0A2wIA5Yn4AVEixL
78−gAUZBRa+KcE662A5UeZ7xrITN3I6hydYEafD/yewnBKsswqW8xOA0jfRms/RItxM9oo0HMF6lB95
79−qVO4c+PM5vKVKyRYaQeLWyYOVo0uIIK7Xa5vGosPDTew6GwEWF8Vp6MjTuKK4WRJsM4SWKYQrEkA
80−ZKwuIYwESxcu2TS8YqyAVrrcAJNx3RaACUZc9f1S8oEyxjrbYNUA3GEE658nyAqXOodd8B4C1hf0
81−vG/Tyq/i/25yiStl8D40MVbIi0K60Emzhm+vcK7xoo5e3CA84b0SrKEBy2m8GId/vxgIroY3WFt4
82−wPXo5fxs7pVgnX2wTFdYQ66Qa+MlwxgsdIWbTFco3l5TALl11gJr49xJ+Zfem+nphgIRvF9EXUWA
83−q3HxWwZYzmEIVmjwjl1BKrl1OYyzFliXGB3Xh1IOVs0NULppoGD54oK1ZlL+TcmBZYby+sO8a8g1
84−ziUyWYmCNQlqBgpWd1ywHr08/xpnUnksI91AOQZ3gVii1RTI5z2UIFg3wNI0gvUFgM9sqrkHD6wu
85−xWBR5kindhwQWNOUKl9MsP7VyB0klXkX6Z6QBOksc22CYH0ZBg4WKNXdMcH6ajBlO/AEKcdpFh3f
86−lot0I8Ry8UB+ZWJg3aOnE6y6POCPqXlUh9tSDNZFUOz8NBS6BwoWKoytIFiI6t14oNclBlYqFAoW
87−IZgEWKgwtoJgoXn5TE0BfDIxsFKhULC+gDSmEyxdXLimq9ENr1in67xTXhxYC6V1Bueom/iuOl5y
88−t8UC69FR8DDyqn87CbDC2AqC9W90OP8Gk4YELPScyYIVxlYQrG9SBP5lXXcOAVho9wrTChZ6F714
89−ZRhXSNbdBJzQVdyaBVzHp43VpS6xSaQDDYK1ln6xLaH2ZUBgBdkKgnURXEgxd27dkIB1t2sQYAXZ
90−CoJ1Azm37+uwaUjA+ow7ra6Qmp74mOcMmq8vQK4bF9H5110CY92uFaDjXl+dh32PFWi9hdm6jbbW
91−H6qJ6QrX8r1CDeLEhgQU0hIGW0GwdAKrJhTmszuCNBys2fUJnI4adjrEVhCsKwks/BU3DokrdKUZ
92−LIxkddMerRFm+fuj4A4836uIIKIDadJu4ZcVgja5Tti5c4m90jgxlgnW7CAFSjKq6gMWWAOsS5M6
93−neogWJcSWO7MBQvbiiei5xFBhm5Caua6XIaxKuC92eJNLmMtIiiM2uwEwJo1OLCmtVvVYiUFVmXn
94−yLFYwiNehE5vBeUHuOaGgeW6h/dt9W8PEKw+MVZ3vwqNsYgq68RYfcCa60vgdCCcKtbHFQ5RjJV2
95−sJaCkWnCBfeaYA8lHCye7dRhXogrnFwXoCxGr1AfVK/QoCpar7DYZRGwBhS8V3b27RXqQ9Yr7B+s
96−jsGB9X262y9uDlxWh/ZlFrbUo6VLnSFg1WFHG/faMgrj9jV83GUgeI8Hlisv+TxWkKrwPBbEymPp
97−ISOv+tOWgn43ASMZmTKwKjti5rH08/rJY9WJzO7Fse8uzU00uz0QsMpaB515N8YifttMUgHkhoIV
98−SEKQC7oE9JB0Q1ywRJbiNtfAwZrW3h098/7pWJl33XTi/YPljH/bmSs/pWBVdsTIvFOO0ribHBus
99−uov4uYWl6Psm5VMPVr3SOLgYy8CmeFPwRbEz3BWKtYWbAglS/SZX/2Ald69wWjhVCd4r1EOzpmkD
100−S9cHDJajsiPuvUK4qr97hV8QRIVb6tSApccDq7Vv+biBBu/OkPkewQkf5n9ha8OWnVHmtwx6dEN3
101−UqMbQsCqyZ90zyTRFf3ipPzZnGy0clvmTip9iC+izSO79uiVBcaYjnxw3TPpwltMdC9cEgusCAd0
102−dkY3mPcIL9dzuSOnkxK3mddcWZA/9aEgWFvmFly4xEDm0UmznP3dhA7/7gv7lo9THN0jfTxWKFim
103−uzScfDF/W7y42ozGzFvSfMyMGZ/R3gVmZGAZsG7g8z8CSUdxeDRmRozug3NNsIzzXcvBmgR5mwYJ
104−VjkFh+0SrFCw9E/y4VaFaylDV8xpKtxIMR+a2Ro+k/DLGDg715iDSOGmGgzfruW4Xc9XWwesOqLl
105−QmO83Fd1KN1Y8zli7Vu6fq9z4yQaJcPBwrdmbdp4ER9IQxHZeXWDBKuWdzuaRzpYgU4hgkPjBWqM
106−7u73aaSMDvS83G9yjJwGTNfxZbrhLpb58CyA8wSb1gHLmEEIGh6p8xJ+fM4r521y1XzxXpcxNpnA
107−cn6Cj17EUP9eAuu8/mOs/sBqNe58jHSwzE5hjRhz5TSGXrnoRxYjsraEgeUU/bxP0p9NZorB2MlS
108−YGEwdZHRwXZHDrZaczkYYLmN+YRz4bw6BOvewYNlPiGvRLpC0xWGdf4IKmMudBhYhgpNyAywnBYE
109−ixz4F3XI+3ZY3Qa6HUJpCAOsQCpvVF3MAcoDA8t8Ql7gaQgSrOgWKxwspyFzPoVVLdaauWvNVPZa
110−d8g0588BxlhiXrRpscwzShFYtYG7Bi0SrABYGGNNDomx+oJ1XUjeMwSsqy0GlrsAxvKFbyFYGGNN
111−EIHUBMMrfisQY10iDt1IfaYCrNbgXc5aCZYJFvX7Jm+iXmGhKxKsux+l0fPXO7d8EfKvDgPrX83O
112−oqXSDYUr+QCUUS7R9auhwArByuWnhwwFe4Wue4KT7gcNFgu5f14uwTLBMge7FrrCweKBvlGhxZyo
113−E7RSYvVtVoqxPgGBCTmBPNb15tLkAozTRR7LeCt3U8rAKguC1T5SwQreJKwxK0TiVT5J55lpfJvW
114−GbUjt1yuz+aZd9BmG+8Gt3GtmaSXbnLpVgret+B55M9+SBzKlhsgV9xOoCNd6/qEPoGqSNaJt/RL
115−HxKZ95SAVRvuCeVM6NRpZBe3NYMsn5xiL8FKJVgs1A9KsCRYKQMLg6xpXkWpl2BJsFIKVi09H09R
116−CiRYEqyUgtVBw2YqFaVj2IJVKcFyWfXJFM2K4hmuYHWoEizLguUz0qPDEawyRYJlWbBoGkL38ASr
117−Q1HaJFiWBavBvAs97MAqD/ZoJVjWA6tNUaqHJVgdNONLgmXdx8opijoswaJR+yDBsi5YZsJhmIHV
118−wW8bSLCsC5bHmFMxzMCqCBv+KsGyHljtxpSK4QWWMFhh04wkWNYCywyyhhdYFUbZDAmWdcEygqxh
119−BVZnn0lGEizLgYVBlne4gWUYLEWVYFkXrHaRyRpOYHUGRlVLsKwLFgZZZRYGa3x0722oNdZJLbMo
120−WLMzC6wZ/VQtI7CWWBOs/HgGyxyw31cPuq0J1vjkwGq0KFjl8Q66mo9PzppnTbCmxzNYsW/qtFnU
121−YuUkN26xc601waqPd9Beng/Kml1nRbBqlvWtsuapClTYj3lTp3OpNcGakRxY7BpLgrXCy/qN3rNi
122−O4+hBGtljKExtXjQVY7Y0Xu3zZpgtSQJlm5JsK7qZPGj9woEy7vUimCNj8GN6BF2x45YKtxWBGui
123−L0mwqjZaECx3fvyDBsoHZbHxddYDa2NF9ENuDYx8jTkOcK4FwaorYMlqqgXBWtEc/5gr6erPYo0r
124−rAfW1JhGVunv2tfc1gNrbmfSYE2rsRxYbls/x1xL3cIsxmLxM3RgbVwW02CV9NuRutJyYLnLWfKa
125−aDmwlnr7OeRmuqmDYLXMsxpYWuwIq/9rv95pNbBs3YMAq3ajxcByl/V3yHj9NxBYrHqltcC6qj2G
126−7y5XKhJoCsVtLbDmtrPBSK+xFFju/i8Tnm/I4jOqaqwE1opt0Y+3Je6g5JC5bTluK4G1opENTjZL
127−gTW1td8D7qZ8AweL5TutA9bKZTGvg3gTv0J7hqPd1gFrRfUguWL+8RYC65rdifgMDIUFWKxko1XA
128−WrouNleJtlFnVG84JGDNa2CDls9mFbDcF7+SyAFTIivLzMQtsQRYdeO9MQNCpXIATbHWEmC5x7ey
129−FMinbbQEWHVKYuFiuaIEwGItORYAa60tRpqqakBcoZr6HvzZB2tFTgdLjWonuoccLPe8GxPs3lYq
130−SndW8LJYN945pGDVrc2KYa7aoCDOUJkY7vDGqe4hBcu9IquNpUydkyJGC5xtsNxLshLu3aIZ6MwK
131−Pfgm29SN7qDG/9ydVm28JuTFivHj26JfEB0l2B1UBu5TOmpzZteEfMPE9J6Ne6or5MXS8eMPs5Sq
132−Y5ntGudZPJ0lK4LLdUtslw4gaVKtKB1ZEUd/eOvCS01pl6ZZ+ebC3GVN7TFSn94CGidTltxd3I7D
133−62688mydTsjnL/O2d7LUq+PAA5eetdaZdKG5dOMDLe0DyvHSPZ0sZmV5y8IrpkoNC9VbGqz2anSB
134−NLSvoE021fBSg6K0WROs1uoCY6xoWUOHbCgJVirUVlUgLBWG7M2SquEoC8ZYLWXGuPYSpT4t8a/U
135−WVCUXuHQqkpV+FOrobHdJ5tnWIPVaSGwqvjseaVaQjXchS3pswxYbdwH1sugKgNUEXqvcIjlAap7
136−JW1VRqjEOmB5MFwvl1hliGiqujXAokExHtkgmQNWpTXA6lQKlGbZHpmijsCYdwsEe9WyPTJGLYrS
137−aAmwOhKcJSE1PNRIjz2xAlhV5YpXNkfmqIrK21oALF/ch5hIDTuBqN1ghS6hjLAySD5RxmjoD6Q2
138−8LhXqUyQl2J3K4BVEO/hOFLDTtV8YvHQg9WtqOWyNTJIojje0IPV2W8xNanhpLYy/pSmoQfLfFyU
139−VMZ4whargFUrmyPTPKEFwGqjMl1SGdQnrLYGWL7WVpltyByVG7NAs+RPIZVa/yNuo0iwpFKpShG6
140−JwCWP4FPC27TM9AD6Ym+m182UUp0tn9HNFhGTftIsDyqkQZXVPEknu3zdVWbsbnvIR+7vUjVFu4j
141−Jj7MUkm054YiNX/ZUbFnma6WrO6740Gb+IpD+MkzdoiVG0rU/DtPibWAn3B6xCNRFmwIUbniNfy9
142−HTOWnYqGz1Pmxo9NdzhmPE1LO8t0rWQ1geXfH/JDB/puqiGyLxum68Ze2BB2beGJnqSP2jRYfcEC
143−83yA+mpd04FmOQAUHo3Y8KAOqmID/Q90zhqQVNY7Exy4tUYb36/hnhpcH/ndvVOAPyH1VTtk4/tf
144−o1XT+WcVcupwUaPFkR4Emw3hAA7WBgf+MPjL5L7Ul6tDYGy8gFoL4BvM/4wDf13gv/5+vuj4Qdg+
145−KhhCDhabezF2K7afTbRfMmpWppkDVfoBaw7kPO9jPXtzYHLEht+FcSeYbw5chsu7wNbWimIvQu4R
146−5ltM53PcBt/zs72a43fh++2fAhysro/Aom6210bv/xhmdLL9NvWHjH0JinFRgx9KsMLAegbgEew8
147−Hz4f7H3syU4wwPp/GjzP2FOQd5RdADf72c+0vLcYmwn3+tkL2qi3Qvdp5VoOE/zsTQ2ew720vD/j
148−Vnl7mG8B3JZkBz+kMFB8sF7TdHGBYFP/lEKzqsDQ9NunP0BZC8jhkF0mVl4BtPLvNvt77ECFfhoN
149−cRasY69WVf2ZsWMPVG1lbL4KYzlYf9X0dxgxtYx15ehv0Lm+3clYNizjX75MghUG1vlGY6O9vxr/
150−q68KFs6cDo5csfH2+dl+P+tVoY3RP8b//tNGdCFev2QfPFBFrbihqlLEXm/qo470sGa+F277CrsL
151−rsPVv9Wy30s21RAYABUfrP+A85iJzE18ZUSS/H9hHP49Bx7Y+WATIyyqxb7/bYTk7+fA91jvR8je
152−fRZGY3ygaM+3cbBahUNshQlo3EazXdVbT9DrL0EpWjObtFjhYP0JHCeE2/sOjMKlSgiOCFFK9wVf
153−4m/+Tw3eRouFru9Nsli/EJgsh2sZ+wrkveV/hlsoxmF7OriXDfagg/olo0U0XkmoUVEcLDZYjuoq
154−VLWDwPo4PBIgaAKdQ8SQvJOj4BbGPrBxb134FvsYt1hdWfC4scHPwP4Gt3dPvyhsXpvfQOqvoNP5
155−vgpj0XgVLnAAOOgsj+fAwqrpUCxjLHBU8YYAAus7kG108Dg2vC6xqbfDOUN6sk+xF2z6sgd53PSE
156−2HUVNWDXGDj3Q53bPGGZToXu9Q4bA1TGvZeM18DVGlYhry9YATWQBdpqrBc+L0IY2tuPoMO0QfHu
157−XWSW/gPGYn/uZQ0M/l6wwSLGY8J8HS41D4CDhTHYN/hFo7EDALk7WpaDg8h7ir46SoQ68sAKCFur
158−IkiOg8CKzB6FgLUe4EcijgcYi+A8KN6rogb0v4DRP2QbUdocvqHQUxpZL7sgKimwOsLnhvYFS21t
159−QbUqkWCN7vNRJ6eA/izFbIep8uwhjNNP5kBh1e06YGBF9vUZJI5fEyfRpuW+EwYWGjO0TWXAwdJ/
160−YnrB+0Hb0XKfpv9UgmU0BJbt7hUAAAvPSURBVAfr9gTB6mH3YVfQTxfs2N0tMyHnRBhYgrdfi23f
161−tI06Yu613gGz/ATW7mTBosA9dJRK/BjrioAr/HEg2gro2BSw/zokjZAFm9mhMQ5wzLoCAys8WrwK
162−ik+ZfUhhukLAIuwge7M2Dl2h6udeMZcds+m/YRTbTZZghcZYQVf4N97TiwFWD4ZScIuf+of2oxyj
163−O4KukDfgnzQ0WGKn++BfTK7uEnsZrrCLwq2BclUWMayuv+D9XAqH9jGMnh6J5KoIcvaF5dyA0qgH
164−WtrYKP13wrpeb/wax5AhnvEKBYsda209cQBmoVfkYB1AsA6I9w6AJsEKBetvGFmh/3qeneERVEyL
165−tRx0Ho+vMs2UzQze74LPi3hdJKy4J/ylsTty9XjIqn/mDDh471SVaeGPkowP1n4bueHP2m/ZzoPw
166−sPhqCow10J9TcgsPmvTfdXqf9NNSDv7FaP0b5hUxEwp1yPf7Q8HyNnq4Kfsa682B33CjeC6F9PQ9
167−f8SQXoIVmm6YQhmdX6jFe3X4AYsJ1nrIEx2+JwR+y9FMYdeKTNwF8HsRwY4FnduDDwJ9P1z5U9OI
168−kVn7Hy17gLeC2qgGY/cAwMIj1Vef6L0PIz5+U6eq2hsSIy6sRlVRj1HfwY4tQPd1yIbo49LX0Bzl
169−QC69X+2hcEr/DfYMbw6zWN+F/CNsly33HT++n7+H4U/2DdaVQ51LXFwowQoD600NFu5hL4MOY6nR
170−G6qrooCFG43lv3n7u7nwtVNsu07x1AIoPYHNRR7wXR1uRotAeR/yliLqfTPX2KsNwy7HDnZwSqBT
171−n3DCXVGmRVSC7wcsdp8GqupA+5m/2R+ax3rfZnRZcPNetK+qCqOPUOxNS6V+sj+GqsgRLqLrwnCG
172−Aiw/kqerDpVHaYtpEQr93EbS92knJFjht3RetuMPw2/E3HkkIr8QeLnA/M3bKIClrSkWOa7TIv+h
173−MZo/RVc/XeL/CdmnTUcYuLuznpobxp0a0KFWRnvQUVbfJJcBliJuQr/+WJGiPdAyBfLeCM1jeRVT
174−9GpXmZK/mTqxPTunKzOa6Jo6x3y/qmuMMprWzFFs7xn5DhFi3We33WkEorumK8U7uP099mQRLp4a
175−6VyxacGGEMmhY9vLsm0Ln7/LQb6wPHzKXIV4+RHzN8de+sFVevaM53lO9dgG3XYnub/1ikJ5nKcU
176−Bd3ig+ZHBPYib7R3fnb+5u6B3IRudSjRxgAnPGxm552Jf5c/ua3kWJlE9PpMS111vHJslEc8yIF+
177−UoNQgwLoBqOVYpRgSSWtRipIDC1R35NgSSWn7lpR5zpG5VgJllQyaq0UPbOYTw+RYEkNWG314sE0
178−1XHm7UmwpAYkX3MlUkUpBk/c8ukSLKmE1d5YaT7ur7q/h0hKsKT6V2erp7qiIJATr27t/0m+Eiyp
179−aGrxNjd7GmurqyrLSxziOX9Clc2JPUdZgiUVTaBECFeU17Yk/nBuCZZUNBWEMFVQUe1paRvgY0kl
180−WFJRXSEfFt3W3pHsY24lWFJpkQRLSoIlJcGSkmBJSUmwpCRYUhIsKak0g9Vab0zwqq3nQ057vQ1b
181−m96OuuvL9XySoZ+1NG7b7RcTO7z1TebErdcbt/WtAHAwuPJg49am4LQA39Z62RgRqq8X2UmP0SYH
182−Guu3RS+q8O5WsQW2RQNuwtuCWiV2U9TWG2o3WlDs5e/11jeeSAdYEfMKt9tpTqFaGuW7juXwSYb+
183−Y9NVAIe2B49rfx5ubeNzvHuX22i/8FqiYmXhW+Yi2AKVMReb8+6lAnKAGEgnSs3sn0KzCtXRf4iy
184−5QLRav69OpWDKj7Rw96fSa0yms95vs/GV4btEVIq0r+3iO91BFvwNWpB5fG0g/WyBouamh+zw8V9
185−djw5EzhYvRdA/jbPdBj9Hk1MLW3aYHM820OgFDY9aaPqWSFaD7lbPTMh30+Tox2rmxeICfWMV0KU
186−YMUF630dxm1tbiwC+9tnIjdcr4lWw20ubmoEGOdH1OybPUU0PxV/dftWXDw3bHaduAuoQd4+KpqF
187−exXBuNO0iC2oOX6fbrCuAF71+GUtL6KSKNuZBwKs12xU1eGkDb7HvstrxPyWivy9puHJsf+dsSh0
188−n+M2eBZJ/Bh87wz7GE2O7rIZ5R0O2SRY/YD1HbATGb1TqDJfmF6badYg/Y5qP2HU8RtFk+vf1ahg
189−5Bh4iTO3L5qlQ+P0Pzaaa/+uLW8PewJoavEGXmQvrWBlGzVmmprbOOWBQpFesD+icrA6W71i82qE
190−ZR1dNlRR9Me8tB93f3OU0afRrimj/X8FlVzji8TUOXyDLF40mfk+kvusBCs+WBVGISNvM9XkDJ0J
191−rUDpjaLV2luahZtrYzq0MlGN9C/aqKN+ciE/YF15Ctqt9/lf0lNU25YdNveiGqQPMdbzF9uod9IM
192−1q2Qu/lEyBkEAuzdq98KK0iKJucniOE6sdkP0dT98LEi28I96PePU6mAn4H+UmjZUVxRfITt0kQN
193−m8Xw+AEJVhSwOoNg/QrgzmAEHlq7YeHz4aUcXgC0WAvgslOiEsh/CiKpGhYV9HuWikKKNv1wlB60
194−Yi9Q1eSP8zJGH+bk/SENYBlDvHipyIPZ6KJmrDNOyNPcGuamg2D1ziS/fgUPqdArbkbzS1Xewf4c
195−vy7053gditc0HlL9GHLxstgAdkXTnhMBVilrk2BFActsCsJmOjaFtszoSHubPaFbhoJ1vIjs0MkF
196−oCowDsF5DLJp9SpeknEBZG/XzKJF60OK6Z2cQnvpyVf0GxhY7OAC6rw5tOei7BoEqxej8F9TKObY
197−wU4uB/SK2aA/z3z3UUjPus7BjyhGJ9h7Dsw4wfbmIEPYl8TvUeFOvx+tXf5pCVa/YPVu4D05ZXWU
198−EhchYCFXo45QTw93duAl7g+UiqSm/ruOH2E4wt4xwcJ9yNWofURUiwBrd7rTDeiBPbdnO0B9Lg5Y
199−vpmgPm3UKcSzKcLTGWUaLyqrvV8Dx0uUJTmETClU8IhgW3SKvf4R3OzkmFw8pXYJVnxXSL+z97E8
200−ozRRTLAO6ZCNsfoHOmz2U52xl9BiKUGLRUXW7EdEzvG3WraZDTpWJKp+ptVihYPFj2Hv+dH6CSZY
201−vinC5VFfcboyY88V8N/oFY2C7xR1vaoB/Jp/0LFVDu2BV7QJ9PiAf/A4fhzaKsgm4wVKhWQpTh5L
202−6PBiyDsRGyzkitfvNAKr5RhYhcRYIq+jG2DdBXeYNOZBDjdeIsb6IMk674mDdWDVFNE92AW2mGCh
203−FdVCe7JdOXazV9ibRVVuu8ag+R0d7Ge8CnMpjqezfR00AstQpWQpNliPlf1cOLB4VZOP6/QgGhao
204−wb0Kctifgr1CwxUaddXGmHYJvee4I0aamnqFf7LZ09wrxL7encYXxrZYiyHXeKbPX8vz3qFIazLF
205−6WOPUoVu9Q1ebnKHqPf+lRL6Owc7kGixqMb4rTCZdXhI9eBo9kqWYoM1nUprM+pOx7FYRfBR4Sd/
206−oelHeMD/eQLo14E8lgjeeWb9bwG7NF2Un2QskMc6L915rPsBCmsbn5wOKsVIEU8F52Cd2asZ4X41
207−FRDN3/aY3f4Sz7xrW58cBbPQQFEW9Ble1f5F0Fc3zOePnVhMi7drjh8ZaWQZvPcD1ssOyFm3rWG5
208−g9d5jKjoJ8A6Qw9fEBX9eqfg1g0XYBx/hjLv6xpE5v1n1CP8iqhua1RTZmeeMffyknOZsW2VI/2Z
209−994N2fxeofZ8RB4raLG+ZDoyDKr2Z9P9Px5v9S7HqEmddYr6HsXcNo0+KlbaZ5GB66EbWJD9tPlh
210−Eqz+YqxdOvUKHaJXGL0G6cxgDdJj/F5hDm+39XRfgyruoyO8mSfvP3oq8CgU8iDB24YH6bah8jRL
211−PVhtnkax0OjhSavelmZPc1vYKlONnhb+1xC96PV6dpsjFl5vbqL9Xvd46Kazr8lDHY4DYiXpIG4b
212−NOroECVJkRe5R/QKvUabHPB6ml45FbbKkPHSbApPB/+pPa8YHu5gcxMfvOD1eGj31zweDNNagi1t
213−iM9GbfE0p2V0g5QUk2BJSbCkJFhSUoPW/wfr5tj8wgE+HwAAAABJRU5ErkJggg==
Documentation/DocBook/media/selection.png.b64+0−206
@@ -1,206 +0,0 @@
1−iVBORw0KGgoAAAANSUhEUgAABIsAAAHpCAYAAAACi7yYAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A
2−/wD/oL2nkwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAAd0SU1FB9sLCBAiCLMGMtAAACAASURBVHja
3−7d3rkds4FgZQaMohTBY7ObRCV+fgyWJy4P6wJavVIgmSAIjHOVWu3bElPkBSAj5dgpdpmqYAAAAA
4−ACGEvzQBAAAAAHfCIgAAAAAehEUAAAAAPAiLAAAAAHgQFgEAAADwICwCAAAA4EFYBAAAAMDDD00A
5−21wul9XXTNN0aHnP749Z39o2rK0jRzssLX/pvVve9+61S69Jdey2bn/sMTx6TAAA/cIW+oVb+2tb
6−3p+izwioLIJsHYe9X+a979vae89ut6Pb1+txBwD0C3vZN0ERrFNZBAct/ZJxuVx2Vdg8v+/oLyEx
7−69j7xbq2/1u2e0u75Th2Mevf8ytVzDkDAOgXjtYv3LquVP0nQRHEUVkEBTsJve/r0hfu2hdz7e0W
8−27HQ4QAA9Avr7BcJiiCesAhO+GKK/YIt8SV+RscoNmippUPl1jIAQL/w3PUc7Y8JimAbYRGc9KVY
9−Yu6b3OsYNUTRuQAA9AvL9AtT9LsERbCdOYsAX74ZOiVbO1M6LQCAfmH7/TzohcoiqOhLK+eXV4p1
10−xP4y1krF0X1bn7dXBwIA0C+ss19oagAoR1gEJ4j9osv5iPq965imKUk59eidwNc/AIB+oX7h/HpK
11−tzeMzm1oQJIv7Ra/eO/7sOWxtgAAtN0v1N+DdcIiyPQFlPP1JbZpTyehl19q1joQOhgAgH7hOf3C
12−Pct9tz36c7DMbWhQwPMXUYkOQ6517P3Sj/216axJEdfWoyMBAOgXpukX5uqv7Xm/W9JgnsoiSGxr
13−4FHiiyvlOu7v21pu/PqLzuuvOTHtlmIZW/bz+f1r6177ewBAv1C/8FwqjCCesAgSdwK2dAh63e+5
14−fX8XuBxtt1SdkZhy6djt37vNOioAoF84Sr8wV39tzzIERvCd29Agg7knQ8T+unTk15mc64j5El17
15−KsbRW75inrqR6glj79rELWsAgH5hmn7hmcckpt8HI7tMRjYAAAAA/KayCAAAAIAHYREAAAAAD8Ii
16−AAAAAB6ERQAAAAA8CIsAAAAAeBAWAQAAAPAgLAIAAADgQVgEAAAAwIOwCAAAAIAHYREAAAAADz80
17−AQAAqVwuF40AABWbpmn1NbvDIh0BAKDGzg3n0T8EgD7sCot0BAAAmDNNUwj6iwBQlS3fzIduQ7vd
18−blobAMjuer1qhKZ6o4IiAGiZOYsAAMji0w+LAHC6jx0/unkaGgAAAAAPwiIAAAAAHoRFAAAAADwI
19−iwAAAAB4EBYBAAAA8OBpaAAAFDf3ZJa5J6htef3za5eeyDb3urWnxsQuM/V7jmxX7Dr3HIMUbfj6
20−+qXjurZ977Zja1vuaVOAnqgsAgCgqKWB+rt/2/r6s7Z/z3aesf0x+1fjdgFQjsoiALpyfRng3J5+
21−Fb7/2+3NL8Xv/m1pWa/veX7t/XXXN4OtuWXs+fe59c/t45H2erd/Mdu/9XX0b63q5zWkWHr9/d8+
22−rtfFapOY9byz9L7X5e7ZzqVKmT2VP3ts2cc966+1MmfuGKkkAvhFZREA3XgON94FNnMhzlJQNLes
23−1/ffX/f62ue/fw1d3r3m9d/nlhu7/rX22rv8LW20d/voT8ztYbEBzNJrS4YMubbzzNCidLs+BzX3
24−datsAjiXsAiALrwLfPYGE1uXtaVK5l2YNLes2OXurdI5svwtbaSKiFdbg5Cl18f821y1UupAZu92
25−1njblwobgLG5DQ0AZqSofjkSnOSuvsmxf2fsB5SUMtT5vN2+LC82xNoziXaJNthyO11MBdHS7YUA
26−5CUsAmAo91u97rdGLc1jdKQi5t08QiH8uSVrTcwcSkekWv7avuTeD1hzD2TuwcOWqqIS8wa9C01G
27−nD/neV9fQzQAyhMWAUAma5NVA23KEeLMhUZHJ5g+e/9jXyscAqiLOYsA6MK7+XLW5gWK/fdnsYHP
28−2uvWJtveu969ti5/bxsJzNgTDOx5JP2z1yAmNsC4T7j8+ifXdj6vs7VjlGsdQiSAc6gsAqAbz7eY
29−Pf9dqmVtWd7cbWivE0LPbe/rv80tL1Vb7Vl+TBvl3g/a8nx70dIj7e9/v/b6mKer1bBfc9tZ65w8
30−pdt1bh1zQdFaGwNw3GWapmnzmy6XQx1wAIAt7gHTjm4LJTuWv/uI084QYC482Pv6LfMSvXtc/Nag
31−pNR+xb7+yLYeXX9MG669ZunYpN7mEeeJAsZx/4y7/P7vmP6U29AAAChq6yPm9z6S3n7t34/c648J
32−Z97N49TKuQDQOpVFAED1VBY10rGMrCwCAMpRWQQAAADAIcIiAAAAAB48DQ0AADqSciJsAMYkLAIA
33−gI4IgwA4SlgEAADAZh9/X9/+/ed/t8Ovf37t3PKWXje3rq3LTP2eI9sVs961969t59r2LbX16zJi
34−t+Xzv1vyduE4YVHpD9SZsuDnX4COlA7HLD/Ferase2lZW7Zh6/a+vn6pDda27912rK0vVbsCAEB1
35−45qFwf3H39dNIcm715fY/rWQKsV7Wj5me93Dn6VlxgZKnEdYVPLiXAgTPq7X6BBh7rWpln/kPWv7
36−LigBAIDGxzUrVT+vocTS6+//thYs7A1plt73utw927kUeixt3xnhWEybzO13qe0VHtVDWFTq4nwK
37−cmKDni2B0NLy7/82F/4srWdPYLRneVvWUWvgNNfuAjIAALoZ10TcHhYbwNz/LiYwStpvf3PbU47t
38−zL0v727/WqvqijlmEEIIf2mCAh+oK0HR0UBhbflbbuVKsT1ry4vdhhRt/nm7PdZdYr0AADCCreHC
39−0utj/m0u3EkdcuzdzntQ09MxS7Gud23iFrQ2qCwqeXFmrjBZWv7n7XZ6WFLDNgAAAGNLGeq8Vilt
40−ndz53fKO7sMZc0DlPjaCpfKERTVfKBsmqy617hr2de21qeduAgAAzvM6YfKWypQS8wa9q6IpVT3z
41−vPyYp4pBLGERu55i1sSXytO2q2oCAAAe44MMIc5caDQ3B1KSsVzF4dC7p6KthWgqiOohLKr5A2zj
42−RNW511/LurY8NQ4AAEhv661OMY9RXxwDPAUP9/+OGjtsDB+ObufzOnMFOTHLnZvoWhhDLBNcl/xA
43−PRherIUka7dfLS333Z/a9j/VOoRIAACwc0wy86SzL/3tmadvLU12/Pra2vZryz6V3OZ3f44eMwhB
44−ZVGZi/jpFqi5qqAj1UJry495Gltupbdhbh1zQdFauwEAAL/72i+PkU/x+hoeRb93O/fMi1R6Iuet
45−xyz1emNDQRNc10NYVOoieQl0jnoNN2KWXyoo2jMH0lnbfKTdzm5nAAA4bXyzMJnyXHVLC0FA7fsV
46−cxveu7mCWjoG1EFYVPKDZ2GS5diAYW0ZtQYYJZ/gtrSuexs9h201txsAAFQ7vtkYMGx5/dHXHgk/
47−atmvI+9PNYF0ioqvGqrG2O4yTdO0+U2XSwghhJuBNABQwPV3qL+j20LJjuXvPuL9KPnRBWCbtVvE
48−hCrsOq9+96Muv/87pj+lsggAAKDFAeBLsCBIaJ9jSC2ERQAAAB0QHgGpCIuI++JZmZRbmTkAAFTW
49−h98QHn1cPzQYFPR5+6x6+4RFRJ7IN40AAAA19dGfwp+Yx6HHPr4cQFgEAADQuNfwZy08inkEOzAu
50−YREAAECjYiqKdvl50bg04Ujg+Xr7Ze5bw1q63VNYlPzgXzUCAP13zNyeDJB/bJErCAKKB0WtERYB
51−AACcNWA9IRBy6xnDX3eColXCoowUbgLQk0kTAMQPRguFQItPOHuzDXuCoss/jieV9Ul+Hrg2TwqK
52−WnvioLAIAABgy6CvgiBoz/apKGL4a1dQFE1YBAAA8DywK3hrWOoAJ1U1EXR3XQuKNhEWAQAAYwwW
53−Gw6B9u6foAgERXsIiwAAgLYHgoUnia4tgBESwcL1UUlQ9Hn7bCo8EhYBAAB1DvJOenR860GLoAh+
54−f4ZUFBS1RlgEAACUH8R5ZLx9hJyfMYKiQ4RFAABAuoGSEMj+w9mfQ4Kiw4RFAADA+iBICAS08Fkl
55−KEpCWAQAACMPrMwLBPTyeSYoSkZYBAAAPQ6ahEDASJ95gqKkhEUAANDaoMgtYQB/PhMFRckJiwAA
56−oJYBjxAIYNvnpqAoC2ERAADkHlQIgQDyf+4JipIRFgEAwN4Bg3mBAKogKEpLWAQAAK+DASEQQDME
57−RekJiwAAGIpbwgD6ISjKQ1gEAEAXhEAAZPl+GSwoCkFYBABA7Z10IRAAZ30HDRgUhSAsAgDgrA64
58−eYEAqPl7atCgKARhEQAAR/17CSGEMP186WSHa9HNEAIB70zTNMy+Xi4XBzyRkYOiEIRFAAAs+ff8
59−gYcQCICSRg+KQhAWAQCMSQgE0J25KioVR/EERb8IiwAAenJGCPS/6ctgZHp0sG+OB0AFXkMk4dF7
60−gqI/hEUAAC04qxLof5O2B6B7gqKvhEUAAGcSAgFQ2HOlkSojQdE7wiIAgFxOvCUMAFgnKHpPWAQA
61−sJUQCIBOjFxlJCiaJywCALgTAgHAEARFy4RFAED/zAsEAKvuVUa9VxgJitYJi6DmD+uf7//+8s/6
62−a969ds/yU6xn636uLWttu9e2dakdX5cRuy2Xf/K2ETBDCAQAbHBWUPS63toJi6BSS8HD9DM+eJh7
63−barlH3nPme2y5h7+LC0zNlACdnaq/r5+v/Zzh0NCIADotsJIUBRPWAQ1fjg/BSKxQc+WQGhp+fd/
64−mwtJltaTOzCKbZe5fSoV6giPYKXD9BQCFSMEAoCx+x+Cok2ERVCZtUBk6e9TLP/5dqrY8CfmFqy1
65−7Xm+/evdenO3C5CgMyQEAoC+xibT1EV1kaBoO2ERVCp38LG0/CPhT+vt8q4dlsIrARVDdBTffB58
66−hGv29X7+d3v8/+v1+ui0AgDEqiUo+rx9NhUeCYug48FcCOfPI7T3faXmQOrtWECJa/eo5xAIAKi8
67−v9Dw/EU1BUWtERYByQaXe8OQ5/fVXNUEvVyruQiBAIBaCIqOERZBJ7ZOVJ17/bUParfs1+utaGu3
68−oKkgIqczrpfHuf+l43NzMABgpD5IQ/MXCYqOExZBxQPCI6HDWoVOzCPhlwaNJQa8c3MFCWPo9Zov
69−zbUEAPRGUJSGsAgqE/M0siOBydryY546VmKw+jpwzt0ukMtZlXOuBQAgeb+m8uoiQVE6wiKo0Gsw
70−kmKwOjcvUEuTMadul63rjQ3STHA9SGdJCAQAUA1BUVrCIqjU0m1ksYPFtWWcFWrEPHZ+7rH1Z243
71−43BLGADATD+pwuoiQVF6wiKoWMzgce01a4HMGQPZLWFXim3J3Y4G+w11boRAAABdERTlISwCoHlC
72−IACAgn2v6dczUmurMBIUpSMsAqDejoh5gQAAiCAoSktYBBQf4BuIIwQCACAVQVF6wiLAgJyk3BIG
73−AEApgqI8hEUARBECAQDwpX9Y4ZPRchgtKApBWATgS14IBAAAb40YFIUgLALolnmBAADI3ufsuLpo
74−1KAoBGERQHtfyEIgAADIauSgKARhEUBV3BIGAEBzfdjOqotGD4pCEBYBlPkCFQIBAED1BEW/CIsA
75−DhACAQCMpbYKmmmaqtmO1quLBEV/CIsA3n3ZmRcIAACGISj6SlgEDEUIBABAT16reWqpNGqJoOg7
76−YRHQDbeEAQAAWwiK3hMWAdUTAgEAQGQ/9qnSqHSVUWvzFgmK5gmLgNMIgQAAgDMIipYJi4DkzAsE
77−AADnu1f5mMfoK0HROmEREE0IBAAAtOysoOh1vbUTFgEhBLeEAQBAr0pWGNU8b5GgKJ6wCDonBAIA
78−AEYnKNpGWASNEgIBAACb+vODzmEkKNpOWASVMS8QAABAGrUERZ+3z6bCI2ERFCIEAgAAanC5XLJW
79−F9Uyb1FNQVFrhEWQ+oOxUCgkBAIAAHaPJzIHRmcTFB0jLILaPrSFQAAAALsJio4TFkEhQiAAAKCq
80−MUqH1UWCojSERZD6A1coBAAAUJygKJ2/nE4AAABASqUrlgRFaaksghQfhD+1Af1QHQcAQEsERemp
81−LAIAAIBB1fCI+yMERXkIiwAAAIDmCYrScRsaJOYWHlrkVkoAgIHHMB08FU1QlJbKIgAAAKBZgqL0
82−hEUAAABAkwRFeQiLAAAAAGaMFhSFICwCAAAAeGvEoCgEYREAAADAN6MGRSEIiwAAAGB4l8sl+TJb
83−fsLayEFRCCH8cEkAQJkOTo5OGAAAaY0eFIUgLAJgcCV/8VpalyAJAOB8gqJfhEUADKPmUuh32yZA
84−AgAoR1D0h7CIrgduBlp9DqqdM4xyHj9vv3MTACAfQdFXwiKAmcH5K4P19o9hT/vlfAQASENQ9J2w
85−iO4HjQZUGKyPeXxG2V/nIQCQyuVyGa5PJSh6T1iEgR0kOIcN2H2OOA8BANoiKJonLAIwYG+6vfne
86−Ls5BAIBlgqJlf2kCeh/oGVRyxvntvNO22gkAoE6ConUqiwAyDthDUOWRsi1xDgIAHHFWUPS63tqp
87−LAIoMGAXdhxrP5yDAABHCYriCYsYYuBnkIQBu/ZCmwIA4xIUbSMsAjhhwI42Ort9tTEAMApB0XbC
88−IoYZABoY4Vpoo120jfMQACCVWoKi1ibRFhYBGKhrD+0OANAdQdF+wiKAkwfqBusCCwAA0hIUHSMs
89−YqjBoAEp1Pe54LoEACAlQdFxP5xGAOebpilcLpfh9rkVKY6NUAwAID9BURrCIoBKjBQY1Rqc5Gz/
90−uWULkQAA0hAUpSMsYriB4YgVHLR1rfR+ftb0eVBDW79ug/AIAGA7QVFawiJgqIH5O7UNznsOjGpo
91−69rb9nn7BEcAAOsERekJixhuIN77YJxjg3OD9D4/C1q93gVHAADLBEV5CIsAKhyk9xZonhV09NSG
92−giMAgGWConSERQCRg3QD9PaOmXMSAGAMgqJkHc0Qpin85ZQip5oHMgZZ7BmglwwhejlHS+/HSLeY
93−lj4nAQBqJChK2nkPIQRhEW0NisAAvbXvmslxse8AgDFcNoKiPIRFGMhCxV9+LZ+jpYMitAMAQA6j
94−BUUhCItoZKB4HwAZCGFwPt71v9b+joE2AQDa6sO1ZMSgKARhEUCSwTnaXfsAAPRl1KAoBGERmbSU
95−SEvPcY62t72CkPh20lYAANuNHBSFICyikcGOQSKtnaejEhQ5PwEAWjd6UBSCsAjAgFwbD9N22g8A
96−YJmg6BdhEcnlmNi6pW0G134egg7tCACQk6DoD2ERBjuAa157AgAMTVD0lbCIpFqu0FFdRM2D8NrP
97−z5zbJ9jQrgBAe/25lvoagqLvhEU0O5Ax0IE+OxbU8zkLANA7QdF7wiIAqiXM0MYAALkIiuYJi0im
98−xYmtc+4DBt+ue+0IAECdBEXLhEUYlAMAAAxstB/NBUXrhEUAVNepEAQDAJDDWUHR63prJyyiukHj
99−1kFi6kGlW9HgXIIiAAD9uRwERfGERQAAAEDXBEXbCIs4rMdKHNVFcM41oqoIAMDYJzVB0XbCIqqy
100−d6BogAkAAMCrWoKi1ibRFhYBsImqIgAA/boW+nSCov2ERVTz4VLbQNGtaAAAAG0SFB0jLKIbqhLA
101−9QsAQJyefxwXFB0nLIJBP0BpSy1himsCAICaCYrSEBZRxaAx1UBYdQK9XRsAANBKf/Xs8ZigKB1h
102−EQCnEvICAHCUoCgtYRG79Dyxdc59Bdc9AABn9ud67NMJitITFtEdVQoAAABjEBTl8cOpBZBOjl9q
103−eg5AhbsAAG32UWvs1wmK0lFZxKkfNLk+UFIv1+03AAAA9RIUpaWyCCCRnkNFgSkAgD7cnLOrigRF
104−6akswoDRvlMxt2kBAMA8QVEeKovodhB8uVwEPBTjXKvvMwAAQL9Uny6F0YKiEFQWAVT7hSxMAQCA
105−c40YFIWgsoiTBsSlBsGpq4umaTKAJ9t1AQAALfVHex8bjRoUhaCyCKDKL+aavngFYgAAjGbkoCgE
106−lUUAmwlPjlOhBwDoC+rP1Wr0oCgElUWc8IFY+kMl9fp8OYx9HZQ4/oIUAAA4h6DoF5VFACtKBoSC
107−IgAAatdrn1VQ9IewiKID5V4+VEx07bz3pQsAAP0QFH0lLGIIqZ+KRl9qODcERQAAtDK26o2g6Dth
108−EVCMwG6cL1wAAGiBoOg9E1xTbHB/9oDYRNfUSFAEAEAr/dbe+q6ConnCIoATv3BrJxQFAKBHgqJl
109−bkMDKGz0aiLVVAAA+m5nEhStU1nErB6fguZWNM4+/wQlAABwnrOCotf11k5lEUBmAiIAAPRjzyco
110−iqeyiLd6rCrKtT2qi5g7z1QSAQBAHQRF26gsAjhIIAQAgL5tvQRF26ksAjhomqYvfwAAgDrUEhS1
111−Nom2yiLeDnxTqTWVvlwuBvUUuYZUHQEAUKve+6qCov2ERQAZCY4AAGihr9pbf1VQdIzb0Fj8sDjC
112−wBi+X18q2gAAIC9B0XHCIoYlzOIsQiMAAGrup7bcVxUUpSEsAjjxyxgAAEhDUJSOsIgsA9dWqnZU
113−F1HDdSc0AgBAP/UYQVFawiKASr6MAQCA7QRF6QmLACohMAIAoMY+as39VEFRHj+c+qQepLZ2a9fl
114−ckm6/9M0ub2t4XPj7C9C5w8AAOwjKEpHWATw5F1QUzpAEhgBAFCbe5+41n6qoCgtt6ExdFVRru12
115−O1FfLpfL40+L1yUAAPRMUJSesAhgg5LBkcAIAIDa1NZHFRTlISwC2KlEaCQwAgCAc40WFIUgLBqe
116−W9Dybb9B/jgERgAAjDaOHKWPOmJQFIKwCCCJ0nMaAQAAeY0aFIUgLCLhQBnIdy2oLgIAoDY991FH
117−DopCEBa5sMk60NfGzqPWz6cc++K6AACgZqMHRSEIiwCyUG0HAMAIevshUFD0i7DIBW1QnHl/VFHg
118−fAIAgPoJiv744XQAyONyuQh3AIDmTdOkavqlj1fzsXKO7CMo+kplEUBjnQkBFAAApCMo+k5YNCC3
119−oJXfL4N7AACgxDjm+U+r48ySBEXvCYsACnxp+zIGAIC6CIrmCYsGo6rovP0zuAfXAwD47qb0mKZk
120−lVFL54mgaJkJrvGFAax2MlzvAAD0QlC0TmURQAGeIAIAwNn90RJVRrX/yHhWUPS63toJiwaiMsAx
121−wPkEAACjEhTFExYBcAphFwDAOXJXGNXYzxMUbSMsAgAAALolKNpOWDQIv+A7Fpyv5XmLzLkEAOjH
122−6p+2eL7UEhS1Nom2sAgAAADojqBoP2HRAPwC4JjgXLL9AAC8U+IJaWcQFB0jLAIAAAC6ISg6TlgE
123−QBTzFgEA6OttcUYVuaAoDWFR59zi4diAawEAgBEIitIRFgEAABDFjzx9a7m6SFCUlrAIgFM7EAAA
124−cISgKD1hUcek/o4RuBYAANiitR8HBUV5CIsAAACA5gmK0hEWdcqv9I4V5JLr1ybXAgDov+Kc2UtQ
125−lJawCAAAAGiWoCi9H04rYpjU9iu/puAz4ZLlOpimyecNAECnfb0cBEV5qCzqkCDDMcNxBgAA0hgt
126−KApBWEQEv/IDJQnVAACMA2sxYlAUgrDIIItqPjgdO1wHrgcAMO6AeowaFIUgLAJoml98AAAgvZGD
127−ohCERRiIahuK6PXXN9VFAAD01rcbPSgKQVjk4sMxBNeENgYAIIQgKLoTFjFL5Qzgs6JvgiIAfI/A
128−H4KiP4RFYJCMjpT2064AAEMTFH0lLNLpx7GkUTWFlbm3xXWhPQEAchEUfScsovpBKBiU+9wYrS21
129−IwBAGYKi94RFOv5UOEB2TF2baNMcbaf9AICzxzo1ERTNExYB+OJuarsEHtoMAOAoQdEyYRHNDELB
130−4NxniPbVVgD4nsH5cpSgaJ2wyMWGY4tjp507bR9tBADw1VlB0et6aycsAkg8QM+theq/UtsoENEm
131−AACxBEXxhEU0NwgFA3SfJ+/aH+0AADBHULSNsMigAMeYho5Ta4Fu6cBo1GtGWAkAME9QtJ2wiGYH
132−oWCA7rNl7rg4BwEACKGeoKi1SbSFRQ0PEHCsOW9wfsZxEehuP072DwD0Vxm3Dyoo2u+HUx+g/g5Q
133−60HR5XI5pR3v6+whaNMRBwCIJyg6RlhENwMpMCCv/3PmrPZ9Xm9rn3fOSQCAbQRFxwmLDGZpYEA8
134−TZPKiMHPKddHnvOwxrZ1nQAA7CcoSkNYBFCxHqv+agiM7l6344z2Fg4B0INeftyk7XNFUJSOsAgf
135−6uDaPGXfagxJ5rYpxbEQCgEA5CMoSktY1BiDjXEHwn6tGe8ccp347AUAYJ2gKL2/nFYGpIDr8sx9
136−9TkEAMBegqI8hEUN8cu2Ab9zwHljv9H2AADvCYrSERYBGLTbf20OANA0QVFa5iwySABci1W1hQo6
137−5xwAwBaCovRUFjXC4MmAzLngHBmpTbSLcw4AIIagKA+VRQAG7FW3kYDUOQcAcKbRgqIQVBY1IcdA
138−yaDBOcF5A3bXn88r5xwAQBtGDIpCUFkERQZqwh0M1tO0n2vJOQcAUMqoQVEIwiIAA/YG21No5JwD
139−AMhp5KAoBLehVc8taAZvJc8N0h1vt/6UaWO0CQB9j13gDKMHRSGoLAJINlDn3HYfsYPqvAMASEtQ
140−9IuwyMACcB11dVxGCI2cgwAA6QmK/hAWVUwZZ3+Du9THdJomg0aDcRaOXS+fo85HAIC8BEVfCYsM
141−DnBMnX8Mc821FB65BgFokR8zaZGg6DthEaT+gvypDaBW7zqvNQRIOtUAAOcQFL0nLAJgaEtBTcog
142−SSAEAFAXQdE8YREAzBDwAAD0SVC0TFgEKQaU//z637lb0O7/DgAAwLkEReuERVBAzDxGAiUAAIC8
143−zgqKXtdbO2ERVGItUBImAQDQRL/WE9G6O569EBTFExZBQnOBToonpKlOAgAA2EdQtI2wCAqICXEE
144−SgAAAOkJirYTFkEl1kKcFGFS7HIESgAAHOpzuhWNStQSFH3ePpsKj4RF0IhS1UkxyxEmAQAAtasp
145−KGqNsAg64nY3AACg6jFLoYozQdExwiIY7cPZ7W4AAEDHBEXHCYuAL2q63S12ewAAgPSmaWpumwVF
146−aQiLgM3MnwQAANRGUJSOsAjIwvxJAABj80Q0ShIUpSUsAk5j/iQA8i3Z/QAADThJREFUAOAoQVF6
147−wiKgWm53AwAAlgiK8hAWAU1zuxsAABCCoCglYRHQPYESAAD0TVCUlrAIIJg/CQAAWiUoSk9YBBDB
148−/EkAADv6NZ6IxnM/NsO5ICjKQ1gEkOrLz+1uAADQndGCohCERQBFCZQAAGjBNE0aIYwZFIUgLAKo
149−jvmTAADgfKMGRSEIiwCaY/4kAKAl5i1q85iNbuSgKARhEUCX3O4GAAD7jB4UhSAsAhiW290AACjW
150−92ykukxQ9IuwCID3X+gV3e4Wuz0AALCXoOgPYREAu5k/CQCgL6POVyQo+kpYBEBW5k8CAKBmgqLv
151−hEUAnM78SQDQN09Ea+c4jUZQ9J6wCIDqmT8JAIDUBEXzhEUAdMH8SQAAB/o3g1UVCYqWCYsAGIb5
152−kwAAEBStExYBwBPzJwEAI1FR9HnKemsnLAKADdzuBgDQJkFRPGERACTmdjcAePO95YloVR6TIn2j
153−Co67oGgbYREAnECgBABQhqBoO2ERAFTK/EkAQA4jzVNUS1D0eftsKjwSFgFAo86cP+kjXL92gP67
154−OSAAQFVqCopaIywCgI6VCpQ+/r6uvkagBIB5i85t+1P6Iicdb0HRMcIiABhcqdvdBEoAQAmCouOE
155−RQDAonuYNH3p/Ny+do4igqCoTtbMch6B1b+XEP43OSgAEOHsuYnOqCoSFKUhLAIADoupCEoVKIV/
156−VzqewiQAGJKgKB1hEQBQRLFA6d+IXzEFSgB0aKSnnH3rQwiKkhIWAQDVmAuUrtfrr05wovmTBEoA
157−0A9BUXrCIgCgHTEBzr+J5kcQKAGEEH7NO5OyYqX1J6KNXL2z9bwpQVCUh7AIAOhLTYGSMAkAihEU
158−pSMsAgDGUypQUp0EwIDOqBwTFKUlLAIAeGctxHG7GwBUQVCUnrAIAGAPt7sBwDelq4oERXkIiwAA
159−cnG7G9BRAGCSa2LOkx6NFhSFICwCADiXQAkAqjViUBSCsAgAoH7mTwKgcj1WFY0aFIUgLAIAaF8l
160−8ydNP0O4/ONwANC+kYOiEIRFAABjKBQoTT+fOtrhGvWez/9ujg80wLxFLJ0bPRk9KApBWAQAwF2p
161−291eO+V/X1dfI1ACoARB0S/CIgAA4qyESZfL5UtlUdLOu0AJoEo9VRUJiv4QFgEAkG7Q8E8I06OT
162−fYvrnEcEQSmWI0wCYPY7RFD0hbAIAIBTxYQ4KQIl1UkA6ago6puwCACA6q2FOKWqk2K2BYB2CIre
163−ExYBANC8UtVJscsRKNErT0Tjfh70QFA0T1gEAMAQagqUhEkA5xIULRMWAQDAfbBg/iSAWSqKxiEs
164−AgCADcyfBNCus4Ki1/XWTlgEAAAJud0NtjFvUf1UFKVdbwuERQAAUJjb3QDKEhRtIywCAIAKCZSo
165−VeonolH3se6BoGg7YREAADTK/EkAK59flQRFn7fPpsIjYREAAHTK/EnAXj1UFdUUFLVGWAQAAANz
166−uxvQI0HRMcIiAABgkUCJV6nnLfJEtHqOaw8ERccJiwAAgMPMnwTUQFCUhrAIAADIzvxJUKeeKroE
167−RekIiwAAgCq43S3xAPZpPwVk9E5QlJawCAAAaEYNt7u1GLx8/H0VGNHtvFCCovSERQAAQDdKVCe1
168−WpkkMKJHgqI8hEUAAMBQSlQn1TBv0ud/t2/bkTIw8kS0Oo3choKidIRFAAAAzwO/CsKkmO2I3Zec
169−gRFUc90KipISFgEAAGwZlJ44b9KekCdnYNRCFYtqpQGuSUFRcsIiAACAlAPXjPMm7b29TYUR3V5v
170−gqIshEUAAAClB7iZAqWt74kJjKafjhdjGy0oCkFYBAAAUKV3IU6qW9y+L3PS4PDu+hgwKApBWAQA
171−ANCMUvMlAeMGRSEIiwAAALqR6va2PXMZnTWwtl7r7Wm9tRAWAQAADCBn1ZEgwXqtty/Coozc9QsA
172−AJwt5glqHwb01mu9p663NsIiAACAzsQERAb01mu9day3RsIiAACATpQKiUYc0Fuv9Y5EWJTY5+2m
173−EQAAgHrGKAkDolEH9NZrvaMRFgEAAHQoR0g04oDeeq13RMIiAACATuQKiEYd0Fuv9Y7qL00AAACA
174−Ab31Wi93wiIAAAAM6K3XenkQFgEAAGBAb73WW3C9tRMWAQAAYEBvvdZbaL0tEBYBAABgQG+91ltg
175−va0QFgEAAGBAb73Wm3m9LREWAQAAMEuQYL3W2856UxEWAQAA8JYBvfVabzvrTekyTdO0+U2XSwgh
176−hNvt5tMTAMjuer2GEELY0W2hZMfydx9xenSO9RWhFS3fLgMtKhkgffzuR11+/3dMf0plEQAAAAAP
177−wiIAAAAAHn5oAgAAgLG1OKcKkI/KIgAAAAAehEUAAAAAPAiLAAAAAHgQFgEAAADwYIJrAAAAivq4
178−frz9+7mJtre8/vm1SxN3z71ubl1bl5n6PUe2K3adW4/DWvsfPb5737PlmJrc/T2VRQAAABSzNHB/
179−929bX3/W9u/ZzjO2/+gxOrrcrcve856alt8qlUUAAAAUsVb18zpoX3r9/d8+rh+L1Sdbq19itu91
180−uXu28/73qapz9tiyjyWWneo9Z+xvb1QWAQAAkF3M7WGxAczSa3Pac9vbnu08M7RYu+3r8/b5eM3W
181−dj/aFjmO8xnnUQuERQAAABSzNQhZen3Mv81VK6UOZPZu52i3Qe1p99zhmYqi79yGBgAAABFShjqf
182−t88vy4sNsfZMon10H9fmYzozbMndHqMSFgEAANCleyBzDzS2VBWVmDfoXfVTrsqnFPv4/HevYRd9
183−ERYBAABApBwhzlxodHRC59T7WGM4pIIoD2ERAAAAxWy9bWntaWdrnquL7v8dY2sIcXQ7n9d55oTd
184−e7Z9yzHds2+520OF1HcmuAYAACC7mKdOzT1ZbG0enVqeHrZlO1sLKO5PQXv9s8WeY5b7ONdyHtVG
185−ZREAAABFPM9zs6UqaOn1MQP8Ek/T2rOde+ZFamVC55T7lqo9SsxD1QuVRQAAABSz9RHzex9Jb7+O
186−i7l1b8utc3uqkfa8p6blt+oyTdO0+U2XSwghhNvtpgUBgOyu12sIIYQd3RZKdix/9xGnRwdcXxEA
187−zvbxux91+f3fMf0plUUAAAAAPJizCACA09yrxl7NVbBvef3za5cq4udeN7eurctM/Z4j2xW7ztT7
188−eH/t2nGda//YZS7tz1q77DlmAL1SWQQAwCmWBvbv/m3r68/a/j3becb2x+5jDccixTLn9qXm9oc9
189−Pq4fi38gRrHKopikvvQvG3vWs+fLxS8yfpEBAOb7DDH9taXX3//ter0u9pP29AvXtu91uXu2c6mP
190−d6RftsWWdR89FiXsOWZ7zw+ojcmaSaFIZVGqXx5S/nqzd3v37r9fZAAA1sOGd3+/9votPz6msue2
191−tz3bWWvgcsaxOLq81tof4EzZK4u2/mq05XVry1/7ZWPLLw4pvlBTbXcNHQS/yAAAOfoae19/u90W
192−K5zvP3jN9V9S9lf2budaFXlpe6uacrRnquW11P4AZ8paWbT1V6PUy6/h1wO/yPjCBQD6kzNcWqrk
193−fve61z9792duOTX05e7bkONHyL3tD9CzIreh5f6CWftlo9aORMntzn1Puy9XAKBmr2HDliqSEkHK
194−7XYTWpx8fmh/gD9+1LhRZ06SfOQLodQEhEe+BN+VYKdc9mtbqCoCAHqVo5/zroJmy5QKqfclV9+x
195−tr7snvYH6NmPkXe+9nCn1Q6T0AgAiO2LbekjrD3tLKav8lwtErvuPU/KPbKdc/2qVo5diW0+crtd
196−D+0PkNtfNW7UvQz0tRz0zKdb7Nnu5+2v5YumxPbMlfECALz2tbY+DGTtCbO1PBxky3a21E86eiy2
197−PiE4VT+9l/YHKKVIZdHR0s21JyDs/WWjhvmM/CIDAIzouX+3pSpo6fUxfbsSc2nu2c49fdaUUzds
198−DWy27mOq45dif1K1P0DPslYWbf3VKPXya3uKQ6rt9osMANCDrQ/7qPmhJr3u17uK8b3bnGo/j94F
199−0Op5BVDSZZqmafObLpdNH55rQcJrBcrWx83HLv/19ak+/Pc+Qn7rdqfc19flbA1+UuwLAGz9rt3R
200−baFkx/J3H/F+lD59/wPA6T5+96Muv/87pj9VZM6iFGn93mXU8uQGv8gAAAAALShSWQQAcITKokY6
201−liqLAKA6eyqLfmg2AADoj2kCANhLWAQAAB0SBgGwl7BohV9kAAAAgJEIi1YIgwAAAICRCIsAAMji
202−Y6VCGwCo01+aAAAAAIA7lUUAACR10QQA0PZ3+TRN0+Y3XXQBAIDydnRbKNmx1EcEgC76UyqLAAAo
203−1vkEAOq3KyzSEQAAAADokwmuAQAAAHgQFgEAAADwICwCAAAA4EFYBAAAAMCDsAgAAACAB2ERAAAA
204−AA/CIgAAAAAehEUAAAAAPAiLAAAAAHgQFgEAAADwICwCAAAA4EFYBAAAAMCDsAgAAACAB2ERAAAA
205−AA/CIgAAAAAehEUAAAAAPAiLAAAAAHgQFgEAAADwICwCAAAA4EFYBAAAAMCDsAgAAACAB2ERAAAA
206−AA/CIgAAAAAe/g/10lQlA3JSSwAAAABJRU5ErkJggg==
Documentation/DocBook/media/typical_media_device.svg+0−28
@@ -1,28 +0,0 @@
1−<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2−<svg stroke-linejoin="round" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" clip-path="url(#a)" xml:space="preserve" fill-rule="evenodd" height="178.78mm" viewBox="0 0 24285.662 17877.829" width="251.99mm" version="1.2" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" preserveAspectRatio="xMidYMid" stroke-width="28.222"><defs><clipPath id="a" clipPathUnits="userSpaceOnUse"><rect y="0" x="0" width="28000" height="21000"/></clipPath></defs><g transform="matrix(1.004 0 0 1 -2185.6 -2186)" class="com.sun.star.drawing.CustomShape"><path fill="#fcf" d="m12231 4800c-516 0-1031 515-1031 1031v4124c0 516 515 1032 1031 1032h8538c516 0 1032-516 1032-1032v-4124c0-516-516-1031-1032-1031h-8538z"/></g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.CustomShape"><path fill="#ffc" d="m3595 15607c-293 0-585 292-585 585v2340c0 293 292 586 585 586h3275c293 0 586-293 586-586v-2340c0-293-293-585-586-585h-3275z"/></g><g transform="translate(-2197.3 -2186)" class="com.sun.star.drawing.CustomShape"><path fill="#e6e6e6" d="m2663 2186c-461 0-922 461-922 922v11169c0 461 461 923 922 923h3692c461 0 922-462 922-923v-11169c0-461-461-922-922-922h-3692z"/></g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.RectangleShape"><path fill="#ff8080" d="m4461 8602h-2260v-1086h4520v1086h-2260z"/><path fill="none" d="m4461 8602h-2260v-1086h4520v1086h-2260z" stroke="#3465af"/><text class="TextShape"><tspan font-size="635px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"><tspan y="8275" x="2579" class="TextPosition"><tspan fill="#000000">Audio decoder</tspan></tspan></tspan></text>
3−</g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.RectangleShape"><path fill="#ff8080" d="m4461 11772h-2260v-1270h4520v1270h-2260z"/><path fill="none" d="m4461 11772h-2260v-1270h4520v1270h-2260z" stroke="#3465af"/><text class="TextShape"><tspan font-size="635px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"><tspan y="11353" x="2617" class="TextPosition"><tspan fill="#000000">Video decoder</tspan></tspan></tspan></text>
4−</g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.RectangleShape"><path fill="#ff8080" d="m4453 10217h-2269v-1224h4537v1224h-2268z"/><path fill="none" d="m4453 10217h-2269v-1224h4537v1224h-2268z" stroke="#3465af"/><text class="TextShape"><tspan font-size="635px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"><tspan y="9821" x="2571" class="TextPosition"><tspan fill="#000000">Audio encoder</tspan></tspan></tspan></text>
5−</g><g transform="translate(-2140.9 -2468.2)" class="com.sun.star.drawing.RectangleShape"><path fill="#cfc" d="m15711 12832h-3810v-1281h7620v1281h-3810z"/><path fill="none" d="m15711 12832h-3810v-1281h7620v1281h-3810z" stroke="#3465af"/><text class="TextShape"><tspan font-size="635px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"><tspan y="12407" x="12377" class="TextPosition"><tspan fill="#000000">Button Key/IR input logic</tspan></tspan></tspan></text>
6−</g><g transform="translate(-2140.9 -2411.8)" class="com.sun.star.drawing.RectangleShape"><path fill="#cfe7f5" d="m14169 14572h-2268v-1412h4536v1412h-2268z"/><path fill="none" d="m14169 14572h-2268v-1412h4536v1412h-2268z" stroke="#3465af"/><text class="TextShape"><tspan font-size="635px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"><tspan y="14082" x="12882" class="TextPosition"><tspan fill="#000000">EEPROM</tspan></tspan></tspan></text>
7−</g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.RectangleShape"><path fill="#fc9" d="m5140 17662h-1563v-1715h3126v1715h-1563z"/><path fill="none" d="m5140 17662h-1563v-1715h3126v1715h-1563z" stroke="#3465af"/><text class="TextShape"><tspan font-size="635px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"><tspan y="17020" x="4276" class="TextPosition"><tspan fill="#000000">Sensor</tspan></tspan></tspan></text>
8−</g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.CustomShape"><path fill="#729fcf" d="m6719 8030 385-353v176h1167v-176l386 353-386 354v-177h-1167v177l-385-354z"/><path fill="none" d="m6719 8030 385-353v176h1167v-176l386 353-386 354v-177h-1167v177l-385-354z" stroke="#3465af"/></g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.CustomShape"><path fill="#729fcf" d="m6719 9612 385-353v176h1167v-176l386 353-386 354v-177h-1167v177l-385-354z"/><path fill="none" d="m6719 9612 385-353v176h1167v-176l386 353-386 354v-177h-1167v177l-385-354z" stroke="#3465af"/></g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.CustomShape"><path fill="#729fcf" d="m6721 11100 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z"/><path fill="none" d="m6721 11100 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z" stroke="#3465af"/></g><g transform="translate(-2140.9 -2411.8)" class="com.sun.star.drawing.CustomShape"><path fill="#729fcf" d="m9962 13854 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z"/><path fill="none" d="m9962 13854 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z" stroke="#3465af"/></g><g transform="translate(-2140.9 -2468.2)" class="com.sun.star.drawing.CustomShape"><path fill="#729fcf" d="m9962 12163 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z"/><path fill="none" d="m9962 12163 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z" stroke="#3465af"/></g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.CustomShape"><path fill="#729fcf" d="m9962 17158 670-353v176h2028v-176l671 353-671 354v-177h-2028v177l-670-354z"/><path fill="none" d="m9962 17158 670-353v176h2028v-176l671 353-671 354v-177h-2028v177l-670-354z" stroke="#3465af"/></g><g transform="matrix(0 .83339 -1.0005 0 30268 -5276.3)" class="com.sun.star.drawing.CustomShape"><path fill="#729fcf" d="m23229 12779 1009-978 1009 978h-505v2959h505l-1009 979-1009-979h504v-2959h-504z"/><path fill="none" d="m23229 12779 1009-978 1009 978h-505v2959h505l-1009 979-1009-979h504v-2959h-504z" stroke="#3465af"/></g><g transform="translate(-9973.6 -666.6)" class="com.sun.star.drawing.TextShape"><text class="TextShape"><tspan font-size="706px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"><tspan y="15832" x="24341" class="TextPosition" transform="matrix(0,-1,1,0,8509,40173)"><tspan fill="#000000">System Bus</tspan></tspan></tspan></text>
9−</g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.RectangleShape"><path fill="#cff" d="m13151 9262h-1250v-875h2499v875h-1249z"/><path fill="none" d="m13151 9262h-1250v-875h2499v875h-1249z" stroke="#3465af"/><text class="TextShape"><tspan font-size="635px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"><tspan y="9040" x="12215" class="TextPosition"><tspan fill="#000000">Demux</tspan></tspan></tspan></text>
10−</g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.CustomShape"><path fill="#729fcf" d="m9996 8765 373-357v178h1130v-178l374 357-374 358v-179h-1130v179l-373-358z"/><path fill="none" d="m9996 8765 373-357v178h1130v-178l374 357-374 358v-179h-1130v179l-373-358z" stroke="#3465af"/></g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.CustomShape"><path fill="#729fcf" d="m9996 7378 373-358v179h1130v-179l374 358-374 358v-179h-1130v179l-373-358z"/><path fill="none" d="m9996 7378 373-358v179h1130v-179l374 358-374 358v-179h-1130v179l-373-358z" stroke="#3465af"/></g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.RectangleShape"><path fill="#cff" d="m16322 7992h-4421v-1270h8841v1270h-4420z"/><path fill="none" d="m16322 7992h-4421v-1270h8841v1270h-4420z" stroke="#3465af"/><text class="TextShape"><tspan font-size="635px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"><tspan y="7573" x="12786" class="TextPosition"><tspan fill="#000000">Conditional Access Module</tspan></tspan></tspan></text>
11−</g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.RectangleShape"><path fill="#ff8080" d="m4445 13287h-2269v-1224h4537v1224h-2268z"/><path fill="none" d="m4445 13287h-2269v-1224h4537v1224h-2268z" stroke="#3465af"/><text class="TextShape"><tspan font-size="635px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"><tspan y="12891" x="2601" class="TextPosition"><tspan fill="#000000">Video encoder</tspan></tspan></tspan></text>
12−</g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.CustomShape"><path fill="#729fcf" d="m6721 12634 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z"/><path fill="none" d="m6721 12634 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z" stroke="#3465af"/></g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.CustomShape"><path fill="#729fcf" d="m20791 7545 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z"/><path fill="none" d="m20791 7545 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z" stroke="#3465af"/></g><g transform="translate(-2028 -2186)" class="com.sun.star.drawing.TextShape"><text class="TextShape"><tspan font-size="635px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"><tspan y="14478" x="1990" class="TextPosition"><tspan fill="#000000">Radio / Analog TV</tspan></tspan></tspan></text>
13−</g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.TextShape"><text class="TextShape"><tspan font-size="635px" font-family="&apos;Times New Roman&apos;, serif" font-weight="700" class="TextParagraph"><tspan y="10724" x="14956" class="TextPosition"><tspan fill="#000000">Digital TV</tspan></tspan></tspan></text>
14−</g><g transform="translate(-8970.5 -1395.8)" class="com.sun.star.drawing.TextShape"><text class="TextShape"><tspan font-size="494px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"><tspan y="19167" x="14724" class="TextPosition"><tspan fill="#000000">PS.: picture is not complete: other blocks may be present</tspan></tspan></tspan></text>
15−</g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.TextShape"><text class="TextShape"><tspan font-size="635px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"><tspan y="18561" x="4199" class="TextPosition"><tspan fill="#000000">Webcam</tspan></tspan></tspan></text>
16−</g><g transform="translate(-2140.9 -2468.2)" class="com.sun.star.drawing.RectangleShape"><path fill="#f90" d="m14552 16372h-2650v-1412h5299v1412h-2649z"/><path fill="none" d="m14552 16372h-2650v-1412h5299v1412h-2649z" stroke="#3465af"/><text class="TextShape"><tspan font-size="635px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"><tspan y="15882" x="12265" class="TextPosition"><tspan fill="#000000">Processing blocks</tspan></tspan></tspan></text>
17−</g><g transform="translate(-2140.9 -2468.2)" class="com.sun.star.drawing.CustomShape"><path fill="#729fcf" d="m9962 15654 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z"/><path fill="none" d="m9962 15654 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z" stroke="#3465af"/></g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.CustomShape"><path fill="#729fcf" d="m6702 16954 397-353v176h1201v-176l398 353-398 354v-177h-1201v177l-397-354z"/><path fill="none" d="m6702 16954 397-353v176h1201v-176l398 353-398 354v-177h-1201v177l-397-354z" stroke="#3465af"/></g><g transform="translate(-2479.5 -2186)" class="com.sun.star.drawing.TextShape"><text class="TextShape"><tspan font-size="635px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"><tspan y="8792" x="22850" class="TextPosition"><tspan fill="#000000">Smartcard</tspan></tspan></tspan></text>
18−</g><g transform="matrix(1.0048 0 0 1 -2207.4 -2186)" class="com.sun.star.drawing.CustomShape"><path fill="#fcf" d="m2766 2600c-333 0-666 333-666 666v2668c0 333 333 666 666 666h18368c333 0 667-333 667-666v-2668c0-333-334-666-667-666h-18368z"/></g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.RectangleShape"><path fill="#ff8080" d="m5121 5155h-1614v-1816h3227v1816h-1613z"/><path fill="none" d="m5121 5155h-1614v-1816h3227v1816h-1613z" stroke="#3465af"/><text font-size="635px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextShape"><tspan class="TextParagraph"><tspan y="4111" x="4374" class="TextPosition"><tspan fill="#000000">Tuner</tspan></tspan></tspan><tspan class="TextParagraph"><tspan y="4814" x="4151" class="TextPosition"><tspan fill="#000000">FM/TV</tspan></tspan></tspan></text>
19−</g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.CustomShape"><path fill="#ff8080" d="m2902 3702c0 111 40 202 88 202h530c48 0 89-91 89-202 0-110-41-202-89-202h-530c-48 0-88 92-88 202z"/><path fill="none" d="m2902 3702c0 111 40 202 88 202h530c48 0 89-91 89-202 0-110-41-202-89-202h-530c-48 0-88 92-88 202z" stroke="#3465af"/><path fill="#ffb3b3" d="m2902 3702c0 111 40 202 88 202s88-91 88-202c0-110-40-202-88-202s-88 92-88 202z"/><path fill="none" d="m2902 3702c0 111 40 202 88 202s88-91 88-202c0-110-40-202-88-202s-88 92-88 202z" stroke="#3465af"/></g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.CustomShape"><path fill="#ff8080" d="m2903 4267c0 110 40 202 88 202h530c48 0 89-92 89-202s-41-203-89-203h-530c-48 0-88 93-88 203z"/><path fill="none" d="m2903 4267c0 110 40 202 88 202h530c48 0 89-92 89-202s-41-203-89-203h-530c-48 0-88 93-88 203z" stroke="#3465af"/><path fill="#ffb3b3" d="m2903 4267c0 110 40 202 88 202s88-92 88-202-40-203-88-203-88 93-88 203z"/><path fill="none" d="m2903 4267c0 110 40 202 88 202s88-92 88-202-40-203-88-203-88 93-88 203z" stroke="#3465af"/></g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.CustomShape"><path fill="#729fcf" d="m6719 4196 385-353v176h1167v-176l386 353-386 354v-177h-1167v177l-385-354z"/><path fill="none" d="m6719 4196 385-353v176h1167v-176l386 353-386 354v-177h-1167v177l-385-354z" stroke="#3465af"/></g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.CustomShape"><path fill="#729fcf" d="m9979 4150 402-368v184h1217v-184l403 368-403 369v-185h-1217v185l-402-369z"/><path fill="none" d="m9979 4150 402-368v184h1217v-184l403 368-403 369v-185h-1217v185l-402-369z" stroke="#3465af"/></g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.RectangleShape"><path fill="#cff" d="m16500 6189h-4500v-1389h9e3v1389h-4500z"/><path fill="none" d="m16500 6189h-4500v-1389h9e3v1389h-4500z" stroke="#3465af"/><text class="TextShape"><tspan font-size="635px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"><tspan y="5710" x="12051" class="TextPosition"><tspan fill="#000000">Satellite Equipment Control (SEC)</tspan></tspan></tspan></text>
20−</g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.CustomShape"><path fill="#cff" d="m13400 4600h-1400v-1e3h2800v1e3h-1400z"/><path fill="none" d="m13400 4600h-1400v-1e3h2800v1e3h-1400z" stroke="#3465af"/><text class="TextShape"><tspan font-size="635px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"><tspan y="4316" x="12465" class="TextPosition"><tspan fill="#000000">Demod</tspan></tspan></tspan></text>
21−</g><g transform="translate(-2140.9 -2186)" class="com.sun.star.drawing.CustomShape"><path fill="#729fcf" d="m9979 5451 402-368v184h1217v-184l403 368-403 369v-185h-1217v185l-402-369z"/><path fill="none" d="m9979 5451 402-368v184h1217v-184l403 368-403 369v-185h-1217v185l-402-369z" stroke="#3465af"/></g><path fill="#ff9" d="m7855.1 9099v7302h-1270v-14605h1270v7303z"/><path fill="none" d="m7855.1 9099v7302h-1270v-14605h1270v7303z" stroke="#3465af"/><text y="-6640.4663" x="-20770.572" transform="rotate(-90)" class="TextShape"><tspan font-size="635px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"><tspan y="7409.5396" x="-11193.634" class="TextPosition" transform="matrix(0,-1,1,0,-4473,23627)"><tspan fill="#000000">I2C Bus (control bus)</tspan></tspan></tspan></text>
22−<g transform="translate(-2197.3 -2186)" class="com.sun.star.drawing.TextShape"><text class="TextShape"><tspan font-size="635px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"><tspan y="3278" x="9391" class="TextPosition"><tspan fill="#000000">Digital TV Frontend</tspan></tspan></tspan></text>
23−</g><g transform="matrix(1.015 0 0 .99994 -2233.3 -2185.7)" class="com.sun.star.drawing.CustomShape"><g stroke="#3465af" fill="none"><path d="m3e3 2800c-18 0-35 1-53 3"/><path d="m2915 2808c-17 3-35 7-52 12"/><path d="m2832 2830c-16 6-33 12-49 20"/><path d="m2754 2864c-15 8-31 17-46 27"/><path d="m2681 2909c-14 10-28 21-42 32"/><path d="m2614 2962c-13 12-26 24-38 37"/><path d="m2554 3023c-11 13-22 27-33 41"/><path d="m2502 3091c-10 14-19 29-28 45"/><path d="m2459 3164c-8 16-15 32-22 49"/><path d="m2426 3243c-5 17-10 34-14 51"/><path d="m2406 3326c-3 18-5 35-6 53"/><path d="m2400 3411v53"/><path d="m2400 3497v53"/><path d="m2400 3582v53"/><path d="m2400 3668v53"/><path d="m2400 3753v53"/><path d="m2400 3839v53"/><path d="m2400 3924v53"/><path d="m2400 4009v54"/><path d="m2400 4095v53"/><path d="m2400 4180v53"/><path d="m2400 4266v53"/><path d="m2400 4351v53"/><path d="m2400 4437v53"/><path d="m2400 4522v53"/><path d="m2400 4607v54"/><path d="m2400 4693v53"/><path d="m2400 4778v53"/><path d="m2400 4864v53"/><path d="m2400 4949v53"/><path d="m2400 5035v53"/><path d="m2400 5120v53"/><path d="m2400 5205v54"/><path d="m2400 5291v53"/><path d="m2400 5376v53"/><path d="m2400 5462v53"/><path d="m2400 5547v53"/><path d="m2400 5633v53"/><path d="m2400 5718v53"/><path d="m2400 5803c0 18 1 36 3 53"/><path d="m2408 5888c4 18 8 35 13 52"/><path d="m2431 5971c6 16 13 33 20 49"/><path d="m2466 6049c8 15 17 31 27 46"/><path d="m2511 6122c10 14 21 28 32 42"/><path d="m2564 6188c12 13 25 26 38 38"/><path d="m2626 6248c13 11 27 23 41 33"/><path d="m2694 6300c14 10 29 19 45 27"/><path d="m2768 6343c15 7 32 15 48 21"/><path d="m2847 6375c17 5 34 10 51 14"/><path d="m2930 6395c17 2 35 4 53 5"/><path d="m3015 6400h53"/><path d="m3100 6400h53"/><path d="m3186 6400h53"/><path d="m3271 6400h53"/><path d="m3357 6400h53"/><path d="m3442 6400h53"/><path d="m3527 6400h54"/><path d="m3613 6400h53"/><path d="m3698 6400h53"/><path d="m3784 6400h53"/><path d="m3869 6400h53"/><path d="m3955 6400h53"/><path d="m4040 6400h53"/><path d="m4125 6400h54"/><path d="m4211 6400h53"/><path d="m4296 6400h53"/><path d="m4382 6400h53"/><path d="m4467 6400h53"/><path d="m4553 6400h53"/><path d="m4638 6400h53"/><path d="m4723 6400h54"/><path d="m4809 6400h53"/><path d="m4894 6400h53"/><path d="m4980 6400h53"/><path d="m5065 6400h53"/><path d="m5151 6400h53"/><path d="m5236 6400h53"/><path d="m5322 6400h53"/><path d="m5407 6400h53"/><path d="m5492 6400h53"/><path d="m5578 6400h53"/><path d="m5663 6400h53"/><path d="m5749 6400h53"/><path d="m5834 6400h53"/><path d="m5920 6400h53"/><path d="m6005 6400h53"/><path d="m6090 6400h53"/><path d="m6176 6400h53"/><path d="m6261 6400h53"/><path d="m6347 6400h53"/><path d="m6432 6400h53"/><path d="m6518 6400h53"/><path d="m6603 6400h53"/><path d="m6688 6400h54"/><path d="m6774 6400h53"/><path d="m6859 6400h53"/><path d="m6945 6400h53"/><path d="m7030 6400h53"/><path d="m7116 6400h53"/><path d="m7201 6400h53"/><path d="m7286 6400h54"/><path d="m7372 6400h53"/><path d="m7457 6400h53"/><path d="m7543 6400h53"/><path d="m7628 6400h53"/><path d="m7714 6400h53"/><path d="m7799 6400h53"/><path d="m7884 6400h54"/><path d="m7970 6400h53"/><path d="m8055 6400h53"/><path d="m8141 6400h53"/><path d="m8226 6400h53"/><path d="m8312 6400h53"/><path d="m8397 6400h53"/><path d="m8482 6400h54"/><path d="m8568 6400h53"/><path d="m8653 6400h53"/><path d="m8739 6400h53"/><path d="m8824 6400h53"/><path d="m8910 6400h53"/><path d="m8995 6400h53"/><path d="m9081 6400h53"/><path d="m9166 6400h53"/><path d="m9251 6400h53"/><path d="m9337 6400h53"/><path d="m9422 6400h53"/><path d="m9508 6400h53"/><path d="m9593 6400h53"/><path d="m9679 6400h53"/><path d="m9764 6400h53"/><path d="m9849 6400h53"/><path d="m9935 6400h53"/><path d="m10020 6400h53"/><path d="m10106 6400h53"/><path d="m10191 6400h53"/><path d="m10277 6400h53"/><path d="m10362 6400h53"/><path d="m10447 6400h53"/><path d="m10533 6400h53"/><path d="m10618 6400h53"/><path d="m10704 6400h53"/><path d="m10789 6400h53"/><path d="m10875 6400h53"/><path d="m10960 6400h53"/><path d="m11045 6400h54"/><path d="m11131 6400h53"/><path d="m11216 6400h53"/><path d="m11302 6400h53"/><path d="m11387 6400h53"/><path d="m11473 6400h53"/><path d="m11558 6400h53"/><path d="m11643 6400h54"/><path d="m11729 6400h53"/><path d="m11814 6400h53"/><path d="m11900 6400h53"/><path d="m11985 6400h53"/><path d="m12071 6400h53"/><path d="m12156 6400h53"/><path d="m12241 6400h54"/><path d="m12327 6400h53"/><path d="m12412 6400h53"/><path d="m12498 6400h53"/><path d="m12583 6400h53"/><path d="m12669 6400h53"/><path d="m12754 6400h53"/><path d="m12839 6400h54"/><path d="m12925 6400h53"/><path d="m13010 6400h53"/><path d="m13096 6400h53"/><path d="m13181 6400h53"/><path d="m13267 6400h53"/><path d="m13352 6400h53"/><path d="m13438 6400h53"/><path d="m13523 6400h53"/><path d="m13608 6400h53"/><path d="m13694 6400h53"/><path d="m13779 6400h53"/><path d="m13865 6400h53"/><path d="m13950 6400h53"/><path d="m14036 6400h53"/><path d="m14121 6400h53"/><path d="m14206 6400h53"/><path d="m14292 6400h53"/><path d="m14377 6400h53"/><path d="m14463 6400h53"/><path d="m14548 6400h53"/><path d="m14634 6400h53"/><path d="m14719 6400h53"/><path d="m14804 6400h54"/><path d="m14890 6400h53"/><path d="m14975 6400h53"/><path d="m15061 6400h53"/><path d="m15146 6400h53"/><path d="m15232 6400h53"/><path d="m15317 6400h53"/><path d="m15402 6400h54"/><path d="m15488 6400h53"/><path d="m15573 6400h53"/><path d="m15659 6400h53"/><path d="m15744 6400h53"/><path d="m15830 6400h53"/><path d="m15915 6400h53"/><path d="m16000 6400h54"/><path d="m16086 6400h53"/><path d="m16171 6400h53"/><path d="m16257 6400h53"/><path d="m16342 6400h53"/><path d="m16428 6400h53"/><path d="m16513 6400h53"/><path d="m16598 6400h54"/><path d="m16684 6400h53"/><path d="m16769 6400h53"/><path d="m16855 6400h53"/><path d="m16940 6400h53"/><path d="m17026 6400h53"/><path d="m17111 6400h53"/><path d="m17196 6400h54"/><path d="m17282 6400h53"/><path d="m17367 6400h53"/><path d="m17453 6400h53"/><path d="m17538 6400h53"/><path d="m17624 6400h53"/><path d="m17709 6400h53"/><path d="m17795 6400h53"/><path d="m17880 6400h53"/><path d="m17965 6400h53"/><path d="m18051 6400h53"/><path d="m18136 6400h53"/><path d="m18222 6400h53"/><path d="m18307 6400h53"/><path d="m18393 6400h53"/><path d="m18478 6400h53"/><path d="m18563 6400h53"/><path d="m18649 6400h53"/><path d="m18734 6400h53"/><path d="m18820 6400h53"/><path d="m18905 6400h53"/><path d="m18991 6400h53"/><path d="m19076 6400h53"/><path d="m19161 6400h54"/><path d="m19247 6400h53"/><path d="m19332 6400h53"/><path d="m19418 6400h53"/><path d="m19503 6400h53"/><path d="m19589 6400h53"/><path d="m19674 6400h53"/><path d="m19759 6400h54"/><path d="m19845 6400h53"/><path d="m19930 6400h53"/><path d="m20016 6400h53"/><path d="m20101 6400h53"/><path d="m20187 6400h53"/><path d="m20272 6400h53"/><path d="m20357 6400h54"/><path d="m20443 6400h53"/><path d="m20528 6400h53"/><path d="m20614 6400c17-1 35-2 53-5"/><path d="m20699 6390c17-4 34-9 51-14"/><path d="m20781 6365c16-6 32-13 48-21"/><path d="m20858 6329c15-8 31-17 45-27"/><path d="m20930 6283c14-10 28-21 42-32"/><path d="m20996 6229c13-12 25-25 37-38"/><path d="m21055 6167c11-14 22-28 33-42"/><path d="m21106 6098c10-15 19-30 27-45"/><path d="m21148 6024c7-16 14-33 20-49"/><path d="m21179 5944c5-17 9-34 13-51"/><path d="m21197 5861c2-18 4-35 4-53"/><path d="m21201 5776v-54"/><path d="m21201 5690v-53"/><path d="m21201 5605v-53"/><path d="m21201 5519v-53"/><path d="m21201 5434v-53"/><path d="m21201 5348v-53"/><path d="m21201 5263v-53"/><path d="m21201 5178v-54"/><path d="m21201 5092v-53"/><path d="m21201 5007v-53"/><path d="m21201 4921v-53"/><path d="m21201 4836v-53"/><path d="m21201 4750v-53"/><path d="m21201 4665v-53"/><path d="m21201 4579v-53"/><path d="m21201 4494v-53"/><path d="m21201 4409v-53"/><path d="m21201 4323v-53"/><path d="m21201 4238v-53"/><path d="m21201 4152v-53"/><path d="m21201 4067v-53"/><path d="m21201 3981v-53"/><path d="m21201 3896v-53"/><path d="m21201 3811v-53"/><path d="m21201 3725v-53"/><path d="m21201 3640v-53"/><path d="m21201 3554v-53"/><path d="m21201 3469v-53"/><path d="m21201 3383c-1-17-3-35-5-52"/><path d="m21190 3299c-4-17-8-35-14-51"/><path d="m21165 3217c-6-16-13-33-21-49"/><path d="m21129 3140c-9-16-18-31-28-46"/><path d="m21082 3068c-10-14-21-28-33-42"/><path d="m21027 3002c-12-13-24-25-37-37"/><path d="m20965 2944c-14-12-28-22-42-33"/><path d="m20896 2893c-15-9-30-18-46-27"/><path d="m20821 2852c-16-8-32-14-49-20"/><path d="m20741 2821c-17-5-34-9-51-12"/><path d="m20658 2804c-18-3-35-4-53-4"/><path d="m20573 2800h-53"/><path d="m20487 2800h-53"/><path d="m20402 2800h-53"/><path d="m20316 2800h-53"/><path d="m20231 2800h-53"/><path d="m20146 2800h-54"/><path d="m20060 2800h-53"/><path d="m19975 2800h-53"/><path d="m19889 2800h-53"/><path d="m19804 2800h-53"/><path d="m19718 2800h-53"/><path d="m19633 2800h-53"/><path d="m19548 2800h-54"/><path d="m19462 2800h-53"/><path d="m19377 2800h-53"/><path d="m19291 2800h-53"/><path d="m19206 2800h-53"/><path d="m19120 2800h-53"/><path d="m19035 2800h-53"/><path d="m18950 2800h-54"/><path d="m18864 2800h-53"/><path d="m18779 2800h-53"/><path d="m18693 2800h-53"/><path d="m18608 2800h-53"/><path d="m18522 2800h-53"/><path d="m18437 2800h-53"/><path d="m18352 2800h-54"/><path d="m18266 2800h-53"/><path d="m18181 2800h-53"/><path d="m18095 2800h-53"/><path d="m18010 2800h-53"/><path d="m17924 2800h-53"/><path d="m17839 2800h-53"/><path d="m17753 2800h-53"/><path d="m17668 2800h-53"/><path d="m17583 2800h-53"/><path d="m17497 2800h-53"/><path d="m17412 2800h-53"/><path d="m17326 2800h-53"/><path d="m17241 2800h-53"/><path d="m17155 2800h-53"/><path d="m17070 2800h-53"/><path d="m16985 2800h-53"/><path d="m16899 2800h-53"/><path d="m16814 2800h-53"/><path d="m16728 2800h-53"/><path d="m16643 2800h-53"/><path d="m16557 2800h-53"/><path d="m16472 2800h-53"/><path d="m16387 2800h-54"/><path d="m16301 2800h-53"/><path d="m16216 2800h-53"/><path d="m16130 2800h-53"/><path d="m16045 2800h-53"/><path d="m15959 2800h-53"/><path d="m15874 2800h-53"/><path d="m15789 2800h-54"/><path d="m15703 2800h-53"/><path d="m15618 2800h-53"/><path d="m15532 2800h-53"/><path d="m15447 2800h-53"/><path d="m15361 2800h-53"/><path d="m15276 2800h-53"/><path d="m15191 2800h-54"/><path d="m15105 2800h-53"/><path d="m15020 2800h-53"/><path d="m14934 2800h-53"/><path d="m14849 2800h-53"/><path d="m14763 2800h-53"/><path d="m14678 2800h-53"/><path d="m14593 2800h-54"/><path d="m14507 2800h-53"/><path d="m14422 2800h-53"/><path d="m14336 2800h-53"/><path d="m14251 2800h-53"/><path d="m14165 2800h-53"/><path d="m14080 2800h-53"/><path d="m13994 2800h-53"/><path d="m13909 2800h-53"/><path d="m13824 2800h-53"/><path d="m13738 2800h-53"/><path d="m13653 2800h-53"/><path d="m13567 2800h-53"/><path d="m13482 2800h-53"/><path d="m13396 2800h-53"/><path d="m13311 2800h-53"/><path d="m13226 2800h-53"/><path d="m13140 2800h-53"/><path d="m13055 2800h-53"/><path d="m12969 2800h-53"/><path d="m12884 2800h-53"/><path d="m12798 2800h-53"/><path d="m12713 2800h-53"/><path d="m12628 2800h-53"/><path d="m12542 2800h-53"/><path d="m12457 2800h-53"/><path d="m12371 2800h-53"/><path d="m12286 2800h-53"/><path d="m12200 2800h-53"/><path d="m12115 2800h-53"/><path d="m12030 2800h-54"/><path d="m11944 2800h-53"/><path d="m11859 2800h-53"/><path d="m11773 2800h-53"/><path d="m11688 2800h-53"/><path d="m11602 2800h-53"/><path d="m11517 2800h-53"/><path d="m11432 2800h-54"/><path d="m11346 2800h-53"/><path d="m11261 2800h-53"/><path d="m11175 2800h-53"/><path d="m11090 2800h-53"/><path d="m11004 2800h-53"/><path d="m10919 2800h-53"/><path d="m10834 2800h-54"/><path d="m10748 2800h-53"/><path d="m10663 2800h-53"/><path d="m10577 2800h-53"/><path d="m10492 2800h-53"/><path d="m10406 2800h-53"/><path d="m10321 2800h-53"/><path d="m10236 2800h-54"/><path d="m10150 2800h-53"/><path d="m10065 2800h-53"/><path d="m9979 2800h-53"/><path d="m9894 2800h-53"/><path d="m9808 2800h-53"/><path d="m9723 2800h-53"/><path d="m9637 2800h-53"/><path d="m9552 2800h-53"/><path d="m9467 2800h-53"/><path d="m9381 2800h-53"/><path d="m9296 2800h-53"/><path d="m9210 2800h-53"/><path d="m9125 2800h-53"/><path d="m9039 2800h-53"/><path d="m8954 2800h-53"/><path d="m8869 2800h-53"/><path d="m8783 2800h-53"/><path d="m8698 2800h-53"/><path d="m8612 2800h-53"/><path d="m8527 2800h-53"/><path d="m8441 2800h-53"/><path d="m8356 2800h-53"/><path d="m8271 2800h-54"/><path d="m8185 2800h-53"/><path d="m8100 2800h-53"/><path d="m8014 2800h-53"/><path d="m7929 2800h-53"/><path d="m7843 2800h-53"/><path d="m7758 2800h-53"/><path d="m7673 2800h-54"/><path d="m7587 2800h-53"/><path d="m7502 2800h-53"/><path d="m7416 2800h-53"/><path d="m7331 2800h-53"/><path d="m7245 2800h-53"/><path d="m7160 2800h-53"/><path d="m7075 2800h-54"/><path d="m6989 2800h-53"/><path d="m6904 2800h-53"/><path d="m6818 2800h-53"/><path d="m6733 2800h-53"/><path d="m6647 2800h-53"/><path d="m6562 2800h-53"/><path d="m6477 2800h-54"/><path d="m6391 2800h-53"/><path d="m6306 2800h-53"/><path d="m6220 2800h-53"/><path d="m6135 2800h-53"/><path d="m6049 2800h-53"/><path d="m5964 2800h-53"/><path d="m5879 2800h-54"/><path d="m5793 2800h-53"/><path d="m5708 2800h-53"/><path d="m5622 2800h-53"/><path d="m5537 2800h-53"/><path d="m5451 2800h-53"/><path d="m5366 2800h-53"/><path d="m5280 2800h-53"/><path d="m5195 2800h-53"/><path d="m5110 2800h-53"/><path d="m5024 2800h-53"/><path d="m4939 2800h-53"/><path d="m4853 2800h-53"/><path d="m4768 2800h-53"/><path d="m4682 2800h-53"/><path d="m4597 2800h-53"/><path d="m4512 2800h-53"/><path d="m4426 2800h-53"/><path d="m4341 2800h-53"/><path d="m4255 2800h-53"/><path d="m4170 2800h-53"/><path d="m4084 2800h-53"/><path d="m3999 2800h-53"/><path d="m3914 2800h-54"/><path d="m3828 2800h-53"/><path d="m3743 2800h-53"/><path d="m3657 2800h-53"/><path d="m3572 2800h-53"/><path d="m3486 2800h-53"/><path d="m3401 2800h-53"/><path d="m3316 2800h-54"/><path d="m3230 2800h-53"/><path d="m3145 2800h-53"/><path d="m3059 2800h-53"/></g></g><g transform="translate(-2197.3 -2186)"><rect height="1100.7" width="1213.6" y="6917.1" x="23255" fill="#f3e777"/><path fill="#ca4677" d="m22802 7700.4v-405.46l150.7-169.16c82.886-93.039 170.53-186.62 194.77-207.96l44.069-38.798 783.23-0.086 783.23-0.086v613.5 613.5h-978-978v-405.46zm1027.7 136.98v-78.372l-169.91 4.925-169.91 4.9249-5.09 45.854c-8.249 74.303 46.711 101.04 207.69 101.04h137.21v-78.372zm235.86-262.94 4.495-341.31 207.2-8.6408 207.2-8.6408 5.144-46.443c9.596-86.615-41.863-102.05-322.02-96.607l-246.71 4.7956-4.438 419.08-4.439 419.08h74.537 74.538l4.494-341.31zm391.3 313.72c26.41-19.286 36.255-41.399 32.697-73.447l-5.09-45.854h-174.05-174.05l-5.38 48.984c-9.97 90.771 0.993 97.91 150.36 97.91 99.305 0 148.27-7.6982 175.52-27.594zm-627.16-274.84v-77.768h-174.05-174.05v66.246c0 36.436 4.973 71.431 11.051 77.768 6.078 6.3366 84.401 11.521 174.05 11.521h163v-77.768zm659.89-4.9154 5.125-74.042-179.18 4.9155-179.18 4.9155-5.38 48.984c-10.473 95.348-2.259 99.57 183.28 94.197l170.2-4.9284 5.125-74.042zm-659.89-237.63v-78.372l-169.91 4.925-169.91 4.925-5.097 73.447-5.097 73.447h175 175v-78.372zm659.86 4.925-5.097-73.447h-174.05-174.05l-5.38 48.984c-10.289 93.673-2.146 97.91 188.15 97.91h175.52l-5.097-73.447zm-659.86-228.98v-77.768h-137.21c-97.358 0-147.91 7.8138-174.05 26.902-34.952 25.523-49.645 92.242-25.79 117.11 6.078 6.3366 84.401 11.521 174.05 11.521h163v-77.768z"/></g><g transform="matrix(.84874 0 0 .76147 2408.1 3615.3)"><rect height="3076.2" width="2734.3" y="13264" x="19249" fill="#6076b3"/><g stroke-linejoin="round" fill-rule="evenodd" stroke-width="28.222" fill="#e0ee2c"><rect y="13369" width="356.65" x="18937" height="180.95"/><rect y="13708" width="356.65" x="18937" height="180.95"/><rect y="14048" width="356.65" x="18937" height="180.95"/><rect y="14387" width="356.65" x="18937" height="180.95"/><rect y="14726" width="356.65" x="18937" height="180.95"/><rect y="15066" width="356.65" x="18937" height="180.95"/><rect y="15405" width="356.65" x="18937" height="180.95"/><rect y="15744" width="356.65" x="18937" height="180.95"/><rect y="16083" width="356.65" x="18937" height="180.95"/><rect y="13324" width="356.65" x="21939" height="180.95"/><rect y="13663" width="356.65" x="21939" height="180.95"/><rect y="14002" width="356.65" x="21939" height="180.95"/><rect y="14342" width="356.65" x="21939" height="180.95"/><rect y="14681" width="356.65" x="21939" height="180.95"/><rect y="15020" width="356.65" x="21939" height="180.95"/><rect y="15360" width="356.65" x="21939" height="180.95"/><rect y="15699" width="356.65" x="21939" height="180.95"/><rect y="16038" width="356.65" x="21939" height="180.95"/></g><g stroke-linejoin="round" fill-rule="evenodd" transform="matrix(.98702 0 0 .90336 -2675 7020.8)" class="com.sun.star.drawing.TextShape" stroke-width="28.222"><text class="TextShape"><tspan font-size="635px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"/></text>
24−<text style="word-spacing:0px;letter-spacing:0px" xml:space="preserve" font-size="1128.9px" y="9042.0264" x="22439.668" font-family="Sans" line-height="125%" fill="#000000"><tspan y="9042.0264" x="22439.668">CPU</tspan></text>
25−</g></g><g stroke-linejoin="round" fill-rule="evenodd" transform="translate(-11752 543.6)" class="com.sun.star.drawing.TextShape" stroke-width="28.222"><text class="TextShape"><tspan font-size="706px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"><tspan y="15832" x="24341" class="TextPosition" transform="matrix(0,-1,1,0,8509,40173)"><tspan fill="#000000">PCI, USB, SPI, I2C, ...</tspan></tspan></tspan></text>
26−</g><g stroke-linejoin="round" fill-rule="evenodd" transform="translate(-655.31 963.83)" class="com.sun.star.drawing.RectangleShape" stroke-width="28.222"><g transform="matrix(.49166 0 0 1.0059 6045.6 -82.24)"><path fill="#cfe7f5" d="m14169 14572h-2268v-1412h4536v1412h-2268z"/><path fill="none" d="m14169 14572h-2268v-1412h4536v1412h-2268z" stroke="#3465af"/></g><text y="-395.11282" x="-790.22229" class="TextShape"><tspan font-size="635px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"><tspan y="13686.9" x="12091.779" class="TextPosition"><tspan fill="#000000">Bridge</tspan></tspan></tspan></text>
27−<text y="338.66486" x="-846.66675" class="TextShape"><tspan font-size="635px" font-family="&apos;Times New Roman&apos;, serif" font-weight="400" class="TextParagraph"><tspan y="14420.677" x="12035.335" class="TextPosition"><tspan fill="#000000"> DMA</tspan></tspan></tspan></text>
28−</g></svg>
Documentation/DocBook/media/v4l/.gitignore+0−1
@@ -1 +0,0 @@
1−!*.xml
Documentation/DocBook/media/v4l/biblio.xml+0−381
@@ -1,381 +0,0 @@
1− <bibliography>
2− <title>References</title>
3−
4− <biblioentry id="cea608">
5− <abbrev>CEA&nbsp;608-E</abbrev>
6− <authorgroup>
7− <corpauthor>Consumer Electronics Association (<ulink
8−url="http://www.ce.org">http://www.ce.org</ulink>)</corpauthor>
9− </authorgroup>
10− <title>CEA-608-E R-2014 "Line 21 Data Services"</title>
11− </biblioentry>
12−
13− <biblioentry id="en300294">
14− <abbrev>EN&nbsp;300&nbsp;294</abbrev>
15− <authorgroup>
16− <corpauthor>European Telecommunication Standards Institute
17−(<ulink url="http://www.etsi.org">http://www.etsi.org</ulink>)</corpauthor>
18− </authorgroup>
19− <title>EN 300 294 "625-line television Wide Screen Signalling
20−(WSS)"</title>
21− </biblioentry>
22−
23− <biblioentry id="ets300231">
24− <abbrev>ETS&nbsp;300&nbsp;231</abbrev>
25− <authorgroup>
26− <corpauthor>European Telecommunication Standards Institute
27−(<ulink
28−url="http://www.etsi.org">http://www.etsi.org</ulink>)</corpauthor>
29− </authorgroup>
30− <title>ETS 300 231 "Specification of the domestic video
31−Programme Delivery Control system (PDC)"</title>
32− </biblioentry>
33−
34− <biblioentry id="ets300706">
35− <abbrev>ETS&nbsp;300&nbsp;706</abbrev>
36− <authorgroup>
37− <corpauthor>European Telecommunication Standards Institute
38−(<ulink url="http://www.etsi.org">http://www.etsi.org</ulink>)</corpauthor>
39− </authorgroup>
40− <title>ETS 300 706 "Enhanced Teletext specification"</title>
41− </biblioentry>
42−
43− <biblioentry id="mpeg2part1">
44− <abbrev>ISO&nbsp;13818-1</abbrev>
45− <authorgroup>
46− <corpauthor>International Telecommunication Union (<ulink
47−url="http://www.itu.ch">http://www.itu.ch</ulink>), International
48−Organisation for Standardisation (<ulink
49−url="http://www.iso.ch">http://www.iso.ch</ulink>)</corpauthor>
50− </authorgroup>
51− <title>ITU-T Rec. H.222.0 | ISO/IEC 13818-1 "Information
52−technology &mdash; Generic coding of moving pictures and associated
53−audio information: Systems"</title>
54− </biblioentry>
55−
56− <biblioentry id="mpeg2part2">
57− <abbrev>ISO&nbsp;13818-2</abbrev>
58− <authorgroup>
59− <corpauthor>International Telecommunication Union (<ulink
60−url="http://www.itu.ch">http://www.itu.ch</ulink>), International
61−Organisation for Standardisation (<ulink
62−url="http://www.iso.ch">http://www.iso.ch</ulink>)</corpauthor>
63− </authorgroup>
64− <title>ITU-T Rec. H.262 | ISO/IEC 13818-2 "Information
65−technology &mdash; Generic coding of moving pictures and associated
66−audio information: Video"</title>
67− </biblioentry>
68−
69− <biblioentry id="itu470">
70− <abbrev>ITU&nbsp;BT.470</abbrev>
71− <authorgroup>
72− <corpauthor>International Telecommunication Union (<ulink
73−url="http://www.itu.ch">http://www.itu.ch</ulink>)</corpauthor>
74− </authorgroup>
75− <title>ITU-R Recommendation BT.470-6 "Conventional Television
76−Systems"</title>
77− </biblioentry>
78−
79− <biblioentry id="itu601">
80− <abbrev>ITU&nbsp;BT.601</abbrev>
81− <authorgroup>
82− <corpauthor>International Telecommunication Union (<ulink
83−url="http://www.itu.ch">http://www.itu.ch</ulink>)</corpauthor>
84− </authorgroup>
85− <title>ITU-R Recommendation BT.601-5 "Studio Encoding Parameters
86−of Digital Television for Standard 4:3 and Wide-Screen 16:9 Aspect
87−Ratios"</title>
88− </biblioentry>
89−
90− <biblioentry id="itu653">
91− <abbrev>ITU&nbsp;BT.653</abbrev>
92− <authorgroup>
93− <corpauthor>International Telecommunication Union (<ulink
94−url="http://www.itu.ch">http://www.itu.ch</ulink>)</corpauthor>
95− </authorgroup>
96− <title>ITU-R Recommendation BT.653-3 "Teletext systems"</title>
97− </biblioentry>
98−
99− <biblioentry id="itu709">
100− <abbrev>ITU&nbsp;BT.709</abbrev>
101− <authorgroup>
102− <corpauthor>International Telecommunication Union (<ulink
103−url="http://www.itu.ch">http://www.itu.ch</ulink>)</corpauthor>
104− </authorgroup>
105− <title>ITU-R Recommendation BT.709-5 "Parameter values for the
106−HDTV standards for production and international programme
107−exchange"</title>
108− </biblioentry>
109−
110− <biblioentry id="itu1119">
111− <abbrev>ITU&nbsp;BT.1119</abbrev>
112− <authorgroup>
113− <corpauthor>International Telecommunication Union (<ulink
114−url="http://www.itu.ch">http://www.itu.ch</ulink>)</corpauthor>
115− </authorgroup>
116− <title>ITU-R Recommendation BT.1119 "625-line
117−television Wide Screen Signalling (WSS)"</title>
118− </biblioentry>
119−
120− <biblioentry id="jfif">
121− <abbrev>JFIF</abbrev>
122− <authorgroup>
123− <corpauthor>Independent JPEG Group (<ulink
124−url="http://www.ijg.org">http://www.ijg.org</ulink>)</corpauthor>
125− </authorgroup>
126− <title>JPEG File Interchange Format</title>
127− <subtitle>Version 1.02</subtitle>
128− </biblioentry>
129−
130− <biblioentry id="itu-t81">
131− <abbrev>ITU-T.81</abbrev>
132− <authorgroup>
133− <corpauthor>International Telecommunication Union
134−(<ulink url="http://www.itu.int">http://www.itu.int</ulink>)</corpauthor>
135− </authorgroup>
136− <title>ITU-T Recommendation T.81
137−"Information Technology &mdash; Digital Compression and Coding of Continous-Tone
138−Still Images &mdash; Requirements and Guidelines"</title>
139− </biblioentry>
140−
141− <biblioentry id="w3c-jpeg-jfif">
142− <abbrev>W3C JPEG JFIF</abbrev>
143− <authorgroup>
144− <corpauthor>The World Wide Web Consortium (<ulink
145−url="http://www.w3.org/Graphics/JPEG">http://www.w3.org</ulink>)</corpauthor>
146− </authorgroup>
147− <title>JPEG JFIF</title>
148− </biblioentry>
149−
150− <biblioentry id="smpte12m">
151− <abbrev>SMPTE&nbsp;12M</abbrev>
152− <authorgroup>
153− <corpauthor>Society of Motion Picture and Television Engineers
154−(<ulink url="http://www.smpte.org">http://www.smpte.org</ulink>)</corpauthor>
155− </authorgroup>
156− <title>SMPTE 12M-1999 "Television, Audio and Film - Time and
157−Control Code"</title>
158− </biblioentry>
159−
160− <biblioentry id="smpte170m">
161− <abbrev>SMPTE&nbsp;170M</abbrev>
162− <authorgroup>
163− <corpauthor>Society of Motion Picture and Television Engineers
164−(<ulink url="http://www.smpte.org">http://www.smpte.org</ulink>)</corpauthor>
165− </authorgroup>
166− <title>SMPTE 170M-1999 "Television - Composite Analog Video
167−Signal - NTSC for Studio Applications"</title>
168− </biblioentry>
169−
170− <biblioentry id="smpte240m">
171− <abbrev>SMPTE&nbsp;240M</abbrev>
172− <authorgroup>
173− <corpauthor>Society of Motion Picture and Television Engineers
174−(<ulink url="http://www.smpte.org">http://www.smpte.org</ulink>)</corpauthor>
175− </authorgroup>
176− <title>SMPTE 240M-1999 "Television - Signal Parameters -
177−1125-Line High-Definition Production"</title>
178− </biblioentry>
179−
180− <biblioentry id="smpte431">
181− <abbrev>SMPTE&nbsp;RP&nbsp;431-2</abbrev>
182− <authorgroup>
183− <corpauthor>Society of Motion Picture and Television Engineers
184−(<ulink url="http://www.smpte.org">http://www.smpte.org</ulink>)</corpauthor>
185− </authorgroup>
186− <title>SMPTE RP 431-2:2011 "D-Cinema Quality - Reference Projector and Environment"</title>
187− </biblioentry>
188−
189− <biblioentry id="smpte2084">
190− <abbrev>SMPTE&nbsp;ST&nbsp;2084</abbrev>
191− <authorgroup>
192− <corpauthor>Society of Motion Picture and Television Engineers
193−(<ulink url="http://www.smpte.org">http://www.smpte.org</ulink>)</corpauthor>
194− </authorgroup>
195− <title>SMPTE ST 2084:2014 "High Dynamic Range Electro-Optical Transfer Function of Master Reference Displays"</title>
196− </biblioentry>
197−
198− <biblioentry id="srgb">
199− <abbrev>sRGB</abbrev>
200− <authorgroup>
201− <corpauthor>International Electrotechnical Commission
202−(<ulink url="http://www.iec.ch">http://www.iec.ch</ulink>)</corpauthor>
203− </authorgroup>
204− <title>IEC 61966-2-1 ed1.0 "Multimedia systems and equipment - Colour measurement
205−and management - Part 2-1: Colour management - Default RGB colour space - sRGB"</title>
206− </biblioentry>
207−
208− <biblioentry id="sycc">
209− <abbrev>sYCC</abbrev>
210− <authorgroup>
211− <corpauthor>International Electrotechnical Commission
212−(<ulink url="http://www.iec.ch">http://www.iec.ch</ulink>)</corpauthor>
213− </authorgroup>
214− <title>IEC 61966-2-1-am1 ed1.0 "Amendment 1 - Multimedia systems and equipment - Colour measurement
215−and management - Part 2-1: Colour management - Default RGB colour space - sRGB"</title>
216− </biblioentry>
217−
218− <biblioentry id="xvycc">
219− <abbrev>xvYCC</abbrev>
220− <authorgroup>
221− <corpauthor>International Electrotechnical Commission
222−(<ulink url="http://www.iec.ch">http://www.iec.ch</ulink>)</corpauthor>
223− </authorgroup>
224− <title>IEC 61966-2-4 ed1.0 "Multimedia systems and equipment - Colour measurement
225−and management - Part 2-4: Colour management - Extended-gamut YCC colour space for video
226−applications - xvYCC"</title>
227− </biblioentry>
228−
229− <biblioentry id="adobergb">
230− <abbrev>AdobeRGB</abbrev>
231− <authorgroup>
232− <corpauthor>Adobe Systems Incorporated (<ulink url="http://www.adobe.com">http://www.adobe.com</ulink>)</corpauthor>
233− </authorgroup>
234− <title>Adobe&copy; RGB (1998) Color Image Encoding Version 2005-05</title>
235− </biblioentry>
236−
237− <biblioentry id="oprgb">
238− <abbrev>opRGB</abbrev>
239− <authorgroup>
240− <corpauthor>International Electrotechnical Commission
241−(<ulink url="http://www.iec.ch">http://www.iec.ch</ulink>)</corpauthor>
242− </authorgroup>
243− <title>IEC 61966-2-5 "Multimedia systems and equipment - Colour measurement
244−and management - Part 2-5: Colour management - Optional RGB colour space - opRGB"</title>
245− </biblioentry>
246−
247− <biblioentry id="itu2020">
248− <abbrev>ITU&nbsp;BT.2020</abbrev>
249− <authorgroup>
250− <corpauthor>International Telecommunication Union (<ulink
251−url="http://www.itu.ch">http://www.itu.ch</ulink>)</corpauthor>
252− </authorgroup>
253− <title>ITU-R Recommendation BT.2020 (08/2012) "Parameter values for ultra-high
254−definition television systems for production and international programme exchange"
255−</title>
256− </biblioentry>
257−
258− <biblioentry id="tech3213">
259− <abbrev>EBU&nbsp;Tech&nbsp;3213</abbrev>
260− <authorgroup>
261− <corpauthor>European Broadcast Union (<ulink
262−url="http://www.ebu.ch">http://www.ebu.ch</ulink>)</corpauthor>
263− </authorgroup>
264− <title>E.B.U. Standard for Chromaticity Tolerances for Studio Monitors"</title>
265− </biblioentry>
266−
267− <biblioentry id="iec62106">
268− <abbrev>IEC&nbsp;62106</abbrev>
269− <authorgroup>
270− <corpauthor>International Electrotechnical Commission
271−(<ulink url="http://www.iec.ch">http://www.iec.ch</ulink>)</corpauthor>
272− </authorgroup>
273− <title>Specification of the radio data system (RDS) for VHF/FM sound broadcasting
274−in the frequency range from 87,5 to 108,0 MHz</title>
275− </biblioentry>
276−
277− <biblioentry id="nrsc4">
278− <abbrev>NRSC-4-B</abbrev>
279− <authorgroup>
280− <corpauthor>National Radio Systems Committee
281−(<ulink url="http://www.nrscstandards.org">http://www.nrscstandards.org</ulink>)</corpauthor>
282− </authorgroup>
283− <title>NRSC-4-B: United States RBDS Standard</title>
284− </biblioentry>
285−
286− <biblioentry id="iso12232">
287− <abbrev>ISO&nbsp;12232:2006</abbrev>
288− <authorgroup>
289− <corpauthor>International Organization for Standardization
290−(<ulink url="http://www.iso.org">http://www.iso.org</ulink>)</corpauthor>
291− </authorgroup>
292− <title>Photography &mdash; Digital still cameras &mdash; Determination
293− of exposure index, ISO speed ratings, standard output sensitivity, and
294− recommended exposure index</title>
295− </biblioentry>
296−
297− <biblioentry id="cea861">
298− <abbrev>CEA-861-E</abbrev>
299− <authorgroup>
300− <corpauthor>Consumer Electronics Association
301−(<ulink url="http://www.ce.org">http://www.ce.org</ulink>)</corpauthor>
302− </authorgroup>
303− <title>A DTV Profile for Uncompressed High Speed Digital Interfaces</title>
304− </biblioentry>
305−
306− <biblioentry id="vesadmt">
307− <abbrev>VESA&nbsp;DMT</abbrev>
308− <authorgroup>
309− <corpauthor>Video Electronics Standards Association
310−(<ulink url="http://www.vesa.org">http://www.vesa.org</ulink>)</corpauthor>
311− </authorgroup>
312− <title>VESA and Industry Standards and Guidelines for Computer Display Monitor Timing (DMT)</title>
313− </biblioentry>
314−
315− <biblioentry id="vesaedid">
316− <abbrev>EDID</abbrev>
317− <authorgroup>
318− <corpauthor>Video Electronics Standards Association
319−(<ulink url="http://www.vesa.org">http://www.vesa.org</ulink>)</corpauthor>
320− </authorgroup>
321− <title>VESA Enhanced Extended Display Identification Data Standard</title>
322− <subtitle>Release A, Revision 2</subtitle>
323− </biblioentry>
324−
325− <biblioentry id="hdcp">
326− <abbrev>HDCP</abbrev>
327− <authorgroup>
328− <corpauthor>Digital Content Protection LLC
329−(<ulink url="http://www.digital-cp.com">http://www.digital-cp.com</ulink>)</corpauthor>
330− </authorgroup>
331− <title>High-bandwidth Digital Content Protection System</title>
332− <subtitle>Revision 1.3</subtitle>
333− </biblioentry>
334−
335− <biblioentry id="hdmi">
336− <abbrev>HDMI</abbrev>
337− <authorgroup>
338− <corpauthor>HDMI Licensing LLC
339−(<ulink url="http://www.hdmi.org">http://www.hdmi.org</ulink>)</corpauthor>
340− </authorgroup>
341− <title>High-Definition Multimedia Interface</title>
342− <subtitle>Specification Version 1.4a</subtitle>
343− </biblioentry>
344−
345− <biblioentry id="hdmi2">
346− <abbrev>HDMI2</abbrev>
347− <authorgroup>
348− <corpauthor>HDMI Licensing LLC
349−(<ulink url="http://www.hdmi.org">http://www.hdmi.org</ulink>)</corpauthor>
350− </authorgroup>
351− <title>High-Definition Multimedia Interface</title>
352− <subtitle>Specification Version 2.0</subtitle>
353− </biblioentry>
354−
355− <biblioentry id="dp">
356− <abbrev>DP</abbrev>
357− <authorgroup>
358− <corpauthor>Video Electronics Standards Association
359−(<ulink url="http://www.vesa.org">http://www.vesa.org</ulink>)</corpauthor>
360− </authorgroup>
361− <title>VESA DisplayPort Standard</title>
362− <subtitle>Version 1, Revision 2</subtitle>
363− </biblioentry>
364−
365− <biblioentry id="poynton">
366− <abbrev>poynton</abbrev>
367− <authorgroup>
368− <corpauthor>Charles Poynton</corpauthor>
369− </authorgroup>
370− <title>Digital Video and HDTV, Algorithms and Interfaces</title>
371− </biblioentry>
372−
373− <biblioentry id="colimg">
374− <abbrev>colimg</abbrev>
375− <authorgroup>
376− <corpauthor>Erik Reinhard et al.</corpauthor>
377− </authorgroup>
378− <title>Color Imaging: Fundamentals and Applications</title>
379− </biblioentry>
380−
381− </bibliography>
Documentation/DocBook/media/v4l/capture.c.xml+0−659
@@ -1,659 +0,0 @@
1−<programlisting>
2−/*
3− * V4L2 video capture example
4− *
5− * This program can be used and distributed without restrictions.
6− *
7− * This program is provided with the V4L2 API
8− * see https://linuxtv.org/docs.php for more information
9− */
10−
11−#include &lt;stdio.h&gt;
12−#include &lt;stdlib.h&gt;
13−#include &lt;string.h&gt;
14−#include &lt;assert.h&gt;
15−
16−#include &lt;getopt.h&gt; /* getopt_long() */
17−
18−#include &lt;fcntl.h&gt; /* low-level i/o */
19−#include &lt;unistd.h&gt;
20−#include &lt;errno.h&gt;
21−#include &lt;sys/stat.h&gt;
22−#include &lt;sys/types.h&gt;
23−#include &lt;sys/time.h&gt;
24−#include &lt;sys/mman.h&gt;
25−#include &lt;sys/ioctl.h&gt;
26−
27−#include &lt;linux/videodev2.h&gt;
28−
29−#define CLEAR(x) memset(&amp;(x), 0, sizeof(x))
30−
31−enum io_method {
32− IO_METHOD_READ,
33− IO_METHOD_MMAP,
34− IO_METHOD_USERPTR,
35−};
36−
37−struct buffer {
38− void *start;
39− size_t length;
40−};
41−
42−static char *dev_name;
43−static enum io_method io = IO_METHOD_MMAP;
44−static int fd = -1;
45−struct buffer *buffers;
46−static unsigned int n_buffers;
47−static int out_buf;
48−static int force_format;
49−static int frame_count = 70;
50−
51−static void errno_exit(const char *s)
52−{
53− fprintf(stderr, "%s error %d, %s\n", s, errno, strerror(errno));
54− exit(EXIT_FAILURE);
55−}
56−
57−static int xioctl(int fh, int request, void *arg)
58−{
59− int r;
60−
61− do {
62− r = ioctl(fh, request, arg);
63− } while (-1 == r &amp;&amp; EINTR == errno);
64−
65− return r;
66−}
67−
68−static void process_image(const void *p, int size)
69−{
70− if (out_buf)
71− fwrite(p, size, 1, stdout);
72−
73− fflush(stderr);
74− fprintf(stderr, ".");
75− fflush(stdout);
76−}
77−
78−static int read_frame(void)
79−{
80− struct <link linkend="v4l2-buffer">v4l2_buffer</link> buf;
81− unsigned int i;
82−
83− switch (io) {
84− case IO_METHOD_READ:
85− if (-1 == read(fd, buffers[0].start, buffers[0].length)) {
86− switch (errno) {
87− case EAGAIN:
88− return 0;
89−
90− case EIO:
91− /* Could ignore EIO, see spec. */
92−
93− /* fall through */
94−
95− default:
96− errno_exit("read");
97− }
98− }
99−
100− process_image(buffers[0].start, buffers[0].length);
101− break;
102−
103− case IO_METHOD_MMAP:
104− CLEAR(buf);
105−
106− buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
107− buf.memory = V4L2_MEMORY_MMAP;
108−
109− if (-1 == xioctl(fd, VIDIOC_DQBUF, &amp;buf)) {
110− switch (errno) {
111− case EAGAIN:
112− return 0;
113−
114− case EIO:
115− /* Could ignore EIO, see spec. */
116−
117− /* fall through */
118−
119− default:
120− errno_exit("VIDIOC_DQBUF");
121− }
122− }
123−
124− assert(buf.index &lt; n_buffers);
125−
126− process_image(buffers[buf.index].start, buf.bytesused);
127−
128− if (-1 == xioctl(fd, VIDIOC_QBUF, &amp;buf))
129− errno_exit("VIDIOC_QBUF");
130− break;
131−
132− case IO_METHOD_USERPTR:
133− CLEAR(buf);
134−
135− buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
136− buf.memory = V4L2_MEMORY_USERPTR;
137−
138− if (-1 == xioctl(fd, VIDIOC_DQBUF, &amp;buf)) {
139− switch (errno) {
140− case EAGAIN:
141− return 0;
142−
143− case EIO:
144− /* Could ignore EIO, see spec. */
145−
146− /* fall through */
147−
148− default:
149− errno_exit("VIDIOC_DQBUF");
150− }
151− }
152−
153− for (i = 0; i &lt; n_buffers; ++i)
154− if (buf.m.userptr == (unsigned long)buffers[i].start
155− &amp;&amp; buf.length == buffers[i].length)
156− break;
157−
158− assert(i &lt; n_buffers);
159−
160− process_image((void *)buf.m.userptr, buf.bytesused);
161−
162− if (-1 == xioctl(fd, VIDIOC_QBUF, &amp;buf))
163− errno_exit("VIDIOC_QBUF");
164− break;
165− }
166−
167− return 1;
168−}
169−
170−static void mainloop(void)
171−{
172− unsigned int count;
173−
174− count = frame_count;
175−
176− while (count-- &gt; 0) {
177− for (;;) {
178− fd_set fds;
179− struct timeval tv;
180− int r;
181−
182− FD_ZERO(&amp;fds);
183− FD_SET(fd, &amp;fds);
184−
185− /* Timeout. */
186− tv.tv_sec = 2;
187− tv.tv_usec = 0;
188−
189− r = select(fd + 1, &amp;fds, NULL, NULL, &amp;tv);
190−
191− if (-1 == r) {
192− if (EINTR == errno)
193− continue;
194− errno_exit("select");
195− }
196−
197− if (0 == r) {
198− fprintf(stderr, "select timeout\n");
199− exit(EXIT_FAILURE);
200− }
201−
202− if (read_frame())
203− break;
204− /* EAGAIN - continue select loop. */
205− }
206− }
207−}
208−
209−static void stop_capturing(void)
210−{
211− enum <link linkend="v4l2-buf-type">v4l2_buf_type</link> type;
212−
213− switch (io) {
214− case IO_METHOD_READ:
215− /* Nothing to do. */
216− break;
217−
218− case IO_METHOD_MMAP:
219− case IO_METHOD_USERPTR:
220− type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
221− if (-1 == xioctl(fd, VIDIOC_STREAMOFF, &amp;type))
222− errno_exit("VIDIOC_STREAMOFF");
223− break;
224− }
225−}
226−
227−static void start_capturing(void)
228−{
229− unsigned int i;
230− enum <link linkend="v4l2-buf-type">v4l2_buf_type</link> type;
231−
232− switch (io) {
233− case IO_METHOD_READ:
234− /* Nothing to do. */
235− break;
236−
237− case IO_METHOD_MMAP:
238− for (i = 0; i &lt; n_buffers; ++i) {
239− struct <link linkend="v4l2-buffer">v4l2_buffer</link> buf;
240−
241− CLEAR(buf);
242− buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
243− buf.memory = V4L2_MEMORY_MMAP;
244− buf.index = i;
245−
246− if (-1 == xioctl(fd, VIDIOC_QBUF, &amp;buf))
247− errno_exit("VIDIOC_QBUF");
248− }
249− type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
250− if (-1 == xioctl(fd, VIDIOC_STREAMON, &amp;type))
251− errno_exit("VIDIOC_STREAMON");
252− break;
253−
254− case IO_METHOD_USERPTR:
255− for (i = 0; i &lt; n_buffers; ++i) {
256− struct <link linkend="v4l2-buffer">v4l2_buffer</link> buf;
257−
258− CLEAR(buf);
259− buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
260− buf.memory = V4L2_MEMORY_USERPTR;
261− buf.index = i;
262− buf.m.userptr = (unsigned long)buffers[i].start;
263− buf.length = buffers[i].length;
264−
265− if (-1 == xioctl(fd, VIDIOC_QBUF, &amp;buf))
266− errno_exit("VIDIOC_QBUF");
267− }
268− type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
269− if (-1 == xioctl(fd, VIDIOC_STREAMON, &amp;type))
270− errno_exit("VIDIOC_STREAMON");
271− break;
272− }
273−}
274−
275−static void uninit_device(void)
276−{
277− unsigned int i;
278−
279− switch (io) {
280− case IO_METHOD_READ:
281− free(buffers[0].start);
282− break;
283−
284− case IO_METHOD_MMAP:
285− for (i = 0; i &lt; n_buffers; ++i)
286− if (-1 == munmap(buffers[i].start, buffers[i].length))
287− errno_exit("munmap");
288− break;
289−
290− case IO_METHOD_USERPTR:
291− for (i = 0; i &lt; n_buffers; ++i)
292− free(buffers[i].start);
293− break;
294− }
295−
296− free(buffers);
297−}
298−
299−static void init_read(unsigned int buffer_size)
300−{
301− buffers = calloc(1, sizeof(*buffers));
302−
303− if (!buffers) {
304− fprintf(stderr, "Out of memory\n");
305− exit(EXIT_FAILURE);
306− }
307−
308− buffers[0].length = buffer_size;
309− buffers[0].start = malloc(buffer_size);
310−
311− if (!buffers[0].start) {
312− fprintf(stderr, "Out of memory\n");
313− exit(EXIT_FAILURE);
314− }
315−}
316−
317−static void init_mmap(void)
318−{
319− struct <link linkend="v4l2-requestbuffers">v4l2_requestbuffers</link> req;
320−
321− CLEAR(req);
322−
323− req.count = 4;
324− req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
325− req.memory = V4L2_MEMORY_MMAP;
326−
327− if (-1 == xioctl(fd, VIDIOC_REQBUFS, &amp;req)) {
328− if (EINVAL == errno) {
329− fprintf(stderr, "%s does not support "
330− "memory mapping\n", dev_name);
331− exit(EXIT_FAILURE);
332− } else {
333− errno_exit("VIDIOC_REQBUFS");
334− }
335− }
336−
337− if (req.count &lt; 2) {
338− fprintf(stderr, "Insufficient buffer memory on %s\n",
339− dev_name);
340− exit(EXIT_FAILURE);
341− }
342−
343− buffers = calloc(req.count, sizeof(*buffers));
344−
345− if (!buffers) {
346− fprintf(stderr, "Out of memory\n");
347− exit(EXIT_FAILURE);
348− }
349−
350− for (n_buffers = 0; n_buffers &lt; req.count; ++n_buffers) {
351− struct <link linkend="v4l2-buffer">v4l2_buffer</link> buf;
352−
353− CLEAR(buf);
354−
355− buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
356− buf.memory = V4L2_MEMORY_MMAP;
357− buf.index = n_buffers;
358−
359− if (-1 == xioctl(fd, VIDIOC_QUERYBUF, &amp;buf))
360− errno_exit("VIDIOC_QUERYBUF");
361−
362− buffers[n_buffers].length = buf.length;
363− buffers[n_buffers].start =
364− mmap(NULL /* start anywhere */,
365− buf.length,
366− PROT_READ | PROT_WRITE /* required */,
367− MAP_SHARED /* recommended */,
368− fd, buf.m.offset);
369−
370− if (MAP_FAILED == buffers[n_buffers].start)
371− errno_exit("mmap");
372− }
373−}
374−
375−static void init_userp(unsigned int buffer_size)
376−{
377− struct <link linkend="v4l2-requestbuffers">v4l2_requestbuffers</link> req;
378−
379− CLEAR(req);
380−
381− req.count = 4;
382− req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
383− req.memory = V4L2_MEMORY_USERPTR;
384−
385− if (-1 == xioctl(fd, VIDIOC_REQBUFS, &amp;req)) {
386− if (EINVAL == errno) {
387− fprintf(stderr, "%s does not support "
388− "user pointer i/o\n", dev_name);
389− exit(EXIT_FAILURE);
390− } else {
391− errno_exit("VIDIOC_REQBUFS");
392− }
393− }
394−
395− buffers = calloc(4, sizeof(*buffers));
396−
397− if (!buffers) {
398− fprintf(stderr, "Out of memory\n");
399− exit(EXIT_FAILURE);
400− }
401−
402− for (n_buffers = 0; n_buffers &lt; 4; ++n_buffers) {
403− buffers[n_buffers].length = buffer_size;
404− buffers[n_buffers].start = malloc(buffer_size);
405−
406− if (!buffers[n_buffers].start) {
407− fprintf(stderr, "Out of memory\n");
408− exit(EXIT_FAILURE);
409− }
410− }
411−}
412−
413−static void init_device(void)
414−{
415− struct <link linkend="v4l2-capability">v4l2_capability</link> cap;
416− struct <link linkend="v4l2-cropcap">v4l2_cropcap</link> cropcap;
417− struct <link linkend="v4l2-crop">v4l2_crop</link> crop;
418− struct <link linkend="v4l2-format">v4l2_format</link> fmt;
419− unsigned int min;
420−
421− if (-1 == xioctl(fd, VIDIOC_QUERYCAP, &amp;cap)) {
422− if (EINVAL == errno) {
423− fprintf(stderr, "%s is no V4L2 device\n",
424− dev_name);
425− exit(EXIT_FAILURE);
426− } else {
427− errno_exit("VIDIOC_QUERYCAP");
428− }
429− }
430−
431− if (!(cap.capabilities &amp; V4L2_CAP_VIDEO_CAPTURE)) {
432− fprintf(stderr, "%s is no video capture device\n",
433− dev_name);
434− exit(EXIT_FAILURE);
435− }
436−
437− switch (io) {
438− case IO_METHOD_READ:
439− if (!(cap.capabilities &amp; V4L2_CAP_READWRITE)) {
440− fprintf(stderr, "%s does not support read i/o\n",
441− dev_name);
442− exit(EXIT_FAILURE);
443− }
444− break;
445−
446− case IO_METHOD_MMAP:
447− case IO_METHOD_USERPTR:
448− if (!(cap.capabilities &amp; V4L2_CAP_STREAMING)) {
449− fprintf(stderr, "%s does not support streaming i/o\n",
450− dev_name);
451− exit(EXIT_FAILURE);
452− }
453− break;
454− }
455−
456−
457− /* Select video input, video standard and tune here. */
458−
459−
460− CLEAR(cropcap);
461−
462− cropcap.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
463−
464− if (0 == xioctl(fd, VIDIOC_CROPCAP, &amp;cropcap)) {
465− crop.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
466− crop.c = cropcap.defrect; /* reset to default */
467−
468− if (-1 == xioctl(fd, VIDIOC_S_CROP, &amp;crop)) {
469− switch (errno) {
470− case EINVAL:
471− /* Cropping not supported. */
472− break;
473− default:
474− /* Errors ignored. */
475− break;
476− }
477− }
478− } else {
479− /* Errors ignored. */
480− }
481−
482−
483− CLEAR(fmt);
484−
485− fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
486− if (force_format) {
487− fmt.fmt.pix.width = 640;
488− fmt.fmt.pix.height = 480;
489− fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;
490− fmt.fmt.pix.field = V4L2_FIELD_INTERLACED;
491−
492− if (-1 == xioctl(fd, VIDIOC_S_FMT, &amp;fmt))
493− errno_exit("VIDIOC_S_FMT");
494−
495− /* Note VIDIOC_S_FMT may change width and height. */
496− } else {
497− /* Preserve original settings as set by v4l2-ctl for example */
498− if (-1 == xioctl(fd, VIDIOC_G_FMT, &amp;fmt))
499− errno_exit("VIDIOC_G_FMT");
500− }
501−
502− /* Buggy driver paranoia. */
503− min = fmt.fmt.pix.width * 2;
504− if (fmt.fmt.pix.bytesperline &lt; min)
505− fmt.fmt.pix.bytesperline = min;
506− min = fmt.fmt.pix.bytesperline * fmt.fmt.pix.height;
507− if (fmt.fmt.pix.sizeimage &lt; min)
508− fmt.fmt.pix.sizeimage = min;
509−
510− switch (io) {
511− case IO_METHOD_READ:
512− init_read(fmt.fmt.pix.sizeimage);
513− break;
514−
515− case IO_METHOD_MMAP:
516− init_mmap();
517− break;
518−
519− case IO_METHOD_USERPTR:
520− init_userp(fmt.fmt.pix.sizeimage);
521− break;
522− }
523−}
524−
525−static void close_device(void)
526−{
527− if (-1 == close(fd))
528− errno_exit("close");
529−
530− fd = -1;
531−}
532−
533−static void open_device(void)
534−{
535− struct stat st;
536−
537− if (-1 == stat(dev_name, &amp;st)) {
538− fprintf(stderr, "Cannot identify '%s': %d, %s\n",
539− dev_name, errno, strerror(errno));
540− exit(EXIT_FAILURE);
541− }
542−
543− if (!S_ISCHR(st.st_mode)) {
544− fprintf(stderr, "%s is no device\n", dev_name);
545− exit(EXIT_FAILURE);
546− }
547−
548− fd = open(dev_name, O_RDWR /* required */ | O_NONBLOCK, 0);
549−
550− if (-1 == fd) {
551− fprintf(stderr, "Cannot open '%s': %d, %s\n",
552− dev_name, errno, strerror(errno));
553− exit(EXIT_FAILURE);
554− }
555−}
556−
557−static void usage(FILE *fp, int argc, char **argv)
558−{
559− fprintf(fp,
560− "Usage: %s [options]\n\n"
561− "Version 1.3\n"
562− "Options:\n"
563− "-d | --device name Video device name [%s]\n"
564− "-h | --help Print this message\n"
565− "-m | --mmap Use memory mapped buffers [default]\n"
566− "-r | --read Use read() calls\n"
567− "-u | --userp Use application allocated buffers\n"
568− "-o | --output Outputs stream to stdout\n"
569− "-f | --format Force format to 640x480 YUYV\n"
570− "-c | --count Number of frames to grab [%i]\n"
571− "",
572− argv[0], dev_name, frame_count);
573−}
574−
575−static const char short_options[] = "d:hmruofc:";
576−
577−static const struct option
578−long_options[] = {
579− { "device", required_argument, NULL, 'd' },
580− { "help", no_argument, NULL, 'h' },
581− { "mmap", no_argument, NULL, 'm' },
582− { "read", no_argument, NULL, 'r' },
583− { "userp", no_argument, NULL, 'u' },
584− { "output", no_argument, NULL, 'o' },
585− { "format", no_argument, NULL, 'f' },
586− { "count", required_argument, NULL, 'c' },
587− { 0, 0, 0, 0 }
588−};
589−
590−int main(int argc, char **argv)
591−{
592− dev_name = "/dev/video0";
593−
594− for (;;) {
595− int idx;
596− int c;
597−
598− c = getopt_long(argc, argv,
599− short_options, long_options, &amp;idx);
600−
601− if (-1 == c)
602− break;
603−
604− switch (c) {
605− case 0: /* getopt_long() flag */
606− break;
607−
608− case 'd':
609− dev_name = optarg;
610− break;
611−
612− case 'h':
613− usage(stdout, argc, argv);
614− exit(EXIT_SUCCESS);
615−
616− case 'm':
617− io = IO_METHOD_MMAP;
618− break;
619−
620− case 'r':
621− io = IO_METHOD_READ;
622− break;
623−
624− case 'u':
625− io = IO_METHOD_USERPTR;
626− break;
627−
628− case 'o':
629− out_buf++;
630− break;
631−
632− case 'f':
633− force_format++;
634− break;
635−
636− case 'c':
637− errno = 0;
638− frame_count = strtol(optarg, NULL, 0);
639− if (errno)
640− errno_exit(optarg);
641− break;
642−
643− default:
644− usage(stderr, argc, argv);
645− exit(EXIT_FAILURE);
646− }
647− }
648−
649− open_device();
650− init_device();
651− start_capturing();
652− mainloop();
653− stop_capturing();
654− uninit_device();
655− close_device();
656− fprintf(stderr, "\n");
657− return 0;
658−}
659−</programlisting>
Documentation/DocBook/media/v4l/cec-api.xml+0−75
@@ -1,75 +0,0 @@
1−<partinfo>
2− <authorgroup>
3− <author>
4− <firstname>Hans</firstname>
5− <surname>Verkuil</surname>
6− <affiliation><address><email>hans.verkuil@cisco.com</email></address></affiliation>
7− <contrib>Initial version.</contrib>
8− </author>
9− </authorgroup>
10− <copyright>
11− <year>2016</year>
12− <holder>Hans Verkuil</holder>
13− </copyright>
14−
15− <revhistory>
16− <!-- Put document revisions here, newest first. -->
17− <revision>
18− <revnumber>1.0.0</revnumber>
19− <date>2016-03-17</date>
20− <authorinitials>hv</authorinitials>
21− <revremark>Initial revision</revremark>
22− </revision>
23− </revhistory>
24−</partinfo>
25−
26−<title>CEC API</title>
27−
28−<chapter id="cec-api">
29− <title>CEC: Consumer Electronics Control</title>
30−
31− <section id="cec-intro">
32− <title>Introduction</title>
33− <para>
34− Note: this documents the proposed CEC API. This API is not yet finalized and
35− is currently only available as a staging kernel module.
36− </para>
37− <para>HDMI connectors provide a single pin for use by the Consumer Electronics
38− Control protocol. This protocol allows different devices connected by an HDMI cable
39− to communicate. The protocol for CEC version 1.4 is defined in supplements 1 (CEC)
40− and 2 (HEAC or HDMI Ethernet and Audio Return Channel) of the HDMI 1.4a
41− (<xref linkend="hdmi" />) specification and the extensions added to CEC version 2.0
42− are defined in chapter 11 of the HDMI 2.0 (<xref linkend="hdmi2" />) specification.
43− </para>
44−
45− <para>The bitrate is very slow (effectively no more than 36 bytes per second) and
46− is based on the ancient AV.link protocol used in old SCART connectors. The protocol
47− closely resembles a crazy Rube Goldberg contraption and is an unholy mix of low and
48− high level messages. Some messages, especially those part of the HEAC protocol layered
49− on top of CEC, need to be handled by the kernel, others can be handled either by the
50− kernel or by userspace.</para>
51−
52− <para>In addition, CEC can be implemented in HDMI receivers, transmitters and in USB
53− devices that have an HDMI input and an HDMI output and that control just the CEC pin.</para>
54−
55− <para>Drivers that support CEC will create a CEC device node (/dev/cecX)
56− to give userspace access to the CEC adapter. The &CEC-ADAP-G-CAPS; ioctl will tell userspace
57− what it is allowed to do.</para>
58− </section>
59−</chapter>
60−
61−<appendix id="cec-user-func">
62− <title>Function Reference</title>
63− <!-- Keep this alphabetically sorted. -->
64− &sub-cec-func-open;
65− &sub-cec-func-close;
66− &sub-cec-func-ioctl;
67− &sub-cec-func-poll;
68− <!-- All ioctls go here. -->
69− &sub-cec-ioc-adap-g-caps;
70− &sub-cec-ioc-adap-g-log-addrs;
71− &sub-cec-ioc-adap-g-phys-addr;
72− &sub-cec-ioc-dqevent;
73− &sub-cec-ioc-g-mode;
74− &sub-cec-ioc-receive;
75−</appendix>
Documentation/DocBook/media/v4l/cec-func-close.xml+0−64
@@ -1,64 +0,0 @@
1−<refentry id="cec-func-close">
2− <refmeta>
3− <refentrytitle>cec close()</refentrytitle>
4− &manvol;
5− </refmeta>
6−
7− <refnamediv>
8− <refname>cec-close</refname>
9− <refpurpose>Close a cec device</refpurpose>
10− </refnamediv>
11−
12− <refsynopsisdiv>
13− <funcsynopsis>
14− <funcsynopsisinfo>#include &lt;unistd.h&gt;</funcsynopsisinfo>
15− <funcprototype>
16− <funcdef>int <function>close</function></funcdef>
17− <paramdef>int <parameter>fd</parameter></paramdef>
18− </funcprototype>
19− </funcsynopsis>
20− </refsynopsisdiv>
21−
22− <refsect1>
23− <title>Arguments</title>
24−
25− <variablelist>
26− <varlistentry>
27− <term><parameter>fd</parameter></term>
28− <listitem>
29− <para>&fd;</para>
30− </listitem>
31− </varlistentry>
32− </variablelist>
33− </refsect1>
34−
35− <refsect1>
36− <title>Description</title>
37−
38− <para>
39− Note: this documents the proposed CEC API. This API is not yet finalized and
40− is currently only available as a staging kernel module.
41− </para>
42−
43− <para>Closes the cec device. Resources associated with the file descriptor
44− are freed. The device configuration remain unchanged.</para>
45− </refsect1>
46−
47− <refsect1>
48− <title>Return Value</title>
49−
50− <para><function>close</function> returns 0 on success. On error, -1 is
51− returned, and <varname>errno</varname> is set appropriately. Possible error
52− codes are:</para>
53−
54− <variablelist>
55− <varlistentry>
56− <term><errorcode>EBADF</errorcode></term>
57− <listitem>
58− <para><parameter>fd</parameter> is not a valid open file descriptor.
59− </para>
60− </listitem>
61− </varlistentry>
62− </variablelist>
63− </refsect1>
64−</refentry>
Documentation/DocBook/media/v4l/cec-func-ioctl.xml+0−78
@@ -1,78 +0,0 @@
1−<refentry id="cec-func-ioctl">
2− <refmeta>
3− <refentrytitle>cec ioctl()</refentrytitle>
4− &manvol;
5− </refmeta>
6−
7− <refnamediv>
8− <refname>cec-ioctl</refname>
9− <refpurpose>Control a cec device</refpurpose>
10− </refnamediv>
11−
12− <refsynopsisdiv>
13− <funcsynopsis>
14− <funcsynopsisinfo>#include &lt;sys/ioctl.h&gt;</funcsynopsisinfo>
15− <funcprototype>
16− <funcdef>int <function>ioctl</function></funcdef>
17− <paramdef>int <parameter>fd</parameter></paramdef>
18− <paramdef>int <parameter>request</parameter></paramdef>
19− <paramdef>void *<parameter>argp</parameter></paramdef>
20− </funcprototype>
21− </funcsynopsis>
22− </refsynopsisdiv>
23−
24− <refsect1>
25− <title>Arguments</title>
26−
27− <variablelist>
28− <varlistentry>
29− <term><parameter>fd</parameter></term>
30− <listitem>
31− <para>&fd;</para>
32− </listitem>
33− </varlistentry>
34− <varlistentry>
35− <term><parameter>request</parameter></term>
36− <listitem>
37− <para>CEC ioctl request code as defined in the cec.h header file,
38− for example CEC_ADAP_G_CAPS.</para>
39− </listitem>
40− </varlistentry>
41− <varlistentry>
42− <term><parameter>argp</parameter></term>
43− <listitem>
44− <para>Pointer to a request-specific structure.</para>
45− </listitem>
46− </varlistentry>
47− </variablelist>
48− </refsect1>
49−
50− <refsect1>
51− <title>Description</title>
52− <para>
53− Note: this documents the proposed CEC API. This API is not yet finalized and
54− is currently only available as a staging kernel module.
55− </para>
56−
57− <para>The <function>ioctl()</function> function manipulates cec device
58− parameters. The argument <parameter>fd</parameter> must be an open file
59− descriptor.</para>
60− <para>The ioctl <parameter>request</parameter> code specifies the cec
61− function to be called. It has encoded in it whether the argument is an
62− input, output or read/write parameter, and the size of the argument
63− <parameter>argp</parameter> in bytes.</para>
64− <para>Macros and structures definitions specifying cec ioctl requests and
65− their parameters are located in the cec.h header file. All cec ioctl
66− requests, their respective function and parameters are specified in
67− <xref linkend="cec-user-func" />.</para>
68− </refsect1>
69−
70− <refsect1>
71− &return-value;
72−
73− <para>Request-specific error codes are listed in the
74− individual requests descriptions.</para>
75− <para>When an ioctl that takes an output or read/write parameter fails,
76− the parameter remains unmodified.</para>
77− </refsect1>
78−</refentry>
Documentation/DocBook/media/v4l/cec-func-open.xml+0−104
@@ -1,104 +0,0 @@
1−<refentry id="cec-func-open">
2− <refmeta>
3− <refentrytitle>cec open()</refentrytitle>
4− &manvol;
5− </refmeta>
6−
7− <refnamediv>
8− <refname>cec-open</refname>
9− <refpurpose>Open a cec device</refpurpose>
10− </refnamediv>
11−
12− <refsynopsisdiv>
13− <funcsynopsis>
14− <funcsynopsisinfo>#include &lt;fcntl.h&gt;</funcsynopsisinfo>
15− <funcprototype>
16− <funcdef>int <function>open</function></funcdef>
17− <paramdef>const char *<parameter>device_name</parameter></paramdef>
18− <paramdef>int <parameter>flags</parameter></paramdef>
19− </funcprototype>
20− </funcsynopsis>
21− </refsynopsisdiv>
22−
23− <refsect1>
24− <title>Arguments</title>
25−
26− <variablelist>
27− <varlistentry>
28− <term><parameter>device_name</parameter></term>
29− <listitem>
30− <para>Device to be opened.</para>
31− </listitem>
32− </varlistentry>
33− <varlistentry>
34− <term><parameter>flags</parameter></term>
35− <listitem>
36− <para>Open flags. Access mode must be <constant>O_RDWR</constant>.
37− </para>
38− <para>When the <constant>O_NONBLOCK</constant> flag is
39−given, the &CEC-RECEIVE; ioctl will return &EAGAIN; when no message is
40−available, and the &CEC-TRANSMIT;, &CEC-ADAP-S-PHYS-ADDR; and
41−&CEC-ADAP-S-LOG-ADDRS; ioctls all act in non-blocking mode.</para>
42− <para>Other flags have no effect.</para>
43− </listitem>
44− </varlistentry>
45− </variablelist>
46− </refsect1>
47− <refsect1>
48− <title>Description</title>
49− <para>
50− Note: this documents the proposed CEC API. This API is not yet finalized and
51− is currently only available as a staging kernel module.
52− </para>
53−
54− <para>To open a cec device applications call <function>open()</function>
55− with the desired device name. The function has no side effects; the device
56− configuration remain unchanged.</para>
57− <para>When the device is opened in read-only mode, attempts to modify its
58− configuration will result in an error, and <varname>errno</varname> will be
59− set to <errorcode>EBADF</errorcode>.</para>
60− </refsect1>
61− <refsect1>
62− <title>Return Value</title>
63−
64− <para><function>open</function> returns the new file descriptor on success.
65− On error, -1 is returned, and <varname>errno</varname> is set appropriately.
66− Possible error codes include:</para>
67−
68− <variablelist>
69− <varlistentry>
70− <term><errorcode>EACCES</errorcode></term>
71− <listitem>
72− <para>The requested access to the file is not allowed.</para>
73− </listitem>
74− </varlistentry>
75− <varlistentry>
76− <term><errorcode>EMFILE</errorcode></term>
77− <listitem>
78− <para>The process already has the maximum number of files open.
79− </para>
80− </listitem>
81− </varlistentry>
82− <varlistentry>
83− <term><errorcode>ENFILE</errorcode></term>
84− <listitem>
85− <para>The system limit on the total number of open files has been
86− reached.</para>
87− </listitem>
88− </varlistentry>
89− <varlistentry>
90− <term><errorcode>ENOMEM</errorcode></term>
91− <listitem>
92− <para>Insufficient kernel memory was available.</para>
93− </listitem>
94− </varlistentry>
95− <varlistentry>
96− <term><errorcode>ENXIO</errorcode></term>
97− <listitem>
98− <para>No device corresponding to this device special file exists.
99− </para>
100− </listitem>
101− </varlistentry>
102− </variablelist>
103− </refsect1>
104−</refentry>
Documentation/DocBook/media/v4l/cec-func-poll.xml+0−94
@@ -1,94 +0,0 @@
1−<refentry id="cec-func-poll">
2− <refmeta>
3− <refentrytitle>cec poll()</refentrytitle>
4− &manvol;
5− </refmeta>
6−
7− <refnamediv>
8− <refname>cec-poll</refname>
9− <refpurpose>Wait for some event on a file descriptor</refpurpose>
10− </refnamediv>
11−
12− <refsynopsisdiv>
13− <funcsynopsis>
14− <funcsynopsisinfo>#include &lt;sys/poll.h&gt;</funcsynopsisinfo>
15− <funcprototype>
16− <funcdef>int <function>poll</function></funcdef>
17− <paramdef>struct pollfd *<parameter>ufds</parameter></paramdef>
18− <paramdef>unsigned int <parameter>nfds</parameter></paramdef>
19− <paramdef>int <parameter>timeout</parameter></paramdef>
20− </funcprototype>
21− </funcsynopsis>
22− </refsynopsisdiv>
23−
24− <refsect1>
25− <title>Description</title>
26−
27− <para>
28− Note: this documents the proposed CEC API. This API is not yet finalized and
29− is currently only available as a staging kernel module.
30− </para>
31−
32− <para>With the <function>poll()</function> function applications
33−can wait for CEC events.</para>
34−
35− <para>On success <function>poll()</function> returns the number of
36−file descriptors that have been selected (that is, file descriptors
37−for which the <structfield>revents</structfield> field of the
38−respective <structname>pollfd</structname> structure is non-zero).
39−CEC devices set the <constant>POLLIN</constant> and
40−<constant>POLLRDNORM</constant> flags in the
41−<structfield>revents</structfield> field if there are messages in the
42−receive queue. If the transmit queue has room for new messages, the
43−<constant>POLLOUT</constant> and <constant>POLLWRNORM</constant>
44−flags are set. If there are events in the event queue, then the
45−<constant>POLLPRI</constant> flag is set.
46−When the function timed out it returns a value of zero, on
47−failure it returns <returnvalue>-1</returnvalue> and the
48−<varname>errno</varname> variable is set appropriately.
49−</para>
50−
51− <para>For more details see the
52−<function>poll()</function> manual page.</para>
53− </refsect1>
54−
55− <refsect1>
56− <title>Return Value</title>
57−
58− <para>On success, <function>poll()</function> returns the number
59−structures which have non-zero <structfield>revents</structfield>
60−fields, or zero if the call timed out. On error
61−<returnvalue>-1</returnvalue> is returned, and the
62−<varname>errno</varname> variable is set appropriately:</para>
63−
64− <variablelist>
65− <varlistentry>
66− <term><errorcode>EBADF</errorcode></term>
67− <listitem>
68− <para>One or more of the <parameter>ufds</parameter> members
69−specify an invalid file descriptor.</para>
70− </listitem>
71− </varlistentry>
72− <varlistentry>
73− <term><errorcode>EFAULT</errorcode></term>
74− <listitem>
75− <para><parameter>ufds</parameter> references an inaccessible
76−memory area.</para>
77− </listitem>
78− </varlistentry>
79− <varlistentry>
80− <term><errorcode>EINTR</errorcode></term>
81− <listitem>
82− <para>The call was interrupted by a signal.</para>
83− </listitem>
84− </varlistentry>
85− <varlistentry>
86− <term><errorcode>EINVAL</errorcode></term>
87− <listitem>
88− <para>The <parameter>nfds</parameter> argument is greater
89−than <constant>OPEN_MAX</constant>.</para>
90− </listitem>
91− </varlistentry>
92− </variablelist>
93− </refsect1>
94−</refentry>
Documentation/DocBook/media/v4l/cec-ioc-adap-g-caps.xml+0−151
@@ -1,151 +0,0 @@
1−<refentry id="cec-ioc-adap-g-caps">
2− <refmeta>
3− <refentrytitle>ioctl CEC_ADAP_G_CAPS</refentrytitle>
4− &manvol;
5− </refmeta>
6−
7− <refnamediv>
8− <refname>CEC_ADAP_G_CAPS</refname>
9− <refpurpose>Query device capabilities</refpurpose>
10− </refnamediv>
11−
12− <refsynopsisdiv>
13− <funcsynopsis>
14− <funcprototype>
15− <funcdef>int <function>ioctl</function></funcdef>
16− <paramdef>int <parameter>fd</parameter></paramdef>
17− <paramdef>int <parameter>request</parameter></paramdef>
18− <paramdef>struct cec_caps *<parameter>argp</parameter></paramdef>
19− </funcprototype>
20− </funcsynopsis>
21− </refsynopsisdiv>
22−
23− <refsect1>
24− <title>Arguments</title>
25−
26− <variablelist>
27− <varlistentry>
28− <term><parameter>fd</parameter></term>
29− <listitem>
30− <para>File descriptor returned by
31− <link linkend='cec-func-open'><function>open()</function></link>.</para>
32− </listitem>
33− </varlistentry>
34− <varlistentry>
35− <term><parameter>request</parameter></term>
36− <listitem>
37− <para>CEC_ADAP_G_CAPS</para>
38− </listitem>
39− </varlistentry>
40− <varlistentry>
41− <term><parameter>argp</parameter></term>
42− <listitem>
43− <para></para>
44− </listitem>
45− </varlistentry>
46− </variablelist>
47− </refsect1>
48−
49− <refsect1>
50− <title>Description</title>
51−
52− <para>
53− Note: this documents the proposed CEC API. This API is not yet finalized and
54− is currently only available as a staging kernel module.
55− </para>
56−
57− <para>All cec devices must support the <constant>CEC_ADAP_G_CAPS</constant>
58− ioctl. To query device information, applications call the ioctl with a
59− pointer to a &cec-caps;. The driver fills the structure and returns
60− the information to the application.
61− The ioctl never fails.</para>
62−
63− <table pgwide="1" frame="none" id="cec-caps">
64− <title>struct <structname>cec_caps</structname></title>
65− <tgroup cols="3">
66− &cs-str;
67− <tbody valign="top">
68− <row>
69− <entry>char</entry>
70− <entry><structfield>driver[32]</structfield></entry>
71− <entry>The name of the cec adapter driver.</entry>
72− </row>
73− <row>
74− <entry>char</entry>
75− <entry><structfield>name[32]</structfield></entry>
76− <entry>The name of this CEC adapter. The combination <structfield>driver</structfield>
77− and <structfield>name</structfield> must be unique.</entry>
78− </row>
79− <row>
80− <entry>__u32</entry>
81− <entry><structfield>capabilities</structfield></entry>
82− <entry>The capabilities of the CEC adapter, see <xref
83− linkend="cec-capabilities" />.</entry>
84− </row>
85− <row>
86− <entry>__u32</entry>
87− <entry><structfield>version</structfield></entry>
88− <entry>CEC Framework API version, formatted with the
89− <constant>KERNEL_VERSION()</constant> macro.</entry>
90− </row>
91− </tbody>
92− </tgroup>
93− </table>
94−
95− <table pgwide="1" frame="none" id="cec-capabilities">
96− <title>CEC Capabilities Flags</title>
97− <tgroup cols="3">
98− &cs-def;
99− <tbody valign="top">
100− <row>
101− <entry><constant>CEC_CAP_PHYS_ADDR</constant></entry>
102− <entry>0x00000001</entry>
103− <entry>Userspace has to configure the physical address by
104− calling &CEC-ADAP-S-PHYS-ADDR;. If this capability isn't set,
105− then setting the physical address is handled by the kernel
106− whenever the EDID is set (for an HDMI receiver) or read (for
107− an HDMI transmitter).</entry>
108− </row>
109− <row>
110− <entry><constant>CEC_CAP_LOG_ADDRS</constant></entry>
111− <entry>0x00000002</entry>
112− <entry>Userspace has to configure the logical addresses by
113− calling &CEC-ADAP-S-LOG-ADDRS;. If this capability isn't set,
114− then the kernel will have configured this.</entry>
115− </row>
116− <row>
117− <entry><constant>CEC_CAP_TRANSMIT</constant></entry>
118− <entry>0x00000004</entry>
119− <entry>Userspace can transmit CEC messages by calling &CEC-TRANSMIT;. This
120− implies that userspace can be a follower as well, since being able to
121− transmit messages is a prerequisite of becoming a follower. If this
122− capability isn't set, then the kernel will handle all CEC transmits
123− and process all CEC messages it receives.
124− </entry>
125− </row>
126− <row>
127− <entry><constant>CEC_CAP_PASSTHROUGH</constant></entry>
128− <entry>0x00000008</entry>
129− <entry>Userspace can use the passthrough mode by
130− calling &CEC-S-MODE;.</entry>
131− </row>
132− <row>
133− <entry><constant>CEC_CAP_RC</constant></entry>
134− <entry>0x00000010</entry>
135− <entry>This adapter supports the remote control protocol.</entry>
136− </row>
137− <row>
138− <entry><constant>CEC_CAP_MONITOR_ALL</constant></entry>
139− <entry>0x00000020</entry>
140− <entry>The CEC hardware can monitor all messages, not just directed and
141− broadcast messages.</entry>
142− </row>
143− </tbody>
144− </tgroup>
145− </table>
146− </refsect1>
147−
148− <refsect1>
149− &return-value;
150− </refsect1>
151−</refentry>
Documentation/DocBook/media/v4l/cec-ioc-adap-g-log-addrs.xml+0−329
@@ -1,329 +0,0 @@
1−<refentry id="cec-ioc-adap-g-log-addrs">
2− <refmeta>
3− <refentrytitle>ioctl CEC_ADAP_G_LOG_ADDRS, CEC_ADAP_S_LOG_ADDRS</refentrytitle>
4− &manvol;
5− </refmeta>
6−
7− <refnamediv>
8− <refname>CEC_ADAP_G_LOG_ADDRS</refname>
9− <refname>CEC_ADAP_S_LOG_ADDRS</refname>
10− <refpurpose>Get or set the logical addresses</refpurpose>
11− </refnamediv>
12−
13− <refsynopsisdiv>
14− <funcsynopsis>
15− <funcprototype>
16− <funcdef>int <function>ioctl</function></funcdef>
17− <paramdef>int <parameter>fd</parameter></paramdef>
18− <paramdef>int <parameter>request</parameter></paramdef>
19− <paramdef>struct cec_log_addrs *<parameter>argp</parameter></paramdef>
20− </funcprototype>
21− </funcsynopsis>
22− </refsynopsisdiv>
23−
24− <refsect1>
25− <title>Arguments</title>
26−
27− <variablelist>
28− <varlistentry>
29− <term><parameter>fd</parameter></term>
30− <listitem>
31− <para>File descriptor returned by
32− <link linkend='cec-func-open'><function>open()</function></link>.</para>
33− </listitem>
34− </varlistentry>
35− <varlistentry>
36− <term><parameter>request</parameter></term>
37− <listitem>
38− <para>CEC_ADAP_G_LOG_ADDRS, CEC_ADAP_S_LOG_ADDRS</para>
39− </listitem>
40− </varlistentry>
41− <varlistentry>
42− <term><parameter>argp</parameter></term>
43− <listitem>
44− <para></para>
45− </listitem>
46− </varlistentry>
47− </variablelist>
48− </refsect1>
49−
50− <refsect1>
51− <title>Description</title>
52−
53− <para>
54− Note: this documents the proposed CEC API. This API is not yet finalized and
55− is currently only available as a staging kernel module.
56− </para>
57−
58− <para>To query the current CEC logical addresses, applications call the
59−<constant>CEC_ADAP_G_LOG_ADDRS</constant> ioctl with a pointer to a
60−<structname>cec_log_addrs</structname> structure where the drivers stores the
61−logical addresses.</para>
62−
63− <para>To set new logical addresses, applications fill in struct <structname>cec_log_addrs</structname>
64−and call the <constant>CEC_ADAP_S_LOG_ADDRS</constant> ioctl with a pointer to this struct.
65−The <constant>CEC_ADAP_S_LOG_ADDRS</constant> ioctl is only available if
66−<constant>CEC_CAP_LOG_ADDRS</constant> is set (&ENOTTY; is returned otherwise). This ioctl will block until all
67−requested logical addresses have been claimed. <constant>CEC_ADAP_S_LOG_ADDRS</constant>
68−can only be called by a file handle in initiator mode (see &CEC-S-MODE;).</para>
69−
70− <table pgwide="1" frame="none" id="cec-log-addrs">
71− <title>struct <structname>cec_log_addrs</structname></title>
72− <tgroup cols="3">
73− &cs-str;
74− <tbody valign="top">
75− <row>
76− <entry>__u8</entry>
77− <entry><structfield>log_addr</structfield>[CEC_MAX_LOG_ADDRS]</entry>
78− <entry>The actual logical addresses that were claimed. This is set by the
79− driver. If no logical address could be claimed, then it is set to
80− <constant>CEC_LOG_ADDR_INVALID</constant>. If this adapter is Unregistered,
81− then <structfield>log_addr[0]</structfield> is set to 0xf and all others to
82− <constant>CEC_LOG_ADDR_INVALID</constant>.</entry>
83− </row>
84− <row>
85− <entry>__u16</entry>
86− <entry><structfield>log_addr_mask</structfield></entry>
87− <entry>The bitmask of all logical addresses this adapter has claimed.
88− If this adapter is Unregistered then <structfield>log_addr_mask</structfield>
89− sets bit 15 and clears all other bits. If this adapter is not configured at all, then
90− <structfield>log_addr_mask</structfield> is set to 0. Set by the driver.</entry>
91− </row>
92− <row>
93− <entry>__u8</entry>
94− <entry><structfield>cec_version</structfield></entry>
95− <entry>The CEC version that this adapter shall use. See
96− <xref linkend="cec-versions" />.
97− Used to implement the <constant>CEC_MSG_CEC_VERSION</constant> and
98− <constant>CEC_MSG_REPORT_FEATURES</constant> messages. Note that
99− <constant>CEC_OP_CEC_VERSION_1_3A</constant> is not allowed
100− by the CEC framework.
101− </entry>
102− </row>
103− <row>
104− <entry>__u8</entry>
105− <entry><structfield>num_log_addrs</structfield></entry>
106− <entry>Number of logical addresses to set up. Must be &le;
107− <structfield>available_log_addrs</structfield> as returned by
108− &CEC-ADAP-G-CAPS;. All arrays in this structure are only filled up to
109− index <structfield>available_log_addrs</structfield>-1. The remaining
110− array elements will be ignored. Note that the CEC 2.0 standard allows
111− for a maximum of 2 logical addresses, although some hardware has support
112− for more. <constant>CEC_MAX_LOG_ADDRS</constant> is 4. The driver will
113− return the actual number of logical addresses it could claim, which may
114− be less than what was requested. If this field is set to 0, then the
115− CEC adapter shall clear all claimed logical addresses and all other
116− fields will be ignored.</entry>
117− </row>
118− <row>
119− <entry>__u32</entry>
120− <entry><structfield>vendor_id</structfield></entry>
121− <entry>The vendor ID is a 24-bit number that identifies the specific
122− vendor or entity. Based on this ID vendor specific commands may be
123− defined. If you do not want a vendor ID then set it to
124− <constant>CEC_VENDOR_ID_NONE</constant>.</entry>
125− </row>
126− <row>
127− <entry>__u32</entry>
128− <entry><structfield>flags</structfield></entry>
129− <entry>Flags. No flags are defined yet, so set this to 0.</entry>
130− </row>
131− <row>
132− <entry>char</entry>
133− <entry><structfield>osd_name</structfield>[15]</entry>
134− <entry>The On-Screen Display name as is returned by the
135− <constant>CEC_MSG_SET_OSD_NAME</constant> message.</entry>
136− </row>
137− <row>
138− <entry>__u8</entry>
139− <entry><structfield>primary_device_type</structfield>[CEC_MAX_LOG_ADDRS]</entry>
140− <entry>Primary device type for each logical address. See
141− <xref linkend="cec-prim-dev-types" /> for possible types.</entry>
142− </row>
143− <row>
144− <entry>__u8</entry>
145− <entry><structfield>log_addr_type</structfield>[CEC_MAX_LOG_ADDRS]</entry>
146− <entry>Logical address types. See <xref linkend="cec-log-addr-types" /> for
147− possible types. The driver will update this with the actual logical address
148− type that it claimed (e.g. it may have to fallback to
149− <constant>CEC_LOG_ADDR_TYPE_UNREGISTERED</constant>).</entry>
150− </row>
151− <row>
152− <entry>__u8</entry>
153− <entry><structfield>all_device_types</structfield>[CEC_MAX_LOG_ADDRS]</entry>
154− <entry>CEC 2.0 specific: all device types. See <xref linkend="cec-all-dev-types-flags" />.
155− Used to implement the <constant>CEC_MSG_REPORT_FEATURES</constant> message.
156− This field is ignored if <structfield>cec_version</structfield> &lt;
157− <constant>CEC_OP_CEC_VERSION_2_0</constant>.</entry>
158− </row>
159− <row>
160− <entry>__u8</entry>
161− <entry><structfield>features</structfield>[CEC_MAX_LOG_ADDRS][12]</entry>
162− <entry>Features for each logical address. Used to implement the
163− <constant>CEC_MSG_REPORT_FEATURES</constant> message. The 12 bytes include
164− both the RC Profile and the Device Features.
165− This field is ignored if <structfield>cec_version</structfield> &lt;
166− <constant>CEC_OP_CEC_VERSION_2_0</constant>.</entry>
167− </row>
168− </tbody>
169− </tgroup>
170− </table>
171−
172− <table pgwide="1" frame="none" id="cec-versions">
173− <title>CEC Versions</title>
174− <tgroup cols="3">
175− &cs-def;
176− <tbody valign="top">
177− <row>
178− <entry><constant>CEC_OP_CEC_VERSION_1_3A</constant></entry>
179− <entry>4</entry>
180− <entry>CEC version according to the HDMI 1.3a standard.</entry>
181− </row>
182− <row>
183− <entry><constant>CEC_OP_CEC_VERSION_1_4B</constant></entry>
184− <entry>5</entry>
185− <entry>CEC version according to the HDMI 1.4b standard.</entry>
186− </row>
187− <row>
188− <entry><constant>CEC_OP_CEC_VERSION_2_0</constant></entry>
189− <entry>6</entry>
190− <entry>CEC version according to the HDMI 2.0 standard.</entry>
191− </row>
192− </tbody>
193− </tgroup>
194− </table>
195−
196− <table pgwide="1" frame="none" id="cec-prim-dev-types">
197− <title>CEC Primary Device Types</title>
198− <tgroup cols="3">
199− &cs-def;
200− <tbody valign="top">
201− <row>
202− <entry><constant>CEC_OP_PRIM_DEVTYPE_TV</constant></entry>
203− <entry>0</entry>
204− <entry>Use for a TV.</entry>
205− </row>
206− <row>
207− <entry><constant>CEC_OP_PRIM_DEVTYPE_RECORD</constant></entry>
208− <entry>1</entry>
209− <entry>Use for a recording device.</entry>
210− </row>
211− <row>
212− <entry><constant>CEC_OP_PRIM_DEVTYPE_TUNER</constant></entry>
213− <entry>3</entry>
214− <entry>Use for a device with a tuner.</entry>
215− </row>
216− <row>
217− <entry><constant>CEC_OP_PRIM_DEVTYPE_PLAYBACK</constant></entry>
218− <entry>4</entry>
219− <entry>Use for a playback device.</entry>
220− </row>
221− <row>
222− <entry><constant>CEC_OP_PRIM_DEVTYPE_AUDIOSYSTEM</constant></entry>
223− <entry>5</entry>
224− <entry>Use for an audio system (e.g. an audio/video receiver).</entry>
225− </row>
226− <row>
227− <entry><constant>CEC_OP_PRIM_DEVTYPE_SWITCH</constant></entry>
228− <entry>6</entry>
229− <entry>Use for a CEC switch.</entry>
230− </row>
231− <row>
232− <entry><constant>CEC_OP_PRIM_DEVTYPE_VIDEOPROC</constant></entry>
233− <entry>7</entry>
234− <entry>Use for a video processor device.</entry>
235− </row>
236− </tbody>
237− </tgroup>
238− </table>
239−
240− <table pgwide="1" frame="none" id="cec-log-addr-types">
241− <title>CEC Logical Address Types</title>
242− <tgroup cols="3">
243− &cs-def;
244− <tbody valign="top">
245− <row>
246− <entry><constant>CEC_LOG_ADDR_TYPE_TV</constant></entry>
247− <entry>0</entry>
248− <entry>Use for a TV.</entry>
249− </row>
250− <row>
251− <entry><constant>CEC_LOG_ADDR_TYPE_RECORD</constant></entry>
252− <entry>1</entry>
253− <entry>Use for a recording device.</entry>
254− </row>
255− <row>
256− <entry><constant>CEC_LOG_ADDR_TYPE_TUNER</constant></entry>
257− <entry>2</entry>
258− <entry>Use for a tuner device.</entry>
259− </row>
260− <row>
261− <entry><constant>CEC_LOG_ADDR_TYPE_PLAYBACK</constant></entry>
262− <entry>3</entry>
263− <entry>Use for a playback device.</entry>
264− </row>
265− <row>
266− <entry><constant>CEC_LOG_ADDR_TYPE_AUDIOSYSTEM</constant></entry>
267− <entry>4</entry>
268− <entry>Use for an audio system device.</entry>
269− </row>
270− <row>
271− <entry><constant>CEC_LOG_ADDR_TYPE_SPECIFIC</constant></entry>
272− <entry>5</entry>
273− <entry>Use for a second TV or for a video processor device.</entry>
274− </row>
275− <row>
276− <entry><constant>CEC_LOG_ADDR_TYPE_UNREGISTERED</constant></entry>
277− <entry>6</entry>
278− <entry>Use this if you just want to remain unregistered.
279− Used for pure CEC switches or CDC-only devices (CDC:
280− Capability Discovery and Control).</entry>
281− </row>
282− </tbody>
283− </tgroup>
284− </table>
285−
286− <table pgwide="1" frame="none" id="cec-all-dev-types-flags">
287− <title>CEC All Device Types Flags</title>
288− <tgroup cols="3">
289− &cs-def;
290− <tbody valign="top">
291− <row>
292− <entry><constant>CEC_OP_ALL_DEVTYPE_TV</constant></entry>
293− <entry>0x80</entry>
294− <entry>This supports the TV type.</entry>
295− </row>
296− <row>
297− <entry><constant>CEC_OP_ALL_DEVTYPE_RECORD</constant></entry>
298− <entry>0x40</entry>
299− <entry>This supports the Recording type.</entry>
300− </row>
301− <row>
302− <entry><constant>CEC_OP_ALL_DEVTYPE_TUNER</constant></entry>
303− <entry>0x20</entry>
304− <entry>This supports the Tuner type.</entry>
305− </row>
306− <row>
307− <entry><constant>CEC_OP_ALL_DEVTYPE_PLAYBACK</constant></entry>
308− <entry>0x10</entry>
309− <entry>This supports the Playback type.</entry>
310− </row>
311− <row>
312− <entry><constant>CEC_OP_ALL_DEVTYPE_AUDIOSYSTEM</constant></entry>
313− <entry>0x08</entry>
314− <entry>This supports the Audio System type.</entry>
315− </row>
316− <row>
317− <entry><constant>CEC_OP_ALL_DEVTYPE_SWITCH</constant></entry>
318− <entry>0x04</entry>
319− <entry>This supports the CEC Switch or Video Processing type.</entry>
320− </row>
321− </tbody>
322− </tgroup>
323− </table>
324− </refsect1>
325−
326− <refsect1>
327− &return-value;
328− </refsect1>
329−</refentry>
Documentation/DocBook/media/v4l/cec-ioc-adap-g-phys-addr.xml+0−86
@@ -1,86 +0,0 @@
1−<refentry id="cec-ioc-adap-g-phys-addr">
2− <refmeta>
3− <refentrytitle>ioctl CEC_ADAP_G_PHYS_ADDR, CEC_ADAP_S_PHYS_ADDR</refentrytitle>
4− &manvol;
5− </refmeta>
6−
7− <refnamediv>
8− <refname>CEC_ADAP_G_PHYS_ADDR</refname>
9− <refname>CEC_ADAP_S_PHYS_ADDR</refname>
10− <refpurpose>Get or set the physical address</refpurpose>
11− </refnamediv>
12−
13− <refsynopsisdiv>
14− <funcsynopsis>
15− <funcprototype>
16− <funcdef>int <function>ioctl</function></funcdef>
17− <paramdef>int <parameter>fd</parameter></paramdef>
18− <paramdef>int <parameter>request</parameter></paramdef>
19− <paramdef>__u16 *<parameter>argp</parameter></paramdef>
20− </funcprototype>
21− </funcsynopsis>
22− </refsynopsisdiv>
23−
24− <refsect1>
25− <title>Arguments</title>
26−
27− <variablelist>
28− <varlistentry>
29− <term><parameter>fd</parameter></term>
30− <listitem>
31− <para>File descriptor returned by
32− <link linkend='cec-func-open'><function>open()</function></link>.</para>
33− </listitem>
34− </varlistentry>
35− <varlistentry>
36− <term><parameter>request</parameter></term>
37− <listitem>
38− <para>CEC_ADAP_G_PHYS_ADDR, CEC_ADAP_S_PHYS_ADDR</para>
39− </listitem>
40− </varlistentry>
41− <varlistentry>
42− <term><parameter>argp</parameter></term>
43− <listitem>
44− <para></para>
45− </listitem>
46− </varlistentry>
47− </variablelist>
48− </refsect1>
49−
50− <refsect1>
51− <title>Description</title>
52−
53− <para>
54− Note: this documents the proposed CEC API. This API is not yet finalized and
55− is currently only available as a staging kernel module.
56− </para>
57−
58− <para>To query the current physical address applications call the
59−<constant>CEC_ADAP_G_PHYS_ADDR</constant> ioctl with a pointer to an __u16
60−where the driver stores the physical address.</para>
61−
62− <para>To set a new physical address applications store the physical address in
63−an __u16 and call the <constant>CEC_ADAP_S_PHYS_ADDR</constant> ioctl with a
64−pointer to this integer. <constant>CEC_ADAP_S_PHYS_ADDR</constant> is only
65−available if <constant>CEC_CAP_PHYS_ADDR</constant> is set (&ENOTTY; will be returned
66−otherwise). <constant>CEC_ADAP_S_PHYS_ADDR</constant>
67−can only be called by a file handle in initiator mode (see &CEC-S-MODE;), if not
68−&EBUSY; will be returned.</para>
69−
70− <para>The physical address is a 16-bit number where each group of 4 bits
71−represent a digit of the physical address a.b.c.d where the most significant
72−4 bits represent 'a'. The CEC root device (usually the TV) has address 0.0.0.0.
73−Every device that is hooked up to an input of the TV has address a.0.0.0 (where
74−'a' is &ge; 1), devices hooked up to those in turn have addresses a.b.0.0, etc.
75−So a topology of up to 5 devices deep is supported. The physical address a
76−device shall use is stored in the EDID of the sink.</para>
77−
78−<para>For example, the EDID for each HDMI input of the TV will have a different
79−physical address of the form a.0.0.0 that the sources will read out and use as
80−their physical address.</para>
81− </refsect1>
82−
83− <refsect1>
84− &return-value;
85− </refsect1>
86−</refentry>
Documentation/DocBook/media/v4l/cec-ioc-dqevent.xml+0−202
@@ -1,202 +0,0 @@
1−<refentry id="cec-ioc-g-event">
2− <refmeta>
3− <refentrytitle>ioctl CEC_DQEVENT</refentrytitle>
4− &manvol;
5− </refmeta>
6−
7− <refnamediv>
8− <refname>CEC_DQEVENT</refname>
9− <refpurpose>Dequeue a CEC event</refpurpose>
10− </refnamediv>
11−
12− <refsynopsisdiv>
13− <funcsynopsis>
14− <funcprototype>
15− <funcdef>int <function>ioctl</function></funcdef>
16− <paramdef>int <parameter>fd</parameter></paramdef>
17− <paramdef>int <parameter>request</parameter></paramdef>
18− <paramdef>struct cec_event *<parameter>argp</parameter></paramdef>
19− </funcprototype>
20− </funcsynopsis>
21− </refsynopsisdiv>
22−
23− <refsect1>
24− <title>Arguments</title>
25−
26− <variablelist>
27− <varlistentry>
28− <term><parameter>fd</parameter></term>
29− <listitem>
30− <para>File descriptor returned by
31− <link linkend='cec-func-open'><function>open()</function></link>.</para>
32− </listitem>
33− </varlistentry>
34− <varlistentry>
35− <term><parameter>request</parameter></term>
36− <listitem>
37− <para>CEC_DQEVENT</para>
38− </listitem>
39− </varlistentry>
40− <varlistentry>
41− <term><parameter>argp</parameter></term>
42− <listitem>
43− <para></para>
44− </listitem>
45− </varlistentry>
46− </variablelist>
47− </refsect1>
48−
49− <refsect1>
50− <title>Description</title>
51−
52− <para>
53− Note: this documents the proposed CEC API. This API is not yet finalized and
54− is currently only available as a staging kernel module.
55− </para>
56−
57− <para>CEC devices can send asynchronous events. These can be retrieved by calling
58− the <constant>CEC_DQEVENT</constant> ioctl. If the file descriptor is in non-blocking
59− mode and no event is pending, then it will return -1 and set errno to the &EAGAIN;.</para>
60−
61− <para>The internal event queues are per-filehandle and per-event type. If there is
62− no more room in a queue then the last event is overwritten with the new one. This
63− means that intermediate results can be thrown away but that the latest event is always
64− available. This also means that is it possible to read two successive events that have
65− the same value (e.g. two CEC_EVENT_STATE_CHANGE events with the same state). In that
66− case the intermediate state changes were lost but it is guaranteed that the state
67− did change in between the two events.</para>
68−
69− <table pgwide="1" frame="none" id="cec-event-state-change">
70− <title>struct <structname>cec_event_state_change</structname></title>
71− <tgroup cols="3">
72− &cs-str;
73− <tbody valign="top">
74− <row>
75− <entry>__u16</entry>
76− <entry><structfield>phys_addr</structfield></entry>
77− <entry>The current physical address.</entry>
78− </row>
79− <row>
80− <entry>__u16</entry>
81− <entry><structfield>log_addr_mask</structfield></entry>
82− <entry>The current set of claimed logical addresses.</entry>
83− </row>
84− </tbody>
85− </tgroup>
86− </table>
87−
88− <table pgwide="1" frame="none" id="cec-event-lost-msgs">
89− <title>struct <structname>cec_event_lost_msgs</structname></title>
90− <tgroup cols="3">
91− &cs-str;
92− <tbody valign="top">
93− <row>
94− <entry>__u32</entry>
95− <entry><structfield>lost_msgs</structfield></entry>
96− <entry>Set to the number of lost messages since the filehandle
97− was opened or since the last time this event was dequeued for
98− this filehandle. The messages lost are the oldest messages. So
99− when a new message arrives and there is no more room, then the
100− oldest message is discarded to make room for the new one. The
101− internal size of the message queue guarantees that all messages
102− received in the last two seconds will be stored. Since messages
103− should be replied to within a second according to the CEC
104− specification, this is more than enough.
105− </entry>
106− </row>
107− </tbody>
108− </tgroup>
109− </table>
110−
111− <table pgwide="1" frame="none" id="cec-event">
112− <title>struct <structname>cec_event</structname></title>
113− <tgroup cols="4">
114− &cs-str;
115− <tbody valign="top">
116− <row>
117− <entry>__u64</entry>
118− <entry><structfield>ts</structfield></entry>
119− <entry>Timestamp of the event in ns.</entry>
120− <entry></entry>
121− </row>
122− <row>
123− <entry>__u32</entry>
124− <entry><structfield>event</structfield></entry>
125− <entry>The CEC event type, see <xref linkend="cec-events" />.</entry>
126− <entry></entry>
127− </row>
128− <row>
129− <entry>__u32</entry>
130− <entry><structfield>flags</structfield></entry>
131− <entry>Event flags, see <xref linkend="cec-event-flags" />.</entry>
132− <entry></entry>
133− </row>
134− <row>
135− <entry>union</entry>
136− <entry>(anonymous)</entry>
137− <entry></entry>
138− <entry></entry>
139− </row>
140− <row>
141− <entry></entry>
142− <entry>struct cec_event_state_change</entry>
143− <entry><structfield>state_change</structfield></entry>
144− <entry>The new adapter state as sent by the <constant>CEC_EVENT_STATE_CHANGE</constant>
145− event.</entry>
146− </row>
147− <row>
148− <entry></entry>
149− <entry>struct cec_event_lost_msgs</entry>
150− <entry><structfield>lost_msgs</structfield></entry>
151− <entry>The number of lost messages as sent by the <constant>CEC_EVENT_LOST_MSGS</constant>
152− event.</entry>
153− </row>
154− </tbody>
155− </tgroup>
156− </table>
157−
158− <table pgwide="1" frame="none" id="cec-events">
159− <title>CEC Events Types</title>
160− <tgroup cols="3">
161− &cs-def;
162− <tbody valign="top">
163− <row>
164− <entry><constant>CEC_EVENT_STATE_CHANGE</constant></entry>
165− <entry>1</entry>
166− <entry>Generated when the CEC Adapter's state changes. When open() is
167− called an initial event will be generated for that filehandle with the
168− CEC Adapter's state at that time.
169− </entry>
170− </row>
171− <row>
172− <entry><constant>CEC_EVENT_LOST_MSGS</constant></entry>
173− <entry>2</entry>
174− <entry>Generated if one or more CEC messages were lost because the
175− application didn't dequeue CEC messages fast enough.</entry>
176− </row>
177− </tbody>
178− </tgroup>
179− </table>
180−
181− <table pgwide="1" frame="none" id="cec-event-flags">
182− <title>CEC Event Flags</title>
183− <tgroup cols="3">
184− &cs-def;
185− <tbody valign="top">
186− <row>
187− <entry><constant>CEC_EVENT_FL_INITIAL_VALUE</constant></entry>
188− <entry>1</entry>
189− <entry>Set for the initial events that are generated when the device is
190− opened. See the table above for which events do this. This allows
191− applications to learn the initial state of the CEC adapter at open()
192− time.</entry>
193− </row>
194− </tbody>
195− </tgroup>
196− </table>
197− </refsect1>
198−
199− <refsect1>
200− &return-value;
201− </refsect1>
202−</refentry>
Documentation/DocBook/media/v4l/cec-ioc-g-mode.xml+0−255
@@ -1,255 +0,0 @@
1−<refentry id="cec-ioc-g-mode">
2− <refmeta>
3− <refentrytitle>ioctl CEC_G_MODE, CEC_S_MODE</refentrytitle>
4− &manvol;
5− </refmeta>
6−
7− <refnamediv>
8− <refname>CEC_G_MODE</refname>
9− <refname>CEC_S_MODE</refname>
10− <refpurpose>Get or set exclusive use of the CEC adapter</refpurpose>
11− </refnamediv>
12−
13− <refsynopsisdiv>
14− <funcsynopsis>
15− <funcprototype>
16− <funcdef>int <function>ioctl</function></funcdef>
17− <paramdef>int <parameter>fd</parameter></paramdef>
18− <paramdef>int <parameter>request</parameter></paramdef>
19− <paramdef>__u32 *<parameter>argp</parameter></paramdef>
20− </funcprototype>
21− </funcsynopsis>
22− </refsynopsisdiv>
23−
24− <refsect1>
25− <title>Arguments</title>
26−
27− <variablelist>
28− <varlistentry>
29− <term><parameter>fd</parameter></term>
30− <listitem>
31− <para>File descriptor returned by
32− <link linkend='cec-func-open'><function>open()</function></link>.</para>
33− </listitem>
34− </varlistentry>
35− <varlistentry>
36− <term><parameter>request</parameter></term>
37− <listitem>
38− <para>CEC_G_MODE, CEC_S_MODE</para>
39− </listitem>
40− </varlistentry>
41− <varlistentry>
42− <term><parameter>argp</parameter></term>
43− <listitem>
44− <para></para>
45− </listitem>
46− </varlistentry>
47− </variablelist>
48− </refsect1>
49−
50− <refsect1>
51− <title>Description</title>
52−
53− <para>
54− Note: this documents the proposed CEC API. This API is not yet finalized and
55− is currently only available as a staging kernel module.
56− </para>
57−
58− <para>By default any filehandle can use &CEC-TRANSMIT; and &CEC-RECEIVE;, but
59−in order to prevent applications from stepping on each others toes it must be possible
60−to obtain exclusive access to the CEC adapter. This ioctl sets the filehandle
61−to initiator and/or follower mode which can be exclusive depending on the chosen
62−mode. The initiator is the filehandle that is used
63−to initiate messages, i.e. it commands other CEC devices. The follower is the filehandle
64−that receives messages sent to the CEC adapter and processes them. The same filehandle
65−can be both initiator and follower, or this role can be taken by two different
66−filehandles.</para>
67−
68− <para>When a CEC message is received, then the CEC framework will decide how
69−it will be processed. If the message is a reply to an earlier transmitted message,
70−then the reply is sent back to the filehandle that is waiting for it. In addition
71−the CEC framework will process it.</para>
72−
73− <para>If the message is not a reply, then the CEC framework will process it
74−first. If there is no follower, then the message is just discarded and a feature
75−abort is sent back to the initiator if the framework couldn't process it. If there
76−is a follower, then the message is passed on to the follower who will use
77−&CEC-RECEIVE; to dequeue the new message. The framework expects the follower to
78−make the right decisions.</para>
79−
80− <para>The CEC framework will process core messages unless requested otherwise
81−by the follower. The follower can enable the passthrough mode. In that case, the
82−CEC framework will pass on most core messages without processing them and
83−the follower will have to implement those messages. There are some messages
84−that the core will always process, regardless of the passthrough mode. See
85−<xref linkend="cec-core-processing" /> for details.</para>
86−
87− <para>If there is no initiator, then any CEC filehandle can use &CEC-TRANSMIT;.
88−If there is an exclusive initiator then only that initiator can call &CEC-TRANSMIT;.
89−The follower can of course always call &CEC-TRANSMIT;.</para>
90−
91− <para>Available initiator modes are:</para>
92−
93− <table pgwide="1" frame="none" id="cec-mode-initiator">
94− <title>Initiator Modes</title>
95− <tgroup cols="3">
96− &cs-def;
97− <tbody valign="top">
98− <row>
99− <entry><constant>CEC_MODE_NO_INITIATOR</constant></entry>
100− <entry>0x0</entry>
101− <entry>This is not an initiator, i.e. it cannot transmit CEC messages
102− or make any other changes to the CEC adapter.</entry>
103− </row>
104− <row>
105− <entry><constant>CEC_MODE_INITIATOR</constant></entry>
106− <entry>0x1</entry>
107− <entry>This is an initiator (the default when the device is opened) and it
108− can transmit CEC messages and make changes to the CEC adapter, unless there
109− is an exclusive initiator.</entry>
110− </row>
111− <row>
112− <entry><constant>CEC_MODE_EXCL_INITIATOR</constant></entry>
113− <entry>0x2</entry>
114− <entry>This is an exclusive initiator and this file descriptor is the only one
115− that can transmit CEC messages and make changes to the CEC adapter. If someone
116− else is already the exclusive initiator then an attempt to become one will return
117− the &EBUSY; error.</entry>
118− </row>
119− </tbody>
120− </tgroup>
121− </table>
122−
123− <para>Available follower modes are:</para>
124−
125− <table pgwide="1" frame="none" id="cec-mode-follower">
126− <title>Follower Modes</title>
127− <tgroup cols="3">
128− &cs-def;
129− <tbody valign="top">
130− <row>
131− <entry><constant>CEC_MODE_NO_FOLLOWER</constant></entry>
132− <entry>0x00</entry>
133− <entry>This is not a follower (the default when the device is opened).</entry>
134− </row>
135− <row>
136− <entry><constant>CEC_MODE_FOLLOWER</constant></entry>
137− <entry>0x10</entry>
138− <entry>This is a follower and it will receive CEC messages unless there is
139− an exclusive follower. You cannot become a follower if <constant>CEC_CAP_TRANSMIT</constant>
140− is not set or if <constant>CEC_MODE_NO_INITIATOR</constant> was specified,
141− &EINVAL; is returned in that case.</entry>
142− </row>
143− <row>
144− <entry><constant>CEC_MODE_EXCL_FOLLOWER</constant></entry>
145− <entry>0x20</entry>
146− <entry>This is an exclusive follower and only this file descriptor will receive
147− CEC messages for processing. If someone else is already the exclusive follower
148− then an attempt to become one will return the &EBUSY; error. You cannot become
149− a follower if <constant>CEC_CAP_TRANSMIT</constant> is not set or if
150− <constant>CEC_MODE_NO_INITIATOR</constant> was specified, &EINVAL; is returned
151− in that case.</entry>
152− </row>
153− <row>
154− <entry><constant>CEC_MODE_EXCL_FOLLOWER_PASSTHRU</constant></entry>
155− <entry>0x30</entry>
156− <entry>This is an exclusive follower and only this file descriptor will receive
157− CEC messages for processing. In addition it will put the CEC device into
158− passthrough mode, allowing the exclusive follower to handle most core messages
159− instead of relying on the CEC framework for that. If someone else is already the
160− exclusive follower then an attempt to become one will return the &EBUSY; error.
161− You cannot become a follower if <constant>CEC_CAP_TRANSMIT</constant>
162− is not set or if <constant>CEC_MODE_NO_INITIATOR</constant> was specified,
163− &EINVAL; is returned in that case.</entry>
164− </row>
165− <row>
166− <entry><constant>CEC_MODE_MONITOR</constant></entry>
167− <entry>0xe0</entry>
168− <entry>Put the file descriptor into monitor mode. Can only be used in combination
169− with <constant>CEC_MODE_NO_INITIATOR</constant>, otherwise &EINVAL; will be
170− returned. In monitor mode all messages this CEC device transmits and all messages
171− it receives (both broadcast messages and directed messages for one its logical
172− addresses) will be reported. This is very useful for debugging. This is only
173− allowed if the process has the <constant>CAP_NET_ADMIN</constant>
174− capability. If that is not set, then &EPERM; is returned.</entry>
175− </row>
176− <row>
177− <entry><constant>CEC_MODE_MONITOR_ALL</constant></entry>
178− <entry>0xf0</entry>
179− <entry>Put the file descriptor into 'monitor all' mode. Can only be used in combination
180− with <constant>CEC_MODE_NO_INITIATOR</constant>, otherwise &EINVAL; will be
181− returned. In 'monitor all' mode all messages this CEC device transmits and all messages
182− it receives, including directed messages for other CEC devices will be reported. This
183− is very useful for debugging, but not all devices support this. This mode requires that
184− the <constant>CEC_CAP_MONITOR_ALL</constant> capability is set, otherwise &EINVAL; is
185− returned. This is only allowed if the process has the <constant>CAP_NET_ADMIN</constant>
186− capability. If that is not set, then &EPERM; is returned.</entry>
187− </row>
188− </tbody>
189− </tgroup>
190− </table>
191−
192− <para>Core message processing details:</para>
193−
194− <table pgwide="1" frame="none" id="cec-core-processing">
195− <title>Core Message Processing</title>
196− <tgroup cols="2">
197− &cs-def;
198− <tbody valign="top">
199− <row>
200− <entry><constant>CEC_MSG_GET_CEC_VERSION</constant></entry>
201− <entry>When in passthrough mode this message has to be handled by userspace,
202− otherwise the core will return the CEC version that was set with &CEC-ADAP-S-LOG-ADDRS;.</entry>
203− </row>
204− <row>
205− <entry><constant>CEC_MSG_GIVE_DEVICE_VENDOR_ID</constant></entry>
206− <entry>When in passthrough mode this message has to be handled by userspace,
207− otherwise the core will return the vendor ID that was set with &CEC-ADAP-S-LOG-ADDRS;.</entry>
208− </row>
209− <row>
210− <entry><constant>CEC_MSG_ABORT</constant></entry>
211− <entry>When in passthrough mode this message has to be handled by userspace,
212− otherwise the core will return a feature refused message as per the specification.</entry>
213− </row>
214− <row>
215− <entry><constant>CEC_MSG_GIVE_PHYSICAL_ADDR</constant></entry>
216− <entry>When in passthrough mode this message has to be handled by userspace,
217− otherwise the core will report the current physical address.</entry>
218− </row>
219− <row>
220− <entry><constant>CEC_MSG_GIVE_OSD_NAME</constant></entry>
221− <entry>When in passthrough mode this message has to be handled by userspace,
222− otherwise the core will report the current OSD name as was set with
223− &CEC-ADAP-S-LOG-ADDRS;.</entry>
224− </row>
225− <row>
226− <entry><constant>CEC_MSG_GIVE_FEATURES</constant></entry>
227− <entry>When in passthrough mode this message has to be handled by userspace,
228− otherwise the core will report the current features as was set with
229− &CEC-ADAP-S-LOG-ADDRS; or the message is ignore if the CEC version was
230− older than 2.0.</entry>
231− </row>
232− <row>
233− <entry><constant>CEC_MSG_USER_CONTROL_PRESSED</constant></entry>
234− <entry>If <constant>CEC_CAP_RC</constant> is set, then generate a remote control
235− key press. This message is always passed on to userspace.</entry>
236− </row>
237− <row>
238− <entry><constant>CEC_MSG_USER_CONTROL_RELEASED</constant></entry>
239− <entry>If <constant>CEC_CAP_RC</constant> is set, then generate a remote control
240− key release. This message is always passed on to userspace.</entry>
241− </row>
242− <row>
243− <entry><constant>CEC_MSG_REPORT_PHYSICAL_ADDR</constant></entry>
244− <entry>The CEC framework will make note of the reported physical address
245− and then just pass the message on to userspace.</entry>
246− </row>
247− </tbody>
248− </tgroup>
249− </table>
250− </refsect1>
251−
252− <refsect1>
253− &return-value;
254− </refsect1>
255−</refentry>
Documentation/DocBook/media/v4l/cec-ioc-receive.xml+0−274
@@ -1,274 +0,0 @@
1−<refentry id="cec-ioc-receive">
2− <refmeta>
3− <refentrytitle>ioctl CEC_RECEIVE, CEC_TRANSMIT</refentrytitle>
4− &manvol;
5− </refmeta>
6−
7− <refnamediv>
8− <refname>CEC_RECEIVE</refname>
9− <refname>CEC_TRANSMIT</refname>
10− <refpurpose>Receive or transmit a CEC message</refpurpose>
11− </refnamediv>
12−
13− <refsynopsisdiv>
14− <funcsynopsis>
15− <funcprototype>
16− <funcdef>int <function>ioctl</function></funcdef>
17− <paramdef>int <parameter>fd</parameter></paramdef>
18− <paramdef>int <parameter>request</parameter></paramdef>
19− <paramdef>struct cec_msg *<parameter>argp</parameter></paramdef>
20− </funcprototype>
21− </funcsynopsis>
22− </refsynopsisdiv>
23−
24− <refsect1>
25− <title>Arguments</title>
26−
27− <variablelist>
28− <varlistentry>
29− <term><parameter>fd</parameter></term>
30− <listitem>
31− <para>File descriptor returned by
32− <link linkend='cec-func-open'><function>open()</function></link>.</para>
33− </listitem>
34− </varlistentry>
35− <varlistentry>
36− <term><parameter>request</parameter></term>
37− <listitem>
38− <para>CEC_RECEIVE, CEC_TRANSMIT</para>
39− </listitem>
40− </varlistentry>
41− <varlistentry>
42− <term><parameter>argp</parameter></term>
43− <listitem>
44− <para></para>
45− </listitem>
46− </varlistentry>
47− </variablelist>
48− </refsect1>
49−
50− <refsect1>
51− <title>Description</title>
52−
53− <para>
54− Note: this documents the proposed CEC API. This API is not yet finalized and
55− is currently only available as a staging kernel module.
56− </para>
57−
58− <para>To receive a CEC message the application has to fill in the
59− <structname>cec_msg</structname> structure and pass it to the
60− <constant>CEC_RECEIVE</constant> ioctl. <constant>CEC_RECEIVE</constant> is
61− only available if <constant>CEC_CAP_RECEIVE</constant> is set. If the
62− file descriptor is in non-blocking mode and there are no received
63− messages pending, then it will return -1 and set errno to the &EAGAIN;.
64− If the file descriptor is in blocking mode and <structfield>timeout</structfield>
65− is non-zero and no message arrived within <structfield>timeout</structfield>
66− milliseconds, then it will return -1 and set errno to the &ETIMEDOUT;.</para>
67−
68− <para>To send a CEC message the application has to fill in the
69− <structname>cec_msg</structname> structure and pass it to the
70− <constant>CEC_TRANSMIT</constant> ioctl. <constant>CEC_TRANSMIT</constant> is
71− only available if <constant>CEC_CAP_TRANSMIT</constant> is set.
72− If there is no more room in the transmit queue, then it will return
73− -1 and set errno to the &EBUSY;.</para>
74−
75− <table pgwide="1" frame="none" id="cec-msg">
76− <title>struct <structname>cec_msg</structname></title>
77− <tgroup cols="3">
78− &cs-str;
79− <tbody valign="top">
80− <row>
81− <entry>__u64</entry>
82− <entry><structfield>ts</structfield></entry>
83− <entry>Timestamp of when the message was transmitted in ns in the case
84− of <constant>CEC_TRANSMIT</constant> with <structfield>reply</structfield>
85− set to 0, or the timestamp of the received message in all other cases.</entry>
86− </row>
87− <row>
88− <entry>__u32</entry>
89− <entry><structfield>len</structfield></entry>
90− <entry>The length of the message. For <constant>CEC_TRANSMIT</constant> this
91− is filled in by the application. The driver will fill this in for
92− <constant>CEC_RECEIVE</constant> and for <constant>CEC_TRANSMIT</constant>
93− it will be filled in with the length of the reply message if
94− <structfield>reply</structfield> was set.</entry>
95− </row>
96− <row>
97− <entry>__u32</entry>
98− <entry><structfield>timeout</structfield></entry>
99− <entry>The timeout in milliseconds. This is the time the device will wait for a message to
100− be received before timing out. If it is set to 0, then it will wait indefinitely when it
101− is called by <constant>CEC_RECEIVE</constant>. If it is 0 and it is called by
102− <constant>CEC_TRANSMIT</constant>, then it will be replaced by 1000 if the
103− <structfield>reply</structfield> is non-zero or ignored if <structfield>reply</structfield>
104− is 0.</entry>
105− </row>
106− <row>
107− <entry>__u32</entry>
108− <entry><structfield>sequence</structfield></entry>
109− <entry>The sequence number is automatically assigned by the CEC
110− framework for all transmitted messages. It can be later used by the
111− framework to generate an event if a reply for a message was
112− requested and the message was transmitted in a non-blocking mode.
113− </entry>
114− </row>
115− <row>
116− <entry>__u32</entry>
117− <entry><structfield>flags</structfield></entry>
118− <entry>Flags. No flags are defined yet, so set this to 0.</entry>
119− </row>
120− <row>
121− <entry>__u8</entry>
122− <entry><structfield>rx_status</structfield></entry>
123− <entry>The status bits of the received message. See <xref linkend="cec-rx-status" />
124− for the possible status values. It is 0 if this message was transmitted, not
125− received, unless this is the reply to a transmitted message. In that case both
126− <structfield>rx_status</structfield> and <structfield>tx_status</structfield>
127− are set.</entry>
128− </row>
129− <row>
130− <entry>__u8</entry>
131− <entry><structfield>tx_status</structfield></entry>
132− <entry>The status bits of the transmitted message. See <xref linkend="cec-tx-status" />
133− for the possible status values. It is 0 if this messages was received, not
134− transmitted.</entry>
135− </row>
136− <row>
137− <entry>__u8</entry>
138− <entry><structfield>msg</structfield>[16]</entry>
139− <entry>The message payload. For <constant>CEC_TRANSMIT</constant> this
140− is filled in by the application. The driver will fill this in for
141− <constant>CEC_RECEIVE</constant> and for <constant>CEC_TRANSMIT</constant>
142− it will be filled in with the payload of the reply message if
143− <structfield>reply</structfield> was set.</entry>
144− </row>
145− <row>
146− <entry>__u8</entry>
147− <entry><structfield>reply</structfield></entry>
148− <entry>Wait until this message is replied. If <structfield>reply</structfield>
149− is 0 and the <structfield>timeout</structfield> is 0, then don't wait for a reply but
150− return after transmitting the message. If there was an error as indicated by a non-zero
151− <structfield>tx_status</structfield> field, then <structfield>reply</structfield> and
152− <structfield>timeout</structfield> are both set to 0 by the driver. Ignored by
153− <constant>CEC_RECEIVE</constant>. The case where <structfield>reply</structfield> is 0
154− (this is the opcode for the Feature Abort message) and <structfield>timeout</structfield>
155− is non-zero is specifically allowed to send a message and wait up to <structfield>timeout</structfield>
156− milliseconds for a Feature Abort reply. In this case <structfield>rx_status</structfield>
157− will either be set to <constant>CEC_RX_STATUS_TIMEOUT</constant> or
158− <constant>CEC_RX_STATUS_FEATURE_ABORT</constant>.</entry>
159− </row>
160− <row>
161− <entry>__u8</entry>
162− <entry><structfield>tx_arb_lost_cnt</structfield></entry>
163− <entry>A counter of the number of transmit attempts that resulted in the
164− Arbitration Lost error. This is only set if the hardware supports this, otherwise
165− it is always 0. This counter is only valid if the <constant>CEC_TX_STATUS_ARB_LOST</constant>
166− status bit is set.</entry>
167− </row>
168− <row>
169− <entry>__u8</entry>
170− <entry><structfield>tx_nack_cnt</structfield></entry>
171− <entry>A counter of the number of transmit attempts that resulted in the
172− Not Acknowledged error. This is only set if the hardware supports this, otherwise
173− it is always 0. This counter is only valid if the <constant>CEC_TX_STATUS_NACK</constant>
174− status bit is set.</entry>
175− </row>
176− <row>
177− <entry>__u8</entry>
178− <entry><structfield>tx_low_drive_cnt</structfield></entry>
179− <entry>A counter of the number of transmit attempts that resulted in the
180− Arbitration Lost error. This is only set if the hardware supports this, otherwise
181− it is always 0. This counter is only valid if the <constant>CEC_TX_STATUS_LOW_DRIVE</constant>
182− status bit is set.</entry>
183− </row>
184− <row>
185− <entry>__u8</entry>
186− <entry><structfield>tx_error_cnt</structfield></entry>
187− <entry>A counter of the number of transmit errors other than Arbitration Lost
188− or Not Acknowledged. This is only set if the hardware supports this, otherwise
189− it is always 0. This counter is only valid if the <constant>CEC_TX_STATUS_ERROR</constant>
190− status bit is set.</entry>
191− </row>
192− </tbody>
193− </tgroup>
194− </table>
195−
196− <table pgwide="1" frame="none" id="cec-tx-status">
197− <title>CEC Transmit Status</title>
198− <tgroup cols="3">
199− &cs-def;
200− <tbody valign="top">
201− <row>
202− <entry><constant>CEC_TX_STATUS_OK</constant></entry>
203− <entry>0x01</entry>
204− <entry>The message was transmitted successfully. This is mutually exclusive with
205− <constant>CEC_TX_STATUS_MAX_RETRIES</constant>. Other bits can still be set if
206− earlier attempts met with failure before the transmit was eventually successful.</entry>
207− </row>
208− <row>
209− <entry><constant>CEC_TX_STATUS_ARB_LOST</constant></entry>
210− <entry>0x02</entry>
211− <entry>CEC line arbitration was lost.</entry>
212− </row>
213− <row>
214− <entry><constant>CEC_TX_STATUS_NACK</constant></entry>
215− <entry>0x04</entry>
216− <entry>Message was not acknowledged.</entry>
217− </row>
218− <row>
219− <entry><constant>CEC_TX_STATUS_LOW_DRIVE</constant></entry>
220− <entry>0x08</entry>
221− <entry>Low drive was detected on the CEC bus. This indicates that a follower
222− detected an error on the bus and requests a retransmission.</entry>
223− </row>
224− <row>
225− <entry><constant>CEC_TX_STATUS_ERROR</constant></entry>
226− <entry>0x10</entry>
227− <entry>Some error occurred. This is used for any errors that do not
228− fit the previous two, either because the hardware could not tell
229− which error occurred, or because the hardware tested for other conditions
230− besides those two.</entry>
231− </row>
232− <row>
233− <entry><constant>CEC_TX_STATUS_MAX_RETRIES</constant></entry>
234− <entry>0x20</entry>
235− <entry>The transmit failed after one or more retries. This status bit is mutually
236− exclusive with <constant>CEC_TX_STATUS_OK</constant>. Other bits can still be set
237− to explain which failures were seen.</entry>
238− </row>
239− </tbody>
240− </tgroup>
241− </table>
242−
243− <table pgwide="1" frame="none" id="cec-rx-status">
244− <title>CEC Receive Status</title>
245− <tgroup cols="3">
246− &cs-def;
247− <tbody valign="top">
248− <row>
249− <entry><constant>CEC_RX_STATUS_OK</constant></entry>
250− <entry>0x01</entry>
251− <entry>The message was received successfully.</entry>
252− </row>
253− <row>
254− <entry><constant>CEC_RX_STATUS_TIMEOUT</constant></entry>
255− <entry>0x02</entry>
256− <entry>The reply to an earlier transmitted message timed out.</entry>
257− </row>
258− <row>
259− <entry><constant>CEC_RX_STATUS_FEATURE_ABORT</constant></entry>
260− <entry>0x04</entry>
261− <entry>The message was received successfully but the reply was
262− <constant>CEC_MSG_FEATURE_ABORT</constant>. This status is only
263− set if this message was the reply to an earlier transmitted
264− message.</entry>
265− </row>
266− </tbody>
267− </tgroup>
268− </table>
269− </refsect1>
270−
271− <refsect1>
272− &return-value;
273− </refsect1>
274−</refentry>
Documentation/DocBook/media/v4l/common.xml+0−1102
@@ -1,1102 +0,0 @@
1− <title>Common API Elements</title>
2−
3− <para>Programming a V4L2 device consists of these
4−steps:</para>
5−
6− <itemizedlist>
7− <listitem>
8− <para>Opening the device</para>
9− </listitem>
10− <listitem>
11− <para>Changing device properties, selecting a video and audio
12−input, video standard, picture brightness a.&nbsp;o.</para>
13− </listitem>
14− <listitem>
15− <para>Negotiating a data format</para>
16− </listitem>
17− <listitem>
18− <para>Negotiating an input/output method</para>
19− </listitem>
20− <listitem>
21− <para>The actual input/output loop</para>
22− </listitem>
23− <listitem>
24− <para>Closing the device</para>
25− </listitem>
26− </itemizedlist>
27−
28− <para>In practice most steps are optional and can be executed out of
29−order. It depends on the V4L2 device type, you can read about the
30−details in <xref linkend="devices" />. In this chapter we will discuss
31−the basic concepts applicable to all devices.</para>
32−
33− <section id="open">
34− <title>Opening and Closing Devices</title>
35−
36− <section>
37− <title>Device Naming</title>
38−
39− <para>V4L2 drivers are implemented as kernel modules, loaded
40−manually by the system administrator or automatically when a device is
41−first discovered. The driver modules plug into the "videodev" kernel
42−module. It provides helper functions and a common application
43−interface specified in this document.</para>
44−
45− <para>Each driver thus loaded registers one or more device nodes
46−with major number 81 and a minor number between 0 and 255. Minor numbers
47−are allocated dynamically unless the kernel is compiled with the kernel
48−option CONFIG_VIDEO_FIXED_MINOR_RANGES. In that case minor numbers are
49−allocated in ranges depending on the device node type (video, radio, etc.).</para>
50−
51− <para>Many drivers support "video_nr", "radio_nr" or "vbi_nr"
52−module options to select specific video/radio/vbi node numbers. This allows
53−the user to request that the device node is named e.g. /dev/video5 instead
54−of leaving it to chance. When the driver supports multiple devices of the same
55−type more than one device node number can be assigned, separated by commas:
56− <informalexample>
57− <screen>
58−&gt; modprobe mydriver video_nr=0,1 radio_nr=0,1</screen>
59− </informalexample></para>
60−
61− <para>In <filename>/etc/modules.conf</filename> this may be
62−written as: <informalexample>
63− <screen>
64−options mydriver video_nr=0,1 radio_nr=0,1
65− </screen>
66− </informalexample> When no device node number is given as module
67−option the driver supplies a default.</para>
68−
69− <para>Normally udev will create the device nodes in /dev automatically
70−for you. If udev is not installed, then you need to enable the
71−CONFIG_VIDEO_FIXED_MINOR_RANGES kernel option in order to be able to correctly
72−relate a minor number to a device node number. I.e., you need to be certain
73−that minor number 5 maps to device node name video5. With this kernel option
74−different device types have different minor number ranges. These ranges are
75−listed in <xref linkend="devices" />.
76−</para>
77−
78− <para>The creation of character special files (with
79−<application>mknod</application>) is a privileged operation and
80−devices cannot be opened by major and minor number. That means
81−applications cannot <emphasis>reliable</emphasis> scan for loaded or
82−installed drivers. The user must enter a device name, or the
83−application can try the conventional device names.</para>
84− </section>
85−
86− <section id="related">
87− <title>Related Devices</title>
88−
89− <para>Devices can support several functions. For example
90−video capturing, VBI capturing and radio support.</para>
91−
92− <para>The V4L2 API creates different nodes for each of these functions.</para>
93−
94− <para>The V4L2 API was designed with the idea that one device node could support
95−all functions. However, in practice this never worked: this 'feature'
96−was never used by applications and many drivers did not support it and if
97−they did it was certainly never tested. In addition, switching a device
98−node between different functions only works when using the streaming I/O
99−API, not with the read()/write() API.</para>
100−
101− <para>Today each device node supports just one function.</para>
102−
103− <para>Besides video input or output the hardware may also
104−support audio sampling or playback. If so, these functions are
105−implemented as ALSA PCM devices with optional ALSA audio mixer
106−devices.</para>
107−
108− <para>One problem with all these devices is that the V4L2 API
109−makes no provisions to find these related devices. Some really
110−complex devices use the Media Controller (see <xref linkend="media_controller" />)
111−which can be used for this purpose. But most drivers do not use it,
112−and while some code exists that uses sysfs to discover related devices
113−(see libmedia_dev in the <ulink url="http://git.linuxtv.org/cgit.cgi/v4l-utils.git/">v4l-utils</ulink>
114−git repository), there is no library yet that can provide a single API towards
115−both Media Controller-based devices and devices that do not use the Media Controller.
116−If you want to work on this please write to the linux-media mailing list: &v4l-ml;.</para>
117− </section>
118−
119− <section>
120− <title>Multiple Opens</title>
121−
122− <para>V4L2 devices can be opened more than once.<footnote><para>
123−There are still some old and obscure drivers that have not been updated to
124−allow for multiple opens. This implies that for such drivers &func-open; can
125−return an &EBUSY; when the device is already in use.</para></footnote>
126−When this is supported by the driver, users can for example start a
127−"panel" application to change controls like brightness or audio
128−volume, while another application captures video and audio. In other words, panel
129−applications are comparable to an ALSA audio mixer application.
130−Just opening a V4L2 device should not change the state of the device.<footnote>
131−<para>Unfortunately, opening a radio device often switches the state of the
132−device to radio mode in many drivers. This behavior should be fixed eventually
133−as it violates the V4L2 specification.</para></footnote></para>
134−
135− <para>Once an application has allocated the memory buffers needed for
136−streaming data (by calling the &VIDIOC-REQBUFS; or &VIDIOC-CREATE-BUFS; ioctls,
137−or implicitly by calling the &func-read; or &func-write; functions) that
138−application (filehandle) becomes the owner of the device. It is no longer
139−allowed to make changes that would affect the buffer sizes (e.g. by calling
140−the &VIDIOC-S-FMT; ioctl) and other applications are no longer allowed to allocate
141−buffers or start or stop streaming. The &EBUSY; will be returned instead.</para>
142−
143− <para>Merely opening a V4L2 device does not grant exclusive
144−access.<footnote>
145− <para>Drivers could recognize the
146−<constant>O_EXCL</constant> open flag. Presently this is not required,
147−so applications cannot know if it really works.</para>
148− </footnote> Initiating data exchange however assigns the right
149−to read or write the requested type of data, and to change related
150−properties, to this file descriptor. Applications can request
151−additional access privileges using the priority mechanism described in
152−<xref linkend="app-pri" />.</para>
153− </section>
154−
155− <section>
156− <title>Shared Data Streams</title>
157−
158− <para>V4L2 drivers should not support multiple applications
159−reading or writing the same data stream on a device by copying
160−buffers, time multiplexing or similar means. This is better handled by
161−a proxy application in user space.</para>
162− </section>
163−
164− <section>
165− <title>Functions</title>
166−
167− <para>To open and close V4L2 devices applications use the
168−&func-open; and &func-close; function, respectively. Devices are
169−programmed using the &func-ioctl; function as explained in the
170−following sections.</para>
171− </section>
172− </section>
173−
174− <section id="querycap">
175− <title>Querying Capabilities</title>
176−
177− <para>Because V4L2 covers a wide variety of devices not all
178−aspects of the API are equally applicable to all types of devices.
179−Furthermore devices of the same type have different capabilities and
180−this specification permits the omission of a few complicated and less
181−important parts of the API.</para>
182−
183− <para>The &VIDIOC-QUERYCAP; ioctl is available to check if the kernel
184−device is compatible with this specification, and to query the <link
185−linkend="devices">functions</link> and <link linkend="io">I/O
186−methods</link> supported by the device.</para>
187−
188− <para>Starting with kernel version 3.1, VIDIOC-QUERYCAP will return the
189−V4L2 API version used by the driver, with generally matches the Kernel version.
190−There's no need of using &VIDIOC-QUERYCAP; to check if a specific ioctl is
191−supported, the V4L2 core now returns ENOTTY if a driver doesn't provide
192−support for an ioctl.</para>
193−
194− <para>Other features can be queried
195−by calling the respective ioctl, for example &VIDIOC-ENUMINPUT;
196−to learn about the number, types and names of video connectors on the
197−device. Although abstraction is a major objective of this API, the
198−&VIDIOC-QUERYCAP; ioctl also allows driver specific applications to reliably identify
199−the driver.</para>
200−
201− <para>All V4L2 drivers must support
202−<constant>VIDIOC_QUERYCAP</constant>. Applications should always call
203−this ioctl after opening the device.</para>
204− </section>
205−
206− <section id="app-pri">
207− <title>Application Priority</title>
208−
209− <para>When multiple applications share a device it may be
210−desirable to assign them different priorities. Contrary to the
211−traditional "rm -rf /" school of thought a video recording application
212−could for example block other applications from changing video
213−controls or switching the current TV channel. Another objective is to
214−permit low priority applications working in background, which can be
215−preempted by user controlled applications and automatically regain
216−control of the device at a later time.</para>
217−
218− <para>Since these features cannot be implemented entirely in user
219−space V4L2 defines the &VIDIOC-G-PRIORITY; and &VIDIOC-S-PRIORITY;
220−ioctls to request and query the access priority associate with a file
221−descriptor. Opening a device assigns a medium priority, compatible
222−with earlier versions of V4L2 and drivers not supporting these ioctls.
223−Applications requiring a different priority will usually call
224−<constant>VIDIOC_S_PRIORITY</constant> after verifying the device with
225−the &VIDIOC-QUERYCAP; ioctl.</para>
226−
227− <para>Ioctls changing driver properties, such as &VIDIOC-S-INPUT;,
228−return an &EBUSY; after another application obtained higher priority.</para>
229− </section>
230−
231− <section id="video">
232− <title>Video Inputs and Outputs</title>
233−
234− <para>Video inputs and outputs are physical connectors of a
235−device. These can be for example RF connectors (antenna/cable), CVBS
236−a.k.a. Composite Video, S-Video or RGB connectors. Video and VBI
237−capture devices have inputs. Video and VBI output devices have outputs,
238−at least one each. Radio devices have no video inputs or outputs.</para>
239−
240− <para>To learn about the number and attributes of the
241−available inputs and outputs applications can enumerate them with the
242−&VIDIOC-ENUMINPUT; and &VIDIOC-ENUMOUTPUT; ioctl, respectively. The
243−&v4l2-input; returned by the <constant>VIDIOC_ENUMINPUT</constant>
244−ioctl also contains signal status information applicable when the
245−current video input is queried.</para>
246−
247− <para>The &VIDIOC-G-INPUT; and &VIDIOC-G-OUTPUT; ioctls return the
248−index of the current video input or output. To select a different
249−input or output applications call the &VIDIOC-S-INPUT; and
250−&VIDIOC-S-OUTPUT; ioctls. Drivers must implement all the input ioctls
251−when the device has one or more inputs, all the output ioctls when the
252−device has one or more outputs.</para>
253−
254− <example>
255− <title>Information about the current video input</title>
256−
257− <programlisting>
258−&v4l2-input; input;
259−int index;
260−
261−if (-1 == ioctl(fd, &VIDIOC-G-INPUT;, &amp;index)) {
262− perror("VIDIOC_G_INPUT");
263− exit(EXIT_FAILURE);
264−}
265−
266−memset(&amp;input, 0, sizeof(input));
267−input.index = index;
268−
269−if (-1 == ioctl(fd, &VIDIOC-ENUMINPUT;, &amp;input)) {
270− perror("VIDIOC_ENUMINPUT");
271− exit(EXIT_FAILURE);
272−}
273−
274−printf("Current input: %s\n", input.name);
275− </programlisting>
276− </example>
277−
278− <example>
279− <title>Switching to the first video input</title>
280−
281− <programlisting>
282−int index;
283−
284−index = 0;
285−
286−if (-1 == ioctl(fd, &VIDIOC-S-INPUT;, &amp;index)) {
287− perror("VIDIOC_S_INPUT");
288− exit(EXIT_FAILURE);
289−}
290− </programlisting>
291− </example>
292− </section>
293−
294− <section id="audio">
295− <title>Audio Inputs and Outputs</title>
296−
297− <para>Audio inputs and outputs are physical connectors of a
298−device. Video capture devices have inputs, output devices have
299−outputs, zero or more each. Radio devices have no audio inputs or
300−outputs. They have exactly one tuner which in fact
301−<emphasis>is</emphasis> an audio source, but this API associates
302−tuners with video inputs or outputs only, and radio devices have
303−none of these.<footnote>
304− <para>Actually &v4l2-audio; ought to have a
305−<structfield>tuner</structfield> field like &v4l2-input;, not only
306−making the API more consistent but also permitting radio devices with
307−multiple tuners.</para>
308− </footnote> A connector on a TV card to loop back the received
309−audio signal to a sound card is not considered an audio output.</para>
310−
311− <para>Audio and video inputs and outputs are associated. Selecting
312−a video source also selects an audio source. This is most evident when
313−the video and audio source is a tuner. Further audio connectors can
314−combine with more than one video input or output. Assumed two
315−composite video inputs and two audio inputs exist, there may be up to
316−four valid combinations. The relation of video and audio connectors
317−is defined in the <structfield>audioset</structfield> field of the
318−respective &v4l2-input; or &v4l2-output;, where each bit represents
319−the index number, starting at zero, of one audio input or output.</para>
320−
321− <para>To learn about the number and attributes of the
322−available inputs and outputs applications can enumerate them with the
323−&VIDIOC-ENUMAUDIO; and &VIDIOC-ENUMAUDOUT; ioctl, respectively. The
324−&v4l2-audio; returned by the <constant>VIDIOC_ENUMAUDIO</constant> ioctl
325−also contains signal status information applicable when the current
326−audio input is queried.</para>
327−
328− <para>The &VIDIOC-G-AUDIO; and &VIDIOC-G-AUDOUT; ioctls report
329−the current audio input and output, respectively. Note that, unlike
330−&VIDIOC-G-INPUT; and &VIDIOC-G-OUTPUT; these ioctls return a structure
331−as <constant>VIDIOC_ENUMAUDIO</constant> and
332−<constant>VIDIOC_ENUMAUDOUT</constant> do, not just an index.</para>
333−
334− <para>To select an audio input and change its properties
335−applications call the &VIDIOC-S-AUDIO; ioctl. To select an audio
336−output (which presently has no changeable properties) applications
337−call the &VIDIOC-S-AUDOUT; ioctl.</para>
338−
339− <para>Drivers must implement all audio input ioctls when the device
340−has multiple selectable audio inputs, all audio output ioctls when the
341−device has multiple selectable audio outputs. When the device has any
342−audio inputs or outputs the driver must set the <constant>V4L2_CAP_AUDIO</constant>
343−flag in the &v4l2-capability; returned by the &VIDIOC-QUERYCAP; ioctl.</para>
344−
345− <example>
346− <title>Information about the current audio input</title>
347−
348− <programlisting>
349−&v4l2-audio; audio;
350−
351−memset(&amp;audio, 0, sizeof(audio));
352−
353−if (-1 == ioctl(fd, &VIDIOC-G-AUDIO;, &amp;audio)) {
354− perror("VIDIOC_G_AUDIO");
355− exit(EXIT_FAILURE);
356−}
357−
358−printf("Current input: %s\n", audio.name);
359− </programlisting>
360− </example>
361−
362− <example>
363− <title>Switching to the first audio input</title>
364−
365− <programlisting>
366−&v4l2-audio; audio;
367−
368−memset(&amp;audio, 0, sizeof(audio)); /* clear audio.mode, audio.reserved */
369−
370−audio.index = 0;
371−
372−if (-1 == ioctl(fd, &VIDIOC-S-AUDIO;, &amp;audio)) {
373− perror("VIDIOC_S_AUDIO");
374− exit(EXIT_FAILURE);
375−}
376− </programlisting>
377− </example>
378− </section>
379−
380− <section id="tuner">
381− <title>Tuners and Modulators</title>
382−
383− <section>
384− <title>Tuners</title>
385−
386− <para>Video input devices can have one or more tuners
387−demodulating a RF signal. Each tuner is associated with one or more
388−video inputs, depending on the number of RF connectors on the tuner.
389−The <structfield>type</structfield> field of the respective
390−&v4l2-input; returned by the &VIDIOC-ENUMINPUT; ioctl is set to
391−<constant>V4L2_INPUT_TYPE_TUNER</constant> and its
392−<structfield>tuner</structfield> field contains the index number of
393−the tuner.</para>
394−
395− <para>Radio input devices have exactly one tuner with index zero, no
396−video inputs.</para>
397−
398− <para>To query and change tuner properties applications use the
399−&VIDIOC-G-TUNER; and &VIDIOC-S-TUNER; ioctls, respectively. The
400−&v4l2-tuner; returned by <constant>VIDIOC_G_TUNER</constant> also
401−contains signal status information applicable when the tuner of the
402−current video or radio input is queried. Note that
403−<constant>VIDIOC_S_TUNER</constant> does not switch the current tuner,
404−when there is more than one at all. The tuner is solely determined by
405−the current video input. Drivers must support both ioctls and set the
406−<constant>V4L2_CAP_TUNER</constant> flag in the &v4l2-capability;
407−returned by the &VIDIOC-QUERYCAP; ioctl when the device has one or
408−more tuners.</para>
409− </section>
410−
411− <section>
412− <title>Modulators</title>
413−
414− <para>Video output devices can have one or more modulators, uh,
415−modulating a video signal for radiation or connection to the antenna
416−input of a TV set or video recorder. Each modulator is associated with
417−one or more video outputs, depending on the number of RF connectors on
418−the modulator. The <structfield>type</structfield> field of the
419−respective &v4l2-output; returned by the &VIDIOC-ENUMOUTPUT; ioctl is
420−set to <constant>V4L2_OUTPUT_TYPE_MODULATOR</constant> and its
421−<structfield>modulator</structfield> field contains the index number
422−of the modulator.</para>
423−
424− <para>Radio output devices have exactly one modulator with index
425−zero, no video outputs.</para>
426−
427− <para>A video or radio device cannot support both a tuner and a
428−modulator. Two separate device nodes will have to be used for such
429−hardware, one that supports the tuner functionality and one that supports
430−the modulator functionality. The reason is a limitation with the
431−&VIDIOC-S-FREQUENCY; ioctl where you cannot specify whether the frequency
432−is for a tuner or a modulator.</para>
433−
434− <para>To query and change modulator properties applications use
435−the &VIDIOC-G-MODULATOR; and &VIDIOC-S-MODULATOR; ioctl. Note that
436−<constant>VIDIOC_S_MODULATOR</constant> does not switch the current
437−modulator, when there is more than one at all. The modulator is solely
438−determined by the current video output. Drivers must support both
439−ioctls and set the <constant>V4L2_CAP_MODULATOR</constant> flag in
440−the &v4l2-capability; returned by the &VIDIOC-QUERYCAP; ioctl when the
441−device has one or more modulators.</para>
442− </section>
443−
444− <section>
445− <title>Radio Frequency</title>
446−
447− <para>To get and set the tuner or modulator radio frequency
448−applications use the &VIDIOC-G-FREQUENCY; and &VIDIOC-S-FREQUENCY;
449−ioctl which both take a pointer to a &v4l2-frequency;. These ioctls
450−are used for TV and radio devices alike. Drivers must support both
451−ioctls when the tuner or modulator ioctls are supported, or
452−when the device is a radio device.</para>
453− </section>
454− </section>
455−
456− <section id="standard">
457− <title>Video Standards</title>
458−
459− <para>Video devices typically support one or more different video
460−standards or variations of standards. Each video input and output may
461−support another set of standards. This set is reported by the
462−<structfield>std</structfield> field of &v4l2-input; and
463−&v4l2-output; returned by the &VIDIOC-ENUMINPUT; and
464−&VIDIOC-ENUMOUTPUT; ioctls, respectively.</para>
465−
466− <para>V4L2 defines one bit for each analog video standard
467−currently in use worldwide, and sets aside bits for driver defined
468−standards, &eg; hybrid standards to watch NTSC video tapes on PAL TVs
469−and vice versa. Applications can use the predefined bits to select a
470−particular standard, although presenting the user a menu of supported
471−standards is preferred. To enumerate and query the attributes of the
472−supported standards applications use the &VIDIOC-ENUMSTD; ioctl.</para>
473−
474− <para>Many of the defined standards are actually just variations
475−of a few major standards. The hardware may in fact not distinguish
476−between them, or do so internal and switch automatically. Therefore
477−enumerated standards also contain sets of one or more standard
478−bits.</para>
479−
480− <para>Assume a hypothetic tuner capable of demodulating B/PAL,
481−G/PAL and I/PAL signals. The first enumerated standard is a set of B
482−and G/PAL, switched automatically depending on the selected radio
483−frequency in UHF or VHF band. Enumeration gives a "PAL-B/G" or "PAL-I"
484−choice. Similar a Composite input may collapse standards, enumerating
485−"PAL-B/G/H/I", "NTSC-M" and "SECAM-D/K".<footnote>
486− <para>Some users are already confused by technical terms PAL,
487−NTSC and SECAM. There is no point asking them to distinguish between
488−B, G, D, or K when the software or hardware can do that
489−automatically.</para>
490− </footnote></para>
491−
492− <para>To query and select the standard used by the current video
493−input or output applications call the &VIDIOC-G-STD; and
494−&VIDIOC-S-STD; ioctl, respectively. The <emphasis>received</emphasis>
495−standard can be sensed with the &VIDIOC-QUERYSTD; ioctl. Note that the
496−parameter of all these ioctls is a pointer to a &v4l2-std-id; type
497−(a standard set), <emphasis>not</emphasis> an index into the standard
498−enumeration. Drivers must implement all video standard ioctls
499−when the device has one or more video inputs or outputs.</para>
500−
501− <para>Special rules apply to devices such as USB cameras where the notion of video
502−standards makes little sense. More generally for any capture or output device
503−which is: <itemizedlist>
504− <listitem>
505− <para>incapable of capturing fields or frames at the nominal
506−rate of the video standard, or</para>
507− </listitem>
508− <listitem>
509− <para>that does not support the video standard formats at all.</para>
510− </listitem>
511− </itemizedlist> Here the driver shall set the
512−<structfield>std</structfield> field of &v4l2-input; and &v4l2-output;
513−to zero and the <constant>VIDIOC_G_STD</constant>,
514−<constant>VIDIOC_S_STD</constant>,
515−<constant>VIDIOC_QUERYSTD</constant> and
516−<constant>VIDIOC_ENUMSTD</constant> ioctls shall return the
517−&ENOTTY; or the &EINVAL;.</para>
518− <para>Applications can make use of the <xref linkend="input-capabilities" /> and
519−<xref linkend="output-capabilities"/> flags to determine whether the video standard ioctls
520−can be used with the given input or output.</para>
521−
522− <example>
523− <title>Information about the current video standard</title>
524−
525− <programlisting>
526−&v4l2-std-id; std_id;
527−&v4l2-standard; standard;
528−
529−if (-1 == ioctl(fd, &VIDIOC-G-STD;, &amp;std_id)) {
530− /* Note when VIDIOC_ENUMSTD always returns ENOTTY this
531− is no video device or it falls under the USB exception,
532− and VIDIOC_G_STD returning ENOTTY is no error. */
533−
534− perror("VIDIOC_G_STD");
535− exit(EXIT_FAILURE);
536−}
537−
538−memset(&amp;standard, 0, sizeof(standard));
539−standard.index = 0;
540−
541−while (0 == ioctl(fd, &VIDIOC-ENUMSTD;, &amp;standard)) {
542− if (standard.id &amp; std_id) {
543− printf("Current video standard: %s\n", standard.name);
544− exit(EXIT_SUCCESS);
545− }
546−
547− standard.index++;
548−}
549−
550−/* EINVAL indicates the end of the enumeration, which cannot be
551− empty unless this device falls under the USB exception. */
552−
553−if (errno == EINVAL || standard.index == 0) {
554− perror("VIDIOC_ENUMSTD");
555− exit(EXIT_FAILURE);
556−}
557− </programlisting>
558− </example>
559−
560− <example>
561− <title>Listing the video standards supported by the current
562−input</title>
563−
564− <programlisting>
565−&v4l2-input; input;
566−&v4l2-standard; standard;
567−
568−memset(&amp;input, 0, sizeof(input));
569−
570−if (-1 == ioctl(fd, &VIDIOC-G-INPUT;, &amp;input.index)) {
571− perror("VIDIOC_G_INPUT");
572− exit(EXIT_FAILURE);
573−}
574−
575−if (-1 == ioctl(fd, &VIDIOC-ENUMINPUT;, &amp;input)) {
576− perror("VIDIOC_ENUM_INPUT");
577− exit(EXIT_FAILURE);
578−}
579−
580−printf("Current input %s supports:\n", input.name);
581−
582−memset(&amp;standard, 0, sizeof(standard));
583−standard.index = 0;
584−
585−while (0 == ioctl(fd, &VIDIOC-ENUMSTD;, &amp;standard)) {
586− if (standard.id &amp; input.std)
587− printf("%s\n", standard.name);
588−
589− standard.index++;
590−}
591−
592−/* EINVAL indicates the end of the enumeration, which cannot be
593− empty unless this device falls under the USB exception. */
594−
595−if (errno != EINVAL || standard.index == 0) {
596− perror("VIDIOC_ENUMSTD");
597− exit(EXIT_FAILURE);
598−}
599− </programlisting>
600− </example>
601−
602− <example>
603− <title>Selecting a new video standard</title>
604−
605− <programlisting>
606−&v4l2-input; input;
607−&v4l2-std-id; std_id;
608−
609−memset(&amp;input, 0, sizeof(input));
610−
611−if (-1 == ioctl(fd, &VIDIOC-G-INPUT;, &amp;input.index)) {
612− perror("VIDIOC_G_INPUT");
613− exit(EXIT_FAILURE);
614−}
615−
616−if (-1 == ioctl(fd, &VIDIOC-ENUMINPUT;, &amp;input)) {
617− perror("VIDIOC_ENUM_INPUT");
618− exit(EXIT_FAILURE);
619−}
620−
621−if (0 == (input.std &amp; V4L2_STD_PAL_BG)) {
622− fprintf(stderr, "Oops. B/G PAL is not supported.\n");
623− exit(EXIT_FAILURE);
624−}
625−
626−/* Note this is also supposed to work when only B
627− <emphasis>or</emphasis> G/PAL is supported. */
628−
629−std_id = V4L2_STD_PAL_BG;
630−
631−if (-1 == ioctl(fd, &VIDIOC-S-STD;, &amp;std_id)) {
632− perror("VIDIOC_S_STD");
633− exit(EXIT_FAILURE);
634−}
635− </programlisting>
636− </example>
637− </section>
638− <section id="dv-timings">
639− <title>Digital Video (DV) Timings</title>
640− <para>
641− The video standards discussed so far have been dealing with Analog TV and the
642−corresponding video timings. Today there are many more different hardware interfaces
643−such as High Definition TV interfaces (HDMI), VGA, DVI connectors etc., that carry
644−video signals and there is a need to extend the API to select the video timings
645−for these interfaces. Since it is not possible to extend the &v4l2-std-id; due to
646−the limited bits available, a new set of ioctls was added to set/get video timings at
647−the input and output.</para>
648−
649− <para>These ioctls deal with the detailed digital video timings that define
650−each video format. This includes parameters such as the active video width and height,
651−signal polarities, frontporches, backporches, sync widths etc. The <filename>linux/v4l2-dv-timings.h</filename>
652−header can be used to get the timings of the formats in the <xref linkend="cea861" /> and
653−<xref linkend="vesadmt" /> standards.
654− </para>
655−
656− <para>To enumerate and query the attributes of the DV timings supported by a device
657− applications use the &VIDIOC-ENUM-DV-TIMINGS; and &VIDIOC-DV-TIMINGS-CAP; ioctls.
658− To set DV timings for the device applications use the
659−&VIDIOC-S-DV-TIMINGS; ioctl and to get current DV timings they use the
660−&VIDIOC-G-DV-TIMINGS; ioctl. To detect the DV timings as seen by the video receiver applications
661−use the &VIDIOC-QUERY-DV-TIMINGS; ioctl.</para>
662− <para>Applications can make use of the <xref linkend="input-capabilities" /> and
663−<xref linkend="output-capabilities"/> flags to determine whether the digital video ioctls
664−can be used with the given input or output.</para>
665− </section>
666−
667− &sub-controls;
668−
669− <section id="format">
670− <title>Data Formats</title>
671−
672− <section>
673− <title>Data Format Negotiation</title>
674−
675− <para>Different devices exchange different kinds of data with
676−applications, for example video images, raw or sliced VBI data, RDS
677−datagrams. Even within one kind many different formats are possible,
678−in particular an abundance of image formats. Although drivers must
679−provide a default and the selection persists across closing and
680−reopening a device, applications should always negotiate a data format
681−before engaging in data exchange. Negotiation means the application
682−asks for a particular format and the driver selects and reports the
683−best the hardware can do to satisfy the request. Of course
684−applications can also just query the current selection.</para>
685−
686− <para>A single mechanism exists to negotiate all data formats
687−using the aggregate &v4l2-format; and the &VIDIOC-G-FMT; and
688−&VIDIOC-S-FMT; ioctls. Additionally the &VIDIOC-TRY-FMT; ioctl can be
689−used to examine what the hardware <emphasis>could</emphasis> do,
690−without actually selecting a new data format. The data formats
691−supported by the V4L2 API are covered in the respective device section
692−in <xref linkend="devices" />. For a closer look at image formats see
693−<xref linkend="pixfmt" />.</para>
694−
695− <para>The <constant>VIDIOC_S_FMT</constant> ioctl is a major
696−turning-point in the initialization sequence. Prior to this point
697−multiple panel applications can access the same device concurrently to
698−select the current input, change controls or modify other properties.
699−The first <constant>VIDIOC_S_FMT</constant> assigns a logical stream
700−(video data, VBI data etc.) exclusively to one file descriptor.</para>
701−
702− <para>Exclusive means no other application, more precisely no
703−other file descriptor, can grab this stream or change device
704−properties inconsistent with the negotiated parameters. A video
705−standard change for example, when the new standard uses a different
706−number of scan lines, can invalidate the selected image format.
707−Therefore only the file descriptor owning the stream can make
708−invalidating changes. Accordingly multiple file descriptors which
709−grabbed different logical streams prevent each other from interfering
710−with their settings. When for example video overlay is about to start
711−or already in progress, simultaneous video capturing may be restricted
712−to the same cropping and image size.</para>
713−
714− <para>When applications omit the
715−<constant>VIDIOC_S_FMT</constant> ioctl its locking side effects are
716−implied by the next step, the selection of an I/O method with the
717−&VIDIOC-REQBUFS; ioctl or implicit with the first &func-read; or
718−&func-write; call.</para>
719−
720− <para>Generally only one logical stream can be assigned to a
721−file descriptor, the exception being drivers permitting simultaneous
722−video capturing and overlay using the same file descriptor for
723−compatibility with V4L and earlier versions of V4L2. Switching the
724−logical stream or returning into "panel mode" is possible by closing
725−and reopening the device. Drivers <emphasis>may</emphasis> support a
726−switch using <constant>VIDIOC_S_FMT</constant>.</para>
727−
728− <para>All drivers exchanging data with
729−applications must support the <constant>VIDIOC_G_FMT</constant> and
730−<constant>VIDIOC_S_FMT</constant> ioctl. Implementation of the
731−<constant>VIDIOC_TRY_FMT</constant> is highly recommended but
732−optional.</para>
733− </section>
734−
735− <section>
736− <title>Image Format Enumeration</title>
737−
738− <para>Apart of the generic format negotiation functions
739−a special ioctl to enumerate all image formats supported by video
740−capture, overlay or output devices is available.<footnote>
741− <para>Enumerating formats an application has no a-priori
742−knowledge of (otherwise it could explicitly ask for them and need not
743−enumerate) seems useless, but there are applications serving as proxy
744−between drivers and the actual video applications for which this is
745−useful.</para>
746− </footnote></para>
747−
748− <para>The &VIDIOC-ENUM-FMT; ioctl must be supported
749−by all drivers exchanging image data with applications.</para>
750−
751− <important>
752− <para>Drivers are not supposed to convert image formats in
753−kernel space. They must enumerate only formats directly supported by
754−the hardware. If necessary driver writers should publish an example
755−conversion routine or library for integration into applications.</para>
756− </important>
757− </section>
758− </section>
759−
760− &sub-planar-apis;
761−
762− <section id="crop">
763− <title>Image Cropping, Insertion and Scaling</title>
764−
765− <para>Some video capture devices can sample a subsection of the
766−picture and shrink or enlarge it to an image of arbitrary size. We
767−call these abilities cropping and scaling. Some video output devices
768−can scale an image up or down and insert it at an arbitrary scan line
769−and horizontal offset into a video signal.</para>
770−
771− <para>Applications can use the following API to select an area in
772−the video signal, query the default area and the hardware limits.
773−<emphasis>Despite their name, the &VIDIOC-CROPCAP;, &VIDIOC-G-CROP;
774−and &VIDIOC-S-CROP; ioctls apply to input as well as output
775−devices.</emphasis></para>
776−
777− <para>Scaling requires a source and a target. On a video capture
778−or overlay device the source is the video signal, and the cropping
779−ioctls determine the area actually sampled. The target are images
780−read by the application or overlaid onto the graphics screen. Their
781−size (and position for an overlay) is negotiated with the
782−&VIDIOC-G-FMT; and &VIDIOC-S-FMT; ioctls.</para>
783−
784− <para>On a video output device the source are the images passed in
785−by the application, and their size is again negotiated with the
786−<constant>VIDIOC_G/S_FMT</constant> ioctls, or may be encoded in a
787−compressed video stream. The target is the video signal, and the
788−cropping ioctls determine the area where the images are
789−inserted.</para>
790−
791− <para>Source and target rectangles are defined even if the device
792−does not support scaling or the <constant>VIDIOC_G/S_CROP</constant>
793−ioctls. Their size (and position where applicable) will be fixed in
794−this case. <emphasis>All capture and output device must support the
795−<constant>VIDIOC_CROPCAP</constant> ioctl such that applications can
796−determine if scaling takes place.</emphasis></para>
797−
798− <section>
799− <title>Cropping Structures</title>
800−
801− <figure id="crop-scale">
802− <title>Image Cropping, Insertion and Scaling</title>
803− <mediaobject>
804− <imageobject>
805− <imagedata fileref="crop.pdf" format="PS" />
806− </imageobject>
807− <imageobject>
808− <imagedata fileref="crop.gif" format="GIF" />
809− </imageobject>
810− <textobject>
811− <phrase>The cropping, insertion and scaling process</phrase>
812− </textobject>
813− </mediaobject>
814− </figure>
815−
816− <para>For capture devices the coordinates of the top left
817−corner, width and height of the area which can be sampled is given by
818−the <structfield>bounds</structfield> substructure of the
819−&v4l2-cropcap; returned by the <constant>VIDIOC_CROPCAP</constant>
820−ioctl. To support a wide range of hardware this specification does not
821−define an origin or units. However by convention drivers should
822−horizontally count unscaled samples relative to 0H (the leading edge
823−of the horizontal sync pulse, see <xref linkend="vbi-hsync" />).
824−Vertically ITU-R line
825−numbers of the first field (<xref linkend="vbi-525" />, <xref
826−linkend="vbi-625" />), multiplied by two if the driver can capture both
827−fields.</para>
828−
829− <para>The top left corner, width and height of the source
830−rectangle, that is the area actually sampled, is given by &v4l2-crop;
831−using the same coordinate system as &v4l2-cropcap;. Applications can
832−use the <constant>VIDIOC_G_CROP</constant> and
833−<constant>VIDIOC_S_CROP</constant> ioctls to get and set this
834−rectangle. It must lie completely within the capture boundaries and
835−the driver may further adjust the requested size and/or position
836−according to hardware limitations.</para>
837−
838− <para>Each capture device has a default source rectangle, given
839−by the <structfield>defrect</structfield> substructure of
840−&v4l2-cropcap;. The center of this rectangle shall align with the
841−center of the active picture area of the video signal, and cover what
842−the driver writer considers the complete picture. Drivers shall reset
843−the source rectangle to the default when the driver is first loaded,
844−but not later.</para>
845−
846− <para>For output devices these structures and ioctls are used
847−accordingly, defining the <emphasis>target</emphasis> rectangle where
848−the images will be inserted into the video signal.</para>
849−
850− </section>
851−
852− <section>
853− <title>Scaling Adjustments</title>
854−
855− <para>Video hardware can have various cropping, insertion and
856−scaling limitations. It may only scale up or down, support only
857−discrete scaling factors, or have different scaling abilities in
858−horizontal and vertical direction. Also it may not support scaling at
859−all. At the same time the &v4l2-crop; rectangle may have to be
860−aligned, and both the source and target rectangles may have arbitrary
861−upper and lower size limits. In particular the maximum
862−<structfield>width</structfield> and <structfield>height</structfield>
863−in &v4l2-crop; may be smaller than the
864−&v4l2-cropcap;.<structfield>bounds</structfield> area. Therefore, as
865−usual, drivers are expected to adjust the requested parameters and
866−return the actual values selected.</para>
867−
868− <para>Applications can change the source or the target rectangle
869−first, as they may prefer a particular image size or a certain area in
870−the video signal. If the driver has to adjust both to satisfy hardware
871−limitations, the last requested rectangle shall take priority, and the
872−driver should preferably adjust the opposite one. The &VIDIOC-TRY-FMT;
873−ioctl however shall not change the driver state and therefore only
874−adjust the requested rectangle.</para>
875−
876− <para>Suppose scaling on a video capture device is restricted to
877−a factor 1:1 or 2:1 in either direction and the target image size must
878−be a multiple of 16&nbsp;&times;&nbsp;16 pixels. The source cropping
879−rectangle is set to defaults, which are also the upper limit in this
880−example, of 640&nbsp;&times;&nbsp;400 pixels at offset 0,&nbsp;0. An
881−application requests an image size of 300&nbsp;&times;&nbsp;225
882−pixels, assuming video will be scaled down from the "full picture"
883−accordingly. The driver sets the image size to the closest possible
884−values 304&nbsp;&times;&nbsp;224, then chooses the cropping rectangle
885−closest to the requested size, that is 608&nbsp;&times;&nbsp;224
886−(224&nbsp;&times;&nbsp;2:1 would exceed the limit 400). The offset
887−0,&nbsp;0 is still valid, thus unmodified. Given the default cropping
888−rectangle reported by <constant>VIDIOC_CROPCAP</constant> the
889−application can easily propose another offset to center the cropping
890−rectangle.</para>
891−
892− <para>Now the application may insist on covering an area using a
893−picture aspect ratio closer to the original request, so it asks for a
894−cropping rectangle of 608&nbsp;&times;&nbsp;456 pixels. The present
895−scaling factors limit cropping to 640&nbsp;&times;&nbsp;384, so the
896−driver returns the cropping size 608&nbsp;&times;&nbsp;384 and adjusts
897−the image size to closest possible 304&nbsp;&times;&nbsp;192.</para>
898−
899− </section>
900−
901− <section>
902− <title>Examples</title>
903−
904− <para>Source and target rectangles shall remain unchanged across
905−closing and reopening a device, such that piping data into or out of a
906−device will work without special preparations. More advanced
907−applications should ensure the parameters are suitable before starting
908−I/O.</para>
909−
910− <example>
911− <title>Resetting the cropping parameters</title>
912−
913− <para>(A video capture device is assumed; change
914−<constant>V4L2_BUF_TYPE_VIDEO_CAPTURE</constant> for other
915−devices.)</para>
916−
917− <programlisting>
918−&v4l2-cropcap; cropcap;
919−&v4l2-crop; crop;
920−
921−memset (&amp;cropcap, 0, sizeof (cropcap));
922−cropcap.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
923−
924−if (-1 == ioctl (fd, &VIDIOC-CROPCAP;, &amp;cropcap)) {
925− perror ("VIDIOC_CROPCAP");
926− exit (EXIT_FAILURE);
927−}
928−
929−memset (&amp;crop, 0, sizeof (crop));
930−crop.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
931−crop.c = cropcap.defrect;
932−
933−/* Ignore if cropping is not supported (EINVAL). */
934−
935−if (-1 == ioctl (fd, &VIDIOC-S-CROP;, &amp;crop)
936− &amp;&amp; errno != EINVAL) {
937− perror ("VIDIOC_S_CROP");
938− exit (EXIT_FAILURE);
939−}
940− </programlisting>
941− </example>
942−
943− <example>
944− <title>Simple downscaling</title>
945−
946− <para>(A video capture device is assumed.)</para>
947−
948− <programlisting>
949−&v4l2-cropcap; cropcap;
950−&v4l2-format; format;
951−
952−reset_cropping_parameters ();
953−
954−/* Scale down to 1/4 size of full picture. */
955−
956−memset (&amp;format, 0, sizeof (format)); /* defaults */
957−
958−format.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
959−
960−format.fmt.pix.width = cropcap.defrect.width &gt;&gt; 1;
961−format.fmt.pix.height = cropcap.defrect.height &gt;&gt; 1;
962−format.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;
963−
964−if (-1 == ioctl (fd, &VIDIOC-S-FMT;, &amp;format)) {
965− perror ("VIDIOC_S_FORMAT");
966− exit (EXIT_FAILURE);
967−}
968−
969−/* We could check the actual image size now, the actual scaling factor
970− or if the driver can scale at all. */
971− </programlisting>
972− </example>
973−
974− <example>
975− <title>Selecting an output area</title>
976−
977− <programlisting>
978−&v4l2-cropcap; cropcap;
979−&v4l2-crop; crop;
980−
981−memset (&amp;cropcap, 0, sizeof (cropcap));
982−cropcap.type = V4L2_BUF_TYPE_VIDEO_OUTPUT;
983−
984−if (-1 == ioctl (fd, VIDIOC_CROPCAP;, &amp;cropcap)) {
985− perror ("VIDIOC_CROPCAP");
986− exit (EXIT_FAILURE);
987−}
988−
989−memset (&amp;crop, 0, sizeof (crop));
990−
991−crop.type = V4L2_BUF_TYPE_VIDEO_OUTPUT;
992−crop.c = cropcap.defrect;
993−
994−/* Scale the width and height to 50 % of their original size
995− and center the output. */
996−
997−crop.c.width /= 2;
998−crop.c.height /= 2;
999−crop.c.left += crop.c.width / 2;
1000−crop.c.top += crop.c.height / 2;
1001−
1002−/* Ignore if cropping is not supported (EINVAL). */
1003−
1004−if (-1 == ioctl (fd, VIDIOC_S_CROP, &amp;crop)
1005− &amp;&amp; errno != EINVAL) {
1006− perror ("VIDIOC_S_CROP");
1007− exit (EXIT_FAILURE);
1008−}
1009−</programlisting>
1010− </example>
1011−
1012− <example>
1013− <title>Current scaling factor and pixel aspect</title>
1014−
1015− <para>(A video capture device is assumed.)</para>
1016−
1017− <programlisting>
1018−&v4l2-cropcap; cropcap;
1019−&v4l2-crop; crop;
1020−&v4l2-format; format;
1021−double hscale, vscale;
1022−double aspect;
1023−int dwidth, dheight;
1024−
1025−memset (&amp;cropcap, 0, sizeof (cropcap));
1026−cropcap.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
1027−
1028−if (-1 == ioctl (fd, &VIDIOC-CROPCAP;, &amp;cropcap)) {
1029− perror ("VIDIOC_CROPCAP");
1030− exit (EXIT_FAILURE);
1031−}
1032−
1033−memset (&amp;crop, 0, sizeof (crop));
1034−crop.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
1035−
1036−if (-1 == ioctl (fd, &VIDIOC-G-CROP;, &amp;crop)) {
1037− if (errno != EINVAL) {
1038− perror ("VIDIOC_G_CROP");
1039− exit (EXIT_FAILURE);
1040− }
1041−
1042− /* Cropping not supported. */
1043− crop.c = cropcap.defrect;
1044−}
1045−
1046−memset (&amp;format, 0, sizeof (format));
1047−format.fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
1048−
1049−if (-1 == ioctl (fd, &VIDIOC-G-FMT;, &amp;format)) {
1050− perror ("VIDIOC_G_FMT");
1051− exit (EXIT_FAILURE);
1052−}
1053−
1054−/* The scaling applied by the driver. */
1055−
1056−hscale = format.fmt.pix.width / (double) crop.c.width;
1057−vscale = format.fmt.pix.height / (double) crop.c.height;
1058−
1059−aspect = cropcap.pixelaspect.numerator /
1060− (double) cropcap.pixelaspect.denominator;
1061−aspect = aspect * hscale / vscale;
1062−
1063−/* Devices following ITU-R BT.601 do not capture
1064− square pixels. For playback on a computer monitor
1065− we should scale the images to this size. */
1066−
1067−dwidth = format.fmt.pix.width / aspect;
1068−dheight = format.fmt.pix.height;
1069− </programlisting>
1070− </example>
1071− </section>
1072− </section>
1073−
1074− &sub-selection-api;
1075−
1076− <section id="streaming-par">
1077− <title>Streaming Parameters</title>
1078−
1079− <para>Streaming parameters are intended to optimize the video
1080−capture process as well as I/O. Presently applications can request a
1081−high quality capture mode with the &VIDIOC-S-PARM; ioctl.</para>
1082−
1083− <para>The current video standard determines a nominal number of
1084−frames per second. If less than this number of frames is to be
1085−captured or output, applications can request frame skipping or
1086−duplicating on the driver side. This is especially useful when using
1087−the &func-read; or &func-write;, which are not augmented by timestamps
1088−or sequence counters, and to avoid unnecessary data copying.</para>
1089−
1090− <para>Finally these ioctls can be used to determine the number of
1091−buffers used internally by a driver in read/write mode. For
1092−implications see the section discussing the &func-read;
1093−function.</para>
1094−
1095− <para>To get and set the streaming parameters applications call
1096−the &VIDIOC-G-PARM; and &VIDIOC-S-PARM; ioctl, respectively. They take
1097−a pointer to a &v4l2-streamparm;, which contains a union holding
1098−separate parameters for input and output devices.</para>
1099−
1100− <para>These ioctls are optional, drivers need not implement
1101−them. If so, they return the &EINVAL;.</para>
1102− </section>
Documentation/DocBook/media/v4l/compat.xml+0−2723
@@ -1,2723 +0,0 @@
1− <title>Changes</title>
2−
3− <para>The following chapters document the evolution of the V4L2 API,
4−errata or extensions. They are also intended to help application and
5−driver writers to port or update their code.</para>
6−
7− <section id="diff-v4l">
8− <title>Differences between V4L and V4L2</title>
9−
10− <para>The Video For Linux API was first introduced in Linux 2.1 to
11−unify and replace various TV and radio device related interfaces,
12−developed independently by driver writers in prior years. Starting
13−with Linux 2.5 the much improved V4L2 API replaces the V4L API.
14−The support for the old V4L calls were removed from Kernel, but the
15−library <xref linkend="libv4l" /> supports the conversion of a V4L
16−API system call into a V4L2 one.</para>
17−
18− <section>
19− <title>Opening and Closing Devices</title>
20−
21− <para>For compatibility reasons the character device file names
22−recommended for V4L2 video capture, overlay, radio and raw
23−vbi capture devices did not change from those used by V4L. They are
24−listed in <xref linkend="devices" /> and below in <xref
25− linkend="v4l-dev" />.</para>

2698 more lines aren’t shown here.

Documentation/DocBook/media/v4l/controls.xml+0−5505

This diff is large: its 5506 lines aren’t shown here.

Documentation/DocBook/media/v4l/crop.pdf+0−0

Binary file not shown.

Documentation/DocBook/media/v4l/dev-capture.xml+0−110

This diff is large: its 111 lines aren’t shown here.

Documentation/DocBook/media/v4l/dev-codec.xml+0−27

This diff is large: its 28 lines aren’t shown here.

Documentation/DocBook/media/v4l/dev-effect.xml+0−17

This diff is large: its 18 lines aren’t shown here.

Documentation/DocBook/media/v4l/dev-event.xml+0−43

This diff is large: its 44 lines aren’t shown here.

Documentation/DocBook/media/v4l/dev-osd.xml+0−149

This diff is large: its 150 lines aren’t shown here.

Documentation/DocBook/media/v4l/dev-output.xml+0−106

This diff is large: its 107 lines aren’t shown here.

Documentation/DocBook/media/v4l/dev-overlay.xml+0−368

This diff is large: its 369 lines aren’t shown here.

Documentation/DocBook/media/v4l/dev-radio.xml+0−49

This diff is large: its 50 lines aren’t shown here.

Documentation/DocBook/media/v4l/dev-raw-vbi.xml+0−345

This diff is large: its 346 lines aren’t shown here.

Documentation/DocBook/media/v4l/dev-rds.xml+0−196

This diff is large: its 197 lines aren’t shown here.

Documentation/DocBook/media/v4l/dev-sdr.xml+0−126

This diff is large: its 127 lines aren’t shown here.

Documentation/DocBook/media/v4l/dev-sliced-vbi.xml+0−706

This diff is large: its 707 lines aren’t shown here.

Documentation/DocBook/media/v4l/dev-subdev.xml+0−478

This diff is large: its 479 lines aren’t shown here.

Documentation/DocBook/media/v4l/dev-teletext.xml+0−29

This diff is large: its 30 lines aren’t shown here.

Documentation/DocBook/media/v4l/driver.xml+0−200

This diff is large: its 201 lines aren’t shown here.

Documentation/DocBook/media/v4l/fdl-appendix.xml+0−671

This diff is large: its 672 lines aren’t shown here.

Documentation/DocBook/media/v4l/fieldseq_bt.pdf+0−0

Binary file not shown.

Documentation/DocBook/media/v4l/fieldseq_tb.pdf+0−0

Binary file not shown.

Documentation/DocBook/media/v4l/func-close.xml+0−62

This diff is large: its 63 lines aren’t shown here.

Documentation/DocBook/media/v4l/func-ioctl.xml+0−71

This diff is large: its 72 lines aren’t shown here.

Documentation/DocBook/media/v4l/func-mmap.xml+0−183

This diff is large: its 184 lines aren’t shown here.

Documentation/DocBook/media/v4l/func-munmap.xml+0−76

This diff is large: its 77 lines aren’t shown here.

Documentation/DocBook/media/v4l/func-open.xml+0−113

This diff is large: its 114 lines aren’t shown here.

Documentation/DocBook/media/v4l/func-poll.xml+0−142

This diff is large: its 143 lines aren’t shown here.

Documentation/DocBook/media/v4l/func-read.xml+0−181

This diff is large: its 182 lines aren’t shown here.

Documentation/DocBook/media/v4l/func-select.xml+0−130

This diff is large: its 131 lines aren’t shown here.

Documentation/DocBook/media/v4l/func-write.xml+0−128

This diff is large: its 129 lines aren’t shown here.

Documentation/DocBook/media/v4l/gen-errors.xml+0−77

This diff is large: its 78 lines aren’t shown here.

Documentation/DocBook/media/v4l/io.xml+0−1545

This diff is large: its 1546 lines aren’t shown here.

Documentation/DocBook/media/v4l/keytable.c.xml+0−172

This diff is large: its 173 lines aren’t shown here.

Documentation/DocBook/media/v4l/libv4l.xml+0−160

This diff is large: its 161 lines aren’t shown here.

Documentation/DocBook/media/v4l/lirc_device_interface.xml+0−255

This diff is large: its 256 lines aren’t shown here.

Documentation/DocBook/media/v4l/media-controller.xml+0−105

This diff is large: its 106 lines aren’t shown here.

Documentation/DocBook/media/v4l/media-func-close.xml+0−59

This diff is large: its 60 lines aren’t shown here.

Documentation/DocBook/media/v4l/media-func-ioctl.xml+0−73

This diff is large: its 74 lines aren’t shown here.

Documentation/DocBook/media/v4l/media-func-open.xml+0−94

This diff is large: its 95 lines aren’t shown here.

Documentation/DocBook/media/v4l/media-ioc-device-info.xml+0−132

This diff is large: its 133 lines aren’t shown here.

Documentation/DocBook/media/v4l/media-ioc-enum-entities.xml+0−180

This diff is large: its 181 lines aren’t shown here.

Documentation/DocBook/media/v4l/media-ioc-enum-links.xml+0−160

This diff is large: its 161 lines aren’t shown here.

Documentation/DocBook/media/v4l/media-ioc-g-topology.xml+0−391

This diff is large: its 392 lines aren’t shown here.

Documentation/DocBook/media/v4l/media-ioc-setup-link.xml+0−84

This diff is large: its 85 lines aren’t shown here.

Documentation/DocBook/media/v4l/media-types.xml+0−379

This diff is large: its 380 lines aren’t shown here.

Documentation/DocBook/media/v4l/pipeline.pdf+0−0

Binary file not shown.

Documentation/DocBook/media/v4l/pixfmt-grey.xml+0−62

This diff is large: its 63 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-m420.xml+0−139

This diff is large: its 140 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-nv12.xml+0−143

This diff is large: its 144 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-nv12m.xml+0−153

This diff is large: its 154 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-nv12mt.xml+0−66

This diff is large: its 67 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-nv16.xml+0−166

This diff is large: its 167 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-nv16m.xml+0−170

This diff is large: its 171 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-nv24.xml+0−121

This diff is large: its 122 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml+0−937

This diff is large: its 938 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-packed-yuv.xml+0−236

This diff is large: its 237 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-sbggr16.xml+0−83

This diff is large: its 84 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-sbggr8.xml+0−67

This diff is large: its 68 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-sdr-cs08.xml+0−44

This diff is large: its 45 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-sdr-cs14le.xml+0−47

This diff is large: its 48 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-sdr-cu08.xml+0−44

This diff is large: its 45 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-sdr-cu16le.xml+0−46

This diff is large: its 47 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-sdr-ru12le.xml+0−40

This diff is large: its 41 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-sgbrg8.xml+0−67

This diff is large: its 68 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-sgrbg8.xml+0−67

This diff is large: its 68 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-srggb10.xml+0−90

This diff is large: its 91 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-srggb10alaw8.xml+0−34

This diff is large: its 35 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-srggb10dpcm8.xml+0−28

This diff is large: its 29 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-srggb10p.xml+0−99

This diff is large: its 100 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-srggb12.xml+0−90

This diff is large: its 91 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-srggb8.xml+0−67

This diff is large: its 68 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-uv8.xml+0−62

This diff is large: its 63 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-uyvy.xml+0−120

This diff is large: its 121 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-vyuy.xml+0−120

This diff is large: its 121 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-y10.xml+0−79

This diff is large: its 80 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-y10b.xml+0−43

This diff is large: its 44 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-y12.xml+0−79

This diff is large: its 80 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-y12i.xml+0−49

This diff is large: its 50 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-y16-be.xml+0−81

This diff is large: its 82 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-y16.xml+0−81

This diff is large: its 82 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-y41p.xml+0−149

This diff is large: its 150 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-y8i.xml+0−80

This diff is large: its 81 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-yuv410.xml+0−133

This diff is large: its 134 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-yuv411p.xml+0−147

This diff is large: its 148 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-yuv420.xml+0−149

This diff is large: its 150 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-yuv420m.xml+0−162

This diff is large: its 163 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-yuv422m.xml+0−166

This diff is large: its 167 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-yuv422p.xml+0−153

This diff is large: its 154 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-yuv444m.xml+0−177

This diff is large: its 178 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-yuyv.xml+0−120

This diff is large: its 121 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-yvyu.xml+0−120

This diff is large: its 121 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt-z16.xml+0−81

This diff is large: its 82 lines aren’t shown here.

Documentation/DocBook/media/v4l/pixfmt.xml+0−2003

This diff is large: its 2004 lines aren’t shown here.

Documentation/DocBook/media/v4l/planar-apis.xml+0−62

This diff is large: its 63 lines aren’t shown here.

Documentation/DocBook/media/v4l/remote_controllers.xml+0−320

This diff is large: its 321 lines aren’t shown here.

Documentation/DocBook/media/v4l/selection-api.xml+0−317

This diff is large: its 318 lines aren’t shown here.

Documentation/DocBook/media/v4l/selections-common.xml+0−180

This diff is large: its 181 lines aren’t shown here.

Documentation/DocBook/media/v4l/subdev-formats.xml+0−4040

This diff is large: its 4041 lines aren’t shown here.

Documentation/DocBook/media/v4l/subdev-image-processing-crop.dia+0−614

This diff is large: its 615 lines aren’t shown here.

Documentation/DocBook/media/v4l/subdev-image-processing-crop.svg+0−63

This diff is large: its 64 lines aren’t shown here.

Documentation/DocBook/media/v4l/subdev-image-processing-full.dia+0−1588

This diff is large: its 1589 lines aren’t shown here.

Documentation/DocBook/media/v4l/subdev-image-processing-full.svg+0−163

This diff is large: its 164 lines aren’t shown here.

Documentation/DocBook/media/v4l/subdev-image-processing-scaling-multi-source.dia+0−1152

This diff is large: its 1153 lines aren’t shown here.

Documentation/DocBook/media/v4l/subdev-image-processing-scaling-multi-source.svg+0−116

This diff is large: its 117 lines aren’t shown here.

Documentation/DocBook/media/v4l/v4l2.xml+0−728

This diff is large: its 729 lines aren’t shown here.

Documentation/DocBook/media/v4l/v4l2grab.c.xml+0−164

This diff is large: its 165 lines aren’t shown here.

Documentation/DocBook/media/v4l/vbi_525.pdf+0−0

Binary file not shown.

Documentation/DocBook/media/v4l/vbi_625.pdf+0−0

Binary file not shown.

Documentation/DocBook/media/v4l/vbi_hsync.pdf+0−0

Binary file not shown.

Documentation/DocBook/media/v4l/vidioc-create-bufs.xml+0−158

This diff is large: its 159 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-cropcap.xml+0−166

This diff is large: its 167 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-dbg-g-chip-info.xml+0−207

This diff is large: its 208 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-dbg-g-register.xml+0−227

This diff is large: its 228 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-decoder-cmd.xml+0−259

This diff is large: its 260 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-dqevent.xml+0−471

This diff is large: its 472 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-dv-timings-cap.xml+0−210

This diff is large: its 211 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-encoder-cmd.xml+0−197

This diff is large: its 198 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-enum-dv-timings.xml+0−128

This diff is large: its 129 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-enum-fmt.xml+0−159

This diff is large: its 160 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-enum-frameintervals.xml+0−260

This diff is large: its 261 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-enum-framesizes.xml+0−265

This diff is large: its 266 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-enum-freq-bands.xml+0−175

This diff is large: its 176 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-enumaudio.xml+0−76

This diff is large: its 77 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-enumaudioout.xml+0−79

This diff is large: its 80 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-enuminput.xml+0−316

This diff is large: its 317 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-enumoutput.xml+0−201

This diff is large: its 202 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-enumstd.xml+0−389

This diff is large: its 390 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-expbuf.xml+0−205

This diff is large: its 206 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-g-audio.xml+0−172

This diff is large: its 173 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-g-audioout.xml+0−138

This diff is large: its 139 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-g-crop.xml+0−129

This diff is large: its 130 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-g-ctrl.xml+0−133

This diff is large: its 134 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-g-dv-timings.xml+0−343

This diff is large: its 344 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-g-edid.xml+0−173

This diff is large: its 174 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-g-enc-index.xml+0−189

This diff is large: its 190 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml+0−456

This diff is large: its 457 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-g-fbuf.xml+0−459

This diff is large: its 460 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-g-fmt.xml+0−204

This diff is large: its 205 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-g-frequency.xml+0−148

This diff is large: its 149 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-g-input.xml+0−83

This diff is large: its 84 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-g-jpegcomp.xml+0−175

This diff is large: its 176 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-g-modulator.xml+0−252

This diff is large: its 253 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-g-output.xml+0−85

This diff is large: its 86 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-g-parm.xml+0−314

This diff is large: its 315 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-g-priority.xml+0−135

This diff is large: its 136 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-g-selection.xml+0−233

This diff is large: its 234 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-g-sliced-vbi-cap.xml+0−255

This diff is large: its 256 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-g-std.xml+0−98

This diff is large: its 99 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-g-tuner.xml+0−594

This diff is large: its 595 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-log-status.xml+0−41

This diff is large: its 42 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-overlay.xml+0−74

This diff is large: its 75 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-prepare-buf.xml+0−88

This diff is large: its 89 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-qbuf.xml+0−202

This diff is large: its 203 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-query-dv-timings.xml+0−115

This diff is large: its 116 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-querybuf.xml+0−106

This diff is large: its 107 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-querycap.xml+0−350

This diff is large: its 351 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-queryctrl.xml+0−661

This diff is large: its 662 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-querystd.xml+0−85

This diff is large: its 86 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-reqbufs.xml+0−137

This diff is large: its 138 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-s-hw-freq-seek.xml+0−188

This diff is large: its 189 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-streamon.xml+0−136

This diff is large: its 137 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-subdev-enum-frame-interval.xml+0−151

This diff is large: its 152 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-subdev-enum-frame-size.xml+0−153

This diff is large: its 154 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-subdev-enum-mbus-code.xml+0−118

This diff is large: its 119 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-subdev-g-crop.xml+0−158

This diff is large: its 159 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-subdev-g-fmt.xml+0−177

This diff is large: its 178 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-subdev-g-frame-interval.xml+0−135

This diff is large: its 136 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-subdev-g-selection.xml+0−159

This diff is large: its 160 lines aren’t shown here.

Documentation/DocBook/media/v4l/vidioc-subscribe-event.xml+0−130

This diff is large: its 131 lines aren’t shown here.

Documentation/DocBook/media/vbi_525.gif.b64+0−84

This diff is large: its 85 lines aren’t shown here.

Documentation/DocBook/media/vbi_625.gif.b64+0−90

This diff is large: its 91 lines aren’t shown here.

Documentation/DocBook/media/vbi_hsync.gif.b64+0−43

This diff is large: its 44 lines aren’t shown here.

Documentation/DocBook/media_api.tmpl+0−121

This diff is large: its 122 lines aren’t shown here.

Documentation/Makefile.sphinx+2−3

This diff is large: its 20 lines aren’t shown here.

Documentation/PCI/MSI-HOWTO.txt+79−390

This diff is large: its 510 lines aren’t shown here.

Documentation/arm/Atmel/README+8−2

This diff is large: its 18 lines aren’t shown here.

Documentation/binfmt_misc.txt+7−0

This diff is large: its 14 lines aren’t shown here.

Documentation/block/biodoc.txt+2−2

This diff is large: its 18 lines aren’t shown here.

Documentation/cgroup-v1/cgroups.txt+2−2

This diff is large: its 18 lines aren’t shown here.

Documentation/cgroup-v1/cpusets.txt+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/cgroup-v1/memcg_test.txt+2−2

This diff is large: its 18 lines aren’t shown here.

Documentation/coccinelle.txt+147−1

This diff is large: its 189 lines aren’t shown here.

Documentation/device-mapper/dm-flakey.txt+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/devicetree/bindings/arm/arm,scpi.txt+34−0

This diff is large: its 63 lines aren’t shown here.

Documentation/devicetree/bindings/arm/bcm/brcm,bcm11351-cpu-method.txt+3−3

This diff is large: its 26 lines aren’t shown here.

Documentation/devicetree/bindings/arm/bcm/brcm,bcm23550-cpu-method.txt+36−0

This diff is large: its 37 lines aren’t shown here.

Documentation/devicetree/bindings/arm/bcm/brcm,bcm23550.txt+15−0

This diff is large: its 16 lines aren’t shown here.

Documentation/devicetree/bindings/arm/bcm/brcm,bcm2835.txt+4−0

This diff is large: its 11 lines aren’t shown here.

Documentation/devicetree/bindings/arm/cpus.txt+3−0

This diff is large: its 17 lines aren’t shown here.

Documentation/devicetree/bindings/arm/hisilicon/hi3519-sysctrl.txt+14−0

This diff is large: its 15 lines aren’t shown here.

Documentation/devicetree/bindings/arm/mediatek.txt+4−0

This diff is large: its 18 lines aren’t shown here.

Documentation/devicetree/bindings/arm/olimex.txt+6−2

This diff is large: its 12 lines aren’t shown here.

Documentation/devicetree/bindings/arm/rockchip.txt+3−0

This diff is large: its 10 lines aren’t shown here.

Documentation/devicetree/bindings/arm/samsung/samsung-boards.txt+1−0

This diff is large: its 8 lines aren’t shown here.

Documentation/devicetree/bindings/arm/shmobile.txt+6−0

This diff is large: its 26 lines aren’t shown here.

Documentation/devicetree/bindings/arm/tegra.txt+4−0

This diff is large: its 12 lines aren’t shown here.

Documentation/devicetree/bindings/ata/ahci-platform.txt+1−0

This diff is large: its 8 lines aren’t shown here.

Documentation/devicetree/bindings/bus/nvidia,tegra210-aconnect.txt+45−0

This diff is large: its 46 lines aren’t shown here.

Documentation/devicetree/bindings/clock/clps711x-clock.txt+2−2

This diff is large: its 18 lines aren’t shown here.

Documentation/devicetree/bindings/display/arm,malidp.txt+65−0

This diff is large: its 66 lines aren’t shown here.

Documentation/devicetree/bindings/display/bridge/adi,adv7511.txt+21−5

This diff is large: its 56 lines aren’t shown here.

Documentation/devicetree/bindings/display/bridge/analogix_dp.txt+1−0

This diff is large: its 8 lines aren’t shown here.

Documentation/devicetree/bindings/display/bridge/sii902x.txt+35−0

This diff is large: its 36 lines aren’t shown here.

Documentation/devicetree/bindings/display/bridge/toshiba,tc358767.txt+53−0

This diff is large: its 54 lines aren’t shown here.

Documentation/devicetree/bindings/display/cirrus,clps711x-fb.txt+2−2

This diff is large: its 18 lines aren’t shown here.

Documentation/devicetree/bindings/display/connector/hdmi-connector.txt+1−0

This diff is large: its 8 lines aren’t shown here.

Documentation/devicetree/bindings/display/fsl,dcu.txt+7−2

This diff is large: its 22 lines aren’t shown here.

Documentation/devicetree/bindings/display/mediatek/mediatek,hdmi.txt+148−0

This diff is large: its 149 lines aren’t shown here.

Documentation/devicetree/bindings/display/msm/dsi.txt+77−40

This diff is large: its 206 lines aren’t shown here.

Documentation/devicetree/bindings/display/msm/mdp.txt+0−59

This diff is large: its 60 lines aren’t shown here.

Documentation/devicetree/bindings/display/msm/mdp4.txt+112−0

This diff is large: its 113 lines aren’t shown here.

Documentation/devicetree/bindings/display/msm/mdp5.txt+160−0

This diff is large: its 161 lines aren’t shown here.

Documentation/devicetree/bindings/display/panel/lg,lp079qx1-sp0v.txt+7−0

This diff is large: its 8 lines aren’t shown here.

Documentation/devicetree/bindings/display/panel/lg,lp097qx1-spa1.txt+7−0

This diff is large: its 8 lines aren’t shown here.

Documentation/devicetree/bindings/display/panel/panel-dpi.txt+2−0

This diff is large: its 9 lines aren’t shown here.

Documentation/devicetree/bindings/display/panel/samsung,lsn122dl01-c01.txt+7−0

This diff is large: its 8 lines aren’t shown here.

Documentation/devicetree/bindings/display/panel/sharp,lq101k1ly04.txt+7−0

This diff is large: its 8 lines aren’t shown here.

Documentation/devicetree/bindings/display/panel/sharp,lq123p1jx31.txt+7−0

This diff is large: its 8 lines aren’t shown here.

Documentation/devicetree/bindings/display/panel/starry,kr122ea0sra.txt+7−0

This diff is large: its 8 lines aren’t shown here.

Documentation/devicetree/bindings/display/rockchip/analogix_dp-rockchip.txt+8−1

This diff is large: its 23 lines aren’t shown here.

Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.txt+10−3

This diff is large: its 34 lines aren’t shown here.

Documentation/devicetree/bindings/dma/ti-edma.txt+2−2

This diff is large: its 18 lines aren’t shown here.

Documentation/devicetree/bindings/firmware/qcom,scm.txt+28−0

This diff is large: its 29 lines aren’t shown here.

Documentation/devicetree/bindings/iio/adc/at91_adc.txt+4−8

This diff is large: its 33 lines aren’t shown here.

Documentation/devicetree/bindings/input/clps711x-keypad.txt+2−2

This diff is large: its 18 lines aren’t shown here.

Documentation/devicetree/bindings/input/rotary-encoder.txt+4−0

This diff is large: its 24 lines aren’t shown here.

Documentation/devicetree/bindings/input/touchscreen/silead_gsl1680.txt+36−0

This diff is large: its 37 lines aren’t shown here.

Documentation/devicetree/bindings/input/touchscreen/sis_i2c.txt+33−0

This diff is large: its 34 lines aren’t shown here.

Documentation/devicetree/bindings/interrupt-controller/cirrus,clps711x-intc.txt+2−2

This diff is large: its 18 lines aren’t shown here.

Documentation/devicetree/bindings/interrupt-controller/mediatek,sysirq.txt+1−0

This diff is large: its 8 lines aren’t shown here.

Documentation/devicetree/bindings/iommu/arm,smmu-v3.txt+1−1

This diff is large: its 8 lines aren’t shown here.

Documentation/devicetree/bindings/iommu/mediatek,iommu.txt+9−4

This diff is large: its 33 lines aren’t shown here.

Documentation/devicetree/bindings/iommu/msm,iommu-v0.txt+64−0

This diff is large: its 65 lines aren’t shown here.

Documentation/devicetree/bindings/leds/backlight/lp855x.txt+2−0

This diff is large: its 16 lines aren’t shown here.

Documentation/devicetree/bindings/mailbox/brcm,iproc-pdc-mbox.txt+23−0

This diff is large: its 24 lines aren’t shown here.

Documentation/devicetree/bindings/media/nokia,n900-ir+20−0

This diff is large: its 21 lines aren’t shown here.

Documentation/devicetree/bindings/memory-controllers/atmel,ebi.txt+136−0

This diff is large: its 137 lines aren’t shown here.

Documentation/devicetree/bindings/memory-controllers/mediatek,smi-common.txt+18−3

This diff is large: its 35 lines aren’t shown here.

Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt+3−1

This diff is large: its 11 lines aren’t shown here.

Documentation/devicetree/bindings/memory-controllers/omap-gpmc.txt+6−1

This diff is large: its 21 lines aren’t shown here.

Documentation/devicetree/bindings/mfd/twl6040.txt+2−2

This diff is large: its 11 lines aren’t shown here.

Documentation/devicetree/bindings/mmc/arasan,sdhci.txt+33−2

This diff is large: its 53 lines aren’t shown here.

Documentation/devicetree/bindings/mmc/brcm,bcm2835-sdhci.txt+0−18

This diff is large: its 19 lines aren’t shown here.

Documentation/devicetree/bindings/mmc/brcm,bcm7425-sdhci.txt+36−0

This diff is large: its 37 lines aren’t shown here.

Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.txt+2−0

This diff is large: its 9 lines aren’t shown here.

Documentation/devicetree/bindings/mmc/mmc.txt+4−0

This diff is large: its 13 lines aren’t shown here.

Documentation/devicetree/bindings/mtd/atmel-quadspi.txt+32−0

This diff is large: its 33 lines aren’t shown here.

Documentation/devicetree/bindings/mtd/brcm,brcmnand.txt+1−0

This diff is large: its 8 lines aren’t shown here.

Documentation/devicetree/bindings/mtd/cadence-quadspi.txt+56−0

This diff is large: its 57 lines aren’t shown here.

Documentation/devicetree/bindings/mtd/gpmc-nand.txt+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/devicetree/bindings/mtd/hisilicon,fmc-spi-nor.txt+24−0

This diff is large: its 25 lines aren’t shown here.

Documentation/devicetree/bindings/mtd/mtk-nand.txt+160−0

This diff is large: its 161 lines aren’t shown here.

Documentation/devicetree/bindings/mtd/sunxi-nand.txt+6−0

This diff is large: its 17 lines aren’t shown here.

Documentation/devicetree/bindings/net/apm-xgene-enet.txt+2−2

This diff is large: its 11 lines aren’t shown here.

Documentation/devicetree/bindings/net/fsl-fec.txt+3−0

This diff is large: its 10 lines aren’t shown here.

Documentation/devicetree/bindings/pci/aardvark-pci.txt+56−0

This diff is large: its 57 lines aren’t shown here.

Documentation/devicetree/bindings/pci/axis,artpec6-pcie.txt+46−0

This diff is large: its 47 lines aren’t shown here.

Documentation/devicetree/bindings/pci/layerscape-pci.txt+4−0

This diff is large: its 18 lines aren’t shown here.

Documentation/devicetree/bindings/phy/nvidia,tegra124-xusb-padctl.txt+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt+9−0

This diff is large: its 23 lines aren’t shown here.

Documentation/devicetree/bindings/pinctrl/meson,pinctrl.txt+2−0

This diff is large: its 9 lines aren’t shown here.

Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-dpaux-padctl.txt+60−0

This diff is large: its 61 lines aren’t shown here.

Documentation/devicetree/bindings/power/renesas,apmu.txt+31−0

This diff is large: its 32 lines aren’t shown here.

Documentation/devicetree/bindings/power/renesas,rcar-sysc.txt+1−0

This diff is large: its 8 lines aren’t shown here.

Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/network.txt+0−43

This diff is large: its 44 lines aren’t shown here.

Documentation/devicetree/bindings/powerpc/opal/oppanel-opal.txt+14−0

This diff is large: its 15 lines aren’t shown here.

Documentation/devicetree/bindings/pwm/brcm,iproc-pwm.txt+21−0

This diff is large: its 22 lines aren’t shown here.

Documentation/devicetree/bindings/pwm/cirrus,clps711x-pwm.txt+2−3

This diff is large: its 18 lines aren’t shown here.

Documentation/devicetree/bindings/pwm/google,cros-ec-pwm.txt+23−0

This diff is large: its 24 lines aren’t shown here.

Documentation/devicetree/bindings/pwm/nvidia,tegra20-pwm.txt+8−4

This diff is large: its 19 lines aren’t shown here.

Documentation/devicetree/bindings/pwm/pwm-omap-dmtimer.txt+4−0

This diff is large: its 11 lines aren’t shown here.

Documentation/devicetree/bindings/pwm/pwm-tiecap.txt+29−9

This diff is large: its 58 lines aren’t shown here.

Documentation/devicetree/bindings/pwm/pwm-tiehrpwm.txt+29−9

This diff is large: its 58 lines aren’t shown here.

Documentation/devicetree/bindings/pwm/pwm-tipwmss.txt+31−2

This diff is large: its 51 lines aren’t shown here.

Documentation/devicetree/bindings/pwm/renesas,pwm-rcar.txt+1−0

This diff is large: its 8 lines aren’t shown here.

Documentation/devicetree/bindings/pwm/st,stmpe-pwm.txt+18−0

This diff is large: its 19 lines aren’t shown here.

Documentation/devicetree/bindings/regulator/pwm-regulator.txt+19−0

This diff is large: its 33 lines aren’t shown here.

Documentation/devicetree/bindings/reserved-memory/ramoops.txtrenamed from Documentation/devicetree/bindings/misc/ramoops.txt+4−4

This diff is large: its 22 lines aren’t shown here.

Documentation/devicetree/bindings/reset/amlogic,meson-reset.txt+18−0

This diff is large: its 19 lines aren’t shown here.

Documentation/devicetree/bindings/reset/hisilicon,hi6220-reset.txt+3−1

This diff is large: its 11 lines aren’t shown here.

Documentation/devicetree/bindings/reset/ti-syscon-reset.txt+91−0

This diff is large: its 92 lines aren’t shown here.

Documentation/devicetree/bindings/rng/amlogic,meson-rng.txt+14−0

This diff is large: its 15 lines aren’t shown here.

Documentation/devicetree/bindings/rtc/rtc-opal.txt+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/devicetree/bindings/serial/cirrus,clps711x-uart.txt+2−2

This diff is large: its 18 lines aren’t shown here.

Documentation/devicetree/bindings/serial/mtk-uart.txt+1−0

This diff is large: its 8 lines aren’t shown here.

Documentation/devicetree/bindings/soc/fsl/cpm_qe/cpm.txtrenamed from Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/soc/fsl/cpm_qe/cpm/brg.txtrenamed from Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm/brg.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/soc/fsl/cpm_qe/cpm/i2c.txtrenamed from Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm/i2c.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/soc/fsl/cpm_qe/cpm/pic.txtrenamed from Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm/pic.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/soc/fsl/cpm_qe/cpm/usb.txtrenamed from Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/cpm/usb.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/soc/fsl/cpm_qe/gpio.txtrenamed from Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/gpio.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/soc/fsl/cpm_qe/network.txt+124−0

This diff is large: its 125 lines aren’t shown here.

Documentation/devicetree/bindings/soc/fsl/cpm_qe/qe.txtrenamed from Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe.txt+52−0

This diff is large: its 59 lines aren’t shown here.

Documentation/devicetree/bindings/soc/fsl/cpm_qe/qe/firmware.txtrenamed from Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/firmware.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/soc/fsl/cpm_qe/qe/par_io.txtrenamed from Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/par_io.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/soc/fsl/cpm_qe/qe/pincfg.txtrenamed from Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/pincfg.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/soc/fsl/cpm_qe/qe/ucc.txtrenamed from Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/ucc.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/soc/fsl/cpm_qe/qe/usb.txtrenamed from Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/qe/usb.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/soc/fsl/cpm_qe/serial.txtrenamed from Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/serial.txt+0−0

File renamed without changes.

Documentation/devicetree/bindings/soc/fsl/cpm_qe/uqe_serial.txt+17−0

This diff is large: its 18 lines aren’t shown here.

Documentation/devicetree/bindings/soc/qcom/qcom,smp2p.txt+2−2

This diff is large: its 18 lines aren’t shown here.

Documentation/devicetree/bindings/soc/qcom/qcom,smsm.txt+2−2

This diff is large: its 18 lines aren’t shown here.

Documentation/devicetree/bindings/soc/qcom/qcom,wcnss.txt+116−0

This diff is large: its 117 lines aren’t shown here.

Documentation/devicetree/bindings/sound/adi,adau17x1.txt+8−0

This diff is large: its 21 lines aren’t shown here.

Documentation/devicetree/bindings/sound/adi,adau7002.txt+19−0

This diff is large: its 20 lines aren’t shown here.

Documentation/devicetree/bindings/sound/brcm,cygnus-audio.txt+67−0

This diff is large: its 68 lines aren’t shown here.

Documentation/devicetree/bindings/sound/bt-sco.txt+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/devicetree/bindings/sound/cs35l33.txt+126−0

This diff is large: its 127 lines aren’t shown here.

Documentation/devicetree/bindings/sound/cs53l30.txt+44−0

This diff is large: its 45 lines aren’t shown here.

Documentation/devicetree/bindings/sound/designware-i2s.txt+4−0

This diff is large: its 11 lines aren’t shown here.

Documentation/devicetree/bindings/sound/fsl-asoc-card.txt+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/devicetree/bindings/sound/max98504.txt+44−0

This diff is large: its 45 lines aren’t shown here.

Documentation/devicetree/bindings/sound/max9860.txt+28−0

This diff is large: its 29 lines aren’t shown here.

Documentation/devicetree/bindings/sound/mt2701-afe-pcm.txt+150−0

This diff is large: its 151 lines aren’t shown here.

Documentation/devicetree/bindings/sound/mt2701-cs42448.txt+43−0

This diff is large: its 44 lines aren’t shown here.

Documentation/devicetree/bindings/sound/mt8173-rt5650.txt+8−2

This diff is large: its 30 lines aren’t shown here.

Documentation/devicetree/bindings/sound/omap-mcpdm.txt+10−0

This diff is large: its 21 lines aren’t shown here.

Documentation/devicetree/bindings/sound/renesas,rsnd.txt+2−0

This diff is large: its 9 lines aren’t shown here.

Documentation/devicetree/bindings/sound/rockchip-i2s.txt+5−0

This diff is large: its 12 lines aren’t shown here.

Documentation/devicetree/bindings/sound/rt5514.txt+5−0

This diff is large: its 12 lines aren’t shown here.

Documentation/devicetree/bindings/sound/samsung,odroidx2-max98090.txt+0−35

This diff is large: its 36 lines aren’t shown here.

Documentation/devicetree/bindings/sound/sgtl5000.txt+9−9

This diff is large: its 34 lines aren’t shown here.

Documentation/devicetree/bindings/sound/st,sti-asoc-card.txt+10−10

This diff is large: its 58 lines aren’t shown here.

Documentation/devicetree/bindings/sound/sun4i-i2s.txt+34−0

This diff is large: its 35 lines aren’t shown here.

Documentation/devicetree/bindings/timer/cirrus,clps711x-timer.txt+3−3

This diff is large: its 26 lines aren’t shown here.

Documentation/devicetree/bindings/usb/atmel-usb.txt+7−7

This diff is large: its 59 lines aren’t shown here.

Documentation/devicetree/bindings/usb/nvidia,tegra124-xusb.txt+4−4

This diff is large: its 15 lines aren’t shown here.

Documentation/devicetree/bindings/vendor-prefixes.txt+2−0

This diff is large: its 16 lines aren’t shown here.

Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt+16−0

This diff is large: its 17 lines aren’t shown here.

Documentation/devicetree/bindings/watchdog/meson-gxbb-wdt.txt+16−0

This diff is large: its 17 lines aren’t shown here.

Documentation/devicetree/bindings/watchdog/qcom-wdt.txt+4−0

This diff is large: its 11 lines aren’t shown here.

Documentation/devicetree/bindings/watchdog/renesas-wdt.txt+5−1

This diff is large: its 13 lines aren’t shown here.

Documentation/dontdiff+1−0

This diff is large: its 8 lines aren’t shown here.

Documentation/driver-model/devres.txt+7−0

This diff is large: its 16 lines aren’t shown here.

Documentation/filesystems/Locking+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/filesystems/nilfs2.txt+2−1

This diff is large: its 10 lines aren’t shown here.

Documentation/filesystems/orangefs.txt+46−4

This diff is large: its 76 lines aren’t shown here.

Documentation/filesystems/porting+7−0

This diff is large: its 11 lines aren’t shown here.

Documentation/filesystems/tmpfs.txt+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/filesystems/vfs.txt+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/gcc-plugins.txt+87−0

This diff is large: its 88 lines aren’t shown here.

Documentation/gpu/drm-internals.rst+381−0

This diff is large: its 382 lines aren’t shown here.

Documentation/gpu/drm-kms-helpers.rst+260−0

This diff is large: its 261 lines aren’t shown here.

Documentation/gpu/drm-kms.rst+653−0

This diff is large: its 654 lines aren’t shown here.

Documentation/gpu/drm-mm.rst+454−0

This diff is large: its 455 lines aren’t shown here.

Documentation/gpu/drm-uapi.rst+111−0

This diff is large: its 112 lines aren’t shown here.

Documentation/gpu/i915.rst+347−0

This diff is large: its 348 lines aren’t shown here.

Documentation/gpu/index.rst+14−0

This diff is large: its 15 lines aren’t shown here.

Documentation/gpu/introduction.rst+51−0

This diff is large: its 52 lines aren’t shown here.

Documentation/gpu/kms-properties.csv+129−0

This diff is large: its 130 lines aren’t shown here.

Documentation/gpu/vga-switcheroo.rst+98−0

This diff is large: its 99 lines aren’t shown here.

Documentation/index.rst+1−0

This diff is large: its 8 lines aren’t shown here.

Documentation/ioctl/ioctl-number.txt+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/kernel-parameters.txt+36−2

This diff is large: its 104 lines aren’t shown here.

Documentation/kernel-per-CPU-kthreads.txt+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/mmc/mmc-dev-attrs.txt+2−0

This diff is large: its 9 lines aren’t shown here.

Documentation/module-signing.txt+6−0

This diff is large: its 10 lines aren’t shown here.

Documentation/ramoops.txt+27−11

This diff is large: its 46 lines aren’t shown here.

Documentation/rapidio/mport_cdev.txt+1−2

This diff is large: its 10 lines aren’t shown here.

Documentation/rapidio/rio_cm.txt+119−0

This diff is large: its 120 lines aren’t shown here.

Documentation/rapidio/tsi721.txt+26−0

This diff is large: its 33 lines aren’t shown here.

Documentation/scheduler/sched-deadline.txt+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/scheduler/sched-design-CFS.txt+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/scheduler/sched-rt-group.txt+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/sound/alsa/soc/machine.txt+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/sound/alsa/timestamping.txt+6−6

This diff is large: its 44 lines aren’t shown here.

Documentation/sysctl/kernel.txt+14−0

This diff is large: its 21 lines aren’t shown here.

Documentation/virtual/kvm/api.txt+106−9

This diff is large: its 209 lines aren’t shown here.

Documentation/virtual/kvm/devices/arm-vgic.txt+19−6

This diff is large: its 52 lines aren’t shown here.

Documentation/virtual/kvm/devices/vm.txt+86−1

This diff is large: its 101 lines aren’t shown here.

Documentation/virtual/kvm/locking.txt+2−2

This diff is large: its 18 lines aren’t shown here.

Documentation/vm/numa+2−2

This diff is large: its 18 lines aren’t shown here.

Documentation/vm/numa_memory_policy.txt+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/vm/page_migration+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/vm/unevictable-lru.txt+1−1

This diff is large: its 9 lines aren’t shown here.

Documentation/watchdog/hpwdt.txt+2−3

This diff is large: its 17 lines aren’t shown here.

Documentation/watchdog/src/watchdog-test.c+23−16

This diff is large: its 110 lines aren’t shown here.

Documentation/watchdog/watchdog-kernel-api.txt+7−2

This diff is large: its 23 lines aren’t shown here.

Documentation/x86/x86_64/fake-numa-for-cpusets+2−2

This diff is large: its 18 lines aren’t shown here.

MAINTAINERS+200−33

This diff is large: its 596 lines aren’t shown here.

Makefile+19−26

This diff is large: its 130 lines aren’t shown here.

arch/Kconfig+46−0

This diff is large: its 60 lines aren’t shown here.

arch/alpha/boot/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/alpha/include/asm/dma-mapping.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/alpha/include/asm/rtc.h+0−1

This diff is large: its 2 lines aren’t shown here.

arch/alpha/include/asm/thread_info.h+0−27

This diff is large: its 34 lines aren’t shown here.

arch/alpha/kernel/core_marvel.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/alpha/kernel/machvec_impl.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/alpha/kernel/pci-noop.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/alpha/kernel/pci_iommu.c+6−6

This diff is large: its 54 lines aren’t shown here.

arch/alpha/kernel/rtc.c+2−4

This diff is large: its 27 lines aren’t shown here.

arch/arc/boot/dts/nsimosci.dts+11−3

This diff is large: its 29 lines aren’t shown here.

arch/arc/boot/dts/nsimosci_hs.dts+11−3

This diff is large: its 29 lines aren’t shown here.

arch/arc/boot/dts/nsimosci_hs_idu.dts+11−3

This diff is large: its 29 lines aren’t shown here.

arch/arc/boot/dts/vdk_axs10x_mb.dtsi+9−4

This diff is large: its 28 lines aren’t shown here.

arch/arc/boot/dts/vdk_hs38_smp.dts+1−1

This diff is large: its 8 lines aren’t shown here.

arch/arc/configs/nsimosci_defconfig+2−1

This diff is large: its 10 lines aren’t shown here.

arch/arc/configs/nsimosci_hs_defconfig+2−1

This diff is large: its 10 lines aren’t shown here.

arch/arc/configs/nsimosci_hs_smp_defconfig+2−1

This diff is large: its 10 lines aren’t shown here.

arch/arc/configs/vdk_hs38_smp_defconfig+2−5

This diff is large: its 15 lines aren’t shown here.

arch/arc/mm/dma.c+6−6

This diff is large: its 52 lines aren’t shown here.

arch/arc/mm/init.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/Kconfig+19−33

This diff is large: its 263 lines aren’t shown here.

arch/arm/Kconfig.debug+48−17

This diff is large: its 126 lines aren’t shown here.

arch/arm/Makefile+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/Makefile+35−8

This diff is large: its 188 lines aren’t shown here.

arch/arm/boot/dts/aks-cdu.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/am335x-bone-common.dtsi+6−6

This diff is large: its 34 lines aren’t shown here.

arch/arm/boot/dts/am335x-boneblack.dts+11−0

This diff is large: its 18 lines aren’t shown here.

arch/arm/boot/dts/am335x-evm.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/am335x-evmsk.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/am335x-icev2.dts+7−0

This diff is large: its 14 lines aren’t shown here.

arch/arm/boot/dts/am33xx.dtsi+100−26

This diff is large: its 198 lines aren’t shown here.

arch/arm/boot/dts/am3517-craneboard.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/am4372.dtsi+92−19

This diff is large: its 208 lines aren’t shown here.

arch/arm/boot/dts/am437x-gp-evm.dts+5−1

This diff is large: its 17 lines aren’t shown here.

arch/arm/boot/dts/am437x-idk-evm.dts+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/am437x-sbc-t43.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/am43x-epos-evm.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/am43xx-clocks.dtsi+8−0

This diff is large: its 15 lines aren’t shown here.

arch/arm/boot/dts/am57xx-sbc-am57x.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/animeo_ip.dts+1−10

This diff is large: its 25 lines aren’t shown here.

arch/arm/boot/dts/armada-388-clearfog.dts+0−16

This diff is large: its 23 lines aren’t shown here.

arch/arm/boot/dts/at91-ariag25.dts+1−10

This diff is large: its 25 lines aren’t shown here.

arch/arm/boot/dts/at91-cosino.dtsi+0−9

This diff is large: its 16 lines aren’t shown here.

arch/arm/boot/dts/at91-foxg20.dts+2−11

This diff is large: its 32 lines aren’t shown here.

arch/arm/boot/dts/at91-kizbox.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/boot/dts/at91-qil_a9260.dts+2−11

This diff is large: its 34 lines aren’t shown here.

arch/arm/boot/dts/at91-sam9_l9260.dts+121−0

This diff is large: its 122 lines aren’t shown here.

arch/arm/boot/dts/at91-sama5d2_xplained.dts+32−9

This diff is large: its 96 lines aren’t shown here.

arch/arm/boot/dts/at91-sama5d3_xplained.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/at91-sama5d4_ma5d4.dtsi+7−4

This diff is large: its 32 lines aren’t shown here.

arch/arm/boot/dts/at91-sama5d4_ma5d4evk.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/at91-sama5d4_xplained.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/boot/dts/at91-sama5d4ek.dts+0−20

This diff is large: its 27 lines aren’t shown here.

arch/arm/boot/dts/at91-vinco.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/at91rm9200.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/at91sam9260.dtsi+6−10

This diff is large: its 48 lines aren’t shown here.

arch/arm/boot/dts/at91sam9260ek.dts+211−0

This diff is large: its 212 lines aren’t shown here.

arch/arm/boot/dts/at91sam9261.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/at91sam9263.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/at91sam9263ek.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/at91sam9g20ek_common.dtsi+2−2

This diff is large: its 16 lines aren’t shown here.

arch/arm/boot/dts/at91sam9g25ek.dts+26−0

This diff is large: its 41 lines aren’t shown here.

arch/arm/boot/dts/at91sam9g45.dtsi+12−16

This diff is large: its 101 lines aren’t shown here.

arch/arm/boot/dts/at91sam9n12.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/at91sam9rl.dtsi+13−17

This diff is large: its 107 lines aren’t shown here.

arch/arm/boot/dts/at91sam9rlek.dts+2−2

This diff is large: its 14 lines aren’t shown here.

arch/arm/boot/dts/at91sam9x5.dtsi+14−18

This diff is large: its 120 lines aren’t shown here.

arch/arm/boot/dts/at91sam9x5ek.dtsi+0−33

This diff is large: its 47 lines aren’t shown here.

arch/arm/boot/dts/axp209.dtsi+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/axp22x.dtsi+12−0

This diff is large: its 29 lines aren’t shown here.

arch/arm/boot/dts/axp809.dtsi+53−0

This diff is large: its 54 lines aren’t shown here.

arch/arm/boot/dts/bcm-cygnus.dtsi+11−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/boot/dts/bcm-nsp.dtsi+54−1

This diff is large: its 89 lines aren’t shown here.

arch/arm/boot/dts/bcm11351.dtsi+1−1

This diff is large: its 16 lines aren’t shown here.

arch/arm/boot/dts/bcm21664.dtsi+1−1

This diff is large: its 16 lines aren’t shown here.

arch/arm/boot/dts/bcm23550-sparrow.dts+80−0

This diff is large: its 81 lines aren’t shown here.

arch/arm/boot/dts/bcm23550.dtsi+415−0

This diff is large: its 416 lines aren’t shown here.

arch/arm/boot/dts/bcm2835-rpi-b-plus.dts+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/bcm2835-rpi-b.dts+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/bcm2836-rpi-2-b.dts+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/bcm283x-rpi-smsc9512.dtsi+19−0

This diff is large: its 20 lines aren’t shown here.

arch/arm/boot/dts/bcm283x-rpi-smsc9514.dtsi+19−0

This diff is large: its 20 lines aren’t shown here.

arch/arm/boot/dts/bcm283x.dtsi+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts+4−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/bcm4708-netgear-r6250.dts+4−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts+4−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts+40−0

This diff is large: its 44 lines aren’t shown here.

arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts+4−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts+5−1

This diff is large: its 17 lines aren’t shown here.

arch/arm/boot/dts/bcm5301x-nand-cs0-bch1.dtsi+15−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/boot/dts/bcm5301x-nand-cs0-bch8.dtsi+5−11

This diff is large: its 22 lines aren’t shown here.

arch/arm/boot/dts/bcm5301x-nand-cs0.dtsi+18−0

This diff is large: its 19 lines aren’t shown here.

arch/arm/boot/dts/bcm5301x.dtsi+47−0

This diff is large: its 68 lines aren’t shown here.

arch/arm/boot/dts/bcm953012er.dts+104−0

This diff is large: its 105 lines aren’t shown here.

arch/arm/boot/dts/bcm958525xmc.dts+109−0

This diff is large: its 110 lines aren’t shown here.

arch/arm/boot/dts/bcm958625hr.dts+111−0

This diff is large: its 112 lines aren’t shown here.

arch/arm/boot/dts/compulab-sb-som.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/dm814x.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/dra7.dtsi+240−2

This diff is large: its 284 lines aren’t shown here.

arch/arm/boot/dts/dra72-evm-common.dtsi+6−6

This diff is large: its 40 lines aren’t shown here.

arch/arm/boot/dts/dra72x.dtsi+0−16

This diff is large: its 23 lines aren’t shown here.

arch/arm/boot/dts/dra74x.dtsi+1−24

This diff is large: its 36 lines aren’t shown here.

arch/arm/boot/dts/emev2-kzm9d.dts+14−10

This diff is large: its 82 lines aren’t shown here.

arch/arm/boot/dts/emev2.dtsi+13−13

This diff is large: its 95 lines aren’t shown here.

arch/arm/boot/dts/ep7209.dtsi+191−0

This diff is large: its 192 lines aren’t shown here.

arch/arm/boot/dts/ep7211-edb7211.dts+100−0

This diff is large: its 101 lines aren’t shown here.

arch/arm/boot/dts/ep7211.dtsi+12−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/boot/dts/ethernut5.dts+2−2

This diff is large: its 16 lines aren’t shown here.

arch/arm/boot/dts/evk-pro3.dts+2−2

This diff is large: its 16 lines aren’t shown here.

arch/arm/boot/dts/exynos-mfc-reserved-memory.dtsi+35−0

This diff is large: its 36 lines aren’t shown here.

arch/arm/boot/dts/exynos3250-rinato.dts+0−4

This diff is large: its 11 lines aren’t shown here.

arch/arm/boot/dts/exynos3250.dtsi+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/exynos4.dtsi+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/exynos4210-origen.dts+1−6

This diff is large: its 21 lines aren’t shown here.

arch/arm/boot/dts/exynos4210-smdkv310.dts+1−6

This diff is large: its 21 lines aren’t shown here.

arch/arm/boot/dts/exynos4412-odroid-common.dtsi+20−9

This diff is large: its 72 lines aren’t shown here.

arch/arm/boot/dts/exynos4412-odroidu3.dts+18−0

This diff is large: its 25 lines aren’t shown here.

arch/arm/boot/dts/exynos4412-odroidx.dts+11−0

This diff is large: its 24 lines aren’t shown here.

arch/arm/boot/dts/exynos4412-odroidx2.dts+11−0

This diff is large: its 18 lines aren’t shown here.

arch/arm/boot/dts/exynos4412-origen.dts+17−6

This diff is large: its 44 lines aren’t shown here.

arch/arm/boot/dts/exynos4412-smdk4412.dts+1−6

This diff is large: its 21 lines aren’t shown here.

arch/arm/boot/dts/exynos4412-trats2.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/boot/dts/exynos5.dtsi+139−76

This diff is large: its 237 lines aren’t shown here.

arch/arm/boot/dts/exynos5250-arndale.dts+1−5

This diff is large: its 20 lines aren’t shown here.

arch/arm/boot/dts/exynos5250-smdk5250.dts+1−5

This diff is large: its 20 lines aren’t shown here.

arch/arm/boot/dts/exynos5250-snow-common.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/exynos5250-spring.dts+1−5

This diff is large: its 20 lines aren’t shown here.

arch/arm/boot/dts/exynos5250.dtsi+832−869

This diff is large: its 1813 lines aren’t shown here.

arch/arm/boot/dts/exynos5410-odroidxu.dts+580−0

This diff is large: its 581 lines aren’t shown here.

arch/arm/boot/dts/exynos5410-pinctrl.dtsi+210−0

This diff is large: its 217 lines aren’t shown here.

arch/arm/boot/dts/exynos5410-smdk5410.dts+3−3

This diff is large: its 18 lines aren’t shown here.

arch/arm/boot/dts/exynos5410.dtsi+214−119

This diff is large: its 403 lines aren’t shown here.

arch/arm/boot/dts/exynos5420-arndale-octa.dts+1−5

This diff is large: its 20 lines aren’t shown here.

arch/arm/boot/dts/exynos5420-peach-pit.dts+21−11

This diff is large: its 95 lines aren’t shown here.

arch/arm/boot/dts/exynos5420-pinctrl.dtsi+6−6

This diff is large: its 24 lines aren’t shown here.

arch/arm/boot/dts/exynos5420-smdk5420.dts+1−5

This diff is large: its 20 lines aren’t shown here.

arch/arm/boot/dts/exynos5420.dtsi+1303−1467

This diff is large: its 2895 lines aren’t shown here.

arch/arm/boot/dts/exynos5422-cpu-thermal.dtsi+0−103

This diff is large: its 104 lines aren’t shown here.

arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi+92−12

This diff is large: its 157 lines aren’t shown here.

arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts+1−34

This diff is large: its 46 lines aren’t shown here.

arch/arm/boot/dts/exynos5422-odroidxu3.dts+1−34

This diff is large: its 46 lines aren’t shown here.

arch/arm/boot/dts/exynos54xx-odroidxu-leds.dtsi+50−0

This diff is large: its 51 lines aren’t shown here.

arch/arm/boot/dts/exynos54xx.dtsi+199−0

This diff is large: its 200 lines aren’t shown here.

arch/arm/boot/dts/exynos5800-peach-pi.dts+21−11

This diff is large: its 95 lines aren’t shown here.

arch/arm/boot/dts/ge863-pro3.dtsi+0−9

This diff is large: its 16 lines aren’t shown here.

arch/arm/boot/dts/hi3519-demb.dts+42−0

This diff is large: its 43 lines aren’t shown here.

arch/arm/boot/dts/hi3519.dtsi+187−0

This diff is large: its 188 lines aren’t shown here.

arch/arm/boot/dts/imx1-ads.dts+2−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/boot/dts/imx1-apf9328.dts+2−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/boot/dts/imx23-sansa.dts+207−0

This diff is large: its 208 lines aren’t shown here.

arch/arm/boot/dts/imx23-xfi3.dts+179−0

This diff is large: its 180 lines aren’t shown here.

arch/arm/boot/dts/imx23.dtsi+48−0

This diff is large: its 83 lines aren’t shown here.

arch/arm/boot/dts/imx25-eukrea-mbimxsd25-baseboard.dts+2−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/boot/dts/imx25-pdk.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/imx25-pinfunc.h+318−309

This diff is large: its 802 lines aren’t shown here.

arch/arm/boot/dts/imx27-eukrea-cpuimx27.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/imx27-eukrea-mbimxsd27-baseboard.dts+3−3

This diff is large: its 25 lines aren’t shown here.

arch/arm/boot/dts/imx27-pdk.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/imx27-phytec-phycard-s-rdk.dts+3−3

This diff is large: its 25 lines aren’t shown here.

arch/arm/boot/dts/imx27-phytec-phycore-rdk.dts+2−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/boot/dts/imx28-apf28dev.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/imx28-cfa10049.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/imx28-eukrea-mbmx28lc.dtsi+4−0

This diff is large: its 32 lines aren’t shown here.

arch/arm/boot/dts/imx28-evk.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/imx28-tx28.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/imx28.dtsi+5−0

This diff is large: its 40 lines aren’t shown here.

arch/arm/boot/dts/imx31-bug.dts+1−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/imx35-eukrea-mbimxsd35-baseboard.dts+2−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/boot/dts/imx35-pdk.dts+1−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/imx51-babbage.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/boot/dts/imx51-eukrea-mbimxsd51-baseboard.dts+2−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/boot/dts/imx51-ts4800.dts+27−0

This diff is large: its 41 lines aren’t shown here.

arch/arm/boot/dts/imx53-smd.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/imx53-tqma53.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/imx53-tx53.dtsi+3−3

This diff is large: its 25 lines aren’t shown here.

arch/arm/boot/dts/imx6dl-riotboard.dts+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/imx6q-apalis-ixora.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/boot/dts/imx6q-arm2.dts+2−1

This diff is large: its 17 lines aren’t shown here.

arch/arm/boot/dts/imx6q-ba16.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/imx6q-bx50v3.dtsi+6−0

This diff is large: its 13 lines aren’t shown here.

arch/arm/boot/dts/imx6q-cm-fx6.dts+228−53

This diff is large: its 314 lines aren’t shown here.

arch/arm/boot/dts/imx6q-h100.dts+395−0

This diff is large: its 396 lines aren’t shown here.

arch/arm/boot/dts/imx6q-tbs2910.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/imx6q-utilite-pro.dts+197−0

This diff is large: its 198 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-apalis.dtsi+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-apf6dev.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-aristainetos.dtsi+2−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-microsom.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi+2−1

This diff is large: its 17 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-sabreauto.dtsi+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-sabrelite.dtsi+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-sabresd.dtsi+18−1

This diff is large: its 37 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-tx6.dtsi+3−3

This diff is large: its 25 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl-wandboard.dtsi+2−1

This diff is large: its 17 lines aren’t shown here.

arch/arm/boot/dts/imx6qdl.dtsi+3−1

This diff is large: its 25 lines aren’t shown here.

arch/arm/boot/dts/imx6sl-warp.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/imx6sl.dtsi+7−6

This diff is large: its 62 lines aren’t shown here.

arch/arm/boot/dts/imx6sx-nitrogen6sx.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/imx6sx-sdb.dtsi+13−1

This diff is large: its 34 lines aren’t shown here.

arch/arm/boot/dts/imx6sx.dtsi+6−6

This diff is large: its 54 lines aren’t shown here.

arch/arm/boot/dts/imx6ul-14x14-evk.dts+62−1

This diff is large: its 103 lines aren’t shown here.

arch/arm/boot/dts/imx6ul-pico-hobbit.dts+3−3

This diff is large: its 20 lines aren’t shown here.

arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts+2−2

This diff is large: its 15 lines aren’t shown here.

arch/arm/boot/dts/imx6ul-tx6ul.dtsi+3−3

This diff is large: its 25 lines aren’t shown here.

arch/arm/boot/dts/imx6ul.dtsi+6−3

This diff is large: its 37 lines aren’t shown here.

arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi+148−0

This diff is large: its 149 lines aren’t shown here.

arch/arm/boot/dts/imx7-colibri.dtsi+571−0

This diff is large: its 572 lines aren’t shown here.

arch/arm/boot/dts/imx7d-cl-som-imx7.dts+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/imx7d-colibri-eval-v3.dts+66−0

This diff is large: its 67 lines aren’t shown here.

arch/arm/boot/dts/imx7d-colibri.dtsi+54−0

This diff is large: its 55 lines aren’t shown here.

arch/arm/boot/dts/imx7d-nitrogen7.dts+1−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/boot/dts/imx7d-pinfunc.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/imx7d-sdb.dts+130−1

This diff is large: its 177 lines aren’t shown here.

arch/arm/boot/dts/imx7d.dtsi+48−875

This diff is large: its 958 lines aren’t shown here.

arch/arm/boot/dts/imx7s-colibri-eval-v3.dts+51−0

This diff is large: its 52 lines aren’t shown here.

arch/arm/boot/dts/imx7s-colibri.dtsi+50−0

This diff is large: its 51 lines aren’t shown here.

arch/arm/boot/dts/imx7s.dtsi+933−0

This diff is large: its 934 lines aren’t shown here.

arch/arm/boot/dts/keystone-k2e.dtsi+5−2

This diff is large: its 19 lines aren’t shown here.

arch/arm/boot/dts/keystone-k2g-evm.dts+11−0

This diff is large: its 18 lines aren’t shown here.

arch/arm/boot/dts/keystone-k2g.dtsi+8−0

This diff is large: its 22 lines aren’t shown here.

arch/arm/boot/dts/keystone-k2l.dtsi+149−0

This diff is large: its 156 lines aren’t shown here.

arch/arm/boot/dts/keystone.dtsi+13−2

This diff is large: its 34 lines aren’t shown here.

arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/boot/dts/ls1021a.dtsi+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/meson8b.dtsi+7−0

This diff is large: its 21 lines aren’t shown here.

arch/arm/boot/dts/mpa1600.dts+1−10

This diff is large: its 25 lines aren’t shown here.

arch/arm/boot/dts/omap24xx-clocks.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-beagle-xm.dts+5−5

This diff is large: its 44 lines aren’t shown here.

arch/arm/boot/dts/omap3-beagle.dts+5−5

This diff is large: its 44 lines aren’t shown here.

arch/arm/boot/dts/omap3-cm-t3x.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-devkit8000-common.dtsi+6−6

This diff is large: its 53 lines aren’t shown here.

arch/arm/boot/dts/omap3-devkit8000-lcd-common.dtsi+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/boot/dts/omap3-devkit8000-lcd43.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-devkit8000-lcd70.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-gta04.dtsi+66−6

This diff is large: its 154 lines aren’t shown here.

arch/arm/boot/dts/omap3-ha-lcd.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-igep0020-common.dtsi+4−4

This diff is large: its 35 lines aren’t shown here.

arch/arm/boot/dts/omap3-n900.dts+12−0

This diff is large: its 19 lines aren’t shown here.

arch/arm/boot/dts/omap3-overo-common-dvi.dtsi+4−4

This diff is large: its 35 lines aren’t shown here.

arch/arm/boot/dts/omap3-overo-common-lcd35.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-overo-common-lcd43.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-pandora-common.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3-sb-t35.dtsi+4−4

This diff is large: its 35 lines aren’t shown here.

arch/arm/boot/dts/omap3-thunder.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap3.dtsi+10−0

This diff is large: its 45 lines aren’t shown here.

arch/arm/boot/dts/omap4-duovero-parlor.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap4-duovero.dtsi+5−0

This diff is large: its 19 lines aren’t shown here.

arch/arm/boot/dts/omap4-panda-common.dtsi+13−8

This diff is large: its 89 lines aren’t shown here.

arch/arm/boot/dts/omap4-sdp.dts+9−4

This diff is large: its 54 lines aren’t shown here.

arch/arm/boot/dts/omap4-var-om44customboard.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/omap4-var-som-om44.dtsi+5−0

This diff is large: its 19 lines aren’t shown here.

arch/arm/boot/dts/omap5-board-common.dtsi+9−4

This diff is large: its 54 lines aren’t shown here.

arch/arm/boot/dts/omap5-cm-t54.dts+10−5

This diff is large: its 62 lines aren’t shown here.

arch/arm/boot/dts/pm9g45.dts+0−9

This diff is large: its 16 lines aren’t shown here.

arch/arm/boot/dts/pxa27x.dtsi+7−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/boot/dts/pxa2xx.dtsi+8−0

This diff is large: its 14 lines aren’t shown here.

arch/arm/boot/dts/pxa3xx.dtsi+132−1

This diff is large: its 154 lines aren’t shown here.

arch/arm/boot/dts/qcom-apq8060-dragonboard.dts+626−0

This diff is large: its 627 lines aren’t shown here.

arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval-pins.dtsirenamed from arch/arm/boot/dts/qcom-apq8064-arrow-db600c-pins.dtsi+0−0

File renamed without changes.

arch/arm/boot/dts/qcom-apq8064-arrow-sd-600eval.dtsrenamed from arch/arm/boot/dts/qcom-apq8064-arrow-db600c.dts+6−4

This diff is large: its 25 lines aren’t shown here.

arch/arm/boot/dts/qcom-apq8064-asus-nexus7-flo.dts+0−6

This diff is large: its 13 lines aren’t shown here.

arch/arm/boot/dts/qcom-apq8064-pins.dtsi+40−0

This diff is large: its 47 lines aren’t shown here.

arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts+1−43

This diff is large: its 65 lines aren’t shown here.

arch/arm/boot/dts/qcom-apq8064.dtsi+11−2

This diff is large: its 41 lines aren’t shown here.

arch/arm/boot/dts/qcom-apq8074-dragonboard.dts+247−0

This diff is large: its 271 lines aren’t shown here.

arch/arm/boot/dts/qcom-apq8084.dtsi+8−0

This diff is large: its 15 lines aren’t shown here.

arch/arm/boot/dts/qcom-ipq4019.dtsi+7−1

This diff is large: its 22 lines aren’t shown here.

arch/arm/boot/dts/qcom-ipq8064.dtsi+2−1

This diff is large: its 10 lines aren’t shown here.

arch/arm/boot/dts/qcom-msm8660-surf.dts+11−0

This diff is large: its 27 lines aren’t shown here.

arch/arm/boot/dts/qcom-msm8660.dtsi+154−12

This diff is large: its 215 lines aren’t shown here.

arch/arm/boot/dts/qcom-msm8960.dtsi+2−1

This diff is large: its 10 lines aren’t shown here.

arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts+4−0

This diff is large: its 11 lines aren’t shown here.

arch/arm/boot/dts/qcom-msm8974.dtsi+24−4

This diff is large: its 76 lines aren’t shown here.

arch/arm/boot/dts/qcom-pma8084.dtsi+14−6

This diff is large: its 54 lines aren’t shown here.

arch/arm/boot/dts/r7s72100-genmai.dts+3−3

This diff is large: its 19 lines aren’t shown here.

arch/arm/boot/dts/r8a73a4-ape6evm.dts+6−6

This diff is large: its 51 lines aren’t shown here.

arch/arm/boot/dts/r8a73a4.dtsi+18−16

This diff is large: its 48 lines aren’t shown here.

arch/arm/boot/dts/r8a7740-armadillo800eva.dts+10−10

This diff is large: its 71 lines aren’t shown here.

arch/arm/boot/dts/r8a7740.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/r8a7778-bockw.dts+4−3

This diff is large: its 32 lines aren’t shown here.

arch/arm/boot/dts/r8a7778.dtsi+14−14

This diff is large: its 38 lines aren’t shown here.

arch/arm/boot/dts/r8a7779-marzen.dts+5−5

This diff is large: its 34 lines aren’t shown here.

arch/arm/boot/dts/r8a7790-lager.dts+15−15

This diff is large: its 129 lines aren’t shown here.

arch/arm/boot/dts/r8a7790.dtsi+139−98

This diff is large: its 571 lines aren’t shown here.

arch/arm/boot/dts/r8a7791-koelsch.dts+10−10

This diff is large: its 84 lines aren’t shown here.

arch/arm/boot/dts/r8a7791-porter.dts+6−6

This diff is large: its 54 lines aren’t shown here.

arch/arm/boot/dts/r8a7791.dtsi+132−95

This diff is large: its 552 lines aren’t shown here.

arch/arm/boot/dts/r8a7792-blanche.dts+66−0

This diff is large: its 67 lines aren’t shown here.

arch/arm/boot/dts/r8a7792.dtsi+385−0

This diff is large: its 386 lines aren’t shown here.

arch/arm/boot/dts/r8a7793-gose.dts+9−9

This diff is large: its 78 lines aren’t shown here.

arch/arm/boot/dts/r8a7793.dtsi+134−79

This diff is large: its 506 lines aren’t shown here.

arch/arm/boot/dts/r8a7794-alt.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/boot/dts/r8a7794-silk.dts+17−5

This diff is large: its 71 lines aren’t shown here.

arch/arm/boot/dts/r8a7794.dtsi+82−50

This diff is large: its 315 lines aren’t shown here.

arch/arm/boot/dts/rk3228-evb.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/rk3229-evb.dts+90−0

This diff is large: its 91 lines aren’t shown here.

arch/arm/boot/dts/rk322x.dtsirenamed from arch/arm/boot/dts/rk3228.dtsi+116−2

This diff is large: its 160 lines aren’t shown here.

arch/arm/boot/dts/rk3288-firefly.dtsi+15−16

This diff is large: its 45 lines aren’t shown here.

arch/arm/boot/dts/rk3288-miqi.dts+13−13

This diff is large: its 40 lines aren’t shown here.

arch/arm/boot/dts/rk3288-popmetal.dts+15−16

This diff is large: its 45 lines aren’t shown here.

arch/arm/boot/dts/rk3288-rock2-som.dtsi+15−16

This diff is large: its 45 lines aren’t shown here.

arch/arm/boot/dts/rk3288-veyron-analog-audio.dtsi+101−0

This diff is large: its 102 lines aren’t shown here.

arch/arm/boot/dts/rk3288-veyron-chromebook.dtsi+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/rk3288-veyron.dtsi+18−13

This diff is large: its 52 lines aren’t shown here.

arch/arm/boot/dts/rk3288.dtsi+5−0

This diff is large: its 12 lines aren’t shown here.

arch/arm/boot/dts/sama5d2.dtsi+21−16

This diff is large: its 147 lines aren’t shown here.

arch/arm/boot/dts/sama5d3.dtsi+20−24

This diff is large: its 154 lines aren’t shown here.

arch/arm/boot/dts/sama5d31ek.dts+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/sama5d33ek.dts+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/sama5d34ek.dts+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/sama5d35ek.dts+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/sama5d36ek.dts+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/sama5d3xcm.dtsi+0−34

This diff is large: its 41 lines aren’t shown here.

arch/arm/boot/dts/sama5d3xmb.dtsi+0−12

This diff is large: its 19 lines aren’t shown here.

arch/arm/boot/dts/sama5d3xmb_emac.dtsi+26−0

This diff is large: its 27 lines aren’t shown here.

arch/arm/boot/dts/sama5d3xmb_gmac.dtsi+48−0

This diff is large: its 49 lines aren’t shown here.

arch/arm/boot/dts/sama5d4.dtsi+20−20

This diff is large: its 162 lines aren’t shown here.

arch/arm/boot/dts/sh73a0-kzm9g.dts+10−9

This diff is large: its 74 lines aren’t shown here.

arch/arm/boot/dts/sh73a0.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/socfpga_arria10.dtsi+13−11

This diff is large: its 55 lines aren’t shown here.

arch/arm/boot/dts/socfpga_arria10_socdk.dtsi+6−1

This diff is large: its 16 lines aren’t shown here.

arch/arm/boot/dts/ste-dbx5x0.dtsi+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/ste-href-tvk1281618.dtsi+43−19

This diff is large: its 107 lines aren’t shown here.

arch/arm/boot/dts/ste-href.dtsi+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/ste-hrefv60plus.dtsi+120−0

This diff is large: its 127 lines aren’t shown here.

arch/arm/boot/dts/ste-snowball.dts+83−1

This diff is large: its 98 lines aren’t shown here.

arch/arm/boot/dts/stih410-clock.dtsi+9−0

This diff is large: its 44 lines aren’t shown here.

arch/arm/boot/dts/sun4i-a10-a1000.dts+3−1

This diff is large: its 19 lines aren’t shown here.

arch/arm/boot/dts/sun4i-a10-hackberry.dts+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/sun4i-a10-jesurun-q5.dts+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/boot/dts/sun4i-a10.dtsi+158−69

This diff is large: its 343 lines aren’t shown here.

arch/arm/boot/dts/sun5i-a10s-auxtek-t004.dts+19−0

This diff is large: its 39 lines aren’t shown here.

arch/arm/boot/dts/sun5i-a10s-mk802.dts+32−0

This diff is large: its 57 lines aren’t shown here.

arch/arm/boot/dts/sun5i-a10s-olinuxino-micro.dts+7−0

This diff is large: its 14 lines aren’t shown here.

arch/arm/boot/dts/sun5i-a10s-wobo-i5.dts+9−1

This diff is large: its 24 lines aren’t shown here.

arch/arm/boot/dts/sun5i-a10s.dtsi+14−0

This diff is large: its 21 lines aren’t shown here.

arch/arm/boot/dts/sun5i-a13-difrnce-dit4350.dts+1−177

This diff is large: its 187 lines aren’t shown here.

arch/arm/boot/dts/sun5i-a13-q8-tablet.dts+33−7

This diff is large: its 53 lines aren’t shown here.

arch/arm/boot/dts/sun5i-a13-utoo-p66.dts+21−159

This diff is large: its 235 lines aren’t shown here.

arch/arm/boot/dts/sun5i-a13.dtsi+122−0

This diff is large: its 144 lines aren’t shown here.

arch/arm/boot/dts/sun5i-r8.dtsi+5−115

This diff is large: its 128 lines aren’t shown here.

arch/arm/boot/dts/sun5i-reference-design-tablet.dtsirenamed from arch/arm/boot/dts/sun5i-q8-common.dtsi+33−3

This diff is large: its 85 lines aren’t shown here.

arch/arm/boot/dts/sun5i.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/sun6i-a31-m9.dts+94−2

This diff is large: its 141 lines aren’t shown here.

arch/arm/boot/dts/sun6i-a31-mele-a1000g-quad.dts+94−2

This diff is large: its 141 lines aren’t shown here.

arch/arm/boot/dts/sun7i-a20-bananapi-m1-plus.dts+229−0

This diff is large: its 230 lines aren’t shown here.

arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts+67−13

This diff is large: its 133 lines aren’t shown here.

arch/arm/boot/dts/sun7i-a20.dtsi+323−151

This diff is large: its 649 lines aren’t shown here.

arch/arm/boot/dts/sun8i-a23-inet86dz.dts+58−0

This diff is large: its 59 lines aren’t shown here.

arch/arm/boot/dts/sun8i-a23-polaroid-mid2407pxe03.dts+50−0

This diff is large: its 51 lines aren’t shown here.

arch/arm/boot/dts/sun8i-a23-polaroid-mid2809pxe04.dts+1−194

This diff is large: its 204 lines aren’t shown here.

arch/arm/boot/dts/sun8i-a23-q8-tablet.dts+0−15

This diff is large: its 19 lines aren’t shown here.

arch/arm/boot/dts/sun8i-a33-ga10h-v1.1.dts+1−76

This diff is large: its 102 lines aren’t shown here.

arch/arm/boot/dts/sun8i-a33-q8-tablet.dts+0−15

This diff is large: its 19 lines aren’t shown here.

arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts+195−0

This diff is large: its 196 lines aren’t shown here.

arch/arm/boot/dts/sun8i-h3.dtsi+14−7

This diff is large: its 35 lines aren’t shown here.

arch/arm/boot/dts/sun8i-q8-common.dtsi+6−133

This diff is large: its 147 lines aren’t shown here.

arch/arm/boot/dts/sun8i-r16-parrot.dts+351−0

This diff is large: its 352 lines aren’t shown here.

arch/arm/boot/dts/sun8i-reference-design-tablet.dtsi+216−0

This diff is large: its 217 lines aren’t shown here.

arch/arm/boot/dts/sun9i-a80-cubieboard4.dts+145−19

This diff is large: its 203 lines aren’t shown here.

arch/arm/boot/dts/sun9i-a80-optimus.dts+163−32

This diff is large: its 232 lines aren’t shown here.

arch/arm/boot/dts/sunxi-reference-design-tablet.dtsirenamed from arch/arm/boot/dts/sunxi-q8-common.dtsi+0−0

File renamed without changes.

arch/arm/boot/dts/tegra114-dalmore.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/tegra114-roth.dts+2−2

This diff is large: its 12 lines aren’t shown here.

arch/arm/boot/dts/tegra114-tn7.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/tegra124-apalis-emc.dtsi+1502−0

This diff is large: its 1503 lines aren’t shown here.

arch/arm/boot/dts/tegra124-apalis-eval.dts+284−0

This diff is large: its 285 lines aren’t shown here.

arch/arm/boot/dts/tegra124-apalis.dtsi+2100−0

This diff is large: its 2101 lines aren’t shown here.

arch/arm/boot/dts/tegra124-jetson-tk1-emc.dtsi+3−3

This diff is large: its 25 lines aren’t shown here.

arch/arm/boot/dts/tegra124-jetson-tk1.dts+42−46

This diff is large: its 279 lines aren’t shown here.

arch/arm/boot/dts/tegra124-nyan-big-emc.dtsi+3−3

This diff is large: its 25 lines aren’t shown here.

arch/arm/boot/dts/tegra124-nyan-big.dts+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/boot/dts/tegra124-nyan-blaze-emc.dtsi+3−3

This diff is large: its 25 lines aren’t shown here.

arch/arm/boot/dts/tegra124-nyan-blaze.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/tegra124-nyan.dtsi+30−30

This diff is large: its 195 lines aren’t shown here.

arch/arm/boot/dts/tegra124-venice2.dts+35−35

This diff is large: its 217 lines aren’t shown here.

arch/arm/boot/dts/tegra124.dtsi+65−60

This diff is large: its 544 lines aren’t shown here.

arch/arm/boot/dts/tegra20-colibri-512.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/tegra20-harmony.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/tegra20-paz00.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/tegra20-seaboard.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/tegra20-tamonten.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/tegra20-trimslice.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/tegra20-ventana.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/tegra20-whistler.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/tegra30-apalis.dtsi+4−3

This diff is large: its 26 lines aren’t shown here.

arch/arm/boot/dts/tegra30-beaver.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/tegra30-cardhu.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/tegra30-colibri-eval-v3.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/tegra30-colibri.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/boot/dts/tny_a9260_common.dtsi+0−9

This diff is large: its 16 lines aren’t shown here.

arch/arm/boot/dts/tny_a9263.dts+1−10

This diff is large: its 25 lines aren’t shown here.

arch/arm/boot/dts/uniphier-common32.dtsi+9−3

This diff is large: its 26 lines aren’t shown here.

arch/arm/boot/dts/uniphier-ph1-ld4.dtsi+1−1

This diff is large: its 7 lines aren’t shown here.

arch/arm/boot/dts/uniphier-ph1-ld6b.dtsi+1−1

This diff is large: its 7 lines aren’t shown here.

arch/arm/boot/dts/uniphier-ph1-pro4.dtsi+1−1

This diff is large: its 7 lines aren’t shown here.

arch/arm/boot/dts/uniphier-ph1-pro5.dtsi+1−1

This diff is large: its 7 lines aren’t shown here.

arch/arm/boot/dts/uniphier-ph1-sld8.dtsi+1−1

This diff is large: its 7 lines aren’t shown here.

arch/arm/boot/dts/uniphier-pinctrl.dtsi+5−0

This diff is large: its 12 lines aren’t shown here.

arch/arm/boot/dts/uniphier-proxstream2-gentil.dts+4−4

This diff is large: its 18 lines aren’t shown here.

arch/arm/boot/dts/uniphier-proxstream2-vodka.dts+4−4

This diff is large: its 18 lines aren’t shown here.

arch/arm/boot/dts/uniphier-proxstream2.dtsi+1−1

This diff is large: its 7 lines aren’t shown here.

arch/arm/boot/dts/usb_a9260_common.dtsi+2−11

This diff is large: its 34 lines aren’t shown here.

arch/arm/boot/dts/usb_a9263.dts+1−10

This diff is large: its 25 lines aren’t shown here.

arch/arm/boot/dts/usb_a9g20_common.dtsi+3−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/common/dmabounce.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/configs/bcm_defconfig+0−141

This diff is large: its 142 lines aren’t shown here.

arch/arm/configs/exynos_defconfig+17−12

This diff is large: its 102 lines aren’t shown here.

arch/arm/configs/imx_v6_v7_defconfig+3−1

This diff is large: its 25 lines aren’t shown here.

arch/arm/configs/keystone_defconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/configs/lpc18xx_defconfig+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/configs/multi_v4t_defconfig+106−0

This diff is large: its 107 lines aren’t shown here.

arch/arm/configs/multi_v5_defconfig+53−1

This diff is large: its 156 lines aren’t shown here.

arch/arm/configs/multi_v7_defconfig+47−5

This diff is large: its 246 lines aren’t shown here.

arch/arm/configs/omap2plus_defconfig+4−1

This diff is large: its 24 lines aren’t shown here.

arch/arm/configs/qcom_defconfig+8−0

This diff is large: its 51 lines aren’t shown here.

arch/arm/configs/sama5_defconfig+3−0

This diff is large: its 20 lines aren’t shown here.

arch/arm/configs/shmobile_defconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/configs/socfpga_defconfig+15−1

This diff is large: its 59 lines aren’t shown here.

arch/arm/configs/sunxi_defconfig+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/include/asm/dma-mapping.h+6−7

This diff is large: its 55 lines aren’t shown here.

arch/arm/include/asm/kexec.h+24−0

This diff is large: its 31 lines aren’t shown here.

arch/arm/include/asm/kvm_asm.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/include/asm/kvm_host.h+9−18

This diff is large: its 54 lines aren’t shown here.

arch/arm/include/asm/kvm_hyp.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/arm/include/asm/kvm_mmu.h+2−13

This diff is large: its 37 lines aren’t shown here.

arch/arm/include/asm/mach/pci.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/include/asm/pgtable.h+3−1

This diff is large: its 11 lines aren’t shown here.

arch/arm/include/asm/uaccess.h+9−2

This diff is large: its 29 lines aren’t shown here.

arch/arm/include/asm/virt.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/arm/include/asm/xen/page-coherent.h+6−10

This diff is large: its 54 lines aren’t shown here.

arch/arm/include/debug/at91.S+1−9

This diff is large: its 24 lines aren’t shown here.

arch/arm/include/debug/clps711x.S+2−2

This diff is large: its 13 lines aren’t shown here.

arch/arm/include/debug/exynos.S+5−1

This diff is large: its 13 lines aren’t shown here.

arch/arm/include/debug/samsung.S+8−0

This diff is large: its 62 lines aren’t shown here.

arch/arm/kernel/bios32.c+20−25

This diff is large: its 88 lines aren’t shown here.

arch/arm/kernel/machine_kexec.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/kernel/setup.c+37−2

This diff is large: its 58 lines aren’t shown here.

arch/arm/kernel/vmlinux.lds.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/kvm/Kconfig+2−7

This diff is large: its 23 lines aren’t shown here.

arch/arm/kvm/Makefile+1−6

This diff is large: its 19 lines aren’t shown here.

arch/arm/kvm/arm.c+18−28

This diff is large: its 160 lines aren’t shown here.

arch/arm/kvm/emulate.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/kvm/guest.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/kvm/init.S+20−36

This diff is large: its 88 lines aren’t shown here.

arch/arm/kvm/irq.h+19−0

This diff is large: its 20 lines aren’t shown here.

arch/arm/kvm/mmu.c+63−79

This diff is large: its 233 lines aren’t shown here.

arch/arm/kvm/reset.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-at91/Kconfig+1−1

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-at91/pm.c+3−2

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-bcm/Kconfig+13−6

This diff is large: its 63 lines aren’t shown here.

arch/arm/mach-bcm/Makefile+4−1

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-bcm/board_bcm21664.c+0−43

This diff is large: its 60 lines aren’t shown here.

arch/arm/mach-bcm/board_bcm23550.c+25−0

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-bcm/kona_l2_cache.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-bcm/platsmp.c+95−79

This diff is large: its 253 lines aren’t shown here.

arch/arm/mach-berlin/Kconfig+1−1

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-clps711x/Kconfig+15−38

This diff is large: its 54 lines aren’t shown here.

arch/arm/mach-clps711x/Makefile+1−13

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-clps711x/Makefile.boot+0−5

This diff is large: its 6 lines aren’t shown here.

arch/arm/mach-clps711x/board-dt.c+82−0

This diff is large: its 83 lines aren’t shown here.

arch/arm/mach-clps711x/common.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-clps711x/include/mach/clps711x.h+0−204

This diff is large: its 205 lines aren’t shown here.

arch/arm/mach-clps711x/include/mach/hardware.h+0−53

This diff is large: its 54 lines aren’t shown here.

arch/arm/mach-clps711x/include/mach/uncompress.h+0−55

This diff is large: its 56 lines aren’t shown here.

arch/arm/mach-davinci/board-dm355-evm.c+1−3

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-davinci/board-dm365-evm.c+2−6

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-davinci/board-dm644x-evm.c+1−3

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-davinci/board-neuros-osd2.c+1−3

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-davinci/da850.c+16−0

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-davinci/davinci.h+4−4

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-davinci/dm355.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-davinci/dm365.c+2−4

This diff is large: its 26 lines aren’t shown here.

arch/arm/mach-davinci/dm644x.c+1−2

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-davinci/psc.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-digicolor/Kconfig+1−1

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-ep93xx/ts72xx.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-exynos/Kconfig+2−1

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-exynos/Makefile+0−3

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-exynos/common.h+2−3

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-exynos/exynos.c+1−19

This diff is large: its 42 lines aren’t shown here.

arch/arm/mach-exynos/firmware.c+9−9

This diff is large: its 56 lines aren’t shown here.

arch/arm/mach-exynos/headsmp.S+3−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-exynos/mfc.h+0−16

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-exynos/platsmp.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-exynos/pm.c+3−3

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-exynos/s5p-dev-mfc.c+0−93

This diff is large: its 94 lines aren’t shown here.

arch/arm/mach-exynos/suspend.c+6−6

This diff is large: its 35 lines aren’t shown here.

arch/arm/mach-hisi/hisilicon.c+0−28

This diff is large: its 32 lines aren’t shown here.

arch/arm/mach-hisi/platsmp.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-imx/Kconfig+1−5

This diff is large: its 30 lines aren’t shown here.

arch/arm/mach-imx/Makefile+2−2

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-imx/avic.c+8−11

This diff is large: its 32 lines aren’t shown here.

arch/arm/mach-imx/common.h+2−1

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-imx/cpu-imx5.c+0−8

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-imx/cpu.c+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-imx/cpuidle-imx6q.c+20−0

This diff is large: its 34 lines aren’t shown here.

arch/arm/mach-imx/devices/Kconfig+0−4

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-imx/devices/devices.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-imx/devices/platform-gpio-mxc.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-imx/devices/platform-mxc_rnga.c+0−53

This diff is large: its 54 lines aren’t shown here.

arch/arm/mach-imx/eukrea-baseboards.h+0−42

This diff is large: its 43 lines aren’t shown here.

arch/arm/mach-imx/imx27-dt.c+1−0

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-imx/imx31-dt.c+12−0

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-imx/imx35-dt.c+3−7

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-imx/irq-common.c+4−2

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-imx/mach-imx50.c+0−1

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-imx/mach-imx51.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-imx/mach-imx53.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-imx/mach-imx6q.c+3−1

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-imx/mach-imx6sl.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-imx/mach-imx6sx.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-imx/mach-imx7d.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-imx/mm-imx1.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-imx/mm-imx27.c+2−0

This diff is large: its 7 lines aren’t shown here.

arch/arm/mach-imx/mm-imx3.c+28−4

This diff is large: its 82 lines aren’t shown here.

arch/arm/mach-imx/mxc.h+0−101

This diff is large: its 116 lines aren’t shown here.

arch/arm/mach-imx/pm-imx27.c+1−7

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-imx/pm-imx3.c+0−38

This diff is large: its 39 lines aren’t shown here.

arch/arm/mach-imx/system.c+25−33

This diff is large: its 97 lines aren’t shown here.

arch/arm/mach-imx/tzic.c+8−8

This diff is large: its 58 lines aren’t shown here.

arch/arm/mach-integrator/Kconfig+2−2

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-integrator/impd1.c+2−2

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-keystone/Kconfig+1−1

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-keystone/pm_domain.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-meson/Kconfig+4−1

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-mmp/Kconfig+1−1

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-moxart/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-mv78xx0/Kconfig+1−1

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-mv78xx0/common.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-mvebu/Kconfig+2−2

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-mvebu/coherency.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-mvebu/cpu-reset.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-mvebu/kirkwood-pm.c+2−2

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-mvebu/kirkwood.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-mvebu/pm.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-mvebu/pmsu.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-mvebu/system-controller.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-mxs/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-nomadik/Kconfig+1−1

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-omap1/ams-delta-fiq.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap1/include/mach/mtd-xip.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap2/Kconfig+1−1

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-omap2/Makefile+6−3

This diff is large: its 36 lines aren’t shown here.

arch/arm/mach-omap2/board-ldp.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-omap2/board-rx51-peripherals.c+0−5

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-omap2/board-rx51-video.c+2−2

This diff is large: its 24 lines aren’t shown here.

arch/arm/mach-omap2/clockdomain.c+24−12

This diff is large: its 59 lines aren’t shown here.

arch/arm/mach-omap2/clockdomain.h+2−0

This diff is large: its 16 lines aren’t shown here.

arch/arm/mach-omap2/cm33xx.c+3−0

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-omap2/cm3xxx.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap2/common.h+6−2

This diff is large: its 25 lines aren’t shown here.

arch/arm/mach-omap2/cpuidle44xx.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap2/display.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap2/display.h+5−0

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-omap2/dss-common.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap2/io.c+3−0

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-omap2/mcbsp.c+17−14

This diff is large: its 54 lines aren’t shown here.

arch/arm/mach-omap2/mux34xx.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-omap2/omap-headsmp.S+14−4

This diff is large: its 51 lines aren’t shown here.

arch/arm/mach-omap2/omap-hotplug.c+6−0

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-omap2/omap-mpuss-lowpower.c+26−5

This diff is large: its 56 lines aren’t shown here.

arch/arm/mach-omap2/omap-smp.c+71−27

This diff is large: its 159 lines aren’t shown here.

arch/arm/mach-omap2/omap4-common.c+7−9

This diff is large: its 43 lines aren’t shown here.

arch/arm/mach-omap2/omap_device.c+18−3

This diff is large: its 42 lines aren’t shown here.

arch/arm/mach-omap2/omap_hwmod.c+62−20

This diff is large: its 188 lines aren’t shown here.

arch/arm/mach-omap2/omap_hwmod_33xx_43xx_common_data.h+0−18

This diff is large: its 36 lines aren’t shown here.

arch/arm/mach-omap2/omap_hwmod_33xx_43xx_interconnect_data.c+0−64

This diff is large: its 85 lines aren’t shown here.

arch/arm/mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c+1−84

This diff is large: its 120 lines aren’t shown here.

arch/arm/mach-omap2/omap_hwmod_33xx_data.c+0−9

This diff is large: its 18 lines aren’t shown here.

arch/arm/mach-omap2/omap_hwmod_3xxx_data.c+4−20

This diff is large: its 38 lines aren’t shown here.

arch/arm/mach-omap2/omap_hwmod_43xx_data.c+0−54

This diff is large: its 114 lines aren’t shown here.

arch/arm/mach-omap2/omap_hwmod_7xx_data.c+0−41

This diff is large: its 81 lines aren’t shown here.

arch/arm/mach-omap2/omap_hwmod_81xx_data.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap2/pdata-quirks.c+19−9

This diff is large: its 82 lines aren’t shown here.

arch/arm/mach-omap2/pm.c+1−7

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-omap2/powerdomain.c+6−14

This diff is large: its 78 lines aren’t shown here.

arch/arm/mach-omap2/prcm43xx.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-omap2/prm33xx.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-omap2/sdrc.h+2−2

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-omap2/timer.c+2−1

This diff is large: its 17 lines aren’t shown here.

arch/arm/mach-orion5x/Kconfig+1−1

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-orion5x/irq.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-orion5x/ts78xx-setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-oxnas/Kconfig+2−2

This diff is large: its 21 lines aren’t shown here.

arch/arm/mach-picoxcell/Kconfig+1−1

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-prima2/Kconfig+1−1

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-pxa/cm-x270.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-pxa/cm-x300.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-pxa/em-x270.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-qcom/Kconfig+4−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-qcom/board.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-rockchip/Kconfig+1−1

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-s3c24xx/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s3c24xx/include/mach/regs-gpio.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s3c24xx/iotiming-s3c2410.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s3c24xx/mach-n30.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s3c24xx/mach-osiris-dvs.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s3c24xx/pll-s3c2410.c+2−1

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-s3c24xx/pll-s3c2440-12000000.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-s3c24xx/pll-s3c2440-16934400.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-s3c64xx/Kconfig+1−1

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-s3c64xx/common.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-s3c64xx/include/mach/map.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-s3c64xx/mach-smartq.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-s5pv210/Kconfig+1−1

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-shmobile/Kconfig+5−1

This diff is large: its 20 lines aren’t shown here.

arch/arm/mach-shmobile/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-shmobile/common.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-shmobile/platsmp-apmu.c+89−5

This diff is large: its 130 lines aren’t shown here.

arch/arm/mach-shmobile/platsmp.c+6−0

This diff is large: its 10 lines aren’t shown here.

arch/arm/mach-shmobile/pm-r8a7779.c+1−5

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-shmobile/pm-rcar-gen2.c+5−14

This diff is large: its 49 lines aren’t shown here.

arch/arm/mach-shmobile/pm-rmobile.c+1−1

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-shmobile/setup-r8a7790.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-shmobile/setup-r8a7791.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-shmobile/setup-r8a7792.c+35−0

This diff is large: its 36 lines aren’t shown here.

arch/arm/mach-shmobile/setup-rcar-gen2.c+24−21

This diff is large: its 69 lines aren’t shown here.

arch/arm/mach-spear/Kconfig+1−1

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-sti/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-sti/board-dt.c+10−1

This diff is large: its 23 lines aren’t shown here.

arch/arm/mach-sunxi/Kconfig+1−1

This diff is large: its 12 lines aren’t shown here.

arch/arm/mach-tango/Makefile+1−0

This diff is large: its 5 lines aren’t shown here.

arch/arm/mach-tango/platsmp.c+35−0

This diff is large: its 48 lines aren’t shown here.

arch/arm/mach-tango/pm.c+32−0

This diff is large: its 33 lines aren’t shown here.

arch/arm/mach-tango/smc.h+4−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-tegra/Kconfig+1−1

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-tegra/common.h+22−0

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-tegra/cpuidle-tegra114.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-tegra/cpuidle-tegra20.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-tegra/cpuidle-tegra30.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-tegra/cpuidle.h+2−0

This diff is large: its 11 lines aren’t shown here.

arch/arm/mach-tegra/hotplug.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-tegra/irq.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-tegra/pm.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-tegra/tegra.c+3−21

This diff is large: its 36 lines aren’t shown here.

arch/arm/mach-u300/Kconfig+1−1

This diff is large: its 13 lines aren’t shown here.

arch/arm/mach-uniphier/Makefile+0−1

This diff is large: its 3 lines aren’t shown here.

arch/arm/mach-uniphier/platsmp.c+5−13

This diff is large: its 27 lines aren’t shown here.

arch/arm/mach-uniphier/uniphier.c+0−30

This diff is large: its 31 lines aren’t shown here.

arch/arm/mach-ux500/Kconfig+1−1

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-ux500/Makefile+2−4

This diff is large: its 14 lines aren’t shown here.

arch/arm/mach-ux500/board-mop500-regulators.c+0−1065

This diff is large: its 1066 lines aren’t shown here.

arch/arm/mach-ux500/board-mop500-regulators.h+0−24

This diff is large: its 25 lines aren’t shown here.

arch/arm/mach-ux500/cache-l2x0.c+0−67

This diff is large: its 68 lines aren’t shown here.

arch/arm/mach-ux500/cpu-db8500.c+88−51

This diff is large: its 207 lines aren’t shown here.

arch/arm/mach-ux500/cpu.c+0−148

This diff is large: its 149 lines aren’t shown here.

arch/arm/mach-ux500/id.c+0−116

This diff is large: its 117 lines aren’t shown here.

arch/arm/mach-ux500/id.h+0−144

This diff is large: its 145 lines aren’t shown here.

arch/arm/mach-ux500/platsmp.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mach-ux500/setup.h+0−12

This diff is large: its 19 lines aren’t shown here.

arch/arm/mach-vexpress/Kconfig+1−1

This diff is large: its 15 lines aren’t shown here.

arch/arm/mach-vexpress/hotplug.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/mach-vexpress/spc.c+3−3

This diff is large: its 28 lines aren’t shown here.

arch/arm/mach-vt8500/Kconfig+1−1

This diff is large: its 8 lines aren’t shown here.

arch/arm/mm/dma-mapping.c+63−66

This diff is large: its 483 lines aren’t shown here.

arch/arm/plat-iop/setup.c+2−2

This diff is large: its 15 lines aren’t shown here.

arch/arm/plat-samsung/cpu.c+5−5

This diff is large: its 30 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/cpu-freq-core.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/cpu.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/fb-s3c2410.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-samsung/include/plat/gpio-cfg.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-samsung/pm-check.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-samsung/pm-common.c+4−4

This diff is large: its 28 lines aren’t shown here.

arch/arm/plat-samsung/watchdog-reset.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm/plat-versatile/platsmp.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/arm/xen/mm.c+4−4

This diff is large: its 29 lines aren’t shown here.

arch/arm64/Kconfig+6−2

This diff is large: its 44 lines aren’t shown here.

arch/arm64/Kconfig.platforms+28−0

This diff is large: its 77 lines aren’t shown here.

arch/arm64/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts+20−0

This diff is large: its 36 lines aren’t shown here.

arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi+9−0

This diff is large: its 14 lines aren’t shown here.

arch/arm64/boot/dts/amlogic/meson-gxbb-vega-s95.dtsi+3−0

This diff is large: its 8 lines aren’t shown here.

arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi+169−1

This diff is large: its 210 lines aren’t shown here.

arch/arm64/boot/dts/apm/apm-shadowcat.dtsi+34−34

This diff is large: its 160 lines aren’t shown here.

arch/arm64/boot/dts/apm/apm-storm.dtsi+17−27

This diff is large: its 96 lines aren’t shown here.

arch/arm64/boot/dts/arm/juno-base.dtsi+357−0

This diff is large: its 377 lines aren’t shown here.

arch/arm64/boot/dts/arm/juno-r1.dts+40−0

This diff is large: its 44 lines aren’t shown here.

arch/arm64/boot/dts/arm/juno-r2.dts+40−0

This diff is large: its 44 lines aren’t shown here.

arch/arm64/boot/dts/arm/juno.dts+24−0

This diff is large: its 28 lines aren’t shown here.

arch/arm64/boot/dts/broadcom/Makefile+1−0

This diff is large: its 5 lines aren’t shown here.

arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts+30−0

This diff is large: its 31 lines aren’t shown here.

arch/arm64/boot/dts/broadcom/bcm2837.dtsi+76−0

This diff is large: its 77 lines aren’t shown here.

arch/arm64/boot/dts/broadcom/ns2-svk.dts+37−0

This diff is large: its 66 lines aren’t shown here.

arch/arm64/boot/dts/broadcom/ns2.dtsi+119−0

This diff is large: its 154 lines aren’t shown here.

arch/arm64/boot/dts/exynos/exynos7-espresso.dts+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi+19−5

This diff is large: its 99 lines aren’t shown here.

arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi+35−9

This diff is large: its 115 lines aren’t shown here.

arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts+143−0

This diff is large: its 150 lines aren’t shown here.

arch/arm64/boot/dts/hisilicon/hi6220.dtsi+18−0

This diff is large: its 39 lines aren’t shown here.

arch/arm64/boot/dts/lg/Makefile+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm64/boot/dts/lg/lg1313-ref.dts+36−0

This diff is large: its 37 lines aren’t shown here.

arch/arm64/boot/dts/lg/lg1313.dtsi+351−0

This diff is large: its 352 lines aren’t shown here.

arch/arm64/boot/dts/marvell/armada-3720-db.dts+5−0

This diff is large: its 9 lines aren’t shown here.

arch/arm64/boot/dts/marvell/armada-37xx.dtsi+60−0

This diff is large: its 73 lines aren’t shown here.

arch/arm64/boot/dts/marvell/armada-ap806.dtsi+4−4

This diff is large: its 36 lines aren’t shown here.

arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi+18−0

This diff is large: its 25 lines aren’t shown here.

arch/arm64/boot/dts/mediatek/Makefile+1−0

This diff is large: its 5 lines aren’t shown here.

arch/arm64/boot/dts/mediatek/mt6755-evb.dts+38−0

This diff is large: its 39 lines aren’t shown here.

arch/arm64/boot/dts/mediatek/mt6755.dtsi+145−0

This diff is large: its 146 lines aren’t shown here.

arch/arm64/boot/dts/mediatek/mt8173.dtsi+223−0

This diff is large: its 261 lines aren’t shown here.

arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi+249−0

This diff is large: its 271 lines aren’t shown here.

arch/arm64/boot/dts/nvidia/tegra210-p2371-2180.dts+45−0

This diff is large: its 50 lines aren’t shown here.

arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi+319−0

This diff is large: its 340 lines aren’t shown here.

arch/arm64/boot/dts/nvidia/tegra210-smaug.dts+314−0

This diff is large: its 333 lines aren’t shown here.

arch/arm64/boot/dts/nvidia/tegra210.dtsi+291−1

This diff is large: its 360 lines aren’t shown here.

arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi+16−0

This diff is large: its 30 lines aren’t shown here.

arch/arm64/boot/dts/qcom/msm8916.dtsi+75−3

This diff is large: its 130 lines aren’t shown here.

arch/arm64/boot/dts/qcom/msm8996-pins.dtsi+303−0

This diff is large: its 304 lines aren’t shown here.

arch/arm64/boot/dts/qcom/msm8996.dtsi+102−1

This diff is large: its 121 lines aren’t shown here.

arch/arm64/boot/dts/renesas/Makefile+1−0

This diff is large: its 6 lines aren’t shown here.

arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts+10−4

This diff is large: its 56 lines aren’t shown here.

arch/arm64/boot/dts/renesas/r8a7795.dtsi+87−37

This diff is large: its 315 lines aren’t shown here.

arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts+50−0

This diff is large: its 51 lines aren’t shown here.

arch/arm64/boot/dts/renesas/r8a7796.dtsi+138−0

This diff is large: its 139 lines aren’t shown here.

arch/arm64/boot/dts/rockchip/rk3368-r88.dts+16−0

This diff is large: its 30 lines aren’t shown here.

arch/arm64/boot/dts/rockchip/rk3368.dtsi+13−3

This diff is large: its 39 lines aren’t shown here.

arch/arm64/boot/dts/rockchip/rk3399-evb.dts+12−0

This diff is large: its 26 lines aren’t shown here.

arch/arm64/boot/dts/rockchip/rk3399.dtsi+311−2

This diff is large: its 382 lines aren’t shown here.

arch/arm64/boot/dts/socionext/uniphier-ph1-ld20.dtsi+13−7

This diff is large: its 62 lines aren’t shown here.

arch/arm64/configs/defconfig+48−1

This diff is large: its 200 lines aren’t shown here.

arch/arm64/include/asm/cpufeature.h+2−1

This diff is large: its 11 lines aren’t shown here.

arch/arm64/include/asm/dma-mapping.h+15−2

This diff is large: its 34 lines aren’t shown here.

arch/arm64/include/asm/elf.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm64/include/asm/kvm_arm.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/include/asm/kvm_host.h+6−13

This diff is large: its 44 lines aren’t shown here.

arch/arm64/include/asm/kvm_hyp.h+0−23

This diff is large: its 30 lines aren’t shown here.

arch/arm64/include/asm/kvm_mmu.h+78−18

This diff is large: its 140 lines aren’t shown here.

arch/arm64/include/asm/pgtable-hwdef.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/arm64/include/asm/pgtable-prot.h+3−1

This diff is large: its 11 lines aren’t shown here.

arch/arm64/include/asm/pgtable.h+17−0

This diff is large: its 24 lines aren’t shown here.

arch/arm64/include/asm/uaccess.h+10−5

This diff is large: its 42 lines aren’t shown here.

arch/arm64/include/asm/virt.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/arm64/include/uapi/asm/auxvec.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/arm64/include/uapi/asm/kvm.h+2−0

This diff is large: its 12 lines aren’t shown here.

arch/arm64/kernel/cpufeature.c+19−0

This diff is large: its 33 lines aren’t shown here.

arch/arm64/kernel/head.S+3−18

This diff is large: its 44 lines aren’t shown here.

arch/arm64/kernel/pci.c+138−21

This diff is large: its 196 lines aren’t shown here.

arch/arm64/kernel/vmlinux.lds.S+2−11

This diff is large: its 29 lines aren’t shown here.

arch/arm64/kvm/Kconfig+3−7

This diff is large: its 24 lines aren’t shown here.

arch/arm64/kvm/Makefile+2−8

This diff is large: its 23 lines aren’t shown here.

arch/arm64/kvm/guest.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/arm64/kvm/hyp-init.S+8−53

This diff is large: its 91 lines aren’t shown here.

arch/arm64/kvm/hyp/entry.S+0−19

This diff is large: its 23 lines aren’t shown here.

arch/arm64/kvm/hyp/hyp-entry.S+15−0

This diff is large: its 22 lines aren’t shown here.

arch/arm64/kvm/hyp/switch.c+9−2

This diff is large: its 19 lines aren’t shown here.

arch/arm64/kvm/inject_fault.c+5−7

This diff is large: its 34 lines aren’t shown here.

arch/arm64/kvm/irq.h+19−0

This diff is large: its 20 lines aren’t shown here.

arch/arm64/kvm/reset.c+8−30

This diff is large: its 63 lines aren’t shown here.

arch/arm64/kvm/sys_regs.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/arm64/mm/dma-mapping.c+33−33

This diff is large: its 269 lines aren’t shown here.

arch/arm64/mm/mmu.c+4−4

This diff is large: its 22 lines aren’t shown here.

arch/avr32/mm/dma-coherent.c+6−6

This diff is large: its 50 lines aren’t shown here.

arch/blackfin/kernel/dma-mapping.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/blackfin/mm/init.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/c6x/include/asm/dma-mapping.h+2−2

This diff is large: its 11 lines aren’t shown here.

arch/c6x/kernel/dma.c+4−5

This diff is large: its 35 lines aren’t shown here.

arch/c6x/mm/dma-coherent.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/cris/arch-v10/drivers/axisflashmap.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/cris/arch-v32/drivers/axisflashmap.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/cris/arch-v32/drivers/pci/dma.c+4−5

This diff is large: its 35 lines aren’t shown here.

arch/frv/include/asm/mc146818rtc.h+0−16

This diff is large: its 17 lines aren’t shown here.

arch/frv/mb93090-mb00/pci-dma-nommu.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/frv/mb93090-mb00/pci-dma.c+4−5

This diff is large: its 36 lines aren’t shown here.

arch/h8300/include/asm/mc146818rtc.h+0−9

This diff is large: its 10 lines aren’t shown here.

arch/h8300/kernel/dma.c+4−4

This diff is large: its 35 lines aren’t shown here.

arch/hexagon/include/asm/dma-mapping.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/hexagon/kernel/dma.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/hexagon/mm/init.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/ia64/hp/common/sba_iommu.c+11−11

This diff is large: its 93 lines aren’t shown here.

arch/ia64/include/asm/machvec.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/ia64/include/asm/mc146818rtc.h+0−10

This diff is large: its 11 lines aren’t shown here.

arch/ia64/include/asm/thread_info.h+0−28

This diff is large: its 33 lines aren’t shown here.

arch/ia64/include/asm/uaccess.h+15−3

This diff is large: its 46 lines aren’t shown here.

arch/ia64/kernel/efi.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/ia64/kernel/machine_kexec.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/kernel/mca.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/kernel/pci-swiotlb.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/ia64/kernel/salinfo.c+10−28

This diff is large: its 98 lines aren’t shown here.

arch/ia64/kernel/time.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/ia64/sn/pci/pci_dma.c+8−14

This diff is large: its 87 lines aren’t shown here.

arch/m68k/amiga/config.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/apollo/config.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/bvme6000/config.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/hp300/config.c+1−1

This diff is large: its 16 lines aren’t shown here.

arch/m68k/include/asm/flat.h+10−3

This diff is large: its 30 lines aren’t shown here.

arch/m68k/include/asm/processor.h+1−14

This diff is large: its 36 lines aren’t shown here.

arch/m68k/include/asm/rtc.h+0−79

This diff is large: its 80 lines aren’t shown here.

arch/m68k/kernel/dma.c+6−6

This diff is large: its 54 lines aren’t shown here.

arch/m68k/kernel/time.c+46−2

This diff is large: its 62 lines aren’t shown here.

arch/m68k/mac/config.c+2−1

This diff is large: its 24 lines aren’t shown here.

arch/m68k/mac/misc.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/mvme147/config.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/mvme16x/config.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/q40/config.c+1−1

This diff is large: its 16 lines aren’t shown here.

arch/m68k/sun3/config.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/m68k/sun3/intersil.c+1−1

This diff is large: its 10 lines aren’t shown here.

arch/m68k/sun3x/time.c+1−1

This diff is large: its 12 lines aren’t shown here.

arch/metag/include/asm/cmpxchg_lnkget.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/metag/include/asm/metag_mem.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/metag/include/asm/metag_regs.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/metag/kernel/cachepart.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/metag/kernel/dma.c+8−8

This diff is large: its 69 lines aren’t shown here.

arch/metag/lib/divsi3.S+2−2

This diff is large: its 18 lines aren’t shown here.

arch/metag/mm/fault.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/microblaze/include/asm/dma-mapping.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/microblaze/include/asm/pci.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/microblaze/include/asm/thread_info.h+0−27

This diff is large: its 34 lines aren’t shown here.

arch/microblaze/kernel/dma.c+6−6

This diff is large: its 54 lines aren’t shown here.

arch/microblaze/mm/init.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/microblaze/mm/pgtable.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/microblaze/pci/pci-common.c+15−58

This diff is large: its 99 lines aren’t shown here.

arch/mips/Kconfig+16−33

This diff is large: its 121 lines aren’t shown here.

arch/mips/ath79/setup.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/mips/bmips/setup.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/mips/boot/compressed/decompress.c+17−0

This diff is large: its 38 lines aren’t shown here.

arch/mips/boot/compressed/head.S+0−16

This diff is large: its 23 lines aren’t shown here.

arch/mips/boot/dts/cavium-octeon/dlink_dsr-1000n.dts+18−2

This diff is large: its 38 lines aren’t shown here.

arch/mips/boot/dts/cavium-octeon/octeon_3xxx.dts+0−12

This diff is large: its 17 lines aren’t shown here.

arch/mips/boot/tools/relocs_64.c+11−8

This diff is large: its 29 lines aren’t shown here.

arch/mips/cavium-octeon/dma-octeon.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-bootmem.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/cavium-octeon/executive/cvmx-helper-board.c+0−22

This diff is large: its 43 lines aren’t shown here.

arch/mips/cavium-octeon/octeon-irq.c+1−13

This diff is large: its 42 lines aren’t shown here.

arch/mips/cavium-octeon/octeon-platform.c+69−56

This diff is large: its 211 lines aren’t shown here.

arch/mips/cavium-octeon/setup.c+19−1

This diff is large: its 29 lines aren’t shown here.

arch/mips/cavium-octeon/smp.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/cobalt/setup.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/mips/configs/ath25_defconfig+119−0

This diff is large: its 120 lines aren’t shown here.

arch/mips/configs/cavium_octeon_defconfig+2−0

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/addrspace.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/bootinfo.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/mips/include/asm/dsemul.h+92−0

This diff is large: its 93 lines aren’t shown here.

arch/mips/include/asm/elf.h+4−0

This diff is large: its 16 lines aren’t shown here.

arch/mips/include/asm/fpu_emulator.h+3−14

This diff is large: its 39 lines aren’t shown here.

arch/mips/include/asm/kvm_host.h+125−190

This diff is large: its 585 lines aren’t shown here.

arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/mach-cavium-octeon/irq.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/mach-cavium-octeon/mangle-port.h+13−29

This diff is large: its 68 lines aren’t shown here.

arch/mips/include/asm/mips-cm.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/mipsregs.h+20−1

This diff is large: its 42 lines aren’t shown here.

arch/mips/include/asm/mmu.h+9−0

This diff is large: its 21 lines aren’t shown here.

arch/mips/include/asm/mmu_context.h+6−0

This diff is large: its 27 lines aren’t shown here.

arch/mips/include/asm/msa.h+2−0

This diff is large: its 16 lines aren’t shown here.

arch/mips/include/asm/page.h+32−12

This diff is large: its 58 lines aren’t shown here.

arch/mips/include/asm/pci.h+0−10

This diff is large: its 17 lines aren’t shown here.

arch/mips/include/asm/pgtable.h+8−8

This diff is large: its 72 lines aren’t shown here.

arch/mips/include/asm/processor.h+17−1

This diff is large: its 52 lines aren’t shown here.

arch/mips/include/asm/r4kcache.h+4−0

This diff is large: its 12 lines aren’t shown here.

arch/mips/include/asm/seccomp.h+2−2

This diff is large: its 13 lines aren’t shown here.

arch/mips/include/asm/setup.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/include/asm/signal.h+3−3

This diff is large: its 20 lines aren’t shown here.

arch/mips/include/asm/smp.h+3−1

This diff is large: its 18 lines aren’t shown here.

arch/mips/include/asm/syscall.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/uaccess.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/include/asm/uasm.h+7−0

This diff is large: its 23 lines aren’t shown here.

arch/mips/include/uapi/asm/auxvec.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/mips/include/uapi/asm/inst.h+108−6

This diff is large: its 188 lines aren’t shown here.

arch/mips/jz4740/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/asm-offsets.c+0−70

This diff is large: its 87 lines aren’t shown here.

arch/mips/kernel/branch.c+4−4

This diff is large: its 29 lines aren’t shown here.

arch/mips/kernel/cevt-r4k.c+1−6

This diff is large: its 22 lines aren’t shown here.

arch/mips/kernel/cpu-bugs64.c+3−3

This diff is large: its 26 lines aren’t shown here.

arch/mips/kernel/csrc-r4k.c+3−1

This diff is large: its 19 lines aren’t shown here.

arch/mips/kernel/elf.c+21−2

This diff is large: its 51 lines aren’t shown here.

arch/mips/kernel/head.S+14−7

This diff is large: its 43 lines aren’t shown here.

arch/mips/kernel/mips-cm.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/mips-r2-to-r6-emul.c+21−21

This diff is large: its 189 lines aren’t shown here.

arch/mips/kernel/pm-cps.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/mips/kernel/process.c+14−0

This diff is large: its 40 lines aren’t shown here.

arch/mips/kernel/scall64-n32.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/scall64-o32.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kernel/segment.c+8−5

This diff is large: its 26 lines aren’t shown here.

arch/mips/kernel/setup.c+4−0

This diff is large: its 11 lines aren’t shown here.

arch/mips/kernel/signal.c+13−5

This diff is large: its 60 lines aren’t shown here.

arch/mips/kernel/signal32.c+6−282

This diff is large: its 313 lines aren’t shown here.

arch/mips/kernel/signal_o32.c+285−0

This diff is large: its 286 lines aren’t shown here.

arch/mips/kernel/smp-bmips.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/kernel/smp-cps.c+35−11

This diff is large: its 127 lines aren’t shown here.

arch/mips/kernel/smp.c+21−13

This diff is large: its 82 lines aren’t shown here.

arch/mips/kernel/traps.c+18−9

This diff is large: its 83 lines aren’t shown here.

arch/mips/kernel/unaligned.c+5−5

This diff is large: its 45 lines aren’t shown here.

arch/mips/kernel/vdso.c+10−0

This diff is large: its 17 lines aren’t shown here.

arch/mips/kvm/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/kvm/Makefile+2−1

This diff is large: its 12 lines aren’t shown here.

arch/mips/kvm/commpage.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/kvm/dyntrans.c+86−96

This diff is large: its 219 lines aren’t shown here.

arch/mips/kvm/emulate.c+259−226

This diff is large: its 1190 lines aren’t shown here.

arch/mips/kvm/entry.c+701−0

This diff is large: its 702 lines aren’t shown here.

arch/mips/kvm/fpu.S+5−2

This diff is large: its 28 lines aren’t shown here.

arch/mips/kvm/interrupt.c+6−6

This diff is large: its 43 lines aren’t shown here.

arch/mips/kvm/interrupt.h+5−9

This diff is large: its 31 lines aren’t shown here.

arch/mips/kvm/locore.S+0−605

This diff is large: its 606 lines aren’t shown here.

arch/mips/kvm/mips.c+256−111

This diff is large: its 720 lines aren’t shown here.

arch/mips/kvm/mmu.c+375−0

This diff is large: its 376 lines aren’t shown here.

arch/mips/kvm/stats.c+0−21

This diff is large: its 28 lines aren’t shown here.

arch/mips/kvm/tlb.c+42−456

This diff is large: its 687 lines aren’t shown here.

arch/mips/kvm/trace.h+233−3

This diff is large: its 253 lines aren’t shown here.

arch/mips/kvm/trap_emul.c+87−91

This diff is large: its 370 lines aren’t shown here.

arch/mips/lantiq/irq.c+16−15

This diff is large: its 101 lines aren’t shown here.

arch/mips/lantiq/prom.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/mips/loongson64/common/dma-swiotlb.c+5−5

This diff is large: its 39 lines aren’t shown here.

arch/mips/loongson64/loongson-3/hpet.c+7−7

This diff is large: its 39 lines aren’t shown here.

arch/mips/loongson64/loongson-3/smp.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/mips/math-emu/cp1emu.c+11−11

This diff is large: its 71 lines aren’t shown here.

arch/mips/math-emu/dsemul.c+223−110

This diff is large: its 387 lines aren’t shown here.

arch/mips/mm/c-r4k.c+228−58

This diff is large: its 481 lines aren’t shown here.

arch/mips/mm/dma-default.c+10−10

This diff is large: its 88 lines aren’t shown here.

arch/mips/mm/init.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/mm/sc-debugfs.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/mips/mm/sc-rm7k.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/mm/tlbex.c+6−6

This diff is large: its 54 lines aren’t shown here.

arch/mips/mm/uasm-micromips.c+11−2

This diff is large: its 41 lines aren’t shown here.

arch/mips/mm/uasm-mips.c+12−1

This diff is large: its 32 lines aren’t shown here.

arch/mips/mm/uasm.c+17−13

This diff is large: its 66 lines aren’t shown here.

arch/mips/mti-malta/malta-dtshim.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/mips/mti-malta/malta-memory.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/mti-malta/malta-setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/net/bpf_jit.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/mips/netlogic/common/nlm-dma.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/mips/pci/pci.c+18−1

This diff is large: its 33 lines aren’t shown here.

arch/mips/pic32/pic32mzda/init.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/mips/pistachio/init.c+0−25

This diff is large: its 39 lines aren’t shown here.

arch/mips/ralink/mt7620.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/sgi-ip22/ip22-reset.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mips/sni/time.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/mips/txx9/generic/pci.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/mn10300/Kconfig+3−1

This diff is large: its 11 lines aren’t shown here.

arch/mn10300/include/asm/rtc-regs.h+2−2

This diff is large: its 12 lines aren’t shown here.

arch/mn10300/include/asm/rtc.h+0−2

This diff is large: its 7 lines aren’t shown here.

arch/mn10300/kernel/rtc.c+9−95

This diff is large: its 122 lines aren’t shown here.

arch/mn10300/mm/dma-alloc.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/mn10300/proc-mn103e010/proc-init.c+3−0

This diff is large: its 11 lines aren’t shown here.

arch/mn10300/proc-mn2ws0050/proc-init.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/nios2/mm/dma-mapping.c+6−6

This diff is large: its 53 lines aren’t shown here.

arch/nios2/mm/init.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/openrisc/kernel/dma.c+10−11

This diff is large: its 95 lines aren’t shown here.

arch/openrisc/mm/ioremap.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/parisc/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/parisc/include/asm/hash.h+146−0

This diff is large: its 147 lines aren’t shown here.

arch/parisc/include/asm/mc146818rtc.h+0−9

This diff is large: its 10 lines aren’t shown here.

arch/parisc/include/asm/rtc.h+0−131

This diff is large: its 132 lines aren’t shown here.

arch/parisc/kernel/firmware.c+3−3

This diff is large: its 13 lines aren’t shown here.

arch/parisc/kernel/pci-dma.c+9−9

This diff is large: its 77 lines aren’t shown here.

arch/parisc/kernel/time.c+35−1

This diff is large: its 57 lines aren’t shown here.

arch/parisc/lib/iomap.c+32−32

This diff is large: its 78 lines aren’t shown here.

arch/powerpc/Kconfig+33−39

This diff is large: its 110 lines aren’t shown here.

arch/powerpc/Kconfig.debug+21−3

This diff is large: its 51 lines aren’t shown here.

arch/powerpc/Makefile+6−1

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/boot/Makefile+7−3

This diff is large: its 45 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/b4420si-pre.dtsi+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/b4860si-pre.dtsi+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/kmcoge4.dts+37−0

This diff is large: its 44 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/mvme7100.dts+153−0

This diff is large: its 154 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/qonverge-usb2-dr-0.dtsi+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/t1040si-post.dtsi+47−2

This diff is large: its 67 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/t104xd4rdb.dtsi+38−0

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/t104xqds.dtsi+38−0

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/t104xrdb.dtsi+38−0

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/boot/dts/fsl/t4240si-pre.dtsi+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/boot/motload-head.S+11−0

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/boot/mvme7100.c+59−0

This diff is large: its 60 lines aren’t shown here.

arch/powerpc/boot/opal-calls.S+58−0

This diff is large: its 59 lines aren’t shown here.

arch/powerpc/boot/opal.c+98−0

This diff is large: its 99 lines aren’t shown here.

arch/powerpc/boot/ops.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/boot/ppc_asm.h+4−0

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/boot/ppcboot.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/boot/serial.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/boot/types.h+10−0

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/boot/wrapper+5−0

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/configs/40x/acadia_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/40x/ep405_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/40x/kilauea_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/40x/klondike_defconfig+0−3

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/configs/40x/makalu_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/40x/obs600_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/40x/virtex_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/40x/walnut_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/44x/akebono_defconfig+3−5

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/configs/44x/arches_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/44x/bamboo_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/44x/bluestone_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/44x/canyonlands_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/44x/currituck_defconfig+3−5

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/configs/44x/ebony_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/44x/eiger_defconfig+0−2

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/configs/44x/icon_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/44x/iss476-smp_defconfig+3−5

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/configs/44x/katmai_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/44x/rainier_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/44x/redwood_defconfig+0−2

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/configs/44x/sam440ep_defconfig+2−4

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/configs/44x/sequoia_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/44x/taishan_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/44x/virtex5_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/44x/warp_defconfig+1−4

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/configs/52xx/cm5200_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/52xx/lite5200b_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/52xx/motionpro_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/52xx/pcm030_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/52xx/tqm5200_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/83xx/asp8347_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/83xx/kmeter1_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc8313_rdb_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc8315_rdb_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc832x_mds_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc832x_rdb_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc834x_itx_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc834x_mds_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc836x_mds_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc836x_rdk_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc837x_mds_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/83xx/mpc837x_rdb_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/83xx/sbc834x_defconfig+1−4

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/configs/85xx/ge_imp3a_defconfig+1−3

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/configs/85xx/kmp204x_defconfig+1−2

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/configs/85xx/ksi8560_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/85xx/mpc8540_ads_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/85xx/mpc8560_ads_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/85xx/mpc85xx_cds_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/85xx/sbc8548_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/85xx/socrates_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/85xx/stx_gp3_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/85xx/tqm8540_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/85xx/tqm8541_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/85xx/tqm8548_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/85xx/tqm8555_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/85xx/tqm8560_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/85xx/xes_mpc85xx_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/86xx-hw.config+2−2

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/configs/adder875_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/amigaone_defconfig+0−2

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/configs/c2k_defconfig+3−5

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/configs/cell_defconfig+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/configs/chrp32_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/ep8248e_defconfig+1−4

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/configs/ep88xc_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/fsl-emb-nonhw.config+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/g5_defconfig+3−4

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/gamecube_defconfig+1−4

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/configs/holly_defconfig+1−2

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/configs/linkstation_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/maple_defconfig+1−4

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/configs/mgcoge_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/mpc512x_defconfig+3−5

This diff is large: its 30 lines aren’t shown here.

arch/powerpc/configs/mpc5200_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/mpc7448_hpc2_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/mpc8272_ads_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/mpc83xx_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/mpc866_ads_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/mpc86xx_basic_defconfig+1−0

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/configs/mpc885_ads_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/mvme5100_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/pasemi_defconfig+1−2

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/configs/pmac32_defconfig+1−4

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/configs/powernv_defconfig+5−3

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/configs/ppc40x_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/ppc44x_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/ppc64_defconfig+1−5

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/configs/ppc64e_defconfig+1−5

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/configs/ppc6xx_defconfig+4−5

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/configs/pq2fads_defconfig+1−4

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/configs/ps3_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/pseries_defconfig+2−5

This diff is large: its 32 lines aren’t shown here.

arch/powerpc/configs/storcenter_defconfig+1−3

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/configs/tqm8xx_defconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/configs/wii_defconfig+1−4

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/include/asm/accounting.h+24−0

This diff is large: its 25 lines aren’t shown here.

arch/powerpc/include/asm/asm-compat.h+2−0

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/include/asm/asm-prototypes.h+75−0

This diff is large: its 76 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/hugetlb-radix.h+15−0

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/mmu-hash.h+56−4

This diff is large: its 96 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/mmu.h+8−3

This diff is large: its 36 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/pgtable-4k.h+3−3

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/pgtable-64k.h+3−3

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/pgtable.h+70−29

This diff is large: its 231 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/tlbflush-hash.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/tlbflush-radix.h+14−6

This diff is large: its 42 lines aren’t shown here.

arch/powerpc/include/asm/book3s/64/tlbflush.h+19−8

This diff is large: its 41 lines aren’t shown here.

arch/powerpc/include/asm/cacheflush.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/code-patching.h+4−6

This diff is large: its 44 lines aren’t shown here.

arch/powerpc/include/asm/cpu_has_feature.h+53−0

This diff is large: its 54 lines aren’t shown here.

arch/powerpc/include/asm/cpufeature.h+40−0

This diff is large: its 41 lines aren’t shown here.

arch/powerpc/include/asm/cpuidle.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/cputable.h+7−8

This diff is large: its 36 lines aren’t shown here.

arch/powerpc/include/asm/cputime.h+12−3

This diff is large: its 39 lines aren’t shown here.

arch/powerpc/include/asm/dbell.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/dcr-native.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/dma-mapping.h+3−4

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/include/asm/eeh.h+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/include/asm/exception-64s.h+3−1

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/include/asm/feature-fixups.h+4−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/firmware.h+6−0

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/include/asm/fixmap.h+7−0

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/include/asm/ftrace.h+5−3

This diff is large: its 28 lines aren’t shown here.

arch/powerpc/include/asm/hmi.h+45−0

This diff is large: its 46 lines aren’t shown here.

arch/powerpc/include/asm/hugetlb.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/hvcall.h+0−11

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/include/asm/hw_irq.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/iommu.h+5−6

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/include/asm/jump_label.h+3−2

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/include/asm/kprobes.h+3−5

This diff is large: its 29 lines aren’t shown here.

arch/powerpc/include/asm/kvm_book3s_64.h+1−2

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/include/asm/kvm_book3s_asm.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/linkage.h+3−3

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/include/asm/machdep.h+2−40

This diff is large: its 70 lines aren’t shown here.

arch/powerpc/include/asm/mman.h+5−4

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/include/asm/mmu-8xx.h+3−0

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/include/asm/mmu.h+91−16

This diff is large: its 181 lines aren’t shown here.

arch/powerpc/include/asm/mpc52xx.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/nohash/32/pte-44x.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/nohash/64/pgtable-64k.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/opal-api.h+41−5

This diff is large: its 96 lines aren’t shown here.

arch/powerpc/include/asm/opal.h+32−2

This diff is large: its 75 lines aren’t shown here.

arch/powerpc/include/asm/paca.h+8−7

This diff is large: its 32 lines aren’t shown here.

arch/powerpc/include/asm/page.h+3−3

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/include/asm/pci-bridge.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/pci.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/include/asm/pgtable-be-types.h+15−0

This diff is large: its 51 lines aren’t shown here.

arch/powerpc/include/asm/pmac_feature.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/pnv-pci.h+47−0

This diff is large: its 62 lines aren’t shown here.

arch/powerpc/include/asm/ppc-opcode.h+46−1

This diff is large: its 164 lines aren’t shown here.

arch/powerpc/include/asm/ppc-pci.h+0−2

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/ppc4xx.h+1−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/ppc_asm.h+14−14

This diff is large: its 58 lines aren’t shown here.

arch/powerpc/include/asm/processor.h+6−1

This diff is large: its 35 lines aren’t shown here.

arch/powerpc/include/asm/ps3.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/powerpc/include/asm/ps3av.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/pte-common.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/ptrace.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/reg.h+54−43

This diff is large: its 159 lines aren’t shown here.

arch/powerpc/include/asm/rtas.h+4−3

This diff is large: its 32 lines aren’t shown here.

arch/powerpc/include/asm/rtc.h+0−78

This diff is large: its 79 lines aren’t shown here.

arch/powerpc/include/asm/sections.h+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/include/asm/setup.h+12−0

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/include/asm/smp.h+6−3

This diff is large: its 23 lines aren’t shown here.

arch/powerpc/include/asm/smu.h+1−8

This diff is large: its 23 lines aren’t shown here.

arch/powerpc/include/asm/spinlock.h+32−6

This diff is large: its 45 lines aren’t shown here.

arch/powerpc/include/asm/string.h+0−4

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/include/asm/switch_to.h+8−0

This diff is large: its 15 lines aren’t shown here.

arch/powerpc/include/asm/synch.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/tce.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/include/asm/thread_info.h+4−25

This diff is large: its 59 lines aren’t shown here.

arch/powerpc/include/asm/time.h+5−4

This diff is large: its 39 lines aren’t shown here.

arch/powerpc/include/asm/tlb.h+13−0

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/include/asm/tlbflush.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/asm/tsi108.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/include/asm/types.h+8−0

This diff is large: its 15 lines aren’t shown here.

arch/powerpc/include/asm/uaccess.h+19−2

This diff is large: its 55 lines aren’t shown here.

arch/powerpc/include/asm/xics.h+6−0

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/include/asm/xor.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/include/uapi/asm/elf.h+5−0

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/kernel/Makefile+3−4

This diff is large: its 25 lines aren’t shown here.

arch/powerpc/kernel/align.c+16−3

This diff is large: its 40 lines aren’t shown here.

arch/powerpc/kernel/asm-offsets.c+27−53

This diff is large: its 209 lines aren’t shown here.

arch/powerpc/kernel/cpu_setup_6xx.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/cpu_setup_power.S+19−1

This diff is large: its 94 lines aren’t shown here.

arch/powerpc/kernel/cputable.c+39−2

This diff is large: its 66 lines aren’t shown here.

arch/powerpc/kernel/crash.c+10−5

This diff is large: its 45 lines aren’t shown here.

arch/powerpc/kernel/dma-iommu.c+6−6

This diff is large: its 54 lines aren’t shown here.

arch/powerpc/kernel/dma.c+9−9

This diff is large: its 81 lines aren’t shown here.

arch/powerpc/kernel/eeh_cache.c+4−4

This diff is large: its 23 lines aren’t shown here.

arch/powerpc/kernel/eeh_dev.c+3−14

This diff is large: its 52 lines aren’t shown here.

arch/powerpc/kernel/eeh_driver.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/entry_32.S+17−0

This diff is large: its 38 lines aren’t shown here.

arch/powerpc/kernel/entry_64.S+5−5

This diff is large: its 45 lines aren’t shown here.

arch/powerpc/kernel/exceptions-64e.S+3−3

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/kernel/exceptions-64s.S+40−38

This diff is large: its 190 lines aren’t shown here.

arch/powerpc/kernel/fadump.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/kernel/ftrace.c+20−19

This diff is large: its 65 lines aren’t shown here.

arch/powerpc/kernel/head_64.S+2−5

This diff is large: its 28 lines aren’t shown here.

arch/powerpc/kernel/head_8xx.S+80−79

This diff is large: its 266 lines aren’t shown here.

arch/powerpc/kernel/hmi.c+56−0

This diff is large: its 57 lines aren’t shown here.

arch/powerpc/kernel/ibmebus.c+6−6

This diff is large: its 54 lines aren’t shown here.

arch/powerpc/kernel/idle_book3s.Srenamed from arch/powerpc/kernel/idle_power7.S+261−112

This diff is large: its 570 lines aren’t shown here.

arch/powerpc/kernel/iommu.c+6−6

This diff is large: its 54 lines aren’t shown here.

arch/powerpc/kernel/irq.c+17−1

This diff is large: its 39 lines aren’t shown here.

arch/powerpc/kernel/kprobes.c+7−10

This diff is large: its 33 lines aren’t shown here.

arch/powerpc/kernel/machine_kexec_64.c+8−2

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/kernel/misc_32.S+0−14

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/kernel/misc_64.S+2−2

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/kernel/module_64.c+5−4

This diff is large: its 31 lines aren’t shown here.

arch/powerpc/kernel/paca.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/pci-common.c+90−71

This diff is large: its 246 lines aren’t shown here.

arch/powerpc/kernel/pci_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/pci_dn.c+28−6

This diff is large: its 121 lines aren’t shown here.

arch/powerpc/kernel/process.c+56−13

This diff is large: its 136 lines aren’t shown here.

arch/powerpc/kernel/prom.c+15−1

This diff is large: its 41 lines aren’t shown here.

arch/powerpc/kernel/ptrace.c+1616−124

This diff is large: its 1930 lines aren’t shown here.

arch/powerpc/kernel/rtas-proc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/rtas.c+4−4

This diff is large: its 36 lines aren’t shown here.

arch/powerpc/kernel/rtasd.c+20−8

This diff is large: its 69 lines aren’t shown here.

arch/powerpc/kernel/setup-common.c+189−1

This diff is large: its 236 lines aren’t shown here.

arch/powerpc/kernel/setup.h+58−0

This diff is large: its 59 lines aren’t shown here.

arch/powerpc/kernel/setup_32.c+24−90

This diff is large: its 191 lines aren’t shown here.

arch/powerpc/kernel/setup_64.c+60−225

This diff is large: its 428 lines aren’t shown here.

arch/powerpc/kernel/signal_64.c+8−3

This diff is large: its 25 lines aren’t shown here.

arch/powerpc/kernel/smp.c+4−0

This diff is large: its 25 lines aren’t shown here.

arch/powerpc/kernel/sysfs.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kernel/time.c+141−36

This diff is large: its 348 lines aren’t shown here.

arch/powerpc/kernel/tm.S+1−2

This diff is large: its 17 lines aren’t shown here.

arch/powerpc/kernel/traps.c+17−1

This diff is large: its 56 lines aren’t shown here.

arch/powerpc/kernel/vector.S+5−4

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/kernel/vio.c+6−6

This diff is large: its 54 lines aren’t shown here.

arch/powerpc/kernel/vmlinux.lds.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kvm/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kvm/book3s_64_mmu_host.c+10−8

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/kvm/book3s_64_vio.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv.c+39−2

This diff is large: its 76 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv_ras.c+176−0

This diff is large: its 187 lines aren’t shown here.

arch/powerpc/kvm/book3s_hv_rmhandlers.S+316−215

This diff is large: its 644 lines aren’t shown here.

arch/powerpc/kvm/book3s_interrupts.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kvm/book3s_pr.c+16−6

This diff is large: its 64 lines aren’t shown here.

arch/powerpc/kvm/book3s_rmhandlers.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/kvm/booke.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/kvm/emulate.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/kvm/mpic.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/kvm/powerpc.c+5−1

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/lib/alloc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/lib/checksum_64.S+6−6

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/lib/feature-fixups.c+65−2

This diff is large: its 95 lines aren’t shown here.

arch/powerpc/lib/locks.c+0−16

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/lib/ppc_ksyms.c+0−4

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/lib/rheap.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/lib/string.S+3−41

This diff is large: its 85 lines aren’t shown here.

arch/powerpc/lib/vmx-helper.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/mm/8xx_mmu.c+90−41

This diff is large: its 175 lines aren’t shown here.

arch/powerpc/mm/hash64_4k.c+10−8

This diff is large: its 41 lines aren’t shown here.

arch/powerpc/mm/hash64_64k.c+22−17

This diff is large: its 85 lines aren’t shown here.

arch/powerpc/mm/hash_native_64.c+24−18

This diff is large: its 96 lines aren’t shown here.

arch/powerpc/mm/hash_utils_64.c+108−98

This diff is large: its 457 lines aren’t shown here.

arch/powerpc/mm/hugepage-hash64.c+9−8

This diff is large: its 42 lines aren’t shown here.

arch/powerpc/mm/hugetlbpage-hash64.c+2−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/mm/hugetlbpage-radix.c+17−22

This diff is large: its 57 lines aren’t shown here.

arch/powerpc/mm/hugetlbpage.c+7−0

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/mm/init_32.c+1−4

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/mm/init_64.c+22−0

This diff is large: its 26 lines aren’t shown here.

arch/powerpc/mm/mem.c+17−1

This diff is large: its 33 lines aren’t shown here.

arch/powerpc/mm/mmu_context_book3s64.c+4−1

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/mm/mmu_decl.h+2−1

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/mm/numa.c+26−10

This diff is large: its 45 lines aren’t shown here.

arch/powerpc/mm/pgtable-book3s64.c+5−2

This diff is large: its 28 lines aren’t shown here.

arch/powerpc/mm/pgtable-radix.c+12−8

This diff is large: its 72 lines aren’t shown here.

arch/powerpc/mm/pgtable.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/mm/pgtable_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/mm/tlb-radix.c+132−23

This diff is large: its 235 lines aren’t shown here.

arch/powerpc/mm/tlb_hash32.c+0−11

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/mm/tlb_nohash.c+0−6

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/net/Makefile+4−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/net/bpf_jit.h+92−143

This diff is large: its 353 lines aren’t shown here.

arch/powerpc/net/bpf_jit32.h+139−0

This diff is large: its 140 lines aren’t shown here.

arch/powerpc/net/bpf_jit64.h+102−0

This diff is large: its 103 lines aren’t shown here.

arch/powerpc/net/bpf_jit_asm.S+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/net/bpf_jit_asm64.S+180−0

This diff is large: its 181 lines aren’t shown here.

arch/powerpc/net/bpf_jit_comp.c+5−5

This diff is large: its 44 lines aren’t shown here.

arch/powerpc/net/bpf_jit_comp64.c+954−0

This diff is large: its 955 lines aren’t shown here.

arch/powerpc/oprofile/cell/spu_task_sync.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/perf/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/perf/core-book3s.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/perf/hv-24x7.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/perf/hv-24x7.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/perf/isa207-common.c+263−0

This diff is large: its 264 lines aren’t shown here.

arch/powerpc/perf/isa207-common.h+236−0

This diff is large: its 237 lines aren’t shown here.

arch/powerpc/perf/power8-pmu.c+7−470

This diff is large: its 514 lines aren’t shown here.

arch/powerpc/perf/power9-events-list.h+55−0

This diff is large: its 56 lines aren’t shown here.

arch/powerpc/perf/power9-pmu.c+330−0

This diff is large: its 331 lines aren’t shown here.

arch/powerpc/platforms/40x/ep405.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/40x/ppc40x_simple.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/40x/virtex.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/40x/walnut.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/44x/canyonlands.c+2−3

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/platforms/44x/ebony.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/44x/iss4xx.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/44x/ppc44x_simple.c+1−2

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/platforms/44x/ppc476.c+4−6

This diff is large: its 33 lines aren’t shown here.

arch/powerpc/platforms/44x/sam440ep.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/44x/virtex.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/44x/warp.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/512x/clock-commonclk.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/512x/mpc5121_ads.c+5−3

This diff is large: its 23 lines aren’t shown here.

arch/powerpc/platforms/512x/mpc512x.h+1−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/512x/mpc512x_generic.c+6−2

This diff is large: its 21 lines aren’t shown here.

arch/powerpc/platforms/512x/mpc512x_shared.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/512x/pdm360ng.c+5−3

This diff is large: its 23 lines aren’t shown here.

arch/powerpc/platforms/52xx/efika.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/52xx/lite5200.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/52xx/media5200.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/52xx/mpc5200_simple.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/52xx/mpc52xx_common.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/82xx/ep8248e.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/82xx/km82xx.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/82xx/mpc8272_ads.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/82xx/pq2.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/82xx/pq2.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/82xx/pq2fads.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/83xx/asp834x.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/83xx/km83xx.c+1−2

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/platforms/83xx/misc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc830x_rdb.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc831x_rdb.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc832x_mds.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc832x_rdb.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc834x_itx.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc834x_mds.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc836x_mds.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc836x_rdk.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc837x_mds.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc837x_rdb.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/83xx/mpc83xx.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/83xx/sbc834x.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/85xx/bsc913x_qds.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/85xx/bsc913x_rdb.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/85xx/c293pcie.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/85xx/corenet_generic.c+2−3

This diff is large: its 23 lines aren’t shown here.

arch/powerpc/platforms/85xx/ge_imp3a.c+2−5

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/platforms/85xx/ksi8560.c+2−4

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc8536_ds.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx_ads.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx_cds.c+2−4

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx_ds.c+4−12

This diff is large: its 44 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx_mds.c+3−9

This diff is large: its 33 lines aren’t shown here.

arch/powerpc/platforms/85xx/mpc85xx_rdb.c+11−32

This diff is large: its 106 lines aren’t shown here.

arch/powerpc/platforms/85xx/mvme2500.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/85xx/p1010rdb.c+2−4

This diff is large: its 14 lines aren’t shown here.

arch/powerpc/platforms/85xx/p1022_ds.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/85xx/p1022_rdk.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/85xx/p1023_rdb.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/85xx/ppa8548.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/85xx/qemu_e500.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/85xx/sbc8548.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/85xx/socrates.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/85xx/stx_gp3.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/85xx/tqm85xx.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/85xx/twr_p102x.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/85xx/xes_mpc85xx.c+3−9

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/86xx/Kconfig+7−1

This diff is large: its 22 lines aren’t shown here.

arch/powerpc/platforms/86xx/Makefile+1−0

This diff is large: its 5 lines aren’t shown here.

arch/powerpc/platforms/86xx/gef_ppc9a.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/86xx/gef_sbc310.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/86xx/gef_sbc610.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/86xx/mpc8610_hpcd.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/86xx/mpc86xx_hpcn.c+2−4

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/platforms/86xx/mvme7100.c+121−0

This diff is large: its 122 lines aren’t shown here.

arch/powerpc/platforms/86xx/sbc8641d.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/8xx/adder875.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/8xx/ep88xc.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/8xx/m8xx_setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/8xx/mpc86xads_setup.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/8xx/mpc885ads_setup.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/8xx/mpc8xx.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/8xx/tqm8xx_setup.c+1−3

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/Kconfig+11−0

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/Kconfig.cputype+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/amigaone/setup.c+2−4

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/platforms/cell/iommu.c+16−16

This diff is large: its 120 lines aren’t shown here.

arch/powerpc/platforms/cell/pervasive.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/cell/setup.c+2−5

This diff is large: its 16 lines aren’t shown here.

arch/powerpc/platforms/cell/spider-pic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/cell/spu_base.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/cell/spu_manage.c+1−2

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/cell/spufs/file.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/cell/spufs/run.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/cell/spufs/sched.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/chrp/setup.c+4−3

This diff is large: its 35 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/c2k.c+5−5

This diff is large: its 37 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/gamecube.c+6−13

This diff is large: its 56 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/holly.c+2−4

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/linkstation.c+4−8

This diff is large: its 40 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c+2−4

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/mvme5100.c+2−4

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/storcenter.c+2−4

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/platforms/embedded6xx/wii.c+6−13

This diff is large: its 64 lines aren’t shown here.

arch/powerpc/platforms/maple/pci.c+21−13

This diff is large: its 48 lines aren’t shown here.

arch/powerpc/platforms/maple/setup.c+9−28

This diff is large: its 87 lines aren’t shown here.

arch/powerpc/platforms/pasemi/iommu.c+6−11

This diff is large: its 35 lines aren’t shown here.

arch/powerpc/platforms/pasemi/pasemi.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/pasemi/pci.c+0−3

This diff is large: its 10 lines aren’t shown here.

arch/powerpc/platforms/pasemi/setup.c+4−14

This diff is large: its 48 lines aren’t shown here.

arch/powerpc/platforms/powermac/low_i2c.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/powermac/pci.c+24−14

This diff is large: its 52 lines aren’t shown here.

arch/powerpc/platforms/powermac/setup.c+14−44

This diff is large: its 168 lines aren’t shown here.

arch/powerpc/platforms/powermac/smp.c+1−2

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/powernv/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/powernv/eeh-powernv.c+44−5

This diff is large: its 95 lines aren’t shown here.

arch/powerpc/platforms/powernv/idle.c+159−29

This diff is large: its 247 lines aren’t shown here.

arch/powerpc/platforms/powernv/npu-dma.c+8−8

This diff is large: its 72 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal-async.c+5−0

This diff is large: its 12 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal-memory-errors.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal-sensor.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal-sysparam.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal-tracepoints.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal-wrappers.S+40−34

This diff is large: its 139 lines aren’t shown here.

arch/powerpc/platforms/powernv/opal.c+20−10

This diff is large: its 89 lines aren’t shown here.

arch/powerpc/platforms/powernv/pci-cxl.c+385−0

This diff is large: its 386 lines aren’t shown here.

arch/powerpc/platforms/powernv/pci-ioda.c+513−396

This diff is large: its 1336 lines aren’t shown here.

arch/powerpc/platforms/powernv/pci.c+126−8

This diff is large: its 173 lines aren’t shown here.

arch/powerpc/platforms/powernv/pci.h+30−15

This diff is large: its 125 lines aren’t shown here.

arch/powerpc/platforms/powernv/powernv.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/platforms/powernv/setup.c+5−11

This diff is large: its 50 lines aren’t shown here.

arch/powerpc/platforms/powernv/smp.c+3−1

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/ps3/device-init.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/ps3/htab.c+6−6

This diff is large: its 19 lines aren’t shown here.

arch/powerpc/platforms/ps3/repository.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/ps3/setup.c+12−11

This diff is large: its 52 lines aren’t shown here.

arch/powerpc/platforms/ps3/system-bus.c+9−9

This diff is large: its 80 lines aren’t shown here.

arch/powerpc/platforms/ps3/time.c+1−1

This diff is large: its 11 lines aren’t shown here.

arch/powerpc/platforms/pseries/cmm.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pseries/dlpar.c+55−1

This diff is large: its 88 lines aren’t shown here.

arch/powerpc/platforms/pseries/eeh_pseries.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pseries/event_sources.c+13−40

This diff is large: its 62 lines aren’t shown here.

arch/powerpc/platforms/pseries/firmware.c+46−2

This diff is large: its 73 lines aren’t shown here.

arch/powerpc/platforms/pseries/hotplug-cpu.c+0−13

This diff is large: its 27 lines aren’t shown here.

arch/powerpc/platforms/pseries/hotplug-memory.c+104−80

This diff is large: its 258 lines aren’t shown here.

arch/powerpc/platforms/pseries/io_event_irq.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pseries/iommu.c+4−55

This diff is large: its 111 lines aren’t shown here.

arch/powerpc/platforms/pseries/kexec.c+1−22

This diff is large: its 43 lines aren’t shown here.

arch/powerpc/platforms/pseries/lpar.c+13−28

This diff is large: its 63 lines aren’t shown here.

arch/powerpc/platforms/pseries/nvram.c+0−2

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pseries/power.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/platforms/pseries/pseries.h+5−16

This diff is large: its 44 lines aren’t shown here.

arch/powerpc/platforms/pseries/pseries_energy.c+4−4

This diff is large: its 24 lines aren’t shown here.

arch/powerpc/platforms/pseries/ras.c+39−0

This diff is large: its 60 lines aren’t shown here.

arch/powerpc/platforms/pseries/setup.c+58−183

This diff is large: its 420 lines aren’t shown here.

arch/powerpc/platforms/pseries/smp.c+5−26

This diff is large: its 68 lines aren’t shown here.

arch/powerpc/sysdev/cpm_common.c+17−5

This diff is large: its 50 lines aren’t shown here.

arch/powerpc/sysdev/dart_iommu.c+89−97

This diff is large: its 289 lines aren’t shown here.

arch/powerpc/sysdev/fsl_85xx_l2ctlr.c+2−6

This diff is large: its 15 lines aren’t shown here.

arch/powerpc/sysdev/fsl_rio.c+8−17

This diff is large: its 63 lines aren’t shown here.

arch/powerpc/sysdev/fsl_soc.c+5−3

This diff is large: its 34 lines aren’t shown here.

arch/powerpc/sysdev/fsl_soc.h+3−3

This diff is large: its 20 lines aren’t shown here.

arch/powerpc/sysdev/msi_bitmap.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/powerpc/sysdev/xics/Makefile+1−1

This diff is large: its 6 lines aren’t shown here.

arch/powerpc/sysdev/xics/icp-opal.c+144−0

This diff is large: its 145 lines aren’t shown here.

arch/powerpc/sysdev/xics/xics-common.c+4−1

This diff is large: its 13 lines aren’t shown here.

arch/powerpc/xmon/ppc-dis.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/powerpc/xmon/xmon.c+89−18

This diff is large: its 145 lines aren’t shown here.

arch/s390/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/boot/compressed/Makefile+3−3

This diff is large: its 22 lines aren’t shown here.

arch/s390/hypfs/hypfs_diag.c+107−270

This diff is large: its 566 lines aren’t shown here.

arch/s390/include/asm/cpacf.h+10−0

This diff is large: its 31 lines aren’t shown here.

arch/s390/include/asm/diag.h+149−0

This diff is large: its 154 lines aren’t shown here.

arch/s390/include/asm/dma-mapping.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/s390/include/asm/elf.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/include/asm/gmap.h+76−6

This diff is large: its 127 lines aren’t shown here.

arch/s390/include/asm/kvm_host.h+30−3

This diff is large: its 126 lines aren’t shown here.

arch/s390/include/asm/mmu.h+7−4

This diff is large: its 26 lines aren’t shown here.

arch/s390/include/asm/mmu_context.h+2−1

This diff is large: its 11 lines aren’t shown here.

arch/s390/include/asm/page.h+6−3

This diff is large: its 27 lines aren’t shown here.

arch/s390/include/asm/pgalloc.h+2−0

This diff is large: its 11 lines aren’t shown here.

arch/s390/include/asm/pgtable.h+25−12

This diff is large: its 97 lines aren’t shown here.

arch/s390/include/asm/processor.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/s390/include/asm/sclp.h+20−3

This diff is large: its 46 lines aren’t shown here.

arch/s390/include/uapi/asm/auxvec.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/s390/include/uapi/asm/kvm.h+41−0

This diff is large: its 48 lines aren’t shown here.

arch/s390/include/uapi/asm/sie.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/kernel/Makefile+8−3

This diff is large: its 37 lines aren’t shown here.

arch/s390/kernel/als.c+124−0

This diff is large: its 125 lines aren’t shown here.

arch/s390/kernel/diag.c+39−0

This diff is large: its 50 lines aren’t shown here.

arch/s390/kernel/entry.h+2−0

This diff is large: its 7 lines aren’t shown here.

arch/s390/kernel/head.S+4−39

This diff is large: its 54 lines aren’t shown here.

arch/s390/kernel/kprobes.c+12−0

This diff is large: its 26 lines aren’t shown here.

arch/s390/kernel/sclp.c+3−2

This diff is large: its 12 lines aren’t shown here.

arch/s390/kvm/Makefile+1−1

This diff is large: its 8 lines aren’t shown here.

arch/s390/kvm/diag.c+5−0

This diff is large: its 12 lines aren’t shown here.

arch/s390/kvm/gaccess.c+320−67

This diff is large: its 484 lines aren’t shown here.

arch/s390/kvm/gaccess.h+3−0

This diff is large: its 8 lines aren’t shown here.

arch/s390/kvm/guestdbg.c+18−1

This diff is large: its 33 lines aren’t shown here.

arch/s390/kvm/intercept.c+31−2

This diff is large: its 58 lines aren’t shown here.

arch/s390/kvm/interrupt.c+22−12

This diff is large: its 76 lines aren’t shown here.

arch/s390/kvm/kvm-s390.c+346−58

This diff is large: its 826 lines aren’t shown here.

arch/s390/kvm/kvm-s390.h+21−1

This diff is large: its 61 lines aren’t shown here.

arch/s390/kvm/priv.c+193−33

This diff is large: its 313 lines aren’t shown here.

arch/s390/kvm/sigp.c+5−5

This diff is large: its 24 lines aren’t shown here.

arch/s390/kvm/sthyi.c+471−0

This diff is large: its 472 lines aren’t shown here.

arch/s390/kvm/trace.h+46−3

This diff is large: its 70 lines aren’t shown here.

arch/s390/kvm/vsie.c+1091−0

This diff is large: its 1092 lines aren’t shown here.

arch/s390/lib/uaccess.c+2−0

This diff is large: its 16 lines aren’t shown here.

arch/s390/mm/fault.c+2−0

This diff is large: its 9 lines aren’t shown here.

arch/s390/mm/gmap.c+1514−88

This diff is large: its 1784 lines aren’t shown here.

arch/s390/mm/hugetlbpage.c+38−14

This diff is large: its 73 lines aren’t shown here.

arch/s390/mm/pgalloc.c+31−8

This diff is large: its 92 lines aren’t shown here.

arch/s390/mm/pgtable.c+174−35

This diff is large: its 271 lines aren’t shown here.

arch/s390/numa/mode_emu.c+4−0

This diff is large: its 13 lines aren’t shown here.

arch/s390/numa/numa.c+7−1

This diff is large: its 30 lines aren’t shown here.

arch/s390/pci/pci_dma.c+12−11

This diff is large: its 94 lines aren’t shown here.

arch/s390/tools/gen_facilities.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/score/mm/init.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/Kconfig+34−0

This diff is large: its 69 lines aren’t shown here.

arch/sh/Makefile+3−0

This diff is large: its 17 lines aren’t shown here.

arch/sh/boards/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/boards/board-secureedge5410.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/sh/boards/of-generic.c+12−3

This diff is large: its 26 lines aren’t shown here.

arch/sh/boot/dts/Makefile+3−0

This diff is large: its 4 lines aren’t shown here.

arch/sh/boot/dts/j2_mimas_v2.dts+96−0

This diff is large: its 97 lines aren’t shown here.

arch/sh/configs/j2_defconfig+40−0

This diff is large: its 41 lines aren’t shown here.

arch/sh/drivers/heartbeat.c+3−29

This diff is large: its 53 lines aren’t shown here.

arch/sh/drivers/pci/pci.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/sh/include/asm/atomic.h+8−0

This diff is large: its 20 lines aren’t shown here.

arch/sh/include/asm/barrier.h+5−0

This diff is large: its 12 lines aren’t shown here.

arch/sh/include/asm/bitops-cas.h+93−0

This diff is large: its 94 lines aren’t shown here.

arch/sh/include/asm/bitops.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/sh/include/asm/cmpxchg-cas.h+24−0

This diff is large: its 25 lines aren’t shown here.

arch/sh/include/asm/cmpxchg-xchg.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/include/asm/cmpxchg.h+2−0

This diff is large: its 9 lines aren’t shown here.

arch/sh/include/asm/dma-mapping.h+2−2

This diff is large: its 12 lines aren’t shown here.

arch/sh/include/asm/futex-cas.h+34−0

This diff is large: its 35 lines aren’t shown here.

arch/sh/include/asm/futex-irq.h+0−86

This diff is large: its 93 lines aren’t shown here.

arch/sh/include/asm/futex-llsc.h+41−0

This diff is large: its 42 lines aren’t shown here.

arch/sh/include/asm/futex.h+59−38

This diff is large: its 130 lines aren’t shown here.

arch/sh/include/asm/mc146818rtc.h+0−7

This diff is large: its 8 lines aren’t shown here.

arch/sh/include/asm/processor.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sh/include/asm/rtc.h+0−11

This diff is large: its 18 lines aren’t shown here.

arch/sh/include/asm/spinlock-cas.h+117−0

This diff is large: its 118 lines aren’t shown here.

arch/sh/include/asm/spinlock-llsc.h+224−0

This diff is large: its 225 lines aren’t shown here.

arch/sh/include/asm/spinlock.h+6−216

This diff is large: its 229 lines aren’t shown here.

arch/sh/include/asm/thread_info.h+0−26

This diff is large: its 44 lines aren’t shown here.

arch/sh/include/uapi/asm/cpu-features.h+1−0

This diff is large: its 7 lines aren’t shown here.

arch/sh/include/uapi/asm/sigcontext.h+0−3

This diff is large: its 17 lines aren’t shown here.

arch/sh/include/uapi/asm/unistd_32.h+15−1

This diff is large: its 23 lines aren’t shown here.

arch/sh/include/uapi/asm/unistd_64.h+15−1

This diff is large: its 23 lines aren’t shown here.

arch/sh/kernel/cpu/clock.c+4−0

This diff is large: its 28 lines aren’t shown here.

arch/sh/kernel/cpu/init.c+5−1

This diff is large: its 23 lines aren’t shown here.

arch/sh/kernel/cpu/proc.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/kernel/cpu/sh2/Makefile+4−0

This diff is large: its 8 lines aren’t shown here.

arch/sh/kernel/cpu/sh2/entry.S+55−0

This diff is large: its 110 lines aren’t shown here.

arch/sh/kernel/cpu/sh2/probe.c+38−1

This diff is large: its 60 lines aren’t shown here.

arch/sh/kernel/cpu/sh2/smp-j2.c+139−0

This diff is large: its 140 lines aren’t shown here.

arch/sh/kernel/dma-nommu.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/sh/kernel/dwarf.c+2−4

This diff is large: its 13 lines aren’t shown here.

arch/sh/kernel/head_32.S+3−3

This diff is large: its 27 lines aren’t shown here.

arch/sh/kernel/setup.c+5−1

This diff is large: its 21 lines aren’t shown here.

arch/sh/kernel/syscalls_32.S+14−0

This diff is large: its 18 lines aren’t shown here.

arch/sh/kernel/syscalls_64.S+14−0

This diff is large: its 18 lines aren’t shown here.

arch/sh/kernel/time.c+21−15

This diff is large: its 69 lines aren’t shown here.

arch/sh/mm/Makefile+2−1

This diff is large: its 10 lines aren’t shown here.

arch/sh/mm/asids-debugfs.c+1−4

This diff is large: its 16 lines aren’t shown here.

arch/sh/mm/cache-j2.c+65−0

This diff is large: its 66 lines aren’t shown here.

arch/sh/mm/cache.c+12−1

This diff is large: its 42 lines aren’t shown here.

arch/sh/mm/consistent.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/sh/mm/ioremap.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/sparc/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

arch/sparc/include/asm/io_32.h+0−10

This diff is large: its 17 lines aren’t shown here.

arch/sparc/include/asm/pci_64.h+0−3

This diff is large: its 10 lines aren’t shown here.

arch/sparc/include/asm/thread_info_64.h+0−24

This diff is large: its 33 lines aren’t shown here.

arch/sparc/include/asm/uaccess_32.h+10−4

This diff is large: its 33 lines aren’t shown here.

arch/sparc/include/asm/uaccess_64.h+9−2

This diff is large: its 27 lines aren’t shown here.

arch/sparc/kernel/iommu.c+6−6

This diff is large: its 54 lines aren’t shown here.

arch/sparc/kernel/ioport.c+12−12

This diff is large: its 104 lines aren’t shown here.

arch/sparc/kernel/pci.c+11−9

This diff is large: its 28 lines aren’t shown here.

arch/sparc/kernel/pci_sun4v.c+6−6

This diff is large: its 54 lines aren’t shown here.

arch/sparc/kernel/vmlinux.lds.S+7−0

This diff is large: its 14 lines aren’t shown here.

arch/tile/include/asm/thread_info.h+0−27

This diff is large: its 33 lines aren’t shown here.

arch/tile/kernel/pci-dma.c+14−14

This diff is large: its 125 lines aren’t shown here.

arch/tile/kernel/vmlinux.lds.S+12−0

This diff is large: its 19 lines aren’t shown here.

arch/um/Kconfig.common+4−2

This diff is large: its 30 lines aren’t shown here.

arch/um/Makefile+2−2

This diff is large: its 11 lines aren’t shown here.

arch/um/include/asm/irqflags.h+7−11

This diff is large: its 45 lines aren’t shown here.

arch/um/kernel/Makefile+5−0

This diff is large: its 12 lines aren’t shown here.

arch/um/kernel/initrd.c+0−2

This diff is large: its 9 lines aren’t shown here.

arch/um/kernel/um_arch.c+4−4

This diff is large: its 29 lines aren’t shown here.

arch/um/os-Linux/Makefile+3−0

This diff is large: its 10 lines aren’t shown here.

arch/um/os-Linux/signal.c+3−2

This diff is large: its 26 lines aren’t shown here.

arch/unicore32/kernel/pci.c+2−7

This diff is large: its 23 lines aren’t shown here.

arch/unicore32/mm/dma-swiotlb.c+2−2

This diff is large: its 17 lines aren’t shown here.

arch/x86/Kconfig+4−0

This diff is large: its 32 lines aren’t shown here.

arch/x86/boot/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/entry/common.c+5−1

This diff is large: its 14 lines aren’t shown here.

arch/x86/entry/syscalls/syscall_32.tbl+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/entry/vdso/Makefile+2−1

This diff is large: its 17 lines aren’t shown here.

arch/x86/entry/vdso/vclock_gettime.c+5−20

This diff is large: its 45 lines aren’t shown here.

arch/x86/entry/vdso/vdso2c.h+6−0

This diff is large: its 20 lines aren’t shown here.

arch/x86/events/amd/ibs.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/x86/events/amd/iommu.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/events/core.c+9−5

This diff is large: its 28 lines aren’t shown here.

arch/x86/events/intel/uncore.c+2−0

This diff is large: its 6 lines aren’t shown here.

arch/x86/events/intel/uncore.h+0−1

This diff is large: its 5 lines aren’t shown here.

arch/x86/include/asm/dma-mapping.h+2−3

This diff is large: its 22 lines aren’t shown here.

arch/x86/include/asm/elf.h+2−2

This diff is large: its 11 lines aren’t shown here.

arch/x86/include/asm/fpu/internal.h+8−8

This diff is large: its 49 lines aren’t shown here.

arch/x86/include/asm/kvm_host.h+24−7

This diff is large: its 87 lines aren’t shown here.

arch/x86/include/asm/livepatch.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/mc146818rtc.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/mmu_context.h+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/include/asm/pvclock.h+23−16

This diff is large: its 54 lines aren’t shown here.

arch/x86/include/asm/rtc.h+0−1

This diff is large: its 2 lines aren’t shown here.

arch/x86/include/asm/svm.h+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/swiotlb.h+2−2

This diff is large: its 12 lines aren’t shown here.

arch/x86/include/asm/syscall.h+1−4

This diff is large: its 19 lines aren’t shown here.

arch/x86/include/asm/thread_info.h+47−24

This diff is large: its 87 lines aren’t shown here.

arch/x86/include/asm/topology.h+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/include/asm/uaccess.h+14−12

This diff is large: its 56 lines aren’t shown here.

arch/x86/include/asm/uaccess_32.h+2−0

This diff is large: its 16 lines aren’t shown here.

arch/x86/include/asm/uaccess_64.h+2−0

This diff is large: its 16 lines aren’t shown here.

arch/x86/include/asm/virtext.h+2−6

This diff is large: its 26 lines aren’t shown here.

arch/x86/include/asm/xen/page-coherent.h+4−5

This diff is large: its 36 lines aren’t shown here.

arch/x86/kernel/acpi/boot.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/acpi/cstate.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/amd_gart_64.c+10−11

This diff is large: its 92 lines aren’t shown here.

arch/x86/kernel/amd_nb.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/apic/apic.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/apic/apic_flat_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/apic/apic_noop.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/apic/hw_nmi.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/apic/io_apic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/apic/ipi.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/apic/probe_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/apic/probe_64.c+1−2

This diff is large: its 12 lines aren’t shown here.

arch/x86/kernel/apic/vector.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/apic/x2apic_uv_x.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/cpu/common.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/cpu/hypervisor.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/x86/kernel/cpu/intel.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/cpu/match.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/cpu/mshyperv.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/x86/kernel/cpu/mtrr/cleanup.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/cpu/mtrr/generic.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/cpu/mtrr/if.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/cpu/mtrr/main.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/cpu/perfctr-watchdog.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/cpu/vmware.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/x86/kernel/crash.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/dumpstack_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/dumpstack_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/early-quirks.c+194−210

This diff is large: its 553 lines aren’t shown here.

arch/x86/kernel/fpu/signal.c+6−6

This diff is large: its 33 lines aren’t shown here.

arch/x86/kernel/hpet.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/x86/kernel/hw_breakpoint.c+2−1

This diff is large: its 16 lines aren’t shown here.

arch/x86/kernel/i386_ksyms_32.c+2−1

This diff is large: its 7 lines aren’t shown here.

arch/x86/kernel/i8253.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/io_delay.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/irq_32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/irq_64.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/kdebugfs.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/kvm.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/mpparse.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/nmi.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/paravirt-spinlocks.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/paravirt.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/x86/kernel/pci-calgary_64.c+7−7

This diff is large: its 63 lines aren’t shown here.

arch/x86/kernel/pci-dma.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/pci-nommu.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/kernel/pci-swiotlb.c+3−3

This diff is large: its 27 lines aren’t shown here.

arch/x86/kernel/pmem.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/process.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/x86/kernel/process_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/process_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/ptrace.c+9−6

This diff is large: its 25 lines aren’t shown here.

arch/x86/kernel/pvclock.c+6−11

This diff is large: its 32 lines aren’t shown here.

arch/x86/kernel/reboot.c+1−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kernel/rtc.c+1−2

This diff is large: its 17 lines aren’t shown here.

arch/x86/kernel/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/signal.c+31−9

This diff is large: its 90 lines aren’t shown here.

arch/x86/kernel/smpboot.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/stacktrace.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/test_rodata.c+0−5

This diff is large: its 16 lines aren’t shown here.

arch/x86/kernel/traps.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/tsc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kernel/x8664_ksyms_64.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/x86/kernel/x86_init.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kvm/Kconfig+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kvm/cpuid.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kvm/emulate.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/kvm/i8254.c+3−1

This diff is large: its 31 lines aren’t shown here.

arch/x86/kvm/iommu.c+1−3

This diff is large: its 14 lines aren’t shown here.

arch/x86/kvm/irq.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kvm/irq.h+3−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/kvm/irq_comm.c+32−17

This diff is large: its 107 lines aren’t shown here.

arch/x86/kvm/lapic.c+331−213

This diff is large: its 757 lines aren’t shown here.

arch/x86/kvm/lapic.h+15−4

This diff is large: its 46 lines aren’t shown here.

arch/x86/kvm/mmu.c+19−13

This diff is large: its 107 lines aren’t shown here.

arch/x86/kvm/mmu.h+0−5

This diff is large: its 12 lines aren’t shown here.

arch/x86/kvm/paging_tmpl.h+8−2

This diff is large: its 30 lines aren’t shown here.

arch/x86/kvm/pmu_intel.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/kvm/svm.c+7−1

This diff is large: its 22 lines aren’t shown here.

arch/x86/kvm/trace.h+15−0

This diff is large: its 22 lines aren’t shown here.

arch/x86/kvm/vmx.c+347−54

This diff is large: its 789 lines aren’t shown here.

arch/x86/kvm/x86.c+105−73

This diff is large: its 520 lines aren’t shown here.

arch/x86/lib/cache-smp.c+1−1

This diff is large: its 7 lines aren’t shown here.

arch/x86/lib/cpu.c+2−1

This diff is large: its 7 lines aren’t shown here.

arch/x86/lib/csum-partial_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/lib/csum-wrappers_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/lib/delay.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/lib/hweight.S+2−0

This diff is large: its 16 lines aren’t shown here.

arch/x86/lib/memcpy_32.c+1−1

This diff is large: its 7 lines aren’t shown here.

arch/x86/lib/mmx_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/lib/msr-reg-export.c+1−1

This diff is large: its 6 lines aren’t shown here.

arch/x86/lib/msr-smp.c+1−1

This diff is large: its 6 lines aren’t shown here.

arch/x86/lib/msr.c+2−1

This diff is large: its 7 lines aren’t shown here.

arch/x86/lib/string_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/lib/usercopy.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/lib/usercopy_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/lib/usercopy_64.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/mm/amdtopology.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/mm/dump_pagetables.c+1−5

This diff is large: its 18 lines aren’t shown here.

arch/x86/mm/highmem_32.c+1−1

This diff is large: its 7 lines aren’t shown here.

arch/x86/mm/init.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/mm/init_32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/mm/init_64.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/mm/iomap_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/mm/ioremap.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/mm/kmemcheck/kmemcheck.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/mm/kmemcheck/shadow.c+1−1

This diff is large: its 7 lines aren’t shown here.

arch/x86/mm/kmmio.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/mm/mmio-mod.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/mm/numa.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/mm/numa_32.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/mm/pat.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/mm/pat_rbtree.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/mm/pf_in.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/mm/pgtable_32.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/mm/physaddr.c+1−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/mm/srat.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/mm/tlb.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/pci/common.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/pci/sta2x11-fixup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/pci/vmd.c+33−24

This diff is large: its 187 lines aren’t shown here.

arch/x86/pci/xen.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/platform/ce4100/ce4100.c+0−2

This diff is large: its 12 lines aren’t shown here.

arch/x86/platform/efi/early_printk.c+2−2

This diff is large: its 18 lines aren’t shown here.

arch/x86/platform/efi/efi.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/platform/efi/efi_64.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/x86/platform/intel-mid/intel-mid.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/platform/intel-mid/intel_mid_vrtc.c+1−0

This diff is large: its 8 lines aren’t shown here.

arch/x86/platform/intel-mid/pwr.c+1−3

This diff is large: its 20 lines aren’t shown here.

arch/x86/platform/intel-mid/sfi.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/platform/olpc/olpc.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/platform/olpc/olpc_ofw.c+4−1

This diff is large: its 14 lines aren’t shown here.

arch/x86/platform/ts5500/ts5500.c+1−5

This diff is large: its 17 lines aren’t shown here.

arch/x86/platform/uv/uv_irq.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/platform/uv/uv_nmi.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/power/hibernate_64.c+9−9

This diff is large: its 59 lines aren’t shown here.

arch/x86/power/hibernate_asm_64.S+0−2

This diff is large: its 9 lines aren’t shown here.

arch/x86/purgatory/Makefile+2−0

This diff is large: its 9 lines aren’t shown here.

arch/x86/realmode/rm/Makefile+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/um/delay.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/um/vdso/Makefile+3−0

This diff is large: its 10 lines aren’t shown here.

arch/x86/xen/debugfs.c+0−1

This diff is large: its 8 lines aren’t shown here.

arch/x86/xen/enlighten.c+3−4

This diff is large: its 29 lines aren’t shown here.

arch/x86/xen/mmu.c+2−1

This diff is large: its 10 lines aren’t shown here.

arch/x86/xen/p2m.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/xen/platform-pci-unplug.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/x86/xen/setup.c+1−1

This diff is large: its 9 lines aren’t shown here.

arch/xtensa/kernel/pci-dma.c+6−6

This diff is large: its 53 lines aren’t shown here.

block/Kconfig+0−13

This diff is large: its 20 lines aren’t shown here.

block/bio-integrity.c+1−1

This diff is large: its 9 lines aren’t shown here.

block/bio.c+18−3

This diff is large: its 58 lines aren’t shown here.

block/blk-core.c+13−13

This diff is large: its 104 lines aren’t shown here.

block/blk-merge.c+4−4

This diff is large: its 22 lines aren’t shown here.

block/blk-mq-sysfs.c+8−4

This diff is large: its 39 lines aren’t shown here.

block/blk-mq.c+19−6

This diff is large: its 53 lines aren’t shown here.

block/blk-throttle.c+4−9

This diff is large: its 41 lines aren’t shown here.

block/cfq-iosched.c+2−2

This diff is large: its 18 lines aren’t shown here.

block/genhd.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/acpi/Kconfig+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/acpi/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/acpi/acpi_cmos_rtc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/acpi/button.c+4−0

This diff is large: its 21 lines aren’t shown here.

drivers/acpi/ec.c+37−4

This diff is large: its 88 lines aren’t shown here.

drivers/acpi/osl.c+2−3

This diff is large: its 19 lines aren’t shown here.

drivers/acpi/pci_mcfg.c+92−0

This diff is large: its 93 lines aren’t shown here.

drivers/acpi/pci_root.c+35−0

This diff is large: its 56 lines aren’t shown here.

drivers/base/firmware_class.c+127−56

This diff is large: its 390 lines aren’t shown here.

drivers/base/node.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/base/power/opp/core.c+19−12

This diff is large: its 66 lines aren’t shown here.

drivers/base/power/trace.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/base/power/wakeup.c+7−11

This diff is large: its 39 lines aren’t shown here.

drivers/base/property.c+28−0

This diff is large: its 35 lines aren’t shown here.

drivers/block/brd.c+8−11

This diff is large: its 64 lines aren’t shown here.

drivers/block/drbd/drbd_actlog.c+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/block/drbd/drbd_int.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/block/drbd/drbd_main.c+4−4

This diff is large: its 18 lines aren’t shown here.

drivers/block/drbd/drbd_receiver.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/drbd/drbd_req.c+3−3

This diff is large: its 27 lines aren’t shown here.

drivers/block/drbd/drbd_worker.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/floppy.c+9−12

This diff is large: its 35 lines aren’t shown here.

drivers/block/loop.c+30−37

This diff is large: its 95 lines aren’t shown here.

drivers/block/nbd.c+4−8

This diff is large: its 50 lines aren’t shown here.

drivers/block/pktcdvd.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/rbd.c+8−7

This diff is large: its 43 lines aren’t shown here.

drivers/block/umem.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/block/zram/zram_drv.c+16−13

This diff is large: its 99 lines aren’t shown here.

drivers/bus/Kconfig+13−0

This diff is large: its 20 lines aren’t shown here.

drivers/bus/Makefile+1−0

This diff is large: its 7 lines aren’t shown here.

drivers/bus/mvebu-mbus.c+5−5

This diff is large: its 45 lines aren’t shown here.

drivers/bus/tegra-aconnect.c+112−0

This diff is large: its 113 lines aren’t shown here.

drivers/char/Kconfig+15−27

This diff is large: its 63 lines aren’t shown here.

drivers/char/Makefile+1−1

This diff is large: its 13 lines aren’t shown here.

drivers/char/agp/intel-gtt.c+8−0

This diff is large: its 15 lines aren’t shown here.

drivers/char/genrtc.c+0−539

This diff is large: its 540 lines aren’t shown here.

drivers/char/powernv-op-panel.c+223−0

This diff is large: its 224 lines aren’t shown here.

drivers/char/random.c+2−3

This diff is large: its 26 lines aren’t shown here.

drivers/clk/clk-clps711x.c+1−1

This diff is large: its 7 lines aren’t shown here.

drivers/clk/clkdev.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/clk/ti/clk-33xx.c+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/clk/ti/clk-43xx.c+7−0

This diff is large: its 21 lines aren’t shown here.

drivers/clk/ux500/u8500_of_clk.c+2−14

This diff is large: its 49 lines aren’t shown here.

drivers/clk/ux500/u8540_clk.c+2−14

This diff is large: its 41 lines aren’t shown here.

drivers/clk/ux500/u9540_clk.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/clocksource/clps711x-timer.c+1−1

This diff is large: its 7 lines aren’t shown here.

drivers/cpufreq/Kconfig+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/cpufreq/intel_pstate.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/cpufreq/s5pv210-cpufreq.c+34−34

This diff is large: its 204 lines aren’t shown here.

drivers/cpuidle/cpuidle-powernv.c+81−20

This diff is large: its 177 lines aren’t shown here.

drivers/crypto/marvell/cesa.c+4−3

This diff is large: its 15 lines aren’t shown here.

drivers/crypto/marvell/cipher.c+7−18

This diff is large: its 83 lines aren’t shown here.

drivers/crypto/marvell/hash.c+6−6

This diff is large: its 26 lines aren’t shown here.

drivers/crypto/vmx/Kconfig+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/crypto/vmx/vmx.c+2−4

This diff is large: its 27 lines aren’t shown here.

drivers/dma-buf/Kconfig+12−3

This diff is large: its 24 lines aren’t shown here.

drivers/dma-buf/Makefile+1−1

This diff is large: its 4 lines aren’t shown here.

drivers/dma-buf/dma-buf.c+25−34

This diff is large: its 122 lines aren’t shown here.

drivers/dma-buf/fence-array.c+144−0

This diff is large: its 145 lines aren’t shown here.

drivers/dma-buf/fence.c+4−4

This diff is large: its 31 lines aren’t shown here.

drivers/dma-buf/sync_file.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/firmware/Kconfig+11−1

This diff is large: its 33 lines aren’t shown here.

drivers/firmware/Makefile+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/firmware/arm_scpi.c+34−8

This diff is large: its 86 lines aren’t shown here.

drivers/firmware/broadcom/bcm47xx_sprom.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/firmware/qcom_scm-32.c+194−133

This diff is large: its 445 lines aren’t shown here.

drivers/firmware/qcom_scm-64.c+302−5

This diff is large: its 337 lines aren’t shown here.

drivers/firmware/qcom_scm.c+342−11

This diff is large: its 390 lines aren’t shown here.

drivers/firmware/qcom_scm.h+43−4

This diff is large: its 71 lines aren’t shown here.

drivers/firmware/scpi_pm_domain.c+163−0

This diff is large: its 164 lines aren’t shown here.

drivers/fpga/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/Makefile+3−2

This diff is large: its 19 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu.h+77−35

This diff is large: its 362 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c+8−17

This diff is large: its 37 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c+50−18

This diff is large: its 132 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c+7−7

This diff is large: its 30 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c+3−0

This diff is large: its 24 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c+35−22

This diff is large: its 208 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c+4−3

This diff is large: its 21 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c+22−19

This diff is large: its 111 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_device.c+235−52

This diff is large: its 561 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_display.c+8−10

This diff is large: its 71 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c+26−5

This diff is large: its 91 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c+13−4

This diff is large: its 38 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.c+44−0

This diff is large: its 48 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_gfx.h+2−0

This diff is large: its 7 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c+7−15

This diff is large: its 67 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c+12−0

This diff is large: its 19 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_irq.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_job.c+36−44

This diff is large: its 156 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c+204−60

This diff is large: its 316 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_object.c+3−0

This diff is large: its 17 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c+153−26

This diff is large: its 279 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_powerplay.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c+84−146

This diff is large: its 323 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_sync.c+24−66

This diff is large: its 130 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h+104−11

This diff is large: its 179 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c+13−6

This diff is large: its 54 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c+78−20

This diff is large: its 182 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.h+3−0

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c+91−79

This diff is large: its 383 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_vce.h+3−1

This diff is large: its 10 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c+224−110

This diff is large: its 573 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/atombios_encoders.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/ci_dpm.c+211−6

This diff is large: its 308 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/ci_dpm.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/cik.c+15−10

This diff is large: its 86 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/cik_sdma.c+18−32

This diff is large: its 106 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/cz_dpm.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/dce_v10_0.c+9−7

This diff is large: its 51 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/dce_v11_0.c+11−10

This diff is large: its 65 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/dce_v8_0.c+16−67

This diff is large: its 151 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/fiji_smc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c+74−63

This diff is large: its 337 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/gfx_v7_0.h+0−7

This diff is large: its 12 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c+363−117

This diff is large: its 781 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/gfx_v8_0.h+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c+10−32

This diff is large: its 97 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/gmc_v7_0.h+0−7

This diff is large: its 12 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c+17−37

This diff is large: its 115 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/gmc_v8_0.h+0−7

This diff is large: its 12 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/iceland_dpm.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/iceland_smc.c+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/iceland_smum.hrenamed from drivers/gpu/drm/amd/amdgpu/iceland_smumgr.h+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/kv_dpm.c+5−3

This diff is large: its 39 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/ppsmc.h+4−0

This diff is large: its 26 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c+31−46

This diff is large: its 137 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c+16−32

This diff is large: its 100 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/tonga_smc.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c+33−44

This diff is large: its 108 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c+32−44

This diff is large: its 107 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c+135−47

This diff is large: its 285 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/vce_v2_0.c+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/vce_v3_0.c+114−46

This diff is large: its 245 lines aren’t shown here.

drivers/gpu/drm/amd/amdgpu/vi.c+45−12

This diff is large: its 129 lines aren’t shown here.

drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h+2−2

This diff is large: its 15 lines aren’t shown here.

drivers/gpu/drm/amd/amdkfd/kfd_priv.h+0−3

This diff is large: its 11 lines aren’t shown here.

drivers/gpu/drm/amd/amdkfd/kfd_process.c+2−2

This diff is large: its 23 lines aren’t shown here.

drivers/gpu/drm/amd/include/amd_pcie.h+14−0

This diff is large: its 26 lines aren’t shown here.

drivers/gpu/drm/amd/include/amd_shared.h+2−9

This diff is large: its 25 lines aren’t shown here.

drivers/gpu/drm/amd/include/asic_reg/bif/bif_5_0_d.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/amd/include/asic_reg/gca/gfx_8_0_d.h+3−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/amd/include/asic_reg/gca/gfx_8_0_sh_mask.h+84−24

This diff is large: its 185 lines aren’t shown here.

drivers/gpu/drm/amd/include/asic_reg/uvd/uvd_6_0_d.h+2−0

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/amd/include/cgs_common.h+13−6

This diff is large: its 56 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/amd_powerplay.c+143−10

This diff is large: its 205 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/eventmgr/eventactionchains.c+0−2

This diff is large: its 16 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/eventmgr/eventtasks.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/cz_clockpowergating.c+9−8

This diff is large: its 48 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/cz_hwmgr.c+11−12

This diff is large: its 52 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/fiji_clockpowergating.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c+333−71

This diff is large: its 596 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.h+0−3

This diff is large: its 10 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/fiji_powertune.c+67−7

This diff is large: its 100 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/fiji_powertune.h+15−0

This diff is large: its 30 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/functiontables.c+5−4

This diff is large: its 27 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c+25−1

This diff is large: its 40 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/hwmgr.c+7−3

This diff is large: its 42 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_clockpowergating.c+17−3

This diff is large: its 41 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.c+347−117

This diff is large: its 762 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_hwmgr.h+1−5

This diff is large: its 19 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_powertune.c+590−0

This diff is large: its 622 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/polaris10_powertune.h+25−1

This diff is large: its 51 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/pp_acpi.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/ppatomctrl.c+177−126

This diff is large: its 625 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/ppatomctrl.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/ppevvmath.h+54−111

This diff is large: its 351 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/processpptables.c+22−11

This diff is large: its 62 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/processpptables.h+10−7

This diff is large: its 27 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c+156−116

This diff is large: its 620 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.h+0−3

This diff is large: its 10 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/hwmgr/tonga_processpptables.c+9−18

This diff is large: its 100 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h+7−0

This diff is large: its 28 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/inc/hardwaremanager.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/inc/hwmgr.h+8−2

This diff is large: its 41 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/inc/smumgr.h+29−0

This diff is large: its 55 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c+3−2

This diff is large: its 21 lines aren’t shown here.

drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c+1−2

This diff is large: its 17 lines aren’t shown here.

drivers/gpu/drm/amd/scheduler/gpu_sched_trace.h+2−2

This diff is large: its 18 lines aren’t shown here.

drivers/gpu/drm/amd/scheduler/gpu_scheduler.c+131−59

This diff is large: its 304 lines aren’t shown here.

drivers/gpu/drm/amd/scheduler/gpu_scheduler.h+21−39

This diff is large: its 102 lines aren’t shown here.

drivers/gpu/drm/amd/scheduler/sched_fence.c+50−31

This diff is large: its 129 lines aren’t shown here.

drivers/gpu/drm/arc/Kconfig+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/arc/Makefile+1−1

This diff is large: its 4 lines aren’t shown here.

drivers/gpu/drm/arc/arcpgu.h+1−1

This diff is large: its 16 lines aren’t shown here.

drivers/gpu/drm/arc/arcpgu_crtc.c+5−11

This diff is large: its 26 lines aren’t shown here.

drivers/gpu/drm/arc/arcpgu_drv.c+15−49

This diff is large: its 149 lines aren’t shown here.

drivers/gpu/drm/arc/arcpgu_hdmi.c+0−18

This diff is large: its 32 lines aren’t shown here.

drivers/gpu/drm/arc/arcpgu_sim.c+128−0

This diff is large: its 129 lines aren’t shown here.

drivers/gpu/drm/arm/Kconfig+16−1

This diff is large: its 28 lines aren’t shown here.

drivers/gpu/drm/arm/Makefile+2−0

This diff is large: its 5 lines aren’t shown here.

drivers/gpu/drm/arm/hdlcd_crtc.c+0−19

This diff is large: its 31 lines aren’t shown here.

drivers/gpu/drm/arm/hdlcd_drv.c+3−10

This diff is large: its 33 lines aren’t shown here.

drivers/gpu/drm/arm/malidp_crtc.c+216−0

This diff is large: its 217 lines aren’t shown here.

drivers/gpu/drm/arm/malidp_drv.c+519−0

This diff is large: its 520 lines aren’t shown here.

drivers/gpu/drm/arm/malidp_drv.h+54−0

This diff is large: its 55 lines aren’t shown here.

drivers/gpu/drm/arm/malidp_hw.c+691−0

This diff is large: its 692 lines aren’t shown here.

drivers/gpu/drm/arm/malidp_hw.h+241−0

This diff is large: its 242 lines aren’t shown here.

drivers/gpu/drm/arm/malidp_planes.c+298−0

This diff is large: its 299 lines aren’t shown here.

drivers/gpu/drm/arm/malidp_regs.h+172−0

This diff is large: its 173 lines aren’t shown here.

drivers/gpu/drm/armada/Kconfig+0−4

This diff is large: its 12 lines aren’t shown here.

drivers/gpu/drm/armada/armada_crtc.c+8−8

This diff is large: its 66 lines aren’t shown here.

drivers/gpu/drm/armada/armada_drv.c+1−2

This diff is large: its 17 lines aren’t shown here.

drivers/gpu/drm/armada/armada_overlay.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/ast/Kconfig+0−4

This diff is large: its 12 lines aren’t shown here.

drivers/gpu/drm/ast/ast_drv.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/ast/ast_fb.c+0−3

This diff is large: its 13 lines aren’t shown here.

drivers/gpu/drm/ast/ast_main.c+1−2

This diff is large: its 11 lines aren’t shown here.

drivers/gpu/drm/ast/ast_mode.c+6−4

This diff is large: its 26 lines aren’t shown here.

drivers/gpu/drm/ast/ast_ttm.c+1−12

This diff is large: its 27 lines aren’t shown here.

drivers/gpu/drm/atmel-hlcdc/Kconfig+0−1

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c+3−3

This diff is large: its 20 lines aren’t shown here.

drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c+2−17

This diff is large: its 56 lines aren’t shown here.

drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_output.c+0−12

This diff is large: its 22 lines aren’t shown here.

drivers/gpu/drm/bochs/Kconfig+0−4

This diff is large: its 11 lines aren’t shown here.

drivers/gpu/drm/bochs/bochs_drv.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/bochs/bochs_mm.c+3−12

This diff is large: its 36 lines aren’t shown here.

drivers/gpu/drm/bridge/Kconfig+19−0

This diff is large: its 26 lines aren’t shown here.

drivers/gpu/drm/bridge/Makefile+3−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/bridge/adv7511/Kconfig+15−0

This diff is large: its 16 lines aren’t shown here.

drivers/gpu/drm/bridge/adv7511/Makefile+3−0

This diff is large: its 4 lines aren’t shown here.

drivers/gpu/drm/bridge/adv7511/adv7511.hrenamed from drivers/gpu/drm/i2c/adv7511.h+103−0

This diff is large: its 115 lines aren’t shown here.

drivers/gpu/drm/bridge/adv7511/adv7511_drv.crenamed from drivers/gpu/drm/i2c/adv7511.c+212−112

This diff is large: its 516 lines aren’t shown here.

drivers/gpu/drm/bridge/adv7511/adv7533.c+265−0

This diff is large: its 266 lines aren’t shown here.

drivers/gpu/drm/bridge/analogix-anx78xx.c+0−8

This diff is large: its 17 lines aren’t shown here.

drivers/gpu/drm/bridge/analogix/analogix_dp_core.c+2−1

This diff is large: its 17 lines aren’t shown here.

drivers/gpu/drm/bridge/analogix/analogix_dp_core.h+4−4

This diff is large: its 15 lines aren’t shown here.

drivers/gpu/drm/bridge/analogix/analogix_dp_reg.c+8−4

This diff is large: its 33 lines aren’t shown here.

drivers/gpu/drm/bridge/analogix/analogix_dp_reg.h+3−2

This diff is large: its 12 lines aren’t shown here.

drivers/gpu/drm/bridge/dw-hdmi.c+4−26

This diff is large: its 58 lines aren’t shown here.

drivers/gpu/drm/bridge/nxp-ptn3460.c+0−8

This diff is large: its 17 lines aren’t shown here.

drivers/gpu/drm/bridge/parade-ps8622.c+1−13

This diff is large: its 30 lines aren’t shown here.

drivers/gpu/drm/bridge/sii902x.c+467−0

This diff is large: its 468 lines aren’t shown here.

drivers/gpu/drm/bridge/tc358767.c+1413−0

This diff is large: its 1414 lines aren’t shown here.

drivers/gpu/drm/cirrus/Kconfig+0−4

This diff is large: its 12 lines aren’t shown here.

drivers/gpu/drm/cirrus/cirrus_drv.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/cirrus/cirrus_main.c+13−4

This diff is large: its 37 lines aren’t shown here.

drivers/gpu/drm/cirrus/cirrus_mode.c+5−6

This diff is large: its 27 lines aren’t shown here.

drivers/gpu/drm/cirrus/cirrus_ttm.c+1−12

This diff is large: its 27 lines aren’t shown here.

drivers/gpu/drm/drm_atomic.c+61−48

This diff is large: its 246 lines aren’t shown here.

drivers/gpu/drm/drm_atomic_helper.c+484−89

This diff is large: its 798 lines aren’t shown here.

drivers/gpu/drm/drm_auth.c+263−22

This diff is large: its 327 lines aren’t shown here.

drivers/gpu/drm/drm_blend.c+238−0

This diff is large: its 239 lines aren’t shown here.

drivers/gpu/drm/drm_bridge.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/drm_bufs.c+4−4

This diff is large: its 33 lines aren’t shown here.

drivers/gpu/drm/drm_cache.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/drm_crtc.c+302−423

This diff is large: its 999 lines aren’t shown here.

drivers/gpu/drm/drm_crtc_helper.c+3−33

This diff is large: its 47 lines aren’t shown here.

drivers/gpu/drm/drm_crtc_internal.h+91−1

This diff is large: its 106 lines aren’t shown here.

drivers/gpu/drm/drm_debugfs.c+0−3

This diff is large: its 12 lines aren’t shown here.

drivers/gpu/drm/drm_dp_aux_dev.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/gpu/drm/drm_dp_helper.c+80−10

This diff is large: its 133 lines aren’t shown here.

drivers/gpu/drm/drm_dp_mst_topology.c+4−10

This diff is large: its 50 lines aren’t shown here.

drivers/gpu/drm/drm_drv.c+83−162

This diff is large: its 360 lines aren’t shown here.

drivers/gpu/drm/drm_edid.c+22−0

This diff is large: its 50 lines aren’t shown here.

drivers/gpu/drm/drm_edid_load.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/drm_fb_cma_helper.c+36−7

This diff is large: its 117 lines aren’t shown here.

drivers/gpu/drm/drm_fb_helper.c+18−38

This diff is large: its 114 lines aren’t shown here.

drivers/gpu/drm/drm_fops.c+23−126

This diff is large: its 255 lines aren’t shown here.

drivers/gpu/drm/drm_fourcc.c+320−0

This diff is large: its 321 lines aren’t shown here.

drivers/gpu/drm/drm_gem.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/drm_info.c+17−100

This diff is large: its 140 lines aren’t shown here.

drivers/gpu/drm/drm_internal.h+6−15

This diff is large: its 52 lines aren’t shown here.

drivers/gpu/drm/drm_ioctl.c+90−86

This diff is large: its 274 lines aren’t shown here.

drivers/gpu/drm/drm_irq.c+71−172

This diff is large: its 442 lines aren’t shown here.

drivers/gpu/drm/drm_legacy.h+2−6

This diff is large: its 17 lines aren’t shown here.

drivers/gpu/drm/drm_lock.c+123−117

This diff is large: its 271 lines aren’t shown here.

drivers/gpu/drm/drm_memory.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/drm_mipi_dsi.c+38−0

This diff is large: its 59 lines aren’t shown here.

drivers/gpu/drm/drm_mm.c+3−1

This diff is large: its 16 lines aren’t shown here.

drivers/gpu/drm/drm_modes.c+3−1

This diff is large: its 18 lines aren’t shown here.

drivers/gpu/drm/drm_modeset_lock.c+10−3

This diff is large: its 32 lines aren’t shown here.

drivers/gpu/drm/drm_pci.c+0−51

This diff is large: its 65 lines aren’t shown here.

drivers/gpu/drm/drm_plane_helper.c+24−14

This diff is large: its 80 lines aren’t shown here.

drivers/gpu/drm/drm_platform.c+0−18

This diff is large: its 25 lines aren’t shown here.

drivers/gpu/drm/drm_prime.c+6−4

This diff is large: its 38 lines aren’t shown here.

drivers/gpu/drm/drm_probe_helper.c+19−2

This diff is large: its 33 lines aren’t shown here.

drivers/gpu/drm/drm_scatter.c+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/drm_simple_kms_helper.c+206−0

This diff is large: its 207 lines aren’t shown here.

drivers/gpu/drm/drm_sysfs.c+0−71

This diff is large: its 85 lines aren’t shown here.

drivers/gpu/drm/drm_vm.c+2−56

This diff is large: its 76 lines aren’t shown here.

drivers/gpu/drm/drm_vma_manager.c+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/gpu/drm/etnaviv/etnaviv_drv.c+1−4

This diff is large: its 20 lines aren’t shown here.

drivers/gpu/drm/etnaviv/etnaviv_gem.c+5−11

This diff is large: its 40 lines aren’t shown here.

drivers/gpu/drm/etnaviv/etnaviv_gpu.c+52−2

This diff is large: its 97 lines aren’t shown here.

drivers/gpu/drm/etnaviv/etnaviv_gpu.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/etnaviv/state_hi.xml.h+7−0

This diff is large: its 14 lines aren’t shown here.

drivers/gpu/drm/exynos/Kconfig+1−5

This diff is large: its 20 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_dp.c+2−2

This diff is large: its 13 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_drm_dpi.c+0−9

This diff is large: its 18 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_drm_drv.c+6−12

This diff is large: its 53 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_drm_drv.h+0−4

This diff is large: its 20 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_drm_dsi.c+0−9

This diff is large: its 18 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_drm_fbdev.c+2−3

This diff is large: its 19 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_drm_g2d.c+5−7

This diff is large: its 51 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_drm_gem.c+10−10

This diff is large: its 83 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_drm_gem.h+1−1

This diff is large: its 9 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_drm_iommu.c+33−44

This diff is large: its 123 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_drm_iommu.h+91−0

This diff is large: its 98 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_drm_plane.c+9−58

This diff is large: its 112 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_drm_vidi.c+0−8

This diff is large: its 17 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_hdmi.c+2−8

This diff is large: its 34 lines aren’t shown here.

drivers/gpu/drm/exynos/exynos_mixer.c+4−2

This diff is large: its 34 lines aren’t shown here.

drivers/gpu/drm/fsl-dcu/Kconfig+0−5

This diff is large: its 13 lines aren’t shown here.

drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c+17−27

This diff is large: its 91 lines aren’t shown here.

drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c+36−13

This diff is large: its 116 lines aren’t shown here.

drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h+2−0

This diff is large: its 16 lines aren’t shown here.

drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_kms.c+7−8

This diff is large: its 31 lines aren’t shown here.

drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_output.h+1−2

This diff is large: its 11 lines aren’t shown here.

drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c+16−0

This diff is large: its 23 lines aren’t shown here.

drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.h+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c+58−29

This diff is large: its 132 lines aren’t shown here.

drivers/gpu/drm/fsl-dcu/fsl_tcon.c+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/gma500/Kconfig+0−4

This diff is large: its 12 lines aren’t shown here.

drivers/gpu/drm/gma500/cdv_intel_hdmi.c+1−2

This diff is large: its 10 lines aren’t shown here.

drivers/gpu/drm/gma500/cdv_intel_lvds.c+3−6

This diff is large: its 25 lines aren’t shown here.

drivers/gpu/drm/gma500/framebuffer.c+0−9

This diff is large: its 37 lines aren’t shown here.

drivers/gpu/drm/gma500/gma_display.c+6−5

This diff is large: its 35 lines aren’t shown here.

drivers/gpu/drm/gma500/gma_display.h+2−2

This diff is large: its 11 lines aren’t shown here.

drivers/gpu/drm/gma500/psb_drv.c+2−4

This diff is large: its 13 lines aren’t shown here.

drivers/gpu/drm/gma500/psb_intel_display.c+0−7

This diff is large: its 25 lines aren’t shown here.

drivers/gpu/drm/gma500/psb_intel_lvds.c+3−6

This diff is large: its 24 lines aren’t shown here.

drivers/gpu/drm/hisilicon/kirin/Kconfig+1−0

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c+20−14

This diff is large: its 87 lines aren’t shown here.

drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c+1−10

This diff is large: its 39 lines aren’t shown here.

drivers/gpu/drm/i2c/Kconfig+0−6

This diff is large: its 13 lines aren’t shown here.

drivers/gpu/drm/i2c/Makefile+0−2

This diff is large: its 8 lines aren’t shown here.

drivers/gpu/drm/i2c/ch7006_drv.c+2−7

This diff is large: its 16 lines aren’t shown here.

drivers/gpu/drm/i915/Kconfig+22−0

This diff is large: its 29 lines aren’t shown here.

drivers/gpu/drm/i915/Kconfig.debug+3−0

This diff is large: its 10 lines aren’t shown here.

drivers/gpu/drm/i915/Makefile+10−2

This diff is large: its 54 lines aren’t shown here.

drivers/gpu/drm/i915/gvt/Makefile+5−0

This diff is large: its 6 lines aren’t shown here.

drivers/gpu/drm/i915/gvt/debug.h+34−0

This diff is large: its 35 lines aren’t shown here.

drivers/gpu/drm/i915/gvt/gvt.c+145−0

This diff is large: its 146 lines aren’t shown here.

drivers/gpu/drm/i915/gvt/gvt.h+69−0

This diff is large: its 70 lines aren’t shown here.

drivers/gpu/drm/i915/gvt/hypercall.h+38−0

This diff is large: its 39 lines aren’t shown here.

drivers/gpu/drm/i915/gvt/mpt.h+49−0

This diff is large: its 50 lines aren’t shown here.

drivers/gpu/drm/i915/i915_cmd_parser.c+40−13

This diff is large: its 161 lines aren’t shown here.

drivers/gpu/drm/i915/i915_debugfs.c+291−279

This diff is large: its 1549 lines aren’t shown here.

drivers/gpu/drm/i915/i915_dma.c+0−1587

This diff is large: its 1588 lines aren’t shown here.

drivers/gpu/drm/i915/i915_drv.c+1480−640

This diff is large: its 2550 lines aren’t shown here.

drivers/gpu/drm/i915/i915_drv.h+557−229

This diff is large: its 1464 lines aren’t shown here.

drivers/gpu/drm/i915/i915_gem.c+727−535

This diff is large: its 2365 lines aren’t shown here.

drivers/gpu/drm/i915/i915_gem_batch_pool.c+3−3

This diff is large: its 13 lines aren’t shown here.

drivers/gpu/drm/i915/i915_gem_context.c+321−194

This diff is large: its 1001 lines aren’t shown here.

drivers/gpu/drm/i915/i915_gem_dmabuf.h+45−0

This diff is large: its 46 lines aren’t shown here.

drivers/gpu/drm/i915/i915_gem_evict.c+51−4

This diff is large: its 82 lines aren’t shown here.

drivers/gpu/drm/i915/i915_gem_execbuffer.c+21−23

This diff is large: its 152 lines aren’t shown here.

drivers/gpu/drm/i915/i915_gem_fence.c+20−18

This diff is large: its 149 lines aren’t shown here.

drivers/gpu/drm/i915/i915_gem_gtt.c+228−162

This diff is large: its 872 lines aren’t shown here.

drivers/gpu/drm/i915/i915_gem_gtt.h+61−23

This diff is large: its 133 lines aren’t shown here.

drivers/gpu/drm/i915/i915_gem_render_state.c+37−8

This diff is large: its 89 lines aren’t shown here.

drivers/gpu/drm/i915/i915_gem_shrinker.c+46−12

This diff is large: its 127 lines aren’t shown here.

drivers/gpu/drm/i915/i915_gem_stolen.c+5−5

This diff is large: its 39 lines aren’t shown here.

drivers/gpu/drm/i915/i915_gem_tiling.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/gpu/drm/i915/i915_gem_userptr.c+4−8

This diff is large: its 34 lines aren’t shown here.

drivers/gpu/drm/i915/i915_gpu_error.c+125−78

This diff is large: its 456 lines aren’t shown here.

drivers/gpu/drm/i915/i915_guc_reg.h+3−3

This diff is large: its 15 lines aren’t shown here.

drivers/gpu/drm/i915/i915_guc_submission.c+306−232

This diff is large: its 861 lines aren’t shown here.

drivers/gpu/drm/i915/i915_irq.c+367−440

This diff is large: its 2352 lines aren’t shown here.

drivers/gpu/drm/i915/i915_params.c+20−3

This diff is large: its 44 lines aren’t shown here.

drivers/gpu/drm/i915/i915_params.h+4−1

This diff is large: its 22 lines aren’t shown here.

drivers/gpu/drm/i915/i915_pci.c+503−0

This diff is large: its 504 lines aren’t shown here.

drivers/gpu/drm/i915/i915_pvinfo.h+113−0

This diff is large: its 114 lines aren’t shown here.

drivers/gpu/drm/i915/i915_reg.h+59−6

This diff is large: its 182 lines aren’t shown here.

drivers/gpu/drm/i915/i915_suspend.c+4−4

This diff is large: its 36 lines aren’t shown here.

drivers/gpu/drm/i915/i915_sysfs.c+16−24

This diff is large: its 149 lines aren’t shown here.

drivers/gpu/drm/i915/i915_trace.h+24−30

This diff is large: its 153 lines aren’t shown here.

drivers/gpu/drm/i915/i915_vgpu.c+24−20

This diff is large: its 107 lines aren’t shown here.

drivers/gpu/drm/i915/i915_vgpu.h+4−88

This diff is large: its 99 lines aren’t shown here.

drivers/gpu/drm/i915/intel_atomic.c+3−2

This diff is large: its 19 lines aren’t shown here.

drivers/gpu/drm/i915/intel_audio.c+22−28

This diff is large: its 202 lines aren’t shown here.

drivers/gpu/drm/i915/intel_bios.c+21−2

This diff is large: its 51 lines aren’t shown here.

drivers/gpu/drm/i915/intel_bios.h+15−1

This diff is large: its 30 lines aren’t shown here.

This diff is larger than a page shows: the files after these aren’t listed. Clone the repository to see all of it.