All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Lord <lkml@rtr.ca>
To: Kristen Carlson Accardi <kristen.c.accardi@intel.com>,
	Linux Kernel <linux-kernel@vger.kernel.org>
Cc: Greg KH <greg@kroah.com>,
	pcihpd-discuss@lists.sourceforge.net,
	Andrew Morton <akpm@linux-foundation.org>,
	Theodore Tso <tytso@mit.edu>
Subject: [PATCH 4/4] Fix PCIe hotplug for non-ACPI ExpressCard slots (version 2)
Date: Tue, 16 Oct 2007 21:55:30 -0400	[thread overview]
Message-ID: <47156B92.7070501@rtr.ca> (raw)
In-Reply-To: <47156B7B.8010800@rtr.ca>

Make use of the previously split out pcie_init_enable_events() function
to reinitialize the hotplug hardware on resume from suspend,
but only when pciehp_force==1.  Otherwise behaviour is unmodified.

Signed-off-by: Mark Lord <mlord@pobox.com>
---
--- old/drivers/pci/hotplug/pciehp_ctrl.c	2007-10-16 21:17:27.000000000 -0400
+++ linux/drivers/pci/hotplug/pciehp_ctrl.c	2007-10-16 21:28:36.000000000 -0400
@@ -37,7 +37,6 @@
 #include "pciehp.h"
 
 static void interrupt_event_handler(struct work_struct *work);
-static int pciehp_disable_slot(struct slot *p_slot);
 
 static int queue_interrupt_event(struct slot *p_slot, u32 event_type)
 {
--- old/drivers/pci/hotplug/pciehp.h	2007-10-16 21:17:27.000000000 -0400
+++ linux/drivers/pci/hotplug/pciehp.h	2007-10-16 21:28:42.000000000 -0400
@@ -162,6 +162,8 @@
 extern void pciehp_queue_pushbutton_work(struct work_struct *work);
 int pcie_init(struct controller *ctrl, struct pcie_device *dev);
 int pciehp_enable_slot(struct slot *p_slot);
+int pciehp_disable_slot(struct slot *p_slot);
+int pcie_init_enable_events(struct controller *ctrl, struct pcie_device *dev);
 
 static inline struct slot *pciehp_find_slot(struct controller *ctrl, u8 device)
 {
--- old/drivers/pci/hotplug/pciehp_core.c	2007-10-16 21:17:27.000000000 -0400
+++ linux/drivers/pci/hotplug/pciehp_core.c	2007-10-16 21:30:19.000000000 -0400
@@ -512,6 +512,24 @@
 static int pciehp_resume (struct pcie_device *dev)
 {
 	printk("%s ENTRY\n", __FUNCTION__);	
+	if (pciehp_force) {
+		struct pci_dev *pdev = dev->port;
+		struct controller *ctrl = pci_get_drvdata(pdev);
+		struct slot *t_slot;
+		u8 status;
+
+		/* reinitialize the chipset's event detection logic */
+		pcie_init_enable_events(ctrl, dev);
+
+		t_slot = pciehp_find_slot(ctrl, ctrl->slot_device_offset);
+
+		/* Check if slot is occupied */
+		t_slot->hpc_ops->get_adapter_status(t_slot, &status);
+		if (status)
+			pciehp_enable_slot(t_slot);
+		else
+			pciehp_disable_slot(t_slot);
+	}
 	return 0;
 }
 #endif

  reply	other threads:[~2007-10-17  1:55 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-16 13:46 PCIe Hotplug: NFG unless I boot with card already inserted Mark Lord
2007-10-16 15:21 ` Mark Lord
2007-10-16 15:46   ` Kristen Carlson Accardi
2007-10-16 18:39     ` Mark Lord
2007-10-16 18:43       ` Kristen Carlson Accardi
2007-10-16 18:57         ` Mark Lord
2007-10-16 18:59           ` Mark Lord
2007-10-16 19:31             ` Mark Lord
2007-10-16 19:51               ` Kristen Carlson Accardi
2007-10-16 20:07               ` Kristen Carlson Accardi
2007-10-16 20:39                 ` Mark Lord
2007-10-16 21:01                   ` Kristen Carlson Accardi
2007-10-16 22:33                     ` Theodore Tso
2007-10-16 21:41                   ` [Pcihpd-discuss] " Greg KH
2007-10-16 21:57                     ` [PATCH] Fix PCIe hotplug for Dell notebook ExpressCard slots Mark Lord
2007-10-16 22:03                       ` Greg KH
2007-10-16 22:19                         ` Mark Lord
2007-10-16 22:41                         ` [Pcihpd-discuss] " Kristen Carlson Accardi
2007-10-16 22:04                       ` Kristen Carlson Accardi
2007-10-16 22:17                         ` Mark Lord
2007-10-17  1:53                       ` [PATCH 0/4] Fix PCIe hotplug for non-ACPI ExpressCard slots (version 2) Mark Lord
2007-10-17  1:54                         ` [PATCH 1/4] " Mark Lord
2007-10-17  1:54                           ` [PATCH 2/4] " Mark Lord
2007-10-17  1:55                             ` [PATCH 3/4] " Mark Lord
2007-10-17  1:55                               ` Mark Lord [this message]
2007-10-18  0:01                                 ` [PATCH 4/4] " Kristen Carlson Accardi
2007-10-18  2:28                                   ` Mark Lord
2007-10-17  3:31                             ` [Pcihpd-discuss] [PATCH 2/4] " Matthew Wilcox
2007-10-17 23:54                             ` Kristen Carlson Accardi
2007-10-18  2:25                               ` Mark Lord
2007-10-17  3:29                           ` [Pcihpd-discuss] [PATCH 1/4] " Matthew Wilcox
2007-10-17 13:09                             ` Mark Lord
2007-10-17 14:02                               ` Matthew Wilcox
2007-10-17 14:33                                 ` Mark Lord
2007-10-17 22:02                         ` [PATCH 0/4] " Andrew Morton
2007-10-17 22:59                           ` Mark Lord
2007-10-17 23:25                             ` Andrew Morton
2007-10-16 20:29       ` PCIe Hotplug: NFG unless I boot with card already inserted Kristen Carlson Accardi
2007-10-16 20:41         ` Mark Lord

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=47156B92.7070501@rtr.ca \
    --to=lkml@rtr.ca \
    --cc=akpm@linux-foundation.org \
    --cc=greg@kroah.com \
    --cc=kristen.c.accardi@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pcihpd-discuss@lists.sourceforge.net \
    --cc=tytso@mit.edu \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.