diff options
author | Olof Johansson <olof@lixom.net> | 2012-10-09 17:02:14 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2012-10-09 18:00:54 -0400 |
commit | 125c9671794a0d4b49d51a925aa8190f1d5d2168 (patch) | |
tree | 7638e8506fbef5523772062e55e352faa3a0f463 /arch | |
parent | bfbad32a63fa6287723961f07bcd043dc9c5965c (diff) | |
parent | 224cd7115abb5b05a5d665551452c271449ce80b (diff) |
Merge tag 'omap-for-v3.7-rc1/fixes-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
From Tony Lindgren:
This branch contains one counter locking fix and an
alignment fix. Other fixes are warning fixes, fixes
for return value checks.
I've also included removal of some extra semicolons,
dropping of some duplicate includes, and an a change
for wl12xx enumeration that are not strictly fixes
but would be good to get out of the way for -rc1.
* tag 'omap-for-v3.7-rc1/fixes-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
arm/omap: Replace board_ref_clock with enum values
ARM: OMAP2+: remove duplicated include from board-omap3stalker.c
arch/arm/plat-omap/omap-pm-noop.c: Remove unecessary semicolon
arch/arm/mach-omap2: Remove unecessary semicolon
arch/arm/mach-omap1/devices.c: Remove unecessary semicolon
AM35xx: Add missing hwmod entry for the HDQ/1-Wire present in AM3505/3517 CPUs.
ARM: OMAP2+: gpmc: annotate exit sections properly
ARM: OMAP: fix return value check in realtime_counter_init()
ARM: OMAP: hsmmc: fix return value check in omap_hsmmc_init_one()
OMAPDSS: fix return value check in create_dss_pdev()
ARM: OMAP2+: Add am335x evm and bone targets to common Makefile
arm: increase FORCE_MAX_ZONEORDER for TI AM33XX
ARM: OMAP: OMAP_DEBUG_LEDS needs to select LEDS_CLASS
ARM: OMAP: rx51: Fix a section mismatch warn
ARM: OMAP2+: Round of the carve out memory requested to section_size
ARM: OMAP: counter: add locking to read_persistent_clock
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/boot/dts/Makefile | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap1/devices.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-flash.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-omap3stalker.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-omap4panda.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-rx51-peripherals.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-zoom-peripherals.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-omap2/clkt_clksel.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/display.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/gpmc.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap2/hsmmc.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/mux.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap-secure.c | 4 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-omap2/pm-debug.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/timer.c | 2 | ||||
-rw-r--r-- | arch/arm/plat-omap/Kconfig | 1 | ||||
-rw-r--r-- | arch/arm/plat-omap/counter_32k.c | 21 | ||||
-rw-r--r-- | arch/arm/plat-omap/omap-pm-noop.c | 8 |
20 files changed, 42 insertions, 37 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index f3342d439af0..5520b033ee84 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -1767,6 +1767,7 @@ source "mm/Kconfig" | |||
1767 | config FORCE_MAX_ZONEORDER | 1767 | config FORCE_MAX_ZONEORDER |
1768 | int "Maximum zone order" if ARCH_SHMOBILE | 1768 | int "Maximum zone order" if ARCH_SHMOBILE |
1769 | range 11 64 if ARCH_SHMOBILE | 1769 | range 11 64 if ARCH_SHMOBILE |
1770 | default "12" if SOC_AM33XX | ||
1770 | default "9" if SA1111 | 1771 | default "9" if SA1111 |
1771 | default "11" | 1772 | default "11" |
1772 | help | 1773 | help |
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 5c5b0aa42497..c1ce813fcc4a 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
@@ -68,7 +68,9 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \ | |||
68 | omap4-pandaES.dtb \ | 68 | omap4-pandaES.dtb \ |
69 | omap4-var_som.dtb \ | 69 | omap4-var_som.dtb \ |
70 | omap4-sdp.dtb \ | 70 | omap4-sdp.dtb \ |
71 | omap5-evm.dtb | 71 | omap5-evm.dtb \ |
72 | am335x-evm.dtb \ | ||
73 | am335x-bone.dtb | ||
72 | dtb-$(CONFIG_ARCH_PRIMA2) += prima2-evb.dtb | 74 | dtb-$(CONFIG_ARCH_PRIMA2) += prima2-evb.dtb |
73 | dtb-$(CONFIG_ARCH_U8500) += snowball.dtb | 75 | dtb-$(CONFIG_ARCH_U8500) += snowball.dtb |
74 | dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \ | 76 | dtb-$(CONFIG_ARCH_SHMOBILE) += emev2-kzm9d.dtb \ |
diff --git a/arch/arm/mach-omap1/devices.c b/arch/arm/mach-omap1/devices.c index 726c02c9c0cd..d3fec92c54cb 100644 --- a/arch/arm/mach-omap1/devices.c +++ b/arch/arm/mach-omap1/devices.c | |||
@@ -231,7 +231,7 @@ void __init omap1_init_mmc(struct omap_mmc_platform_data **mmc_data, | |||
231 | 231 | ||
232 | omap_mmc_add("mmci-omap", i, base, size, irq, | 232 | omap_mmc_add("mmci-omap", i, base, size, irq, |
233 | rx_req, tx_req, mmc_data[i]); | 233 | rx_req, tx_req, mmc_data[i]); |
234 | }; | 234 | } |
235 | } | 235 | } |
236 | 236 | ||
237 | #endif | 237 | #endif |
diff --git a/arch/arm/mach-omap2/board-flash.c b/arch/arm/mach-omap2/board-flash.c index 0cabe61cd507..e642acf9cad0 100644 --- a/arch/arm/mach-omap2/board-flash.c +++ b/arch/arm/mach-omap2/board-flash.c | |||
@@ -218,7 +218,7 @@ void __init board_flash_init(struct flash_partitions partition_info[], | |||
218 | if (onenandcs > GPMC_CS_NUM) | 218 | if (onenandcs > GPMC_CS_NUM) |
219 | onenandcs = cs; | 219 | onenandcs = cs; |
220 | break; | 220 | break; |
221 | }; | 221 | } |
222 | cs++; | 222 | cs++; |
223 | } | 223 | } |
224 | 224 | ||
diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-omap2/board-omap3stalker.c index c7f3d026e6d4..731235eb319e 100644 --- a/arch/arm/mach-omap2/board-omap3stalker.c +++ b/arch/arm/mach-omap2/board-omap3stalker.c | |||
@@ -48,11 +48,6 @@ | |||
48 | #include <video/omap-panel-tfp410.h> | 48 | #include <video/omap-panel-tfp410.h> |
49 | 49 | ||
50 | #include <linux/platform_data/spi-omap2-mcspi.h> | 50 | #include <linux/platform_data/spi-omap2-mcspi.h> |
51 | #include <linux/input/matrix_keypad.h> | ||
52 | #include <linux/spi/spi.h> | ||
53 | #include <linux/interrupt.h> | ||
54 | #include <linux/smsc911x.h> | ||
55 | #include <linux/i2c/at24.h> | ||
56 | 51 | ||
57 | #include "sdram-micron-mt46h32m32lf-6.h" | 52 | #include "sdram-micron-mt46h32m32lf-6.h" |
58 | #include "mux.h" | 53 | #include "mux.h" |
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c index 2b012f9d6925..c3832ddb07f9 100644 --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c | |||
@@ -247,8 +247,7 @@ static struct platform_device omap_vwlan_device = { | |||
247 | }; | 247 | }; |
248 | 248 | ||
249 | static struct wl12xx_platform_data omap_panda_wlan_data __initdata = { | 249 | static struct wl12xx_platform_data omap_panda_wlan_data __initdata = { |
250 | /* PANDA ref clock is 38.4 MHz */ | 250 | .board_ref_clock = WL12XX_REFCLOCK_38, /* 38.4 MHz */ |
251 | .board_ref_clock = 2, | ||
252 | }; | 251 | }; |
253 | 252 | ||
254 | static struct twl6040_codec_data twl6040_codec = { | 253 | static struct twl6040_codec_data twl6040_codec = { |
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c index ed85fb898c7f..020e03c95bfe 100644 --- a/arch/arm/mach-omap2/board-rx51-peripherals.c +++ b/arch/arm/mach-omap2/board-rx51-peripherals.c | |||
@@ -748,7 +748,7 @@ static struct radio_si4713_platform_data rx51_si4713_data __initdata_or_module = | |||
748 | .subdev_board_info = &rx51_si4713_board_info, | 748 | .subdev_board_info = &rx51_si4713_board_info, |
749 | }; | 749 | }; |
750 | 750 | ||
751 | static struct platform_device rx51_si4713_dev = { | 751 | static struct platform_device rx51_si4713_dev __initdata_or_module = { |
752 | .name = "radio-si4713", | 752 | .name = "radio-si4713", |
753 | .id = -1, | 753 | .id = -1, |
754 | .dev = { | 754 | .dev = { |
diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c b/arch/arm/mach-omap2/board-zoom-peripherals.c index 6bcc107b9fc3..a935f319e719 100644 --- a/arch/arm/mach-omap2/board-zoom-peripherals.c +++ b/arch/arm/mach-omap2/board-zoom-peripherals.c | |||
@@ -194,8 +194,7 @@ static struct platform_device omap_vwlan_device = { | |||
194 | }; | 194 | }; |
195 | 195 | ||
196 | static struct wl12xx_platform_data omap_zoom_wlan_data __initdata = { | 196 | static struct wl12xx_platform_data omap_zoom_wlan_data __initdata = { |
197 | /* ZOOM ref clock is 26 MHz */ | 197 | .board_ref_clock = WL12XX_REFCLOCK_26, /* 26 MHz */ |
198 | .board_ref_clock = 1, | ||
199 | }; | 198 | }; |
200 | 199 | ||
201 | static struct omap2_hsmmc_info mmc[] = { | 200 | static struct omap2_hsmmc_info mmc[] = { |
diff --git a/arch/arm/mach-omap2/clkt_clksel.c b/arch/arm/mach-omap2/clkt_clksel.c index eaed3900a83c..3ff22114d702 100644 --- a/arch/arm/mach-omap2/clkt_clksel.c +++ b/arch/arm/mach-omap2/clkt_clksel.c | |||
@@ -382,7 +382,7 @@ void omap2_init_clksel_parent(struct clk *clk) | |||
382 | __clk_get_name(parent) : | 382 | __clk_get_name(parent) : |
383 | "NULL")); | 383 | "NULL")); |
384 | clk_reparent(clk, clks->parent); | 384 | clk_reparent(clk, clks->parent); |
385 | }; | 385 | } |
386 | found = 1; | 386 | found = 1; |
387 | } | 387 | } |
388 | } | 388 | } |
diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c index 7012068ccbf6..a51ece491b91 100644 --- a/arch/arm/mach-omap2/display.c +++ b/arch/arm/mach-omap2/display.c | |||
@@ -221,7 +221,7 @@ static struct platform_device *create_dss_pdev(const char *pdev_name, | |||
221 | 221 | ||
222 | ohs[0] = oh; | 222 | ohs[0] = oh; |
223 | od = omap_device_alloc(pdev, ohs, 1, NULL, 0); | 223 | od = omap_device_alloc(pdev, ohs, 1, NULL, 0); |
224 | if (!od) { | 224 | if (IS_ERR(od)) { |
225 | pr_err("Could not alloc omap_device for %s\n", pdev_name); | 225 | pr_err("Could not alloc omap_device for %s\n", pdev_name); |
226 | r = -ENOMEM; | 226 | r = -ENOMEM; |
227 | goto err; | 227 | goto err; |
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index 8ab1e1bde5e9..5ac5cf30406a 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c | |||
@@ -838,7 +838,7 @@ static int gpmc_setup_irq(void) | |||
838 | return request_irq(gpmc_irq, gpmc_handle_irq, 0, "gpmc", NULL); | 838 | return request_irq(gpmc_irq, gpmc_handle_irq, 0, "gpmc", NULL); |
839 | } | 839 | } |
840 | 840 | ||
841 | static __exit int gpmc_free_irq(void) | 841 | static __devexit int gpmc_free_irq(void) |
842 | { | 842 | { |
843 | int i; | 843 | int i; |
844 | 844 | ||
@@ -944,7 +944,7 @@ static __devinit int gpmc_probe(struct platform_device *pdev) | |||
944 | return 0; | 944 | return 0; |
945 | } | 945 | } |
946 | 946 | ||
947 | static __exit int gpmc_remove(struct platform_device *pdev) | 947 | static __devexit int gpmc_remove(struct platform_device *pdev) |
948 | { | 948 | { |
949 | gpmc_free_irq(); | 949 | gpmc_free_irq(); |
950 | gpmc_mem_exit(); | 950 | gpmc_mem_exit(); |
diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-omap2/hsmmc.c index 03ebf47cfa9a..4d3a6324155f 100644 --- a/arch/arm/mach-omap2/hsmmc.c +++ b/arch/arm/mach-omap2/hsmmc.c | |||
@@ -523,7 +523,7 @@ static void __init omap_hsmmc_init_one(struct omap2_hsmmc_info *hsmmcinfo, | |||
523 | dev_set_name(&pdev->dev, "%s.%d", pdev->name, pdev->id); | 523 | dev_set_name(&pdev->dev, "%s.%d", pdev->name, pdev->id); |
524 | 524 | ||
525 | od = omap_device_alloc(pdev, ohs, 1, NULL, 0); | 525 | od = omap_device_alloc(pdev, ohs, 1, NULL, 0); |
526 | if (!od) { | 526 | if (IS_ERR(od)) { |
527 | pr_err("Could not allocate od for %s\n", name); | 527 | pr_err("Could not allocate od for %s\n", name); |
528 | goto put_pdev; | 528 | goto put_pdev; |
529 | } | 529 | } |
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c index 9fe6829f4c16..701e17cba468 100644 --- a/arch/arm/mach-omap2/mux.c +++ b/arch/arm/mach-omap2/mux.c | |||
@@ -486,7 +486,7 @@ void omap_hwmod_mux(struct omap_hwmod_mux_info *hmux, u8 state) | |||
486 | default: | 486 | default: |
487 | /* Nothing to be done */ | 487 | /* Nothing to be done */ |
488 | break; | 488 | break; |
489 | }; | 489 | } |
490 | 490 | ||
491 | if (val >= 0) { | 491 | if (val >= 0) { |
492 | omap_mux_write(pad->partition, val, | 492 | omap_mux_write(pad->partition, val, |
diff --git a/arch/arm/mach-omap2/omap-secure.c b/arch/arm/mach-omap2/omap-secure.c index a004cb9acf52..e089e4d1ae38 100644 --- a/arch/arm/mach-omap2/omap-secure.c +++ b/arch/arm/mach-omap2/omap-secure.c | |||
@@ -61,8 +61,8 @@ int __init omap_secure_ram_reserve_memblock(void) | |||
61 | { | 61 | { |
62 | u32 size = OMAP_SECURE_RAM_STORAGE; | 62 | u32 size = OMAP_SECURE_RAM_STORAGE; |
63 | 63 | ||
64 | size = ALIGN(size, SZ_1M); | 64 | size = ALIGN(size, SECTION_SIZE); |
65 | omap_secure_memblock_base = arm_memblock_steal(size, SZ_1M); | 65 | omap_secure_memblock_base = arm_memblock_steal(size, SECTION_SIZE); |
66 | 66 | ||
67 | return 0; | 67 | return 0; |
68 | } | 68 | } |
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c index 285777241d5a..82fdb5932d31 100644 --- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | |||
@@ -3683,6 +3683,7 @@ static struct omap_hwmod_ocp_if *am35xx_hwmod_ocp_ifs[] __initdata = { | |||
3683 | &omap3xxx_l4_core__usb_tll_hs, | 3683 | &omap3xxx_l4_core__usb_tll_hs, |
3684 | &omap3xxx_l4_core__es3plus_mmc1, | 3684 | &omap3xxx_l4_core__es3plus_mmc1, |
3685 | &omap3xxx_l4_core__es3plus_mmc2, | 3685 | &omap3xxx_l4_core__es3plus_mmc2, |
3686 | &omap3xxx_l4_core__hdq1w, | ||
3686 | &am35xx_mdio__l3, | 3687 | &am35xx_mdio__l3, |
3687 | &am35xx_l4_core__mdio, | 3688 | &am35xx_l4_core__mdio, |
3688 | &am35xx_emac__l3, | 3689 | &am35xx_emac__l3, |
@@ -3737,7 +3738,7 @@ int __init omap3xxx_hwmod_init(void) | |||
3737 | } else { | 3738 | } else { |
3738 | WARN(1, "OMAP3 hwmod family init: unknown chip type\n"); | 3739 | WARN(1, "OMAP3 hwmod family init: unknown chip type\n"); |
3739 | return -EINVAL; | 3740 | return -EINVAL; |
3740 | }; | 3741 | } |
3741 | 3742 | ||
3742 | r = omap_hwmod_register_links(h); | 3743 | r = omap_hwmod_register_links(h); |
3743 | if (r < 0) | 3744 | if (r < 0) |
@@ -3754,7 +3755,7 @@ int __init omap3xxx_hwmod_init(void) | |||
3754 | rev == OMAP3430_REV_ES3_0 || rev == OMAP3430_REV_ES3_1 || | 3755 | rev == OMAP3430_REV_ES3_0 || rev == OMAP3430_REV_ES3_1 || |
3755 | rev == OMAP3430_REV_ES3_1_2) { | 3756 | rev == OMAP3430_REV_ES3_1_2) { |
3756 | h = omap3430es2plus_hwmod_ocp_ifs; | 3757 | h = omap3430es2plus_hwmod_ocp_ifs; |
3757 | }; | 3758 | } |
3758 | 3759 | ||
3759 | if (h) { | 3760 | if (h) { |
3760 | r = omap_hwmod_register_links(h); | 3761 | r = omap_hwmod_register_links(h); |
@@ -3769,7 +3770,7 @@ int __init omap3xxx_hwmod_init(void) | |||
3769 | } else if (rev == OMAP3430_REV_ES3_0 || rev == OMAP3430_REV_ES3_1 || | 3770 | } else if (rev == OMAP3430_REV_ES3_0 || rev == OMAP3430_REV_ES3_1 || |
3770 | rev == OMAP3430_REV_ES3_1_2) { | 3771 | rev == OMAP3430_REV_ES3_1_2) { |
3771 | h = omap3430_es3plus_hwmod_ocp_ifs; | 3772 | h = omap3430_es3plus_hwmod_ocp_ifs; |
3772 | }; | 3773 | } |
3773 | 3774 | ||
3774 | if (h) | 3775 | if (h) |
3775 | r = omap_hwmod_register_links(h); | 3776 | r = omap_hwmod_register_links(h); |
diff --git a/arch/arm/mach-omap2/pm-debug.c b/arch/arm/mach-omap2/pm-debug.c index 3e1345fc0713..46092cd806fa 100644 --- a/arch/arm/mach-omap2/pm-debug.c +++ b/arch/arm/mach-omap2/pm-debug.c | |||
@@ -168,7 +168,7 @@ static int pm_dbg_open(struct inode *inode, struct file *file) | |||
168 | default: | 168 | default: |
169 | return single_open(file, pm_dbg_show_timers, | 169 | return single_open(file, pm_dbg_show_timers, |
170 | &inode->i_private); | 170 | &inode->i_private); |
171 | }; | 171 | } |
172 | } | 172 | } |
173 | 173 | ||
174 | static const struct file_operations debug_fops = { | 174 | static const struct file_operations debug_fops = { |
diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c index 8847d6eb2313..44f9aa7ec0c0 100644 --- a/arch/arm/mach-omap2/timer.c +++ b/arch/arm/mach-omap2/timer.c | |||
@@ -378,7 +378,7 @@ static void __init realtime_counter_init(void) | |||
378 | return; | 378 | return; |
379 | } | 379 | } |
380 | sys_clk = clk_get(NULL, "sys_clkin_ck"); | 380 | sys_clk = clk_get(NULL, "sys_clkin_ck"); |
381 | if (!sys_clk) { | 381 | if (IS_ERR(sys_clk)) { |
382 | pr_err("%s: failed to get system clock handle\n", __func__); | 382 | pr_err("%s: failed to get system clock handle\n", __func__); |
383 | iounmap(base); | 383 | iounmap(base); |
384 | return; | 384 | return; |
diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig index ca83a7659aef..c26278172caa 100644 --- a/arch/arm/plat-omap/Kconfig +++ b/arch/arm/plat-omap/Kconfig | |||
@@ -43,6 +43,7 @@ config OMAP_DEBUG_DEVICES | |||
43 | 43 | ||
44 | config OMAP_DEBUG_LEDS | 44 | config OMAP_DEBUG_LEDS |
45 | def_bool y if NEW_LEDS | 45 | def_bool y if NEW_LEDS |
46 | select LEDS_CLASS | ||
46 | depends on OMAP_DEBUG_DEVICES | 47 | depends on OMAP_DEBUG_DEVICES |
47 | 48 | ||
48 | config POWER_AVS_OMAP | 49 | config POWER_AVS_OMAP |
diff --git a/arch/arm/plat-omap/counter_32k.c b/arch/arm/plat-omap/counter_32k.c index 2e826f1faf7b..87ba8dd0d791 100644 --- a/arch/arm/plat-omap/counter_32k.c +++ b/arch/arm/plat-omap/counter_32k.c | |||
@@ -52,22 +52,29 @@ static u32 notrace omap_32k_read_sched_clock(void) | |||
52 | * nsecs and adds to a monotonically increasing timespec. | 52 | * nsecs and adds to a monotonically increasing timespec. |
53 | */ | 53 | */ |
54 | static struct timespec persistent_ts; | 54 | static struct timespec persistent_ts; |
55 | static cycles_t cycles, last_cycles; | 55 | static cycles_t cycles; |
56 | static unsigned int persistent_mult, persistent_shift; | 56 | static unsigned int persistent_mult, persistent_shift; |
57 | static DEFINE_SPINLOCK(read_persistent_clock_lock); | ||
58 | |||
57 | static void omap_read_persistent_clock(struct timespec *ts) | 59 | static void omap_read_persistent_clock(struct timespec *ts) |
58 | { | 60 | { |
59 | unsigned long long nsecs; | 61 | unsigned long long nsecs; |
60 | cycles_t delta; | 62 | cycles_t last_cycles; |
61 | struct timespec *tsp = &persistent_ts; | 63 | unsigned long flags; |
64 | |||
65 | spin_lock_irqsave(&read_persistent_clock_lock, flags); | ||
62 | 66 | ||
63 | last_cycles = cycles; | 67 | last_cycles = cycles; |
64 | cycles = sync32k_cnt_reg ? __raw_readl(sync32k_cnt_reg) : 0; | 68 | cycles = sync32k_cnt_reg ? __raw_readl(sync32k_cnt_reg) : 0; |
65 | delta = cycles - last_cycles; | ||
66 | 69 | ||
67 | nsecs = clocksource_cyc2ns(delta, persistent_mult, persistent_shift); | 70 | nsecs = clocksource_cyc2ns(cycles - last_cycles, |
71 | persistent_mult, persistent_shift); | ||
72 | |||
73 | timespec_add_ns(&persistent_ts, nsecs); | ||
74 | |||
75 | *ts = persistent_ts; | ||
68 | 76 | ||
69 | timespec_add_ns(tsp, nsecs); | 77 | spin_unlock_irqrestore(&read_persistent_clock_lock, flags); |
70 | *ts = *tsp; | ||
71 | } | 78 | } |
72 | 79 | ||
73 | /** | 80 | /** |
diff --git a/arch/arm/plat-omap/omap-pm-noop.c b/arch/arm/plat-omap/omap-pm-noop.c index 9f6413324df9..9722f418ae1f 100644 --- a/arch/arm/plat-omap/omap-pm-noop.c +++ b/arch/arm/plat-omap/omap-pm-noop.c | |||
@@ -38,7 +38,7 @@ int omap_pm_set_max_mpu_wakeup_lat(struct device *dev, long t) | |||
38 | if (!dev || t < -1) { | 38 | if (!dev || t < -1) { |
39 | WARN(1, "OMAP PM: %s: invalid parameter(s)", __func__); | 39 | WARN(1, "OMAP PM: %s: invalid parameter(s)", __func__); |
40 | return -EINVAL; | 40 | return -EINVAL; |
41 | }; | 41 | } |
42 | 42 | ||
43 | if (t == -1) | 43 | if (t == -1) |
44 | pr_debug("OMAP PM: remove max MPU wakeup latency constraint: dev %s\n", | 44 | pr_debug("OMAP PM: remove max MPU wakeup latency constraint: dev %s\n", |
@@ -67,7 +67,7 @@ int omap_pm_set_min_bus_tput(struct device *dev, u8 agent_id, unsigned long r) | |||
67 | agent_id != OCP_TARGET_AGENT)) { | 67 | agent_id != OCP_TARGET_AGENT)) { |
68 | WARN(1, "OMAP PM: %s: invalid parameter(s)", __func__); | 68 | WARN(1, "OMAP PM: %s: invalid parameter(s)", __func__); |
69 | return -EINVAL; | 69 | return -EINVAL; |
70 | }; | 70 | } |
71 | 71 | ||
72 | if (r == 0) | 72 | if (r == 0) |
73 | pr_debug("OMAP PM: remove min bus tput constraint: dev %s for agent_id %d\n", | 73 | pr_debug("OMAP PM: remove min bus tput constraint: dev %s for agent_id %d\n", |
@@ -93,7 +93,7 @@ int omap_pm_set_max_dev_wakeup_lat(struct device *req_dev, struct device *dev, | |||
93 | if (!req_dev || !dev || t < -1) { | 93 | if (!req_dev || !dev || t < -1) { |
94 | WARN(1, "OMAP PM: %s: invalid parameter(s)", __func__); | 94 | WARN(1, "OMAP PM: %s: invalid parameter(s)", __func__); |
95 | return -EINVAL; | 95 | return -EINVAL; |
96 | }; | 96 | } |
97 | 97 | ||
98 | if (t == -1) | 98 | if (t == -1) |
99 | pr_debug("OMAP PM: remove max device latency constraint: dev %s\n", | 99 | pr_debug("OMAP PM: remove max device latency constraint: dev %s\n", |
@@ -123,7 +123,7 @@ int omap_pm_set_max_sdma_lat(struct device *dev, long t) | |||
123 | if (!dev || t < -1) { | 123 | if (!dev || t < -1) { |
124 | WARN(1, "OMAP PM: %s: invalid parameter(s)", __func__); | 124 | WARN(1, "OMAP PM: %s: invalid parameter(s)", __func__); |
125 | return -EINVAL; | 125 | return -EINVAL; |
126 | }; | 126 | } |
127 | 127 | ||
128 | if (t == -1) | 128 | if (t == -1) |
129 | pr_debug("OMAP PM: remove max DMA latency constraint: dev %s\n", | 129 | pr_debug("OMAP PM: remove max DMA latency constraint: dev %s\n", |