<div dir="ltr">On Mon, Jun 29, 2015 at 2:06 PM, Mario Kleiner <span dir="ltr"><<a href="mailto:mario.kleiner.de@gmail.com" target="_blank">mario.kleiner.de@gmail.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
The bits are not a bit mask where a specific bit position corresponds to a specific pipe, but those bits encode a 5 bits wide pipe number between 0 and (2^5)-1 ie. 0-31. The comment in the code snippet you show about bits 1-6 is a bit inaccurate, as it is only bits 1-5, looking at the DRM_VBLANK_HIGH_CRTC_MASK.<br>
<br>
You could address output->pipe 0 and 1 also with that code. The reason for the special case of pipe 0 and 1 is backwards compatibility with older kernels which didn't support passing in a pipe number, but instead had "no special flags" for pipe 0 and the DRM_VBLANK_SECONDARY flag for pipe 1. A leftover from the days when there were only single/dual-head graphis cards.<br>
<br>
But apart from that this is just code transplanted from the x-org video drivers which i tested at some point both on NVidia quad-head (nouveau) and AMD six-head gpu's (radeon).<span class="HOEnZb"><font color="#888888"><br></font></span></blockquote><div><br></div><div>Thank you. I can see now that this is a "request" being constructed and thus it only has to describe one crtc at a time. I was picturing a word of flags returned from the card that was being masked against and could not see how using the number as a mask would make any sense. <br></div></div></div></div>