bttv.c broken in 2.3.10 and VM questions.

Tomasz Motylewski (motyl@stan.chemie.unibas.ch)
Sat, 10 Jul 1999 21:55:42 +0200 (MET DST)


On Thu, 8 Jul 1999, Alan Cox wrote:

> Make sure you pick up the changes from the latest bttv driver (eg in 2.3.10pre5)
> DaveM cleaned the code up and change the technique used so it also works on
> the ultrasparc

Hmm, "also" ....

I have tried, but unfortunately it does not work under Intel architecture as
a module (init_mm used by pgd_offset_k not exported). This is easy to fix in
2.3 (export init_mm), but for me more important is 2.0-2.3 portability, so I
will stick to the older version.

Could someone explain me why in 2.3.10 include/asm-i386/page.h ?:

#define __pa(x) ((unsigned long)(x)-PAGE_OFFSET)
#define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))

while in include/asm-i386/io.h

#define __io_virt(x) ((void *)(PAGE_OFFSET | (unsigned long)(x)))
#define __io_phys(x) ((unsigned long)(x) & ~PAGE_OFFSET)

(used by phys_to_virt and virt_to_phys). Why __io_virt is not just defined as
__va ? I find all that different names and implementations for same thing
highly confusing. IO-mapping.txt mentiones only the phys_to_virt and
virt_to_phys. What for are the other macros?

Regards,

--
Tomek Motylewski

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/