linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: <gregkh@suse.de>
To: michael@ellerman.id.au, brice@myri.com, davem@davemloft.net,
	ebiederm@xmission.com, greg@kroah.com, gregkh@suse.de,
	kyle@parisc-linux.org, linuxppc-dev@ozlabs.org,
	shaohua.li@intel.com
Subject: patch msi-combine-pci__msi-msix_state.patch added to gregkh-2.6 tree
Date: Thu, 25 Jan 2007 14:33:14 -0800	[thread overview]
Message-ID: <20070125223405.DD836B785C7@imap.suse.de> (raw)
In-Reply-To: <20070125083409.D4EBADE25B@ozlabs.org>


This is a note to let you know that I've just added the patch titled

     Subject: MSI: Combine pci_(save|restore)_msi/msix_state

to my gregkh-2.6 tree.  Its filename is

     msi-combine-pci__msi-msix_state.patch

This tree can be found at 
    http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/patches/


>From michael@ozlabs.org  Thu Jan 25 14:13:06 2007
From: Michael Ellerman <michael@ellerman.id.au>
Date: Thu, 25 Jan 2007 19:34:08 +1100
Subject: MSI: Combine pci_(save|restore)_msi/msix_state
To: linux-pci@atrey.karlin.mff.cuni.cz
Cc: Greg Kroah-Hartman <greg@kroah.com>, Eric W. Biederman <ebiederm@xmission.com>, David S. Miller <davem@davemloft.net>, Kyle McMartin <kyle@parisc-linux.org>, <linuxppc-dev@ozlabs.org>, Brice Goglin <brice@myri.com>, <shaohua.li@intel.com>
Message-ID: <20070125083409.D4EBADE25B@ozlabs.org>


The PCI save/restore code doesn't need to care about MSI vs MSI-X, all
it really wants is to say "save/restore all MSI(-X) info for this device".

This is borne out in the code, we call the MSI and MSI-X save routines
side by side, and similarly with the restore routines.

So combine the MSI/MSI-X routines into pci_save_msi_state() and
pci_restore_msi_state(). It is up to those routines to decide what state
needs to be saved.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
 drivers/pci/msi.c |   27 +++++++++++++++++++++++----
 drivers/pci/pci.c |    4 +---
 drivers/pci/pci.h |    6 ++----
 3 files changed, 26 insertions(+), 11 deletions(-)

--- gregkh-2.6.orig/drivers/pci/msi.c
+++ gregkh-2.6/drivers/pci/msi.c
@@ -295,7 +295,7 @@ static int msi_lookup_irq(struct pci_dev
 }
 
 #ifdef CONFIG_PM
