/* Read 1 byte from the MMC. Optimised version for 1 byte, avoid using memory...  */
static u_char mmc_in(u_long base, u_short o)
/* Read 1 byte from the MMC. Optimised version for 1 byte, avoid using memory...  */
static u_char mmc_in(u_long base, u_short o)
{
  int count = 0;
  while((count++ < 100) && (inb(HASR(base)) & HASR_MMI_BUSY))
    udelay(10);
  outb(o << 1, MMR(base));
  outb(0, MMD(base));
  while((count++ < 100) && (inb(HASR(base)) & HASR_MMI_BUSY))
    udelay(10);
  return (u_char) (inb(MMD(base)));
}