summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ARM: S3C24XX: Remove plat-s3c24xx directory in arch/arm/Kukjin Kim2013-02-0415-163/+126
| | | | | | | | | | | This patch is for just moving plat-s3c24xx/*.c into mach-s3c24xx/, so that we could remove plat-s3c24xx directory. But since the PLAT_S3C24XX is used in drivers, the statement is not deleted and it will be sorted out next time. Cc: Ben Dooks <ben-linux@fluff.org> Cc: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: transform s3c2443 subirqs into new structureHeiko Stuebner2013-02-041-214/+75
| | | | | | | | Share the common irq code by simply defining a correct mapping declaration for the s3c2443. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: modify s3c2443 irq init to initialize all irqsHeiko Stuebner2013-02-043-19/+7
| | | | | | | | | | | | Previously the irq init used s3c24xx_init_irq and an additional arch_initcall to add the cpu specific irqs. To be able to simplyfy the irq init later, create a new function s3c2443_init_irq, which then calls s3c24xx_init_irq but also adds the cpu specific irqs. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: move s3c2443 irq code to irq.cHeiko Stuebner2013-02-043-282/+244
| | | | | | | Prequisite for further optimizations. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: transform s3c2416 irqs into new structureHeiko Stuebner2013-02-041-255/+87
| | | | | | | | Share the common irq code by simply defining a correct mapping declaration for the s3c2416. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: modify s3c2416 irq init to initialize all irqsHeiko Stuebner2013-02-043-19/+6
| | | | | | | | | | | | Previously the irq init used s3c24xx_init_irq and an additional arch_initcall to add the cpu specific irqs. To be able to simplyfy the irq init later, create a new function s3c416_init_irq, which then calls s3c24xx_init_irq but also adds the cpu specific irqs. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: move s3c2416 irq init to common irq codeHeiko Stuebner2013-02-044-349/+310
| | | | | | | This is needed to further clean up the irq init. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: Modify s3c_irq_wake to use the hwirq propertyHeiko Stuebner2013-02-041-4/+4
| | | | | | | This gets rid of the use of static irq mappings there. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: Move irq syscore-ops to irq-pmHeiko Stuebner2013-02-049-19/+24
| | | | | | | | | With this the definition of s3c24xx_irq_syscore_ops can also move to common.h from plat/pm.h and the definitions of s3c24xx_irq_suspend and s3c24xx_irq_resume are also not necessary anymore in plat/pm.h Signed-off-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: transform irq handling into a declarative formHeiko Stuebner2013-01-292-486/+445
| | | | | | | | | | | | | | | | | | | | | | | The irqs available on the machine and even the bit settings in the irq registers differ a lot through all the s3c24xx subarchitectures. This results in each subarch having its own irq init which adds its specific irqs to the base ones created in plat-s3c24xx/irq.c. This of course makes a future move to devicetree hard to implement. Therefore this patch transforms the base irq handling to a declarative style, where the irq types as well as its parent/child relationship gets read from a predefined datastructure, which later on can hopefully be easily represented in devicetree too. It should also be easy to include the subarch specific irqs here in later patches, reducing code size and duplication. It should not affect anything outside of the file, as the original irq numbers and their handling are preserved (hopefully) correctly. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: Move mach-s3c2440/ pll into mach-s3c24xx/Kukjin Kim2013-01-228-54/+31
| | | | | | | This patch moves mach-s3c2440/pll into mach-s3c24xx/ and removes arch/arm/mach-s3c2440/ directory in kernel. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: Move mach-s3c2440/ cpufreq driver into mach-s3c24xx/Kukjin Kim2013-01-225-13/+10
| | | | Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: Move mach-s3c2412/ cpufreq driver into mach-s3c24xx/Kukjin Kim2013-01-227-31/+12
| | | | | | | This patch moves mach-s3c2412/cpufreq driver into mach-s3c24xx/ and removes arch/arm/mach-s3c2412/ directory in kernel. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C2412: Remove useless codes mach-s3c2412/gpio.cKukjin Kim2013-01-222-68/+0
| | | | Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: Move mach-s3c2410/ pll into mach-s3c24xx/Kukjin Kim2013-01-225-30/+9
| | | | | | | This patch moves mach-s3c2410/pll into mach-s3c24xx/ and removes arch/arm/mach-s3c2410/ directory in kernel. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: Move mach-s3c2410/ cpufreq into mach-s3c24xx/Kukjin Kim2013-01-225-13/+10
| | | | | | | | Basically, the cpufreq driver for s3c2410 should be implemented into drivers/cpufreq, but we don't need to keep the mach-s3c2410 directory. So this patch moves current cpufreq driver into mach-s3c24xx/. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C64XX: Fix missing header error with CONFIG_CPU_IDLE enabledTomasz Figa2013-01-101-2/+1
| | | | | | | | | | | | | Recently the regs-syscon-power.h header was moved from mach-s3c64xx/include/mach to mach-s3c64xx/, but cpuidle.c was not updated to include the header from its new location, which caused build error with CONFIG_CPU_IDLE enabled. This patch fixed the problem by updating the include line with proper header location. Signed-off-by: Tomasz Figa <tomasz.figa@gmail.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C64XX: make regs-syscon-power.h localKukjin Kim2013-01-102-6/+5
| | | | | | The header file can be local in mach-s3c64xx/. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C64XX: make regs-sys.h localKukjin Kim2013-01-109-39/+41
| | | | | | The header file can be local in mach-s3c64xx/. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C64XX: make regs-srom.h localKukjin Kim2013-01-104-9/+8
| | | | | | The header file can be local in mach-s3c64xx/. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C64XX: make regs-modem.h localKukjin Kim2013-01-108-13/+12
| | | | | | The header can be local in mach-s3c64xx/. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C64XX: make regs-gpio-memport.h localKukjin Kim2013-01-103-8/+7
| | | | | | | The header can be local in mach-s3c64xx/. Cc: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C64XX: make crag6410.h localKukjin Kim2013-01-103-2/+2
| | | | | | | The header can be local in mach-s3c64xx/. Cc: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: remove dsc.c and make regs-dsc.h localKukjin Kim2013-01-106-62/+8
| | | | | | | The mach-s3c2440/dsc.c is no longer used and the header, regs-dsc.h can be local in mach-s3c24xx/. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: remove idle.hKukjin Kim2013-01-106-29/+0
| | | | | | The <mach/idle.h> is no longer used. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C2412: cleanup regs-s3c2412.hKukjin Kim2013-01-102-37/+14
| | | | | | Move the regs-s3c2412.h into mach-s3c24xx/s3c2412.c file. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C2416: remove regs-s3c2416-mem.h and regs-s3c2416.hKukjin Kim2013-01-102-54/+0
| | | | | | The headers no longer used anywhere now. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: make vr1000-cpld.h, vr1000-irq.h and vr1000-map.h localKukjin Kim2013-01-105-170/+133
| | | | | | The headers can be local in mach-s3c24xx/. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: make otom-map.h localKukjin Kim2013-01-102-22/+18
| | | | | | The header can be local in mach-s3c24xx/. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: make osiris-cpld.h and osiris-map.h localKukjin Kim2013-01-104-52/+29
| | | | | | This makes the headers local in mach-s3c24xx/. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: make h1940.h and h1940-latch.h localKukjin Kim2013-01-108-86/+68
| | | | | | The headers can be local in mach-s3c24xx/. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: make gta02.h localKukjin Kim2013-01-103-39/+42
| | | | | | | | | The header can be local in mach-s3c24xx/ and sort out inclusions. Accordingly, the GTA02_ macro in driver can be replaced. Cc: Sangbeom Kim <sbkim73@samsung.com> Cc: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: make bast-cpld.h, bast-irq.h and bast-map.h localKukjin Kim2013-01-1012-296/+242
| | | | | | The headers can be local in mach-s3c24xx/. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S3C24XX: make anubis-cpld, anubis-irq and anubis-map localKukjin Kim2013-01-105-92/+58
| | | | | | The headers can be local in mach-s3c24xx/. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: SAMSUNG: cleanup mach/gpio-fns.h gpio-track.h and gpio-nrs.hKukjin Kim2013-01-1010-142/+96
| | | | | | | | remove <mach/gpio-fns.h>, <mach/gpio-track.h> and <plat/gpio-fns.h> Acked-by: Linus Walleij <linus.walleij@linaro.org> Cc: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: SAMSUNG: cleanup mach/regs-audss.h fileKukjin Kim2013-01-104-38/+4
| | | | Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: EXYNOS: move mach/pmu.h file into common.hKukjin Kim2013-01-106-38/+26
| | | | Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S5PV210: move regs-sys.h into setup-usb-phy.c fileKukjin Kim2013-01-102-16/+6
| | | | | | | The <mach/regs-sys.h> can be moved into mach-s5pv210/setup-usb-phy.c file. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S5P64X0: move s5p64x0-clock.h into local directoryKukjin Kim2013-01-103-7/+6
| | | | | | The <mach/s5p64x0-clock.h> can be moved into mach-s5p64x0/. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S5P64X0: move i2c.h into local directoryKukjin Kim2013-01-105-6/+5
| | | | | | The <mach/i2c.h> can be moved into mach-s5p64x0/. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* ARM: S5P64X0: remove gpiolib.c file in mach-s5p64x0Kukjin Kim2013-01-101-508/+0
| | | | | | | | Since S5P64X0 gpiolib is supported in drivers/gpio/gpio-samsung.c, this can be removed. Probably, removing this file is missed when S5P64X0 gpiolib was supported in drivers/gpio/. Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* cpufreq: exynos: cleanup exynos-cpufreq headerKukjin Kim2013-01-105-7/+9
| | | | | Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
* Linux 3.8-rc1v3.8-rc1Linus Torvalds2012-12-221-2/+2
|
* Merge git://www.linux-watchdog.org/linux-watchdogLinus Torvalds2012-12-2219-445/+738
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pull watchdog updates from Wim Van Sebroeck: "This includes some fixes and code improvements (like clk_prepare_enable and clk_disable_unprepare), conversion from the omap_wdt and twl4030_wdt drivers to the watchdog framework, addition of the SB8x0 chipset support and the DA9055 Watchdog driver and some OF support for the davinci_wdt driver." * git://www.linux-watchdog.org/linux-watchdog: (22 commits) watchdog: mei: avoid oops in watchdog unregister code path watchdog: Orion: Fix possible null-deference in orion_wdt_probe watchdog: sp5100_tco: Add SB8x0 chipset support watchdog: davinci_wdt: add OF support watchdog: da9052: Fix invalid free of devm_ allocated data watchdog: twl4030_wdt: Change TWL4030_MODULE_PM_RECEIVER to TWL_MODULE_PM_RECEIVER watchdog: remove depends on CONFIG_EXPERIMENTAL watchdog: Convert dev_printk(KERN_<LEVEL> to dev_<level>( watchdog: DA9055 Watchdog driver watchdog: omap_wdt: eliminate goto watchdog: omap_wdt: delete redundant platform_set_drvdata() calls watchdog: omap_wdt: convert to devm_ functions watchdog: omap_wdt: convert to new watchdog core watchdog: WatchDog Timer Driver Core: fix comment watchdog: s3c2410_wdt: use clk_prepare_enable and clk_disable_unprepare watchdog: imx2_wdt: Select the driver via ARCH_MXC watchdog: cpu5wdt.c: add missing del_timer call watchdog: hpwdt.c: Increase version string watchdog: Convert twl4030_wdt to watchdog core davinci_wdt: preparation for switch to common clock framework ...
| * watchdog: mei: avoid oops in watchdog unregister code pathTomas Winkler2012-12-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With commit c7d3df3 "mei: use internal watchdog device registration tracking" will crash the kernel on shutdown path on systems where ME watchdog is not present. Since the watchdog was never initialized in such case the WDOG_UNREGISTERED bit is never set and the system crashes on access to uninitialized variables down the path. To solve the issue we query for NULL on watchdog driver driver_data to check whether the device is registered. This is handled in the driver and doesn't depend on watchdog core internals. Cc: Borislav Petkov <bp@alien8.de> Cc: Wanlong Gao <gaowanlong@cn.fujitsu.com> Signed-off-by: Jerry Snitselaar <jerry.snitselaar@oracle.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
| * watchdog: Orion: Fix possible null-deference in orion_wdt_probeJason Gunthorpe2012-12-191-0/+2
| | | | | | | | | | | | | | | | If the DT does not include a regs parameter then the null res would be dereferenced. Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
| * watchdog: sp5100_tco: Add SB8x0 chipset supportTakahisa Tanaka2012-12-192-61/+306
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current sp5100_tco driver only supports SP5100/SB7x0 chipset, doesn't support SB8x0 chipset, because current sp5100_tco driver doesn't know that the offset address for watchdog timer was changed from SB8x0 chipset. The offset address of SP5100 and SB7x0 chipsets are as follows, quote from the AMD SB700/710/750 Register Reference Guide (Page 164) and the AMD SP5100 Register Reference Guide (Page 166). WatchDogTimerControl 69h WatchDogTimerBase0 6Ch WatchDogTimerBase1 6Dh WatchDogTimerBase2 6Eh WatchDogTimerBase3 6Fh In contrast, the offset address of SB8x0 chipset is as follows, quote from AMD SB800-Series Southbridges Register Reference Guide (Page 147). WatchDogTimerEn 48h WatchDogTimerConfig 4Ch So, In the case of SB8x0 chipset, sp5100_tco reads meaningless MMIO address (for example, 0xbafe00) from wrong offset address, and the following message is logged. SP5100 TCO timer: mmio address 0xbafe00 already in use With this patch, sp5100_tco driver supports SB8x0 chipset, and can avoid iomem resource conflict. The processing of this patch is as follows. Step 1) Attempt to get the watchdog base address from indirect I/O (0xCD6 and 0xCD7). - Go to the step 7 if obtained address hasn't conflicted with other resource. But, currently, the address (0xfec000f0) conflicts with the IOAPIC MMIO address, and the following message is logged. SP5100 TCO timer: mmio address 0xfec000f0 already in use 0xfec000f0 is recommended by AMD BIOS Developer's Guide. So, go to the next step. Step 2) Attempt to get the SBResource_MMIO base address from AcpiMmioEN (for SB8x0, PM_Reg:24h) or SBResource_MMIO (SP5100/SB7x0, PCI_Reg:9Ch) register. - Go to the step 7 if these register has enabled by BIOS, and obtained address hasn't conflicted with other resource. - If above condition isn't true, go to the next step. Step 3) Attempt to get the free MMIO address from allocate_resource(). - Go to the step 7 if these register has enabled by BIOS, and obtained address hasn't conflicted with other resource. - Driver initialization has failed if obtained address has conflicted with other resource, and no 'force_addr' parameter is specified. Step 4) Use the specified address If 'force_addr' parameter is specified. - allocate_resource() function may fail, when the PCI bridge device occupies iomem resource from 0xf0000000 to 0xffffffff. To handle such a case, I added 'force_addr' parameter to sp5100_tco driver. With 'force_addr' parameter, sp5100_tco driver directly can assign MMIO address for watchdog timer from free iomem region. Note that It's dangerous to specify wrong address in the 'force_addr' parameter. Example of force_addr parameter use # cat /proc/iomem ...snip... fec00000-fec003ff : IOAPIC 0 <--- free MMIO region fec10000-fec1001f : pnp 00:0b fec20000-fec203ff : IOAPIC 1 ...snip... # cat /etc/modprobe.d/sp5100_tco.conf options sp5100_tco force_addr=0xfec00800 # modprobe sp5100_tco # cat /proc/iomem ...snip... fec00000-fec003ff : IOAPIC 0 fec00800-fec00807 : SP5100 TCO <--- watchdog timer MMIO address fec10000-fec1001f : pnp 00:0b fec20000-fec203ff : IOAPIC 1 ...snip... # - Driver initialization has failed if specified address has conflicted with other resource. Step 5) Disable the watchdog timer - To rewrite the watchdog timer register of the chipset, absolutely guarantee that the watchdog timer is disabled. Step 6) Re-program the watchdog timer MMIO address to chipset. - Re-program the obtained MMIO address in Step 3 or Step 4 to chipset via indirect I/O (0xCD6 and 0xCD7). Step 7) Enable and setup the watchdog timer This patch has worked fine on my test environment (ASUS M4A89GTD-PRO/USB3 and DL165G7). therefore I believe that it's no problem to re-program the MMIO address for watchdog timer to chipset during disabled watchdog. However, I'm not sure about it, because I don't know much about chipset programming. So, any comments will be welcome. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=43176 Tested-by: Arkadiusz Miskiewicz <arekm@maven.pl> Tested-by: Paul Menzel <paulepanter@users.sourceforge.net> Signed-off-by: Takahisa Tanaka <mc74hc00@gmail.com> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
| * watchdog: davinci_wdt: add OF supportMurali Karicheri2012-12-192-0/+19
| | | | | | | | | | | | | | | | This adds OF support for davinci_wdt driver. Signed-off-by: Murali Karicheri <m-karicheri2@ti.com> Acked-by: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
| * watchdog: da9052: Fix invalid free of devm_ allocated dataTushar Behera2012-12-191-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | It is not required to free devm_ allocated data. Since kref_put needs a valid release function, da9052_wdt_release_resources() is not deleted. Fixes following warning. drivers/watchdog/da9052_wdt.c:59:1-6: WARNING: invalid free of devm_ allocated data Signed-off-by: Tushar Behera <tushar.behera@linaro.org> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
| * watchdog: twl4030_wdt: Change TWL4030_MODULE_PM_RECEIVER to ↵Peter Ujfalusi2012-12-191-1/+1
| | | | | | | | | | | | | | | | | | | | TWL_MODULE_PM_RECEIVER To facilitate upcoming cleanup in twl stack. No functional changes. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>