[kernel] r20199 - in dists/wheezy/linux/debian: . patches/debian patches/features/all/drm
Ben Hutchings
benh at alioth.debian.org
Wed Jun 5 03:35:25 UTC 2013
Author: benh
Date: Wed Jun 5 03:35:23 2013
New Revision: 20199
Log:
Update to 3.2.46; update drm to 3.4.47
Modified:
dists/wheezy/linux/debian/changelog
dists/wheezy/linux/debian/patches/debian/efivars-remove-check-for-50-full-on-write.patch
dists/wheezy/linux/debian/patches/features/all/drm/drm-3.4.patch
Modified: dists/wheezy/linux/debian/changelog
==============================================================================
--- dists/wheezy/linux/debian/changelog Wed Jun 5 01:41:25 2013 (r20198)
+++ dists/wheezy/linux/debian/changelog Wed Jun 5 03:35:23 2013 (r20199)
@@ -1,4 +1,4 @@
-linux (3.2.45-1) UNRELEASED; urgency=low
+linux (3.2.46-1) UNRELEASED; urgency=low
* New upstream stable update:
http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.42
@@ -116,12 +116,41 @@
- kernel/audit_tree.c: tree will leak memory when failure occurs in
audit_trim_trees()
- r8169: fix vlan tag read ordering.
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.46
+ - nfsd4: don't allow owner override on 4.1 CLAIM_FH opens
+ - ext4: limit group search loop for non-extent files
+ - iscsi-target: Fix processing of OOO commands
+ - cifs: only set ops for inodes in I_NEW state
+ - KVM: VMX: fix halt emulation while emulating invalid guest sate
+ - [armel/kirkwood] Enable PCIe port 1 on QNAP TS-11x/TS-21x
+ - drivers/char/ipmi: memcpy, need additional 2 bytes to avoid memory
+ overflow
+ - ipmi: ipmi_devintf: compat_ioctl method fails to take ipmi_mutex
+ - btrfs: don't stop searching after encountering the wrong item
+ - TTY: Fix tty miss restart after we turn off flow-control
+ (Closes: #465823)
+ - SUNRPC: Prevent an rpc_task wakeup race
+ - fat: fix possible overflow for fat_clusters
+ - mm: mmu_notifier: re-fix freed page still mapped in secondary MMU
+ - mm compaction: fix of improper cache flush in migration code
+ - mm/THP: use pmd_populate() to update the pmd with pgtable_t pointer
+ - nilfs2: fix issue of nilfs_set_page_dirty() for page at EOF boundary
+ - random: fix accounting race condition with lockless irq entropy_count
+ update
+ - mm/pagewalk.c: walk_page_range should avoid VM_PFNMAP areas
+ - ipvs: ip_vs_sip_fill_param() BUG: bad check of return value
+ - x86,efi: Check max_size only if it is non-zero.
+ - x86,efi: Implement efi_no_storage_paranoia parameter
+ - tcp: force a dst refcount when prequeue packet
+ - packet: tpacket_v3: do not trigger bug() on wrong header status
+ - macvlan: fix passthru mode race between dev removal and rx path
+ - ipv6: do not clear pinet6 field
[ Ben Hutchings ]
* Input: MT: add tracking and frame synchronisation to core
* Input: add support for Cypress PS/2 Trackpads (Closes: #703607),
thanks to Apollon Oikonomopoulos
- * drm, agp: Update to 3.4.45:
+ * drm, agp: Update to 3.4.47:
- drm/i915: restrict kernel address leak in debugfs
- KMS: fix EDID detailed timing vsync parsing
- KMS: fix EDID detailed timing frame rate
@@ -142,6 +171,9 @@
- drm/radeon: fix possible segfault when parsing pm tables
- drm/radeon: add new richland pci ids
- drm/radeon: fix handling of v6 power tables
+ - drm/radeon: Fix VRAM size calculation for VRAM >= 4GB
+ - drm/radeon: check incoming cliprects pointer
+ - drm/mm: fix dump table BUG
* [rt] Update to 3.2.45-rt66:
- rcutiny: Fix typo of using swake_up() instead of swait_wake()
- tcp: force a dst refcount when prequeue packet
Modified: dists/wheezy/linux/debian/patches/debian/efivars-remove-check-for-50-full-on-write.patch
==============================================================================
--- dists/wheezy/linux/debian/patches/debian/efivars-remove-check-for-50-full-on-write.patch Wed Jun 5 01:41:25 2013 (r20198)
+++ dists/wheezy/linux/debian/patches/debian/efivars-remove-check-for-50-full-on-write.patch Wed Jun 5 03:35:23 2013 (r20199)
@@ -15,15 +15,14 @@
risky to disable it for now.
---
---- a/drivers/firmware/efivars.c
-+++ b/drivers/firmware/efivars.c
-@@ -439,8 +439,7 @@ check_var_size_locked(struct efivars *ef
- if (status != EFI_SUCCESS)
- return status;
+--- a/arch/x86/platform/efi/efi.c
++++ b/arch/x86/platform/efi/efi.c
+@@ -114,7 +114,7 @@ static int __init setup_add_efi_memmap(c
+ }
+ early_param("add_efi_memmap", setup_add_efi_memmap);
-- if (!storage_size || size > remaining_size || size > max_size ||
-- (remaining_size - size) < (storage_size / 2))
-+ if (!storage_size || size > remaining_size || size > max_size)
- return EFI_OUT_OF_RESOURCES;
+-static bool efi_no_storage_paranoia;
++static bool efi_no_storage_paranoia = true;
- return status;
+ static int __init setup_storage_paranoia(char *arg)
+ {
Modified: dists/wheezy/linux/debian/patches/features/all/drm/drm-3.4.patch
==============================================================================
--- dists/wheezy/linux/debian/patches/features/all/drm/drm-3.4.patch Wed Jun 5 01:41:25 2013 (r20198)
+++ dists/wheezy/linux/debian/patches/features/all/drm/drm-3.4.patch Wed Jun 5 03:35:23 2013 (r20199)
@@ -3440,6 +3440,62 @@
#if __OS_HAS_AGP
static void *agp_remap(unsigned long offset, unsigned long size,
struct drm_device * dev)
+diff --git a/drivers/gpu/drm/drm_mm.c b/drivers/gpu/drm/drm_mm.c
+index 961fb54..7f88de6 100644
+--- a/drivers/gpu/drm/drm_mm.c
++++ b/drivers/gpu/drm/drm_mm.c
+@@ -680,33 +680,35 @@ void drm_mm_debug_table(struct drm_mm *mm, const char *prefix)
+ EXPORT_SYMBOL(drm_mm_debug_table);
+
+ #if defined(CONFIG_DEBUG_FS)
+-int drm_mm_dump_table(struct seq_file *m, struct drm_mm *mm)
++static unsigned long drm_mm_dump_hole(struct seq_file *m, struct drm_mm_node *entry)
+ {
+- struct drm_mm_node *entry;
+- unsigned long total_used = 0, total_free = 0, total = 0;
+ unsigned long hole_start, hole_end, hole_size;
+
+- hole_start = drm_mm_hole_node_start(&mm->head_node);
+- hole_end = drm_mm_hole_node_end(&mm->head_node);
+- hole_size = hole_end - hole_start;
+- if (hole_size)
++ if (entry->hole_follows) {
++ hole_start = drm_mm_hole_node_start(entry);
++ hole_end = drm_mm_hole_node_end(entry);
++ hole_size = hole_end - hole_start;
+ seq_printf(m, "0x%08lx-0x%08lx: 0x%08lx: free\n",
+ hole_start, hole_end, hole_size);
+- total_free += hole_size;
++ return hole_size;
++ }
++
++ return 0;
++}
++
++int drm_mm_dump_table(struct seq_file *m, struct drm_mm *mm)
++{
++ struct drm_mm_node *entry;
++ unsigned long total_used = 0, total_free = 0, total = 0;
++
++ total_free += drm_mm_dump_hole(m, &mm->head_node);
+
+ drm_mm_for_each_node(entry, mm) {
+ seq_printf(m, "0x%08lx-0x%08lx: 0x%08lx: used\n",
+ entry->start, entry->start + entry->size,
+ entry->size);
+ total_used += entry->size;
+- if (entry->hole_follows) {
+- hole_start = drm_mm_hole_node_start(entry);
+- hole_end = drm_mm_hole_node_end(entry);
+- hole_size = hole_end - hole_start;
+- seq_printf(m, "0x%08lx-0x%08lx: 0x%08lx: free\n",
+- hole_start, hole_end, hole_size);
+- total_free += hole_size;
+- }
++ total_free += drm_mm_dump_hole(m, entry);
+ }
+ total = total_free + total_used;
+
diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c
index fb8e46b..b7adb4a 100644
--- a/drivers/gpu/drm/drm_modes.c
@@ -43542,7 +43598,7 @@
return ret;
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
-index c77fc67..ba60f3c 100644
+index ca67338..ba60f3c 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -781,6 +781,12 @@ static int i915_getparam(struct drm_device *dev, void *data,
@@ -43558,122 +43614,7 @@
default:
DRM_DEBUG_DRIVER("Unknown parameter %d\n",
param->param);
-@@ -1007,50 +1013,56 @@ intel_teardown_mchbar(struct drm_device *dev)
- release_resource(&dev_priv->mch_res);
- }
-
--static unsigned long i915_stolen_to_physical(struct drm_device *dev)
-+#define PTE_ADDRESS_MASK 0xfffff000
-+#define PTE_ADDRESS_MASK_HIGH 0x000000f0 /* i915+ */
-+#define PTE_MAPPING_TYPE_UNCACHED (0 << 1)
-+#define PTE_MAPPING_TYPE_DCACHE (1 << 1) /* i830 only */
-+#define PTE_MAPPING_TYPE_CACHED (3 << 1)
-+#define PTE_MAPPING_TYPE_MASK (3 << 1)
-+#define PTE_VALID (1 << 0)
-+
-+/**
-+ * i915_stolen_to_phys - take an offset into stolen memory and turn it into
-+ * a physical one
-+ * @dev: drm device
-+ * @offset: address to translate
-+ *
-+ * Some chip functions require allocations from stolen space and need the
-+ * physical address of the memory in question.
-+ */
-+static unsigned long i915_stolen_to_phys(struct drm_device *dev, u32 offset)
- {
- struct drm_i915_private *dev_priv = dev->dev_private;
- struct pci_dev *pdev = dev_priv->bridge_dev;
- u32 base;
-
-+#if 0
- /* On the machines I have tested the Graphics Base of Stolen Memory
-- * is unreliable, so on those compute the base by subtracting the
-- * stolen memory from the Top of Low Usable DRAM which is where the
-- * BIOS places the graphics stolen memory.
-- *
-- * On gen2, the layout is slightly different with the Graphics Segment
-- * immediately following Top of Memory (or Top of Usable DRAM). Note
-- * it appears that TOUD is only reported by 865g, so we just use the
-- * top of memory as determined by the e820 probe.
-- *
-- * XXX gen2 requires an unavailable symbol and 945gm fails with
-- * its value of TOLUD.
-+ * is unreliable, so compute the base by subtracting the stolen memory
-+ * from the Top of Low Usable DRAM which is where the BIOS places
-+ * the graphics stolen memory.
- */
-- base = 0;
-- if (INTEL_INFO(dev)->gen >= 6) {
-- /* Read Base Data of Stolen Memory Register (BDSM) directly.
-- * Note that there is also a MCHBAR miror at 0x1080c0 or
-- * we could use device 2:0x5c instead.
-- */
-- pci_read_config_dword(pdev, 0xB0, &base);
-- base &= ~4095; /* lower bits used for locking register */
-- } else if (INTEL_INFO(dev)->gen > 3 || IS_G33(dev)) {
-- /* Read Graphics Base of Stolen Memory directly */
-+ if (INTEL_INFO(dev)->gen > 3 || IS_G33(dev)) {
-+ /* top 32bits are reserved = 0 */
- pci_read_config_dword(pdev, 0xA4, &base);
--#if 0
-- } else if (IS_GEN3(dev)) {
-+ } else {
-+ /* XXX presume 8xx is the same as i915 */
-+ pci_bus_read_config_dword(pdev->bus, 2, 0x5C, &base);
-+ }
-+#else
-+ if (INTEL_INFO(dev)->gen > 3 || IS_G33(dev)) {
-+ u16 val;
-+ pci_read_config_word(pdev, 0xb0, &val);
-+ base = val >> 4 << 20;
-+ } else {
- u8 val;
-- /* Stolen is immediately below Top of Low Usable DRAM */
- pci_read_config_byte(pdev, 0x9c, &val);
- base = val >> 3 << 27;
-- base -= dev_priv->mm.gtt->stolen_size;
-- } else {
-- /* Stolen is immediately above Top of Memory */
-- base = max_low_pfn_mapped << PAGE_SHIFT;
--#endif
- }
-+ base -= dev_priv->mm.gtt->stolen_size;
-+#endif
-
-- return base;
-+ return base + offset;
- }
-
- static void i915_warn_stolen(struct drm_device *dev)
-@@ -1075,7 +1087,7 @@ static void i915_setup_compression(struct drm_device *dev, int size)
- if (!compressed_fb)
- goto err;
-
-- cfb_base = dev_priv->mm.stolen_base + compressed_fb->start;
-+ cfb_base = i915_stolen_to_phys(dev, compressed_fb->start);
- if (!cfb_base)
- goto err_fb;
-
-@@ -1088,7 +1100,7 @@ static void i915_setup_compression(struct drm_device *dev, int size)
- if (!compressed_llb)
- goto err_fb;
-
-- ll_base = dev_priv->mm.stolen_base + compressed_llb->start;
-+ ll_base = i915_stolen_to_phys(dev, compressed_llb->start);
- if (!ll_base)
- goto err_llb;
- }
-@@ -1107,7 +1119,7 @@ static void i915_setup_compression(struct drm_device *dev, int size)
- }
-
- DRM_DEBUG_KMS("FBC base 0x%08lx, ll base 0x%08lx, size %dM\n",
-- (long)cfb_base, (long)ll_base, size >> 20);
-+ cfb_base, ll_base, size >> 20);
- return;
-
- err_llb:
-@@ -1171,6 +1183,21 @@ static bool i915_switcheroo_can_switch(struct pci_dev *pdev)
+@@ -1177,6 +1183,21 @@ static bool i915_switcheroo_can_switch(struct pci_dev *pdev)
return can_switch;
}
@@ -43695,17 +43636,7 @@
static int i915_load_gem_init(struct drm_device *dev)
{
struct drm_i915_private *dev_priv = dev->dev_private;
-@@ -1181,32 +1208,44 @@ static int i915_load_gem_init(struct drm_device *dev)
- gtt_size = dev_priv->mm.gtt->gtt_total_entries << PAGE_SHIFT;
- mappable_size = dev_priv->mm.gtt->gtt_mappable_entries << PAGE_SHIFT;
-
-- dev_priv->mm.stolen_base = i915_stolen_to_physical(dev);
-- if (dev_priv->mm.stolen_base == 0)
-- return 0;
--
-- DRM_DEBUG_KMS("found %d bytes of stolen memory at %08lx\n",
-- dev_priv->mm.gtt->stolen_size, dev_priv->mm.stolen_base);
--
+@@ -1190,22 +1211,41 @@ static int i915_load_gem_init(struct drm_device *dev)
/* Basic memrange allocator for stolen space */
drm_mm_init(&dev_priv->mm.stolen, 0, prealloc_size);
@@ -43760,7 +43691,7 @@
/* Try to set up FBC with a reasonable compressed buffer size */
if (I915_HAS_FBC(dev) && i915_powersave) {
-@@ -1293,6 +1332,7 @@ cleanup_gem:
+@@ -1292,6 +1332,7 @@ cleanup_gem:
mutex_lock(&dev->struct_mutex);
i915_gem_cleanup_ringbuffer(dev);
mutex_unlock(&dev->struct_mutex);
@@ -43768,7 +43699,7 @@
cleanup_vga_switcheroo:
vga_switcheroo_unregister_client(dev->pdev);
cleanup_vga_client:
-@@ -1661,6 +1701,9 @@ void i915_update_gfx_val(struct drm_i915_private *dev_priv)
+@@ -1660,6 +1701,9 @@ void i915_update_gfx_val(struct drm_i915_private *dev_priv)
unsigned long diffms;
u32 count;
@@ -43778,7 +43709,7 @@
getrawmonotonic(&now);
diff1 = timespec_sub(now, dev_priv->last_time2);
-@@ -1891,27 +1934,6 @@ ips_ping_for_i915_load(void)
+@@ -1890,27 +1934,6 @@ ips_ping_for_i915_load(void)
}
}
@@ -43806,7 +43737,7 @@
/**
* i915_driver_load - setup chip and create an initial config
* @dev: DRM device
-@@ -1949,14 +1971,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
+@@ -1948,14 +1971,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
goto free_priv;
}
@@ -43822,7 +43753,7 @@
/* overlay on gen2 is broken and can't address above 1G */
if (IS_GEN2(dev))
-@@ -1981,6 +1996,13 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
+@@ -1980,6 +1996,13 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
goto put_bridge;
}
@@ -43836,7 +43767,7 @@
agp_size = dev_priv->mm.gtt->gtt_mappable_entries << PAGE_SHIFT;
dev_priv->mm.gtt_mapping =
-@@ -2102,12 +2124,14 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
+@@ -2101,12 +2124,14 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
setup_timer(&dev_priv->hangcheck_timer, i915_hangcheck_elapsed,
(unsigned long) dev);
@@ -43856,7 +43787,7 @@
return 0;
-@@ -2150,7 +2174,7 @@ int i915_driver_unload(struct drm_device *dev)
+@@ -2149,7 +2174,7 @@ int i915_driver_unload(struct drm_device *dev)
unregister_shrinker(&dev_priv->mm.inactive_shrinker);
mutex_lock(&dev->struct_mutex);
@@ -43865,7 +43796,7 @@
if (ret)
DRM_ERROR("failed to idle hardware: %d\n", ret);
mutex_unlock(&dev->struct_mutex);
-@@ -2203,6 +2227,7 @@ int i915_driver_unload(struct drm_device *dev)
+@@ -2202,6 +2227,7 @@ int i915_driver_unload(struct drm_device *dev)
i915_gem_free_all_phys_object(dev);
i915_gem_cleanup_ringbuffer(dev);
mutex_unlock(&dev->struct_mutex);
@@ -43873,7 +43804,7 @@
if (I915_HAS_FBC(dev) && i915_powersave)
i915_cleanup_compression(dev);
drm_mm_takedown(&dev_priv->mm.stolen);
-@@ -2268,18 +2293,12 @@ void i915_driver_lastclose(struct drm_device * dev)
+@@ -2267,18 +2293,12 @@ void i915_driver_lastclose(struct drm_device * dev)
i915_gem_lastclose(dev);
@@ -43892,7 +43823,7 @@
}
void i915_driver_postclose(struct drm_device *dev, struct drm_file *file)
-@@ -2298,11 +2317,11 @@ struct drm_ioctl_desc i915_ioctls[] = {
+@@ -2297,11 +2317,11 @@ struct drm_ioctl_desc i915_ioctls[] = {
DRM_IOCTL_DEF_DRV(I915_IRQ_WAIT, i915_irq_wait, DRM_AUTH),
DRM_IOCTL_DEF_DRV(I915_GETPARAM, i915_getparam, DRM_AUTH),
DRM_IOCTL_DEF_DRV(I915_SETPARAM, i915_setparam, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY),
@@ -43908,7 +43839,7 @@
DRM_IOCTL_DEF_DRV(I915_SET_VBLANK_PIPE, i915_vblank_pipe_set, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY),
DRM_IOCTL_DEF_DRV(I915_GET_VBLANK_PIPE, i915_vblank_pipe_get, DRM_AUTH),
DRM_IOCTL_DEF_DRV(I915_VBLANK_SWAP, i915_vblank_swap, DRM_AUTH),
-@@ -2330,6 +2349,8 @@ struct drm_ioctl_desc i915_ioctls[] = {
+@@ -2329,6 +2349,8 @@ struct drm_ioctl_desc i915_ioctls[] = {
DRM_IOCTL_DEF_DRV(I915_GEM_MADVISE, i915_gem_madvise_ioctl, DRM_UNLOCKED),
DRM_IOCTL_DEF_DRV(I915_OVERLAY_PUT_IMAGE, intel_overlay_put_image, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
DRM_IOCTL_DEF_DRV(I915_OVERLAY_ATTRS, intel_overlay_attrs, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
@@ -44224,7 +44155,7 @@
__i915_write(8, b)
__i915_write(16, w)
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
-index 20cd295..45c5cf8 100644
+index 144d37c..45c5cf8 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -35,6 +35,7 @@
@@ -44397,12 +44328,7 @@
/* LVDS info */
int backlight_level; /* restore backlight to this value */
-@@ -581,11 +612,13 @@ typedef struct drm_i915_private {
- unsigned long gtt_start;
- unsigned long gtt_mappable_end;
- unsigned long gtt_end;
-- unsigned long stolen_base; /* limited to low memory (32-bit) */
-
+@@ -585,6 +616,9 @@ typedef struct drm_i915_private {
struct io_mapping *gtt_mapping;
int gtt_mtrr;
@@ -44412,7 +44338,7 @@
struct shrinker inactive_shrinker;
/**
-@@ -751,6 +784,13 @@ typedef struct drm_i915_private {
+@@ -750,6 +784,13 @@ typedef struct drm_i915_private {
struct drm_property *force_audio_property;
} drm_i915_private_t;
@@ -44426,7 +44352,7 @@
enum i915_cache_level {
I915_CACHE_NONE,
I915_CACHE_LLC,
-@@ -843,6 +883,8 @@ struct drm_i915_gem_object {
+@@ -842,6 +883,8 @@ struct drm_i915_gem_object {
unsigned int cache_level:2;
@@ -44435,7 +44361,7 @@
struct page **pages;
/**
-@@ -920,6 +962,9 @@ struct drm_i915_gem_request {
+@@ -919,6 +962,9 @@ struct drm_i915_gem_request {
/** GEM sequence number associated with this request. */
uint32_t seqno;
@@ -44445,7 +44371,7 @@
/** Time at which this request was emitted, in jiffies. */
unsigned long emitted_jiffies;
-@@ -976,8 +1021,11 @@ struct drm_i915_file_private {
+@@ -975,8 +1021,11 @@ struct drm_i915_file_private {
#define HAS_BSD(dev) (INTEL_INFO(dev)->has_bsd_ring)
#define HAS_BLT(dev) (INTEL_INFO(dev)->has_blt_ring)
@@ -44457,7 +44383,7 @@
#define HAS_OVERLAY(dev) (INTEL_INFO(dev)->has_overlay)
#define OVERLAY_NEEDS_PHYSICAL(dev) (INTEL_INFO(dev)->overlay_needs_physical)
-@@ -1010,6 +1058,27 @@ struct drm_i915_file_private {
+@@ -1009,6 +1058,27 @@ struct drm_i915_file_private {
#include "i915_trace.h"
@@ -44485,7 +44411,7 @@
extern struct drm_ioctl_desc i915_ioctls[];
extern int i915_max_ioctl;
extern unsigned int i915_fbpercrtc __always_unused;
-@@ -1022,6 +1091,7 @@ extern int i915_vbt_sdvo_panel_type __read_mostly;
+@@ -1021,6 +1091,7 @@ extern int i915_vbt_sdvo_panel_type __read_mostly;
extern int i915_enable_rc6 __read_mostly;
extern int i915_enable_fbc __read_mostly;
extern bool i915_enable_hangcheck __read_mostly;
@@ -44493,7 +44419,7 @@
extern int i915_suspend(struct drm_device *dev, pm_message_t state);
extern int i915_resume(struct drm_device *dev);
-@@ -1083,18 +1153,6 @@ extern void i915_destroy_error_state(struct drm_device *dev);
+@@ -1082,18 +1153,6 @@ extern void i915_destroy_error_state(struct drm_device *dev);
#endif
@@ -44512,7 +44438,7 @@
/* i915_gem.c */
int i915_gem_init_ioctl(struct drm_device *dev, void *data,
struct drm_file *file_priv);
-@@ -1180,26 +1238,49 @@ int __must_check i915_gem_object_get_fence(struct drm_i915_gem_object *obj,
+@@ -1179,26 +1238,49 @@ int __must_check i915_gem_object_get_fence(struct drm_i915_gem_object *obj,
struct intel_ring_buffer *pipelined);
int __must_check i915_gem_object_put_fence(struct drm_i915_gem_object *obj);
@@ -44565,7 +44491,7 @@
int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf);
int __must_check
i915_gem_object_set_to_gtt_domain(struct drm_i915_gem_object *obj,
-@@ -1226,6 +1307,14 @@ int i915_gem_object_set_cache_level(struct drm_i915_gem_object *obj,
+@@ -1225,6 +1307,14 @@ int i915_gem_object_set_cache_level(struct drm_i915_gem_object *obj,
enum i915_cache_level cache_level);
/* i915_gem_gtt.c */
@@ -44580,7 +44506,7 @@
void i915_gem_restore_gtt_mappings(struct drm_device *dev);
int __must_check i915_gem_gtt_bind_object(struct drm_i915_gem_object *obj);
void i915_gem_gtt_rebind_object(struct drm_i915_gem_object *obj,
-@@ -1307,7 +1396,6 @@ static inline void intel_unregister_dsm_handler(void) { return; }
+@@ -1306,7 +1396,6 @@ static inline void intel_unregister_dsm_handler(void) { return; }
#endif /* CONFIG_ACPI */
/* modesetting */
@@ -44588,7 +44514,7 @@
extern void intel_modeset_init(struct drm_device *dev);
extern void intel_modeset_gem_init(struct drm_device *dev);
extern void intel_modeset_cleanup(struct drm_device *dev);
-@@ -1365,14 +1453,7 @@ extern void intel_display_print_error_state(struct seq_file *m,
+@@ -1364,14 +1453,7 @@ extern void intel_display_print_error_state(struct seq_file *m,
*/
void gen6_gt_force_wake_get(struct drm_i915_private *dev_priv);
void gen6_gt_force_wake_put(struct drm_i915_private *dev_priv);
@@ -73294,7 +73220,7 @@
#include <linux/kernel.h>
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
-index 0495a50..e458acb 100644
+index 0495a50..6a8776e 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -50,6 +50,39 @@ static const u32 crtc_offsets[6] =
@@ -73714,7 +73640,7 @@
tmp = RREG32(FUS_MC_ARB_RAMCFG);
else
tmp = RREG32(MC_ARB_RAMCFG);
-@@ -2316,12 +2435,14 @@ int evergreen_mc_init(struct radeon_device *rdev)
+@@ -2316,14 +2435,16 @@ int evergreen_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);
/* Setup GPU memory space */
@@ -73727,10 +73653,14 @@
rdev->mc.real_vram_size = RREG32(CONFIG_MEMSIZE);
} else {
- /* size in MB on evergreen */
+- rdev->mc.mc_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024;
+- rdev->mc.real_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024;
+ /* size in MB on evergreen/cayman/tn */
- rdev->mc.mc_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024;
- rdev->mc.real_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024;
++ rdev->mc.mc_vram_size = RREG32(CONFIG_MEMSIZE) * 1024ULL * 1024ULL;
++ rdev->mc.real_vram_size = RREG32(CONFIG_MEMSIZE) * 1024ULL * 1024ULL;
}
+ rdev->mc.visible_vram_size = rdev->mc.aper_size;
+ r700_vram_gtt_location(rdev, &rdev->mc);
@@ -2332,7 +2453,7 @@ int evergreen_mc_init(struct radeon_device *rdev)
return 0;
}
@@ -91230,7 +91160,7 @@
+ }
+}
diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
-index 0b5468b..f493c64 100644
+index 0b5468b..49b55ed 100644
--- a/drivers/gpu/drm/radeon/radeon_ttm.c
+++ b/drivers/gpu/drm/radeon/radeon_ttm.c
@@ -114,24 +114,6 @@ static void radeon_ttm_global_fini(struct radeon_device *rdev)
@@ -91504,6 +91434,15 @@
.invalidate_caches = &radeon_invalidate_caches,
.init_mem_type = &radeon_init_mem_type,
.evict_flags = &radeon_evict_flags,
+@@ -573,7 +744,7 @@ int radeon_ttm_init(struct radeon_device *rdev)
+ return r;
+ }
+ DRM_INFO("radeon: %uM of VRAM memory ready\n",
+- (unsigned)rdev->mc.real_vram_size / (1024 * 1024));
++ (unsigned) (rdev->mc.real_vram_size / (1024 * 1024)));
+ r = ttm_bo_init_mm(&rdev->mman.bdev, TTM_PL_TT,
+ rdev->mc.gtt_size >> PAGE_SHIFT);
+ if (r) {
@@ -680,124 +851,6 @@ int radeon_mmap(struct file *filp, struct vm_area_struct *vma)
}
@@ -92592,7 +92531,7 @@
radeon_bo_fini(rdev);
diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c
new file mode 100644
-index 0000000..5508ad7
+index 0000000..2dbd585
--- /dev/null
+++ b/drivers/gpu/drm/radeon/si.c
@@ -0,0 +1,4129 @@
@@ -95062,8 +95001,8 @@
+ rdev->mc.aper_base = pci_resource_start(rdev->pdev, 0);
+ rdev->mc.aper_size = pci_resource_len(rdev->pdev, 0);
+ /* size in MB on si */
-+ rdev->mc.mc_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024;
-+ rdev->mc.real_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024;
++ rdev->mc.mc_vram_size = RREG32(CONFIG_MEMSIZE) * 1024ULL * 1024ULL;
++ rdev->mc.real_vram_size = RREG32(CONFIG_MEMSIZE) * 1024ULL * 1024ULL;
+ rdev->mc.visible_vram_size = rdev->mc.aper_size;
+ si_vram_gtt_location(rdev, &rdev->mc);
+ radeon_update_bandwidth_info(rdev);
More information about the Kernel-svn-changes
mailing list