diff options
| author | Jonas Aaberg <jonas.aberg@stericsson.com> | 2010-08-09 08:08:18 -0400 |
|---|---|---|
| committer | Dan Williams <dan.j.williams@intel.com> | 2010-09-22 17:53:45 -0400 |
| commit | 3ae0267fd569c2007235fb80cfe3b4a4c54c8f4b (patch) | |
| tree | 1d300eead20bff1737b3e79c48ee0bd0640ea0dd | |
| parent | 0246e77b4d374bb37aa08c3fcadad20012e85ea0 (diff) | |
DMAENGINE: ste_dma40: removed a few magic numbers
Make sure to extract the revision field explicitly and document
what bits are being accessed here without magic numbers.
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
| -rw-r--r-- | drivers/dma/ste_dma40.c | 18 | ||||
| -rw-r--r-- | drivers/dma/ste_dma40_ll.h | 3 |
2 files changed, 15 insertions, 6 deletions
diff --git a/drivers/dma/ste_dma40.c b/drivers/dma/ste_dma40.c index a6a7d66df77a..c042103d7c0d 100644 --- a/drivers/dma/ste_dma40.c +++ b/drivers/dma/ste_dma40.c | |||
| @@ -41,7 +41,7 @@ | |||
| 41 | #define D40_ALLOC_LOG_FREE 0 | 41 | #define D40_ALLOC_LOG_FREE 0 |
| 42 | 42 | ||
| 43 | /* Hardware designer of the block */ | 43 | /* Hardware designer of the block */ |
| 44 | #define D40_PERIPHID2_DESIGNER 0x8 | 44 | #define D40_HW_DESIGNER 0x8 |
| 45 | 45 | ||
| 46 | /** | 46 | /** |
| 47 | * enum 40_command - The different commands and/or statuses. | 47 | * enum 40_command - The different commands and/or statuses. |
| @@ -2438,6 +2438,7 @@ static struct d40_base * __init d40_hw_detect_init(struct platform_device *pdev) | |||
| 2438 | int num_phy_chans; | 2438 | int num_phy_chans; |
| 2439 | int i; | 2439 | int i; |
| 2440 | u32 val; | 2440 | u32 val; |
| 2441 | u32 rev; | ||
| 2441 | 2442 | ||
| 2442 | clk = clk_get(&pdev->dev, NULL); | 2443 | clk = clk_get(&pdev->dev, NULL); |
| 2443 | 2444 | ||
| @@ -2476,21 +2477,26 @@ static struct d40_base * __init d40_hw_detect_init(struct platform_device *pdev) | |||
| 2476 | } | 2477 | } |
| 2477 | } | 2478 | } |
| 2478 | 2479 | ||
| 2479 | /* Get silicon revision */ | 2480 | /* Get silicon revision and designer */ |
| 2480 | val = readl(virtbase + D40_DREG_PERIPHID2); | 2481 | val = readl(virtbase + D40_DREG_PERIPHID2); |
| 2481 | 2482 | ||
| 2482 | if ((val & 0xf) != D40_PERIPHID2_DESIGNER) { | 2483 | if ((val & D40_DREG_PERIPHID2_DESIGNER_MASK) != |
| 2484 | D40_HW_DESIGNER) { | ||
| 2483 | dev_err(&pdev->dev, | 2485 | dev_err(&pdev->dev, |
| 2484 | "[%s] Unknown designer! Got %x wanted %x\n", | 2486 | "[%s] Unknown designer! Got %x wanted %x\n", |
| 2485 | __func__, val & 0xf, D40_PERIPHID2_DESIGNER); | 2487 | __func__, val & D40_DREG_PERIPHID2_DESIGNER_MASK, |
| 2488 | D40_HW_DESIGNER); | ||
| 2486 | goto failure; | 2489 | goto failure; |
| 2487 | } | 2490 | } |
| 2488 | 2491 | ||
| 2492 | rev = (val & D40_DREG_PERIPHID2_REV_MASK) >> | ||
| 2493 | D40_DREG_PERIPHID2_REV_POS; | ||
| 2494 | |||
| 2489 | /* The number of physical channels on this HW */ | 2495 | /* The number of physical channels on this HW */ |
| 2490 | num_phy_chans = 4 * (readl(virtbase + D40_DREG_ICFG) & 0x7) + 4; | 2496 | num_phy_chans = 4 * (readl(virtbase + D40_DREG_ICFG) & 0x7) + 4; |
| 2491 | 2497 | ||
| 2492 | dev_info(&pdev->dev, "hardware revision: %d @ 0x%x\n", | 2498 | dev_info(&pdev->dev, "hardware revision: %d @ 0x%x\n", |
| 2493 | (val >> 4) & 0xf, res->start); | 2499 | rev, res->start); |
| 2494 | 2500 | ||
| 2495 | plat_data = pdev->dev.platform_data; | 2501 | plat_data = pdev->dev.platform_data; |
| 2496 | 2502 | ||
| @@ -2512,7 +2518,7 @@ static struct d40_base * __init d40_hw_detect_init(struct platform_device *pdev) | |||
| 2512 | goto failure; | 2518 | goto failure; |
| 2513 | } | 2519 | } |
| 2514 | 2520 | ||
| 2515 | base->rev = (val >> 4) & 0xf; | 2521 | base->rev = rev; |
| 2516 | base->clk = clk; | 2522 | base->clk = clk; |
| 2517 | base->num_phy_chans = num_phy_chans; | 2523 | base->num_phy_chans = num_phy_chans; |
| 2518 | base->num_log_chans = num_log_chans; | 2524 | base->num_log_chans = num_log_chans; |
diff --git a/drivers/dma/ste_dma40_ll.h b/drivers/dma/ste_dma40_ll.h index 0c468c310c18..7a6acecfccd5 100644 --- a/drivers/dma/ste_dma40_ll.h +++ b/drivers/dma/ste_dma40_ll.h | |||
| @@ -163,6 +163,9 @@ | |||
| 163 | #define D40_DREG_PERIPHID0 0xFE0 | 163 | #define D40_DREG_PERIPHID0 0xFE0 |
| 164 | #define D40_DREG_PERIPHID1 0xFE4 | 164 | #define D40_DREG_PERIPHID1 0xFE4 |
| 165 | #define D40_DREG_PERIPHID2 0xFE8 | 165 | #define D40_DREG_PERIPHID2 0xFE8 |
| 166 | #define D40_DREG_PERIPHID2_REV_POS 4 | ||
| 167 | #define D40_DREG_PERIPHID2_REV_MASK (0xf << D40_DREG_PERIPHID2_REV_POS) | ||
| 168 | #define D40_DREG_PERIPHID2_DESIGNER_MASK 0xf | ||
| 166 | #define D40_DREG_PERIPHID3 0xFEC | 169 | #define D40_DREG_PERIPHID3 0xFEC |
| 167 | #define D40_DREG_CELLID0 0xFF0 | 170 | #define D40_DREG_CELLID0 0xFF0 |
| 168 | #define D40_DREG_CELLID1 0xFF4 | 171 | #define D40_DREG_CELLID1 0xFF4 |
