2009-01-19 20:24:43

by Pavel Machek

[permalink] [raw]
Subject: 2.6.29-rc2: thinkpad dock -- cdrom vs. s2ram

Hi!

In 2.6.29 (and probably earlier) kernels, booting in docking station
results in undocked s2ram failing.

Problem seems to be that hda (cdrom in dock) is not deregistered
during undock, and that hda driver loops spitting error messages at
'too-fast-to-read' rate when suspend with missing hda is attempted.

Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html


2009-01-19 20:51:36

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: 2.6.29-rc2: thinkpad dock -- cdrom vs. s2ram

On Monday 19 January 2009, Pavel Machek wrote:
> Hi!
>
> In 2.6.29 (and probably earlier) kernels, booting in docking station
> results in undocked s2ram failing.
>
> Problem seems to be that hda (cdrom in dock) is not deregistered
> during undock, and that hda driver loops spitting error messages at
> 'too-fast-to-read' rate when suspend with missing hda is attempted.

What driver do you mean exactly? Old-IDE I would guess.

Does this also happen with a PATA/libata driver?

Rafael

2009-01-19 21:42:20

by Pavel Machek

[permalink] [raw]
Subject: Re: 2.6.29-rc2: thinkpad dock -- cdrom vs. s2ram

On Mon 2009-01-19 21:50:58, Rafael J. Wysocki wrote:
> On Monday 19 January 2009, Pavel Machek wrote:
> > Hi!
> >
> > In 2.6.29 (and probably earlier) kernels, booting in docking station
> > results in undocked s2ram failing.
> >
> > Problem seems to be that hda (cdrom in dock) is not deregistered
> > during undock, and that hda driver loops spitting error messages at
> > 'too-fast-to-read' rate when suspend with missing hda is attempted.
>
> What driver do you mean exactly? Old-IDE I would guess.

piix. hda, so I guess it is old-ide:

piix 0000:00:1f.1: IDE controller (0x8086:0x27df rev 0x02)
pci 0000:00:1f.1: PCI INT C -> GSI 16 (level, low) -> IRQ 16
piix 0000:00:1f.1: IDE port disabled
piix 0000:00:1f.1: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0x1810-0x1817
Probing IDE interface ide0...
hda: UJDA765 DVD/CDRW, ATAPI CD/DVD-ROM drive
hda: host max PIO4 wanted PIO255(auto-tune) selected PIO4
hda: UDMA/33 mode selected
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide_generic: please use "probe_mask=0x3f" module parameter for probing
all legacy ISA IDE ports
ide-gd driver 1.18
ide-cd driver 5.00
ide-cd: hda: ATAPI 24X DVD-ROM CD-R/RW drive, 2048kB Cache
Uniform CD-ROM driver Revision: 3.20

If I try to access cdrom after undocking, I get:

hda: status error: status=0x20 { DeviceFault }
ide: failed opcode was: unknown
hda: Strange, packet command initiated yet DRQ isn't asserted
hda: status error: status=0x20 { DeviceFault }
ide: failed opcode was: unknown
hda: Strange, packet command initiated yet DRQ isn't asserted
hda: status error: status=0x58 { DriveReady SeekComplete DataRequest }
ide: failed opcode was: unknown
hda: drive not ready for command
hda: status error: status=0x20 { DeviceFault }
ide: failed opcode was: unknown
hda: Strange, packet command initiated yet DRQ isn't asserted
ide-cd: hda: weird block size 0
ide-cd: hda: default to 2kb block size
hda: status error: status=0x20 { DeviceFault }
ide: failed opcode was: unknown
hda: Strange, packet command initiated yet DRQ isn't asserted
hda: status error: status=0x20 { DeviceFault }
ide: failed opcode was: unknown
hda: Strange, packet command initiated yet DRQ isn't asserted
hda: status error: status=0x20 { DeviceFault }
ide: failed opcode was: unknown
hda: Strange, packet command initiated yet DRQ isn't asserted
hda: status error: status=0x20 { DeviceFault }
ide: failed opcode was: unknown
hda: Strange, packet command initiated yet DRQ isn't asserted
hda: status error: status=0x20 { DeviceFault }
ide: failed opcode was: unknown
hda: Strange, packet command initiated yet DRQ isn't asserted
hda: status error: status=0x20 { DeviceFault }
ide: failed opcode was: unknown
hda: Strange, packet command initiated yet DRQ isn't asserted
hda: status error: status=0x20 { DeviceFault }
ide: failed opcode was: unknown
hda: Strange, packet command initiated yet DRQ isn't asserted

...something similar scrolls when it hangs during s2ram, but it is too
fast to read.

> Does this also happen with a PATA/libata driver?

Will try...
Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2009-01-19 22:13:24

by Pavel Machek

