mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 19:51:31 -04:00
Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm
Pull ARM updates from Russell King:
"The major updates included in this update are:
- Clang compatible stack pointer accesses by Behan Webster.
- SA11x0 updates from Dmitry Eremin-Solenikov.
- kgdb handling of breakpoints with read-only text/modules
- Support for Privileged-no-execute feature on ARMv7 to prevent
userspace code execution by the kernel.
- AMBA primecell bus handling of irq-safe runtime PM
- Unwinding support for memset/memzero/memmove/memcpy functions
- VFP fixes for Krait CPUs and improvements in detecting the VFP
architecture
- A number of code cleanups (using pr_*, removing or reducing the
severity of a couple of kernel messages, splitting ftrace asm code
out to a separate file, etc.)
- Add machine name to stack dump output"
* 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm: (62 commits)
ARM: 8247/2: pcmcia: sa1100: make use of device clock
ARM: 8246/2: pcmcia: sa1111: provide device clock
ARM: 8245/1: pcmcia: soc-common: enable/disable socket clocks
ARM: 8244/1: fbdev: sa1100fb: make use of device clock
ARM: 8243/1: sa1100: add a clock alias for sa1111 pcmcia device
ARM: 8242/1: sa1100: add cpu clock
ARM: 8221/1: PJ4: allow building in Thumb-2 mode
ARM: 8234/1: sa1100: reorder IRQ handling code
ARM: 8233/1: sa1100: switch to hwirq usage
ARM: 8232/1: sa1100: merge GPIO multiplexer IRQ to "normal" irq domain
ARM: 8231/1: sa1100: introduce irqdomains support
ARM: 8230/1: sa1100: shift IRQs by one
ARM: 8229/1: sa1100: replace irq numbers with names in irq driver
ARM: 8228/1: sa1100: drop entry-macro.S
ARM: 8227/1: sa1100: switch to MULTI_IRQ_HANDLER
ARM: 8241/1: Update processor_modes for hyp and monitor mode
ARM: 8240/1: MCPM: document mcpm_sync_init()
ARM: 8239/1: Introduce {set,clear}_pte_bit
ARM: 8238/1: mm: Refine set_memory_* functions
ARM: 8237/1: fix flush_pfn_alias
...
This commit is contained in:
commit
26ceb127f7
92 changed files with 1592 additions and 850 deletions
|
|
@ -93,6 +93,7 @@ static int sa11x0_drv_pcmcia_remove(struct platform_device *dev)
|
|||
for (i = 0; i < sinfo->nskt; i++)
|
||||
soc_pcmcia_remove_one(&sinfo->skt[i]);
|
||||
|
||||
clk_put(sinfo->clk);
|
||||
kfree(sinfo);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -145,6 +145,12 @@ int sa1111_pcmcia_add(struct sa1111_dev *dev, struct pcmcia_low_level *ops,
|
|||
return -ENOMEM;
|
||||
|
||||
s->soc.nr = ops->first + i;
|
||||
s->soc.clk = clk_get(&dev->dev, NULL);
|
||||
if (IS_ERR(s->soc.clk)) {
|
||||
ret = PTR_ERR(s->soc.clk);
|
||||
kfree(s);
|
||||
return ret;
|
||||
}
|
||||
soc_pcmcia_init_one(&s->soc, ops, &dev->dev);
|
||||
s->dev = dev;
|
||||
if (s->soc.nr) {
|
||||
|
|
@ -220,6 +226,7 @@ static int pcmcia_remove(struct sa1111_dev *dev)
|
|||
for (; s; s = next) {
|
||||
next = s->next;
|
||||
soc_pcmcia_remove_one(&s->soc);
|
||||
clk_put(s->soc.clk);
|
||||
kfree(s);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -135,14 +135,16 @@ sa1100_pcmcia_frequency_change(struct soc_pcmcia_socket *skt,
|
|||
static int
|
||||
sa1100_pcmcia_set_timing(struct soc_pcmcia_socket *skt)
|
||||
{
|
||||
return sa1100_pcmcia_set_mecr(skt, cpufreq_get(0));
|
||||
unsigned long clk = clk_get_rate(skt->clk);
|
||||
|
||||
return sa1100_pcmcia_set_mecr(skt, clk / 1000);
|
||||
}
|
||||
|
||||
static int
|
||||
sa1100_pcmcia_show_timing(struct soc_pcmcia_socket *skt, char *buf)
|
||||
{
|
||||
struct soc_pcmcia_timing timing;
|
||||
unsigned int clock = cpufreq_get(0);
|
||||
unsigned int clock = clk_get_rate(skt->clk);
|
||||
unsigned long mecr = MECR;
|
||||
char *p = buf;
|
||||
|
||||
|
|
@ -218,6 +220,11 @@ int sa11xx_drv_pcmcia_probe(struct device *dev, struct pcmcia_low_level *ops,
|
|||
struct skt_dev_info *sinfo;
|
||||
struct soc_pcmcia_socket *skt;
|
||||
int i, ret = 0;
|
||||
struct clk *clk;
|
||||
|
||||
clk = clk_get(dev, NULL);
|
||||
if (IS_ERR(clk))
|
||||
return PTR_ERR(clk);
|
||||
|
||||
sa11xx_drv_pcmcia_ops(ops);
|
||||
|
||||
|
|
@ -226,12 +233,14 @@ int sa11xx_drv_pcmcia_probe(struct device *dev, struct pcmcia_low_level *ops,
|
|||
return -ENOMEM;
|
||||
|
||||
sinfo->nskt = nr;
|
||||
sinfo->clk = clk;
|
||||
|
||||
/* Initialize processor specific parameters */
|
||||
for (i = 0; i < nr; i++) {
|
||||
skt = &sinfo->skt[i];
|
||||
|
||||
skt->nr = first + i;
|
||||
skt->clk = clk;
|
||||
soc_pcmcia_init_one(skt, ops, dev);
|
||||
|
||||
ret = sa11xx_drv_pcmcia_add_one(skt);
|
||||
|
|
@ -242,6 +251,7 @@ int sa11xx_drv_pcmcia_probe(struct device *dev, struct pcmcia_low_level *ops,
|
|||
if (ret) {
|
||||
while (--i >= 0)
|
||||
soc_pcmcia_remove_one(&sinfo->skt[i]);
|
||||
clk_put(clk);
|
||||
kfree(sinfo);
|
||||
} else {
|
||||
dev_set_drvdata(dev, sinfo);
|
||||
|
|
|
|||
|
|
@ -120,6 +120,8 @@ static void __soc_pcmcia_hw_shutdown(struct soc_pcmcia_socket *skt,
|
|||
|
||||
if (skt->ops->hw_shutdown)
|
||||
skt->ops->hw_shutdown(skt);
|
||||
|
||||
clk_disable_unprepare(skt->clk);
|
||||
}
|
||||
|
||||
static void soc_pcmcia_hw_shutdown(struct soc_pcmcia_socket *skt)
|
||||
|
|
@ -131,6 +133,8 @@ static int soc_pcmcia_hw_init(struct soc_pcmcia_socket *skt)
|
|||
{
|
||||
int ret = 0, i;
|
||||
|
||||
clk_prepare_enable(skt->clk);
|
||||
|
||||
if (skt->ops->hw_init) {
|
||||
ret = skt->ops->hw_init(skt);
|
||||
if (ret)
|
||||
|
|
|
|||
Loading…
Reference in a new issue