Commit 17571182 authored by David Brownell's avatar David Brownell Committed by Kevin Hilman

rip out 1/4 of davinci_mmc, dm355 works better now

This shrinks the object size of davinci_mmc by about a quarter,
ripping out stuff that was issuing all kinds of commands behind
the back of the MMC core (evidently for card detect purposes).

That's stuff that needs to be ripped out before this driver can go
into mainline, obviously; good to remove it ASAP.

This has one immediate positive effect:  cards which previously could
not be enumerated on a dm355evm can now enumerate!  (After disabling
DMA, for now.)  Which in turn let me boot a rootfs from an SD card ...

There still seems to be state kept around after card removal, which
prevents a second card from enumerating after removing the first one.
Also, the MMC core failed when enumerating an MMC card; odd!

(Plus fix two broken debug messages:  voltages use a bitmask, and
newlines don't belong in the *middle* of messages.)
Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
parent a4db3e4b
This diff is collapsed.
...@@ -182,13 +182,6 @@ struct mmc_davinci_host { ...@@ -182,13 +182,6 @@ struct mmc_davinci_host {
bool use_dma; bool use_dma;
bool do_dma; bool do_dma;
struct timer_list timer;
unsigned int is_core_command:1;
unsigned int cmd_code;
unsigned int old_card_state:1;
unsigned char sd_support:1;
struct edma_ch_mmcsd edma_ch_details; struct edma_ch_mmcsd edma_ch_details;
unsigned int sg_len; unsigned int sg_len;
...@@ -198,33 +191,8 @@ struct mmc_davinci_host { ...@@ -198,33 +191,8 @@ struct mmc_davinci_host {
unsigned int option_read; unsigned int option_read;
unsigned int option_write; unsigned int option_write;
/* Indicates if card being used currently by linux core or not */
unsigned int is_card_busy:1;
/* Indicates if card probe(detection) is currently in progress */
unsigned int is_card_detect_progress:1;
/* Indicates if core is currently initializing the card or not */
unsigned int is_init_progress:1;
/* Indicate whether core request has been queued up or not because
* request has come when card detection/probe was in progress
*/
unsigned int is_req_queued_up:1;
/* data structure to queue one request */ /* data structure to queue one request */
struct mmc_request *que_mmc_request; struct mmc_request *que_mmc_request;
/* tells whether card is initialized or not */
unsigned is_card_initialized:1;
/* tells current state of card */
unsigned int new_card_state:1;
unsigned int is_card_removed:1;
/* protect against mmc_check_card */
spinlock_t lock;
}; };
struct mmcsd_config_def { struct mmcsd_config_def {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment