/* Read a byte from the MMC. Optimised version for 1 byte, avoid using memory.  */
static u8 mmc_in(unsigned long ioaddr, u16 o)
/* Read a byte from the MMC. Optimised version for 1 byte, avoid using memory.  */
static u8 mmc_in(unsigned long ioaddr, u16 o)
{
	int count = 0;
	while ((count++ < 100) && (inw(HASR(ioaddr)) & HASR_MMC_BUSY))
		udelay(10);
	outw(o << 1, MMCR(ioaddr));
	while ((count++ < 100) && (inw(HASR(ioaddr)) & HASR_MMC_BUSY))
		udelay(10);
	return (u8) (inw(MMCR(ioaddr)) >> 8);
}