#include <linux/ioport.h>
#include <linux/device.h>
#include <linux/interrupt.h>
-#include <linux/blkdev.h>
#include <linux/delay.h>
#include <linux/err.h>
+#include <linux/highmem.h>
#include <linux/mmc/host.h>
#include <linux/mmc/protocol.h>
#include <asm/io.h>
#include <asm/irq.h>
+#include <asm/scatterlist.h>
#include <asm/hardware/amba.h>
#include <asm/hardware/clock.h>
#include <asm/mach/mmc.h>
static void mmci_start_data(struct mmci_host *host, struct mmc_data *data)
{
unsigned int datactrl, timeout, irqmask;
- void *base;
+ void __iomem *base;
DBG(host, "blksz %04x blks %04x flags %08x\n",
1 << data->blksz_bits, data->blocks, data->flags);
static void
mmci_start_command(struct mmci_host *host, struct mmc_command *cmd, u32 c)
{
- void *base = host->base;
+ void __iomem *base = host->base;
DBG(host, "op %02x arg %08x flags %08x\n",
cmd->opcode, cmd->arg, cmd->flags);
mmci_cmd_irq(struct mmci_host *host, struct mmc_command *cmd,
unsigned int status)
{
- void *base = host->base;
+ void __iomem *base = host->base;
host->cmd = NULL;
static int mmci_pio_read(struct mmci_host *host, char *buffer, unsigned int remain)
{
- void *base = host->base;
+ void __iomem *base = host->base;
char *ptr = buffer;
u32 status;
static int mmci_pio_write(struct mmci_host *host, char *buffer, unsigned int remain, u32 status)
{
- void *base = host->base;
+ void __iomem *base = host->base;
char *ptr = buffer;
do {
static irqreturn_t mmci_pio_irq(int irq, void *dev_id, struct pt_regs *regs)
{
struct mmci_host *host = dev_id;
- void *base = host->base;
+ void __iomem *base = host->base;
u32 status;
status = readl(base + MMCISTATUS);
* We can do SGIO
*/
mmc->max_hw_segs = 16;
- mmc->max_phys_segs = 16;
+ mmc->max_phys_segs = NR_SG;
/*
* Since we only have a 16-bit data length register, we must