aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-06-16Merge branch 'for-linus' of git://git.kernel.dk/linux-blockLinus Torvalds2-12/+24
Pull block layer fix from Jens Axboe: "Just a single fix this week, fixing a regression introduced in this release. When we put the final reference to the queue, we may need to block. Ensure that we can safely do so. From Bart" * 'for-linus' of git://git.kernel.dk/linux-block: block: Fix a blk_exit_rl() regression
2017-06-16Merge branch 'dmi-for-linus' of ↵Linus Torvalds3-15/+40
git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging Pull dmi fixes from Jean Delvare. * 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging: firmware: dmi_scan: Check DMI structure length firmware: dmi: Fix permissions of product_family firmware: dmi_scan: Make dmi_walk and dmi_walk_early return real error codes firmware: dmi_scan: Look for SMBIOS 3 entry point first
2017-06-16Merge branch 'for-linus' of ↵Linus Torvalds1-3/+2
git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security Pull selinux fix from James Morris: "Fix for a double free bug in SELinux" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: selinux: fix double free in selinux_parse_opts_str()
2017-06-16Merge tag 'gvt-next-2017-06-08' of https://github.com/01org/gvt-linux into ↵Jani Nikula19-440/+604
drm-intel-next-queued gvt-next-2017-06-08 First gvt-next pull for 4.13: - optimization for per-VM mmio save/restore (Changbin) - optimization for mmio hash table (Changbin) - scheduler optimization with event (Ping) - vGPU reset refinement (Fred) - other misc refactor and cleanups, etc. Signed-off-by: Jani Nikula <[email protected]> Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
2017-06-16powerpc/debug: Add missing warn flag to WARN_ON's non-builtin pathAlexey Kardashevskiy1-1/+1
When trapped on WARN_ON(), report_bug() is expected to return BUG_TRAP_TYPE_WARN so the caller will increment NIP by 4 and continue. The __builtin_constant_p() path of the PPC's WARN_ON() calls (indirectly) __WARN_FLAGS() which has BUGFLAG_WARNING set, however the other branch does not which makes report_bug() report a bug rather than a warning. Fixes: f26dee15103f ("debug: Avoid setting BUGFLAG_WARNING twice") Signed-off-by: Alexey Kardashevskiy <[email protected]> Signed-off-by: Michael Ellerman <[email protected]>
2017-06-16KVM: PPC: Book3S HV: Ignore timebase offset on POWER9 DD1Paul Mackerras1-0/+8
POWER9 DD1 has an erratum where writing to the TBU40 register, which is used to apply an offset to the timebase, can cause the timebase to lose counts. This results in the timebase on some CPUs getting out of sync with other CPUs, which then results in misbehaviour of the timekeeping code. To work around the problem, we make KVM ignore the timebase offset for all guests on POWER9 DD1 machines. This means that live migration cannot be supported on POWER9 DD1 machines. Cc: [email protected] # v4.10+ Signed-off-by: Paul Mackerras <[email protected]>
2017-06-16drm/nouveau: use proper prototype in nouveau_pmops_runtime() definitionArnd Bergmann1-1/+1
There is a prototype for this function in the header, but the function itself lacks a 'void' in the argument list, causing a harmless warning when building with 'make W=1': drivers/gpu/drm/nouveau/nouveau_drm.c: In function 'nouveau_pmops_runtime': drivers/gpu/drm/nouveau/nouveau_drm.c:730:1: error: old-style function definition [-Werror=old-style-definition] Fixes: 321f5c5f2c49 ("drm/nouveau: replace multiple open-coded runpm support checks with function") Signed-off-by: Arnd Bergmann <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau: Skip vga_fini on non-PCI deviceMikko Perttunen1-0/+4
As with vga_init, this function doesn't make sense on non-PCI devices, and the Thunderbolt check in it dereferences a NULL pointer in that case. Add some code to skip this function when the device is not a PCI device. Signed-off-by: Mikko Perttunen <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/tegra: Don't leave GPU in resetMikko Perttunen1-3/+0
On Tegra186 systems with certain firmware revisions, leaving the GPU in reset can cause a hang. To prevent this, don't leave the GPU in reset. Signed-off-by: Mikko Perttunen <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/tegra: Skip manual unpowergating when not necessaryMikko Perttunen1-4/+6
On Tegra186, powergating is handled by the BPMP power domain provider and the "legacy" powergating API is not available. Therefore skip these calls if we are attached to a power domain. Signed-off-by: Mikko Perttunen <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/hwmon: Change permissions to numericOscar Salvador1-5/+5
This patch replaces the symbolic permissions with the numeric ones. Signed-off-by: Oscar Salvador <[email protected]> Reviewed-by: Martin Peres <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/hwmon: expose the auto_point and pwm_min/max attrsOscar Salvador1-1/+33
This patch creates a special group attributes for attrs like "*auto_point*". We check if we have support for them, and if we do, we gather them all in an attribute_group's structure which is the parameter regarding special groups of hwmon_device_register_with_info We also do the same for pwm_min/max attrs. Signed-off-by: Oscar Salvador <[email protected]> Reviewed-by: Martin Peres <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/hwmon: Remove old code, add .write/.read operationsOscar Salvador1-583/+261
This patch removes old code related to the old api and transforms the functions for the new api. It also adds the .write and .read operations. Signed-off-by: Oscar Salvador <[email protected]> Reviewed-by: Martin Peres <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/hwmon: Add nouveau_hwmon_ops structure with .is_visible/.read_stringOscar Salvador1-0/+163
This patch introduces the nouveau_hwmon_ops structure, sets up .is_visible and .read_string operations and adds all the functions for these operations. This is also a preparation for the next patches, where most of the work is being done. This code doesn't interacture with the old one. It's just to make easier the review of all patches. Signed-off-by: Oscar Salvador <[email protected]> Reviewed-by: Martin Peres <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/hwmon: Add config for all sensors and their settingsOscar Salvador1-0/+72
This is a preparation for the next patches. It just adds the sensors with their possible configurable settings and then fills the struct hwmon_channel_info with all this information. Signed-off-by: Oscar Salvador <[email protected]> Reviewed-by: Martin Peres <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/gm200-: allow non-identity mapping of SOR <-> macro linksBen Skeggs1-2/+2
Finally, everything should be in place to handle this. Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/nv50-: implement a common supervisor 3.0Ben Skeggs8-338/+35
This makes use of all the additional routing and state added in previous commits, making it possible to deal with GM20x macro link routing, while also sharing code between the NV50 and GF119 implementations. Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/nv50-: implement a common supervisor 2.2Ben Skeggs25-246/+321
This makes use of all the additional routing and state added in previous commits, making it possible to deal with GM20x macro link routing, while also sharing code between the NV50 and GF119 implementations. Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/nv50-: implement a common supervisor 2.1Ben Skeggs3-21/+11
This makes use of all the additional routing and state added in previous commits, making it possible to deal with GM20x macro link routing, while also sharing code between the NV50 and GF119 implementations. Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/nv50-: implement a common supervisor 2.0Ben Skeggs5-155/+41
This makes use of all the additional routing and state added in previous commits, making it possible to deal with GM20x macro link routing, while also sharing code between the NV50 and GF119 implementations. Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/nv50-: implement a common supervisor 1.0Ben Skeggs3-12/+70
This makes use of all the additional routing and state added in previous commits, making it possible to deal with GM20x macro link routing, while also sharing code between the NV50 and GF119 implementations. Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/nv50-gt21x: remove workaround for dp->tmds hotplug issuesBen Skeggs1-27/+0
This shouldn't have been needed ever since we started executing the DisableLT script when shutting down heads. Testing of the board this was originally written for seems to agree. Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/dp: use new devinit script interpreter entry-pointBen Skeggs1-38/+30
Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/dp: determine link bandwidth requirements from head stateBen Skeggs7-2/+62
Training/Untraining will be hooked up to the routing logic, which doesn't allow us to pass in a data rate. Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp: introduce acquire/release display path methodsBen Skeggs16-40/+287
These exist to give NVKM information on the set of display paths that the DD needs to be active at any given time. Previously, the supervisor attempted to determine this solely from OR state, but there's a few configurations where this information on its own isn't enough to determine the specific display paths in question: - ANX9805, where the PIOR protocol for both DP and TMDS is TMDS. - On a device using DCB Switched Outputs. - On GM20x and newer, with a crossbar between the SOR and macro links. After this commit, the DD tells NVKM *exactly* which display path it's attempting a modeset on. Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp: remove hw-specific customisation of output pathsBen Skeggs28-342/+36
All of the necessary hw-specific logic is now handled at the output resource level, so all of this can go away. Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/gf119-: port OR DP VCPI control to nvkm_iorBen Skeggs7-14/+16
Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/gt215-: port HDA ELD controls to nvkm_iorBen Skeggs20-136/+161
Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/g94-: port OR DP drive setting control to nvkm_iorBen Skeggs12-143/+66
Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/g94-: port OR DP training pattern control to nvkm_iorBen Skeggs12-30/+27
Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/g94-: port OR DP link power control to nvkm_iorBen Skeggs12-43/+17
Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/g94-: port OR DP link setup to nvkm_iorBen Skeggs12-30/+47
Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/g94-: port OR DP lane mapping to nvkm_iorBen Skeggs9-9/+30
Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/g84-: port OR HDMI control to nvkm_iorBen Skeggs29-219/+134
Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/nv50-: port OR manual sink detection to nvkm_iorBen Skeggs17-80/+40
Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/nv50-: port OR power state control to nvkm_iorBen Skeggs32-257/+108
Also removes the user-facing methods to these controls, as they're not currently utilised by the DD anyway. Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/nv50-: fetch head/OR state at beginning of supervisorBen Skeggs17-0/+165
This data will be used by essentially every part of the supervisor handling process. Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/nv50-: execute supervisor on its own workqueueBen Skeggs3-3/+10
Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/dp: train link only when actively displaying an imageBen Skeggs2-10/+6
This essentially (unless the link becomes unstable and needs to be re-trained) gives us a single entry-point to link training, during supervisor handling, where we can ensure all routing is up to date. Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/dp: only check for re-train when the link is activeBen Skeggs4-45/+13
An upcoming commit will limit link training to only when the sink is meant to be displaying an image. We still need IRQs enabled even when the link isn't trained (for MST messages), but don't want to train the link unnecessarily. Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/dp: determine a failsafe link training rateBen Skeggs1-19/+35
The aim here is to protect the OR against locking up when something unexpected happens (such as the display disappearing during modeset, or the DD misbehaving). Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/dp: use cached link configuration when checking link statusBen Skeggs1-22/+17
Saves some trips across the aux channel. Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/dp: no need for lt_state except during manual link trainingBen Skeggs1-31/+24
This struct doesn't hold link configuration data anymore, so we can limit its use to internal DP training (anx9805 handles training for external DP). Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/dp: store current link configuration in nvkm_iorBen Skeggs2-33/+41
We care about this information outside of link training. Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp/dp: remove DP_PWR methodBen Skeggs2-31/+0
This hasn't been used since atomic. We may want to re-implement "fast" DPMS at some point, but for now, this just gets in the way. Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp: identity-map display paths to output resourcesBen Skeggs4-8/+89
This essentially replicates our current behaviour in a way that's compatible with the new model that's emerging, so that we're able to start porting the hw-specific functions to it. Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp: fork off some new hw-specific implementationsBen Skeggs20-13/+336
Upcoming commits make supervisor handling share code between the NV50 and GF119 implementations. Because of this, and a few other cleanups, we need to allow some additional customisation. Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp: introduce input/output resource abstractionBen Skeggs25-8/+262
In order to properly support the SOR -> SOR + pad macro separation that occurred with GM20x GPUs, we need to separate OR handling out of the output path code. This will be used as the base to support ORs (DAC, SOR, PIOR). Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp: common implementation of scanoutpos method in nvkm_headBen Skeggs21-150/+161
Signed-off-by: Ben Skeggs <[email protected]>
2017-06-16drm/nouveau/disp: move vblank_{get,put} methods into nvkm_headBen Skeggs20-99/+60
Signed-off-by: Ben Skeggs <[email protected]>