diff options
| author | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2012-11-15 09:29:53 -0500 |
|---|---|---|
| committer | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2012-11-20 09:58:59 -0500 |
| commit | 297eedbae1677c8276df082fb17fb1344058fed0 (patch) | |
| tree | 0bb22fd693ff21d0e8c6266e8d6bae7028dae75a | |
| parent | 1ef48a262b0d50add7d293a37b8c8bad4bec30a1 (diff) | |
dma: mv_xor: rename mv_xor_private to mv_xor_device
Now that mv_xor_device is no longer used to designate the per-channel
DMA devices, use it know to designate the XOR engine themselves
(currently composed of two XOR channels).
So, now we have the nice organization where:
- mv_xor_device represents each XOR engine in the system
- mv_xor_chan represents each XOR channel of a given XOR engine
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
| -rw-r--r-- | drivers/dma/mv_xor.c | 66 | ||||
| -rw-r--r-- | drivers/dma/mv_xor.h | 4 |
2 files changed, 35 insertions, 35 deletions
diff --git a/drivers/dma/mv_xor.c b/drivers/dma/mv_xor.c index 3b81ee1b555d..aec771917d54 100644 --- a/drivers/dma/mv_xor.c +++ b/drivers/dma/mv_xor.c | |||
| @@ -1086,7 +1086,7 @@ static int mv_xor_channel_remove(struct mv_xor_chan *mv_chan) | |||
| 1086 | } | 1086 | } |
| 1087 | 1087 | ||
| 1088 | static struct mv_xor_chan * | 1088 | static struct mv_xor_chan * |
| 1089 | mv_xor_channel_add(struct mv_xor_private *msp, | 1089 | mv_xor_channel_add(struct mv_xor_device *xordev, |
| 1090 | struct platform_device *pdev, | 1090 | struct platform_device *pdev, |
| 1091 | int hw_id, dma_cap_mask_t cap_mask, | 1091 | int hw_id, dma_cap_mask_t cap_mask, |
| 1092 | size_t pool_size, int irq) | 1092 | size_t pool_size, int irq) |
| @@ -1118,7 +1118,7 @@ mv_xor_channel_add(struct mv_xor_private *msp, | |||
| 1118 | 1118 | ||
| 1119 | /* discover transaction capabilites from the platform data */ | 1119 | /* discover transaction capabilites from the platform data */ |
| 1120 | dma_dev->cap_mask = cap_mask; | 1120 | dma_dev->cap_mask = cap_mask; |
| 1121 | mv_chan->shared = msp; | 1121 | mv_chan->shared = xordev; |
| 1122 | 1122 | ||
| 1123 | INIT_LIST_HEAD(&dma_dev->channels); | 1123 | INIT_LIST_HEAD(&dma_dev->channels); |
| 1124 | 1124 | ||
| @@ -1139,7 +1139,7 @@ mv_xor_channel_add(struct mv_xor_private *msp, | |||
| 1139 | dma_dev->device_prep_dma_xor = mv_xor_prep_dma_xor; | 1139 | dma_dev->device_prep_dma_xor = mv_xor_prep_dma_xor; |
| 1140 | } | 1140 | } |
| 1141 | 1141 | ||
| 1142 | mv_chan->mmr_base = msp->xor_base; | 1142 | mv_chan->mmr_base = xordev->xor_base; |
| 1143 | if (!mv_chan->mmr_base) { | 1143 | if (!mv_chan->mmr_base) { |
| 1144 | ret = -ENOMEM; | 1144 | ret = -ENOMEM; |
| 1145 | goto err_free_dma; | 1145 | goto err_free_dma; |
| @@ -1200,10 +1200,10 @@ mv_xor_channel_add(struct mv_xor_private *msp, | |||
| 1200 | } | 1200 | } |
| 1201 | 1201 | ||
| 1202 | static void | 1202 | static void |
| 1203 | mv_xor_conf_mbus_windows(struct mv_xor_private *msp, | 1203 | mv_xor_conf_mbus_windows(struct mv_xor_device *xordev, |
| 1204 | const struct mbus_dram_target_info *dram) | 1204 | const struct mbus_dram_target_info *dram) |
| 1205 | { | 1205 | { |
| 1206 | void __iomem *base = msp->xor_base; | 1206 | void __iomem *base = xordev->xor_base; |
| 1207 | u32 win_enable = 0; | 1207 | u32 win_enable = 0; |
| 1208 | int i; | 1208 | int i; |
| 1209 | 1209 | ||
| @@ -1233,50 +1233,50 @@ mv_xor_conf_mbus_windows(struct mv_xor_private *msp, | |||
| 1233 | static int mv_xor_probe(struct platform_device *pdev) | 1233 | static int mv_xor_probe(struct platform_device *pdev) |
| 1234 | { | 1234 | { |
| 1235 | const struct mbus_dram_target_info *dram; | 1235 | const struct mbus_dram_target_info *dram; |
| 1236 | struct mv_xor_private *msp; | 1236 | struct mv_xor_device *xordev; |
| 1237 | struct mv_xor_platform_data *pdata = pdev->dev.platform_data; | 1237 | struct mv_xor_platform_data *pdata = pdev->dev.platform_data; |
| 1238 | struct resource *res; | 1238 | struct resource *res; |
| 1239 | int i, ret; | 1239 | int i, ret; |
| 1240 | 1240 | ||
| 1241 | dev_notice(&pdev->dev, "Marvell XOR driver\n"); | 1241 | dev_notice(&pdev->dev, "Marvell XOR driver\n"); |
| 1242 | 1242 | ||
| 1243 | msp = devm_kzalloc(&pdev->dev, sizeof(*msp), GFP_KERNEL); | 1243 | xordev = devm_kzalloc(&pdev->dev, sizeof(*xordev), GFP_KERNEL); |
| 1244 | if (!msp) | 1244 | if (!xordev) |
| 1245 | return -ENOMEM; | 1245 | return -ENOMEM; |
| 1246 | 1246 | ||
| 1247 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 1247 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
| 1248 | if (!res) | 1248 | if (!res) |
| 1249 | return -ENODEV; | 1249 | return -ENODEV; |
| 1250 | 1250 | ||
| 1251 | msp->xor_base = devm_ioremap(&pdev->dev, res->start, | 1251 | xordev->xor_base = devm_ioremap(&pdev->dev, res->start, |
| 1252 | resource_size(res)); | 1252 | resource_size(res)); |
| 1253 | if (!msp->xor_base) | 1253 | if (!xordev->xor_base) |
| 1254 | return -EBUSY; | 1254 | return -EBUSY; |
| 1255 | 1255 | ||
| 1256 | res = platform_get_resource(pdev, IORESOURCE_MEM, 1); | 1256 | res = platform_get_resource(pdev, IORESOURCE_MEM, 1); |
| 1257 | if (!res) | 1257 | if (!res) |
| 1258 | return -ENODEV; | 1258 | return -ENODEV; |
| 1259 | 1259 | ||
| 1260 | msp->xor_high_base = devm_ioremap(&pdev->dev, res->start, | 1260 | xordev->xor_high_base = devm_ioremap(&pdev->dev, res->start, |
| 1261 | resource_size(res)); | 1261 | resource_size(res)); |
| 1262 | if (!msp->xor_high_base) | 1262 | if (!xordev->xor_high_base) |
| 1263 | return -EBUSY; | 1263 | return -EBUSY; |
| 1264 | 1264 | ||
| 1265 | platform_set_drvdata(pdev, msp); | 1265 | platform_set_drvdata(pdev, xordev); |
| 1266 | 1266 | ||
| 1267 | /* | 1267 | /* |
| 1268 | * (Re-)program MBUS remapping windows if we are asked to. | 1268 | * (Re-)program MBUS remapping windows if we are asked to. |
| 1269 | */ | 1269 | */ |
| 1270 | dram = mv_mbus_dram_info(); | 1270 | dram = mv_mbus_dram_info(); |
| 1271 | if (dram) | 1271 | if (dram) |
| 1272 | mv_xor_conf_mbus_windows(msp, dram); | 1272 | mv_xor_conf_mbus_windows(xordev, dram); |
| 1273 | 1273 | ||
| 1274 | /* Not all platforms can gate the clock, so it is not | 1274 | /* Not all platforms can gate the clock, so it is not |
| 1275 | * an error if the clock does not exists. | 1275 | * an error if the clock does not exists. |
| 1276 | */ | 1276 | */ |
| 1277 | msp->clk = clk_get(&pdev->dev, NULL); | 1277 | xordev->clk = clk_get(&pdev->dev, NULL); |
| 1278 | if (!IS_ERR(msp->clk)) | 1278 | if (!IS_ERR(xordev->clk)) |
| 1279 | clk_prepare_enable(msp->clk); | 1279 | clk_prepare_enable(xordev->clk); |
| 1280 | 1280 | ||
| 1281 | if (pdata && pdata->channels) { | 1281 | if (pdata && pdata->channels) { |
| 1282 | for (i = 0; i < MV_XOR_MAX_CHANNELS; i++) { | 1282 | for (i = 0; i < MV_XOR_MAX_CHANNELS; i++) { |
| @@ -1295,12 +1295,12 @@ static int mv_xor_probe(struct platform_device *pdev) | |||
| 1295 | goto err_channel_add; | 1295 | goto err_channel_add; |
| 1296 | } | 1296 | } |
| 1297 | 1297 | ||
| 1298 | msp->channels[i] = | 1298 | xordev->channels[i] = |
| 1299 | mv_xor_channel_add(msp, pdev, cd->hw_id, | 1299 | mv_xor_channel_add(xordev, pdev, cd->hw_id, |
| 1300 | cd->cap_mask, | 1300 | cd->cap_mask, |
| 1301 | cd->pool_size, irq); | 1301 | cd->pool_size, irq); |
| 1302 | if (IS_ERR(msp->channels[i])) { | 1302 | if (IS_ERR(xordev->channels[i])) { |
| 1303 | ret = PTR_ERR(msp->channels[i]); | 1303 | ret = PTR_ERR(xordev->channels[i]); |
| 1304 | goto err_channel_add; | 1304 | goto err_channel_add; |
| 1305 | } | 1305 | } |
| 1306 | } | 1306 | } |
| @@ -1310,27 +1310,27 @@ static int mv_xor_probe(struct platform_device *pdev) | |||
| 1310 | 1310 | ||
| 1311 | err_channel_add: | 1311 | err_channel_add: |
| 1312 | for (i = 0; i < MV_XOR_MAX_CHANNELS; i++) | 1312 | for (i = 0; i < MV_XOR_MAX_CHANNELS; i++) |
| 1313 | if (msp->channels[i]) | 1313 | if (xordev->channels[i]) |
| 1314 | mv_xor_channel_remove(msp->channels[i]); | 1314 | mv_xor_channel_remove(xordev->channels[i]); |
| 1315 | 1315 | ||
| 1316 | clk_disable_unprepare(msp->clk); | 1316 | clk_disable_unprepare(xordev->clk); |
| 1317 | clk_put(msp->clk); | 1317 | clk_put(xordev->clk); |
| 1318 | return ret; | 1318 | return ret; |
| 1319 | } | 1319 | } |
| 1320 | 1320 | ||
| 1321 | static int mv_xor_remove(struct platform_device *pdev) | 1321 | static int mv_xor_remove(struct platform_device *pdev) |
| 1322 | { | 1322 | { |
| 1323 | struct mv_xor_private *msp = platform_get_drvdata(pdev); | 1323 | struct mv_xor_device *xordev = platform_get_drvdata(pdev); |
| 1324 | int i; | 1324 | int i; |
| 1325 | 1325 | ||
| 1326 | for (i = 0; i < MV_XOR_MAX_CHANNELS; i++) { | 1326 | for (i = 0; i < MV_XOR_MAX_CHANNELS; i++) { |
| 1327 | if (msp->channels[i]) | 1327 | if (xordev->channels[i]) |
| 1328 | mv_xor_channel_remove(msp->channels[i]); | 1328 | mv_xor_channel_remove(xordev->channels[i]); |
| 1329 | } | 1329 | } |
| 1330 | 1330 | ||
| 1331 | if (!IS_ERR(msp->clk)) { | 1331 | if (!IS_ERR(xordev->clk)) { |
| 1332 | clk_disable_unprepare(msp->clk); | 1332 | clk_disable_unprepare(xordev->clk); |
| 1333 | clk_put(msp->clk); | 1333 | clk_put(xordev->clk); |
| 1334 | } | 1334 | } |
| 1335 | 1335 | ||
| 1336 | return 0; | 1336 | return 0; |
diff --git a/drivers/dma/mv_xor.h b/drivers/dma/mv_xor.h index 16de1f62c950..cedeaa04f238 100644 --- a/drivers/dma/mv_xor.h +++ b/drivers/dma/mv_xor.h | |||
| @@ -53,7 +53,7 @@ | |||
| 53 | #define WINDOW_REMAP_HIGH(w) (0x290 + ((w) << 2)) | 53 | #define WINDOW_REMAP_HIGH(w) (0x290 + ((w) << 2)) |
| 54 | #define WINDOW_BAR_ENABLE(chan) (0x240 + ((chan) << 2)) | 54 | #define WINDOW_BAR_ENABLE(chan) (0x240 + ((chan) << 2)) |
| 55 | 55 | ||
| 56 | struct mv_xor_private { | 56 | struct mv_xor_device { |
| 57 | void __iomem *xor_base; | 57 | void __iomem *xor_base; |
| 58 | void __iomem *xor_high_base; | 58 | void __iomem *xor_high_base; |
| 59 | struct clk *clk; | 59 | struct clk *clk; |
| @@ -87,7 +87,7 @@ struct mv_xor_chan { | |||
| 87 | void *dma_desc_pool_virt; | 87 | void *dma_desc_pool_virt; |
| 88 | size_t pool_size; | 88 | size_t pool_size; |
| 89 | struct dma_device dmadev; | 89 | struct dma_device dmadev; |
| 90 | struct mv_xor_private *shared; | 90 | struct mv_xor_device *shared; |
| 91 | struct dma_chan dmachan; | 91 | struct dma_chan dmachan; |
| 92 | struct mv_xor_desc_slot *last_used; | 92 | struct mv_xor_desc_slot *last_used; |
| 93 | struct list_head all_slots; | 93 | struct list_head all_slots; |
