Merge tag 'drm-for-v4.16-part2-fixes' of git://people.freedesktop.org/~airlied/linux
Pull more drm updates from Dave Airlie: "Ben missed sending his nouveau tree, but he really didn't have much stuff in it: - GP108 acceleration support is enabled by "secure boot" support - some clockgating work on Kepler, and bunch of fixes - the bulk of the diff is regenerated firmware files, the change to them really isn't that large. Otherwise this contains regular Intel and AMDGPU fixes" * tag 'drm-for-v4.16-part2-fixes' of git://people.freedesktop.org/~airlied/linux: (59 commits) drm/i915/bios: add DP max link rate to VBT child device struct drm/i915/cnp: Properly handle VBT ddc pin out of bounds. drm/i915/cnp: Ignore VBT request for know invalid DDC pin. drm/i915/cmdparser: Do not check past the cmd length. drm/i915/cmdparser: Check reg_table_count before derefencing. drm/i915/bxt, glk: Increase PCODE timeouts during CDCLK freq changing drm/i915/gvt: Use KVM r/w to access guest opregion drm/i915/gvt: Fix aperture read/write emulation when enable x-no-mmap=on drm/i915/gvt: only reset execlist state of one engine during VM engine reset drm/i915/gvt: refine intel_vgpu_submission_ops as per engine ops drm/amdgpu: re-enable CGCG on CZ and disable on ST drm/nouveau/clk: fix gcc-7 -Wint-in-bool-context warning drm/nouveau/mmu: Fix trailing semicolon drm/nouveau: Introduce NvPmEnableGating option drm/nouveau: Add support for SLCG for Kepler2 drm/nouveau: Add support for BLCG on Kepler2 drm/nouveau: Add support for BLCG on Kepler1 drm/nouveau: Add support for basic clockgating on Kepler1 drm/nouveau/kms/nv50: fix handling of gamma since atomic conversion drm/nouveau/kms/nv50: use INTERPOLATE_257_UNITY_RANGE LUT on newer chipsets ...
这个提交包含在:
@@ -75,6 +75,7 @@ int mcp89_fb_new(struct nvkm_device *, int, struct nvkm_fb **);
|
||||
int gf100_fb_new(struct nvkm_device *, int, struct nvkm_fb **);
|
||||
int gf108_fb_new(struct nvkm_device *, int, struct nvkm_fb **);
|
||||
int gk104_fb_new(struct nvkm_device *, int, struct nvkm_fb **);
|
||||
int gk110_fb_new(struct nvkm_device *, int, struct nvkm_fb **);
|
||||
int gk20a_fb_new(struct nvkm_device *, int, struct nvkm_fb **);
|
||||
int gm107_fb_new(struct nvkm_device *, int, struct nvkm_fb **);
|
||||
int gm200_fb_new(struct nvkm_device *, int, struct nvkm_fb **);
|
||||
|
@@ -60,6 +60,7 @@ int nvkm_secboot_reset(struct nvkm_secboot *, unsigned long);
|
||||
int gm200_secboot_new(struct nvkm_device *, int, struct nvkm_secboot **);
|
||||
int gm20b_secboot_new(struct nvkm_device *, int, struct nvkm_secboot **);
|
||||
int gp102_secboot_new(struct nvkm_device *, int, struct nvkm_secboot **);
|
||||
int gp108_secboot_new(struct nvkm_device *, int, struct nvkm_secboot **);
|
||||
int gp10b_secboot_new(struct nvkm_device *, int, struct nvkm_secboot **);
|
||||
|
||||
#endif
|
||||
|
@@ -46,6 +46,16 @@ enum nvkm_therm_attr_type {
|
||||
NVKM_THERM_ATTR_THRS_SHUTDOWN_HYST = 17,
|
||||
};
|
||||
|
||||
struct nvkm_therm_clkgate_init {
|
||||
u32 addr;
|
||||
u8 count;
|
||||
u32 data;
|
||||
};
|
||||
|
||||
struct nvkm_therm_clkgate_pack {
|
||||
const struct nvkm_therm_clkgate_init *init;
|
||||
};
|
||||
|
||||
struct nvkm_therm {
|
||||
const struct nvkm_therm_func *func;
|
||||
struct nvkm_subdev subdev;
|
||||
@@ -85,17 +95,24 @@ struct nvkm_therm {
|
||||
|
||||
int (*attr_get)(struct nvkm_therm *, enum nvkm_therm_attr_type);
|
||||
int (*attr_set)(struct nvkm_therm *, enum nvkm_therm_attr_type, int);
|
||||
|
||||
bool clkgating_enabled;
|
||||
};
|
||||
|
||||
int nvkm_therm_temp_get(struct nvkm_therm *);
|
||||
int nvkm_therm_fan_sense(struct nvkm_therm *);
|
||||
int nvkm_therm_cstate(struct nvkm_therm *, int, int);
|
||||
void nvkm_therm_clkgate_init(struct nvkm_therm *,
|
||||
const struct nvkm_therm_clkgate_pack *);
|
||||
void nvkm_therm_clkgate_enable(struct nvkm_therm *);
|
||||
void nvkm_therm_clkgate_fini(struct nvkm_therm *, bool);
|
||||
|
||||
int nv40_therm_new(struct nvkm_device *, int, struct nvkm_therm **);
|
||||
int nv50_therm_new(struct nvkm_device *, int, struct nvkm_therm **);
|
||||
int g84_therm_new(struct nvkm_device *, int, struct nvkm_therm **);
|
||||
int gt215_therm_new(struct nvkm_device *, int, struct nvkm_therm **);
|
||||
int gf119_therm_new(struct nvkm_device *, int, struct nvkm_therm **);
|
||||
int gk104_therm_new(struct nvkm_device *, int, struct nvkm_therm **);
|
||||
int gm107_therm_new(struct nvkm_device *, int, struct nvkm_therm **);
|
||||
int gm200_therm_new(struct nvkm_device *, int, struct nvkm_therm **);
|
||||
int gp100_therm_new(struct nvkm_device *, int, struct nvkm_therm **);
|
||||
|
在新工单中引用
屏蔽一个用户