Skip to content

Commit

Permalink
mmc: dw_mmc: add quirk to indicate missing write protect line
Browse files Browse the repository at this point in the history
If the write protect pad of the controller is not connected to the write
protect pin of the slot, the driver should be notified of this condition
so that incorrect check for write protection by reading the WRTORT
register can avoided. The get_ro platform callback can be used for in
such cases, but with device tree support enabled, such platform callbacks
cannot be supported.

Add a new quirk for notifying the driver about the missing write protect
line so the driver can assume that the card write protection is disabled.

Signed-off-by: Thomas Abraham <[email protected]>
Acked-by: Will Newton <[email protected]>
Signed-off-by: Chris Ball <[email protected]>
  • Loading branch information
Thomas Abraham authored and cjb committed Oct 3, 2012
1 parent f90a061 commit b4967aa
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 2 deletions.
4 changes: 3 additions & 1 deletion drivers/mmc/host/dw_mmc.c
Original file line number Diff line number Diff line change
Expand Up @@ -830,7 +830,9 @@ static int dw_mci_get_ro(struct mmc_host *mmc)
struct dw_mci_board *brd = slot->host->pdata;

/* Use platform get_ro function, else try on board write protect */
if (brd->get_ro)
if (brd->quirks & DW_MCI_QUIRK_NO_WRITE_PROTECT)
read_only = 0;
else if (brd->get_ro)
read_only = brd->get_ro(slot->id);
else
read_only =
Expand Down
3 changes: 2 additions & 1 deletion include/linux/mmc/dw_mmc.h
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,8 @@ struct dw_mci_dma_ops {
#define DW_MCI_QUIRK_HIGHSPEED BIT(2)
/* Unreliable card detection */
#define DW_MCI_QUIRK_BROKEN_CARD_DETECTION BIT(3)

/* Write Protect detection not available */
#define DW_MCI_QUIRK_NO_WRITE_PROTECT BIT(4)

struct dma_pdata;

Expand Down

0 comments on commit b4967aa

Please sign in to comment.