[permalink] [raw]
Subject: Re: 2.6.29-rc2: thinkpad dock -- cdrom vs. s2ram

On Mon 2009-01-19 21:50:58, Rafael J. Wysocki wrote:
> On Monday 19 January 2009, Pavel Machek wrote:
> > Hi!
> >
> > In 2.6.29 (and probably earlier) kernels, booting in docking station
> > results in undocked s2ram failing.
> >
> > Problem seems to be that hda (cdrom in dock) is not deregistered
> > during undock, and that hda driver loops spitting error messages at
> > 'too-fast-to-read' rate when suspend with missing hda is attempted.
>
> What driver do you mean exactly? Old-IDE I would guess.
>
> Does this also happen with a PATA/libata driver?

I guess I'm confused. I tried:

--- config.ok 2009-01-19 11:40:42.000000000 +0100
+++ ../b-linux/.config 2009-01-19 22:45:03.000000000 +0100
@@ -1022,7 +1022,7 @@
# CONFIG_SATA_SIL24 is not set
CONFIG_ATA_SFF=y
CONFIG_SATA_SVW=y
-CONFIG_ATA_PIIX=y
+# CONFIG_ATA_PIIX is not set
# CONFIG_SATA_MV is not set
# CONFIG_SATA_NV is not set
# CONFIG_PDC_ADMA is not set
@@ -1058,8 +1058,8 @@
# CONFIG_PATA_JMICRON is not set
# CONFIG_PATA_TRIFLEX is not set
# CONFIG_PATA_MARVELL is not set
-# CONFIG_PATA_MPIIX is not set
-# CONFIG_PATA_OLDPIIX is not set
+CONFIG_PATA_MPIIX=y
+CONFIG_PATA_OLDPIIX=y
# CONFIG_PATA_NETCELL is not set
# CONFIG_PATA_NINJA32 is not set
# CONFIG_PATA_NS87410 is not set

...but cdrom is still detected as hda.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2009-01-19 23:36:59

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: 2.6.29-rc2: thinkpad dock -- cdrom vs. s2ram

On Monday 19 January 2009, Pavel Machek wrote:
> On Mon 2009-01-19 21:50:58, Rafael J. Wysocki wrote:
> > On Monday 19 January 2009, Pavel Machek wrote:
> > > Hi!
> > >
> > > In 2.6.29 (and probably earlier) kernels, booting in docking station
> > > results in undocked s2ram failing.
> > >
> > > Problem seems to be that hda (cdrom in dock) is not deregistered
> > > during undock, and that hda driver loops spitting error messages at
> > > 'too-fast-to-read' rate when suspend with missing hda is attempted.
> >
> > What driver do you mean exactly? Old-IDE I would guess.
> >
> > Does this also happen with a PATA/libata driver?
>
> I guess I'm confused. I tried:
>
> --- config.ok 2009-01-19 11:40:42.000000000 +0100
> +++ ../b-linux/.config 2009-01-19 22:45:03.000000000 +0100
> @@ -1022,7 +1022,7 @@
> # CONFIG_SATA_SIL24 is not set
> CONFIG_ATA_SFF=y
> CONFIG_SATA_SVW=y
> -CONFIG_ATA_PIIX=y
> +# CONFIG_ATA_PIIX is not set
> # CONFIG_SATA_MV is not set
> # CONFIG_SATA_NV is not set
> # CONFIG_PDC_ADMA is not set
> @@ -1058,8 +1058,8 @@
> # CONFIG_PATA_JMICRON is not set
> # CONFIG_PATA_TRIFLEX is not set
> # CONFIG_PATA_MARVELL is not set
> -# CONFIG_PATA_MPIIX is not set
> -# CONFIG_PATA_OLDPIIX is not set
> +CONFIG_PATA_MPIIX=y
> +CONFIG_PATA_OLDPIIX=y
> # CONFIG_PATA_NETCELL is not set
> # CONFIG_PATA_NINJA32 is not set
> # CONFIG_PATA_NS87410 is not set
>
> ...but cdrom is still detected as hda.

Er, CONFIG_ATA_PIIX is a SATA driver. I think you need to disable
CONFIG_BLK_DEV_PIIX and perhaps CONFIG_IDE_GENERIC too.

Rafael

2009-01-20 00:07:50

by Alan

[permalink] [raw]
Subject: Re: 2.6.29-rc2: thinkpad dock -- cdrom vs. s2ram

> I guess I'm confused. I tried:

You want CONFIG_IDE = n, CONFIG_ATA_SFF = y, CONFIG_ATA_PIIX = y

Alan

2009-01-20 09:45:14

by Sergei Shtylyov

[permalink] [raw]
Subject: Re: 2.6.29-rc2: thinkpad dock -- cdrom vs. s2ram

Hello.

Rafael J. Wysocki wrote:

