summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* drm/vmwgfx: Allow the UPDATE_LAYOUT ioctl from control nodesThomas Hellstrom2016-03-141-1/+1
| | | | | | | | On vmware there is a daemon telling the KMS system about the GUI layout. Typically it talks to the X server but in the absence of an X server or if there are multiple, it wants to talk directly to the vmwgfx kernel module. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
* drm/vmwgfx: Send a hotplug event at master_setThomas Hellstrom2016-03-141-0/+1
| | | | | | | | Make sure drm clients (mostly the X server) are communicated the current layout when switched in. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Sinclair Yeh <syeh@vmware.com>
* drm/vmwgfx: Default to explicit crtc placement for screen targets and screen ↵Thomas Hellstrom2016-03-142-2/+2
| | | | | | | | | | objects Enables using multiple framebuffers. For legacy display units, explicit crtc placement is not supported due to hardware limitations. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Sinclair Yeh <syeh@vmware.com>
* drm/vmwgfx: Calculate the cursor position based on the crtc gui originThomas Hellstrom2016-03-145-2/+10
| | | | | | | | | | | Base the cursor position on the coordinate of the crtc origin in the gui coordinate system rather than in the framebuffer coordinate system. With explicit placement, these may differ (for example when two crtcs scan out of the same framebuffer location). Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Sinclair Yeh <syeh@vmware.com>
* drm/vmwgfx: Add connector properties to switch between explicit and implicit ↵Thomas Hellstrom2016-03-146-2/+54
| | | | | | | placement Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Sinclair Yeh <syeh@vmware.com>
* drm/vmwgfx: Add suggested screen x and y connector propertiesThomas Hellstrom2016-03-145-4/+55
| | | | | | | | | | | Introduced by qxl, add these properties as a generic way to tell a display manager about the GUI layout. Also add the hotplug_mode_update_property which advises display managers to reread the mode list on a hotplug event. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
* drm/vmwgfx: Add implicit framebuffer checks to the screen target codeThomas Hellstrom2016-03-141-1/+16
| | | | | | | | Just like for screen objects, make sure we use only a single framebuffer for implicit placement. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Sinclair Yeh <syeh@vmware.com>
* drm/vmwgfx: Break out implicit fb codeThomas Hellstrom2016-03-144-112/+120
| | | | | | | | Preparation for supporting explicit fbs for screen objects and screen targets. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Sinclair Yeh <syeh@vmware.com>
* drm/vmwgfx: Rework screen target page flips v2Thomas Hellstrom2016-03-141-234/+188Star
| | | | | | | | | | | | | | | | | | | | Gnome-Shell / Wayland assumes that page-flips can be done on a crtc regardless of framebuffer size and the crtc position within the framebuffer. Therefore rework the screen target code to correctly handle changes in framebuffer size and content_fb_type. Also make sure that we update the screen target correctly when the content_fb_type is not SAME_AS_DISPLAY. This commit breaks out the framebuffer binding code from crtc_set so it can be used both from page_flip() and crtc_set() and reworks those functions a bit to be more robust. v2: Address review comments by Sinclair Yeh. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Sinclair Yeh <syeh@vmware.com>
* drm/vmwgfx: Fix screen object page flips for large framebuffersThomas Hellstrom2016-03-143-10/+14
| | | | | | | | | | For page flips the framebuffer may be much larger than the crtc scanout area and may be attached to multiple crtcs. When flipping a crtc, make sure we dirty only that crtc's area of the framebuffer. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Sinclair Yeh <syeh@vmware.com>
* drm/vmwgfx: Fix a screen object framebuffer dirty corner caseThomas Hellstrom2016-03-141-0/+15
| | | | | | | | | If there are no cliprects for a particular crtc, an invalid command would have been generated. If that's the case, instead ditch the generated command sequence. Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> Reviewed-by: Sinclair Yeh <syeh@vmware.com>
* drm/vmwgfx: Add DXGenMips supportCharmaine Lee2016-03-141-1/+21
| | | | | | | | Add support for DXGenMips command. Signed-off-by: Charmaine Lee <charmainel@vmware.com> Reviewed-by: Sinclair Yeh <syeh@vmware.com> Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
* Merge branch 'linux-4.6' of git://github.com/skeggsb/linux into drm-nextDave Airlie2016-03-14145-6512/+9146
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - GM20x secure boot support (hence, acceleration, finally \o/) - GM200 support - GM20B clock driver - Support for power sensors on some GPUs - Various other fixes all over the place * 'linux-4.6' of git://github.com/skeggsb/linux: (95 commits) drm/nouveau/clk/gm20b: add basic driver drm/nouveau/clk/gk20a: share reusable structures/functions drm/nouveau/clk/gk20a: set lowest frequency during init() drm/nouveau/clk/gk20a: split gk20a_clk_new() drm/nouveau/clk/gk20a: abstract pl_to_div drm/nouveau/clk/gk20a: put mnp values into their own struct drm/nouveau/clk/gk20a: emit parent rate as debug message drm/nouveau/clk/gk20a: only restore divider to 1:1 if needed drm/nouveau/clk/gk20a: only compute n_lo if needed drm/nouveau/clk/gk20a: fix VCO bit mask drm/nouveau/clk/gk20a: rename enable/disable functions drm/nouveau/clk/gk20a: reorganize variables in gk20a_pllg_calc_mnp() drm/nouveau/clk/gk20a: convert parameters to Khz drm/nouveau/volt: add GM20B driver drm/nouveau/volt/gk20a: split constructor drm/nouveau/volt/gk20a: share reusable members & functions drm/nouveau/ce/gm107: expose MaxwellDmaCopyA drm/nouveau/fifo/gm107: KeplerChannelGpfifoB, and 2048 channels drm/nouveau/fifo/gk110: expose KeplerChannelGpfifoB drm/nouveau/fifo/gk104: submit NOP after all PBDMA_INTR_0, not just DEVICE ...
| * drm/nouveau/clk/gm20b: add basic driverAlexandre Courbot2016-03-144-0/+201
| | | | | | | | | | | | | | Add a basic clock driver that reuses the GK20A logic. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/clk/gk20a: share reusable structures/functionsAlexandre Courbot2016-03-142-36/+73
| | | | | | | | | | | | | | Make functions/structures that the GM20B driver will reuse public. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/clk/gk20a: set lowest frequency during init()Alexandre Courbot2016-03-141-2/+5
| | | | | | | | | | | | | | | | Err on the safe side by setting the lowest frequency (and thus voltage) during device init. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/clk/gk20a: split gk20a_clk_new()Alexandre Courbot2016-03-141-12/+31
| | | | | | | | | | | | | | | | | | | | | | This allows to instanciate drivers that use the same logic as gk20a with different parameters. Add a constructor function to allow other chips that inherit from this clock to easily initialize its members Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/clk/gk20a: abstract pl_to_divAlexandre Courbot2016-03-141-21/+36
| | | | | | | | | | | | | | | | pl_to_div may be done differently depending on the chip. Abstract this operation so the same logic can be reused for them as well. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/clk/gk20a: put mnp values into their own structAlexandre Courbot2016-03-141-31/+36
| | | | | | | | | | | | | | | | This allows us to read them using one single function and will be handy to the GM20B driver. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/clk/gk20a: emit parent rate as debug messageAlexandre Courbot2016-03-141-2/+2
| | | | | | | | | | | | | | Most users are probably not interested in this information. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/clk/gk20a: only restore divider to 1:1 if neededAlexandre Courbot2016-03-141-3/+10
| | | | | | | | | | | | | | | | | | Only restore the 1:1 divider if it is not set already. Also use the proper masks for this operation and add a second write as done in the Android code. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/clk/gk20a: only compute n_lo if neededAlexandre Courbot2016-03-141-3/+5
| | | | | | | | | | | | | | | | n_lo is used if we are going to slide. Compute it only if that condition succeeds to avoid confusion about future usage of this computation. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/clk/gk20a: fix VCO bit maskAlexandre Courbot2016-03-141-1/+2
| | | | | | | | | | | | | | | | | | Fix the mask specified to switch to VCO mode was given as an (incorrect) immediate value. Although the side-effect happens to be the same, this is clearly incorrect. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/clk/gk20a: rename enable/disable functionsAlexandre Courbot2016-03-141-28/+24Star
| | | | | | | | | | | | | | | | | | gk20a_pllg_disable() is only used in the context of gk20a_clk_fini(). Move its body there and rename _gk20a_pllg_enable() and _gk20a_pllg_disable() to non-underscored versions. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/clk/gk20a: reorganize variables in gk20a_pllg_calc_mnp()Alexandre Courbot2016-03-141-4/+8
| | | | | | | | | | | | | | | | Move some variables declarations to the scope where they are actually used to make the code easier to follow. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/clk/gk20a: convert parameters to KhzAlexandre Courbot2016-03-141-15/+17
| | | | | | | | | | | | | | Perform computations in Khz instead of Mhz for better precision. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/volt: add GM20B driverAlexandre Courbot2016-03-144-0/+59
| | | | | | | | | | | | | | Add basic GM20B volt driver that reuses the GK20A logic. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/volt/gk20a: split constructorAlexandre Courbot2016-03-142-12/+25
| | | | | | | | | | | | | | | | Split the constructor function so we can reuse the same logic in other chips. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/volt/gk20a: share reusable members & functionsVince Hsu2016-03-142-18/+51
| | | | | | | | | | | | | | | | | | The CVB calculation and voltage setting functions can be reused for the future chips. So move the declaration to gk20a.h. Signed-off-by: Vince Hsu <vinceh@nvidia.com> Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/ce/gm107: expose MaxwellDmaCopyABen Skeggs2016-03-144-2/+59
| | | | | | | | | | | | The HW accepts KeplerDmaCopyA and MaxwellDmaCopyA classes. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fifo/gm107: KeplerChannelGpfifoB, and 2048 channelsBen Skeggs2016-03-144-1/+49
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fifo/gk110: expose KeplerChannelGpfifoBBen Skeggs2016-03-149-2/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This class supports a WFI method (0x0078) that's not present on the KeplerChannelGpfifoA class. The binary driver exposes both classes on these GPUs for some reason, though there doesn't appear to be any difference in the setup that's done for each (ie. even if you allocate GpfifoA, the WFI method will still work). We shall just expose GpfifoB, as I don't see a good reason to report the presence of both. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fifo/gk104: submit NOP after all PBDMA_INTR_0, not just DEVICEBen Skeggs2016-03-141-1/+2
| | | | | | | | | | | | Prevents the same interrupt from re-triggering forever. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fifo/gk104: add vic plumbingBen Skeggs2016-03-142-0/+3
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fifo/gk104: add sec plumbingBen Skeggs2016-03-142-0/+3
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fifo/gk104: add nvdec plumbingBen Skeggs2016-03-143-0/+4
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fifo/gk104: add nvenc plumbingBen Skeggs2016-03-143-7/+25
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fifo/gk104: add msenc plumbingBen Skeggs2016-03-141-0/+1
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/core: add vic plumbingBen Skeggs2016-03-144-0/+7
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/core: add nvdec plumbingBen Skeggs2016-03-147-0/+13
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/core: add nvenc plumbingBen Skeggs2016-03-147-21/+41
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/core: add msenc plumbingBen Skeggs2016-03-143-0/+6
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/core: sort engine indices alphabeticallyBen Skeggs2016-03-141-14/+17
| | | | | | | | | | | | Unlike subdevs, these aren't initialised in a defined order. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fifo/gk104: make use of topology info during gpfifo constructionBen Skeggs2016-03-145-64/+127
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fifo/gk104: make use of topology info during fault recoveryBen Skeggs2016-03-142-34/+26Star
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fifo/gk104: make use of topology info when handling ctxsw timeoutBen Skeggs2016-03-141-20/+9Star
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fifo/gk104: read device topology information from hwBen Skeggs2016-03-143-5/+103
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fifo/gk104: cosmetic engine->runlist changesBen Skeggs2016-03-144-48/+50
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fifo/gk104: don't attempt recovery of unknown mmu enginesBen Skeggs2016-03-141-1/+1
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fifo/gk104: identify fault-recovery members more clearlyBen Skeggs2016-03-142-10/+12
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>