Hi, Here is the patch, which moves almost all transaction functionality into interrupt handler, which is IMHO good. with the enabled DEBUG, the interrupt picture looks like this (single transaction): [ 228.823886] ACPI: EC: ---> status = 0x08 -- this is a check for IBF=0 before starting transaction [ 228.823888] ACPI: EC: transaction start [ 228.823890] ACPI: EC: <--- command = 0x80 -- here we write command [ 228.824123] ACPI: EC: ~~~> interrupt -- this interrupt is generated with the same content in status register as before writing a command... [ 228.824127] ACPI: EC: ---> status = 0x08 [ 228.824129] ACPI: EC: <--- data = 0x58 [ 228.824152] ACPI: EC: ~~~> interrupt -- and now EC start sending us interrupts like crazy... [ 228.824155] ACPI: EC: ---> status = 0x02 [ 228.824169] ACPI: EC: ~~~> interrupt [ 228.824172] ACPI: EC: ---> status = 0x02 [ 228.824186] ACPI: EC: ~~~> interrupt [ 228.824189] ACPI: EC: ---> status = 0x02 [ 228.824203] ACPI: EC: ~~~> interrupt [ 228.824206] ACPI: EC: ---> status = 0x02 [ 228.824219] ACPI: EC: ~~~> interrupt [ 228.824222] ACPI: EC: ---> status = 0x02 [ 228.824236] ACPI: EC: ~~~> interrupt [ 228.824239] ACPI: EC: ---> status = 0x02 [ 228.824253] ACPI: EC: ~~~> interrupt [ 228.824256] ACPI: EC: ---> status = 0x02 [ 228.824270] ACPI: EC: ~~~> interrupt [ 228.824273] ACPI: EC: ---> status = 0x02 [ 228.824287] ACPI: EC: ~~~> interrupt [ 228.824290] ACPI: EC: ---> status = 0x02 [ 228.824304] ACPI: EC: ~~~> interrupt [ 228.824307] ACPI: EC: ---> status = 0x02 [ 228.824321] ACPI: EC: ~~~> interrupt [ 228.824324] ACPI: EC: ---> status = 0x02 [ 228.824337] ACPI: EC: ~~~> interrupt [ 228.824340] ACPI: EC: ---> status = 0x02 [ 228.824354] ACPI: EC: ~~~> interrupt [ 228.824357] ACPI: EC: ---> status = 0x02 [ 228.824371] ACPI: EC: ~~~> interrupt [ 228.824374] ACPI: EC: ---> status = 0x02 [ 228.824388] ACPI: EC: ~~~> interrupt [ 228.824391] ACPI: EC: ---> status = 0x02 [ 228.824405] ACPI: EC: ~~~> interrupt [ 228.824408] ACPI: EC: ---> status = 0x02 [ 228.824422] ACPI: EC: ~~~> interrupt [ 228.824425] ACPI: EC: ---> status = 0x02 [ 228.824439] ACPI: EC: ~~~> interrupt [ 228.824442] ACPI: EC: ---> status = 0x02 [ 228.824455] ACPI: EC: ~~~> interrupt [ 228.824458] ACPI: EC: ---> status = 0x02 [ 228.824472] ACPI: EC: ~~~> interrupt [ 228.824475] ACPI: EC: ---> status = 0x02 [ 228.824489] ACPI: EC: ~~~> interrupt [ 228.824492] ACPI: EC: ---> status = 0x02 [ 228.824506] ACPI: EC: ~~~> interrupt [ 228.824509] ACPI: EC: ---> status = 0x02 [ 228.824523] ACPI: EC: ~~~> interrupt [ 228.824526] ACPI: EC: ---> status = 0x02 [ 228.824540] ACPI: EC: ~~~> interrupt [ 228.824543] ACPI: EC: ---> status = 0x02 [ 228.824557] ACPI: EC: ~~~> interrupt [ 228.824560] ACPI: EC: ---> status = 0x02 [ 228.824573] ACPI: EC: ~~~> interrupt [ 228.824576] ACPI: EC: ---> status = 0x02 [ 228.824590] ACPI: EC: ~~~> interrupt [ 228.824593] ACPI: EC: ---> status = 0x02 [ 228.824607] ACPI: EC: ~~~> interrupt [ 228.824610] ACPI: EC: ---> status = 0x02 [ 228.824624] ACPI: EC: ~~~> interrupt [ 228.824627] ACPI: EC: ---> status = 0x02 [ 228.824641] ACPI: EC: ~~~> interrupt [ 228.824644] ACPI: EC: ---> status = 0x02 [ 228.824658] ACPI: EC: ~~~> interrupt [ 228.824661] ACPI: EC: ---> status = 0x02 [ 228.824675] ACPI: EC: ~~~> interrupt [ 228.824678] ACPI: EC: ---> status = 0x02 [ 228.824691] ACPI: EC: ~~~> interrupt [ 228.824694] ACPI: EC: ---> status = 0x02 [ 228.824708] ACPI: EC: ~~~> interrupt [ 228.824711] ACPI: EC: ---> status = 0x02 [ 228.824785] ACPI: EC: ~~~> interrupt --- one more "real" interrupt. Others are just garbage. [ 228.824788] ACPI: EC: ---> status = 0x01 [ 228.824791] ACPI: EC: ---> data = 0x35 [ 228.824805] ACPI: EC: ~~~> interrupt [ 228.824808] ACPI: EC: ---> status = 0x00 [ 228.824822] ACPI: EC: ~~~> interrupt [ 228.824825] ACPI: EC: ---> status = 0x00 [ 228.824839] ACPI: EC: ~~~> interrupt [ 228.824842] ACPI: EC: ---> status = 0x00 [ 228.824856] ACPI: EC: ~~~> interrupt [ 228.824859] ACPI: EC: ---> status = 0x00 [ 228.824873] ACPI: EC: ~~~> interrupt [ 228.824876] ACPI: EC: ---> status = 0x00 [ 228.824890] ACPI: EC: ~~~> interrupt [ 228.824893] ACPI: EC: ---> status = 0x00 [ 228.824907] ACPI: EC: ~~~> interrupt [ 228.824910] ACPI: EC: ---> status = 0x00 [ 228.824924] ACPI: EC: ~~~> interrupt [ 228.824926] ACPI: EC: ---> status = 0x00 [ 228.824940] ACPI: EC: ~~~> interrupt [ 228.824943] ACPI: EC: ---> status = 0x00 [ 228.824957] ACPI: EC: ~~~> interrupt [ 228.824960] ACPI: EC: ---> status = 0x00 [ 228.824974] ACPI: EC: ~~~> interrupt [ 228.824977] ACPI: EC: ---> status = 0x00 [ 228.824991] ACPI: EC: ~~~> interrupt [ 228.824994] ACPI: EC: ---> status = 0x00 [ 228.825008] ACPI: EC: ~~~> interrupt [ 228.825011] ACPI: EC: ---> status = 0x00 [ 228.825025] ACPI: EC: ~~~> interrupt [ 228.825028] ACPI: EC: ---> status = 0x00 [ 228.825042] ACPI: EC: ~~~> interrupt [ 228.825044] ACPI: EC: ---> status = 0x00 [ 228.825058] ACPI: EC: ~~~> interrupt [ 228.825061] ACPI: EC: ---> status = 0x00 [ 228.825075] ACPI: EC: ~~~> interrupt [ 228.825078] ACPI: EC: ---> status = 0x00 [ 228.825092] ACPI: EC: ~~~> interrupt [ 228.825095] ACPI: EC: ---> status = 0x00 [ 228.825109] ACPI: EC: ~~~> interrupt [ 228.825112] ACPI: EC: ---> status = 0x00 [ 228.825126] ACPI: EC: ~~~> interrupt [ 228.825129] ACPI: EC: ---> status = 0x00 [ 228.825143] ACPI: EC: ~~~> interrupt [ 228.825146] ACPI: EC: ---> status = 0x00 [ 228.825160] ACPI: EC: ~~~> interrupt [ 228.825162] ACPI: EC: ---> status = 0x00 [ 228.825176] ACPI: EC: ~~~> interrupt [ 228.825179] ACPI: EC: ---> status = 0x00 [ 228.825193] ACPI: EC: ~~~> interrupt [ 228.825196] ACPI: EC: ---> status = 0x00 [ 228.825210] ACPI: EC: ~~~> interrupt [ 228.825213] ACPI: EC: ---> status = 0x00 [ 228.825227] ACPI: EC: ~~~> interrupt [ 228.825230] ACPI: EC: ---> status = 0x00 [ 228.825244] ACPI: EC: ~~~> interrupt [ 228.825247] ACPI: EC: ---> status = 0x00 [ 228.825261] ACPI: EC: ~~~> interrupt [ 228.825264] ACPI: EC: ---> status = 0x00 [ 228.825277] ACPI: EC: ~~~> interrupt [ 228.825280] ACPI: EC: ---> status = 0x00 [ 228.825294] ACPI: EC: ~~~> interrupt [ 228.825297] ACPI: EC: ---> status = 0x00 [ 228.825311] ACPI: EC: ~~~> interrupt [ 228.825314] ACPI: EC: ---> status = 0x00 [ 228.825328] ACPI: EC: ~~~> interrupt [ 228.825331] ACPI: EC: ---> status = 0x00 [ 228.825345] ACPI: EC: ~~~> interrupt [ 228.825348] ACPI: EC: ---> status = 0x00 [ 228.825362] ACPI: EC: ~~~> interrupt [ 228.825365] ACPI: EC: ---> status = 0x00 [ 228.825379] ACPI: EC: ~~~> interrupt [ 228.825381] ACPI: EC: ---> status = 0x00 [ 228.825387] ACPI: EC: transaction end "transaction end" happens to be printed than EC stops sending interrupts. It looks like we get 100% interrupt load for 1ms or so... This piece does not have 0x20 (SCI) bit set, so it is not a query issue. I'm out of ideas, so if you have some, please speak up. Also, Intel wants back this problematic notebook in 2 weeks, so I will not be able to debug it afterwards. Regards, Alex.