State machine-coupled sensor control

A system determines a current state of an information handling system, and receives a sensor output signal. The system determines whether a status change of the sensor output signal relates to an expected state based on the current state and a previous state of the information handling system, and determines whether the sensor output signal is triggered by an external magnet. If the status change of the sensor output signal relates to the expected state and the sensor output signal is not triggered by the external magnet, then the system transitions the information handling system from the current state to the expected state.

FIELD OF THE DISCLOSURE

The present disclosure generally relates to information handling systems, and more particularly relates to state machine-coupled sensor control.

BACKGROUND

SUMMARY

A system determines a current state of an information handling system, and receives a sensor output signal. The system determines whether a status change of the sensor output signal relates to an expected state based on the current state and a previous state of the information handling system, and determines whether the sensor output signal is triggered by an external magnet. If the status change of the sensor output signal relates to the expected state and the sensor output signal is not triggered by the external magnet, then the system transitions the information handling system from the current state to the expected state. The expected state is a predefined state sequence associate with a system mode.

DETAILED DESCRIPTION OF THE DRAWINGS

FIG.1illustrates an embodiment of an information handling system100including processors102and104, a chipset110, a memory120, a graphics adapter130connected to a video display134, a non-volatile RAM (NV-RAM)140that includes a basic input and output system/extensible firmware interface (BIOS/EFI) module142, a disk controller150, a hard disk drive (HDD)154, an optical disk drive156, a disk emulator160connected to a solid-state drive (SSD)164, an input/output (I/O) interface170connected to an add-on resource174and a trusted platform module (TPM)176, a network interface180, and a baseboard management controller (BMC)190. Processor102is connected to chipset110via processor interface106, and processor104is connected to the chipset via processor interface108. In a particular embodiment, processors102and104are connected together via a high-capacity coherent fabric, such as a HyperTransport link, a QuickPath Interconnect, or the like. Chipset110represents an integrated circuit or group of integrated circuits that manage the data flow between processors102and104and the other elements of information handling system100. In a particular embodiment, chipset110represents a pair of integrated circuits, such as a northbridge component and a southbridge component. In another embodiment, some or all of the functions and features of chipset110are integrated with one or more of processors102and104.

Memory120is connected to chipset110via a memory interface122. An example of memory interface122includes a Double Data Rate (DDR) memory channel and memory120represents one or more DDR Dual In-Line Memory Modules (DIMMs). In a particular embodiment, memory interface122represents two or more DDR channels. In another embodiment, one or more of processors102and104include a memory interface that provides a dedicated memory for the processors. A DDR channel and the connected DDR DIMMs can be in accordance with a particular DDR standard, such as a DDR3 standard, a DDR4 standard, a DDR5 standard, or the like.

Memory120may further represent various combinations of memory types, such as Dynamic Random Access Memory (DRAM) DIMMs, Static Random Access Memory (SRAM) DIMMs, non-volatile DIMMs (NV-DIMMs), storage class memory devices, Read-Only Memory (ROM) devices, or the like. Graphics adapter130is connected to chipset110via a graphics interface132and provides a video display output136to a video display134. An example of a graphics interface132includes a Peripheral Component Interconnect-Express (PCIe) interface and graphics adapter130can include a four-lane (x4) PCIe adapter, an eight-lane (x8) PCIe adapter, a 16-lane (x16) PCIe adapter, or another configuration, as needed or desired. In a particular embodiment, graphics adapter130is provided down on a system printed circuit board (PCB). Video display output136can include a Digital Video Interface (DVI), a High-Definition Multimedia Interface (HDMI), a DisplayPort interface, or the like, and video display134can include a monitor, a smart television, an embedded display such as a laptop computer display, or the like.

NV-RAM140, disk controller150, and I/O interface170are connected to chipset110via an I/O channel112. An example of I/O channel112includes one or more point-to-point PCIe links between chipset110and each of NV-RAM140, disk controller150, and I/O interface170. Chipset110can also include one or more other I/O interfaces, including a PCIe interface, an Industry Standard Architecture (ISA) interface, a Small Computer Serial Interface (SCSI) interface, an Inter-Integrated Circuit (I2C) interface, a System Packet Interface, a Universal Serial Bus (USB), another interface, or a combination thereof. NV-RAM140includes BIOS/EFI module142that stores machine-executable code (BIOS/EFI code) that operates to detect the resources of information handling system100, to provide drivers for the resources, to initialize the resources, and to provide common access mechanisms for the resources. The functions and features of BIOS/EFI module142will be further described below.

