Merge commit '5359533801e3dd3abca5b7d3d985b0b33fd9fe8b' into drm-core-next
This commit changed an internal radeon structure, that meant a new driver in -next had to be fixed up, merge in the commit and fix up the driver. Also fixes a trivial nouveau merge. Conflicts: drivers/gpu/drm/nouveau/nouveau_mem.c
This commit is contained in:
@@ -677,7 +677,7 @@ int drm_fb_helper_setcmap(struct fb_cmap *cmap, struct fb_info *info)
|
||||
struct drm_crtc_helper_funcs *crtc_funcs;
|
||||
u16 *red, *green, *blue, *transp;
|
||||
struct drm_crtc *crtc;
|
||||
int i, rc = 0;
|
||||
int i, j, rc = 0;
|
||||
int start;
|
||||
|
||||
for (i = 0; i < fb_helper->crtc_count; i++) {
|
||||
@@ -690,7 +690,7 @@ int drm_fb_helper_setcmap(struct fb_cmap *cmap, struct fb_info *info)
|
||||
transp = cmap->transp;
|
||||
start = cmap->start;
|
||||
|
||||
for (i = 0; i < cmap->len; i++) {
|
||||
for (j = 0; j < cmap->len; j++) {
|
||||
u16 hred, hgreen, hblue, htransp = 0xffff;
|
||||
|
||||
hred = *red++;
|
||||
|
||||
@@ -1566,7 +1566,17 @@
|
||||
|
||||
/* Backlight control */
|
||||
#define BLC_PWM_CTL 0x61254
|
||||
#define BACKLIGHT_MODULATION_FREQ_SHIFT (17)
|
||||
#define BLC_PWM_CTL2 0x61250 /* 965+ only */
|
||||
#define BLM_COMBINATION_MODE (1 << 30)
|
||||
/*
|
||||
* This is the most significant 15 bits of the number of backlight cycles in a
|
||||
* complete cycle of the modulated backlight control.
|
||||
*
|
||||
* The actual value is this field multiplied by two.
|
||||
*/
|
||||
#define BACKLIGHT_MODULATION_FREQ_MASK (0x7fff << 17)
|
||||
#define BLM_LEGACY_MODE (1 << 16)
|
||||
/*
|
||||
* This is the number of cycles out of the backlight modulation cycle for which
|
||||
* the backlight is on.
|
||||
|
||||
@@ -30,6 +30,8 @@
|
||||
|
||||
#include "intel_drv.h"
|
||||
|
||||
#define PCI_LBPC 0xf4 /* legacy/combination backlight modes */
|
||||
|
||||
void
|
||||
intel_fixed_panel_mode(struct drm_display_mode *fixed_mode,
|
||||
struct drm_display_mode *adjusted_mode)
|
||||
@@ -110,6 +112,19 @@ done:
|
||||
dev_priv->pch_pf_size = (width << 16) | height;
|
||||
}
|
||||
|
||||
static int is_backlight_combination_mode(struct drm_device *dev)
|
||||
{
|
||||
struct drm_i915_private *dev_priv = dev->dev_private;
|
||||
|
||||
if (INTEL_INFO(dev)->gen >= 4)
|
||||
return I915_READ(BLC_PWM_CTL2) & BLM_COMBINATION_MODE;
|
||||
|
||||
if (IS_GEN2(dev))
|
||||
return I915_READ(BLC_PWM_CTL) & BLM_LEGACY_MODE;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static u32 i915_read_blc_pwm_ctl(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
u32 val;
|
||||
@@ -166,6 +181,9 @@ u32 intel_panel_get_max_backlight(struct drm_device *dev)
|
||||
if (INTEL_INFO(dev)->gen < 4)
|
||||
max &= ~1;
|
||||
}
|
||||
|
||||
if (is_backlight_combination_mode(dev))
|
||||
max *= 0xff;
|
||||
}
|
||||
|
||||
DRM_DEBUG_DRIVER("max backlight PWM = %d\n", max);
|
||||
@@ -183,6 +201,14 @@ u32 intel_panel_get_backlight(struct drm_device *dev)
|
||||
val = I915_READ(BLC_PWM_CTL) & BACKLIGHT_DUTY_CYCLE_MASK;
|
||||
if (IS_PINEVIEW(dev))
|
||||
val >>= 1;
|
||||
|
||||
if (is_backlight_combination_mode(dev)){
|
||||
u8 lbpc;
|
||||
|
||||
val &= ~1;
|
||||
pci_read_config_byte(dev->pdev, PCI_LBPC, &lbpc);
|
||||
val *= lbpc;
|
||||
}
|
||||
}
|
||||
|
||||
DRM_DEBUG_DRIVER("get backlight PWM = %d\n", val);
|
||||
@@ -205,6 +231,16 @@ void intel_panel_set_backlight(struct drm_device *dev, u32 level)
|
||||
|
||||
if (HAS_PCH_SPLIT(dev))
|
||||
return intel_pch_panel_set_backlight(dev, level);
|
||||
|
||||
if (is_backlight_combination_mode(dev)){
|
||||
u32 max = intel_panel_get_max_backlight(dev);
|
||||
u8 lbpc;
|
||||
|
||||
lbpc = level * 0xfe / max + 1;
|
||||
level /= lbpc;
|
||||
pci_write_config_byte(dev->pdev, PCI_LBPC, lbpc);
|
||||
}
|
||||
|
||||
tmp = I915_READ(BLC_PWM_CTL);
|
||||
if (IS_PINEVIEW(dev)) {
|
||||
tmp &= ~(BACKLIGHT_DUTY_CYCLE_MASK - 1);
|
||||
|
||||
@@ -83,7 +83,8 @@ nouveau_dma_init(struct nouveau_channel *chan)
|
||||
return ret;
|
||||
|
||||
/* NV_MEMORY_TO_MEMORY_FORMAT requires a notifier object */
|
||||
ret = nouveau_notifier_alloc(chan, NvNotify0, 32, &chan->m2mf_ntfy);
|
||||
ret = nouveau_notifier_alloc(chan, NvNotify0, 32, 0xfd0, 0x1000,
|
||||
&chan->m2mf_ntfy);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
||||
@@ -853,7 +853,8 @@ extern const struct ttm_mem_type_manager_func nouveau_gart_manager;
|
||||
extern int nouveau_notifier_init_channel(struct nouveau_channel *);
|
||||
extern void nouveau_notifier_takedown_channel(struct nouveau_channel *);
|
||||
extern int nouveau_notifier_alloc(struct nouveau_channel *, uint32_t handle,
|
||||
int cout, uint32_t *offset);
|
||||
int cout, uint32_t start, uint32_t end,
|
||||
uint32_t *offset);
|
||||
extern int nouveau_notifier_offset(struct nouveau_gpuobj *, uint32_t *);
|
||||
extern int nouveau_ioctl_notifier_alloc(struct drm_device *, void *data,
|
||||
struct drm_file *);
|
||||
|
||||
@@ -759,8 +759,10 @@ nouveau_vram_manager_new(struct ttm_mem_type_manager *man,
|
||||
ret = vram->get(dev, mem->num_pages << PAGE_SHIFT,
|
||||
mem->page_alignment << PAGE_SHIFT, size_nc,
|
||||
(nvbo->tile_flags >> 8) & 0x3ff, &node);
|
||||
if (ret)
|
||||
return ret;
|
||||
if (ret) {
|
||||
mem->mm_node = NULL;
|
||||
return (ret == -ENOSPC) ? 0 : ret;
|
||||
}
|
||||
|
||||
node->page_shift = 12;
|
||||
if (nvbo->vma.node)
|
||||
|
||||
@@ -123,7 +123,7 @@ nouveau_mm_get(struct nouveau_mm *rmm, int type, u32 size, u32 size_nc,
|
||||
return 0;
|
||||
}
|
||||
|
||||
return -ENOMEM;
|
||||
return -ENOSPC;
|
||||
}
|
||||
|
||||
int
|
||||
|
||||
@@ -95,7 +95,8 @@ nouveau_notifier_gpuobj_dtor(struct drm_device *dev,
|
||||
|
||||
int
|
||||
nouveau_notifier_alloc(struct nouveau_channel *chan, uint32_t handle,
|
||||
int size, uint32_t *b_offset)
|
||||
int size, uint32_t start, uint32_t end,
|
||||
uint32_t *b_offset)
|
||||
{
|
||||
struct drm_device *dev = chan->dev;
|
||||
struct drm_nouveau_private *dev_priv = dev->dev_private;
|
||||
@@ -104,9 +105,10 @@ nouveau_notifier_alloc(struct nouveau_channel *chan, uint32_t handle,
|
||||
uint32_t offset;
|
||||
int target, ret;
|
||||
|
||||
mem = drm_mm_search_free(&chan->notifier_heap, size, 0, 0);
|
||||
mem = drm_mm_search_free_in_range(&chan->notifier_heap, size, 0,
|
||||
start, end, 0);
|
||||
if (mem)
|
||||
mem = drm_mm_get_block(mem, size, 0);
|
||||
mem = drm_mm_get_block_range(mem, size, 0, start, end);
|
||||
if (!mem) {
|
||||
NV_ERROR(dev, "Channel %d notifier block full\n", chan->id);
|
||||
return -ENOMEM;
|
||||
@@ -182,7 +184,8 @@ nouveau_ioctl_notifier_alloc(struct drm_device *dev, void *data,
|
||||
if (IS_ERR(chan))
|
||||
return PTR_ERR(chan);
|
||||
|
||||
ret = nouveau_notifier_alloc(chan, na->handle, na->size, &na->offset);
|
||||
ret = nouveau_notifier_alloc(chan, na->handle, na->size, 0, 0x1000,
|
||||
&na->offset);
|
||||
nouveau_channel_put(&chan);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -403,16 +403,24 @@ nv50_instmem_unmap(struct nouveau_gpuobj *gpuobj)
|
||||
void
|
||||
nv50_instmem_flush(struct drm_device *dev)
|
||||
{
|
||||
struct drm_nouveau_private *dev_priv = dev->dev_private;
|
||||
|
||||
spin_lock(&dev_priv->ramin_lock);
|
||||
nv_wr32(dev, 0x00330c, 0x00000001);
|
||||
if (!nv_wait(dev, 0x00330c, 0x00000002, 0x00000000))
|
||||
NV_ERROR(dev, "PRAMIN flush timeout\n");
|
||||
spin_unlock(&dev_priv->ramin_lock);
|
||||
}
|
||||
|
||||
void
|
||||
nv84_instmem_flush(struct drm_device *dev)
|
||||
{
|
||||
struct drm_nouveau_private *dev_priv = dev->dev_private;
|
||||
|
||||
spin_lock(&dev_priv->ramin_lock);
|
||||
nv_wr32(dev, 0x070000, 0x00000001);
|
||||
if (!nv_wait(dev, 0x070000, 0x00000002, 0x00000000))
|
||||
NV_ERROR(dev, "PRAMIN flush timeout\n");
|
||||
spin_unlock(&dev_priv->ramin_lock);
|
||||
}
|
||||
|
||||
|
||||
@@ -173,7 +173,11 @@ nv50_vm_flush(struct nouveau_vm *vm)
|
||||
void
|
||||
nv50_vm_flush_engine(struct drm_device *dev, int engine)
|
||||
{
|
||||
struct drm_nouveau_private *dev_priv = dev->dev_private;
|
||||
|
||||
spin_lock(&dev_priv->ramin_lock);
|
||||
nv_wr32(dev, 0x100c80, (engine << 16) | 1);
|
||||
if (!nv_wait(dev, 0x100c80, 0x00000001, 0x00000000))
|
||||
NV_ERROR(dev, "vm flush timeout: engine %d\n", engine);
|
||||
spin_unlock(&dev_priv->ramin_lock);
|
||||
}
|
||||
|
||||
@@ -2194,7 +2194,6 @@ int evergreen_mc_init(struct radeon_device *rdev)
|
||||
rdev->mc.real_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024;
|
||||
}
|
||||
rdev->mc.visible_vram_size = rdev->mc.aper_size;
|
||||
rdev->mc.active_vram_size = rdev->mc.visible_vram_size;
|
||||
r700_vram_gtt_location(rdev, &rdev->mc);
|
||||
radeon_update_bandwidth_info(rdev);
|
||||
|
||||
@@ -2934,7 +2933,7 @@ static int evergreen_startup(struct radeon_device *rdev)
|
||||
/* XXX: ontario has problems blitting to gart at the moment */
|
||||
if (rdev->family == CHIP_PALM) {
|
||||
rdev->asic->copy = NULL;
|
||||
rdev->mc.active_vram_size = rdev->mc.visible_vram_size;
|
||||
radeon_ttm_set_active_vram_size(rdev, rdev->mc.visible_vram_size);
|
||||
}
|
||||
|
||||
/* allocate wb buffer */
|
||||
|
||||
@@ -623,7 +623,7 @@ done:
|
||||
dev_err(rdev->dev, "(%d) pin blit object failed\n", r);
|
||||
return r;
|
||||
}
|
||||
rdev->mc.active_vram_size = rdev->mc.real_vram_size;
|
||||
radeon_ttm_set_active_vram_size(rdev, rdev->mc.real_vram_size);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -631,7 +631,7 @@ void evergreen_blit_fini(struct radeon_device *rdev)
|
||||
{
|
||||
int r;
|
||||
|
||||
rdev->mc.active_vram_size = rdev->mc.visible_vram_size;
|
||||
radeon_ttm_set_active_vram_size(rdev, rdev->mc.visible_vram_size);
|
||||
if (rdev->r600_blit.shader_obj == NULL)
|
||||
return;
|
||||
/* If we can't reserve the bo, unref should be enough to destroy
|
||||
|
||||
@@ -1039,7 +1039,7 @@ static void cayman_cp_enable(struct radeon_device *rdev, bool enable)
|
||||
if (enable)
|
||||
WREG32(CP_ME_CNTL, 0);
|
||||
else {
|
||||
rdev->mc.active_vram_size = rdev->mc.visible_vram_size;
|
||||
radeon_ttm_set_active_vram_size(rdev, rdev->mc.visible_vram_size);
|
||||
WREG32(CP_ME_CNTL, (CP_ME_HALT | CP_PFP_HALT));
|
||||
WREG32(SCRATCH_UMSK, 0);
|
||||
}
|
||||
|
||||
@@ -70,23 +70,6 @@ MODULE_FIRMWARE(FIRMWARE_R520);
|
||||
|
||||
void r100_pre_page_flip(struct radeon_device *rdev, int crtc)
|
||||
{
|
||||
struct radeon_crtc *radeon_crtc = rdev->mode_info.crtcs[crtc];
|
||||
u32 tmp;
|
||||
|
||||
/* make sure flip is at vb rather than hb */
|
||||
tmp = RREG32(RADEON_CRTC_OFFSET_CNTL + radeon_crtc->crtc_offset);
|
||||
tmp &= ~RADEON_CRTC_OFFSET_FLIP_CNTL;
|
||||
/* make sure pending bit is asserted */
|
||||
tmp |= RADEON_CRTC_GUI_TRIG_OFFSET_LEFT_EN;
|
||||
WREG32(RADEON_CRTC_OFFSET_CNTL + radeon_crtc->crtc_offset, tmp);
|
||||
|
||||
/* set pageflip to happen as late as possible in the vblank interval.
|
||||
* same field for crtc1/2
|
||||
*/
|
||||
tmp = RREG32(RADEON_CRTC_GEN_CNTL);
|
||||
tmp &= ~RADEON_CRTC_VSTAT_MODE_MASK;
|
||||
WREG32(RADEON_CRTC_GEN_CNTL, tmp);
|
||||
|
||||
/* enable the pflip int */
|
||||
radeon_irq_kms_pflip_irq_get(rdev, crtc);
|
||||
}
|
||||
@@ -1041,7 +1024,7 @@ int r100_cp_init(struct radeon_device *rdev, unsigned ring_size)
|
||||
return r;
|
||||
}
|
||||
rdev->cp.ready = true;
|
||||
rdev->mc.active_vram_size = rdev->mc.real_vram_size;
|
||||
radeon_ttm_set_active_vram_size(rdev, rdev->mc.real_vram_size);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1059,7 +1042,7 @@ void r100_cp_fini(struct radeon_device *rdev)
|
||||
void r100_cp_disable(struct radeon_device *rdev)
|
||||
{
|
||||
/* Disable ring */
|
||||
rdev->mc.active_vram_size = rdev->mc.visible_vram_size;
|
||||
radeon_ttm_set_active_vram_size(rdev, rdev->mc.visible_vram_size);
|
||||
rdev->cp.ready = false;
|
||||
WREG32(RADEON_CP_CSQ_MODE, 0);
|
||||
WREG32(RADEON_CP_CSQ_CNTL, 0);
|
||||
@@ -2329,7 +2312,6 @@ void r100_vram_init_sizes(struct radeon_device *rdev)
|
||||
/* FIXME we don't use the second aperture yet when we could use it */
|
||||
if (rdev->mc.visible_vram_size > rdev->mc.aper_size)
|
||||
rdev->mc.visible_vram_size = rdev->mc.aper_size;
|
||||
rdev->mc.active_vram_size = rdev->mc.visible_vram_size;
|
||||
config_aper_size = RREG32(RADEON_CONFIG_APER_SIZE);
|
||||
if (rdev->flags & RADEON_IS_IGP) {
|
||||
uint32_t tom;
|
||||
|
||||
@@ -1256,7 +1256,6 @@ int r600_mc_init(struct radeon_device *rdev)
|
||||
rdev->mc.mc_vram_size = RREG32(CONFIG_MEMSIZE);
|
||||
rdev->mc.real_vram_size = RREG32(CONFIG_MEMSIZE);
|
||||
rdev->mc.visible_vram_size = rdev->mc.aper_size;
|
||||
rdev->mc.active_vram_size = rdev->mc.visible_vram_size;
|
||||
r600_vram_gtt_location(rdev, &rdev->mc);
|
||||
|
||||
if (rdev->flags & RADEON_IS_IGP) {
|
||||
@@ -1938,7 +1937,7 @@ void r600_pciep_wreg(struct radeon_device *rdev, u32 reg, u32 v)
|
||||
*/
|
||||
void r600_cp_stop(struct radeon_device *rdev)
|
||||
{
|
||||
rdev->mc.active_vram_size = rdev->mc.visible_vram_size;
|
||||
radeon_ttm_set_active_vram_size(rdev, rdev->mc.visible_vram_size);
|
||||
WREG32(R_0086D8_CP_ME_CNTL, S_0086D8_CP_ME_HALT(1));
|
||||
WREG32(SCRATCH_UMSK, 0);
|
||||
}
|
||||
|
||||
@@ -558,7 +558,7 @@ done:
|
||||
dev_err(rdev->dev, "(%d) pin blit object failed\n", r);
|
||||
return r;
|
||||
}
|
||||
rdev->mc.active_vram_size = rdev->mc.real_vram_size;
|
||||
radeon_ttm_set_active_vram_size(rdev, rdev->mc.real_vram_size);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -566,7 +566,7 @@ void r600_blit_fini(struct radeon_device *rdev)
|
||||
{
|
||||
int r;
|
||||
|
||||
rdev->mc.active_vram_size = rdev->mc.visible_vram_size;
|
||||
radeon_ttm_set_active_vram_size(rdev, rdev->mc.visible_vram_size);
|
||||
if (rdev->r600_blit.shader_obj == NULL)
|
||||
return;
|
||||
/* If we can't reserve the bo, unref should be enough to destroy
|
||||
|
||||
@@ -357,7 +357,6 @@ struct radeon_mc {
|
||||
* about vram size near mc fb location */
|
||||
u64 mc_vram_size;
|
||||
u64 visible_vram_size;
|
||||
u64 active_vram_size;
|
||||
u64 gtt_size;
|
||||
u64 gtt_start;
|
||||
u64 gtt_end;
|
||||
@@ -1492,6 +1491,7 @@ extern void radeon_vram_location(struct radeon_device *rdev, struct radeon_mc *m
|
||||
extern void radeon_gtt_location(struct radeon_device *rdev, struct radeon_mc *mc);
|
||||
extern int radeon_resume_kms(struct drm_device *dev);
|
||||
extern int radeon_suspend_kms(struct drm_device *dev, pm_message_t state);
|
||||
extern void radeon_ttm_set_active_vram_size(struct radeon_device *rdev, u64 size);
|
||||
|
||||
/*
|
||||
* r600 functions used by radeon_encoder.c
|
||||
|
||||
@@ -834,6 +834,9 @@ static struct radeon_asic sumo_asic = {
|
||||
.pm_finish = &evergreen_pm_finish,
|
||||
.pm_init_profile = &rs780_pm_init_profile,
|
||||
.pm_get_dynpm_state = &r600_pm_get_dynpm_state,
|
||||
.pre_page_flip = &evergreen_pre_page_flip,
|
||||
.page_flip = &evergreen_page_flip,
|
||||
.post_page_flip = &evergreen_post_page_flip,
|
||||
};
|
||||
|
||||
static struct radeon_asic btc_asic = {
|
||||
|
||||
@@ -151,9 +151,12 @@ int radeon_gem_info_ioctl(struct drm_device *dev, void *data,
|
||||
{
|
||||
struct radeon_device *rdev = dev->dev_private;
|
||||
struct drm_radeon_gem_info *args = data;
|
||||
struct ttm_mem_type_manager *man;
|
||||
|
||||
man = &rdev->mman.bdev.man[TTM_PL_VRAM];
|
||||
|
||||
args->vram_size = rdev->mc.real_vram_size;
|
||||
args->vram_visible = rdev->mc.real_vram_size;
|
||||
args->vram_visible = (u64)man->size << PAGE_SHIFT;
|
||||
if (rdev->stollen_vga_memory)
|
||||
args->vram_visible -= radeon_bo_size(rdev->stollen_vga_memory);
|
||||
args->vram_visible -= radeon_fbdev_total_size(rdev);
|
||||
|
||||
@@ -443,7 +443,7 @@ int radeon_crtc_do_set_base(struct drm_crtc *crtc,
|
||||
(target_fb->bits_per_pixel * 8));
|
||||
crtc_pitch |= crtc_pitch << 16;
|
||||
|
||||
|
||||
crtc_offset_cntl |= RADEON_CRTC_GUI_TRIG_OFFSET_LEFT_EN;
|
||||
if (tiling_flags & RADEON_TILING_MACRO) {
|
||||
if (ASIC_IS_R300(rdev))
|
||||
crtc_offset_cntl |= (R300_CRTC_X_Y_MODE_EN |
|
||||
@@ -502,6 +502,7 @@ int radeon_crtc_do_set_base(struct drm_crtc *crtc,
|
||||
gen_cntl_val = RREG32(gen_cntl_reg);
|
||||
gen_cntl_val &= ~(0xf << 8);
|
||||
gen_cntl_val |= (format << 8);
|
||||
gen_cntl_val &= ~RADEON_CRTC_VSTAT_MODE_MASK;
|
||||
WREG32(gen_cntl_reg, gen_cntl_val);
|
||||
|
||||
crtc_offset = (u32)base;
|
||||
|
||||
@@ -589,6 +589,20 @@ void radeon_ttm_fini(struct radeon_device *rdev)
|
||||
DRM_INFO("radeon: ttm finalized\n");
|
||||
}
|
||||
|
||||
/* this should only be called at bootup or when userspace
|
||||
* isn't running */
|
||||
void radeon_ttm_set_active_vram_size(struct radeon_device *rdev, u64 size)
|
||||
{
|
||||
struct ttm_mem_type_manager *man;
|
||||
|
||||
if (!rdev->mman.initialized)
|
||||
return;
|
||||
|
||||
man = &rdev->mman.bdev.man[TTM_PL_VRAM];
|
||||
/* this just adjusts TTM size idea, which sets lpfn to the correct value */
|
||||
man->size = size >> PAGE_SHIFT;
|
||||
}
|
||||
|
||||
static struct vm_operations_struct radeon_ttm_vm_ops;
|
||||
static const struct vm_operations_struct *ttm_vm_ops = NULL;
|
||||
|
||||
|
||||
@@ -751,7 +751,6 @@ void rs600_mc_init(struct radeon_device *rdev)
|
||||
rdev->mc.real_vram_size = RREG32(RADEON_CONFIG_MEMSIZE);
|
||||
rdev->mc.mc_vram_size = rdev->mc.real_vram_size;
|
||||
rdev->mc.visible_vram_size = rdev->mc.aper_size;
|
||||
rdev->mc.active_vram_size = rdev->mc.visible_vram_size;
|
||||
rdev->mc.igp_sideport_enabled = radeon_atombios_sideport_present(rdev);
|
||||
base = RREG32_MC(R_000004_MC_FB_LOCATION);
|
||||
base = G_000004_MC_FB_START(base) << 16;
|
||||
|
||||
@@ -157,7 +157,6 @@ void rs690_mc_init(struct radeon_device *rdev)
|
||||
rdev->mc.aper_base = pci_resource_start(rdev->pdev, 0);
|
||||
rdev->mc.aper_size = pci_resource_len(rdev->pdev, 0);
|
||||
rdev->mc.visible_vram_size = rdev->mc.aper_size;
|
||||
rdev->mc.active_vram_size = rdev->mc.visible_vram_size;
|
||||
base = RREG32_MC(R_000100_MCCFG_FB_LOCATION);
|
||||
base = G_000100_MC_FB_START(base) << 16;
|
||||
rdev->mc.igp_sideport_enabled = radeon_atombios_sideport_present(rdev);
|
||||
|
||||
@@ -307,7 +307,7 @@ static void rv770_mc_program(struct radeon_device *rdev)
|
||||
*/
|
||||
void r700_cp_stop(struct radeon_device *rdev)
|
||||
{
|
||||
rdev->mc.active_vram_size = rdev->mc.visible_vram_size;
|
||||
radeon_ttm_set_active_vram_size(rdev, rdev->mc.visible_vram_size);
|
||||
WREG32(CP_ME_CNTL, (CP_ME_HALT | CP_PFP_HALT));
|
||||
WREG32(SCRATCH_UMSK, 0);
|
||||
}
|
||||
@@ -1123,7 +1123,6 @@ int rv770_mc_init(struct radeon_device *rdev)
|
||||
rdev->mc.mc_vram_size = RREG32(CONFIG_MEMSIZE);
|
||||
rdev->mc.real_vram_size = RREG32(CONFIG_MEMSIZE);
|
||||
rdev->mc.visible_vram_size = rdev->mc.aper_size;
|
||||
rdev->mc.active_vram_size = rdev->mc.visible_vram_size;
|
||||
r700_vram_gtt_location(rdev, &rdev->mc);
|
||||
radeon_update_bandwidth_info(rdev);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user