From 6dce37cbe6a0e769cbeaefc7a7d05e3009e68251 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 21 May 2013 19:26:51 -0700 Subject: [PATCH] 3.4-stable patches added patches: drm-radeon-fix-vram-size-calculation-for-vram-4gb.patch hwmon-fix-error-return-code-in-abituguru_probe.patch i2c-designware-always-clear-interrupts-before-enabling-them.patch media-mantis-fix-silly-crash-case.patch --- ...x-vram-size-calculation-for-vram-4gb.patch | 58 +++++++++++++++++++ ...error-return-code-in-abituguru_probe.patch | 47 +++++++++++++++ ...lear-interrupts-before-enabling-them.patch | 38 ++++++++++++ .../media-mantis-fix-silly-crash-case.patch | 38 ++++++++++++ queue-3.4/series | 4 ++ 5 files changed, 185 insertions(+) create mode 100644 queue-3.4/drm-radeon-fix-vram-size-calculation-for-vram-4gb.patch create mode 100644 queue-3.4/hwmon-fix-error-return-code-in-abituguru_probe.patch create mode 100644 queue-3.4/i2c-designware-always-clear-interrupts-before-enabling-them.patch create mode 100644 queue-3.4/media-mantis-fix-silly-crash-case.patch diff --git a/queue-3.4/drm-radeon-fix-vram-size-calculation-for-vram-4gb.patch b/queue-3.4/drm-radeon-fix-vram-size-calculation-for-vram-4gb.patch new file mode 100644 index 00000000000..a3b7a23b3a2 --- /dev/null +++ b/queue-3.4/drm-radeon-fix-vram-size-calculation-for-vram-4gb.patch @@ -0,0 +1,58 @@ +From fc986034540102cd090237bf3f70262e1ae80d9c Mon Sep 17 00:00:00 2001 +From: Niels Ole Salscheider +Date: Sat, 18 May 2013 21:19:23 +0200 +Subject: drm/radeon: Fix VRAM size calculation for VRAM >= 4GB + +From: Niels Ole Salscheider + +commit fc986034540102cd090237bf3f70262e1ae80d9c upstream. + +Add ULL prefix to avoid overflow. + +Signed-off-by: Niels Ole Salscheider +Signed-off-by: Alex Deucher +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/radeon/evergreen.c | 4 ++-- + drivers/gpu/drm/radeon/radeon_ttm.c | 2 +- + drivers/gpu/drm/radeon/si.c | 4 ++-- + 3 files changed, 5 insertions(+), 5 deletions(-) + +--- a/drivers/gpu/drm/radeon/evergreen.c ++++ b/drivers/gpu/drm/radeon/evergreen.c +@@ -2443,8 +2443,8 @@ int evergreen_mc_init(struct radeon_devi + rdev->mc.real_vram_size = RREG32(CONFIG_MEMSIZE); + } else { + /* 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); +--- a/drivers/gpu/drm/radeon/radeon_ttm.c ++++ b/drivers/gpu/drm/radeon/radeon_ttm.c +@@ -744,7 +744,7 @@ int radeon_ttm_init(struct radeon_device + 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) { +--- a/drivers/gpu/drm/radeon/si.c ++++ b/drivers/gpu/drm/radeon/si.c +@@ -2464,8 +2464,8 @@ static int si_mc_init(struct radeon_devi + 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); diff --git a/queue-3.4/hwmon-fix-error-return-code-in-abituguru_probe.patch b/queue-3.4/hwmon-fix-error-return-code-in-abituguru_probe.patch new file mode 100644 index 00000000000..b94e72fb91f --- /dev/null +++ b/queue-3.4/hwmon-fix-error-return-code-in-abituguru_probe.patch @@ -0,0 +1,47 @@ +From ecacb0b17c08fae89f65468727f0e4b8e91da4e1 Mon Sep 17 00:00:00 2001 +From: Wei Yongjun +Date: Mon, 13 May 2013 14:01:43 +0800 +Subject: hwmon: fix error return code in abituguru_probe() + +From: Wei Yongjun + +commit ecacb0b17c08fae89f65468727f0e4b8e91da4e1 upstream. + +Fix to return a negative error code from the error handling +case instead of 0, as done elsewhere in this function. + +Signed-off-by: Wei Yongjun +Signed-off-by: Guenter Roeck +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/hwmon/abituguru.c | 16 ++++++++++------ + 1 file changed, 10 insertions(+), 6 deletions(-) + +--- a/drivers/hwmon/abituguru.c ++++ b/drivers/hwmon/abituguru.c +@@ -1410,14 +1410,18 @@ static int __devinit abituguru_probe(str + pr_info("found Abit uGuru\n"); + + /* Register sysfs hooks */ +- for (i = 0; i < sysfs_attr_i; i++) +- if (device_create_file(&pdev->dev, +- &data->sysfs_attr[i].dev_attr)) ++ for (i = 0; i < sysfs_attr_i; i++) { ++ res = device_create_file(&pdev->dev, ++ &data->sysfs_attr[i].dev_attr); ++ if (res) + goto abituguru_probe_error; +- for (i = 0; i < ARRAY_SIZE(abituguru_sysfs_attr); i++) +- if (device_create_file(&pdev->dev, +- &abituguru_sysfs_attr[i].dev_attr)) ++ } ++ for (i = 0; i < ARRAY_SIZE(abituguru_sysfs_attr); i++) { ++ res = device_create_file(&pdev->dev, ++ &abituguru_sysfs_attr[i].dev_attr); ++ if (res) + goto abituguru_probe_error; ++ } + + data->hwmon_dev = hwmon_device_register(&pdev->dev); + if (!IS_ERR(data->hwmon_dev)) diff --git a/queue-3.4/i2c-designware-always-clear-interrupts-before-enabling-them.patch b/queue-3.4/i2c-designware-always-clear-interrupts-before-enabling-them.patch new file mode 100644 index 00000000000..65b98b47b5a --- /dev/null +++ b/queue-3.4/i2c-designware-always-clear-interrupts-before-enabling-them.patch @@ -0,0 +1,38 @@ +From 2a2d95e9d6d29e726cc294b65391917ed2e32bf4 Mon Sep 17 00:00:00 2001 +From: Mika Westerberg +Date: Mon, 13 May 2013 00:54:30 +0000 +Subject: i2c: designware: always clear interrupts before enabling them + +From: Mika Westerberg + +commit 2a2d95e9d6d29e726cc294b65391917ed2e32bf4 upstream. + +If the I2C bus is put to a low power state by an ACPI method it might pull +the SDA line low (as its power is removed). Once the bus is put to full +power state again, the SDA line is pulled back to high. This transition +looks like a STOP condition from the controller point-of-view which sets +STOP detected bit in its status register causing the driver to fail +subsequent transfers. + +Fix this by always clearing all interrupts before we start a transfer. + +Signed-off-by: Mika Westerberg +Signed-off-by: Wolfram Sang +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/i2c/busses/i2c-designware-core.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/i2c/busses/i2c-designware-core.c ++++ b/drivers/i2c/busses/i2c-designware-core.c +@@ -349,7 +349,8 @@ static void i2c_dw_xfer_init(struct dw_i + /* Enable the adapter */ + dw_writel(dev, 1, DW_IC_ENABLE); + +- /* Enable interrupts */ ++ /* Clear and enable interrupts */ ++ i2c_dw_clear_int(dev); + dw_writel(dev, DW_IC_INTR_DEFAULT_MASK, DW_IC_INTR_MASK); + } + diff --git a/queue-3.4/media-mantis-fix-silly-crash-case.patch b/queue-3.4/media-mantis-fix-silly-crash-case.patch new file mode 100644 index 00000000000..38c154ef2cf --- /dev/null +++ b/queue-3.4/media-mantis-fix-silly-crash-case.patch @@ -0,0 +1,38 @@ +From e1d45ae10aea8e8a403e5d96bf5902ee670007ff Mon Sep 17 00:00:00 2001 +From: Alan Cox +Date: Thu, 9 Aug 2012 12:33:52 -0300 +Subject: media: mantis: fix silly crash case + +From: Alan Cox + +commit e1d45ae10aea8e8a403e5d96bf5902ee670007ff upstream. + +If we set mantis->fe to NULL on an error its not a good idea to then try +passing NULL to the unregister paths and oopsing really. + +Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?id=16473 + +Signed-off-by: Alan Cox +Signed-off-by: Mauro Carvalho Chehab +Cc: Bjørn Mork +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/media/dvb/mantis/mantis_dvb.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/drivers/media/dvb/mantis/mantis_dvb.c ++++ b/drivers/media/dvb/mantis/mantis_dvb.c +@@ -248,8 +248,10 @@ int __devinit mantis_dvb_init(struct man + err5: + tasklet_kill(&mantis->tasklet); + dvb_net_release(&mantis->dvbnet); +- dvb_unregister_frontend(mantis->fe); +- dvb_frontend_detach(mantis->fe); ++ if (mantis->fe) { ++ dvb_unregister_frontend(mantis->fe); ++ dvb_frontend_detach(mantis->fe); ++ } + err4: + mantis->demux.dmx.remove_frontend(&mantis->demux.dmx, &mantis->fe_mem); + diff --git a/queue-3.4/series b/queue-3.4/series index 8dcb997cd7f..e462559982f 100644 --- a/queue-3.4/series +++ b/queue-3.4/series @@ -1 +1,5 @@ btrfs-don-t-stop-searching-after-encountering-the-wrong-item.patch +hwmon-fix-error-return-code-in-abituguru_probe.patch +i2c-designware-always-clear-interrupts-before-enabling-them.patch +drm-radeon-fix-vram-size-calculation-for-vram-4gb.patch +media-mantis-fix-silly-crash-case.patch -- 2.47.3