diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/video/atmel_lcdfb.c | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/drivers/video/atmel_lcdfb.c b/drivers/video/atmel_lcdfb.c index 025428e04c33..c5883cafa38a 100644 --- a/drivers/video/atmel_lcdfb.c +++ b/drivers/video/atmel_lcdfb.c | |||
@@ -821,15 +821,13 @@ static int __init atmel_lcdfb_init_fbinfo(struct atmel_lcdfb_info *sinfo) | |||
821 | 821 | ||
822 | static void atmel_lcdfb_start_clock(struct atmel_lcdfb_info *sinfo) | 822 | static void atmel_lcdfb_start_clock(struct atmel_lcdfb_info *sinfo) |
823 | { | 823 | { |
824 | if (sinfo->bus_clk) | 824 | clk_enable(sinfo->bus_clk); |
825 | clk_enable(sinfo->bus_clk); | ||
826 | clk_enable(sinfo->lcdc_clk); | 825 | clk_enable(sinfo->lcdc_clk); |
827 | } | 826 | } |
828 | 827 | ||
829 | static void atmel_lcdfb_stop_clock(struct atmel_lcdfb_info *sinfo) | 828 | static void atmel_lcdfb_stop_clock(struct atmel_lcdfb_info *sinfo) |
830 | { | 829 | { |
831 | if (sinfo->bus_clk) | 830 | clk_disable(sinfo->bus_clk); |
832 | clk_disable(sinfo->bus_clk); | ||
833 | clk_disable(sinfo->lcdc_clk); | 831 | clk_disable(sinfo->lcdc_clk); |
834 | } | 832 | } |
835 | 833 | ||
@@ -888,13 +886,10 @@ static int __init atmel_lcdfb_probe(struct platform_device *pdev) | |||
888 | info->fix = atmel_lcdfb_fix; | 886 | info->fix = atmel_lcdfb_fix; |
889 | 887 | ||
890 | /* Enable LCDC Clocks */ | 888 | /* Enable LCDC Clocks */ |
891 | if (cpu_is_at91sam9261() || cpu_is_at91sam9g10() | 889 | sinfo->bus_clk = clk_get(dev, "hclk"); |
892 | || cpu_is_at32ap7000()) { | 890 | if (IS_ERR(sinfo->bus_clk)) { |
893 | sinfo->bus_clk = clk_get(dev, "hck1"); | 891 | ret = PTR_ERR(sinfo->bus_clk); |
894 | if (IS_ERR(sinfo->bus_clk)) { | 892 | goto free_info; |
895 | ret = PTR_ERR(sinfo->bus_clk); | ||
896 | goto free_info; | ||
897 | } | ||
898 | } | 893 | } |
899 | sinfo->lcdc_clk = clk_get(dev, "lcdc_clk"); | 894 | sinfo->lcdc_clk = clk_get(dev, "lcdc_clk"); |
900 | if (IS_ERR(sinfo->lcdc_clk)) { | 895 | if (IS_ERR(sinfo->lcdc_clk)) { |
@@ -1055,8 +1050,7 @@ stop_clk: | |||
1055 | atmel_lcdfb_stop_clock(sinfo); | 1050 | atmel_lcdfb_stop_clock(sinfo); |
1056 | clk_put(sinfo->lcdc_clk); | 1051 | clk_put(sinfo->lcdc_clk); |
1057 | put_bus_clk: | 1052 | put_bus_clk: |
1058 | if (sinfo->bus_clk) | 1053 | clk_put(sinfo->bus_clk); |
1059 | clk_put(sinfo->bus_clk); | ||
1060 | free_info: | 1054 | free_info: |
1061 | framebuffer_release(info); | 1055 | framebuffer_release(info); |
1062 | out: | 1056 | out: |
@@ -1081,8 +1075,7 @@ static int __exit atmel_lcdfb_remove(struct platform_device *pdev) | |||
1081 | unregister_framebuffer(info); | 1075 | unregister_framebuffer(info); |
1082 | atmel_lcdfb_stop_clock(sinfo); | 1076 | atmel_lcdfb_stop_clock(sinfo); |
1083 | clk_put(sinfo->lcdc_clk); | 1077 | clk_put(sinfo->lcdc_clk); |
1084 | if (sinfo->bus_clk) | 1078 | clk_put(sinfo->bus_clk); |
1085 | clk_put(sinfo->bus_clk); | ||
1086 | fb_dealloc_cmap(&info->cmap); | 1079 | fb_dealloc_cmap(&info->cmap); |
1087 | free_irq(sinfo->irq_base, info); | 1080 | free_irq(sinfo->irq_base, info); |
1088 | iounmap(sinfo->mmio); | 1081 | iounmap(sinfo->mmio); |