mmc: sdhci: add support for configurable request size
Some platform drivers support more than 128 adma descriptors and allows more than 512KB maximum request size per transfer. Add a callback to get maximum supported adma descriptors from platform driver instead of limiting host capabilities to 128 descriptors. Change-Id: I0ac0ffbd0e792a76931e21b321b39c35195ac8d6 Signed-off-by: Asutosh Das <asutoshd@codeaurora.org> [subhashj@codeaurora.org: fixed minor merge conflict] Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
This commit is contained in:
parent
6d26067be7
commit
a45d072d68
2 changed files with 6 additions and 1 deletions
|
@ -819,7 +819,7 @@ static void sdhci_prepare_data(struct sdhci_host *host, struct mmc_command *cmd)
|
|||
return;
|
||||
|
||||
/* Sanity checks */
|
||||
BUG_ON(data->blksz * data->blocks > 524288);
|
||||
BUG_ON(data->blksz * data->blocks > host->mmc->max_req_size);
|
||||
BUG_ON(data->blksz > host->mmc->max_blk_size);
|
||||
BUG_ON(data->blocks > 65535);
|
||||
|
||||
|
|
|
@ -550,6 +550,10 @@ struct sdhci_host {
|
|||
size_t adma_table_sz; /* ADMA descriptor table size */
|
||||
size_t align_buffer_sz; /* Bounce buffer size */
|
||||
|
||||
unsigned int adma_desc_sz; /* ADMA descriptor table size */
|
||||
unsigned int align_buf_sz; /* Bounce buffer size */
|
||||
unsigned int adma_max_desc; /* Max ADMA descriptos (max sg segments) */
|
||||
|
||||
dma_addr_t adma_addr; /* Mapped ADMA descr. table */
|
||||
dma_addr_t align_addr; /* Mapped bounce buffer */
|
||||
|
||||
|
@ -624,6 +628,7 @@ struct sdhci_ops {
|
|||
void (*set_uhs_signaling)(struct sdhci_host *host, unsigned int uhs);
|
||||
void (*hw_reset)(struct sdhci_host *host);
|
||||
void (*adma_workaround)(struct sdhci_host *host, u32 intmask);
|
||||
unsigned int (*get_max_segments)(void);
|
||||
void (*platform_init)(struct sdhci_host *host);
|
||||
#define REQ_BUS_OFF (1 << 0)
|
||||
#define REQ_BUS_ON (1 << 1)
|
||||
|
|
Loading…
Add table
Reference in a new issue