.. | .. |
---|
23 | 23 | struct clk *drive_clk; |
---|
24 | 24 | }; |
---|
25 | 25 | |
---|
| 26 | +static unsigned long dw_mci_hi3798cv200_caps[] = { |
---|
| 27 | + MMC_CAP_CMD23, |
---|
| 28 | + MMC_CAP_CMD23, |
---|
| 29 | + MMC_CAP_CMD23 |
---|
| 30 | +}; |
---|
| 31 | + |
---|
26 | 32 | static void dw_mci_hi3798cv200_set_ios(struct dw_mci *host, struct mmc_ios *ios) |
---|
27 | 33 | { |
---|
28 | 34 | struct hi3798cv200_priv *priv = host->priv; |
---|
.. | .. |
---|
60 | 66 | static int dw_mci_hi3798cv200_execute_tuning(struct dw_mci_slot *slot, |
---|
61 | 67 | u32 opcode) |
---|
62 | 68 | { |
---|
63 | | - int degrees[] = { 0, 45, 90, 135, 180, 225, 270, 315 }; |
---|
| 69 | + static const int degrees[] = { 0, 45, 90, 135, 180, 225, 270, 315 }; |
---|
64 | 70 | struct dw_mci *host = slot->host; |
---|
65 | 71 | struct hi3798cv200_priv *priv = host->priv; |
---|
66 | 72 | int raise_point = -1, fall_point = -1; |
---|
.. | .. |
---|
160 | 166 | } |
---|
161 | 167 | |
---|
162 | 168 | static const struct dw_mci_drv_data hi3798cv200_data = { |
---|
| 169 | + .caps = dw_mci_hi3798cv200_caps, |
---|
| 170 | + .num_caps = ARRAY_SIZE(dw_mci_hi3798cv200_caps), |
---|
163 | 171 | .init = dw_mci_hi3798cv200_init, |
---|
164 | 172 | .set_ios = dw_mci_hi3798cv200_set_ios, |
---|
165 | 173 | .execute_tuning = dw_mci_hi3798cv200_execute_tuning, |
---|
.. | .. |
---|
192 | 200 | .remove = dw_mci_hi3798cv200_remove, |
---|
193 | 201 | .driver = { |
---|
194 | 202 | .name = "dwmmc_hi3798cv200", |
---|
| 203 | + .probe_type = PROBE_PREFER_ASYNCHRONOUS, |
---|
195 | 204 | .of_match_table = dw_mci_hi3798cv200_match, |
---|
196 | 205 | }, |
---|
197 | 206 | }; |
---|