# ACPI + DSDT overclocking / undervolting

## eddy89

Hi all.

I need help about a complicated problem with acpi and powernow-k8.

In my laptop, Benq Joybook R23E, (bought with linux!) the acpi dsdt is compiled by Intel (signed INTL), and fortunately has no errors.

One day a strange idea came to my mind: to modify dsdt source (dsl) in order to edit PSS tables of frequencies and voltage, like is described in many articles, like this: 

http://katherina.student.utwente.nl/~matthijs/cgi-bin/blosxom?-tags=Notebook

But it was too simple for me... in fact in my dsdt, I have not the _PSS name, but I have a name FPSS, and a method _PSS, the problem is that FPSS contains hundreds of packages that would be valid for powernow table:

```

           Name (FPSS, Package (0x33)

            {

[...]

      

            Method (_PSS, 0, NotSerialized)

            {

                Store (Match (FPSI, MEQ, CPSS, MTR, Zero, Zero), Local1)

                Store (DerefOf (Index (FPSS, Local1)), Local0)

                Return (Local0)

            }

```

(uploaded here: http://brainstorm.homelinux.org/eddy/new.dsl)

Now: how can I know wich package is used in order to modify it?

Or at least which can I drag  and drop in a new _PSS name, commenting out the previous ones?

If someone very good with this things can help me, I would really appreciate that.

----------

## widan

Your _PSS method means that:

```
Method (_PSS, 0, NotSerialized)

{

    # For i From 0 To Length(FPSI)

    #   If (FPSI[i] == CPSS)

    #     Local1 = i

    #     Break

    Store (Match (FPSI, MEQ, CPSS, MTR, Zero, Zero), Local1)

    # Local0 = FPSS[Local1]

    Store (DerefOf (Index (FPSS, Local1)), Local0)

    # Return Local0

    Return (Local0)

}
```

So it searches the index in the FPSI array such that the value at that index is equal to the CPSS value, and returns the PSS table from the FPSS array at the same index.

Your CPSS value:

```
Name (CPSS, 0x02080AC0)
```

That value is found in FPSI at index 49 (starting at 0):

```
Name (FPSI, Package (0x34)

{

    0x00040880, # 0

    0x000C0AC0, # 1

    ...

    0x02060CC0, # 47

    0x020808C0, # 48

    0x02080AC0, # 49 <--

    0x02080CC0, # 50

    0x00FFFFFF  # 51

})
```

And your table should be this one (the one in FPSS with the same index, ie not the last one, but the one before):

```
# 49

Package (0x03)

{

    Package (0x06)

    {

        0x0708, # 1800 MHz

        0x61A8, 

        0x64, 

        0x06, 

        0xE0202A8A, 

        0x028A

    }, 

    Package (0x06)

    {

        0x0640, # 1600 MHz

        0x50DC, 

        0x64, 

        0x06, 

        0xE0202B08, 

        0x0308

    }, 

    Package (0x06)

    {

        0x0320, # 800 MHz

        0x2198, 

        0x64, 

        0x06, 

        0xE0202CC0, 

        0x04C0

    }

},
```

----------

## eddy89

Thank you very much!

I'm not sure to understand how did you get that, I had a similar idea, but counted just 3 packages from the end, so I went wrong, and I was not sure about that.

So in your opinion I can comment out name FPSS, method _PSS, and then write a new name _PSS containing that package(then play modifying it)? like this:

```

Name (_PSS, Package (0x03)

{

    Package (0x06)

    {

        0x0708, # 1800 MHz

        0x61A8,

        0x64,

        0x06,

        0xE0202A8A,

        0x028A

    },

    Package (0x06)

    {

        0x0640, # 1600 MHz

        0x50DC,

        0x64,

        0x06,

        0xE0202B08,

        0x0308

    },

    Package (0x06)

    {

        0x0320, # 800 MHz

        0x2198,

        0x64,

        0x06,

        0xE0202CC0,

        0x04C0

    }

})
```

Or is better to modify directly in the FPSS?

Thank you again!  :Very Happy: 

----------

## widan

 *eddy89 wrote:*   

> I'm not sure to understand how did you get that, I had a similar idea, but counted just 3 packages from the end, so I went wrong, and I was not sure about that.

 

That's because there's a terminator at the end of the FPSI list (that has 0x34 = 52 elements, from 0 to 51), and there is no corresponding data in FPSS (that only has 0x33 = 51 elements, from 0 to 50).

 *eddy89 wrote:*   

> So in your opinion I can comment out name FPSS, method _PSS, and then write a new name _PSS containing that package(then play modifying it)?

 

It should work, you just need to comment the old _PSS method, FPSS can stay.

 *eddy89 wrote:*   

> Or is better to modify directly in the FPSS?

 

Both should work.

----------

