The of_device_id match data is now marked as const and must not be modified. This changes the dw_mmc to mark all pointers passing the dw_mci_drv_data or dw_mci_dma_ops structures as const, and also marks the static definitions as const. drivers/mmc/host/dw_mmc-exynos.c: In function 'dw_mci_exynos_probe': drivers/mmc/host/dw_mmc-exynos.c:234:11: warning: assignment discards 'const' qualifier from pointer target type [enabled by default]
Unified · Split
| @@ -208,7 +208,7 @@ static unsigned long exynos5250_dwmmc_caps[4] = { · 207 unmodified lines | ||
| 208 | 208 | MMC_CAP_CMD23, |
| 209 | 209 | }; |
| 210 | 210 | |
| 211 | −static struct dw_mci_drv_data exynos5250_drv_data = { | |
| 211 | +static const struct dw_mci_drv_data exynos5250_drv_data = { | |
| 212 | 212 | .caps = exynos5250_dwmmc_caps, |
| 213 | 213 | .init = dw_mci_exynos_priv_init, |
| 214 | 214 | .setup_clock = dw_mci_exynos_setup_clock, |
| @@ -220,14 +220,14 @@ static struct dw_mci_drv_data exynos5250_drv_data = { · 5 unmodified lines | ||
| 220 | 220 | |
| 221 | 221 | static const struct of_device_id dw_mci_exynos_match[] = { |
| 222 | 222 | { .compatible = "samsung,exynos5250-dw-mshc", |
| 223 | − .data = (void *)&exynos5250_drv_data, }, | |
| 223 | + .data = &exynos5250_drv_data, }, | |
| 224 | 224 | {}, |
| 225 | 225 | }; |
| 226 | 226 | MODULE_DEVICE_TABLE(of, dw_mci_exynos_match); |
| 227 | 227 | |
| 228 | 228 | int dw_mci_exynos_probe(struct platform_device *pdev) |
| 229 | 229 | { |
| 230 | − struct dw_mci_drv_data *drv_data; | |
| 230 | + const struct dw_mci_drv_data *drv_data; | |
| 231 | 231 | const struct of_device_id *match; |
| 232 | 232 | |
| 233 | 233 | match = of_match_node(dw_mci_exynos_match, pdev->dev.of_node); |
| @@ -24,7 +24,7 @@ · 23 unmodified lines | ||
| 24 | 24 | #include "dw_mmc.h" |
| 25 | 25 | |
| 26 | 26 | int dw_mci_pltfm_register(struct platform_device *pdev, |
| 27 | − struct dw_mci_drv_data *drv_data) | |
| 27 | + const struct dw_mci_drv_data *drv_data) | |
| 28 | 28 | { |
| 29 | 29 | struct dw_mci *host; |
| 30 | 30 | struct resource *regs; |
| @@ -13,7 +13,7 @@ · 12 unmodified lines | ||
| 13 | 13 | #define _DW_MMC_PLTFM_H_ |
| 14 | 14 | |
| 15 | 15 | extern int dw_mci_pltfm_register(struct platform_device *pdev, |
| 16 | − struct dw_mci_drv_data *drv_data); | |
| 16 | + const struct dw_mci_drv_data *drv_data); | |
| 17 | 17 | extern int __devexit dw_mci_pltfm_remove(struct platform_device *pdev); |
| 18 | 18 | extern const struct dev_pm_ops dw_mci_pltfm_pmops; |
| 19 | 19 | |
| @@ -435,7 +435,7 @@ static int dw_mci_idmac_init(struct dw_mci *host) · 434 unmodified lines | ||
| 435 | 435 | return 0; |
| 436 | 436 | } |
| 437 | 437 | |
| 438 | −static struct dw_mci_dma_ops dw_mci_idmac_ops = { | |
| 438 | +static const struct dw_mci_dma_ops dw_mci_idmac_ops = { | |
| 439 | 439 | .init = dw_mci_idmac_init, |
| 440 | 440 | .start = dw_mci_idmac_start_dma, |
| 441 | 441 | .stop = dw_mci_idmac_stop_dma, |
| @@ -137,7 +137,7 @@ struct dw_mci { · 136 unmodified lines | ||
| 137 | 137 | |
| 138 | 138 | dma_addr_t sg_dma; |
| 139 | 139 | void *sg_cpu; |
| 140 | − struct dw_mci_dma_ops *dma_ops; | |
| 140 | + const struct dw_mci_dma_ops *dma_ops; | |
| 141 | 141 | #ifdef CONFIG_MMC_DW_IDMAC |
| 142 | 142 | unsigned int ring_size; |
| 143 | 143 | #else |
| @@ -162,7 +162,7 @@ struct dw_mci { · 18 unmodified lines | ||
| 162 | 162 | u16 data_offset; |
| 163 | 163 | struct device *dev; |
| 164 | 164 | struct dw_mci_board *pdata; |
| 165 | − struct dw_mci_drv_data *drv_data; | |
| 165 | + const struct dw_mci_drv_data *drv_data; | |
| 166 | 166 | void *priv; |
| 167 | 167 | struct clk *biu_clk; |
| 168 | 168 | struct clk *ciu_clk; |