URL
https://opencores.org/ocsvn/test_project/test_project/trunk
Subversion Repositories test_project
Compare Revisions
- This comparison shows the changes necessary to convert path
/test_project
- from Rev 75 to Rev 76
- ↔ Reverse comparison
Rev 75 → Rev 76
/trunk/linux_sd_driver/drivers/mmc/host/mmc_ocores.c
58,6 → 58,7
unsigned int normal_int_status; |
unsigned int error_int_status; |
} registers; |
int clock; |
}; |
|
struct ocores_host *oc_host; |
130,19 → 131,7
printk(KERN_ALERT "%s: cmd_command = %08x\n", __FUNCTION__, cmd_command); |
oc_host=host; |
|
//XXX:Remove after uppdated bitfil with Timeout |
/*if (cmd->opcode == 8 || cmd->opcode == 5 ) |
{ |
host->mrq->cmd->error = -ETIMEDOUT; |
mmc_request_done(host->mmc, host->mrq); |
} |
else |
{ |
CMD_IRQ_ON (host,(ECC|EEI)); |
writel(cmd_command, host->base + SD_COMMAND); |
wmb(); |
writel(cmd_arg, host->base + SD_ARG); |
}*/ |
|
CMD_IRQ_ON (host,(ECC|EEI)); |
writel(cmd_command, host->base + SD_COMMAND); |
wmb(); |
201,7 → 190,7
struct ocores_host *host = mmc_priv(mmc); |
int clk_div, cmd_timeout; |
/* struct ocores_host *host = mmc_priv(mmc); */ |
|
|
printk(KERN_ALERT "%s: clock = 0x%08x\n", __FUNCTION__, ios->clock); |
printk(KERN_ALERT "%s: vdd = 0x%04x\n", __FUNCTION__, ios->vdd); |
printk(KERN_ALERT "%s: bus_mode = 0x%02x\n", __FUNCTION__, ios->bus_mode); |
214,8 → 203,9
if (ios->clock == 0) { |
//ocores_mci_write (host, SD_SOFTWARE_RST, SD_DISABLE); |
} |
else |
{ |
else if (ios->clock != host->clock) |
{ |
host->clock = ios->clock; |
writel(SD_DISABLE, host->base + SD_SOFTWARE_RST); |
clk_div = ((SYS_CLK / ios->clock)-2 )/ 2; |
cmd_timeout = ((SYS_CLK/ios->clock) * 512); |
229,7 → 219,7
|
writel(SD_ENABLE, host->base + SD_SOFTWARE_RST); |
} |
|
|
} |
|
|
275,7 → 265,8
struct ocores_host *host = NULL; |
struct resource *r; |
int ret; |
|
|
|
printk(KERN_ALERT "%s: enter\n", __FUNCTION__); |
|
r = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
309,6 → 300,10
mmc->max_phys_segs = mmc->max_hw_segs; |
|
host = mmc_priv(mmc); |
|
/*XXX: */ |
host->clock = 0; |
|
host->mmc = mmc; |
host->cmdat = 0; |
host->registers.normal_int_status =0; |
397,6 → 392,8
host->mrq->cmd->error = -EILSEQ; |
break; |
} |
|
mmc_request_done(host->mmc, host->mrq); |
} |
else |
{ |
404,13 → 401,12
{ |
printk(KERN_ALERT "Long Response, Word Cnt %d, RESP * = %08x\n ",host->word_cnt,readl(host->base + SD_RESP1)); |
|
if (host->mrq->cmd->opcode == 2){ |
host->mrq->cmd->resp[3] = readl(host->base + SD_RESP1); |
host->mrq->cmd->resp[2] = 0xaaaaaaaa; |
host->mrq->cmd->resp[1] = 0xbbbbbbbb; |
host->mrq->cmd->resp[0] = 0; |
mmc_request_done(host->mmc, host->mrq); |
|
if (host->mrq->cmd->opcode == 2) { |
host->mrq->cmd->resp[3] = readl(host->base + SD_RESP1); |
host->mrq->cmd->resp[2] = 0xaaaaaaaa; |
host->mrq->cmd->resp[1] = 0xbbbbbbbb; |
host->mrq->cmd->resp[0] = 0; |
mmc_request_done(host->mmc, host->mrq); |
} |
else { |
host->word_cnt+=1; |