Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (110 commits) sh: i2c-sh7760: Replase from ctrl_* to __raw_* sh: clkfwk: Shuffle around to match the intc split up. sh: clkfwk: modify for_each_frequency end condition sh: fix clk_get() error handling sh: clkfwk: Fix fault in frequency iterator. sh: clkfwk: Add a helper for rate rounding by divisor ranges. sh: clkfwk: Abstract rate rounding helper. sh: clkfwk: support clock remapping. sh: pci: Convert to upper/lower_32_bits() helpers. sh: mach-sdk7786: Add support for the FPGA SRAM. sh: Provide a generic SRAM pool for tiny memories. sh: pci: Support secondary FPGA-driven PCIe clocks on SDK7786. sh: pci: Support slot 4 routing on SDK7786. sh: Fix up PMB locking. sh: mach-sdk7786: Add support for fpga gpios. sh: use pr_fmt for clock framework, too. sh: remove name and id from struct clk sh: free-without-alloc fix for sh_mobile_lcdcfb sh: perf: Set up perf_max_events. sh: perf: Support SH-X3 hardware counters. ... Fix up trivial conflicts (perf_max_events got removed) in arch/sh/kernel/perf_event.c
This commit is contained in:
@@ -101,12 +101,12 @@ struct cami2c {
|
||||
|
||||
static inline void OUT32(struct cami2c *cam, int reg, unsigned long val)
|
||||
{
|
||||
ctrl_outl(val, (unsigned long)cam->iobase + reg);
|
||||
__raw_writel(val, (unsigned long)cam->iobase + reg);
|
||||
}
|
||||
|
||||
static inline unsigned long IN32(struct cami2c *cam, int reg)
|
||||
{
|
||||
return ctrl_inl((unsigned long)cam->iobase + reg);
|
||||
return __raw_readl((unsigned long)cam->iobase + reg);
|
||||
}
|
||||
|
||||
static irqreturn_t sh7760_i2c_irq(int irq, void *ptr)
|
||||
|
@@ -538,15 +538,17 @@ static int sh_mobile_i2c_hook_irqs(struct platform_device *dev, int hook)
|
||||
{
|
||||
struct resource *res;
|
||||
int ret = -ENXIO;
|
||||
int q, m;
|
||||
int k = 0;
|
||||
int n = 0;
|
||||
int n, k = 0;
|
||||
|
||||
while ((res = platform_get_resource(dev, IORESOURCE_IRQ, k))) {
|
||||
for (n = res->start; hook && n <= res->end; n++) {
|
||||
if (request_irq(n, sh_mobile_i2c_isr, IRQF_DISABLED,
|
||||
dev_name(&dev->dev), dev))
|
||||
dev_name(&dev->dev), dev)) {
|
||||
for (n--; n >= res->start; n--)
|
||||
free_irq(n, dev);
|
||||
|
||||
goto rollback;
|
||||
}
|
||||
}
|
||||
k++;
|
||||
}
|
||||
@@ -554,16 +556,17 @@ static int sh_mobile_i2c_hook_irqs(struct platform_device *dev, int hook)
|
||||
if (hook)
|
||||
return k > 0 ? 0 : -ENOENT;
|
||||
|
||||
k--;
|
||||
ret = 0;
|
||||
|
||||
rollback:
|
||||
for (q = k; k >= 0; k--) {
|
||||
for (m = n; m >= res->start; m--)
|
||||
free_irq(m, dev);
|
||||
k--;
|
||||
|
||||
res = platform_get_resource(dev, IORESOURCE_IRQ, k - 1);
|
||||
m = res->end;
|
||||
while (k >= 0) {
|
||||
res = platform_get_resource(dev, IORESOURCE_IRQ, k);
|
||||
for (n = res->start; n <= res->end; n++)
|
||||
free_irq(n, dev);
|
||||
|
||||
k--;
|
||||
}
|
||||
|
||||
return ret;
|
||||
|
Reference in New Issue
Block a user