Network interface180represents a network communication device disposed within information handling system100, on a main circuit board of the information handling system, integrated onto another component such as chipset110, in another suitable location, or a combination thereof. Network interface180includes a network channel182that provides an interface to devices that are external to information handling system100. In a particular embodiment, network channel182is of a different type than peripheral interface172, and network interface180translates information from a format suitable to the peripheral channel to a format suitable to external devices.

In a particular embodiment, network interface180includes a NIC or host bus adapter (HBA), and an example of network channel182includes an InfiniBand channel, a Fibre Channel, a Gigabit Ethernet channel, a proprietary channel architecture, or a combination thereof. In another embodiment, network interface180includes a wireless communication interface, and network channel182includes a Wi-Fi channel, a near-field communication (NFC) channel, a Bluetooth® or Bluetooth-Low-Energy (BLE) channel, a cellular based interface such as a Global System for Mobile (GSM) interface, a Code-Division Multiple Access (CDMA) interface, a Universal Mobile Telecommunications System (UMTS) interface, a Long-Term Evolution (LTE) interface, or another cellular based interface, or a combination thereof. Network channel182can be connected to an external network resource (not illustrated). The network resource can include another information handling system, a data storage system, another network, a grid management system, another suitable resource, or a combination thereof.

BMC190is connected to multiple elements of information handling system100via one or more management interface192to provide out of band monitoring, maintenance, and control of the elements of the information handling system. As such, BMC190represents a processing device different from processor102and processor104, which provides various management functions for information handling system100. For example, BMC190may be responsible for power management, cooling management, and the like. The term BMC is often used in the context of server systems, while in a consumer-level device, a BMC may be referred to as an embedded controller (EC). A BMC included in a data storage system can be referred to as a storage enclosure processor. A BMC included at a chassis of a blade server can be referred to as a chassis management controller and embedded controllers included at the blades of the blade server can be referred to as blade management controllers. Capabilities and functions provided by BMC190can vary considerably based on the type of information handling system. BMC190can operate in accordance with an Intelligent Platform Management Interface (IPMI). Examples of BMC190include an Integrated Dell® Remote Access Controller (iDRAC).

Management interface192represents one or more out-of-band communication interfaces between BMC190and the elements of information handling system100, and can include a I2C bus, a System Management Bus (SMBus), a Power Management Bus (PMBUS), a Low Pin Count (LPC) interface, a serial bus such as a Universal Serial Bus (USB) or a Serial Peripheral Interface (SPI), a network interface such as an Ethernet interface, a high-speed serial data link such as a PCIe interface, a Network Controller Sideband Interface (NC-SI), or the like. As used herein, out-of-band access refers to operations performed apart from a BIOS/operating system execution environment on information handling system100, that is apart from the execution of code by processors102and104and procedures that are implemented on the information handling system in response to the executed code.

BMC190operates to monitor and maintain system firmware, such as code stored in BIOS/EFI module142, option ROMs for graphics adapter130, disk controller150, add-on resource174, network interface180, or other elements of information handling system100, as needed or desired. In particular, BMC190includes a network interface194that can be connected to a remote management system to receive firmware updates, as needed or desired. Here, BMC190receives the firmware updates, stores the updates to a data storage device associated with the BMC, transfers the firmware updates to NV-RAM of the device or system that is the subject of the firmware update, thereby replacing the currently operating firmware associated with the device or system, and reboots information handling system, whereupon the device or system utilizes the updated firmware image.

