ugokind, on 22 December 2012 - 11:10 AM, said:
ok
with RW everything I read the
9C cell in the EC register
it changes from 00/55/aa/ff
in the 4 states
in the dsdt it's the var TSTP
and it's in the RAMB register (volatile 1) and in the EC register (volatile 0)
TSTP, 8,
Offset (0x9C)
in the LCDD (under gfx0) device there is an external entry of EC for that specific control:
these (the _Q methods) are theQUERY : what happens if you press some in the direct connection with bios.. or what happens when you detach a battery.. etc..
the ISMI is locate under the root.. and point to another bank of ram/register
in the WAKE.. the 1st operation is to write ISMI xxxx.. so I suppose that if the value of the ISMI is the same in the 3 query.. is not important or is a flag to tell that the same family of query has changed it's value
the 3 query stores 1, 2, 3 in the TSTP register. and the 4?
I suppose this is not the command but the only a query. because the 4 values 00/55/aa/ff are quite different from 1,2,3.
infact I discovered the under the DEVICE ATKD
Method (GLKB, 1, NotSerialized)
with the 1,2,3 and it STORE that value in the KBLV var.
and
this is the core!
in fact it use the INDEX of KBLV (1,2,3) and get the relative value from the array.
the comand is the last row: it write in the EC.WRAM the proper value in the reg 044B
windows and ubuntu can translate the Fn+key with that command.
If we can change the xproj of the wmi.. we can add a command for the missing f3/f4 unmanaged buttons.. and for the actual needing.. we can invoke that command in the boot.
how?
the Sleep (Method (ECS, 1, NotSerialized)) set to zero the light.. WRAM (0x044B, Zero) after writing the last value Store (RRAM (0x0449), Local0)
and the wake read the value in the RRAM
Store (RRAM (0x0449), Local0)
and fix the value only if we are in a wake:
so we're sure.. the WRAM 0x0449 fixes the value in a separate bank.
WRAM 044B fix the value in the live system
i'll try
WRAM (0x044B, 0xFF)
i'ss test the ini and reg EC
see ya
yeah
here you are
this is for g53
search for the text
//**
grab the text i've added in the 3 positions ad put in your dsdt.dsl in the same position
now we've to mod the kext!!
with RW everything I read the
9C cell in the EC register
it changes from 00/55/aa/ff
in the 4 states
in the dsdt it's the var TSTP
and it's in the RAMB register (volatile 1) and in the EC register (volatile 0)
TSTP, 8,
Offset (0x9C)
in the LCDD (under gfx0) device there is an external entry of EC for that specific control:
Method (_QAA, 0, NotSerialized)
{
Store (One, ^^^^TSTP)
ISMI (0xA7)
Store (One, OEMP)
PNOT ()
}
Method (_QA6, 0, NotSerialized)
{
Store (0x02, ^^^^TSTP)
ISMI (0xA7)
}
Method (_QA8, 0, NotSerialized)
{
Store (0x03, ^^^^TSTP)
ISMI (0xA7)
Store (One, OEMP)
PNOT ()
}
these (the _Q methods) are theQUERY : what happens if you press some in the direct connection with bios.. or what happens when you detach a battery.. etc..
the ISMI is locate under the root.. and point to another bank of ram/register
OperationRegion (GPSC, SystemIO, 0xB2, 0x02)
Field (GPSC, ByteAcc, NoLock, Preserve)
{
SMCM, 8,
SMST, 8
}
Method (ISMI, 1, Serialized)
{
Store (Arg0, SMCM)
}
in the WAKE.. the 1st operation is to write ISMI xxxx.. so I suppose that if the value of the ISMI is the same in the 3 query.. is not important or is a flag to tell that the same family of query has changed it's value
the 3 query stores 1, 2, 3 in the TSTP register. and the 4?
I suppose this is not the command but the only a query. because the 4 values 00/55/aa/ff are quite different from 1,2,3.
infact I discovered the under the DEVICE ATKD
Method (GLKB, 1, NotSerialized)
with the 1,2,3 and it STORE that value in the KBLV var.
and
Name (PWKB, Buffer (0x04)
{
0x00, 0x55, 0xAA, 0xFF
})
Method (SLKB, 1, NotSerialized)
{
Store (And (Arg0, 0x7F), KBLV)
If (And (Arg0, 0x80))
{
Store (DerefOf (Index (PWKB, KBLV)), Local0)
}
Else
{
Store (Zero, Local0)
}
^^PCI0.LPCB.EC.WRAM (0x044B, Local0)
Return (One)
}
this is the core!
in fact it use the INDEX of KBLV (1,2,3) and get the relative value from the array.
the comand is the last row: it write in the EC.WRAM the proper value in the reg 044B
windows and ubuntu can translate the Fn+key with that command.
If we can change the xproj of the wmi.. we can add a command for the missing f3/f4 unmanaged buttons.. and for the actual needing.. we can invoke that command in the boot.
how?
the Sleep (Method (ECS, 1, NotSerialized)) set to zero the light.. WRAM (0x044B, Zero) after writing the last value Store (RRAM (0x0449), Local0)
and the wake read the value in the RRAM
Store (RRAM (0x0449), Local0)
and fix the value only if we are in a wake:
If (LOr (LEqual (Arg0, 0x03), LEqual (Arg0, 0x04)))
{
Store (RRAM (0x0449), Local0)
And (Local0, 0x02, Local1)
If (Local1)
{
Or (Local0, One, Local0)
WRAM (0x0449, Local0)
}
}
so we're sure.. the WRAM 0x0449 fixes the value in a separate bank.
WRAM 044B fix the value in the live system
i'll try
WRAM (0x044B, 0xFF)
i'ss test the ini and reg EC
see ya
yeah
here you are
this is for g53
search for the text
//**
grab the text i've added in the 3 positions ad put in your dsdt.dsl in the same position
now we've to mod the kext!!
ugokind, on 22 December 2012 - 11:10 AM, said:
ok
with RW everything I read the
9C cell in the EC register
it changes from 00/55/aa/ff
in the 4 states
in the dsdt it's the var TSTP
and it's in the RAMB register (volatile 1) and in the EC register (volatile 0)
TSTP, 8,
Offset (0x9C)
in the LCDD (under gfx0) device there is an external entry of EC for that specific control:
these (the _Q methods) are theQUERY : what happens if you press some in the direct connection with bios.. or what happens when you detach a battery.. etc..
the ISMI is locate under the root.. and point to another bank of ram/register
in the WAKE.. the 1st operation is to write ISMI xxxx.. so I suppose that if the value of the ISMI is the same in the 3 query.. is not important or is a flag to tell that the same family of query has changed it's value
the 3 query stores 1, 2, 3 in the TSTP register. and the 4?
I suppose this is not the command but the only a query. because the 4 values 00/55/aa/ff are quite different from 1,2,3.
infact I discovered the under the DEVICE ATKD
Method (GLKB, 1, NotSerialized)
with the 1,2,3 and it STORE that value in the KBLV var.
and
this is the core!
in fact it use the INDEX of KBLV (1,2,3) and get the relative value from the array.
the comand is the last row: it write in the EC.WRAM the proper value in the reg 044B
windows and ubuntu can translate the Fn+key with that command.
If we can change the xproj of the wmi.. we can add a command for the missing f3/f4 unmanaged buttons.. and for the actual needing.. we can invoke that command in the boot.
how?
the Sleep (Method (ECS, 1, NotSerialized)) set to zero the light.. WRAM (0x044B, Zero) after writing the last value Store (RRAM (0x0449), Local0)
and the wake read the value in the RRAM
Store (RRAM (0x0449), Local0)
and fix the value only if we are in a wake:
so we're sure.. the WRAM 0x0449 fixes the value in a separate bank.
WRAM 044B fix the value in the live system
i'll try
WRAM (0x044B, 0xFF)
i'ss test the ini and reg EC
see ya
yeah
here you are
this is for g53
search for the text
//**
grab the text i've added in the 3 positions ad put in your dsdt.dsl in the same position
now we've to mod the kext!!
with RW everything I read the
9C cell in the EC register
it changes from 00/55/aa/ff
in the 4 states
in the dsdt it's the var TSTP
and it's in the RAMB register (volatile 1) and in the EC register (volatile 0)
TSTP, 8,
Offset (0x9C)
in the LCDD (under gfx0) device there is an external entry of EC for that specific control:
Method (_QAA, 0, NotSerialized)
{
Store (One, ^^^^TSTP)
ISMI (0xA7)
Store (One, OEMP)
PNOT ()
}
Method (_QA6, 0, NotSerialized)
{
Store (0x02, ^^^^TSTP)
ISMI (0xA7)
}
Method (_QA8, 0, NotSerialized)
{
Store (0x03, ^^^^TSTP)
ISMI (0xA7)
Store (One, OEMP)
PNOT ()
}
these (the _Q methods) are theQUERY : what happens if you press some in the direct connection with bios.. or what happens when you detach a battery.. etc..
the ISMI is locate under the root.. and point to another bank of ram/register
OperationRegion (GPSC, SystemIO, 0xB2, 0x02)
Field (GPSC, ByteAcc, NoLock, Preserve)
{
SMCM, 8,
SMST, 8
}
Method (ISMI, 1, Serialized)
{
Store (Arg0, SMCM)
}
in the WAKE.. the 1st operation is to write ISMI xxxx.. so I suppose that if the value of the ISMI is the same in the 3 query.. is not important or is a flag to tell that the same family of query has changed it's value
the 3 query stores 1, 2, 3 in the TSTP register. and the 4?
I suppose this is not the command but the only a query. because the 4 values 00/55/aa/ff are quite different from 1,2,3.
infact I discovered the under the DEVICE ATKD
Method (GLKB, 1, NotSerialized)
with the 1,2,3 and it STORE that value in the KBLV var.
and
Name (PWKB, Buffer (0x04)
{
0x00, 0x55, 0xAA, 0xFF
})
Method (SLKB, 1, NotSerialized)
{
Store (And (Arg0, 0x7F), KBLV)
If (And (Arg0, 0x80))
{
Store (DerefOf (Index (PWKB, KBLV)), Local0)
}
Else
{
Store (Zero, Local0)
}
^^PCI0.LPCB.EC.WRAM (0x044B, Local0)
Return (One)
}
this is the core!
in fact it use the INDEX of KBLV (1,2,3) and get the relative value from the array.
the comand is the last row: it write in the EC.WRAM the proper value in the reg 044B
windows and ubuntu can translate the Fn+key with that command.
If we can change the xproj of the wmi.. we can add a command for the missing f3/f4 unmanaged buttons.. and for the actual needing.. we can invoke that command in the boot.
how?
the Sleep (Method (ECS, 1, NotSerialized)) set to zero the light.. WRAM (0x044B, Zero) after writing the last value Store (RRAM (0x0449), Local0)
and the wake read the value in the RRAM
Store (RRAM (0x0449), Local0)
and fix the value only if we are in a wake:
If (LOr (LEqual (Arg0, 0x03), LEqual (Arg0, 0x04)))
{
Store (RRAM (0x0449), Local0)
And (Local0, 0x02, Local1)
If (Local1)
{
Or (Local0, One, Local0)
WRAM (0x0449, Local0)
}
}
so we're sure.. the WRAM 0x0449 fixes the value in a separate bank.
WRAM 044B fix the value in the live system
i'll try
WRAM (0x044B, 0xFF)
i'ss test the ini and reg EC
see ya
yeah
here you are
this is for g53
search for the text
//**
grab the text i've added in the 3 positions ad put in your dsdt.dsl in the same position
now we've to mod the kext!!
Good find Ugokind, I will test it when i get back. For PNLF, Method GCBL and it's Storing to ECO.STBR.
For Backlit Keyboard Why no store that value under SLKB? This is the last argument before it is invoked by ATK. Since we don't have ATK software to trigger it, just leave it on.
Method (SLKB, 1, NotSerialized)
{
Store (And (Arg0, 0x7F), KBLV)
If (And (Arg0, 0x80))
{
Store (DerefOf (Index (PWKB, KBLV)), Local0)
}
Else
{
Store (Zero, Local0)
}
^^PCI0.SBRG.EC0.WRAM (0x044B, Local0)
Return (One)
}
I think Method _Q0E is how example: (Fn-F5) down backlight stores to EC and so on...



Sign In
Create Account











