Patchwork ata2.00: failed to set xfermode (err_mask=0x100),ata2.00: disabled, CD-ROM drive dead

login
register
mail settings
Submitter David Milburn
Date March 25, 2010, 9:52 p.m.
Message ID <20100325215242.GA9785@localhost.localdomain>
Download mbox | patch
Permalink /patch/48596/
State Not Applicable
Delegated to: David Miller
Headers show

Comments

David Milburn - March 25, 2010, 9:52 p.m.
On Thu, Mar 25, 2010 at 04:19:16AM -0500, Stan Hoeppner wrote:
> Tejun Heo put forth on 3/24/2010 7:38 PM:
> > Hello,
> > 
> > On 03/16/2010 09:26 AM, Stan Hoeppner wrote:
> >> ata2.00: ATAPI: Pioneer CD-ROM ATAPI Model DR-A24X  0102, E1.02, max MWDMA2
> >> ata2.00: failed to set xfermode (err_mask=0x100)
> >> TCP cubic registered
> >> NET: Registered protocol family 17
> >> Using IPI Shortcut mode
> >> rtc_cmos rtc_cmos: setting system clock to 2010-03-10 20:53:54 UTC (1268254434)
> >> ata2.00: failed to set xfermode (err_mask=0x100)
> >> ata2.00: limiting speed to MWDMA2:PIO3
> >> ata2.00: failed to set xfermode (err_mask=0x100)
> > 
> > AC_ERR_OTHER on SETXFER, that's rare.  Maybe the drive needs
> > ATA_HORKAGE_NOSETXFER?  Can you please post boot log with ide driver?
> 
> Hello Tejun,
> 
> Here is the relevant dmesg output for my kernel with the PIIX IDE driver:
> 
> Linux version 2.6.32.9 (root@greer) (gcc version 4.3.2 (Debian 4.3.2-1.1) )
> #1 SMP Wed Mar 17 20:21:58 CDT 2010
> ...
> Uniform Multi-Platform E-IDE driver
> piix 0000:00:07.1: IDE controller (0x8086:0x7111 rev 0x01)
> piix 0000:00:07.1: IDE port disabled
> piix 0000:00:07.1: not 100% native mode: will probe irqs later
>     ide0: BM-DMA at 0xf008-0xf00f
> Probing IDE interface ide0...
> hda: Pioneer CD-ROM ATAPI Model DR-A24X 0102, ATAPI CD/DVD-ROM drive
> hda: host max PIO4 wanted PIO255(auto-tune) selected PIO4
> hda: MWDMA2 mode selected
> ide0 at 0x170-0x177,0x376 on irq 15
> ide-cd driver 5.00
> ide-cd: hda: ATAPI 20X CD-ROM drive, 128kB Cache
> Uniform CD-ROM driver Revision: 3.20
> 
> I must admit the CD-ROM drive is rather old, a late 90's model slot loading
> Pioneer drive, but it works fine with the PIIX IDE driver.  If it is needed
> for success under libata, where would I set ATA_HORKAGE_NOSETXFER?

Hello,

If you are going to try to skip SETXFER, I think you will need an entry in
ata_device_blacklist, something like this.

 drivers/ata/libata-core.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)






