You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge Linus' tree.
This commit is contained in:
@@ -46,10 +46,6 @@ config MCA
|
||||
<file:Documentation/mca.txt> (and especially the web page given
|
||||
there) before attempting to build an MCA bus kernel.
|
||||
|
||||
config UID16
|
||||
bool
|
||||
default y
|
||||
|
||||
config RWSEM_GENERIC_SPINLOCK
|
||||
bool
|
||||
default y
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
|
||||
#include <linux/device.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/hardware/scoop.h>
|
||||
|
||||
@@ -23,20 +23,15 @@
|
||||
#error Sorry, your compiler targets APCS-26 but this kernel requires APCS-32
|
||||
#endif
|
||||
/*
|
||||
* GCC 2.95.1, 2.95.2: ignores register clobber list in asm().
|
||||
* GCC 3.0, 3.1: general bad code generation.
|
||||
* GCC 3.2.0: incorrect function argument offset calculation.
|
||||
* GCC 3.2.x: miscompiles NEW_AUX_ENT in fs/binfmt_elf.c
|
||||
* (http://gcc.gnu.org/PR8896) and incorrect structure
|
||||
* initialisation in fs/jffs2/erase.c
|
||||
*/
|
||||
#if __GNUC__ < 2 || \
|
||||
(__GNUC__ == 2 && __GNUC_MINOR__ < 95) || \
|
||||
(__GNUC__ == 2 && __GNUC_MINOR__ == 95 && __GNUC_PATCHLEVEL__ != 0 && \
|
||||
__GNUC_PATCHLEVEL__ < 3) || \
|
||||
(__GNUC__ == 3 && __GNUC_MINOR__ < 3)
|
||||
#if (__GNUC__ == 3 && __GNUC_MINOR__ < 3)
|
||||
#error Your compiler is too buggy; it is known to miscompile kernels.
|
||||
#error Known good compilers: 2.95.3, 2.95.4, 2.96, 3.3
|
||||
#error Known good compilers: 3.3
|
||||
#endif
|
||||
|
||||
/* Use marker if you need to separate the values later */
|
||||
|
||||
+12
-2
@@ -684,8 +684,12 @@ int setup_irq(unsigned int irq, struct irqaction *new)
|
||||
spin_lock_irqsave(&irq_controller_lock, flags);
|
||||
p = &desc->action;
|
||||
if ((old = *p) != NULL) {
|
||||
/* Can't share interrupts unless both agree to */
|
||||
if (!(old->flags & new->flags & SA_SHIRQ)) {
|
||||
/*
|
||||
* Can't share interrupts unless both agree to and are
|
||||
* the same type.
|
||||
*/
|
||||
if (!(old->flags & new->flags & SA_SHIRQ) ||
|
||||
(~old->flags & new->flags) & SA_TRIGGER_MASK) {
|
||||
spin_unlock_irqrestore(&irq_controller_lock, flags);
|
||||
return -EBUSY;
|
||||
}
|
||||
@@ -705,6 +709,12 @@ int setup_irq(unsigned int irq, struct irqaction *new)
|
||||
desc->running = 0;
|
||||
desc->pending = 0;
|
||||
desc->disable_depth = 1;
|
||||
|
||||
if (new->flags & SA_TRIGGER_MASK) {
|
||||
unsigned int type = new->flags & SA_TRIGGER_MASK;
|
||||
desc->chip->set_type(irq, type);
|
||||
}
|
||||
|
||||
if (!desc->noautoenable) {
|
||||
desc->disable_depth = 0;
|
||||
desc->chip->unmask(irq);
|
||||
|
||||
@@ -601,6 +601,7 @@ EXPORT_SYMBOL(gpio_lock);
|
||||
EXPORT_SYMBOL(gpio_modify_op);
|
||||
EXPORT_SYMBOL(gpio_modify_io);
|
||||
EXPORT_SYMBOL(cpld_modify);
|
||||
EXPORT_SYMBOL(gpio_read);
|
||||
|
||||
/*
|
||||
* Initialise any other hardware after we've got the PCI bus
|
||||
|
||||
@@ -96,7 +96,8 @@ static struct rtc_ops rtc_ops = {
|
||||
.set_alarm = rtc_set_alarm,
|
||||
};
|
||||
|
||||
static irqreturn_t rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
||||
static irqreturn_t arm_rtc_interrupt(int irq, void *dev_id,
|
||||
struct pt_regs *regs)
|
||||
{
|
||||
writel(0, rtc_base + RTC_EOI);
|
||||
return IRQ_HANDLED;
|
||||
@@ -124,7 +125,7 @@ static int rtc_probe(struct amba_device *dev, void *id)
|
||||
|
||||
xtime.tv_sec = __raw_readl(rtc_base + RTC_DR);
|
||||
|
||||
ret = request_irq(dev->irq[0], rtc_interrupt, SA_INTERRUPT,
|
||||
ret = request_irq(dev->irq[0], arm_rtc_interrupt, SA_INTERRUPT,
|
||||
"rtc-pl030", dev);
|
||||
if (ret)
|
||||
goto map_out;
|
||||
|
||||
@@ -252,9 +252,8 @@ static void __init omap_serial_set_port_wakeup(int gpio_nr)
|
||||
return;
|
||||
}
|
||||
omap_set_gpio_direction(gpio_nr, 1);
|
||||
set_irq_type(OMAP_GPIO_IRQ(gpio_nr), IRQT_RISING);
|
||||
ret = request_irq(OMAP_GPIO_IRQ(gpio_nr), &omap_serial_wake_interrupt,
|
||||
0, "serial wakeup", NULL);
|
||||
SA_TRIGGER_RISING, "serial wakeup", NULL);
|
||||
if (ret) {
|
||||
omap_free_gpio(gpio_nr);
|
||||
printk(KERN_ERR "No interrupt for UART wake GPIO: %i\n",
|
||||
|
||||
@@ -213,15 +213,14 @@ static int corgi_mci_init(struct device *dev, irqreturn_t (*corgi_detect_int)(in
|
||||
|
||||
corgi_mci_platform_data.detect_delay = msecs_to_jiffies(250);
|
||||
|
||||
err = request_irq(CORGI_IRQ_GPIO_nSD_DETECT, corgi_detect_int, SA_INTERRUPT,
|
||||
"MMC card detect", data);
|
||||
err = request_irq(CORGI_IRQ_GPIO_nSD_DETECT, corgi_detect_int,
|
||||
SA_INTERRUPT | SA_TRIGGER_RISING | SA_TRIGGER_FALLING,
|
||||
"MMC card detect", data);
|
||||
if (err) {
|
||||
printk(KERN_ERR "corgi_mci_init: MMC/SD: can't request MMC card detect IRQ\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
set_irq_type(CORGI_IRQ_GPIO_nSD_DETECT, IRQT_BOTHEDGE);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -146,15 +146,14 @@ static int poodle_mci_init(struct device *dev, irqreturn_t (*poodle_detect_int)(
|
||||
|
||||
poodle_mci_platform_data.detect_delay = msecs_to_jiffies(250);
|
||||
|
||||
err = request_irq(POODLE_IRQ_GPIO_nSD_DETECT, poodle_detect_int, SA_INTERRUPT,
|
||||
"MMC card detect", data);
|
||||
err = request_irq(POODLE_IRQ_GPIO_nSD_DETECT, poodle_detect_int,
|
||||
SA_INTERRUPT | SA_TRIGGER_RISING | SA_TRIGGER_FALLING,
|
||||
"MMC card detect", data);
|
||||
if (err) {
|
||||
printk(KERN_ERR "poodle_mci_init: MMC/SD: can't request MMC card detect IRQ\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
set_irq_type(POODLE_IRQ_GPIO_nSD_DETECT, IRQT_BOTHEDGE);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -296,15 +296,14 @@ static int spitz_mci_init(struct device *dev, irqreturn_t (*spitz_detect_int)(in
|
||||
|
||||
spitz_mci_platform_data.detect_delay = msecs_to_jiffies(250);
|
||||
|
||||
err = request_irq(SPITZ_IRQ_GPIO_nSD_DETECT, spitz_detect_int, SA_INTERRUPT,
|
||||
"MMC card detect", data);
|
||||
err = request_irq(SPITZ_IRQ_GPIO_nSD_DETECT, spitz_detect_int,
|
||||
SA_INTERRUPT | SA_TRIGGER_RISING | SA_TRIGGER_FALLING,
|
||||
"MMC card detect", data);
|
||||
if (err) {
|
||||
printk(KERN_ERR "spitz_mci_init: MMC/SD: can't request MMC card detect IRQ\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
set_irq_type(SPITZ_IRQ_GPIO_nSD_DETECT, IRQT_BOTHEDGE);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/smp.h>
|
||||
#include <linux/jiffies.h>
|
||||
|
||||
#include <asm/mach/time.h>
|
||||
#include <asm/hardware/arm_twd.h>
|
||||
|
||||
@@ -84,13 +84,13 @@ static void usb_simtec_enableoc(struct s3c2410_hcd_info *info, int on)
|
||||
int ret;
|
||||
|
||||
if (on) {
|
||||
ret = request_irq(IRQ_USBOC, usb_simtec_ocirq, SA_INTERRUPT,
|
||||
ret = request_irq(IRQ_USBOC, usb_simtec_ocirq,
|
||||
SA_INTERRUPT | SA_TRIGGER_RISING |
|
||||
SA_TRIGGER_FALLING,
|
||||
"USB Over-current", info);
|
||||
if (ret != 0) {
|
||||
printk(KERN_ERR "failed to request usb oc irq\n");
|
||||
}
|
||||
|
||||
set_irq_type(IRQ_USBOC, IRQT_BOTHEDGE);
|
||||
} else {
|
||||
free_irq(IRQ_USBOC, info);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user