-int pci_save_msi_state(struct pci_dev *dev)
+static int __pci_save_msi_state(struct pci_dev *dev)
 {
 	int pos, i = 0;
 	u16 control;
@@ -333,7 +333,7 @@ int pci_save_msi_state(struct pci_dev *d
 	return 0;
 }
 
-void pci_restore_msi_state(struct pci_dev *dev)
+static void __pci_restore_msi_state(struct pci_dev *dev)
 {
 	int i = 0, pos;
 	u16 control;
@@ -361,7 +361,7 @@ void pci_restore_msi_state(struct pci_de
 	kfree(save_state);
 }
 
-int pci_save_msix_state(struct pci_dev *dev)
+static int __pci_save_msix_state(struct pci_dev *dev)
 {
 	int pos;
 	int temp;
@@ -409,7 +409,20 @@ int pci_save_msix_state(struct pci_dev *
 	return 0;
 }
 
-void pci_restore_msix_state(struct pci_dev *dev)
+int pci_save_msi_state(struct pci_dev *dev)
+{
+	int rc;
+
+	rc = __pci_save_msi_state(dev);
+	if (rc)
+		return rc;
+
+	rc = __pci_save_msix_state(dev);
+
+	return rc;
+}
+
+static void __pci_restore_msix_state(struct pci_dev *dev)
 {
 	u16 save;
 	int pos;
@@ -446,6 +459,12 @@ void pci_restore_msix_state(struct pci_d
 	pci_write_config_word(dev, msi_control_reg(pos), save);
 	enable_msi_mode(dev, pos, PCI_CAP_ID_MSIX);
 }
+
+void pci_restore_msi_state(struct pci_dev *dev)
+{
+	__pci_restore_msi_state(dev);
+	__pci_restore_msix_state(dev);
+}
 #endif	/* CONFIG_PM */
 
 /**
--- gregkh-2.6.orig/drivers/pci/pci.c
+++ gregkh-2.6/drivers/pci/pci.c
@@ -634,8 +634,6 @@ pci_save_state(struct pci_dev *dev)
 		pci_read_config_dword(dev, i * 4,&dev->saved_config_space[i]);
 	if ((i = pci_save_msi_state(dev)) != 0)
 		return i;
-	if ((i = pci_save_msix_state(dev)) != 0)
-		return i;
 	if ((i = pci_save_pcie_state(dev)) != 0)
 		return i;
 	if ((i = pci_save_pcix_state(dev)) != 0)
@@ -673,7 +671,7 @@ pci_restore_state(struct pci_dev *dev)
 	}
 	pci_restore_pcix_state(dev);
 	pci_restore_msi_state(dev);
-	pci_restore_msix_state(dev);
+
 	return 0;
 }
 
--- gregkh-2.6.orig/drivers/pci/pci.h
+++ gregkh-2.6/drivers/pci/pci.h
@@ -52,17 +52,15 @@ void pci_no_msi(void);
 static inline void disable_msi_mode(struct pci_dev *dev, int pos, int type) { }
 static inline void pci_no_msi(void) { }
 #endif
+
 #if defined(CONFIG_PCI_MSI) && defined(CONFIG_PM)
 int pci_save_msi_state(struct pci_dev *dev);
-int pci_save_msix_state(struct pci_dev *dev);
 void pci_restore_msi_state(struct pci_dev *dev);
-void pci_restore_msix_state(struct pci_dev *dev);
 #else
 static inline int pci_save_msi_state(struct pci_dev *dev) { return 0; }
-static inline int pci_save_msix_state(struct pci_dev *dev) { return 0; }
 static inline void pci_restore_msi_state(struct pci_dev *dev) {}
-static inline void pci_restore_msix_state(struct pci_dev *dev) {}
 #endif
+
 static inline int pci_no_d1d2(struct pci_dev *dev)
 {
 	unsigned int parent_dstates = 0;


Patches currently in gregkh-2.6 which might be from michael@ellerman.id.au are

  reply	other threads:[~2007-01-25 22:34 UTC|newest]

Thread overview: 143+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-25  8:34 [RFC/PATCH 0/16] Ops based MSI Implementation Michael Ellerman
2007-01-25  8:34 ` [RFC/PATCH 1/16] Replace pci_msi_quirk with calls to pci_no_msi() Michael Ellerman
2007-01-25 22:33   ` patch msi-replace-pci_msi_quirk-with-calls-to-pci_no_msi.patch added to gregkh-2.6 tree gregkh
2007-01-25  8:34 ` [RFC/PATCH 3/16] Combine pci_(save|restore)_msi/msix_state Michael Ellerman
2007-01-25 22:33   ` gregkh [this message]
2007-01-25  8:34 ` [RFC/PATCH 2/16] Remove pci_scan_msi_device() Michael Ellerman
2007-01-25 22:33   ` patch msi-remove-pci_scan_msi_device.patch added to gregkh-2.6 tree gregkh
2007-01-25  8:34 ` [RFC/PATCH 4/16] Abstract MSI suspend Michael Ellerman
2007-01-25 22:33   ` patch msi-abstract-msi-suspend.patch added to gregkh-2.6 tree gregkh
2007-01-28  8:27   ` [RFC/PATCH 4/16] Abstract MSI suspend Eric W. Biederman
2007-01-29  7:22     ` Michael Ellerman
2007-01-29  8:45       ` Eric W. Biederman
2007-01-29  9:47         ` Michael Ellerman
2007-01-29 16:52           ` Grant Grundler
2007-01-29 16:57             ` Roland Dreier
2007-01-29 17:02               ` Roland Dreier
2007-01-29 17:25                 ` Eric W. Biederman
2007-01-29 17:32                   ` Roland Dreier
2007-01-29 22:03               ` Grant Grundler
2007-01-29 17:20           ` Eric W. Biederman
2007-02-01  4:24       ` Greg KH
2007-01-25  8:34 ` [RFC/PATCH 5/16] Ops based MSI implementation Michael Ellerman
2007-01-25 21:52   ` Greg KH
2007-01-25 22:05     ` Roland Dreier
2007-01-25 22:10       ` Greg KH
2007-01-26  1:02     ` Michael Ellerman
2007-01-25  8:34 ` [RFC/PATCH 6/16] Add bare metal MSI enable & disable routines Michael Ellerman
2007-01-26  5:35   ` Eric W. Biederman
2007-01-25  8:34 ` [RFC/PATCH 7/16] Rip out the existing powerpc msi stubs Michael Ellerman
2007-01-25  8:34 ` [RFC/PATCH 8/16] Enable MSI on Powerpc Michael Ellerman
2007-01-25  8:34 ` [RFC/PATCH 9/16] RTAS MSI implementation Michael Ellerman
2007-01-25  8:34 ` [RFC/PATCH 10/16] Add a pci_irq_fixup for MSI via RTAS Michael Ellerman
2007-01-25  8:34 ` [RFC/PATCH 12/16] Tell firmware we support MSI Michael Ellerman
2007-01-25  8:34 ` [RFC/PATCH 11/16] Activate MSI via RTAS on pseries Michael Ellerman
2007-01-25  8:34 ` [RFC/PATCH 13/16] MPIC MSI allocator Michael Ellerman
2007-01-25  8:34 ` [RFC/PATCH 15/16] Enable MSI mappings for MPIC Michael Ellerman
2007-01-25  8:34 ` [RFC/PATCH 14/16] MPIC MSI backend Michael Ellerman
2007-01-26  6:43   ` Grant Grundler
2007-01-26  7:02     ` Eric W. Biederman
2007-01-26  8:47       ` Segher Boessenkool
2007-01-26 16:32         ` Eric W. Biederman
2007-01-26 17:19           ` Grant Grundler
2007-01-26 17:56             ` Eric W. Biederman
2007-01-26 22:48               ` Benjamin Herrenschmidt
2007-01-27  7:01               ` Michael Ellerman
2007-01-26 22:40             ` Benjamin Herrenschmidt
2007-01-27  2:11               ` David Miller
2007-01-26 22:08           ` Benjamin Herrenschmidt
2007-01-27  6:54             ` Michael Ellerman
2007-01-26 20:50       ` Benjamin Herrenschmidt
2007-01-26 22:46       ` Paul Mackerras
2007-01-27  2:46         ` Eric W. Biederman
2007-01-27  3:02           ` David Miller
2007-01-27  4:28             ` Eric W. Biederman
2007-01-27 18:30         ` Grant Grundler
2007-01-27 20:02           ` Benjamin Herrenschmidt
2007-01-26 20:41     ` Benjamin Herrenschmidt
2007-01-26  9:11   ` Segher Boessenkool
2007-01-27  6:33     ` Michael Ellerman
2007-01-25  8:34 ` [RFC/PATCH 16/16] Activate MSI for the MPIC backend on U3 Michael Ellerman
2007-01-25 21:53 ` [RFC/PATCH 0/16] Ops based MSI Implementation Greg KH
2007-01-25 21:55   ` David Miller
2007-01-26  1:05     ` Michael Ellerman
2007-01-26  1:03   ` Michael Ellerman
2007-01-26  6:18 ` Eric W. Biederman
2007-01-26  6:56   ` Grant Grundler
2007-01-26  7:15     ` Eric W. Biederman
2007-01-26  7:48       ` Grant Grundler
2007-01-26 15:26         ` Eric W. Biederman
2007-01-26 21:58         ` Benjamin Herrenschmidt
2007-01-26  8:57     ` Segher Boessenkool
2007-01-26 17:27       ` Grant Grundler
2007-01-26 20:57     ` Benjamin Herrenschmidt
2007-01-26 21:24   ` Benjamin Herrenschmidt
2007-01-27  5:41   ` Michael Ellerman
2007-01-28  6:16     ` Eric W. Biederman
2007-01-28  8:12       ` Michael Ellerman
2007-01-28  8:36         ` Eric W. Biederman
2007-01-28 20:14           ` Benjamin Herrenschmidt
2007-01-28 20:53             ` Eric W. Biederman
2007-01-28 21:17               ` Benjamin Herrenschmidt
2007-01-28 22:36                 ` Eric W. Biederman
2007-01-28 23:17                   ` Benjamin Herrenschmidt
2007-01-28 23:38                     ` Eric W. Biederman
2007-01-28 23:51                       ` David Miller
2007-01-29  0:58                         ` Benjamin Herrenschmidt
2007-01-29  1:13                           ` David Miller
2007-01-29  3:17                             ` Benjamin Herrenschmidt
2007-01-29  4:19                               ` David Miller
2007-01-29  4:44                                 ` Benjamin Herrenschmidt
2007-01-29  5:46                             ` Eric W. Biederman
2007-01-29  6:08                               ` Benjamin Herrenschmidt
2007-01-31  6:52                           ` David Miller
2007-01-31  7:40                             ` Eric W. Biederman
2007-02-01  0:55                               ` David Miller
2007-01-29  0:26                       ` Benjamin Herrenschmidt
2007-01-29  0:59                       ` Michael Ellerman
2007-01-28 23:31                   ` David Miller
2007-01-28 23:59                     ` Benjamin Herrenschmidt
2007-01-28 23:26               ` David Miller
2007-01-28 23:25             ` David Miller
2007-01-27  4:59 ` Michael Ellerman
2007-01-28 19:40 ` [PATCH 0/6] MSI portability cleanups Eric W. Biederman
2007-01-28 19:42   ` [PATCH 1/6] msi: Kill msi_lookup_irq Eric W. Biederman
2007-01-28 19:44     ` [PATCH 2/6] msi: Remove msi_lock Eric W. Biederman
2007-01-28 19:45       ` [PATCH 3/6] msi: Fix msi_remove_pci_irq_vectors Eric W. Biederman
2007-01-28 19:47         ` [PATCH 4/6] msi: Remove attach_msi_entry Eric W. Biederman
2007-01-28 19:52           ` [PATCH 5/6] msi: Kill the msi_desc array Eric W. Biederman
2007-01-28 19:56             ` [PATCH 6/6] msi: Make MSI useable more architectures Eric W. Biederman
2007-02-01  6:08               ` patch msi-make-msi-useable-more-architectures.patch added to gregkh-2.6 tree gregkh
2007-02-01  6:07             ` patch msi-kill-the-msi_desc-array.patch " gregkh
2007-02-01  6:08           ` patch msi-remove-attach_msi_entry.patch " gregkh
2007-02-01  6:07         ` patch msi-fix-msi_remove_pci_irq_vectors.patch " gregkh
2007-02-01  6:08       ` patch msi-remove-msi_lock.patch " gregkh
2007-01-28 22:01     ` [PATCH 1/6] msi: Kill msi_lookup_irq Paul Mackerras
2007-01-28 22:18       ` Eric W. Biederman
2007-02-01  6:07     ` patch msi-kill-msi_lookup_irq.patch added to gregkh-2.6 tree gregkh
2007-01-28 20:23   ` [PATCH 0/6] MSI portability cleanups Benjamin Herrenschmidt
2007-01-28 20:47     ` Jeff Garzik
2007-01-28 21:20       ` Eric W. Biederman
2007-01-28 21:26         ` Ingo Molnar
2007-01-28 22:09         ` Benjamin Herrenschmidt
2007-01-28 23:26           ` Eric W. Biederman
2007-01-28 23:37             ` David Miller
2007-01-29  5:18               ` Eric W. Biederman
2007-01-29  5:25                 ` David Miller
2007-01-29  5:58                   ` Eric W. Biederman
2007-01-29  6:05                   ` Benjamin Herrenschmidt
2007-01-29  8:28                     ` Eric W. Biederman
2007-01-29  9:03                     ` Eric W. Biederman
2007-01-29 10:11                       ` Michael Ellerman
2007-01-29 20:32                         ` Benjamin Herrenschmidt
2007-01-29 23:29                         ` Paul Mackerras
2007-01-29 23:40                           ` Benjamin Herrenschmidt
2007-01-29 20:22                       ` Benjamin Herrenschmidt
2007-01-29 23:05                         ` Paul Mackerras
2007-01-30 19:32                           ` Segher Boessenkool
2007-01-29  1:33             ` Benjamin Herrenschmidt
2007-02-01  4:29           ` Greg KH
2007-01-28 23:44         ` David Miller
2007-01-28 22:11       ` Eric W. Biederman
2007-01-28 23:42       ` David Miller
2007-01-28 21:34     ` Eric W. Biederman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070125223405.DD836B785C7@imap.suse.de \
    --to=gregkh@suse.de \
    --cc=brice@myri.com \
    --cc=davem@davemloft.net \
    --cc=ebiederm@xmission.com \
    --cc=greg@kroah.com \
    --cc=kyle@parisc-linux.org \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=michael@ellerman.id.au \
    --cc=shaohua.li@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).