Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Mar 2008 16:01:12 -0800 (PST)
From:      Vishwanathan S V N <vishketan@yahoo.com>
To:        freebsd-acpi@freebsd.org
Cc:        Mitsuru IWASAKI <iwasaki@jp.FreeBSD.org>
Subject:   Re: Sony Vaio VGN SZ483NC warm docking issues
Message-ID:  <860839.34422.qm@web31704.mail.mud.yahoo.com>

next in thread | raw e-mail | index | archive | help
Hi,

> > I used load acpi_dock.ko and then boot as suggested by you but the problem still persists. I can undock successfully but cannot redock.

> Hmm, your \_SB.DOCK._STA method always seems to return zero (i.e. dock
> status method indicates that the system is undocked all the time)
> that's why the same problem occurs on Linux kernel, I guess.

It looks like your guess might be right.

> Case 1: boot the docked system.
> Then obtain dock device information by sysctl and dmesg command.
> # sysctl dev.acpi_dock > acpi_dock-boot.txt
> # dmesg > dmesg-boot.txt

http://users.rsise.anu.edu.au/~vishy/FreeBSD/acpi_dock-boot.txt
http://users.rsise.anu.edu.au/~vishy/FreeBSD/dmesg-boot.txt

> Case 3: boot the docked system, undock and redock.
> sysctl command after redocking.
> # sysctl dev.acpi_dock > acpi_dock-redocked.txt
> # dmesg > dmesg-redocked.txt

http://users.rsise.anu.edu.au/~vishy/FreeBSD/acpi_dock-redocked.txt
http://users.rsise.anu.edu.au/~vishy/FreeBSD/dmesg-redocked.txt

> Case 2: boot the undocked system and dock.
> sysctl command after docking.
> # sysctl dev.acpi_dock > acpi_dock-docked.txt
> # dmesg > dmesg-docked.txt

http://users.rsise.anu.edu.au/~vishy/FreeBSD/acpi_dock-docked.txt
http://users.rsise.anu.edu.au/~vishy/FreeBSD/dmesg-docked.txt

I did Case 1 and Case 3 in the same boot i.e. I booted docked then obtained the sysctl and dmesg information. Then undocked and redocked and obtained the information again. I hope that is OK.

If I understand correctly this method from the decompiled dsdt might be at fault:

     Method (_STA, 0, NotSerialized)
            {
                If (LEqual (\_SB.PCI0.LPCB.EC0.ECOK, 0x00))
                {
                    If (LAnd (PHSB (0xD4, 0x9E), 0x40))
                    {
                        Return (0x0F)
                    }
                    Else
                    {
                        Return (0x00)
                    }
                }
                Else
                {
                    If (\_SB.PCI0.LPCB.EC0.IUSE)
                    {
                        Return (0x0F)
                    }
                    Else
                    {
                        Return (0x00)
                    }
                }
            }

I can see from the dmesg that when I boot docked then this method returns 0x0F as expected. But when I redock it seems to return 0x00. 

Can we figure out which of the two cases if(LEqual ...) or else is being triggered when I redock or dock after booting outside?

vishy





      ____________________________________________________________________________________
Looking for last minute shopping deals?  
Find them fast with Yahoo! Search.  http://tools.search.yahoo.com/newsearch/category.php?category=shopping




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?860839.34422.qm>