BMC190utilizes various protocols and application programming interfaces (APIs) to direct and control the processes for monitoring and maintaining the system firmware. An example of a protocol or API for monitoring and maintaining the system firmware includes a graphical user interface (GUI) associated with BMC190, an interface defined by the Distributed Management Taskforce (DMTF) (such as a Web Services Management (WSMan) interface, a Management Component Transport Protocol (MCTP) or, a RedfishR interface), various vendor defined interfaces (such as a Dell EMC Remote Access Controller Administrator (RACADM) utility, a Dell EMC OpenManage Enterprise, a Dell EMC OpenManage Server Administrator (OMSA) utility, a Dell EMC OpenManage Storage Services (OMSS) utility, or a Dell EMC OpenManage Deployment Toolkit (DTK) suite), a BIOS setup utility such as invoked by a “F2” boot option, or another protocol or API, as needed or desired.

In a particular embodiment, BMC190is included on a main circuit board (such as a baseboard, a motherboard, or any combination thereof) of information handling system100or is integrated onto another element of the information handling system such as chipset110, or another suitable element, as needed or desired. As such, BMC190can be part of an integrated circuit or a chipset within information handling system100. An example of BMC190includes an iDRAC, or the like. BMC190may operate on a separate power plane from other resources in information handling system100. Thus BMC190can communicate with the management system via network interface194while the resources of information handling system100are powered off. Here, information can be sent from the management system to BMC190and the information can be stored in a RAM or NV-RAM associated with the BMC. Information stored in the RAM may be lost after power-down of the power plane for BMC190, while information stored in the NV-RAM may be saved through a power-down/power-up cycle of the power plane for the BMC.

Information handling system100can include additional components and additional busses, not shown for clarity. For example, information handling system100can include multiple processor cores, audio devices, and the like. While a particular arrangement of bus technologies and interconnections is illustrated for the purpose of example, one of skill will appreciate that the techniques disclosed herein are applicable to other system architectures. Information handling system100can include multiple central processing units (CPUs) and redundant bus controllers. One or more components can be integrated together. Information handling system100can include additional buses and bus protocols, for example, I2C and the like. Additional components of information handling system100can include one or more storage devices that can store machine-executable code, one or more communications ports for communicating with external devices, and various input and output (I/O) devices, such as a keyboard, a mouse, and a video display.

For purposes of this disclosure information handling system100can include any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, entertainment, or other purposes. For example, information handling system100can be a personal computer, a laptop computer, a smartphone, a tablet device or other consumer electronic device, a network server, a network storage device, a switch, a router, or another network communication device, or any other suitable device and may vary in size, shape, performance, functionality, and price. Further, information handling system100can include processing resources for executing machine-executable code, such as processor102, a programmable logic array (PLA), an embedded device such as a System-on-a-Chip (SoC), or other control logic hardware. Information handling system100can also include one or more computer-readable media for storing machine-executable code, such as software or data.

2-in-1 information handling systems may suffer issues such as excessive heat when taken out of storage and an incorrect screen orientation when resuming from a standby mode, such as Windows® modern standby mode. These issues may develop due to a transition in a sensor state and/or a system mode. Typically, a 2-in-1 system includes three general-purpose input/output (GPIO) pins to determine eight sensor conditions. The eight sensor conditions are example. There can be more or less number of sensor conditions based on a system or sensor design. Each change in a GPIO pin state can trigger the transition in a sensor condition and/or a system mode. If one of the GPIOs unexpectedly changes the pin state, such as due to an external magnet in its vicinity, then the sensor state and/or the system mode may be changed to an unexpected state, typically referred to as falsely triggering the sensor state and/or system mode.

The present inventors have recognized that when a 2-in-1 system is proximate to an external magnet, which can be a part of various devices such as a smartphone or a tablet, the external magnet can have a repulsive effect with magnets in the 2-in-1 system. This repulsive effect may reduce magnetic flux that can cause a change to a sensor signal state even when the information handling system's lid is closed. The change to the sensor signal state may cause the information handling system to unexpectedly enter a wrong system mode, which can cause the issues mentioned above. To address these and other concerns, the present disclosure provides a sequential state machine sensor control.

FIG.2shows a diagram of an information handling system200for state machine-coupled sensor control. Information handling system200includes a system-on-chip205, an orientation sensor215, an embedded controller220, a lid position sensor230, a mode sensor235, and a non-volatile memory240. System-on-chip205includes a sensor hub210while embedded controller220includes a state controller225. The components of information handling system200may be implemented in hardware, software, firmware, or any combination thereof. The components shown are not drawn to scale and information handling system200may include additional or fewer components. In addition, connections between components may be omitted for descriptive clarity.

Information handling system200may be a 2-in-1 information handling system that includes a lid mechanically coupled to a base via one or more hinges. Typically, the lid includes a display screen while the base includes a keyboard. Information handling system200, which is similar to information handling system100ofFIG.1, can be configured in various arrangements that each provide a user with different capabilities. For example, as illustrated inFIG.3, the lid may be rotated into various positions relative to the base. In certain embodiments, the base houses one or more hardware components of information handling system200, such as a motherboard, processor(s), storage drives, memory, system-on-chip205, orientation sensor215, lid position sensor230, mode sensor235, and embedded controller220among others.

Sensor hub210may be a component of integrated system-on-chip205which can be incorporated into a processor, such as processor102and processor104of information handling system100ofFIG.1. Sensor hub210may utilize various sensors, such as orientation sensor215, lid position sensor230, and mode sensor235to determine a current condition or system mode of information handling system200. In certain embodiments, sensor hub210may be an independent microcontroller or another logic unit that is coupled to a motherboard of information handling system200.

Sensor hub210may be configured to detect a signal from orientation sensor215, lid position sensor230, and mode sensor235. Sensor hub210may be configured to determine a mode or a condition of information handling system200and notify embedded controller220of such. Sensor hub210may communicate with embedded controller220, orientation sensor215, lid position sensor230, and mode sensor235via a bus connection, such as an I2C interface, an Improved Inter-Integrated Circuit (I3C) interface, an SPI bus, a USB interface, or other suitable type of interface or bus. Sensor hub210may collect and process data from orientation sensor215, lid position sensor230, and mode sensor235using data fusion techniques in order to determine contextual information regarding the state or condition of information handling system200.

In certain embodiments, the mode of information handling system200may be determined based on a hinge angle, which is the angle between the lid and the base. For example, a first range of angles of rotation from a closed position may indicate a laptop configuration, a second range of angles may indicate a notebook configuration, and a third range of angles may indicate a tablet configuration. Sensor hub210may also additionally utilize orientation and movement information to determine the mode in which information handling system200is physically configured. For instance, sensor hub210may determine whether information handling system200is in a tent display mode based on the hinge angle and its orientation. Sensor hub210may also determine that information handling system200is in a tablet mode when information handling system200is opened and it lies on a flat surface with the display facing upwards.

Embedded controller220may be a motherboard component of information handling system200, such as BMC190ofFIG.1, and may include one or more logic units, such as state controller225. Firmware instructions utilized by embedded controller220may be used to operate a secure execution environment that may include operations for providing various core functions of information handling system200, such as power management, and management of operating modes of information handling system200. In addition, embedded controller220may be configured to support certain integrated I/O functions. For example, embedded controller220may be configured to determine and support a mode of information handling system200based on its current state or condition.

State controller225may be configured to determine a next state of information handling system200based on a current state and a previous state of information handling system200. State controller225may be configured to monitor, manage, and/or control the various states or conditions of information handling system200. Accordingly, state controller225may be configured to determine the current state and previous state of information handling system200. State controller225may store data, such as the current state, previous state, and next state of information handling system200in non-volatile memory240such as an NV-RAM, a storage device, etc. In addition, state controller225may also store the output signals received from lid position sensor230, mode sensor235, and sensor hub210. Although state controller225is shown to be included in embedded controller220, functionality of state controller225may be included in other microcontrollers capable of sending system mode information by detecting signals from orientation sensor215, lid position sensor230, and mode sensor235. For example, state controller225or its functionality may be incorporated in system-on-chip205or sensor hub210.

Lid position sensor230may be configured to report whether the lid of information handling system200is in a closed or an open position. Lid position sensor230may detect a relative position of a magnet in the base to the lid to determine the position of the lid relative to the base. In one example, lid position sensor230can transmit a digital output signal, such as a high or a low signal. For example, lid position sensor230may transmit a high signal when it detects that the lid of information handling system200is closed and a low signal otherwise via a GPIO pin. An angle of the hinge that is used to mechanically couple the lid and the base would be zero degrees when the lid is in a closed position. In one example, lid position sensor230may be a hall sensor or other suitable sensors. When embedded controller220receives the signal from lid position sensor230, embedded controller220may transmit a notification to sensor hub210to ensure that embedded controller220and sensor hub210are synchronized.

Mode sensor235may be configured to report whether information handling system200is in the tablet mode, also referred to as 360-degree mode because in this mode, the hinge angle is at 360 degrees. For example, mode sensor235may transmit a high signal when it detects that information handling system200is in the tablet mode and a low signal when it detects otherwise via a GPIO pin. In one example, mode sensor235may be a giant magnetoresistance (GMR) sensor or other suitable sensors. When embedded controller220receives the signal from mode sensor235, embedded controller220may also transmit a notification to sensor hub210to ensure that embedded controller220and sensor hub210are synchronized.

Orientation sensor215may be configured to report on a current orientation of information handling system200. For example, orientation sensor215may transmit a high signal when it detects that information handling system200is in a notebook mode and a low signal to sensor hub210via an I2C interface. Sensor hub210may in turn transmit the signal to embedded controller220via a GPIO pin. In addition to the signal, sensor hub210may also transmit other data, such as accelerometer data that includes angle and orientation to embedded controller20via the GPIO pin. Orientation sensor215may transmit a notification to a display driver rather than to embedded controller220when information handling system200is in a different mode, such as a landscape or a portrait mode. In one example, orientation sensor215may be an accelerometer, also referred to as a G-sensor or other suitable sensors.

Those of ordinary skill in the art will appreciate that the configuration, hardware, and/or software components of information handling system200depicted inFIG.2may vary. For example, the illustrative components within information handling system200are not intended to be exhaustive but rather are representative to highlight components that can be utilized to implement aspects of the present disclosure. For example, other devices and/or components may be used in addition to or in place of the devices/components depicted. In particular, although the example shows GPIO pins transmitting the output signals from sensor hub210, lid position sensor230, and mode sensor235to embedded controller220and/or state controller225, other suitable communication buses or interfaces may be used instead, such as an I2C bus, and I3C bus, SPI bus, or similar. The depicted example does not convey or imply any architectural or other limitations with respect to the presently described embodiments and/or the general disclosure. In the discussion of the figures, reference may also be made to components illustrated in other figures for continuity of the description.

FIG.3shows a table300which includes characteristics of conditions associated with information handling system200ofFIG.2. Conditions 3, 7, 8, and 2 may be regarded as valid conditions of information handling system200. Conditions 1, 4, 5, and 6 may be regarded as invalid conditions or unexpected states of information handling system200. These invalid conditions or unexpected states may be filtered out, such that information handling system200may not transition into these invalid conditions or unexpected states. Information handling system200is at condition 3 when its lid is closed. Information handling system200is at condition 7 when it is in a clamshell mode. Information handling system200is at a condition 8 when it is in a tent display mode. Information handling system200is at a condition 2 when it is in the tablet mode. Table300shows the signal status of lid position sensor230, mode sensor235, and orientation sensor215for each condition. A value of one indicates a high signal and a value of zero indicates a low signal. Table300also shows the associated hinge angles and system modes. Table300may be stored in a non-volatile memory similar to non-volatile memory ofFIG.2.

A state of information handling system200may be at a condition 1 when output signals of lid position sensor230, mode sensor235, and orientation sensor215are each at a low signal and information handling system200is in the tablet mode. Information handling system200is at the condition 2 when the hinge angle is at 360 degrees, the output signals of lid position sensor230and mode sensor235are low and the output signal of orientation sensor215is high and information handling system200is at the tablet mode. Information handling system200is in the condition 3 when the hinge angle is zero degrees and the output signals of lid position sensor230and orientation sensor215are low and the output signal of mode sensor235is high. In addition, information handling system200is in notebook mode.

Information handling system200is at a condition 4, when the output signal of lid position sensor230is low while output signals of orientation sensor215and mode sensor235are high and information handling system200is at the tablet mode. Information handling system200is at a condition 5 when the output signal of lid position sensor230is high while the output signals of orientation sensor215and mode sensor235are low and information handling system200is at the notebook mode.

Information handling system200is at a condition 6 when the output signal of lid position sensor230and orientation sensor215are high while the output signal of mode sensor235is low and information handling system200is in the tablet mode. Information handling system200is at the condition 6 when the output signals of lid position sensor230and orientation sensor215are high while the output signal of mode sensor235is low. In addition, information handling system200is in the tablet mode. Information handling system200is at the condition 7 when the output signal of lid position sensor230and mode sensor235is high while the output signal of orientation sensor215is low and information handling system is in the notebook mode. In addition, the hinge angle of information handling is greater than zero degrees and less than 180 degrees. Information handling system200is at the condition 8 when the output signal of lid position sensor230, mode sensor235, and orientation sensor215is high. In addition, the hinge angle is greater than 180 degrees and less than 360 degrees. Further, information handling system200is in the tablet mode.

FIG.4shows a state machine flow400for state machine-coupled sensor control. State machine flow400includes possible transition among several conditions of information handling system200, such as conditions 1 through 7. Conditions 2, 3, 7, and 8 depict valid conditions of information handling system200. Conditions 1, 4, 5, and 6 depict invalid conditions of information handling system200. For example, the invalid states may be attained when two magnets with like poles face each other which reduces a magnetic flux and affects lid position sensor230and/or mode sensor235, such that its output signal may be changed from high to low or low to high. Thus, falsely triggering the invalid conditions. This can happen when an external magnet is in proximity to the magnets in an information handling system. For example, when the external magnet is in proximity to mode sensor235of information handling system200in a closed position, the output signal of mode sensor235may change from high to low resulting in the condition 1.

Transition to or from an invalid condition may be prevented by a state controller similar to state controller225ofFIG.2. Accordingly, the state controller may allow the transition to or from a valid condition. A state transition that deviates from an expected or valid condition may be considered an erroneous transition. In other words, the state controller may transition to a condition when the condition is an expected state and the output signal from one or more sensors is not falsely triggered by the external magnet. So, the state controller may not transition to a condition when the condition is not an expected state and the output signal from one or more sensors is falsely triggered by the external magnet.

In this example, a transition between two conditions is depicted using a line with arrows. A continuous line between two conditions depicts a transition between two valid conditions of information handling system200. For example, information handling system200can transition from the condition 3 to the condition 7 and vice versa. Information handling system200can also transition the condition 7 to the condition 8 and vice versa. In addition, information handling system200can transition from the condition 8 to the condition 2 and vice versa. For example, at the condition 3, wherein the lid of information handling system200is in a closed position of the condition 3, a user can open the lid of information handling system200and put it in a clamshell mode of the condition 7. Afterwards, the user can flip the lid of information handling system200, such that it is in the tent display mode of the condition 8. From the tent display mode, the user can further flip the lid of information handling system200and put it in the tablet mode of the condition 2.

A dashed line between two conditions depicts an illegal transition between two conditions. For example, information handling system200may not transition from the condition 3 to the condition 1 or vice versa. Information handling system200may also not transition from the condition 3 to the condition 2 or vice versa within a threshold period. If the transition from the condition 3 to the condition 2 or vice versa exceeds the threshold period, then the transition is legal. The threshold period may be configurable, such as in hundreds of milliseconds.

Further, information handling system200may not transition from the condition 2 to the condition 6 or vice versa. Information handling system200may not also transition from the condition 6 to the condition 8 or vice versa. In addition, information handling system200may not transition from the condition 8 to the condition 4 or vice versa. Further, information handling system200may not transition from the condition 4 to the condition 2 or vice versa.

Information handling system200in the condition 3 can transition to the condition 1 when an external magnet is in the proximity of mode sensor235. In this example, the output signal of mode sensor235was changed from high to low. However, because this transition may be considered an erroneous transition, the transition may be prevented by state controller225from occurring, and information handling system200may remain in the condition 3. Information handling system200may transition from the condition 3 to the condition 7 and vice versa.

