John Sigler wrote:
quoted text >>> What do the warnings mean? :-)
quoted text >> That your drive does not support set transfer mode/speed command at
Which is perfectly valid in the original ATA spec.
quoted text >> all, or that value which kernel tried is not supported by the drive...
They just should skip programming the drive in this case, and set its
default speed to the chipset.
quoted text >> I would guess that some contractor wrote firmware for device for PQI
>> in one day for 0, and before that somebody else designed ATA-SD
>> bridge for PQI for another 0.
Hehe.
quoted text >> I guess that these two printk()s happen because drive claims to
>> support pio0,1,2 - so Linux tries pio2, drive refuses, Linux tries
Which it shuldn't do since the drive only indicates its default mode (modes
0-2 aren't included in the PIO support mask -- there's only 3 and 4 there).
quoted text >> pio1, drive refuses, and finally as pio0 is default, that one gets
>> used. Which is more or less confirmed by having no '*' sign in front
>> of any pio - with "real" drives you should see '*' in front of one of
>> listed dma/pio modes.
quoted text >> You should ask reseller how they can ship drive which does not conform
>> to any ATA standard...
Doesn't it conform to ATA? :-)
quoted text > I took drivers/ide/pci/via82cxxx.c and sprinkled ENTER/EXIT printk's.
>
http://lxr.linux.no/source/drivers/ide/pci/via82cxxx.c
quoted text > via82cxxx_tune_drive() and via82cxxx_ide_dma_check() both call
> via_set_drive() which calls ide_config_drive_speed().
quoted text >
http://lxr.linux.no/source/drivers/ide/ide-iops.c#L769
>
> if (error)
> {
> (void) ide_dump_status(drive, "set_drive_speed_status", stat);
> printk(KERN_INFO "EXIT %s error\n", __func__);
> return error;
> }
quoted text > Does someone know why error is not set to 0?
Why it *does* set to one, you wanted to ask? Because it *does* get set
after a loop above exits.
quoted text > Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
> ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
> VP_IDE: IDE controller at PCI slot 0000:00:07.1
> VP_IDE: chipset revision 6
> VP_IDE: not 100% native mode: will probe irqs later
> VP_IDE: VIA vt82c686b (rev 40) IDE UDMA100 controller on pci0000:00:07.1
> ide0: BM-DMA at 0xd000-0xd007, BIOS settings: hda:pio, hdb:pio
> ide1: BM-DMA at 0xd008-0xd00f, BIOS settings: hdc:pio, hdd:pio
> Probing IDE interface ide0...
> hda: PQI IDE DiskOnModule, ATA DISK drive
> ENTER via82cxxx_tune_drive
> ENTER via_set_drive
> ENTER ide_config_drive_speed
> hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }
> hda: set_drive_speed_status: error=0x04 { DriveStatusError }
> EXIT ide_config_drive_speed error
> ENTER via_set_speed
> EXIT via_set_speed
> EXIT via_set_drive
> EXIT via82cxxx_tune_drive pio == 255
255 is PIO auto-tuning request.
quoted text > ENTER via82cxxx_ide_dma_check
> ENTER via_set_drive
> ENTER ide_config_drive_speed
> hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }
> hda: set_drive_speed_status: error=0x04 { DriveStatusError }
MBR, Sergei
-
unsubscribe notice To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
majordomo@vger.kernel.org
More majordomo info at
http://vger.kernel.org/majordomo-info.html
Please read the FAQ at
http://www.tux.org/lkml/
Messages in current thread:
Re: hda: set_drive_speed_status: status=0x51 { DriveReady ... , Sergei Shtylyov , (Sat Sep 1, 8:48 am)