* [PATCH 2/2] Add S6 support
@ 2017-02-17 2:52 Charles Chiou
2017-02-24 10:16 ` [PATCH 1/2] Support Pegasus 3 product Charles Chiou
2017-02-24 11:00 ` Charles Chiou
0 siblings, 2 replies; 5+ messages in thread
From: Charles Chiou @ 2017-02-17 2:52 UTC (permalink / raw)
To: jejb, martin.petersen, linus.chen, grace.chang, eva.cheng,
charles.chiou, paul.lyu
Cc: linux-scsi, linux-kernel
From: Charles <charles.chiou@tw.promise.com>
1.Add reboot notifier and register it in stex_probe for all supported device.
2.For all supported device in restart flow, we get a callback from notifier and set S6flag for stex_shutdown & stex_hba_stop to send restart command to FW.
Signed-off-by: Charles.Chiou <charles.chiou@tw.promise.com>
Signed-off-by: Paul.Lyu <paul.lyu@tw.promise.com>
---
drivers/scsi/stex.c | 25 +++++++++++++++++++++++--
1 file changed, 23 insertions(+), 2 deletions(-)
diff --git a/drivers/scsi/stex.c b/drivers/scsi/stex.c
index e177dfe..0751561 100644
--- a/drivers/scsi/stex.c
+++ b/drivers/scsi/stex.c
@@ -26,6 +26,7 @@
#include <linux/module.h>
#include <linux/spinlock.h>
#include <linux/ktime.h>
+#include <linux/reboot.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/byteorder.h>
@@ -362,6 +363,12 @@ struct st_card_info {
u16 sts_count;
};
+int S6flag;
+static int stex_halt(struct notifier_block *nb, ulong event, void *buf);
+static struct notifier_block stex_notifier = {
+ stex_halt, NULL, 0
+};
+
static int msi;
module_param(msi, int, 0);
MODULE_PARM_DESC(msi, "Enable Message Signaled Interrupts(0=off, 1=on)");
@@ -1673,6 +1680,9 @@ static int stex_probe(struct pci_dev *pdev, const struct pci_device_id *id)
pci_set_master(pdev);
+ S6flag = 0;
+ register_reboot_notifier(&stex_notifier);
+
host = scsi_host_alloc(&driver_template, sizeof(struct st_hba));
if (!host) {
@@ -1947,15 +1957,20 @@ static void stex_remove(struct pci_dev *pdev)
scsi_host_put(hba->host);
pci_disable_device(pdev);
+
+ unregister_reboot_notifier(&stex_notifier);
}
static void stex_shutdown(struct pci_dev *pdev)
{
struct st_hba *hba = pci_get_drvdata(pdev);
- if (hba->supports_pm == 0)
+ if (hba->supports_pm == 0) {
stex_hba_stop(hba, ST_IGNORED);
- else
+ } else if (hba->supports_pm == 1 && S6flag) {
+ unregister_reboot_notifier(&stex_notifier);
+ stex_hba_stop(hba, ST_S6);
+ } else
stex_hba_stop(hba, ST_S5);
}
@@ -1992,6 +2007,12 @@ static int stex_resume(struct pci_dev *pdev)
stex_handshake(hba);
return 0;
}
+
+static int stex_halt(struct notifier_block *nb, unsigned long event, void *buf)
+{
+ S6flag = 1;
+ return NOTIFY_OK;
+}
MODULE_DEVICE_TABLE(pci, stex_pci_tbl);
static struct pci_driver stex_pci_driver = {
--
1.9.1
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH 1/2] Support Pegasus 3 product
2017-02-17 2:52 [PATCH 2/2] Add S6 support Charles Chiou
@ 2017-02-24 10:16 ` Charles Chiou
2017-02-24 11:00 ` Charles Chiou
1 sibling, 0 replies; 5+ messages in thread
From: Charles Chiou @ 2017-02-24 10:16 UTC (permalink / raw)
To: jejb, martin.petersen, linus.chen, grace.chang, eva.cheng,
charles.chiou, paul.lyu
Cc: linux-scsi, linux-kernel
From: Charles <charles.chiou@tw.promise.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] Support Pegasus 3 product
2017-02-17 2:52 [PATCH 2/2] Add S6 support Charles Chiou
2017-02-24 10:16 ` [PATCH 1/2] Support Pegasus 3 product Charles Chiou
@ 2017-02-24 11:00 ` Charles Chiou
1 sibling, 0 replies; 5+ messages in thread
From: Charles Chiou @ 2017-02-24 11:00 UTC (permalink / raw)
To: jejb, martin.petersen, linus.chen, grace.chang, eva.cheng,
charles.chiou, paul.lyu
Cc: linux-scsi, linux-kernel
From: Charles <charles.chiou@tw.promise.com>
Hi all, Ping?
Does this patch has any issue need to fix? Thank you.
^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <1487299030-4360-1-git-send-email-ch1102chiou@gmail.com>]
* Re: [PATCH 2/2] Add S6 support
[not found] <1487299030-4360-1-git-send-email-ch1102chiou@gmail.com>
@ 2017-02-24 11:13 ` Charles Chiou
2017-02-28 2:32 ` Martin K. Petersen
0 siblings, 1 reply; 5+ messages in thread
From: Charles Chiou @ 2017-02-24 11:13 UTC (permalink / raw)
To: jejb, martin.petersen, linus.chen, grace.chang, eva.cheng,
charles.chiou, paul.lyu
Cc: linux-scsi, linux-kernel
From: Charles <charles.chiou@tw.promise.com>
Hi all, Ping?
Does this patch has any issue need to fix? Thank you.
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH 2/2] Add S6 support
2017-02-24 11:13 ` [PATCH 2/2] Add S6 support Charles Chiou
@ 2017-02-28 2:32 ` Martin K. Petersen
0 siblings, 0 replies; 5+ messages in thread
From: Martin K. Petersen @ 2017-02-28 2:32 UTC (permalink / raw)
To: Charles Chiou
Cc: jejb, martin.petersen, linus.chen, grace.chang, eva.cheng,
charles.chiou, paul.lyu, linux-scsi, linux-kernel
>>>>> "Charles" == Charles Chiou <ch1102chiou@gmail.com> writes:
Charles,
Charles> Hi all, Ping? Does this patch has any issue need to fix? Thank
Charles> you.
I'm hoping somebody will review it soon.
However, we're in the middle of the 4.11 merge window so people are
mostly focused on regressions. I expect to commence merging code for
4.12 sometime next week.
--
Martin K. Petersen Oracle Linux Engineering
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2017-02-28 2:32 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-02-17 2:52 [PATCH 2/2] Add S6 support Charles Chiou
2017-02-24 10:16 ` [PATCH 1/2] Support Pegasus 3 product Charles Chiou
2017-02-24 11:00 ` Charles Chiou
[not found] <1487299030-4360-1-git-send-email-ch1102chiou@gmail.com>
2017-02-24 11:13 ` [PATCH 2/2] Add S6 support Charles Chiou
2017-02-28 2:32 ` Martin K. Petersen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox