1/************************************************************************************;
2;*                                                                                  *;
3;*                                                                                  *;
4;*    Intel Corporation - ACPI Reference Code for the Baytrail                      *;
5;*    Family of Customer Reference Boards.                                          *;
6;*                                                                                  *;
7;*    MPG-MSAE                                                                      *;
8;*                                                                                  *;
9;*    Copyright (c) 1999 - 2014, Intel Corporation.                                 *;
10;*                                                                                  *;
11;* This program and the accompanying materials are licensed and made available under*;
12;* the terms and conditions of the BSD License that accompanies this distribution.  *;
13;* The full text of the license may be found at                                     *;
14;* http://opensource.org/licenses/bsd-license.php.                                  *;
15;*                                                                                  *;
16;* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,            *;
17;* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.    *;
18;*                                                                                  *;
19;*                                                                                  *;
20;*    This program has been developed by Intel Corporation.                         *;
21;*    Licensee has Intel's permission to incorporate this source code               *;
22;*    into their product, royalty free.  This source code may NOT be                *;
23;*    redistributed to anyone without Intel's written permission.                   *;
24;*                                                                                  *;
25;*    Intel specifically disclaims all warranties, express or                       *;
26;*    implied, and all liability, including consequential and other                 *;
27;*    indirect damages, for the use of this code, including liability               *;
28;*    for infringement of any proprietary rights, and including the                 *;
29;*    warranties of merchantability and fitness for a particular                    *;
30;*    purpose.  Intel does not assume any responsibility for any                    *;
31;*    errors which may appear in this code nor any responsibility to                *;
32;*    update it.                                                                    *;
33;*                                                                                  *;
34;*    Version:  See README.TXT                                                      *;
35;*                                                                                  *;
36;************************************************************************************/
37
38//
39// _DSM : Device Specific Method supporting USB Sideband Deferring function
40//
41// Arg0: UUID Unique function identifier
42// Arg1: Integer Revision Level
43// Arg2: Integer Function Index
44// Arg3: Package Parameters
45//
46Method (_DSM, 4, Serialized, 0, UnknownObj, {BuffObj, IntObj, IntObj, PkgObj})
47{
48
49  If (LEqual(Arg0, ToUUID ("A5FC708F-8775-4BA6-BD0C-BA90A1EC72F8")))
50  {
51    //
52    // Switch by function index
53    //
54    Switch (ToInteger(Arg2))
55    {
56      //
57      // Standard query - A bitmask of functions supported
58      // Supports function 0-2
59      //
60      Case (0)
61      {
62        if (LEqual(Arg1, 1))   // test Arg1 for the revision
63        {
64          Return (Buffer () {0x07})
65        }
66        else
67        {
68          Return (Buffer () {0})
69        }
70      }
71      //
72      // USB Sideband Deferring Support
73      //   0: USB Sideband Deferring not supported on this device
74      //   1: USB Sideband Deferring supported
75      //
76      Case (1)
77      {
78        if (LEqual(SDGV,0xFF))   // check for valid GPE vector
79        {
80          Return (0)
81        }
82        else
83        {
84          Return (1)
85        }
86      }
87      //
88      // GPE Vector
89      //  Return the bit offset within the GPE block of the GPIO (HOST_ALERT) driven by this device
90      //
91      Case (2)
92      {
93        Return (SDGV)
94      }
95    }
96  }
97
98  Return (0)
99}
100