[kernel] r19828 - in dists/sid/linux/debian: . patches patches/bugfix/all patches/features/all/drm
Ben Hutchings
benh at alioth.debian.org
Wed Feb 20 05:16:46 UTC 2013
Author: benh
Date: Wed Feb 20 05:16:43 2013
New Revision: 19828
Log:
Update to 3.2.39
and update drm, agp to 3.4.32
Deleted:
dists/sid/linux/debian/patches/bugfix/all/bridge-Pull-ip-header-into-skb-data-before-looking-i.patch
dists/sid/linux/debian/patches/features/all/drm/efi-Make-efi_enabled-a-function-to-query-EFI-facilit.patch
Modified:
dists/sid/linux/debian/changelog
dists/sid/linux/debian/patches/features/all/drm/drm-3.4.patch
dists/sid/linux/debian/patches/series
Modified: dists/sid/linux/debian/changelog
==============================================================================
--- dists/sid/linux/debian/changelog Wed Feb 20 03:24:36 2013 (r19827)
+++ dists/sid/linux/debian/changelog Wed Feb 20 05:16:43 2013 (r19828)
@@ -1,4 +1,4 @@
-linux (3.2.38-1) UNRELEASED; urgency=low
+linux (3.2.39-1) UNRELEASED; urgency=low
* New upstream stable update:
http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.36
@@ -67,6 +67,38 @@
(Closes: #696321)
- printk: fix buffer overflow when calling log_prefix function from
call_console_drivers
+ http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.39
+ - USB: XHCI: fix memory leak of URB-private data
+ - sched/rt: Use root_domain of rt_rq not current processor
+ - mwifiex: fix incomplete scan in case of IE parsing error
+ - x86-64: Replace left over sti/cli in ia32 audit exit code
+ - Bluetooth: Fix handling of unexpected SMP PDUs
+ - ptrace/x86: Partly fix set_task_blockstep()->update_debugctlmsr() logic
+ - Fix race condition with PTRACE_SETREGS and fatal signal (CVE-2013-0871)
+ + ptrace: introduce signal_wake_up_state() and ptrace_signal_wake_up()
+ + ptrace: ensure arch_ptrace/ptrace_request can never race with SIGKILL
+ + wake_up_process() should be never used to wakeup a TASK_STOPPED/TRACED
+ task
+ - net: prevent setting ttl=0 via IP_TTL
+ - ipv6: fix header length calculation in ip6_append_data()
+ - netxen: fix off by one bug in netxen_release_tx_buffer()
+ - r8169: remove the obsolete and incorrect AMD workaround
+ - net: loopback: fix a dst refcounting issue
+ - packet: fix leakage of tx_ring memory
+ - net: sctp: sctp_setsockopt_auth_key: use kzfree instead of kfree
+ - net: sctp: sctp_endpoint_free: zero out secret key data
+ - xen/netback: shutdown the ring if it contains garbage. (CVE-2013-0216)
+ - xen/netback: don't leak pages on failure in xen_netbk_tx_check_gop.
+ - xen/netback: free already allocated memory on failure in
+ xen_netbk_get_requests
+ - netback: correct netbk_tx_err to handle wrap around. (CVE-2013-0217)
+ - tcp: frto should not set snd_cwnd to 0
+ - tcp: fix for zero packets_in_flight was too broad
+ - tcp: fix MSG_SENDPAGE_NOTLAST logic
+ - bridge: Pull ip header into skb->data before looking into ip header.
+ (Closes: #697903)
+ - x86/xen: don't assume %ds is usable in xen_iret for 32-bit PVOPS.
+ (CVE-2013-0228)
[ Ben Hutchings ]
* Input: wacom - fix touch support for Bamboo Fun CTH-461
@@ -114,8 +146,6 @@
- sched: Init idle->on_rq in init_idle()
- sched: Check for idle task in might_sleep()
- mm: swap: Initialize local locks early
- * bridge: Pull ip header into skb->data before looking into ip header.
- (Closes: #697903)
* [armel/versatile,armhf/vexpress] i2c: Enable I2C, I2C_VERSATILE as modules
(Closes: #696182)
* ext4: Fix corruption by hole punch in large files (Closes: #685726)
@@ -144,6 +174,9 @@
- possible bugfix, au_lkup_by_ino() returns ESTALE
* [x86] efi: Clear EFI_RUNTIME_SERVICES rather than EFI_BOOT by "noefi" boot
parameter
+ * drm, agp: Update to 3.4.32
+ - drm/radeon: add WAIT_UNTIL to the non-VM safe regs list for cayman/TN
+ - drm/radeon: prevent crash in the ring space allocation
[ Aurelien Jarno ]
* [armhf/vexpress] Add kernel udebs.
Modified: dists/sid/linux/debian/patches/features/all/drm/drm-3.4.patch
==============================================================================
--- dists/sid/linux/debian/patches/features/all/drm/drm-3.4.patch Wed Feb 20 03:24:36 2013 (r19827)
+++ dists/sid/linux/debian/patches/features/all/drm/drm-3.4.patch Wed Feb 20 05:16:43 2013 (r19828)
@@ -47730,7 +47730,7 @@
drm_encoder_helper_add(&crt->base.base, &intel_crt_helper_funcs);
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index c05e825..3c9b9c5 100644
+index 7817429..3c9b9c5 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -75,7 +75,7 @@ struct intel_limit {
@@ -49051,14 +49051,12 @@
OUT_RING(obj->gtt_offset | obj->tiling_mode);
/* XXX Enabling the panel-fitter across page-flip is so far
-@@ -7154,15 +7441,11 @@ static int intel_gen4_queue_flip(struct drm_device *dev,
+@@ -7154,13 +7441,11 @@ static int intel_gen4_queue_flip(struct drm_device *dev,
pf = 0;
pipesrc = I915_READ(PIPESRC(intel_crtc->pipe)) & 0x0fff0fff;
OUT_RING(pf | pipesrc);
-
- intel_mark_page_flip_active(intel_crtc);
--
-- intel_mark_page_flip_active(intel_crtc);
ADVANCE_LP_RING();
return 0;
@@ -49068,7 +49066,7 @@
err:
return ret;
}
-@@ -7187,17 +7470,23 @@ static int intel_gen6_queue_flip(struct drm_device *dev,
+@@ -7185,19 +7470,23 @@ static int intel_gen6_queue_flip(struct drm_device *dev,
OUT_RING(MI_DISPLAY_FLIP |
MI_DISPLAY_FLIP_PLANE(intel_crtc->plane));
@@ -49086,6 +49084,8 @@
+ pf = 0;
pipesrc = I915_READ(PIPESRC(intel_crtc->pipe)) & 0x0fff0fff;
OUT_RING(pf | pipesrc);
+-
+- intel_mark_page_flip_active(intel_crtc);
ADVANCE_LP_RING();
return 0;
@@ -72957,7 +72957,7 @@
#include <linux/kernel.h>
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
-index 0977849..4a1d8f3 100644
+index 0977849..c62132c 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] =
@@ -73009,7 +73009,7 @@
{
u32 tmp = RREG32(MC_SHARED_CHMAP);
-@@ -1109,11 +1142,20 @@ void evergreen_mc_stop(struct radeon_device *rdev, struct evergreen_mc_save *sav
+@@ -1109,11 +1142,24 @@ void evergreen_mc_stop(struct radeon_device *rdev, struct evergreen_mc_save *sav
crtc_enabled = RREG32(EVERGREEN_CRTC_CONTROL + crtc_offsets[i]) & EVERGREEN_CRTC_MASTER_EN;
if (crtc_enabled) {
save->crtc_enabled[i] = true;
@@ -73023,19 +73023,23 @@
+ if (!(tmp & EVERGREEN_CRTC_BLANK_DATA_EN)) {
+ radeon_wait_for_vblank(rdev, i);
+ tmp |= EVERGREEN_CRTC_BLANK_DATA_EN;
++ WREG32(EVERGREEN_CRTC_UPDATE_LOCK + crtc_offsets[i], 1);
+ WREG32(EVERGREEN_CRTC_BLANK_CONTROL + crtc_offsets[i], tmp);
++ WREG32(EVERGREEN_CRTC_UPDATE_LOCK + crtc_offsets[i], 0);
+ }
+ } else {
+ tmp = RREG32(EVERGREEN_CRTC_CONTROL + crtc_offsets[i]);
+ if (!(tmp & EVERGREEN_CRTC_DISP_READ_REQUEST_DISABLE)) {
+ radeon_wait_for_vblank(rdev, i);
+ tmp |= EVERGREEN_CRTC_DISP_READ_REQUEST_DISABLE;
++ WREG32(EVERGREEN_CRTC_UPDATE_LOCK + crtc_offsets[i], 1);
+ WREG32(EVERGREEN_CRTC_CONTROL + crtc_offsets[i], tmp);
++ WREG32(EVERGREEN_CRTC_UPDATE_LOCK + crtc_offsets[i], 0);
+ }
}
/* wait for the next frame */
frame_count = radeon_get_vblank_counter(rdev, i);
-@@ -1127,7 +1169,7 @@ void evergreen_mc_stop(struct radeon_device *rdev, struct evergreen_mc_save *sav
+@@ -1127,7 +1173,7 @@ void evergreen_mc_stop(struct radeon_device *rdev, struct evergreen_mc_save *sav
}
}
@@ -73044,7 +73048,16 @@
blackout = RREG32(MC_SHARED_BLACKOUT_CNTL);
if ((blackout & BLACKOUT_MODE_MASK) != 1) {
-@@ -1166,10 +1208,16 @@ void evergreen_mc_resume(struct radeon_device *rdev, struct evergreen_mc_save *s
+@@ -1137,6 +1183,8 @@ void evergreen_mc_stop(struct radeon_device *rdev, struct evergreen_mc_save *sav
+ blackout &= ~BLACKOUT_MODE_MASK;
+ WREG32(MC_SHARED_BLACKOUT_CNTL, blackout | 1);
+ }
++ /* wait for the MC to settle */
++ udelay(100);
+ }
+
+ void evergreen_mc_resume(struct radeon_device *rdev, struct evergreen_mc_save *save)
+@@ -1166,10 +1214,20 @@ void evergreen_mc_resume(struct radeon_device *rdev, struct evergreen_mc_save *s
WREG32(BIF_FB_EN, FB_READ_EN | FB_WRITE_EN);
for (i = 0; i < rdev->num_crtc; i++) {
@@ -73056,16 +73069,20 @@
+ if (ASIC_IS_DCE6(rdev)) {
+ tmp = RREG32(EVERGREEN_CRTC_BLANK_CONTROL + crtc_offsets[i]);
+ tmp |= EVERGREEN_CRTC_BLANK_DATA_EN;
++ WREG32(EVERGREEN_CRTC_UPDATE_LOCK + crtc_offsets[i], 1);
+ WREG32(EVERGREEN_CRTC_BLANK_CONTROL + crtc_offsets[i], tmp);
++ WREG32(EVERGREEN_CRTC_UPDATE_LOCK + crtc_offsets[i], 0);
+ } else {
+ tmp = RREG32(EVERGREEN_CRTC_CONTROL + crtc_offsets[i]);
+ tmp &= ~EVERGREEN_CRTC_DISP_READ_REQUEST_DISABLE;
++ WREG32(EVERGREEN_CRTC_UPDATE_LOCK + crtc_offsets[i], 1);
+ WREG32(EVERGREEN_CRTC_CONTROL + crtc_offsets[i], tmp);
++ WREG32(EVERGREEN_CRTC_UPDATE_LOCK + crtc_offsets[i], 0);
+ }
/* wait for the next frame */
frame_count = radeon_get_vblank_counter(rdev, i);
for (j = 0; j < rdev->usec_timeout; j++) {
-@@ -1229,7 +1277,10 @@ void evergreen_mc_program(struct radeon_device *rdev)
+@@ -1229,7 +1287,10 @@ void evergreen_mc_program(struct radeon_device *rdev)
rdev->mc.vram_end >> 12);
}
WREG32(MC_VM_SYSTEM_APERTURE_DEFAULT_ADDR, rdev->vram_scratch.gpu_addr >> 12);
@@ -73077,7 +73094,7 @@
tmp = RREG32(MC_FUS_VM_FB_OFFSET) & 0x000FFFFF;
tmp |= ((rdev->mc.vram_end >> 20) & 0xF) << 24;
tmp |= ((rdev->mc.vram_start >> 20) & 0xF) << 20;
-@@ -1264,18 +1315,20 @@ void evergreen_mc_program(struct radeon_device *rdev)
+@@ -1264,18 +1325,20 @@ void evergreen_mc_program(struct radeon_device *rdev)
*/
void evergreen_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
{
@@ -73104,7 +73121,7 @@
}
-@@ -1313,71 +1366,73 @@ static int evergreen_cp_load_microcode(struct radeon_device *rdev)
+@@ -1313,71 +1376,73 @@ static int evergreen_cp_load_microcode(struct radeon_device *rdev)
static int evergreen_cp_start(struct radeon_device *rdev)
{
@@ -73209,7 +73226,7 @@
u32 tmp;
u32 rb_bufsz;
int r;
-@@ -1395,13 +1450,14 @@ int evergreen_cp_resume(struct radeon_device *rdev)
+@@ -1395,13 +1460,14 @@ int evergreen_cp_resume(struct radeon_device *rdev)
RREG32(GRBM_SOFT_RESET);
/* Set ring buffer size */
@@ -73226,7 +73243,7 @@
/* Set the write pointer delay */
WREG32(CP_RB_WPTR_DELAY, 0);
-@@ -1409,8 +1465,8 @@ int evergreen_cp_resume(struct radeon_device *rdev)
+@@ -1409,8 +1475,8 @@ int evergreen_cp_resume(struct radeon_device *rdev)
/* Initialize the ring buffer's read and write pointers */
WREG32(CP_RB_CNTL, tmp | RB_RPTR_WR_ENA);
WREG32(CP_RB_RPTR_WR, 0);
@@ -73237,7 +73254,7 @@
/* set the wb address wether it's enabled or not */
WREG32(CP_RB_RPTR_ADDR,
-@@ -1428,16 +1484,16 @@ int evergreen_cp_resume(struct radeon_device *rdev)
+@@ -1428,16 +1494,16 @@ int evergreen_cp_resume(struct radeon_device *rdev)
mdelay(1);
WREG32(CP_RB_CNTL, tmp);
@@ -73259,7 +73276,7 @@
return r;
}
return 0;
-@@ -1730,7 +1786,7 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
+@@ -1730,7 +1796,7 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
case CHIP_SUMO:
rdev->config.evergreen.num_ses = 1;
rdev->config.evergreen.max_pipes = 4;
@@ -73268,7 +73285,7 @@
if (rdev->pdev->device == 0x9648)
rdev->config.evergreen.max_simds = 3;
else if ((rdev->pdev->device == 0x9647) ||
-@@ -1819,7 +1875,7 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
+@@ -1819,7 +1885,7 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
break;
case CHIP_CAICOS:
rdev->config.evergreen.num_ses = 1;
@@ -73277,7 +73294,7 @@
rdev->config.evergreen.max_tile_pipes = 2;
rdev->config.evergreen.max_simds = 2;
rdev->config.evergreen.max_backends = 1 * rdev->config.evergreen.num_ses;
-@@ -1868,7 +1924,9 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
+@@ -1868,7 +1934,9 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
mc_shared_chmap = RREG32(MC_SHARED_CHMAP);
@@ -73288,7 +73305,7 @@
mc_arb_ramcfg = RREG32(FUS_MC_ARB_RAMCFG);
else
mc_arb_ramcfg = RREG32(MC_ARB_RAMCFG);
-@@ -2272,7 +2330,9 @@ int evergreen_mc_init(struct radeon_device *rdev)
+@@ -2272,7 +2340,9 @@ int evergreen_mc_init(struct radeon_device *rdev)
/* Get VRAM informations */
rdev->mc.vram_is_ddr = true;
@@ -73299,7 +73316,7 @@
tmp = RREG32(FUS_MC_ARB_RAMCFG);
else
tmp = RREG32(MC_ARB_RAMCFG);
-@@ -2304,12 +2364,14 @@ int evergreen_mc_init(struct radeon_device *rdev)
+@@ -2304,12 +2374,14 @@ 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 */
@@ -73316,7 +73333,7 @@
rdev->mc.mc_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024;
rdev->mc.real_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024;
}
-@@ -2320,7 +2382,7 @@ int evergreen_mc_init(struct radeon_device *rdev)
+@@ -2320,7 +2392,7 @@ int evergreen_mc_init(struct radeon_device *rdev)
return 0;
}
@@ -73325,7 +73342,7 @@
{
u32 srbm_status;
u32 grbm_status;
-@@ -2333,19 +2395,19 @@ bool evergreen_gpu_is_lockup(struct radeon_device *rdev)
+@@ -2333,19 +2405,19 @@ bool evergreen_gpu_is_lockup(struct radeon_device *rdev)
grbm_status_se0 = RREG32(GRBM_STATUS_SE0);
grbm_status_se1 = RREG32(GRBM_STATUS_SE1);
if (!(grbm_status & GUI_ACTIVE)) {
@@ -73352,7 +73369,7 @@
}
static int evergreen_gpu_soft_reset(struct radeon_device *rdev)
-@@ -2437,7 +2499,13 @@ void evergreen_disable_interrupt_state(struct radeon_device *rdev)
+@@ -2437,7 +2509,13 @@ void evergreen_disable_interrupt_state(struct radeon_device *rdev)
{
u32 tmp;
@@ -73367,7 +73384,7 @@
WREG32(GRBM_INT_CNTL, 0);
WREG32(INT_MASK + EVERGREEN_CRTC0_REGISTER_OFFSET, 0);
WREG32(INT_MASK + EVERGREEN_CRTC1_REGISTER_OFFSET, 0);
-@@ -2461,7 +2529,9 @@ void evergreen_disable_interrupt_state(struct radeon_device *rdev)
+@@ -2461,7 +2539,9 @@ void evergreen_disable_interrupt_state(struct radeon_device *rdev)
WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET, 0);
}
@@ -73378,7 +73395,7 @@
WREG32(DACB_AUTODETECT_INT_CONTROL, 0);
tmp = RREG32(DC_HPD1_INT_CONTROL) & DC_HPDx_INT_POLARITY;
-@@ -2482,6 +2552,7 @@ void evergreen_disable_interrupt_state(struct radeon_device *rdev)
+@@ -2482,6 +2562,7 @@ void evergreen_disable_interrupt_state(struct radeon_device *rdev)
int evergreen_irq_set(struct radeon_device *rdev)
{
u32 cp_int_cntl = CNTX_BUSY_INT_ENABLE | CNTX_EMPTY_INT_ENABLE;
@@ -73386,7 +73403,7 @@
u32 crtc1 = 0, crtc2 = 0, crtc3 = 0, crtc4 = 0, crtc5 = 0, crtc6 = 0;
u32 hpd1, hpd2, hpd3, hpd4, hpd5, hpd6;
u32 grbm_int_cntl = 0;
-@@ -2506,11 +2577,28 @@ int evergreen_irq_set(struct radeon_device *rdev)
+@@ -2506,11 +2587,28 @@ int evergreen_irq_set(struct radeon_device *rdev)
hpd5 = RREG32(DC_HPD5_INT_CONTROL) & ~DC_HPDx_INT_EN;
hpd6 = RREG32(DC_HPD6_INT_CONTROL) & ~DC_HPDx_INT_EN;
@@ -73419,7 +73436,7 @@
if (rdev->irq.crtc_vblank_int[0] ||
rdev->irq.pflip[0]) {
DRM_DEBUG("evergreen_irq_set: vblank 0\n");
-@@ -2570,7 +2658,12 @@ int evergreen_irq_set(struct radeon_device *rdev)
+@@ -2570,7 +2668,12 @@ int evergreen_irq_set(struct radeon_device *rdev)
grbm_int_cntl |= GUI_IDLE_INT_ENABLE;
}
@@ -73433,7 +73450,7 @@
WREG32(GRBM_INT_CNTL, grbm_int_cntl);
WREG32(INT_MASK + EVERGREEN_CRTC0_REGISTER_OFFSET, crtc1);
-@@ -2985,11 +3078,24 @@ restart_ih:
+@@ -2985,11 +3088,24 @@ restart_ih:
case 177: /* CP_INT in IB1 */
case 178: /* CP_INT in IB2 */
DRM_DEBUG("IH: CP int: 0x%08x\n", src_data);
@@ -73460,7 +73477,7 @@
break;
case 233: /* GUI IDLE */
DRM_DEBUG("IH: GUI idle\n");
-@@ -3019,6 +3125,7 @@ restart_ih:
+@@ -3019,6 +3135,7 @@ restart_ih:
static int evergreen_startup(struct radeon_device *rdev)
{
@@ -73468,7 +73485,7 @@
int r;
/* enable pcie gen2 link */
-@@ -3064,7 +3171,7 @@ static int evergreen_startup(struct radeon_device *rdev)
+@@ -3064,7 +3181,7 @@ static int evergreen_startup(struct radeon_device *rdev)
r = evergreen_blit_init(rdev);
if (r) {
r600_blit_fini(rdev);
@@ -73477,7 +73494,7 @@
dev_warn(rdev->dev, "failed blitter (%d) falling back to memcpy\n", r);
}
-@@ -3073,6 +3180,12 @@ static int evergreen_startup(struct radeon_device *rdev)
+@@ -3073,6 +3190,12 @@ static int evergreen_startup(struct radeon_device *rdev)
if (r)
return r;
@@ -73490,7 +73507,7 @@
/* Enable IRQ */
r = r600_irq_init(rdev);
if (r) {
-@@ -3082,7 +3195,9 @@ static int evergreen_startup(struct radeon_device *rdev)
+@@ -3082,7 +3205,9 @@ static int evergreen_startup(struct radeon_device *rdev)
}
evergreen_irq_set(rdev);
@@ -73501,7 +73518,7 @@
if (r)
return r;
r = evergreen_cp_load_microcode(rdev);
-@@ -3092,6 +3207,23 @@ static int evergreen_startup(struct radeon_device *rdev)
+@@ -3092,6 +3217,23 @@ static int evergreen_startup(struct radeon_device *rdev)
if (r)
return r;
@@ -73525,7 +73542,7 @@
return 0;
}
-@@ -3111,15 +3243,11 @@ int evergreen_resume(struct radeon_device *rdev)
+@@ -3111,15 +3253,11 @@ int evergreen_resume(struct radeon_device *rdev)
/* post card */
atom_asic_init(rdev->mode_info.atom_context);
@@ -73543,7 +73560,7 @@
return r;
}
-@@ -3129,13 +3257,17 @@ int evergreen_resume(struct radeon_device *rdev)
+@@ -3129,13 +3267,17 @@ int evergreen_resume(struct radeon_device *rdev)
int evergreen_suspend(struct radeon_device *rdev)
{
@@ -73563,7 +73580,7 @@
return 0;
}
-@@ -3210,8 +3342,8 @@ int evergreen_init(struct radeon_device *rdev)
+@@ -3210,8 +3352,8 @@ int evergreen_init(struct radeon_device *rdev)
if (r)
return r;
@@ -73574,7 +73591,7 @@
rdev->ih.ring_obj = NULL;
r600_ih_ring_init(rdev, 64 * 1024);
-@@ -3220,29 +3352,24 @@ int evergreen_init(struct radeon_device *rdev)
+@@ -3220,29 +3362,24 @@ int evergreen_init(struct radeon_device *rdev)
if (r)
return r;
@@ -73611,7 +73628,7 @@
/* Don't start up if the MC ucode is missing on BTC parts.
* The default clocks and voltages before the MC ucode
-@@ -3260,15 +3387,17 @@ int evergreen_init(struct radeon_device *rdev)
+@@ -3260,15 +3397,17 @@ int evergreen_init(struct radeon_device *rdev)
void evergreen_fini(struct radeon_device *rdev)
{
@@ -85713,7 +85730,7 @@
tmp = RREG32_PLL(RADEON_VCLK_ECP_CNTL);
tmp &= ~(RADEON_PIXCLK_ALWAYS_ONb |
diff --git a/drivers/gpu/drm/radeon/radeon_combios.c b/drivers/gpu/drm/radeon/radeon_combios.c
-index 1b98338..2cad9fd 100644
+index ec36dd9..a2470d9 100644
--- a/drivers/gpu/drm/radeon/radeon_combios.c
+++ b/drivers/gpu/drm/radeon/radeon_combios.c
@@ -1536,9 +1536,6 @@ bool radeon_get_legacy_connector_info_from_table(struct drm_device *dev)
@@ -85854,7 +85871,7 @@
default:
DRM_INFO("Connector table: %d (invalid)\n",
rdev->mode_info.connector_table);
-@@ -2962,7 +2845,7 @@ bool radeon_combios_external_tmds_setup(struct drm_encoder *encoder)
+@@ -2970,7 +2853,7 @@ bool radeon_combios_external_tmds_setup(struct drm_encoder *encoder)
case 4:
val = RBIOS16(index);
index += 2;
@@ -85863,7 +85880,7 @@
break;
case 6:
slave_addr = id & 0xff;
-@@ -3161,7 +3044,7 @@ static void combios_parse_pll_table(struct drm_device *dev, uint16_t offset)
+@@ -3169,7 +3052,7 @@ static void combios_parse_pll_table(struct drm_device *dev, uint16_t offset)
udelay(150);
break;
case 2:
@@ -85872,7 +85889,7 @@
break;
case 3:
while (tmp--) {
-@@ -3192,13 +3075,13 @@ static void combios_parse_pll_table(struct drm_device *dev, uint16_t offset)
+@@ -3200,13 +3083,13 @@ static void combios_parse_pll_table(struct drm_device *dev, uint16_t offset)
/*mclk_cntl |= 0x00001111;*//* ??? */
WREG32_PLL(RADEON_MCLK_CNTL,
mclk_cntl);
@@ -86494,7 +86511,7 @@
struct drm_crtc *crtc_p;
diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
-index bd959c1..de5e0b5 100644
+index bd959c1..68c89db 100644
--- a/drivers/gpu/drm/radeon/radeon_device.c
+++ b/drivers/gpu/drm/radeon/radeon_device.c
@@ -89,6 +89,10 @@ static const char radeon_family_name[][16] = {
@@ -86519,17 +86536,7 @@
rdev->wb.enabled = true;
rdev->wb.use_event = true;
}
-@@ -354,8 +358,7 @@ bool radeon_card_posted(struct radeon_device *rdev)
- {
- uint32_t reg;
-
-- if (efi_enabled(EFI_BOOT) &&
-- rdev->pdev->subsystem_vendor == PCI_VENDOR_ID_APPLE)
-+ if (efi_enabled && rdev->pdev->subsystem_vendor == PCI_VENDOR_ID_APPLE)
- return false;
-
- /* first check CRTCs */
-@@ -721,18 +724,25 @@ int radeon_device_init(struct radeon_device *rdev,
+@@ -721,18 +725,25 @@ int radeon_device_init(struct radeon_device *rdev,
/* mutex initialization are all done here so we
* can recall function without having locking issues */
radeon_mutex_init(&rdev->cs_mutex);
@@ -86558,7 +86565,7 @@
/* Set asic functions */
r = radeon_asic_init(rdev);
-@@ -769,8 +779,14 @@ int radeon_device_init(struct radeon_device *rdev,
+@@ -769,8 +780,14 @@ int radeon_device_init(struct radeon_device *rdev,
r = pci_set_dma_mask(rdev->pdev, DMA_BIT_MASK(dma_bits));
if (r) {
rdev->need_dma32 = true;
@@ -86573,7 +86580,7 @@
/* Registers mapping */
/* TODO: block userspace mapping of io register */
-@@ -818,15 +834,20 @@ int radeon_device_init(struct radeon_device *rdev,
+@@ -818,15 +835,20 @@ int radeon_device_init(struct radeon_device *rdev,
if (r)
return r;
}
@@ -86595,7 +86602,7 @@
void radeon_device_fini(struct radeon_device *rdev)
{
DRM_INFO("radeon: finishing device.\n");
-@@ -841,6 +862,7 @@ void radeon_device_fini(struct radeon_device *rdev)
+@@ -841,6 +863,7 @@ void radeon_device_fini(struct radeon_device *rdev)
rdev->rio_mem = NULL;
iounmap(rdev->rmmio);
rdev->rmmio = NULL;
@@ -86603,7 +86610,7 @@
}
-@@ -852,7 +874,7 @@ int radeon_suspend_kms(struct drm_device *dev, pm_message_t state)
+@@ -852,7 +875,7 @@ int radeon_suspend_kms(struct drm_device *dev, pm_message_t state)
struct radeon_device *rdev;
struct drm_crtc *crtc;
struct drm_connector *connector;
@@ -86612,7 +86619,7 @@
if (dev == NULL || dev->dev_private == NULL) {
return -ENODEV;
-@@ -893,7 +915,8 @@ int radeon_suspend_kms(struct drm_device *dev, pm_message_t state)
+@@ -893,7 +916,8 @@ int radeon_suspend_kms(struct drm_device *dev, pm_message_t state)
/* evict vram memory */
radeon_bo_evict_vram(rdev);
/* wait for gpu to finish processing current batch */
@@ -86622,7 +86629,7 @@
radeon_save_bios_scratch_regs(rdev);
-@@ -942,9 +965,11 @@ int radeon_resume_kms(struct drm_device *dev)
+@@ -942,9 +966,11 @@ int radeon_resume_kms(struct drm_device *dev)
radeon_fbdev_set_suspend(rdev, 0);
console_unlock();
@@ -86636,7 +86643,7 @@
/* reset hpd state */
radeon_hpd_init(rdev);
/* blat the mode back in */
-@@ -994,36 +1019,29 @@ int radeon_gpu_reset(struct radeon_device *rdev)
+@@ -994,36 +1020,29 @@ int radeon_gpu_reset(struct radeon_device *rdev)
/*
* Debugfs
*/
@@ -86679,7 +86686,7 @@
#if defined(CONFIG_DEBUG_FS)
drm_debugfs_create_files(files, nfiles,
rdev->ddev->control->debugfs_root,
-@@ -1035,6 +1053,22 @@ int radeon_debugfs_add_files(struct radeon_device *rdev,
+@@ -1035,6 +1054,22 @@ int radeon_debugfs_add_files(struct radeon_device *rdev,
return 0;
}
@@ -86702,7 +86709,7 @@
#if defined(CONFIG_DEBUG_FS)
int radeon_debugfs_init(struct drm_minor *minor)
{
-@@ -1043,11 +1077,5 @@ int radeon_debugfs_init(struct drm_minor *minor)
+@@ -1043,11 +1078,5 @@ int radeon_debugfs_init(struct drm_minor *minor)
void radeon_debugfs_cleanup(struct drm_minor *minor)
{
@@ -86715,7 +86722,7 @@
}
#endif
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
-index aec8e0c..1f50727 100644
+index 63e7143..00d9cac 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -303,8 +303,17 @@ void radeon_crtc_handle_flip(struct radeon_device *rdev, int crtc_id)
@@ -86818,9 +86825,9 @@
return ERR_PTR(-ENOENT);
}
-@@ -1113,7 +1132,12 @@ radeon_user_framebuffer_create(struct drm_device *dev,
- if (radeon_fb == NULL)
+@@ -1115,7 +1134,12 @@ radeon_user_framebuffer_create(struct drm_device *dev,
return ERR_PTR(-ENOMEM);
+ }
- radeon_framebuffer_init(dev, radeon_fb, mode_cmd, obj);
+ ret = radeon_framebuffer_init(dev, radeon_fb, mode_cmd, obj);
@@ -86832,7 +86839,7 @@
return &radeon_fb->base;
}
-@@ -1129,11 +1153,6 @@ static const struct drm_mode_config_funcs radeon_mode_funcs = {
+@@ -1131,11 +1155,6 @@ static const struct drm_mode_config_funcs radeon_mode_funcs = {
.output_poll_changed = radeon_output_poll_changed
};
@@ -86844,7 +86851,7 @@
static struct drm_prop_enum_list radeon_tmds_pll_enum_list[] =
{ { 0, "driver" },
{ 1, "bios" },
-@@ -1158,86 +1177,53 @@ static struct drm_prop_enum_list radeon_underscan_enum_list[] =
+@@ -1160,86 +1179,53 @@ static struct drm_prop_enum_list radeon_underscan_enum_list[] =
static int radeon_modeset_create_props(struct radeon_device *rdev)
{
@@ -86947,7 +86954,7 @@
return 0;
}
-@@ -1283,6 +1269,9 @@ int radeon_modeset_init(struct radeon_device *rdev)
+@@ -1285,6 +1271,9 @@ int radeon_modeset_init(struct radeon_device *rdev)
rdev->ddev->mode_config.max_height = 4096;
}
@@ -86957,7 +86964,7 @@
rdev->ddev->mode_config.fb_base = rdev->mc.aper_base;
ret = radeon_modeset_create_props(rdev);
-@@ -1310,9 +1299,11 @@ int radeon_modeset_init(struct radeon_device *rdev)
+@@ -1312,9 +1301,11 @@ int radeon_modeset_init(struct radeon_device *rdev)
return ret;
}
@@ -89384,7 +89391,7 @@
# define RADEON_CRTC2_VBLANK_SAVE_CLEAR (1 << 1)
#define RADEON_CRTC_V_SYNC_STRT_WID 0x020c
diff --git a/drivers/gpu/drm/radeon/radeon_ring.c b/drivers/gpu/drm/radeon/radeon_ring.c
-index 49d5820..cc33b3d 100644
+index 65be5e8..33eff8b 100644
--- a/drivers/gpu/drm/radeon/radeon_ring.c
+++ b/drivers/gpu/drm/radeon/radeon_ring.c
@@ -34,6 +34,7 @@
@@ -89419,32 +89426,22 @@
}
-void radeon_ib_bogus_cleanup(struct radeon_device *rdev)
-+/*
-+ * IB.
-+ */
-+bool radeon_ib_try_free(struct radeon_device *rdev, struct radeon_ib *ib)
- {
+-{
- struct radeon_ib *ib, *n;
-
- list_for_each_entry_safe(ib, n, &rdev->ib_pool.bogus_ib, list) {
- list_del(&ib->list);
- vfree(ib->ptr);
- kfree(ib);
-+ bool done = false;
-+
-+ /* only free ib which have been emited */
-+ if (ib->fence && ib->fence->emitted) {
-+ if (radeon_fence_signaled(ib->fence)) {
-+ radeon_fence_unref(&ib->fence);
-+ radeon_sa_bo_free(rdev, &ib->sa_bo);
-+ done = true;
-+ }
- }
-+ return done;
- }
-
+- }
+-}
+-
-void radeon_ib_bogus_add(struct radeon_device *rdev, struct radeon_ib *ib)
--{
++/*
++ * IB.
++ */
++bool radeon_ib_try_free(struct radeon_device *rdev, struct radeon_ib *ib)
+ {
- struct radeon_ib *bib;
-
- bib = kmalloc(sizeof(*bib), GFP_KERNEL);
@@ -89454,14 +89451,24 @@
- if (bib->ptr == NULL) {
- kfree(bib);
- return;
-- }
++ bool done = false;
++
++ /* only free ib which have been emited */
++ if (ib->fence && ib->fence->emitted) {
++ if (radeon_fence_signaled(ib->fence)) {
++ radeon_fence_unref(&ib->fence);
++ radeon_sa_bo_free(rdev, &ib->sa_bo);
++ done = true;
++ }
+ }
- memcpy(bib->ptr, ib->ptr, ib->length_dw * 4);
- bib->length_dw = ib->length_dw;
- mutex_lock(&rdev->ib_pool.mutex);
- list_add_tail(&bib->list, &rdev->ib_pool.bogus_ib);
- mutex_unlock(&rdev->ib_pool.mutex);
--}
--
++ return done;
+ }
+
-/*
- * IB.
- */
@@ -89579,7 +89586,7 @@
}
void radeon_ib_free(struct radeon_device *rdev, struct radeon_ib **ib)
-@@ -169,247 +172,258 @@ void radeon_ib_free(struct radeon_device *rdev, struct radeon_ib **ib)
+@@ -169,250 +172,261 @@ void radeon_ib_free(struct radeon_device *rdev, struct radeon_ib **ib)
if (tmp == NULL) {
return;
}
@@ -89799,6 +89806,10 @@
{
int r;
+ /* make sure we aren't trying to allocate more space than there is on the ring */
+- if (ndw > (rdev->cp.ring_size / 4))
++ if (ndw > (ring->ring_size / 4))
+ return -ENOMEM;
/* Align requested size with padding so unlock_commit can
* pad safely */
- ndw = (ndw + rdev->cp.align_mask) & ~rdev->cp.align_mask;
@@ -89957,7 +89968,7 @@
if (ring_obj) {
r = radeon_bo_reserve(ring_obj, false);
-@@ -422,78 +436,96 @@ void radeon_ring_fini(struct radeon_device *rdev)
+@@ -425,78 +439,96 @@ void radeon_ring_fini(struct radeon_device *rdev)
}
}
@@ -91197,19 +91208,20 @@
#endif
return 0;
diff --git a/drivers/gpu/drm/radeon/reg_srcs/cayman b/drivers/gpu/drm/radeon/reg_srcs/cayman
-index 2316977..0f656b1 100644
+index 2316977..a072fa8 100644
--- a/drivers/gpu/drm/radeon/reg_srcs/cayman
+++ b/drivers/gpu/drm/radeon/reg_srcs/cayman
-@@ -1,5 +1,8 @@
+@@ -1,5 +1,9 @@
cayman 0x9400
0x0000802C GRBM_GFX_INDEX
++0x00008040 WAIT_UNTIL
+0x000084FC CP_STRMOUT_CNTL
+0x000085F0 CP_COHER_CNTL
+0x000085F4 CP_COHER_SIZE
0x000088B0 VGT_VTX_VECT_EJECT_REG
0x000088C4 VGT_CACHE_INVALIDATION
0x000088D4 VGT_GS_VERTEX_REUSE
-@@ -77,7 +80,6 @@ cayman 0x9400
+@@ -77,7 +81,6 @@ cayman 0x9400
0x0002802C DB_DEPTH_CLEAR
0x00028030 PA_SC_SCREEN_SCISSOR_TL
0x00028034 PA_SC_SCREEN_SCISSOR_BR
@@ -91217,7 +91229,7 @@
0x00028140 SQ_ALU_CONST_BUFFER_SIZE_PS_0
0x00028144 SQ_ALU_CONST_BUFFER_SIZE_PS_1
0x00028148 SQ_ALU_CONST_BUFFER_SIZE_PS_2
-@@ -206,7 +208,6 @@ cayman 0x9400
+@@ -206,7 +209,6 @@ cayman 0x9400
0x00028344 PA_SC_VPORT_ZMAX_14
0x00028348 PA_SC_VPORT_ZMIN_15
0x0002834C PA_SC_VPORT_ZMAX_15
@@ -91225,7 +91237,7 @@
0x00028354 SX_SURFACE_SYNC
0x0002835C SX_SCATTER_EXPORT_SIZE
0x00028380 SQ_VTX_SEMANTIC_0
-@@ -508,10 +509,16 @@ cayman 0x9400
+@@ -508,10 +510,16 @@ cayman 0x9400
0x00028AA8 IA_MULTI_VGT_PARAM
0x00028AB4 VGT_REUSE_OFF
0x00028AB8 VGT_VTX_CNT_EN
@@ -91243,7 +91255,7 @@
0x00028B38 VGT_GS_MAX_VERT_OUT
0x00028B54 VGT_SHADER_STAGES_EN
0x00028B58 VGT_LS_HS_CONFIG
-@@ -551,6 +558,18 @@ cayman 0x9400
+@@ -551,6 +559,18 @@ cayman 0x9400
0x00028C34 PA_SC_AA_SAMPLE_LOCS_PIXEL_X1_Y1_3
0x00028C38 PA_SC_AA_MASK_X0_Y0_X1_Y0
0x00028C3C PA_SC_AA_MASK_X0_Y1_X1_Y1
Modified: dists/sid/linux/debian/patches/series
==============================================================================
--- dists/sid/linux/debian/patches/series Wed Feb 20 03:24:36 2013 (r19827)
+++ dists/sid/linux/debian/patches/series Wed Feb 20 05:16:43 2013 (r19828)
@@ -449,7 +449,6 @@
features/all/iguanair/0011-media-iguanair-cannot-send-data-from-the-stack.patch
features/all/rt2800-add-chipset-revision-RT5390R-support.patch
bugfix/all/fs-cachefiles-add-support-for-large-files-in-filesys.patch
-bugfix/all/bridge-Pull-ip-header-into-skb-data-before-looking-i.patch
bugfix/all/ext4-rewrite-punch-hole-to-use-ext4_ext_remove_space.patch
bugfix/all/ext4-fix-hole-punch-failure-when-depth-is-greater-th.patch
bugfix/all/ext4-fix-kernel-BUG-on-large-scale-rm-rf-commands.patch
@@ -501,7 +500,6 @@
bugfix/x86/drm-i915-Disable-AsyncFlip-performance-optimisations.patch
bugfix/x86/drm-i915-GFX_MODE-Flush-TLB-Invalidate-Mode-must-be-.patch
bugfix/x86/drm-i915-dump-UTS_RELEASE-into-the-error_state.patch
-features/all/drm/efi-Make-efi_enabled-a-function-to-query-EFI-facilit.patch
# virtio-scsi from 3.7
features/all/virtio_scsi/0001-SCSI-virtio-scsi-SCSI-driver-for-QEMU-based-virtual-.patch
More information about the Kernel-svn-changes
mailing list