RE: [PATCH #upstream-fixes] sata_via: magic vt6421 fix for transmission problems w/ WD drives

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sorry for the delay to respond.

-----Original Message-----
From: Jeff Garzik [mailto:jgpobox@xxxxxxxxx] On Behalf Of Jeff Garzik

>    https://bugzilla.kernel.org/show_bug.cgi?id=15173
>
> Joseph Chan provided the following fix.  I don't have any idea what it 
> does but I can verify the issue is gone with the patch applied.

After analysis, we found when host issued HOLD, device still send some extra DW data before it issues HOLDA. According SPEC, device can send data out up to 20DW.
If the host issue HOLD and then the FIFO is full, host will issue R_ERR for device to notice data can't be received. For some device, it will enter 3G/1.5G protocol hand-shake from 3G protocol. 
According our FIFO default value for two WDC HDDs, it will encounter many time FIFO full case during DMA Read because these two WDC devices will issues 20DW *2 =40DW and the host will be trigged to issue R_ERR to device if the Host side computer consumes data lower than the coming DMA read data from device.

Rx52[2] is the Internal 128DW FIFO Flow control water-mark adjusting mechanism enable bit of VT6421 and the default value is 0 to mean host will issue HOLD to device when the leaved FIFO size is always set as 32DW. So, we set the Rx52[2] to 1 to enable FIFO water-mark adjusting mechanism and then adjust our leaved FIFO size from 32 DW to 64 DW (128*1/2) through RX43 FIFO water-mark FIFO size control registers.


��.n��������+%������w��{.n�����{��'^�)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥



[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux