• Lv Zheng's avatar
    Revert "ACPI / EC: Add support to disallow QR_EC to be issued before completing previous QR_EC" · df9ff918
    Lv Zheng authored
    It is reported that the following commit breaks Samsung hardware:
     Commit: 558e4736.
     Subject: ACPI / EC: Add support to disallow QR_EC to be issued before
              completing previous QR_EC
    
    Which means the Samsung behavior conflicts with the Acer behavior.
    
    1. Samsung may behave like:
       [ +event 1 ] SCI_EVT set
       [ +event 2 ] SCI_EVT set
                                  write QR_EC
                                  read event
       [ -event 1 ] SCI_EVT clear
       Without the above commit, Samsung can work:
       [ +event 1 ] SCI_EVT set
       [ +event 2 ] SCI_EVT set
                                  write QR_EC
                                  CAN prepare next QR_EC as SCI_EVT=1
                                  read event
       [ -event 1 ] SCI_EVT clear
                                  write QR_EC
                                  read event
       [ -event 2 ] SCI_EVT clear
       With the above commit, Samsung cannot work:
       [ +event 1 ] SCI_EVT set
       [ +event 2 ] SCI_EVT set
                                  write QR_EC
                                  read event
       [ -event 1 ] SCI_EVT clear
                                  CANNOT prepare next QR_EC as SCI_EVT=0
    2. Acer may behave like:
       [ +event 1 ] SCI_EVT set
       [ +event 2 ]
                                  write QR_EC
                                  read event
       [ -event 1 ] SCI_EVT clear
       [ +event 2 ] SCI_EVT set
       Without the above commit, Acer cannot work when there is only 1 event:
       [ +event 1 ] SCI_EVT set
                                  write QR_EC
                                  can prepared next QR_EC as SCI_EVT=1
                                  read event
       [ -event 1 ] SCI_EVT clear
                                  CANNOT write QR_EC as SCI_EVT=0
       With the above commit, Acer can work:
       [ +event 1 ] SCI_EVT set
       [ +event 2 ]
                                  write QR_EC
                                  read event
       [ -event 1 ] SCI_EVT set
                                  can prepare next QR_EC because SCI_EVT=0
                                  CAN write QR_EC as SCI_EVT=1
    
    Since Acer can also work with only the following commit applied:
     Commit: 3afcf2ec
     Subject: ACPI / EC: Add support to disallow QR_EC to be issued when
              SCI_EVT isn't set
    commit 558e4736 can be reverted.
    
    Fixes: 558e4736 (ACPI / EC: Add support to disallow QR_EC to be issued ...)
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=44161Reported-and-tested-by: default avatarOrtwin Glück <odi@odi.ch>
    Signed-off-by: default avatarLv Zheng <lv.zheng@intel.com>
    Cc: 3.17+ <stable@vger.kernel.org> # 3.17+
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    df9ff918
ec.c 31 KB