>>>> In 2.6.29 (and probably earlier) kernels, booting in docking station
>>>> results in undocked s2ram failing.
>>>>
>>>> Problem seems to be that hda (cdrom in dock) is not deregistered
>>>> during undock, and that hda driver loops spitting error messages at
>>>> 'too-fast-to-read' rate when suspend with missing hda is attempted.
>>>>
>>> What driver do you mean exactly? Old-IDE I would guess.
>>>
>>> Does this also happen with a PATA/libata driver?
>>>
>> I guess I'm confused. I tried:
>>
>> --- config.ok 2009-01-19 11:40:42.000000000 +0100
>> +++ ../b-linux/.config 2009-01-19 22:45:03.000000000 +0100
>> @@ -1022,7 +1022,7 @@
>> # CONFIG_SATA_SIL24 is not set
>> CONFIG_ATA_SFF=y
>> CONFIG_SATA_SVW=y
>> -CONFIG_ATA_PIIX=y
>> +# CONFIG_ATA_PIIX is not set
>> # CONFIG_SATA_MV is not set
>> # CONFIG_SATA_NV is not set
>> # CONFIG_PDC_ADMA is not set
>> @@ -1058,8 +1058,8 @@
>> # CONFIG_PATA_JMICRON is not set
>> # CONFIG_PATA_TRIFLEX is not set
>> # CONFIG_PATA_MARVELL is not set
>> -# CONFIG_PATA_MPIIX is not set
>> -# CONFIG_PATA_OLDPIIX is not set
>> +CONFIG_PATA_MPIIX=y
>> +CONFIG_PATA_OLDPIIX=y
>> # CONFIG_PATA_NETCELL is not set
>> # CONFIG_PATA_NINJA32 is not set
>> # CONFIG_PATA_NS87410 is not set
>>
>> ...but cdrom is still detected as hda.
>>
>
> Er, CONFIG_ATA_PIIX is a SATA driver.

Not really, it drives both SATA and PATA controllers.

MBR, Sergei

2009-01-20 12:45:27

by Pavel Machek

[permalink] [raw]
Subject: Re: 2.6.29-rc2: thinkpad dock -- cdrom vs. s2ram

On Tue 2009-01-20 00:03:05, Alan Cox wrote:
> > I guess I'm confused. I tried:
>
> You want CONFIG_IDE = n, CONFIG_ATA_SFF = y, CONFIG_ATA_PIIX = y

Thanks.

