]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 8 Jun 2014 01:50:24 +0000 (18:50 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 8 Jun 2014 01:50:24 +0000 (18:50 -0700)
added patches:
documentation-fix-docbooks-...-building.patch
drm-gf119-disp-fix-nasty-bug-which-can-clobber-sor0-s-clock-setup.patch
drm-radeon-also-try-gart-for-cpu-accessed-buffers.patch
drm-radeon-fix-register-typo-on-si.patch
drm-radeon-handle-non-vga-class-pci-devices-with-atrm.patch
drm-radeon-pm-don-t-allow-debugfs-sysfs-access-when-px-card-is-off-v2.patch
hwmon-ntc_thermistor-fix-dependencies.patch
hwmon-ntc_thermistor-fix-of-device-id-mapping.patch
scsi-scsi_transport_sas-move-bsg-destructor-into-sas_rphy_remove.patch

queue-3.14/documentation-fix-docbooks-...-building.patch [new file with mode: 0644]
queue-3.14/drm-gf119-disp-fix-nasty-bug-which-can-clobber-sor0-s-clock-setup.patch [new file with mode: 0644]
queue-3.14/drm-radeon-also-try-gart-for-cpu-accessed-buffers.patch [new file with mode: 0644]
queue-3.14/drm-radeon-fix-register-typo-on-si.patch [new file with mode: 0644]
queue-3.14/drm-radeon-handle-non-vga-class-pci-devices-with-atrm.patch [new file with mode: 0644]
queue-3.14/drm-radeon-pm-don-t-allow-debugfs-sysfs-access-when-px-card-is-off-v2.patch [new file with mode: 0644]
queue-3.14/hwmon-ntc_thermistor-fix-dependencies.patch [new file with mode: 0644]
queue-3.14/hwmon-ntc_thermistor-fix-of-device-id-mapping.patch [new file with mode: 0644]
queue-3.14/scsi-scsi_transport_sas-move-bsg-destructor-into-sas_rphy_remove.patch [new file with mode: 0644]
queue-3.14/series

diff --git a/queue-3.14/documentation-fix-docbooks-...-building.patch b/queue-3.14/documentation-fix-docbooks-...-building.patch
new file mode 100644 (file)
index 0000000..a35137b
--- /dev/null
@@ -0,0 +1,44 @@
+From e60cbeedc48d80689c249ab5dcc3c31ad0452dea Mon Sep 17 00:00:00 2001
+From: Johannes Berg <johannes.berg@intel.com>
+Date: Thu, 22 May 2014 11:54:23 -0700
+Subject: Documentation: fix DOCBOOKS=... building
+
+From: Johannes Berg <johannes.berg@intel.com>
+
+commit e60cbeedc48d80689c249ab5dcc3c31ad0452dea upstream.
+
+Prior to commit 4266129964b8 ("[media] DocBook: Move all media docbook
+stuff into its own directory") it was possible to build only a single
+(or more) book(s) by calling, for example
+
+    make htmldocs DOCBOOKS=80211.xml
+
+This now fails:
+
+    cp: target `.../Documentation/DocBook//media_api' is not a directory
+
+Ignore errors from that copy to make this possible again.
+
+Fixes: 4266129964b8 ("[media] DocBook: Move all media docbook stuff into its own directory")
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Acked-by: Randy Dunlap <rdunlap@xenotime.net>
+Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ Documentation/DocBook/media/Makefile |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/Documentation/DocBook/media/Makefile
++++ b/Documentation/DocBook/media/Makefile
+@@ -195,7 +195,7 @@ DVB_DOCUMENTED = \
+ #
+ install_media_images = \
+-      $(Q)cp $(OBJIMGFILES) $(MEDIA_SRC_DIR)/v4l/*.svg $(MEDIA_OBJ_DIR)/media_api
++      $(Q)-cp $(OBJIMGFILES) $(MEDIA_SRC_DIR)/v4l/*.svg $(MEDIA_OBJ_DIR)/media_api
+ $(MEDIA_OBJ_DIR)/%: $(MEDIA_SRC_DIR)/%.b64
+       $(Q)base64 -d $< >$@
diff --git a/queue-3.14/drm-gf119-disp-fix-nasty-bug-which-can-clobber-sor0-s-clock-setup.patch b/queue-3.14/drm-gf119-disp-fix-nasty-bug-which-can-clobber-sor0-s-clock-setup.patch
new file mode 100644 (file)
index 0000000..e2e6f26
--- /dev/null
@@ -0,0 +1,30 @@
+From 0f1d360b2ee3a2a0f510d3f1bcd3f5ebe5d41265 Mon Sep 17 00:00:00 2001
+From: Ben Skeggs <bskeggs@redhat.com>
+Date: Tue, 20 May 2014 16:13:54 +1000
+Subject: drm/gf119-/disp: fix nasty bug which can clobber SOR0's clock setup
+
+From: Ben Skeggs <bskeggs@redhat.com>
+
+commit 0f1d360b2ee3a2a0f510d3f1bcd3f5ebe5d41265 upstream.
+
+Fixes a LVDS bleed issue on Lenovo W530 that can occur under a
+number of circumstances.
+
+Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/nouveau/core/engine/disp/nvd0.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/nouveau/core/engine/disp/nvd0.c
++++ b/drivers/gpu/drm/nouveau/core/engine/disp/nvd0.c
+@@ -732,7 +732,7 @@ exec_clkcmp(struct nv50_disp_priv *priv,
+       }
+       if (outp == 8)
+-              return false;
++              return conf;
+       data = exec_lookup(priv, head, outp, ctrl, dcb, &ver, &hdr, &cnt, &len, &info1);
+       if (data == 0x0000)
diff --git a/queue-3.14/drm-radeon-also-try-gart-for-cpu-accessed-buffers.patch b/queue-3.14/drm-radeon-also-try-gart-for-cpu-accessed-buffers.patch
new file mode 100644 (file)
index 0000000..4cbdd9a
--- /dev/null
@@ -0,0 +1,72 @@
+From 544092596e8ac269f70e70961b5e9381909c9b1e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+Date: Mon, 5 May 2014 18:40:12 +0200
+Subject: drm/radeon: also try GART for CPU accessed buffers
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+
+commit 544092596e8ac269f70e70961b5e9381909c9b1e upstream.
+
+Placing them exclusively into VRAM might not work all the time.
+
+Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=78297
+
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/radeon/radeon_object.c |   38 +++++++++++++++++++--------------
+ 1 file changed, 23 insertions(+), 15 deletions(-)
+
+--- a/drivers/gpu/drm/radeon/radeon_object.c
++++ b/drivers/gpu/drm/radeon/radeon_object.c
+@@ -586,22 +586,30 @@ int radeon_bo_fault_reserve_notify(struc
+       rbo = container_of(bo, struct radeon_bo, tbo);
+       radeon_bo_check_tiling(rbo, 0, 0);
+       rdev = rbo->rdev;
+-      if (bo->mem.mem_type == TTM_PL_VRAM) {
+-              size = bo->mem.num_pages << PAGE_SHIFT;
+-              offset = bo->mem.start << PAGE_SHIFT;
+-              if ((offset + size) > rdev->mc.visible_vram_size) {
+-                      /* hurrah the memory is not visible ! */
+-                      radeon_ttm_placement_from_domain(rbo, RADEON_GEM_DOMAIN_VRAM);
+-                      rbo->placement.lpfn = rdev->mc.visible_vram_size >> PAGE_SHIFT;
+-                      r = ttm_bo_validate(bo, &rbo->placement, false, false);
+-                      if (unlikely(r != 0))
+-                              return r;
+-                      offset = bo->mem.start << PAGE_SHIFT;
+-                      /* this should not happen */
+-                      if ((offset + size) > rdev->mc.visible_vram_size)
+-                              return -EINVAL;
+-              }
++      if (bo->mem.mem_type != TTM_PL_VRAM)
++              return 0;
++
++      size = bo->mem.num_pages << PAGE_SHIFT;
++      offset = bo->mem.start << PAGE_SHIFT;
++      if ((offset + size) <= rdev->mc.visible_vram_size)
++              return 0;
++
++      /* hurrah the memory is not visible ! */
++      radeon_ttm_placement_from_domain(rbo, RADEON_GEM_DOMAIN_VRAM);
++      rbo->placement.lpfn = rdev->mc.visible_vram_size >> PAGE_SHIFT;
++      r = ttm_bo_validate(bo, &rbo->placement, false, false);
++      if (unlikely(r == -ENOMEM)) {
++              radeon_ttm_placement_from_domain(rbo, RADEON_GEM_DOMAIN_GTT);
++              return ttm_bo_validate(bo, &rbo->placement, false, false);
++      } else if (unlikely(r != 0)) {
++              return r;
+       }
++
++      offset = bo->mem.start << PAGE_SHIFT;
++      /* this should never happen */
++      if ((offset + size) > rdev->mc.visible_vram_size)
++              return -EINVAL;
++
+       return 0;
+ }
diff --git a/queue-3.14/drm-radeon-fix-register-typo-on-si.patch b/queue-3.14/drm-radeon-fix-register-typo-on-si.patch
new file mode 100644 (file)
index 0000000..213c77f
--- /dev/null
@@ -0,0 +1,35 @@
+From 4955bb073f1be6dd884b5d10041ba4bade6495bf Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexdeucher@gmail.com>
+Date: Mon, 5 May 2014 16:40:42 -0400
+Subject: drm/radeon: fix register typo on si
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Alex Deucher <alexdeucher@gmail.com>
+
+commit 4955bb073f1be6dd884b5d10041ba4bade6495bf upstream.
+
+Probably a copy paste typo.
+
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/radeon/sid.h |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/gpu/drm/radeon/sid.h
++++ b/drivers/gpu/drm/radeon/sid.h
+@@ -107,8 +107,8 @@
+ #define               SPLL_CHG_STATUS                         (1 << 1)
+ #define       SPLL_CNTL_MODE                                  0x618
+ #define               SPLL_SW_DIR_CONTROL                     (1 << 0)
+-#     define SPLL_REFCLK_SEL(x)                       ((x) << 8)
+-#     define SPLL_REFCLK_SEL_MASK                     0xFF00
++#     define SPLL_REFCLK_SEL(x)                       ((x) << 26)
++#     define SPLL_REFCLK_SEL_MASK                     (3 << 26)
+ #define       CG_SPLL_SPREAD_SPECTRUM                         0x620
+ #define               SSEN                                    (1 << 0)
diff --git a/queue-3.14/drm-radeon-handle-non-vga-class-pci-devices-with-atrm.patch b/queue-3.14/drm-radeon-handle-non-vga-class-pci-devices-with-atrm.patch
new file mode 100644 (file)
index 0000000..a5bd907
--- /dev/null
@@ -0,0 +1,49 @@
+From d8ade3526b2aa0505132c404c05a38b73ea15490 Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexdeucher@gmail.com>
+Date: Thu, 8 May 2014 20:04:03 -0400
+Subject: drm/radeon: handle non-VGA class pci devices with ATRM
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Alex Deucher <alexdeucher@gmail.com>
+
+commit d8ade3526b2aa0505132c404c05a38b73ea15490 upstream.
+
+Newer PX systems have non-VGA pci class dGPUs.  Update
+the ATRM fetch method to handle those cases.
+
+bug:
+https://bugzilla.kernel.org/show_bug.cgi?id=75401
+
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/radeon/radeon_bios.c |   14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+--- a/drivers/gpu/drm/radeon/radeon_bios.c
++++ b/drivers/gpu/drm/radeon/radeon_bios.c
+@@ -196,6 +196,20 @@ static bool radeon_atrm_get_bios(struct
+               }
+       }
++      if (!found) {
++              while ((pdev = pci_get_class(PCI_CLASS_DISPLAY_OTHER << 8, pdev)) != NULL) {
++                      dhandle = ACPI_HANDLE(&pdev->dev);
++                      if (!dhandle)
++                              continue;
++
++                      status = acpi_get_handle(dhandle, "ATRM", &atrm_handle);
++                      if (!ACPI_FAILURE(status)) {
++                              found = true;
++                              break;
++                      }
++              }
++      }
++
+       if (!found)
+               return false;
diff --git a/queue-3.14/drm-radeon-pm-don-t-allow-debugfs-sysfs-access-when-px-card-is-off-v2.patch b/queue-3.14/drm-radeon-pm-don-t-allow-debugfs-sysfs-access-when-px-card-is-off-v2.patch
new file mode 100644 (file)
index 0000000..4785b90
--- /dev/null
@@ -0,0 +1,131 @@
+From 4f2f203976964e267dc477de6648bdb3acd2b74b Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexdeucher@gmail.com>
+Date: Mon, 19 May 2014 19:21:29 -0400
+Subject: drm/radeon/pm: don't allow debugfs/sysfs access when PX card is off (v2)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Alex Deucher <alexdeucher@gmail.com>
+
+commit 4f2f203976964e267dc477de6648bdb3acd2b74b upstream.
+
+When the PX card is off don't try and access it. Avoid hw access
+to the card while it's off (e.g., reading back invalid temperature).
+
+v2: be less strict
+
+bug:
+https://bugzilla.kernel.org/show_bug.cgi?id=76321
+
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Christian König <christian.koenig@amd.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/radeon/radeon_pm.c |   42 ++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 41 insertions(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/radeon/radeon_pm.c
++++ b/drivers/gpu/drm/radeon/radeon_pm.c
+@@ -361,6 +361,11 @@ static ssize_t radeon_set_pm_profile(str
+       struct drm_device *ddev = dev_get_drvdata(dev);
+       struct radeon_device *rdev = ddev->dev_private;
++      /* Can't set profile when the card is off */
++      if  ((rdev->flags & RADEON_IS_PX) &&
++           (ddev->switch_power_state != DRM_SWITCH_POWER_ON))
++              return -EINVAL;
++
+       mutex_lock(&rdev->pm.mutex);
+       if (rdev->pm.pm_method == PM_METHOD_PROFILE) {
+               if (strncmp("default", buf, strlen("default")) == 0)
+@@ -409,6 +414,13 @@ static ssize_t radeon_set_pm_method(stru
+       struct drm_device *ddev = dev_get_drvdata(dev);
+       struct radeon_device *rdev = ddev->dev_private;
++      /* Can't set method when the card is off */
++      if  ((rdev->flags & RADEON_IS_PX) &&
++           (ddev->switch_power_state != DRM_SWITCH_POWER_ON)) {
++              count = -EINVAL;
++              goto fail;
++      }
++
+       /* we don't support the legacy modes with dpm */
+       if (rdev->pm.pm_method == PM_METHOD_DPM) {
+               count = -EINVAL;
+@@ -446,6 +458,10 @@ static ssize_t radeon_get_dpm_state(stru
+       struct radeon_device *rdev = ddev->dev_private;
+       enum radeon_pm_state_type pm = rdev->pm.dpm.user_state;
++      if  ((rdev->flags & RADEON_IS_PX) &&
++           (ddev->switch_power_state != DRM_SWITCH_POWER_ON))
++              return snprintf(buf, PAGE_SIZE, "off\n");
++
+       return snprintf(buf, PAGE_SIZE, "%s\n",
+                       (pm == POWER_STATE_TYPE_BATTERY) ? "battery" :
+                       (pm == POWER_STATE_TYPE_BALANCED) ? "balanced" : "performance");
+@@ -459,6 +475,11 @@ static ssize_t radeon_set_dpm_state(stru
+       struct drm_device *ddev = dev_get_drvdata(dev);
+       struct radeon_device *rdev = ddev->dev_private;
++      /* Can't set dpm state when the card is off */
++      if  ((rdev->flags & RADEON_IS_PX) &&
++           (ddev->switch_power_state != DRM_SWITCH_POWER_ON))
++              return -EINVAL;
++
+       mutex_lock(&rdev->pm.mutex);
+       if (strncmp("battery", buf, strlen("battery")) == 0)
+               rdev->pm.dpm.user_state = POWER_STATE_TYPE_BATTERY;
+@@ -485,6 +506,10 @@ static ssize_t radeon_get_dpm_forced_per
+       struct radeon_device *rdev = ddev->dev_private;
+       enum radeon_dpm_forced_level level = rdev->pm.dpm.forced_level;
++      if  ((rdev->flags & RADEON_IS_PX) &&
++           (ddev->switch_power_state != DRM_SWITCH_POWER_ON))
++              return snprintf(buf, PAGE_SIZE, "off\n");
++
+       return snprintf(buf, PAGE_SIZE, "%s\n",
+                       (level == RADEON_DPM_FORCED_LEVEL_AUTO) ? "auto" :
+                       (level == RADEON_DPM_FORCED_LEVEL_LOW) ? "low" : "high");
+@@ -500,6 +525,11 @@ static ssize_t radeon_set_dpm_forced_per
+       enum radeon_dpm_forced_level level;
+       int ret = 0;
++      /* Can't force performance level when the card is off */
++      if  ((rdev->flags & RADEON_IS_PX) &&
++           (ddev->switch_power_state != DRM_SWITCH_POWER_ON))
++              return -EINVAL;
++
+       mutex_lock(&rdev->pm.mutex);
+       if (strncmp("low", buf, strlen("low")) == 0) {
+               level = RADEON_DPM_FORCED_LEVEL_LOW;
+@@ -538,8 +568,14 @@ static ssize_t radeon_hwmon_show_temp(st
+                                     char *buf)
+ {
+       struct radeon_device *rdev = dev_get_drvdata(dev);
++      struct drm_device *ddev = rdev->ddev;
+       int temp;
++      /* Can't get temperature when the card is off */
++      if  ((rdev->flags & RADEON_IS_PX) &&
++           (ddev->switch_power_state != DRM_SWITCH_POWER_ON))
++              return -EINVAL;
++
+       if (rdev->asic->pm.get_temperature)
+               temp = radeon_get_temperature(rdev);
+       else
+@@ -1591,8 +1627,12 @@ static int radeon_debugfs_pm_info(struct
+       struct drm_info_node *node = (struct drm_info_node *) m->private;
+       struct drm_device *dev = node->minor->dev;
+       struct radeon_device *rdev = dev->dev_private;
++      struct drm_device *ddev = rdev->ddev;
+-      if (rdev->pm.dpm_enabled) {
++      if  ((rdev->flags & RADEON_IS_PX) &&
++           (ddev->switch_power_state != DRM_SWITCH_POWER_ON)) {
++              seq_printf(m, "PX asic powered off\n");
++      } else if (rdev->pm.dpm_enabled) {
+               mutex_lock(&rdev->pm.mutex);
+               if (rdev->asic->dpm.debugfs_print_current_performance_level)
+                       radeon_dpm_debugfs_print_current_performance_level(rdev, m);
diff --git a/queue-3.14/hwmon-ntc_thermistor-fix-dependencies.patch b/queue-3.14/hwmon-ntc_thermistor-fix-dependencies.patch
new file mode 100644 (file)
index 0000000..520577d
--- /dev/null
@@ -0,0 +1,66 @@
+From 59cf4243e557aa64ab2ef51280454aa1f3828e14 Mon Sep 17 00:00:00 2001
+From: Jean Delvare <jdelvare@suse.de>
+Date: Sun, 25 May 2014 17:23:08 +0200
+Subject: hwmon: (ntc_thermistor) Fix dependencies
+
+From: Jean Delvare <jdelvare@suse.de>
+
+commit 59cf4243e557aa64ab2ef51280454aa1f3828e14 upstream.
+
+In commit 9e8269de, support was added for ntc_thermistor devices being
+declared in the device tree and implemented on top of IIO. With that
+change, a dependency was added to the ntc_thermistor driver:
+
+       depends on (!OF && !IIO) || (OF && IIO)
+
+This construct has the drawback that the driver can no longer be
+selected when OF is set and IIO isn't, nor when IIO is set and OF is
+not. This is a regression for the original users of the driver.
+
+As the new code depends on IIO and is useless without OF, include it
+only if both are enabled, and set the dependencies accordingly. This
+is clearer, more simple and more correct.
+
+Signed-off-by: Jean Delvare <jdelvare@suse.de>
+Fixes: 9e8269de hwmon: (ntc_thermistor) Add DT with IIO support to NTC thermistor driver
+Reviewed-by: Guenter Roeck <linux@roeck-us.net>
+Cc: Naveen Krishna Chatradhi <ch.naveen@samsung.com>
+Cc: Doug Anderson <dianders@chromium.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/hwmon/Kconfig          |    2 +-
+ drivers/hwmon/ntc_thermistor.c |    4 +++-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+--- a/drivers/hwmon/Kconfig
++++ b/drivers/hwmon/Kconfig
+@@ -971,7 +971,7 @@ config SENSORS_NCT6775
+ config SENSORS_NTC_THERMISTOR
+       tristate "NTC thermistor support"
+-      depends on (!OF && !IIO) || (OF && IIO)
++      depends on !OF || IIO=n || IIO
+       help
+         This driver supports NTC thermistors sensor reading and its
+         interpretation. The driver can also monitor the temperature and
+--- a/drivers/hwmon/ntc_thermistor.c
++++ b/drivers/hwmon/ntc_thermistor.c
+@@ -141,7 +141,7 @@ struct ntc_data {
+       char name[PLATFORM_NAME_SIZE];
+ };
+-#ifdef CONFIG_OF
++#if defined(CONFIG_OF) && IS_ENABLED(CONFIG_IIO)
+ static int ntc_adc_iio_read(struct ntc_thermistor_platform_data *pdata)
+ {
+       struct iio_channel *channel = pdata->chan;
+@@ -223,6 +223,8 @@ ntc_thermistor_parse_dt(struct platform_
+       return NULL;
+ }
++#define ntc_match     NULL
++
+ static void ntc_iio_channel_release(struct ntc_thermistor_platform_data *pdata)
+ { }
+ #endif
diff --git a/queue-3.14/hwmon-ntc_thermistor-fix-of-device-id-mapping.patch b/queue-3.14/hwmon-ntc_thermistor-fix-of-device-id-mapping.patch
new file mode 100644 (file)
index 0000000..a3059b1
--- /dev/null
@@ -0,0 +1,63 @@
+From ead82d6792ef5c600d535bca6ec50a4da14ff7c7 Mon Sep 17 00:00:00 2001
+From: Jean Delvare <jdelvare@suse.de>
+Date: Sun, 25 May 2014 17:23:08 +0200
+Subject: hwmon: (ntc_thermistor) Fix OF device ID mapping
+
+From: Jean Delvare <jdelvare@suse.de>
+
+commit ead82d6792ef5c600d535bca6ec50a4da14ff7c7 upstream.
+
+The mapping from OF device IDs to platform device IDs is wrong.
+TYPE_NCPXXWB473 is 0, TYPE_NCPXXWL333 is 1, so
+ntc_thermistor_id[TYPE_NCPXXWB473] is { "ncp15wb473", TYPE_NCPXXWB473 }
+while
+ntc_thermistor_id[TYPE_NCPXXWL333] is { "ncp18wb473", TYPE_NCPXXWB473 }.
+
+So the name is wrong for all but the "ntc,ncp15wb473" entry, and the
+type is wrong for the "ntc,ncp15wl333" entry.
+
+So map the entries by index, it is neither elegant nor robust but at
+least it is correct.
+
+Signed-off-by: Jean Delvare <jdelvare@suse.de>
+Fixes: 9e8269de hwmon: (ntc_thermistor) Add DT with IIO support to NTC thermistor driver
+Reviewed-by: Guenter Roeck <linux@roeck-us.net>
+Cc: Naveen Krishna Chatradhi <ch.naveen@samsung.com>
+Cc: Doug Anderson <dianders@chromium.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/hwmon/ntc_thermistor.c |   11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+--- a/drivers/hwmon/ntc_thermistor.c
++++ b/drivers/hwmon/ntc_thermistor.c
+@@ -44,6 +44,7 @@ struct ntc_compensation {
+       unsigned int    ohm;
+ };
++/* Order matters, ntc_match references the entries by index */
+ static const struct platform_device_id ntc_thermistor_id[] = {
+       { "ncp15wb473", TYPE_NCPXXWB473 },
+       { "ncp18wb473", TYPE_NCPXXWB473 },
+@@ -163,15 +164,15 @@ static int ntc_adc_iio_read(struct ntc_t
+ static const struct of_device_id ntc_match[] = {
+       { .compatible = "ntc,ncp15wb473",
+-              .data = &ntc_thermistor_id[TYPE_NCPXXWB473] },
++              .data = &ntc_thermistor_id[0] },
+       { .compatible = "ntc,ncp18wb473",
+-              .data = &ntc_thermistor_id[TYPE_NCPXXWB473] },
++              .data = &ntc_thermistor_id[1] },
+       { .compatible = "ntc,ncp21wb473",
+-              .data = &ntc_thermistor_id[TYPE_NCPXXWB473] },
++              .data = &ntc_thermistor_id[2] },
+       { .compatible = "ntc,ncp03wb473",
+-              .data = &ntc_thermistor_id[TYPE_NCPXXWB473] },
++              .data = &ntc_thermistor_id[3] },
+       { .compatible = "ntc,ncp15wl333",
+-              .data = &ntc_thermistor_id[TYPE_NCPXXWL333] },
++              .data = &ntc_thermistor_id[4] },
+       { },
+ };
+ MODULE_DEVICE_TABLE(of, ntc_match);
diff --git a/queue-3.14/scsi-scsi_transport_sas-move-bsg-destructor-into-sas_rphy_remove.patch b/queue-3.14/scsi-scsi_transport_sas-move-bsg-destructor-into-sas_rphy_remove.patch
new file mode 100644 (file)
index 0000000..965a098
--- /dev/null
@@ -0,0 +1,75 @@
+From 6aa6caff30f5dcb9e55b03b9710c30b83750cae5 Mon Sep 17 00:00:00 2001
+From: Joe Lawrence <joe.lawrence@stratus.com>
+Date: Thu, 22 May 2014 17:30:54 -0400
+Subject: SCSI: scsi_transport_sas: move bsg destructor into sas_rphy_remove
+
+From: Joe Lawrence <joe.lawrence@stratus.com>
+
+commit 6aa6caff30f5dcb9e55b03b9710c30b83750cae5 upstream.
+
+The recent change in sysfs, bcdde7e221a8750f9b62b6d0bd31b72ea4ad9309
+"sysfs: make __sysfs_remove_dir() recursive" revealed an asymmetric
+rphy device creation/deletion sequence in scsi_transport_sas:
+
+  modprobe mpt2sas
+    sas_rphy_add
+      device_add A               rphy->dev
+      device_add B               sas_device transport class
+      device_add C               sas_end_device transport class
+      device_add D               bsg class
+
+  rmmod mpt2sas
+    sas_rphy_delete
+      sas_rphy_remove
+        device_del B
+        device_del C
+        device_del A
+          sysfs_remove_group     recursive sysfs dir removal
+      sas_rphy_free
+        device_del D             warning
+
+  where device A is the parent of B, C, and D.
+
+When sas_rphy_free tries to unregister the bsg request queue (device D
+above), the ensuing sysfs cleanup discovers that its sysfs group has
+already been removed and emits a warning, "sysfs group... not found for
+kobject 'end_device-X:0'".
+
+Since bsg creation is a side effect of sas_rphy_add, move its
+complementary removal call into sas_rphy_remove. This imposes the
+following tear-down order for the devices above: D, B, C, A.
+
+Note the sas_device and sas_end_device transport class devices (B and C
+above) are created and destroyed both via the list match traversal in
+attribute_container_device_trigger, so the order in which they are
+handled is fixed. This is fine as long as they are deleted before their
+parent device.
+
+Signed-off-by: Joe Lawrence <joe.lawrence@stratus.com>
+Acked-by: Dan Williams <dan.j.williams@intel.com>
+Signed-off-by: James Bottomley <JBottomley@Parallels.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/scsi/scsi_transport_sas.c |    3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+--- a/drivers/scsi/scsi_transport_sas.c
++++ b/drivers/scsi/scsi_transport_sas.c
+@@ -1621,8 +1621,6 @@ void sas_rphy_free(struct sas_rphy *rphy
+       list_del(&rphy->list);
+       mutex_unlock(&sas_host->lock);
+-      sas_bsg_remove(shost, rphy);
+-
+       transport_destroy_device(dev);
+       put_device(dev);
+@@ -1681,6 +1679,7 @@ sas_rphy_remove(struct sas_rphy *rphy)
+       }
+       sas_rphy_unlink(rphy);
++      sas_bsg_remove(NULL, rphy);
+       transport_remove_device(dev);
+       device_del(dev);
+ }
index f9fe2366397db4193ac982a2424a7de7fc596894..a739c4bbbf74307f7a95498715194a54a38bd818 100644 (file)
@@ -5,3 +5,12 @@ perf-prevent-false-warning-in-perf_swevent_add.patch
 perf-limit-perf_event_attr-sample_period-to-63-bits.patch
 perf-fix-race-in-removing-an-event.patch
 mm-memory-failure.c-fix-memory-leak-by-race-between-poison-and-unpoison.patch
+documentation-fix-docbooks-...-building.patch
+hwmon-ntc_thermistor-fix-dependencies.patch
+hwmon-ntc_thermistor-fix-of-device-id-mapping.patch
+drm-gf119-disp-fix-nasty-bug-which-can-clobber-sor0-s-clock-setup.patch
+drm-radeon-fix-register-typo-on-si.patch
+drm-radeon-also-try-gart-for-cpu-accessed-buffers.patch
+drm-radeon-handle-non-vga-class-pci-devices-with-atrm.patch
+drm-radeon-pm-don-t-allow-debugfs-sysfs-access-when-px-card-is-off-v2.patch
+scsi-scsi_transport_sas-move-bsg-destructor-into-sas_rphy_remove.patch