Re: Complete support PC-9800 for 2.5.64-ac4 (11/11) SCSI

Geert Uytterhoeven (geert@linux-m68k.org)
Mon, 17 Mar 2003 11:25:51 +0100 (MET)


On 16 Mar 2003, James Bottomley wrote:
> On Sun, 2003-03-16 at 14:00, Geert Uytterhoeven wrote:
> > On 16 Mar 2003, James Bottomley wrote:
> > > On Sun, 2003-03-16 at 12:36, Geert Uytterhoeven wrote:
> > > > Actually, it was my suggestion to remove the dereference for PIO accesses. In
> > > > that case SASR contains the I/O port register.
> > >
> > > There's still something wrong with the implementation in this patch.
> > > For non PIO SASR is defined as volatile unsigned char *SASR. Its access
> > > has gone from being outb(n, *regs.SASR) to outb(n, regs.SASR). What
> > > expansion can outb have on m68k and MIPS that makes this change
> > > idempotent?
> >
> > outb() and friends are only used if CONFIG_WD33C93_PIO is set. In all other
> > cases, it uses the old implementation, e.g. `*regs.SASR = reg_num'.
>
> Ah, OK, I see what it's doing. Instead of having a single redefine of
> wd33c93_outb to be either outb or readb etc, it has a whole chunk of
> code in wd33c93.c that #ifdef's for this.
>
> Perhaps, while you're cleaning this up, you'd like to move this into the
> header? Shouldn't it also be using readb/writeb instead of just direct
> memory accesses?

No, readb() and friends are not defined on machines that don't have PCI. None
of the MMIO wd33c93 drivers are PCI.

However, it's fine for me to use in_8(addr) and out_8(addr,b) (cfr.
include/asm-m68k/raw_io.h) inside #if defined(__mc68000__) ||
defined(CONFIG_APUS).

On MIPS, it looks like you can use readb() and writeb(), since MIPS is less
picky than m68k about not defining PCI access primitives on machines without
PCI.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds

- 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/