Module Name: src Committed By: martin Date: Fri Nov 14 14:22:41 UTC 2014
Modified Files: src/sys/external/bsd/drm2/dist/drm/i915 [netbsd-7]: i915_gem_tiling.c intel_display.c intel_dp.c intel_overlay.c intel_tv.c src/sys/external/bsd/drm2/dist/drm/radeon [netbsd-7]: atombios_dp.c ci_dpm.c evergreen_cs.c kv_dpm.c r100.c radeon_drv.c rv770_dpm.c si_dpm.c sumo_dpm.c trinity_dpm.c src/sys/external/bsd/drm2/ttm [netbsd-7]: ttm_bo_vm.c Log Message: Pull up following revision(s) (requested by snj in ticket #224): sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.c: revision 1.5 sys/external/bsd/drm2/dist/drm/i915/intel_overlay.c: revision 1.6 sys/external/bsd/drm2/dist/drm/radeon/sumo_dpm.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/atombios_dp.c: revision 1.4 sys/external/bsd/drm2/dist/drm/i915/intel_dp.c: revision 1.9 sys/external/bsd/drm2/dist/drm/radeon/trinity_dpm.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/r100.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/rv770_dpm.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c: revision 1.3 sys/external/bsd/drm2/dist/drm/i915/i915_gem_tiling.c: revision 1.4 sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c: revision 1.4 sys/external/bsd/drm2/dist/drm/i915/intel_display.c: revision 1.13 sys/external/bsd/drm2/dist/drm/radeon/si_dpm.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/kv_dpm.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/kv_dpm.c: revision 1.4 sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c: revision 1.3 sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c: revision 1.4 sys/external/bsd/drm2/dist/drm/i915/intel_tv.c: revision 1.6 sys/external/bsd/drm2/ttm/ttm_bo_vm.c: revision 1.8 test some pointers and return EINVAL instead of blindly assuming they're valid. converts kernel crashes in to app failures. GL is still not working on evergreen for me. Use %hhx for uint8_t, not %hx. Mark some unused variables as such to shut up Clang. Ifdef out nonsensical comparison until we update from upstream. We don't use radeon_(un)register_atpx_handler at the moment. Ifdef out another nonsensical comparison. fix uninitialized fix shadowing for min() and max() from libkern Fix little C issues in i915drmkms hindering the Clang build. - Test `x == NULL', not `&container_of(x, t, base)->base == NULL'. - Fix format strings in intel_dp_probe_oui to use %hhx for uint8_t. - Omit needless ioread32 in intel_overlay.c. - Ifdef out unused definitions in intel_tv.c. Update comment to reflect recent change to. To generate a diff of this commit: cvs rdiff -u -r1.3 -r1.3.2.1 \ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_tiling.c cvs rdiff -u -r1.10.2.1 -r1.10.2.2 \ src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c cvs rdiff -u -r1.7.2.1 -r1.7.2.2 \ src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c cvs rdiff -u -r1.5 -r1.5.2.1 \ src/sys/external/bsd/drm2/dist/drm/i915/intel_overlay.c cvs rdiff -u -r1.4.2.1 -r1.4.2.2 \ src/sys/external/bsd/drm2/dist/drm/i915/intel_tv.c cvs rdiff -u -r1.2.4.1 -r1.2.4.2 \ src/sys/external/bsd/drm2/dist/drm/radeon/atombios_dp.c cvs rdiff -u -r1.2 -r1.2.4.1 \ src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c \ src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c \ src/sys/external/bsd/drm2/dist/drm/radeon/kv_dpm.c \ src/sys/external/bsd/drm2/dist/drm/radeon/r100.c \ src/sys/external/bsd/drm2/dist/drm/radeon/rv770_dpm.c \ src/sys/external/bsd/drm2/dist/drm/radeon/si_dpm.c \ src/sys/external/bsd/drm2/dist/drm/radeon/sumo_dpm.c \ src/sys/external/bsd/drm2/dist/drm/radeon/trinity_dpm.c cvs rdiff -u -r1.4 -r1.4.4.1 \ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.c cvs rdiff -u -r1.2.4.4 -r1.2.4.5 src/sys/external/bsd/drm2/ttm/ttm_bo_vm.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_tiling.c diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_tiling.c:1.3 src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_tiling.c:1.3.2.1 --- src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_tiling.c:1.3 Wed Jul 16 20:03:56 2014 +++ src/sys/external/bsd/drm2/dist/drm/i915/i915_gem_tiling.c Fri Nov 14 14:22:41 2014 @@ -295,12 +295,14 @@ i915_gem_set_tiling(struct drm_device *d { struct drm_i915_gem_set_tiling *args = data; struct drm_i915_private *dev_priv = dev->dev_private; + struct drm_gem_object *gobj; struct drm_i915_gem_object *obj; int ret = 0; - obj = to_intel_bo(drm_gem_object_lookup(dev, file, args->handle)); - if (&obj->base == NULL) + gobj = drm_gem_object_lookup(dev, file, args->handle); + if (gobj == NULL) return -ENOENT; + obj = to_intel_bo(gobj); if (!i915_tiling_ok(dev, args->stride, obj->base.size, args->tiling_mode)) { @@ -416,11 +418,13 @@ i915_gem_get_tiling(struct drm_device *d { struct drm_i915_gem_get_tiling *args = data; struct drm_i915_private *dev_priv = dev->dev_private; + struct drm_gem_object *gobj; struct drm_i915_gem_object *obj; - obj = to_intel_bo(drm_gem_object_lookup(dev, file, args->handle)); - if (&obj->base == NULL) + gobj = drm_gem_object_lookup(dev, file, args->handle); + if (gobj == NULL) return -ENOENT; + obj = to_intel_bo(gobj); mutex_lock(&dev->struct_mutex); Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.10.2.1 src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.10.2.2 --- src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c:1.10.2.1 Mon Nov 10 19:45:54 2014 +++ src/sys/external/bsd/drm2/dist/drm/i915/intel_display.c Fri Nov 14 14:22:41 2014 @@ -2082,7 +2082,8 @@ static bool intel_alloc_plane_obj(struct { struct drm_device *dev = crtc->base.dev; struct drm_i915_gem_object *obj = NULL; - struct drm_mode_fb_cmd2 mode_cmd = { .fb_id = 0 }; + static const struct drm_mode_fb_cmd2 zero_mode_cmd; + struct drm_mode_fb_cmd2 mode_cmd = zero_mode_cmd; u32 base = plane_config->base; if (plane_config->size == 0) @@ -7799,6 +7800,7 @@ static int intel_crtc_cursor_set(struct struct drm_device *dev = crtc->dev; struct drm_i915_private *dev_priv = dev->dev_private; struct intel_crtc *intel_crtc = to_intel_crtc(crtc); + struct drm_gem_object *gobj; struct drm_i915_gem_object *obj; unsigned old_width; uint32_t addr; @@ -7821,9 +7823,10 @@ static int intel_crtc_cursor_set(struct return -EINVAL; } - obj = to_intel_bo(drm_gem_object_lookup(dev, file, handle)); - if (&obj->base == NULL) + gobj = drm_gem_object_lookup(dev, file, handle); + if (gobj == NULL) return -ENOENT; + obj = to_intel_bo(gobj); if (obj->base.size < width * height * 4) { DRM_DEBUG_KMS("buffer is to small\n"); @@ -11031,12 +11034,13 @@ intel_user_framebuffer_create(struct drm struct drm_file *filp, struct drm_mode_fb_cmd2 *mode_cmd) { + struct drm_gem_object *gobj; struct drm_i915_gem_object *obj; - obj = to_intel_bo(drm_gem_object_lookup(dev, filp, - mode_cmd->handles[0])); - if (&obj->base == NULL) + gobj = drm_gem_object_lookup(dev, filp, mode_cmd->handles[0]); + if (gobj == NULL) return ERR_PTR(-ENOENT); + obj = to_intel_bo(gobj); return intel_framebuffer_create(dev, mode_cmd, obj); } Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c:1.7.2.1 src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c:1.7.2.2 --- src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c:1.7.2.1 Mon Nov 10 19:45:54 2014 +++ src/sys/external/bsd/drm2/dist/drm/i915/intel_dp.c Fri Nov 14 14:22:41 2014 @@ -2907,11 +2907,11 @@ intel_dp_probe_oui(struct intel_dp *inte intel_edp_panel_vdd_on(intel_dp); if (intel_dp_dpcd_read_wake(&intel_dp->aux, DP_SINK_OUI, buf, 3) == 3) - DRM_DEBUG_KMS("Sink OUI: %02hx%02hx%02hx\n", + DRM_DEBUG_KMS("Sink OUI: %02hhx%02hhx%02hhx\n", buf[0], buf[1], buf[2]); if (intel_dp_dpcd_read_wake(&intel_dp->aux, DP_BRANCH_OUI, buf, 3) == 3) - DRM_DEBUG_KMS("Branch OUI: %02hx%02hx%02hx\n", + DRM_DEBUG_KMS("Branch OUI: %02hhx%02hhx%02hhx\n", buf[0], buf[1], buf[2]); edp_panel_vdd_off(intel_dp, false); Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_overlay.c diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_overlay.c:1.5 src/sys/external/bsd/drm2/dist/drm/i915/intel_overlay.c:1.5.2.1 --- src/sys/external/bsd/drm2/dist/drm/i915/intel_overlay.c:1.5 Wed Jul 16 20:56:25 2014 +++ src/sys/external/bsd/drm2/dist/drm/i915/intel_overlay.c Fri Nov 14 14:22:41 2014 @@ -173,15 +173,6 @@ struct overlay_registers { # define __intel_overlay_iomem # define __iomem __intel_overlay_iomem -static inline uint32_t -ioread32(const uint32_t __intel_overlay_iomem *ptr) -{ - const uint32_t value = *ptr; - - __insn_barrier(); - return value; -} - static inline void iowrite32(uint32_t value, uint32_t __intel_overlay_iomem *ptr) { @@ -1061,6 +1052,7 @@ int intel_overlay_put_image(struct drm_d struct intel_overlay *overlay; struct drm_mode_object *drmmode_obj; struct intel_crtc *crtc; + struct drm_gem_object *new_gbo; struct drm_i915_gem_object *new_bo; struct put_image_params *params; int ret; @@ -1096,12 +1088,13 @@ int intel_overlay_put_image(struct drm_d } crtc = to_intel_crtc(obj_to_crtc(drmmode_obj)); - new_bo = to_intel_bo(drm_gem_object_lookup(dev, file_priv, - put_image_rec->bo_handle)); - if (&new_bo->base == NULL) { + new_gbo = drm_gem_object_lookup(dev, file_priv, + put_image_rec->bo_handle); + if (new_gbo == NULL) { ret = -ENOENT; goto out_free; } + new_bo = to_intel_bo(new_gbo); drm_modeset_lock_all(dev); mutex_lock(&dev->struct_mutex); Index: src/sys/external/bsd/drm2/dist/drm/i915/intel_tv.c diff -u src/sys/external/bsd/drm2/dist/drm/i915/intel_tv.c:1.4.2.1 src/sys/external/bsd/drm2/dist/drm/i915/intel_tv.c:1.4.2.2 --- src/sys/external/bsd/drm2/dist/drm/i915/intel_tv.c:1.4.2.1 Mon Nov 10 19:45:54 2014 +++ src/sys/external/bsd/drm2/dist/drm/i915/intel_tv.c Fri Nov 14 14:22:41 2014 @@ -326,11 +326,13 @@ static const struct color_conversion sdt .rv = 0x0100, .gv = 0x03ad, .bv = 0x074d, .av = 0x0200, }; +#ifndef __NetBSD__ /* XXX unused? */ static const struct color_conversion sdtv_csc_rgb = { .ry = 0x0000, .gy = 0x0f00, .by = 0x0000, .ay = 0x0166, .ru = 0x0000, .gu = 0x0000, .bu = 0x0f00, .au = 0x0166, .rv = 0x0f00, .gv = 0x0000, .bv = 0x0000, .av = 0x0166, }; +#endif static const struct color_conversion hdtv_csc_yprpb = { .ry = 0x05b3, .gy = 0x016e, .by = 0x0728, .ay = 0x0145, @@ -338,11 +340,13 @@ static const struct color_conversion hdt .rv = 0x0100, .gv = 0x03d1, .bv = 0x06bc, .av = 0x0200, }; +#ifndef __NetBSD__ /* XXX unused? */ static const struct color_conversion hdtv_csc_rgb = { .ry = 0x0000, .gy = 0x0f00, .by = 0x0000, .ay = 0x0166, .ru = 0x0000, .gu = 0x0000, .bu = 0x0f00, .au = 0x0166, .rv = 0x0f00, .gv = 0x0000, .bv = 0x0000, .av = 0x0166, }; +#endif static const struct video_levels component_levels = { .blank = 279, .black = 279, .burst = 0, Index: src/sys/external/bsd/drm2/dist/drm/radeon/atombios_dp.c diff -u src/sys/external/bsd/drm2/dist/drm/radeon/atombios_dp.c:1.2.4.1 src/sys/external/bsd/drm2/dist/drm/radeon/atombios_dp.c:1.2.4.2 --- src/sys/external/bsd/drm2/dist/drm/radeon/atombios_dp.c:1.2.4.1 Fri Aug 29 11:51:47 2014 +++ src/sys/external/bsd/drm2/dist/drm/radeon/atombios_dp.c Fri Nov 14 14:22:41 2014 @@ -371,11 +371,11 @@ static void radeon_dp_probe_oui(struct r return; if (drm_dp_dpcd_read(&radeon_connector->ddc_bus->aux, DP_SINK_OUI, buf, 3) == 3) - DRM_DEBUG_KMS("Sink OUI: %02hx%02hx%02hx\n", + DRM_DEBUG_KMS("Sink OUI: %02hhx%02hhx%02hhx\n", buf[0], buf[1], buf[2]); if (drm_dp_dpcd_read(&radeon_connector->ddc_bus->aux, DP_BRANCH_OUI, buf, 3) == 3) - DRM_DEBUG_KMS("Branch OUI: %02hx%02hx%02hx\n", + DRM_DEBUG_KMS("Branch OUI: %02hhx%02hhx%02hhx\n", buf[0], buf[1], buf[2]); } Index: src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c diff -u src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c:1.2.4.1 --- src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c:1.2 Wed Jul 16 20:59:57 2014 +++ src/sys/external/bsd/drm2/dist/drm/radeon/ci_dpm.c Fri Nov 14 14:22:41 2014 @@ -64,7 +64,7 @@ static const struct ci_pt_defaults defau { 0x17C, 0x172, 0x180, 0x1BC, 0x1B3, 0x1BD, 0x206, 0x200, 0x203, 0x25D, 0x25A, 0x255, 0x2C3, 0x2C5, 0x2B4 } }; -static const struct ci_pt_defaults defaults_bonaire_pro = +static const struct ci_pt_defaults defaults_bonaire_pro __unused = { 1, 0xF, 0xFD, 0x19, 5, 45, 0, 0x65062, { 0x8C, 0x23F, 0x244, 0xA6, 0x83, 0x85, 0x86, 0x86, 0x83, 0xDB, 0xDB, 0xDA, 0x67, 0x60, 0x5F }, @@ -78,7 +78,7 @@ static const struct ci_pt_defaults defau { 0x187, 0x187, 0x187, 0x1C7, 0x1C7, 0x1C7, 0x210, 0x210, 0x210, 0x266, 0x266, 0x266, 0x2C9, 0x2C9, 0x2C9 } }; -static const struct ci_pt_defaults defaults_saturn_pro = +static const struct ci_pt_defaults defaults_saturn_pro __unused = { 1, 0xF, 0xFD, 0x19, 5, 55, 0, 0x30000, { 0x96, 0x21D, 0x23B, 0xA1, 0x85, 0x87, 0x83, 0x84, 0x81, 0xE6, 0xE6, 0xE6, 0x71, 0x6A, 0x6A }, @@ -361,29 +361,29 @@ static int ci_min_max_v_gnbl_pm_lid_from struct ci_power_info *pi = ci_get_pi(rdev); u8 *hi_vid = pi->smc_powertune_table.BapmVddCVidHiSidd; u8 *lo_vid = pi->smc_powertune_table.BapmVddCVidLoSidd; - int i, min, max; + int i, vmin, vmax; - min = max = hi_vid[0]; + vmin = vmax = hi_vid[0]; for (i = 0; i < 8; i++) { if (0 != hi_vid[i]) { - if (min > hi_vid[i]) - min = hi_vid[i]; - if (max < hi_vid[i]) - max = hi_vid[i]; + if (vmin > hi_vid[i]) + vmin = hi_vid[i]; + if (vmax < hi_vid[i]) + vmax = hi_vid[i]; } if (0 != lo_vid[i]) { - if (min > lo_vid[i]) - min = lo_vid[i]; - if (max < lo_vid[i]) - max = lo_vid[i]; + if (vmin > lo_vid[i]) + vmin = lo_vid[i]; + if (vmax < lo_vid[i]) + vmax = lo_vid[i]; } } - if ((min == 0) || (max == 0)) + if ((vmin == 0) || (vmax == 0)) return -EINVAL; - pi->smc_powertune_table.GnbLPMLMaxVid = (u8)max; - pi->smc_powertune_table.GnbLPMLMinVid = (u8)min; + pi->smc_powertune_table.GnbLPMLMaxVid = (u8)vmax; + pi->smc_powertune_table.GnbLPMLMinVid = (u8)vmin; return 0; } @@ -2028,15 +2028,15 @@ static u8 ci_get_sleep_divider_id_from_c { u32 i; u32 tmp; - u32 min = (min_sclk_in_sr > CISLAND_MINIMUM_ENGINE_CLOCK) ? + u32 vmin = (min_sclk_in_sr > CISLAND_MINIMUM_ENGINE_CLOCK) ? min_sclk_in_sr : CISLAND_MINIMUM_ENGINE_CLOCK; - if (sclk < min) + if (sclk < vmin) return 0; for (i = CISLAND_MAX_DEEPSLEEP_DIVIDER_ID; ; i--) { tmp = sclk / (1 << i); - if (tmp >= min || i == 0) + if (tmp >= vmin || i == 0) break; } Index: src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c diff -u src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c:1.2.4.1 --- src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c:1.2 Wed Jul 16 20:59:57 2014 +++ src/sys/external/bsd/drm2/dist/drm/radeon/evergreen_cs.c Fri Nov 14 14:22:41 2014 @@ -446,21 +446,21 @@ static int evergreen_cs_track_validate_c */ if (!surf.mode) { volatile u32 *ib = p->ib.ptr; - unsigned long tmp, nby, bsize, size, min = 0; + unsigned long tmp, nby, bsize, size, vmin = 0; /* find the height the ddx wants */ if (surf.nby > 8) { - min = surf.nby - 8; + vmin = surf.nby - 8; } bsize = radeon_bo_size(track->cb_color_bo[id]); tmp = track->cb_color_bo_offset[id] << 8; - for (nby = surf.nby; nby > min; nby--) { + for (nby = surf.nby; nby > vmin; nby--) { size = nby * surf.nbx * surf.bpe * surf.nsamples; if ((tmp + size * mslice) <= bsize) { break; } } - if (nby > min) { + if (nby > vmin) { surf.nby = nby; slice = ((nby * surf.nbx) / 64) - 1; if (!evergreen_surface_check(p, &surf, "cb")) { @@ -546,6 +546,10 @@ static int evergreen_cs_track_validate_h size = roundup(nbx * nby * 4, track->npipes * (2 << 10)); size += track->htile_offset; + if (!track->htile_bo) { + dev_warn(p->dev, "%s:%d htile_bo not set", __func__, __LINE__); + return -EINVAL; + } if (size > radeon_bo_size(track->htile_bo)) { dev_warn(p->dev, "%s:%d htile surface too small %ld for %ld (%d %d)\n", __func__, __LINE__, radeon_bo_size(track->htile_bo), @@ -613,6 +617,10 @@ static int evergreen_cs_track_validate_s return -EINVAL; } offset += surf.layer_size * mslice; + if (!track->db_s_read_bo) { + dev_warn(p->dev, "%s:%d db_s_read_bo not set", __func__, __LINE__); + return -EINVAL; + } if (offset > radeon_bo_size(track->db_s_read_bo)) { dev_warn(p->dev, "%s:%d stencil read bo too small (layer size %d, " "offset %ld, max layer %d, bo size %ld)\n", @@ -632,6 +640,10 @@ static int evergreen_cs_track_validate_s return -EINVAL; } offset += surf.layer_size * mslice; + if (!track->db_s_write_bo) { + dev_warn(p->dev, "%s:%d db_s_write_bo not set", __func__, __LINE__); + return -EINVAL; + } if (offset > radeon_bo_size(track->db_s_write_bo)) { dev_warn(p->dev, "%s:%d stencil write bo too small (layer size %d, " "offset %ld, max layer %d, bo size %ld)\n", @@ -711,6 +723,10 @@ static int evergreen_cs_track_validate_d return -EINVAL; } offset += surf.layer_size * mslice; + if (!track->db_z_read_bo) { + dev_warn(p->dev, "%s:%d db_z_read_bo not set", __func__, __LINE__); + return -EINVAL; + } if (offset > radeon_bo_size(track->db_z_read_bo)) { dev_warn(p->dev, "%s:%d depth read bo too small (layer size %d, " "offset %ld, max layer %d, bo size %ld)\n", @@ -727,6 +743,10 @@ static int evergreen_cs_track_validate_d return -EINVAL; } offset += surf.layer_size * mslice; + if (!track->db_z_write_bo) { + dev_warn(p->dev, "%s:%d db_z_write_bo not set", __func__, __LINE__); + return -EINVAL; + } if (offset > radeon_bo_size(track->db_z_write_bo)) { dev_warn(p->dev, "%s:%d depth write bo too small (layer size %d, " "offset %ld, max layer %d, bo size %ld)\n", Index: src/sys/external/bsd/drm2/dist/drm/radeon/kv_dpm.c diff -u src/sys/external/bsd/drm2/dist/drm/radeon/kv_dpm.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/kv_dpm.c:1.2.4.1 --- src/sys/external/bsd/drm2/dist/drm/radeon/kv_dpm.c:1.2 Wed Jul 16 20:59:57 2014 +++ src/sys/external/bsd/drm2/dist/drm/radeon/kv_dpm.c Fri Nov 14 14:22:41 2014 @@ -1445,8 +1445,10 @@ static u8 kv_get_vce_boot_level(struct r &rdev->pm.dpm.dyn_state.vce_clock_voltage_dependency_table; for (i = 0; i < table->count; i++) { +#if 0 /* XXX Upstream has changed this to make sense. */ if (table->entries[i].evclk >= 0) /* XXX */ break; +#endif } return i; @@ -1533,8 +1535,10 @@ static u8 kv_get_acp_boot_level(struct r &rdev->pm.dpm.dyn_state.acp_clock_voltage_dependency_table; for (i = 0; i < table->count; i++) { +#if 0 /* XXX Upstream has changed this to make sense. */ if (table->entries[i].clk >= 0) /* XXX */ break; +#endif } if (i >= table->count) Index: src/sys/external/bsd/drm2/dist/drm/radeon/r100.c diff -u src/sys/external/bsd/drm2/dist/drm/radeon/r100.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/r100.c:1.2.4.1 --- src/sys/external/bsd/drm2/dist/drm/radeon/r100.c:1.2 Wed Jul 16 20:59:57 2014 +++ src/sys/external/bsd/drm2/dist/drm/radeon/r100.c Fri Nov 14 14:22:41 2014 @@ -3230,6 +3230,8 @@ void r100_bandwidth_update(struct radeon uint32_t pixel_bytes1 = 0; uint32_t pixel_bytes2 = 0; + crit_point_ff.full = 0; + disp_drain_rate.full = 0; radeon_update_display_priority(rdev); if (rdev->mode_info.crtcs[0]->base.enabled) { Index: src/sys/external/bsd/drm2/dist/drm/radeon/rv770_dpm.c diff -u src/sys/external/bsd/drm2/dist/drm/radeon/rv770_dpm.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/rv770_dpm.c:1.2.4.1 --- src/sys/external/bsd/drm2/dist/drm/radeon/rv770_dpm.c:1.2 Wed Jul 16 20:59:57 2014 +++ src/sys/external/bsd/drm2/dist/drm/radeon/rv770_dpm.c Fri Nov 14 14:22:41 2014 @@ -1229,16 +1229,16 @@ static int rv770_init_smc_table(struct r static int rv770_construct_vddc_table(struct radeon_device *rdev) { struct rv7xx_power_info *pi = rv770_get_pi(rdev); - u16 min, max, step; + u16 vmin, vmax, step; u32 steps = 0; u8 vddc_index = 0; u32 i; - radeon_atom_get_min_voltage(rdev, SET_VOLTAGE_TYPE_ASIC_VDDC, &min); - radeon_atom_get_max_voltage(rdev, SET_VOLTAGE_TYPE_ASIC_VDDC, &max); + radeon_atom_get_min_voltage(rdev, SET_VOLTAGE_TYPE_ASIC_VDDC, &vmin); + radeon_atom_get_max_voltage(rdev, SET_VOLTAGE_TYPE_ASIC_VDDC, &vmax); radeon_atom_get_voltage_step(rdev, SET_VOLTAGE_TYPE_ASIC_VDDC, &step); - steps = (max - min) / step + 1; + steps = (vmax - vmin) / step + 1; if (steps > MAX_NO_VREG_STEPS) return -EINVAL; @@ -1246,7 +1246,7 @@ static int rv770_construct_vddc_table(st for (i = 0; i < steps; i++) { u32 gpio_pins, gpio_mask; - pi->vddc_table[i].vddc = (u16)(min + i * step); + pi->vddc_table[i].vddc = (u16)(vmin + i * step); radeon_atom_get_voltage_gpio_settings(rdev, pi->vddc_table[i].vddc, SET_VOLTAGE_TYPE_ASIC_VDDC, Index: src/sys/external/bsd/drm2/dist/drm/radeon/si_dpm.c diff -u src/sys/external/bsd/drm2/dist/drm/radeon/si_dpm.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/si_dpm.c:1.2.4.1 --- src/sys/external/bsd/drm2/dist/drm/radeon/si_dpm.c:1.2 Wed Jul 16 20:59:57 2014 +++ src/sys/external/bsd/drm2/dist/drm/radeon/si_dpm.c Fri Nov 14 14:22:41 2014 @@ -2518,7 +2518,7 @@ static int si_initialize_smc_dte_tables( } static int si_get_cac_std_voltage_max_min(struct radeon_device *rdev, - u16 *max, u16 *min) + u16 *vmax, u16 *vmin) { struct si_power_info *si_pi = si_get_pi(rdev); struct radeon_cac_leakage_table *table = @@ -2530,35 +2530,35 @@ static int si_get_cac_std_voltage_max_mi if (table == NULL) return -EINVAL; - *max = 0; - *min = 0xFFFF; + *vmax = 0; + *vmin = 0xFFFF; for (i = 0; i < table->count; i++) { - if (table->entries[i].vddc > *max) - *max = table->entries[i].vddc; - if (table->entries[i].vddc < *min) - *min = table->entries[i].vddc; + if (table->entries[i].vddc > *vmax) + *vmax = table->entries[i].vddc; + if (table->entries[i].vddc < *vmin) + *vmin = table->entries[i].vddc; } if (si_pi->powertune_data->lkge_lut_v0_percent > 100) return -EINVAL; - v0_loadline = (*min) * (100 - si_pi->powertune_data->lkge_lut_v0_percent) / 100; + v0_loadline = (*vmin) * (100 - si_pi->powertune_data->lkge_lut_v0_percent) / 100; if (v0_loadline > 0xFFFFUL) return -EINVAL; - *min = (u16)v0_loadline; + *vmin = (u16)v0_loadline; - if ((*min > *max) || (*max == 0) || (*min == 0)) + if ((*vmin > *vmax) || (*vmax == 0) || (*vmin == 0)) return -EINVAL; return 0; } -static u16 si_get_cac_std_voltage_step(u16 max, u16 min) +static u16 si_get_cac_std_voltage_step(u16 vmax, u16 vmin) { - return ((max - min) + (SMC_SISLANDS_LKGE_LUT_NUM_OF_VOLT_ENTRIES - 1)) / + return ((vmax - vmin) + (SMC_SISLANDS_LKGE_LUT_NUM_OF_VOLT_ENTRIES - 1)) / SMC_SISLANDS_LKGE_LUT_NUM_OF_VOLT_ENTRIES; } Index: src/sys/external/bsd/drm2/dist/drm/radeon/sumo_dpm.c diff -u src/sys/external/bsd/drm2/dist/drm/radeon/sumo_dpm.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/sumo_dpm.c:1.2.4.1 --- src/sys/external/bsd/drm2/dist/drm/radeon/sumo_dpm.c:1.2 Wed Jul 16 20:59:57 2014 +++ src/sys/external/bsd/drm2/dist/drm/radeon/sumo_dpm.c Fri Nov 14 14:22:41 2014 @@ -1007,10 +1007,10 @@ u32 sumo_get_sleep_divider_id_from_clock struct sumo_power_info *pi = sumo_get_pi(rdev); u32 i; u32 temp; - u32 min = (min_sclk_in_sr > SUMO_MINIMUM_ENGINE_CLOCK) ? + u32 vmin = (min_sclk_in_sr > SUMO_MINIMUM_ENGINE_CLOCK) ? min_sclk_in_sr : SUMO_MINIMUM_ENGINE_CLOCK; - if (sclk < min) + if (sclk < vmin) return 0; if (!pi->enable_sclk_ds) @@ -1019,7 +1019,7 @@ u32 sumo_get_sleep_divider_id_from_clock for (i = SUMO_MAX_DEEPSLEEP_DIVIDER_ID; ; i--) { temp = sclk / sumo_get_sleep_divider_from_id(i); - if (temp >= min || i == 0) + if (temp >= vmin || i == 0) break; } return i; Index: src/sys/external/bsd/drm2/dist/drm/radeon/trinity_dpm.c diff -u src/sys/external/bsd/drm2/dist/drm/radeon/trinity_dpm.c:1.2 src/sys/external/bsd/drm2/dist/drm/radeon/trinity_dpm.c:1.2.4.1 --- src/sys/external/bsd/drm2/dist/drm/radeon/trinity_dpm.c:1.2 Wed Jul 16 20:59:57 2014 +++ src/sys/external/bsd/drm2/dist/drm/radeon/trinity_dpm.c Fri Nov 14 14:22:41 2014 @@ -1339,10 +1339,10 @@ static u8 trinity_get_sleep_divider_id_f struct trinity_power_info *pi = trinity_get_pi(rdev); u32 i; u32 temp; - u32 min = (min_sclk_in_sr > TRINITY_MINIMUM_ENGINE_CLOCK) ? + u32 vmin = (min_sclk_in_sr > TRINITY_MINIMUM_ENGINE_CLOCK) ? min_sclk_in_sr : TRINITY_MINIMUM_ENGINE_CLOCK; - if (sclk < min) + if (sclk < vmin) return 0; if (!pi->enable_sclk_ds) @@ -1350,7 +1350,7 @@ static u8 trinity_get_sleep_divider_id_f for (i = TRINITY_MAX_DEEPSLEEP_DIVIDER_ID; ; i--) { temp = sclk / sumo_get_sleep_divider_from_id(i); - if (temp >= min || i == 0) + if (temp >= vmin || i == 0) break; } Index: src/sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.c diff -u src/sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.c:1.4 src/sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.c:1.4.4.1 --- src/sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.c:1.4 Sat Jul 26 21:15:45 2014 +++ src/sys/external/bsd/drm2/dist/drm/radeon/radeon_drv.c Fri Nov 14 14:22:41 2014 @@ -152,9 +152,11 @@ void radeon_debugfs_cleanup(struct drm_m void radeon_register_atpx_handler(void); void radeon_unregister_atpx_handler(void); #else +#ifndef __NetBSD__ static inline void radeon_register_atpx_handler(void) {} static inline void radeon_unregister_atpx_handler(void) {} #endif +#endif int radeon_no_wb; int radeon_modeset = -1; Index: src/sys/external/bsd/drm2/ttm/ttm_bo_vm.c diff -u src/sys/external/bsd/drm2/ttm/ttm_bo_vm.c:1.2.4.4 src/sys/external/bsd/drm2/ttm/ttm_bo_vm.c:1.2.4.5 --- src/sys/external/bsd/drm2/ttm/ttm_bo_vm.c:1.2.4.4 Mon Nov 10 19:45:54 2014 +++ src/sys/external/bsd/drm2/ttm/ttm_bo_vm.c Fri Nov 14 14:22:41 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: ttm_bo_vm.c,v 1.2.4.4 2014/11/10 19:45:54 martin Exp $ */ +/* $NetBSD: ttm_bo_vm.c,v 1.2.4.5 2014/11/14 14:22:41 martin Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ttm_bo_vm.c,v 1.2.4.4 2014/11/10 19:45:54 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ttm_bo_vm.c,v 1.2.4.5 2014/11/14 14:22:41 martin Exp $"); #include <sys/types.h> @@ -107,9 +107,8 @@ ttm_bo_uvm_fault(struct uvm_faultinfo *u if (ret != -EBUSY) goto out0; /* - * It's currently locked. Unlock the fault (requires - * relocking uobj's vmobjlock first), wait for it, and - * start over. + * It's currently locked. Unlock the fault, wait for + * it, and start over. */ uvmfault_unlockall(ufi, ufi->entry->aref.ar_amap, NULL); (void)ttm_bo_wait_unreserved(bo);