Information handling system200in the condition 3 may not be transitioned to the condition 2 or vice versa within a short period, such as in hundreds of milliseconds. However, if the transition between the condition 3 to the condition 2 or vice versa is longer than the specified short period, then the transition may be valid. For example, it can be assumed that a user may not be able to open the lid of information handling system200from a closed position and flip the lid into the tablet mode in hundreds of milliseconds. The user can perform such actions which typically takes the user several seconds or longer.

When information handling system200is in the condition 2 and an external magnet is in the proximity to lid position sensor230, information handling system200can transition to the condition 6. However, because this transition may be considered an erroneous transition, the transition may be prevented by state controller225from occurring. Thus, information handling system200may remain in the condition 2. However, information handling system200can transition to the condition 8 from the condition 2 and vice versa. In addition, information handling system200may not transition from the condition 2 to the condition 4 and vice versa, which may also be considered an erroneous transition.

In addition, information handling system200in the condition 4 may not transition to the condition 8 and vice versa, as this may also be considered as an erroneous transition. Similarly, information handling system200in the condition 8 may not transition to the condition 6. However, information handling system200in the condition 8 may transition to the condition 7 and vice versa. Information handling system200in the condition 7 may transition to the condition 5 and vice versa.

FIG.5shows a state diagram500for a state machine-coupled sensor control. This provides a system-defined state machine and an order of system orientation with temporal dependencies. State controller225in information handling system200ofFIG.2may be configured to record a previous state and a current state of information handling system200to determine possible next states as depicted in state diagram500and a table600ofFIG.6. In this example, state diagram500includes a previous state505, a current state510, and the next state.

State diagram500defines a sequential state and order of state orientation that may ensure accurate mode transitions with temporal dependencies. Further, state diagram500may record a previous state and the current state of an information handling system to determine a possible next state. This allows the system to evaluate whether it is performing expected actions and prevents the system from falsely triggering unexpected actions. This may be performed while all sensors can be enabled in all the states. This is in contrast with a conventional workaround of disabling one or more sensors to address the false triggering of unexpected actions.

Transitions between states may be limited between current, previous, and next states, wherein the states are valid conditions. For example, current state510may transition to previous state505and next state515. Accordingly, previous state505may transition to current state510. In addition, next state515may transition to current state510. However, previous state505may not transition to next state515. Accordingly, next state515may not transition to previous state505. In addition, there may be limitations, such that a state may not transition to states of conditions that may have been falsely triggered, such as conditions 1, 4, 5, and 6.

FIG.6shows table600which shows conditions that a state of information handling system200may transition into. In particular table600may show a mapping of conditions in a current state to a previous state and a next state, conditions in the next state are expected states that the current state can transition into. Otherwise, the state may be an unexpected state. Information handling system200can transition to the next state or a previous state, if the next state or the previous state is an expected state, as indicated by table600.

In this example, if information handling system200is at the current state510which is the condition 3, then information handling system200can transition to the condition 7 for next state515or back to the condition 7 for previous state505. Information handling system200may not transition to a condition outside of the indicated mapping. For example, information handling system200may not transition to condition 1, condition 2, condition 4, condition 5, condition 6, and condition 8 if current state510is in condition 3 and previous state505is in condition 7. Similar limitations may apply to other current states of information handling system205. For example, if current state510of information handling system200is the condition 7 and its previous state is the condition 3, then information handling system200can transition to the condition 3 or the condition 8 for its next state. Information handling system200may not transition to other conditions outside of the mapping. If current state510of information handling system200is the condition 7 and its previous state505is the condition 8, then information handling system200can transition to the condition 8 or the condition 3 for its next state515.

If current state510of information handling system200is the condition 8 and its previous state505is the condition 7, then information handling system200can transition to the condition 7 or the condition 2 for its next state515. If current state510of information handling system200is the condition 8 and its previous state505is the condition 2, then information handling system200can transition to the condition 7 or the condition 2 for its next state515. If current state510of information handling system200is the condition 2 and its previous state505is the condition 8, then information handling system200can transition to the condition 8 for its next state515. Although there are eight conditions identified in this example, one of skill in the art will appreciate that there may be more or less conditions associated with the information handling system. Table600, also referred to as a transition table, explains a typical example, which can be extended to advanced applications or services in practice. Table600may be stored in a non-volatile memory similar to non-volatile memory ofFIG.2.