With those options, cdrom moved from hda to sr0, and is correctly
unregistered when undocking. Unfortunately, it is not correctly
re-registered when I insert machine back into the dock :-(... so
something is still not right in docking area.

Pavel

coda: Unexpected interruption.
Failure of coda_cnode_make for root: error -4
ata5.00: disabled
ata5.00: detaching (SCSI 4:0:0:0)
sr 4:0:0:0: rejecting I/O to dead device
sr 4:0:0:0: rejecting I/O to dead device
ACPI: \_SB_.GDCK - undocking
usb usb1: usb resume
ehci_hcd 0000:00:1d.7: resume root hub
hub 1-0:1.0: hub_resume
ehci_hcd 0000:00:1d.7: GetStatus port 6 status 001002 POWER sig=se0
CSC
hub 1-0:1.0: port 6: status 0100 change 0001
hub 1-0:1.0: state 7 ports 8 chg 0040 evt fe00
hub 1-0:1.0: port 6, status 0100, change 0000, 12 Mb/s
usb 1-6: USB disconnect, address 2
usb 1-6: unregistering device
usb 1-6: usb_disable_device nuking all URBs
usb 1-6: unregistering interface 1-6:1.0
usb 1-6:1.0: uevent
usb 1-6: uevent
hub 1-0:1.0: hub_suspend
usb usb1: bus auto-suspend
ehci_hcd 0000:00:1d.7: suspend root hub
usb usb1: usb resume
ehci_hcd 0000:00:1d.7: resume root hub
hub 1-0:1.0: hub_resume
ehci_hcd 0000:00:1d.7: GetStatus port 6 status 001803 POWER sig=j CSC
CONNECT
hub 1-0:1.0: port 6: status 0501 change 0001
hub 1-0:1.0: state 7 ports 8 chg 0040 evt fe00
hub 1-0:1.0: port 6, status 0501, change 0000, 480 Mb/s
ehci_hcd 0000:00:1d.7: port 6 high speed
ehci_hcd 0000:00:1d.7: GetStatus port 6 status 001005 POWER sig=se0 PE
CONNECT
usb 1-6: new high speed USB device using ehci_hcd and address 5
ehci_hcd 0000:00:1d.7: port 6 high speed
ehci_hcd 0000:00:1d.7: GetStatus port 6 status 001005 POWER sig=se0 PE
CONNECT
usb 1-6: New USB device found, idVendor=17ef, idProduct=1000
usb 1-6: New USB device strings: Mfr=0, Product=0, SerialNumber=0
usb 1-6: uevent
usb 1-6: usb_probe_device
usb 1-6: configuration #1 chosen from 1 choice
usb 1-6: adding 1-6:1.0 (config #1, interface 0)
usb 1-6:1.0: uevent
hub 1-6:1.0: usb_probe_interface
hub 1-6:1.0: usb_probe_interface - got id
hub 1-6:1.0: USB hub found
hub 1-6:1.0: 4 ports detected
hub 1-6:1.0: standalone hub
hub 1-6:1.0: individual port power switching
hub 1-6:1.0: individual port over-current protection
hub 1-6:1.0: TT per port
hub 1-6:1.0: TT requires at most 8 FS bit times (666 ns)
hub 1-6:1.0: power on to power good time: 100ms
hub 1-6:1.0: local power source is good
hub 1-6:1.0: enabling power on all ports
/data/l/linux/drivers/usb/core/inode.c: creating file '005'
usb 1-6: link qh256-0001/f6238080 start 255 [1/0 us]
hub 1-6:1.0: state 7 ports 4 chg 0000 evt 0000
hub 1-6:1.0: hub_suspend
usb 1-6: unlink qh256-0001/f6238080 start 255 [1/0 us]
usb 1-6: usb auto-suspend
hub 1-0:1.0: hub_suspend
usb usb1: bus auto-suspend
ehci_hcd 0000:00:1d.7: suspend root hub

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

2009-01-20 18:40:45

by Holger Macht

[permalink] [raw]
Subject: Re: 2.6.29-rc2: thinkpad dock -- cdrom vs. s2ram

Am Dienstag, den 20.01.2009, 13:47 +0100 schrieb Pavel Machek:
> On Tue 2009-01-20 00:03:05, Alan Cox wrote:
> > > I guess I'm confused. I tried:
> >
> > You want CONFIG_IDE = n, CONFIG_ATA_SFF = y, CONFIG_ATA_PIIX = y
>
> Thanks.
>
> With those options, cdrom moved from hda to sr0, and is correctly
> unregistered when undocking. Unfortunately, it is not correctly
> re-registered when I insert machine back into the dock :-(... so
> something is still not right in docking area.

Does this work when you try without the dock station, just removing and
inserting the cdrom?

Regards,
Holger

2009-01-20 20:46:43

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: 2.6.29-rc2: thinkpad dock -- cdrom vs. s2ram

On Tuesday 20 January 2009, Sergei Shtylyov wrote:
> Hello.
>
> Rafael J. Wysocki wrote:
>
> >>>> In 2.6.29 (and probably earlier) kernels, booting in docking station
> >>>> results in undocked s2ram failing.
> >>>>
> >>>> Problem seems to be that hda (cdrom in dock) is not deregistered
> >>>> during undock, and that hda driver loops spitting error messages at
> >>>> 'too-fast-to-read' rate when suspend with missing hda is attempted.
> >>>>
> >>> What driver do you mean exactly? Old-IDE I would guess.
> >>>
> >>> Does this also happen with a PATA/libata driver?
> >>>
> >> I guess I'm confused. I tried:
> >>
> >> --- config.ok 2009-01-19 11:40:42.000000000 +0100
> >> +++ ../b-linux/.config 2009-01-19 22:45:03.000000000 +0100
> >> @@ -1022,7 +1022,7 @@
> >> # CONFIG_SATA_SIL24 is not set
> >> CONFIG_ATA_SFF=y
> >> CONFIG_SATA_SVW=y
> >> -CONFIG_ATA_PIIX=y
> >> +# CONFIG_ATA_PIIX is not set
> >> # CONFIG_SATA_MV is not set
> >> # CONFIG_SATA_NV is not set
> >> # CONFIG_PDC_ADMA is not set
> >> @@ -1058,8 +1058,8 @@
> >> # CONFIG_PATA_JMICRON is not set
> >> # CONFIG_PATA_TRIFLEX is not set
> >> # CONFIG_PATA_MARVELL is not set
> >> -# CONFIG_PATA_MPIIX is not set
> >> -# CONFIG_PATA_OLDPIIX is not set
> >> +CONFIG_PATA_MPIIX=y
> >> +CONFIG_PATA_OLDPIIX=y
> >> # CONFIG_PATA_NETCELL is not set
> >> # CONFIG_PATA_NINJA32 is not set
> >> # CONFIG_PATA_NS87410 is not set
> >>
> >> ...but cdrom is still detected as hda.
> >>
> >
> > Er, CONFIG_ATA_PIIX is a SATA driver.
>
> Not really, it drives both SATA and PATA controllers.

What I wanted to say it's not old-IDE.

Thanks,
Rafael