[lkml]   [2001]   [Jan]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [preview] VIA IDE driver v3.11 with vt82c686b UDMA100 support

The macro is defined as (in your symbols):


The same macro is used both in 2.1e (2.4.0 driver) and in 3.11
(686b-capable driver). If you minimize the parentheses, you'll get:

E = (t-1)/T + 1

Which gives the correct answer. We need E*T >= t.


On Wed, Jan 17, 2001 at 02:38:00PM -0000, Chandler, Alan wrote:
> On Wed Jan 10 2001 - 06:45:24 EST Vojtech Pavlik <> wrote
> >For all of you who had problems getting the VIA IDE driver to work
> >correctly on the 686b, here is a driver that should work with those
> >chips, even in UDMA 100 mode. I've not tested it, because I don't have
> >the 686b myself. So it may eat your filesystem as well.
> Although not subscribed to the list (so please cc any comments to me at
> , I have been tracking the various comments
> with errors on VIA IDE drivers under 2.4.0 as I have been experiencing them
> myself.
> I have been reading the code in vt82cxxx.c in the ide directory of the linux
> source
> to try and understand what was happening. One thing in the code has been
> bugging me as
> not right, and although the code attatched to the above message from Vojtech
> seems to
> sidestep the problem the underlying issue seems still to be there.
> [Apologies I am
> on a business trip to the US so I cannot access it directly]
> within the original code in 2.4.0 there is a table of timings for the
> various transfer modes
> (I assume they are in 10**-9 secs) - lets call any particular value t.
> There is then a piece of code that creates T = 1000/pci_bus_speed which I
> assume is the time
> of a bus-cycle in 10**-9 secs.
> There seems a calculation t/T to calculate the number of bus clocks needed
> to meet the
> timings above which will get loaded into the ide controller. There appears
> to be a
> macro called ENOUGH to do this and I am assuming it is called "ENOUGH"
> because it tries to
> be a little generous so that the timing is not tight.
> The calculation this macro does is (t-1)/(T+1) - AND THIS IS THE CRUX OF MY
> POINT but this
> seems to me to give a number TOO SMALL, not too large (as desired).
> I would like to change this (maybe to (t+1)/(T-1) to see if it fixes the
> problem but
> a) I am not at home with access to a machine, and
> b) If I am totally mistaken about this I might hose my disks
> It seemed more appropriate to seek the indulgence of this list to get
> another opinions
> as to whether I have misunderstood what the code is trying to do before
> taking this step.
> I can be reached on until approx 4:00pm EST 17th Jan or
> from Sat afternoon (UK time).
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to
> Please read the FAQ at

Vojtech Pavlik
SuSE Labs
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:24    [W:0.039 / U:13.644 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site