--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Stan Hoeppner - March 28, 2010, 5:48 p.m.
David Milburn put forth on 3/25/2010 4:52 PM:
> On Thu, Mar 25, 2010 at 04:19:16AM -0500, Stan Hoeppner wrote:
>> Tejun Heo put forth on 3/24/2010 7:38 PM:
>>> Hello,
>>>
>>> On 03/16/2010 09:26 AM, Stan Hoeppner wrote:
>>>> ata2.00: ATAPI: Pioneer CD-ROM ATAPI Model DR-A24X  0102, E1.02, max MWDMA2
>>>> ata2.00: failed to set xfermode (err_mask=0x100)
>>>> TCP cubic registered
>>>> NET: Registered protocol family 17
>>>> Using IPI Shortcut mode
>>>> rtc_cmos rtc_cmos: setting system clock to 2010-03-10 20:53:54 UTC (1268254434)
>>>> ata2.00: failed to set xfermode (err_mask=0x100)
>>>> ata2.00: limiting speed to MWDMA2:PIO3
>>>> ata2.00: failed to set xfermode (err_mask=0x100)
>>>
>>> AC_ERR_OTHER on SETXFER, that's rare.  Maybe the drive needs
>>> ATA_HORKAGE_NOSETXFER?  Can you please post boot log with ide driver?
>>
>> Hello Tejun,
>>
>> Here is the relevant dmesg output for my kernel with the PIIX IDE driver:
>>
>> Linux version 2.6.32.9 (root@greer) (gcc version 4.3.2 (Debian 4.3.2-1.1) )
>> #1 SMP Wed Mar 17 20:21:58 CDT 2010
>> ...
>> Uniform Multi-Platform E-IDE driver
>> piix 0000:00:07.1: IDE controller (0x8086:0x7111 rev 0x01)
>> piix 0000:00:07.1: IDE port disabled
>> piix 0000:00:07.1: not 100% native mode: will probe irqs later
>>     ide0: BM-DMA at 0xf008-0xf00f
>> Probing IDE interface ide0...
>> hda: Pioneer CD-ROM ATAPI Model DR-A24X 0102, ATAPI CD/DVD-ROM drive
>> hda: host max PIO4 wanted PIO255(auto-tune) selected PIO4
>> hda: MWDMA2 mode selected
>> ide0 at 0x170-0x177,0x376 on irq 15
>> ide-cd driver 5.00
>> ide-cd: hda: ATAPI 20X CD-ROM drive, 128kB Cache
>> Uniform CD-ROM driver Revision: 3.20
>>
>> I must admit the CD-ROM drive is rather old, a late 90's model slot loading
>> Pioneer drive, but it works fine with the PIIX IDE driver.  If it is needed
>> for success under libata, where would I set ATA_HORKAGE_NOSETXFER?
> 
> Hello,
> 
> If you are going to try to skip SETXFER, I think you will need an entry in
> ata_device_blacklist, something like this.
> 
>  drivers/ata/libata-core.c |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
> index 4a28420..8dfcf85 100644
> --- a/drivers/ata/libata-core.c
> +++ b/drivers/ata/libata-core.c
> @@ -4388,6 +4388,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
>  	 * device and controller are SATA.
>  	 */
>  	{ "PIONEER DVD-RW  DVRTD08",	"1.00",	ATA_HORKAGE_NOSETXFER },
> +	{ "Pioneer CD-ROM ATAPI Model DR-A24X  0102", "E1.02", ATA_HORKAGE_NOSETXFER },
>  
>  	/* End Marker */
>  	{ }

I tried this but it doesn't work:

ata_piix 0000:00:07.1: version 2.13
scsi0 : ata_piix
scsi1 : ata_piix
ata1: PATA max UDMA/33 cmd 0x1f0 ctl 0x3f6 bmdma 0xf000 irq 14
ata2: PATA max UDMA/33 cmd 0x170 ctl 0x376 bmdma 0xf008 irq 15
ata1: port disabled. ignoring.
...
ata2.00: ATAPI: Pioneer CD-ROM ATAPI Model DR-A24X  0102, E1.02, max MWDMA2
ata2.00: NOSETXFER but PATA detected - can't skip SETXFER, might malfunction
ata2.00: failed to set xfermode (err_mask=0x100)
...
ata2.00: NOSETXFER but PATA detected - can't skip SETXFER, might malfunction
ata2.00: failed to set xfermode (err_mask=0x100)
ata2.00: limiting speed to MWDMA2:PIO3
ata2.00: NOSETXFER but PATA detected - can't skip SETXFER, might malfunction
ata2.00: failed to set xfermode (err_mask=0x100)
ata2.00: disabled

The old IDE subsystem and piix.c combo set the xfer mode on this CD-ROM
drive just fine, and the drive works fine.  Both this IDE chip and the
CD-ROM drive are well over 10 years old, from around 1998/99 time frame.  I
would think their behavior would be well understood by now.  The libata and
ata_piix combo seem to have a problem here.  I guess that's why they are
labeled 'experimental' in menuconfig.  Let me know what else I can do to
help this along.  IIRC, the goal is to completely eliminate the old IDE
subsystem in favor of libata.  I'm guessing that can't happen until issues
such as this case are resolved.
Robert Hancock - March 28, 2010, 8:01 p.m.
On 03/28/2010 11:48 AM, Stan Hoeppner wrote:
> David Milburn put forth on 3/25/2010 4:52 PM:
>> On Thu, Mar 25, 2010 at 04:19:16AM -0500, Stan Hoeppner wrote:
>>> Tejun Heo put forth on 3/24/2010 7:38 PM:
>>>> Hello,
>>>>
>>>> On 03/16/2010 09:26 AM, Stan Hoeppner wrote:
>>>>> ata2.00: ATAPI: Pioneer CD-ROM ATAPI Model DR-A24X  0102, E1.02, max MWDMA2
>>>>> ata2.00: failed to set xfermode (err_mask=0x100)
>>>>> TCP cubic registered
>>>>> NET: Registered protocol family 17
>>>>> Using IPI Shortcut mode
>>>>> rtc_cmos rtc_cmos: setting system clock to 2010-03-10 20:53:54 UTC (1268254434)
>>>>> ata2.00: failed to set xfermode (err_mask=0x100)
>>>>> ata2.00: limiting speed to MWDMA2:PIO3
>>>>> ata2.00: failed to set xfermode (err_mask=0x100)
>>>>
>>>> AC_ERR_OTHER on SETXFER, that's rare.  Maybe the drive needs
>>>> ATA_HORKAGE_NOSETXFER?  Can you please post boot log with ide driver?
>>>
>>> Hello Tejun,
>>>
>>> Here is the relevant dmesg output for my kernel with the PIIX IDE driver:
>>>
>>> Linux version 2.6.32.9 (root@greer) (gcc version 4.3.2 (Debian 4.3.2-1.1) )
>>> #1 SMP Wed Mar 17 20:21:58 CDT 2010
>>> ...
>>> Uniform Multi-Platform E-IDE driver
>>> piix 0000:00:07.1: IDE controller (0x8086:0x7111 rev 0x01)
>>> piix 0000:00:07.1: IDE port disabled
>>> piix 0000:00:07.1: not 100% native mode: will probe irqs later
>>>      ide0: BM-DMA at 0xf008-0xf00f
>>> Probing IDE interface ide0...
>>> hda: Pioneer CD-ROM ATAPI Model DR-A24X 0102, ATAPI CD/DVD-ROM drive
>>> hda: host max PIO4 wanted PIO255(auto-tune) selected PIO4
>>> hda: MWDMA2 mode selected
>>> ide0 at 0x170-0x177,0x376 on irq 15
>>> ide-cd driver 5.00
>>> ide-cd: hda: ATAPI 20X CD-ROM drive, 128kB Cache
>>> Uniform CD-ROM driver Revision: 3.20
>>>
>>> I must admit the CD-ROM drive is rather old, a late 90's model slot loading
>>> Pioneer drive, but it works fine with the PIIX IDE driver.  If it is needed
>>> for success under libata, where would I set ATA_HORKAGE_NOSETXFER?
>>
>> Hello,
>>
>> If you are going to try to skip SETXFER, I think you will need an entry in
>> ata_device_blacklist, something like this.
>>
>>   drivers/ata/libata-core.c |    1 +
>>   1 files changed, 1 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
>> index 4a28420..8dfcf85 100644
>> --- a/drivers/ata/libata-core.c
>> +++ b/drivers/ata/libata-core.c
>> @@ -4388,6 +4388,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
>>   	 * device and controller are SATA.
>>   	 */
>>   	{ "PIONEER DVD-RW  DVRTD08",	"1.00",	ATA_HORKAGE_NOSETXFER },
>> +	{ "Pioneer CD-ROM ATAPI Model DR-A24X  0102", "E1.02", ATA_HORKAGE_NOSETXFER },
>>
>>   	/* End Marker */
>>   	{ }
>
> I tried this but it doesn't work:
>
> ata_piix 0000:00:07.1: version 2.13
> scsi0 : ata_piix
> scsi1 : ata_piix
> ata1: PATA max UDMA/33 cmd 0x1f0 ctl 0x3f6 bmdma 0xf000 irq 14
> ata2: PATA max UDMA/33 cmd 0x170 ctl 0x376 bmdma 0xf008 irq 15
> ata1: port disabled. ignoring.
> ...
> ata2.00: ATAPI: Pioneer CD-ROM ATAPI Model DR-A24X  0102, E1.02, max MWDMA2
> ata2.00: NOSETXFER but PATA detected - can't skip SETXFER, might malfunction

Yeah, NOSETXFER doesn't take effect on PATA drives. It could, but it 
would assume that the BIOS has set the right mode which seems rather 
dangerous.

Shouldn't we be getting some error handling output from the command failing?

> ata2.00: failed to set xfermode (err_mask=0x100)
> ...
> ata2.00: NOSETXFER but PATA detected - can't skip SETXFER, might malfunction
> ata2.00: failed to set xfermode (err_mask=0x100)
> ata2.00: limiting speed to MWDMA2:PIO3
> ata2.00: NOSETXFER but PATA detected - can't skip SETXFER, might malfunction
> ata2.00: failed to set xfermode (err_mask=0x100)
> ata2.00: disabled
>
> The old IDE subsystem and piix.c combo set the xfer mode on this CD-ROM
> drive just fine, and the drive works fine.  Both this IDE chip and the
> CD-ROM drive are well over 10 years old, from around 1998/99 time frame.  I
> would think their behavior would be well understood by now.  The libata and
> ata_piix combo seem to have a problem here.  I guess that's why they are
> labeled 'experimental' in menuconfig.  Let me know what else I can do to

They're not anymore, actually.

> help this along.  IIRC, the goal is to completely eliminate the old IDE
> subsystem in favor of libata.  I'm guessing that can't happen until issues
> such as this case are resolved.
>

--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 4a28420..8dfcf85 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -4388,6 +4388,7 @@  static const struct ata_blacklist_entry ata_device_blacklist [] = {
 	 * device and controller are SATA.
 	 */
 	{ "PIONEER DVD-RW  DVRTD08",	"1.00",	ATA_HORKAGE_NOSETXFER },
+	{ "Pioneer CD-ROM ATAPI Model DR-A24X  0102", "E1.02", ATA_HORKAGE_NOSETXFER },
 
 	/* End Marker */
 	{ }