drm-radeon-r200-handle-more-hw-tex-coord-types.patch
drm-radeon-kms-add-quirk-for-asus-hd-3600-board.patch
drm-radeon-kms-fix-legacy-lvds-dpms-sequence.patch
+tpm_tis-fix-subsequent-suspend-failures.patch
--- /dev/null
+From 59f6fbe4291fcc078ba26ce4edf8373a7620a13a Mon Sep 17 00:00:00 2001
+From: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
+Date: Wed, 23 Jun 2010 12:18:56 -0700
+Subject: tpm_tis: fix subsequent suspend failures
+
+From: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
+
+commit 59f6fbe4291fcc078ba26ce4edf8373a7620a13a upstream.
+
+Fix subsequent suspends by issuing tpm_continue_selftest during resume.
+Otherwise, the tpm chip seems to be not fully initialized and will reject
+the save state command during suspend, thus preventing the whole system
+to suspend.
+
+Addresses https://bugzilla.kernel.org/show_bug.cgi?id=16256
+
+Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
+Signed-off-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
+Cc: James Morris <jmorris@namei.org>
+Cc: Debora Velarde <debora@linux.vnet.ibm.com>
+Cc: David Safford <safford@watson.ibm.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: James Morris <jmorris@namei.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/char/tpm/tpm_tis.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+--- a/drivers/char/tpm/tpm_tis.c
++++ b/drivers/char/tpm/tpm_tis.c
+@@ -622,7 +622,14 @@ static int tpm_tis_pnp_suspend(struct pn
+
+ static int tpm_tis_pnp_resume(struct pnp_dev *dev)
+ {
+- return tpm_pm_resume(&dev->dev);
++ struct tpm_chip *chip = pnp_get_drvdata(dev);
++ int ret;
++
++ ret = tpm_pm_resume(&dev->dev);
++ if (!ret)
++ tpm_continue_selftest(chip);
++
++ return ret;
+ }
+
+ static struct pnp_device_id tpm_pnp_tbl[] __devinitdata = {
drm-radeon-kms-fix-possible-mis-detection-of-sideport-on-rs690-rs740.patch
drm-radeon-kms-fix-legacy-lvds-dpms-sequence.patch
drm-radeon-kms-fix-legacy-tv-out-pal-mode.patch
+tpm_tis-fix-subsequent-suspend-failures.patch
--- /dev/null
+From 59f6fbe4291fcc078ba26ce4edf8373a7620a13a Mon Sep 17 00:00:00 2001
+From: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
+Date: Wed, 23 Jun 2010 12:18:56 -0700
+Subject: tpm_tis: fix subsequent suspend failures
+
+From: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
+
+commit 59f6fbe4291fcc078ba26ce4edf8373a7620a13a upstream.
+
+Fix subsequent suspends by issuing tpm_continue_selftest during resume.
+Otherwise, the tpm chip seems to be not fully initialized and will reject
+the save state command during suspend, thus preventing the whole system
+to suspend.
+
+Addresses https://bugzilla.kernel.org/show_bug.cgi?id=16256
+
+Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
+Signed-off-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
+Cc: James Morris <jmorris@namei.org>
+Cc: Debora Velarde <debora@linux.vnet.ibm.com>
+Cc: David Safford <safford@watson.ibm.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: James Morris <jmorris@namei.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/char/tpm/tpm_tis.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+--- a/drivers/char/tpm/tpm_tis.c
++++ b/drivers/char/tpm/tpm_tis.c
+@@ -622,7 +622,14 @@ static int tpm_tis_pnp_suspend(struct pn
+
+ static int tpm_tis_pnp_resume(struct pnp_dev *dev)
+ {
+- return tpm_pm_resume(&dev->dev);
++ struct tpm_chip *chip = pnp_get_drvdata(dev);
++ int ret;
++
++ ret = tpm_pm_resume(&dev->dev);
++ if (!ret)
++ tpm_continue_selftest(chip);
++
++ return ret;
+ }
+
+ static struct pnp_device_id tpm_pnp_tbl[] __devinitdata = {
drm-radeon-kms-fix-possible-mis-detection-of-sideport-on-rs690-rs740.patch
drm-radeon-kms-fix-legacy-lvds-dpms-sequence.patch
drm-radeon-kms-fix-legacy-tv-out-pal-mode.patch
+tpm_tis-fix-subsequent-suspend-failures.patch
--- /dev/null
+From 59f6fbe4291fcc078ba26ce4edf8373a7620a13a Mon Sep 17 00:00:00 2001
+From: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
+Date: Wed, 23 Jun 2010 12:18:56 -0700
+Subject: tpm_tis: fix subsequent suspend failures
+
+From: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
+
+commit 59f6fbe4291fcc078ba26ce4edf8373a7620a13a upstream.
+
+Fix subsequent suspends by issuing tpm_continue_selftest during resume.
+Otherwise, the tpm chip seems to be not fully initialized and will reject
+the save state command during suspend, thus preventing the whole system
+to suspend.
+
+Addresses https://bugzilla.kernel.org/show_bug.cgi?id=16256
+
+Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
+Signed-off-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
+Cc: James Morris <jmorris@namei.org>
+Cc: Debora Velarde <debora@linux.vnet.ibm.com>
+Cc: David Safford <safford@watson.ibm.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: James Morris <jmorris@namei.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/char/tpm/tpm_tis.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+--- a/drivers/char/tpm/tpm_tis.c
++++ b/drivers/char/tpm/tpm_tis.c
+@@ -623,7 +623,14 @@ static int tpm_tis_pnp_suspend(struct pn
+
+ static int tpm_tis_pnp_resume(struct pnp_dev *dev)
+ {
+- return tpm_pm_resume(&dev->dev);
++ struct tpm_chip *chip = pnp_get_drvdata(dev);
++ int ret;
++
++ ret = tpm_pm_resume(&dev->dev);
++ if (!ret)
++ tpm_continue_selftest(chip);
++
++ return ret;
+ }
+
+ static struct pnp_device_id tpm_pnp_tbl[] __devinitdata = {