diff options
author | Damien Cassou <damien.cassou@lifl.fr> | 2012-07-31 12:39:18 -0400 |
---|---|---|
committer | Florian Tobias Schandinat <FlorianSchandinat@gmx.de> | 2012-08-23 09:01:04 -0400 |
commit | 0b7ca58961cd5c8c20041ffdc640775ccb7671dd (patch) | |
tree | e4a54b6195a2edb4a2e93a21b90a4457d211d4a0 /drivers/video/mbx | |
parent | e31f8745847c0086f909e04d4781804347c2377d (diff) |
drivers/video/mbx/mbxfb.c: use devm_ functions
The various devm_ functions allocate memory that is released when a driver
detaches. This patch uses these functions for data that is allocated in
the probe function of a platform device and is only freed in the remove
function.
Signed-off-by: Damien Cassou <damien.cassou@lifl.fr>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Diffstat (limited to 'drivers/video/mbx')
-rw-r--r-- | drivers/video/mbx/mbxfb.c | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/drivers/video/mbx/mbxfb.c b/drivers/video/mbx/mbxfb.c index 85e4f44bfa61..9229acfe1f0c 100644 --- a/drivers/video/mbx/mbxfb.c +++ b/drivers/video/mbx/mbxfb.c | |||
@@ -939,8 +939,9 @@ static int __devinit mbxfb_probe(struct platform_device *dev) | |||
939 | } | 939 | } |
940 | mfbi->reg_phys_addr = mfbi->reg_res->start; | 940 | mfbi->reg_phys_addr = mfbi->reg_res->start; |
941 | 941 | ||
942 | mfbi->reg_virt_addr = ioremap_nocache(mfbi->reg_phys_addr, | 942 | mfbi->reg_virt_addr = devm_ioremap_nocache(&dev->dev, |
943 | res_size(mfbi->reg_req)); | 943 | mfbi->reg_phys_addr, |
944 | res_size(mfbi->reg_req)); | ||
944 | if (!mfbi->reg_virt_addr) { | 945 | if (!mfbi->reg_virt_addr) { |
945 | dev_err(&dev->dev, "failed to ioremap Marathon registers\n"); | 946 | dev_err(&dev->dev, "failed to ioremap Marathon registers\n"); |
946 | ret = -EINVAL; | 947 | ret = -EINVAL; |
@@ -948,12 +949,12 @@ static int __devinit mbxfb_probe(struct platform_device *dev) | |||
948 | } | 949 | } |
949 | virt_base_2700 = mfbi->reg_virt_addr; | 950 | virt_base_2700 = mfbi->reg_virt_addr; |
950 | 951 | ||
951 | mfbi->fb_virt_addr = ioremap_nocache(mfbi->fb_phys_addr, | 952 | mfbi->fb_virt_addr = devm_ioremap_nocache(&dev->dev, mfbi->fb_phys_addr, |
952 | res_size(mfbi->fb_req)); | 953 | res_size(mfbi->fb_req)); |
953 | if (!mfbi->fb_virt_addr) { | 954 | if (!mfbi->fb_virt_addr) { |
954 | dev_err(&dev->dev, "failed to ioremap frame buffer\n"); | 955 | dev_err(&dev->dev, "failed to ioremap frame buffer\n"); |
955 | ret = -EINVAL; | 956 | ret = -EINVAL; |
956 | goto err4; | 957 | goto err3; |
957 | } | 958 | } |
958 | 959 | ||
959 | fbi->screen_base = (char __iomem *)(mfbi->fb_virt_addr + 0x60000); | 960 | fbi->screen_base = (char __iomem *)(mfbi->fb_virt_addr + 0x60000); |
@@ -971,7 +972,7 @@ static int __devinit mbxfb_probe(struct platform_device *dev) | |||
971 | if (ret < 0) { | 972 | if (ret < 0) { |
972 | dev_err(&dev->dev, "fb_alloc_cmap failed\n"); | 973 | dev_err(&dev->dev, "fb_alloc_cmap failed\n"); |
973 | ret = -EINVAL; | 974 | ret = -EINVAL; |
974 | goto err5; | 975 | goto err3; |
975 | } | 976 | } |
976 | 977 | ||
977 | platform_set_drvdata(dev, fbi); | 978 | platform_set_drvdata(dev, fbi); |
@@ -996,10 +997,6 @@ static int __devinit mbxfb_probe(struct platform_device *dev) | |||
996 | 997 | ||
997 | err6: | 998 | err6: |
998 | fb_dealloc_cmap(&fbi->cmap); | 999 | fb_dealloc_cmap(&fbi->cmap); |
999 | err5: | ||
1000 | iounmap(mfbi->fb_virt_addr); | ||
1001 | err4: | ||
1002 | iounmap(mfbi->reg_virt_addr); | ||
1003 | err3: | 1000 | err3: |
1004 | release_mem_region(mfbi->reg_res->start, res_size(mfbi->reg_res)); | 1001 | release_mem_region(mfbi->reg_res->start, res_size(mfbi->reg_res)); |
1005 | err2: | 1002 | err2: |
@@ -1026,10 +1023,7 @@ static int __devexit mbxfb_remove(struct platform_device *dev) | |||
1026 | if (mfbi->platform_remove) | 1023 | if (mfbi->platform_remove) |
1027 | mfbi->platform_remove(fbi); | 1024 | mfbi->platform_remove(fbi); |
1028 | 1025 | ||
1029 | if (mfbi->fb_virt_addr) | 1026 | |
1030 | iounmap(mfbi->fb_virt_addr); | ||
1031 | if (mfbi->reg_virt_addr) | ||
1032 | iounmap(mfbi->reg_virt_addr); | ||
1033 | if (mfbi->reg_req) | 1027 | if (mfbi->reg_req) |
1034 | release_mem_region(mfbi->reg_req->start, | 1028 | release_mem_region(mfbi->reg_req->start, |
1035 | res_size(mfbi->reg_req)); | 1029 | res_size(mfbi->reg_req)); |