Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d34d4d8a authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge branch 'drm-fixes-3.18' of git://people.freedesktop.org/~agd5f/linux into drm-fixes

- dpm stability fixes for SI and KV
- remove an invalid pci id
- kmalloc_array fixes
- minor cleanups

* 'drm-fixes-3.18' of git://people.freedesktop.org/~agd5f/linux:
  drm/radeon: remove some buggy dead code
  drm/radeon: remove invalid pci id
  drm/radeon: dpm fixes for asrock systems
  radeon: clean up coding style differences in radeon_get_bios()
  drm/radeon: Use drm_malloc_ab instead of kmalloc_array
  drm/radeon/dpm: disable ulv support on SI
parents 8d1806aa 072c44bf
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -3005,7 +3005,7 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
	u32 vgt_cache_invalidation;
	u32 hdp_host_path_cntl, tmp;
	u32 disabled_rb_mask;
	int i, j, num_shader_engines, ps_thread_count;
	int i, j, ps_thread_count;

	switch (rdev->family) {
	case CHIP_CYPRESS:
@@ -3303,8 +3303,6 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
	rdev->config.evergreen.tile_config |=
		((gb_addr_config & 0x30000000) >> 28) << 12;

	num_shader_engines = (gb_addr_config & NUM_SHADER_ENGINES(3) >> 12) + 1;

	if ((rdev->family >= CHIP_CEDAR) && (rdev->family <= CHIP_HEMLOCK)) {
		u32 efuse_straps_4;
		u32 efuse_straps_3;
+16 −3
Original line number Diff line number Diff line
@@ -2725,6 +2725,10 @@ int kv_dpm_init(struct radeon_device *rdev)

        pi->sram_end = SMC_RAM_END;

	/* Enabling nb dpm on an asrock system prevents dpm from working */
	if (rdev->pdev->subsystem_vendor == 0x1849)
		pi->enable_nb_dpm = false;
	else
		pi->enable_nb_dpm = true;

	pi->caps_power_containment = true;
@@ -2740,10 +2744,19 @@ int kv_dpm_init(struct radeon_device *rdev)
	pi->caps_sclk_ds = true;
	pi->enable_auto_thermal_throttling = true;
	pi->disable_nb_ps3_in_battery = false;
	if (radeon_bapm == 0)
	if (radeon_bapm == -1) {
		/* There are stability issues reported on with
		 * bapm enabled on an asrock system.
		 */
		if (rdev->pdev->subsystem_vendor == 0x1849)
			pi->bapm_enable = false;
		else
			pi->bapm_enable = true;
	} else if (radeon_bapm == 0) {
		pi->bapm_enable = false;
	} else {
		pi->bapm_enable = true;
	}
	pi->voltage_drop_t = 0;
	pi->caps_sclk_throttle_low_notification = false;
	pi->caps_fps = false; /* true? */
+2 −4
Original line number Diff line number Diff line
@@ -658,12 +658,10 @@ bool radeon_get_bios(struct radeon_device *rdev)
		r = igp_read_bios_from_vram(rdev);
	if (r == false)
		r = radeon_read_bios(rdev);
	if (r == false) {
	if (r == false)
		r = radeon_read_disabled_bios(rdev);
	}
	if (r == false) {
	if (r == false)
		r = radeon_read_platform_bios(rdev);
	}
	if (r == false || rdev->bios == NULL) {
		DRM_ERROR("Unable to locate a BIOS ROM\n");
		rdev->bios = NULL;
+1 −1
Original line number Diff line number Diff line
@@ -450,7 +450,7 @@ static void radeon_cs_parser_fini(struct radeon_cs_parser *parser, int error, bo
	kfree(parser->track);
	kfree(parser->relocs);
	kfree(parser->relocs_ptr);
	kfree(parser->vm_bos);
	drm_free_large(parser->vm_bos);
	for (i = 0; i < parser->nchunks; i++)
		drm_free_large(parser->chunks[i].kdata);
	kfree(parser->chunks);
+2 −2
Original line number Diff line number Diff line
@@ -314,7 +314,7 @@ unsigned radeon_ring_backup(struct radeon_device *rdev, struct radeon_ring *ring
	}

	/* and then save the content of the ring */
	*data = kmalloc_array(size, sizeof(uint32_t), GFP_KERNEL);
	*data = drm_malloc_ab(size, sizeof(uint32_t));
	if (!*data) {
		mutex_unlock(&rdev->ring_lock);
		return 0;
@@ -356,7 +356,7 @@ int radeon_ring_restore(struct radeon_device *rdev, struct radeon_ring *ring,
	}

	radeon_ring_unlock_commit(rdev, ring, false);
	kfree(data);
	drm_free_large(data);
	return 0;
}

Loading