FIG.7shows a flowchart of a method700for state machine-coupled sensor control. State diagram500defines a sequential state and order of state orientation that may ensure accurate mode transitions with temporal dependencies based on the current state and the previous state of the information handling system. Method700may be performed by one or more components of information handling system200ofFIG.2. In particular, method700may be performed by sensor hub210and/or state controller225ofFIG.2. However, while embodiments of the present disclosure are described in terms of information handling system200ofFIG.2, it should be recognized that other systems may be utilized to perform the described method. One of skill in the art will appreciate that this flowchart explains a typical example, which can be extended to advanced applications or services in practice.

Method700typically starts at block705where a sensor hub, an embedded controller, and a state controller in particular monitor an information handling system for output signals from one or more sensors. The method may proceed to block710, where the embedded controller and/or the state controller may determine the current state of the information handling system. For example, the embedded controller and/or the state controller may query the sensor hub for the current state of output signals of orientation sensor215, lid position sensor230, and mode sensor235. The embedded controller and/or the state controller may also determine the hinge angle and/or the system mode.

The method may proceed to block715where the state controller may save the condition associated with the current state of the information handling system to a non-volatile memory. The method may proceed to decision block720, where the state controller and/or the sensor hub may detect a sensor output signal status change. For example, the sensor hub and/or the state controller may receive an output signal from one or more sensors, wherein the received output signal is different from its current signal. For example, the output signal received may be high, whereas the current output signal is low or vice versa. The output signal may be received from or triggered by a GPIO pin, an I2C bus, or another communication bus. If the state controller and/or the sensor hub detect a sensor status change, then the “YES” branch is taken, and the method proceeds to block725. If the state controller and/or the sensor hub do not detect a sensor status change, then the “NO” branch is taken, and the method proceeds to block770.

At block725, the state controller may determine a condition associated with the sensor status change. The condition may be one of eight conditions identified in table300ofFIG.3. For example, if the output signal of mode sensor changes from high to low, wherein the output signals of orientation sensor and the lid position sensors are unchanged at low, and wherein the current status of the information handling system is the condition, then the status change of the mode sensor may relate to the condition 1. Based on this scenario, an external magnet may have falsely trigged the status change in the output signal of the mode sensor.

The method may proceed to decision block727, where the state controller may determine whether the condition may have been triggered by an external magnet, such as the conditions depicted inFIG.4. For example, the condition may have been falsely triggered by the external magnet. If the condition is triggered by the external magnet, then the “YES” branch is taken and the method proceeds to block770. If the condition is not triggered by the external magnet, then the “NO” branch is taken and the method proceeds to block730.

At block730where the state controller may save the determined condition as the next state in a non-volatile memory or storage device. The method may proceed to block735, where the state controller may determine whether the condition is a valid transition from the current state to the next state. The method may proceed to decision block740where the state controller may determine whether the detected sensor status change indicates an expected state or a valid condition that the current state can transition next to based on the current state and the previous state, such as by referring to table600ofFIG.6. If the detected sensor status change indicates the expected state or the valid condition, then the “YES” branch is taken, and the method proceeds to block760. If the detected sensor status change does not indicate the expected state nor the valid condition, then the “NO” branch is taken, and the method proceeds to block770.

At block760, the state controller may transition from the current state to the next state, which is the expected state. The method proceeds to block765where the method may update the states saved in the non-volatile storage device, such as save the current state as a previous state and the next state as the current state. The method may proceed to block770where the state controller may clear the next state stored in the non-volatile memory or storage device. The information handling system may not transition from the current state to the next state if the next state is not the expected state. Accordingly, the information handling system may maintain or remain in its current state. After which the method may end. However, instead of ending, the method may proceed to block705where the method may continue monitoring the information handling system.

AlthoughFIG.7show example blocks of method700in some implementation, method700may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted inFIG.7. Those skilled in the art will understand that the principles presented herein may be implemented in any suitably arranged processing system. Additionally, or alternatively, two or more of the blocks of method700may be performed in parallel. For example, block765and block770of method700may be performed in parallel.