Re: RFC: outb 0x80 in inb_p, outb_p harmful on some modern AMD64 with MCP51 laptops

David Newall
2007-12-11T12:08:51Z

Rene Herman wrote:
> On 11-12-07 08:40, Paul Rolland wrote:
>
>> Well, if the delay is so much unspecified, what about _reading_ port
>> 0x80 ?
>> Will the delay be shorter ?
>
> The delay is completely and fully specified in terms of the ISA/LPC clock

That would be the delay on the i386 (sic) architecture. In general,
though, the delay is:

"Some devices require that accesses to their ports are slowed down.
This functionality is provided by appending a _p to the end of the
function."
-- Documentation/DocBook/deviceiobook.tmpl

(I've not seen any other formal definition.)

Most architectures (Alpha, Arm, Arm2, Blackfin, FRV, h8300, IA64,
PA-RISC, PowerPC, Sparc, Sparc64, V850 and Xtensa) do no pause. M68k
does no pause except in one configuration, when it's the same as i386.
On m32r it's a push and a pop. On SuperH it's similar to i386, only
using 16-bit input. X86-64 is the same as i386!

Thinking that _p gives a pause is perhaps too PC-centric. Why, if a
delay is needed, wouldn't you use a real delay; one that says how long
it should be?