summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/ABI/testing/sysfs-class-mic.txt60
-rw-r--r--Documentation/mic/mic_overview.txt4
-rw-r--r--Documentation/mic/mpssd/mpssd.c27
-rw-r--r--Documentation/mic/mpssd/mpssd.h1
4 files changed, 62 insertions, 30 deletions
diff --git a/Documentation/ABI/testing/sysfs-class-mic.txt b/Documentation/ABI/testing/sysfs-class-mic.txt
index 82cdad3b614a..13f48afc534f 100644
--- a/Documentation/ABI/testing/sysfs-class-mic.txt
+++ b/Documentation/ABI/testing/sysfs-class-mic.txt
@@ -1,6 +1,6 @@
What: /sys/class/mic/
-Date: August 2013
-KernelVersion: 3.11
+Date: October 2013
+KernelVersion: 3.13
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
Description:
The mic class directory belongs to Intel MIC devices and
@@ -9,8 +9,8 @@ Description:
Integrated Core (MIC) architecture that runs a Linux OS.
What: /sys/class/mic/mic(x)
-Date: August 2013
-KernelVersion: 3.11
+Date: October 2013
+KernelVersion: 3.13
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
Description:
The directories /sys/class/mic/mic0, /sys/class/mic/mic1 etc.,
@@ -18,33 +18,41 @@ Description:
information specific to that MIC device.
What: /sys/class/mic/mic(x)/family
-Date: August 2013
-KernelVersion: 3.11
+Date: October 2013
+KernelVersion: 3.13
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
Description:
Provides information about the Coprocessor family for an Intel
MIC device. For example - "x100"
What: /sys/class/mic/mic(x)/stepping
-Date: August 2013
-KernelVersion: 3.11
+Date: October 2013
+KernelVersion: 3.13
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
Description:
Provides information about the silicon stepping for an Intel
MIC device. For example - "A0" or "B0"
What: /sys/class/mic/mic(x)/state
-Date: August 2013
-KernelVersion: 3.11
+Date: October 2013
+KernelVersion: 3.13
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
Description:
When read, this entry provides the current state of an Intel
MIC device in the context of the card OS. Possible values that
will be read are:
- "offline" - The MIC device is ready to boot the card OS.
+ "offline" - The MIC device is ready to boot the card OS. On
+ reading this entry after an OSPM resume, a "boot" has to be
+ written to this entry if the card was previously shutdown
+ during OSPM suspend.
"online" - The MIC device has initiated booting a card OS.
"shutting_down" - The card OS is shutting down.
"reset_failed" - The MIC device has failed to reset.
+ "suspending" - The MIC device is currently being prepared for
+ suspend. On reading this entry, a "suspend" has to be written
+ to the state sysfs entry to ensure the card is shutdown during
+ OSPM suspend.
+ "suspended" - The MIC device has been suspended.
When written, this sysfs entry triggers different state change
operations depending upon the current state of the card OS.
@@ -54,10 +62,12 @@ Description:
sysfs entries.
"reset" - Initiates device reset.
"shutdown" - Initiates card OS shutdown.
+ "suspend" - Initiates card OS shutdown and also marks the card
+ as suspended.
What: /sys/class/mic/mic(x)/shutdown_status
-Date: August 2013
-KernelVersion: 3.11
+Date: October 2013
+KernelVersion: 3.13
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
Description:
An Intel MIC device runs a Linux OS during its operation. This
@@ -72,8 +82,8 @@ Description:
"restart" - Shutdown because of a restart command.
What: /sys/class/mic/mic(x)/cmdline
-Date: August 2013
-KernelVersion: 3.11
+Date: October 2013
+KernelVersion: 3.13
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
Description:
An Intel MIC device runs a Linux OS during its operation. Before
@@ -88,8 +98,8 @@ Description:
line back to this entry.
What: /sys/class/mic/mic(x)/firmware
-Date: August 2013
-KernelVersion: 3.11
+Date: October 2013
+KernelVersion: 3.13
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
Description:
When read, this sysfs entry provides the path name under
@@ -98,8 +108,8 @@ Description:
firmware image location under /lib/firmware/.
What: /sys/class/mic/mic(x)/ramdisk
-Date: August 2013
-KernelVersion: 3.11
+Date: October 2013
+KernelVersion: 3.13
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
Description:
When read, this sysfs entry provides the path name under
@@ -108,8 +118,8 @@ Description:
the ramdisk image location under /lib/firmware/.
What: /sys/class/mic/mic(x)/bootmode
-Date: August 2013
-KernelVersion: 3.11
+Date: October 2013
+KernelVersion: 3.13
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
Description:
When read, this sysfs entry provides the current bootmode for
@@ -119,8 +129,8 @@ Description:
b) elf - Boot an elf image for flash updates.
What: /sys/class/mic/mic(x)/log_buf_addr
-Date: August 2013
-KernelVersion: 3.11
+Date: October 2013
+KernelVersion: 3.13
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
Description:
An Intel MIC device runs a Linux OS during its operation. For
@@ -133,8 +143,8 @@ Description:
file of the card OS.
What: /sys/class/mic/mic(x)/log_buf_len
-Date: August 2013
-KernelVersion: 3.11
+Date: October 2013
+KernelVersion: 3.13
Contact: Sudeep Dutt <sudeep.dutt@intel.com>
Description:
An Intel MIC device runs a Linux OS during its operation. For
diff --git a/Documentation/mic/mic_overview.txt b/Documentation/mic/mic_overview.txt
index c4424ed1b746..b41929224804 100644
--- a/Documentation/mic/mic_overview.txt
+++ b/Documentation/mic/mic_overview.txt
@@ -4,7 +4,9 @@ that runs a Linux OS. It is a PCIe endpoint in a platform and therefore
implements the three required standard address spaces i.e. configuration,
memory and I/O. The host OS loads a device driver as is typical for
PCIe devices. The card itself runs a bootstrap after reset that
-transfers control to the card OS downloaded from the host driver.
+transfers control to the card OS downloaded from the host driver. The
+host driver supports OSPM suspend and resume operations. It shuts down
+the card during suspend and reboots the card OS during resume.
The card OS as shipped by Intel is a Linux kernel with modifications
for the X100 devices.
diff --git a/Documentation/mic/mpssd/mpssd.c b/Documentation/mic/mpssd/mpssd.c
index 82c6bc2e3cb6..0c980ad40b17 100644
--- a/Documentation/mic/mpssd/mpssd.c
+++ b/Documentation/mic/mpssd/mpssd.c
@@ -1295,7 +1295,13 @@ reset(struct mic_info *mic)
goto retry;
mpsslog("%s: %s %d state %s\n",
mic->name, __func__, __LINE__, state);
- if ((!strcmp(state, "offline"))) {
+
+ /*
+ * If the shutdown was initiated by OSPM, the state stays
+ * in "suspended" which is also a valid condition for reset.
+ */
+ if ((!strcmp(state, "offline")) ||
+ (!strcmp(state, "suspended"))) {
free(state);
break;
}
@@ -1334,6 +1340,10 @@ static int get_mic_state(struct mic_info *mic, char *state)
return MIC_SHUTTING_DOWN;
if (!strcmp(state, "reset_failed"))
return MIC_RESET_FAILED;
+ if (!strcmp(state, "suspending"))
+ return MIC_SUSPENDING;
+ if (!strcmp(state, "suspended"))
+ return MIC_SUSPENDED;
mpsslog("%s: BUG invalid state %s\n", mic->name, state);
/* Invalid state */
assert(0);
@@ -1418,6 +1428,17 @@ retry:
case MIC_SHUTTING_DOWN:
mic_handle_shutdown(mic);
goto close_error;
+ case MIC_SUSPENDING:
+ mic->boot_on_resume = 1;
+ setsysfs(mic->name, "state", "suspend");
+ mic_handle_shutdown(mic);
+ goto close_error;
+ case MIC_OFFLINE:
+ if (mic->boot_on_resume) {
+ setsysfs(mic->name, "state", "boot");
+ mic->boot_on_resume = 0;
+ }
+ break;
default:
break;
}
@@ -1621,11 +1642,9 @@ init_mic_list(void)
while ((file = readdir(dp)) != NULL) {
if (!strncmp(file->d_name, "mic", 3)) {
- mic->next = malloc(sizeof(struct mic_info));
+ mic->next = calloc(1, sizeof(struct mic_info));
if (mic->next) {
mic = mic->next;
- mic->next = NULL;
- memset(mic, 0, sizeof(struct mic_info));
mic->id = atoi(&file->d_name[3]);
mic->name = malloc(strlen(file->d_name) + 16);
if (mic->name)
diff --git a/Documentation/mic/mpssd/mpssd.h b/Documentation/mic/mpssd/mpssd.h
index ccd589ff9146..f5f18b15d9a0 100644
--- a/Documentation/mic/mpssd/mpssd.h
+++ b/Documentation/mic/mpssd/mpssd.h
@@ -91,6 +91,7 @@ struct mic_info {
struct mic_net_info mic_net;
struct mic_virtblk_info mic_virtblk;
int restart;
+ int boot_on_resume;
struct mic_info *next;
};