Commit c90c69a5 authored by Linus Torvalds's avatar Linus Torvalds

Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
  [SPARC] uctrl: Check request_irq() return value.
  [SPARC64]: Update defconfig.
  [SPARC64] bbc_i2c: Fix kenvctrld eating %100 cpu.
  [SPARC64]: Fix arch_teardown_msi_irq().
  [SPARC64]: virt_irq_free only needed when CONFIG_PCI_MSI
  [SPARC]: Remove the broken SUN_AURORA driver.
parents 6842ac64 19ba1b19
...@@ -65,7 +65,6 @@ CMAGIC 0x0111 user include/linux/a.out.h ...@@ -65,7 +65,6 @@ CMAGIC 0x0111 user include/linux/a.out.h
MKISS_DRIVER_MAGIC 0x04bf mkiss_channel drivers/net/mkiss.h MKISS_DRIVER_MAGIC 0x04bf mkiss_channel drivers/net/mkiss.h
RISCOM8_MAGIC 0x0907 riscom_port drivers/char/riscom8.h RISCOM8_MAGIC 0x0907 riscom_port drivers/char/riscom8.h
SPECIALIX_MAGIC 0x0907 specialix_port drivers/char/specialix_io8.h SPECIALIX_MAGIC 0x0907 specialix_port drivers/char/specialix_io8.h
AURORA_MAGIC 0x0A18 Aurora_port drivers/sbus/char/aurora.h
HDLC_MAGIC 0x239e n_hdlc drivers/char/n_hdlc.c HDLC_MAGIC 0x239e n_hdlc drivers/char/n_hdlc.c
APM_BIOS_MAGIC 0x4101 apm_user arch/i386/kernel/apm.c APM_BIOS_MAGIC 0x4101 apm_user arch/i386/kernel/apm.c
CYCLADES_MAGIC 0x4359 cyclades_port include/linux/cyclades.h CYCLADES_MAGIC 0x4359 cyclades_port include/linux/cyclades.h
......
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Linux kernel version: 2.6.20 # Linux kernel version: 2.6.21-rc1
# Sun Feb 11 23:47:40 2007 # Mon Feb 26 10:45:21 2007
# #
CONFIG_SPARC=y CONFIG_SPARC=y
CONFIG_SPARC64=y CONFIG_SPARC64=y
...@@ -41,6 +41,7 @@ CONFIG_LOCALVERSION="" ...@@ -41,6 +41,7 @@ CONFIG_LOCALVERSION=""
CONFIG_SWAP=y CONFIG_SWAP=y
CONFIG_SYSVIPC=y CONFIG_SYSVIPC=y
# CONFIG_IPC_NS is not set # CONFIG_IPC_NS is not set
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set # CONFIG_TASKSTATS is not set
...@@ -322,6 +323,7 @@ CONFIG_CONNECTOR=m ...@@ -322,6 +323,7 @@ CONFIG_CONNECTOR=m
# #
# Plug and Play support # Plug and Play support
# #
# CONFIG_PNPACPI is not set
# #
# Block devices # Block devices
...@@ -787,6 +789,7 @@ CONFIG_I2C_ALGOBIT=y ...@@ -787,6 +789,7 @@ CONFIG_I2C_ALGOBIT=y
# CONFIG_I2C_NFORCE2 is not set # CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_OCORES is not set # CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_PASEMI is not set
# CONFIG_I2C_PROSAVAGE is not set # CONFIG_I2C_PROSAVAGE is not set
# CONFIG_I2C_SAVAGE4 is not set # CONFIG_I2C_SAVAGE4 is not set
# CONFIG_I2C_SIS5595 is not set # CONFIG_I2C_SIS5595 is not set
...@@ -833,6 +836,7 @@ CONFIG_HWMON=y ...@@ -833,6 +836,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_ADM1021 is not set # CONFIG_SENSORS_ADM1021 is not set
# CONFIG_SENSORS_ADM1025 is not set # CONFIG_SENSORS_ADM1025 is not set
# CONFIG_SENSORS_ADM1026 is not set # CONFIG_SENSORS_ADM1026 is not set
# CONFIG_SENSORS_ADM1029 is not set
# CONFIG_SENSORS_ADM1031 is not set # CONFIG_SENSORS_ADM1031 is not set
# CONFIG_SENSORS_ADM9240 is not set # CONFIG_SENSORS_ADM9240 is not set
# CONFIG_SENSORS_ASB100 is not set # CONFIG_SENSORS_ASB100 is not set
...@@ -873,6 +877,11 @@ CONFIG_HWMON=y ...@@ -873,6 +877,11 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_W83627EHF is not set # CONFIG_SENSORS_W83627EHF is not set
# CONFIG_HWMON_DEBUG_CHIP is not set # CONFIG_HWMON_DEBUG_CHIP is not set
#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set
# #
# Multimedia devices # Multimedia devices
# #
...@@ -887,16 +896,22 @@ CONFIG_HWMON=y ...@@ -887,16 +896,22 @@ CONFIG_HWMON=y
# #
# Graphics support # Graphics support
# #
# CONFIG_FIRMWARE_EDID is not set # CONFIG_BACKLIGHT_LCD_SUPPORT is not set
CONFIG_FB=y CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not set
CONFIG_FB_DDC=y CONFIG_FB_DDC=y
CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set # CONFIG_FB_MACMODES is not set
# CONFIG_FB_BACKLIGHT is not set # CONFIG_FB_BACKLIGHT is not set
CONFIG_FB_MODE_HELPERS=y CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y CONFIG_FB_TILEBLITTING=y
#
# Frambuffer hardware drivers
#
# CONFIG_FB_CIRRUS is not set # CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set # CONFIG_FB_PM2 is not set
# CONFIG_FB_ASILIANT is not set # CONFIG_FB_ASILIANT is not set
...@@ -908,9 +923,11 @@ CONFIG_FB_TILEBLITTING=y ...@@ -908,9 +923,11 @@ CONFIG_FB_TILEBLITTING=y
# CONFIG_FB_MATROX is not set # CONFIG_FB_MATROX is not set
CONFIG_FB_RADEON=y CONFIG_FB_RADEON=y
CONFIG_FB_RADEON_I2C=y CONFIG_FB_RADEON_I2C=y
# CONFIG_FB_RADEON_BACKLIGHT is not set
# CONFIG_FB_RADEON_DEBUG is not set # CONFIG_FB_RADEON_DEBUG is not set
# CONFIG_FB_ATY128 is not set # CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set # CONFIG_FB_ATY is not set
# CONFIG_FB_S3 is not set
# CONFIG_FB_SAVAGE is not set # CONFIG_FB_SAVAGE is not set
# CONFIG_FB_SIS is not set # CONFIG_FB_SIS is not set
# CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_NEOMAGIC is not set
...@@ -947,7 +964,6 @@ CONFIG_LOGO=y ...@@ -947,7 +964,6 @@ CONFIG_LOGO=y
# CONFIG_LOGO_LINUX_VGA16 is not set # CONFIG_LOGO_LINUX_VGA16 is not set
# CONFIG_LOGO_LINUX_CLUT224 is not set # CONFIG_LOGO_LINUX_CLUT224 is not set
CONFIG_LOGO_SUN_CLUT224=y CONFIG_LOGO_SUN_CLUT224=y
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
# #
# Sound # Sound
...@@ -1192,6 +1208,7 @@ CONFIG_USB_HIDDEV=y ...@@ -1192,6 +1208,7 @@ CONFIG_USB_HIDDEV=y
# CONFIG_USB_RIO500 is not set # CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set # CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set # CONFIG_USB_LCD is not set
# CONFIG_USB_BERRY_CHARGE is not set
# CONFIG_USB_LED is not set # CONFIG_USB_LED is not set
# CONFIG_USB_CYPRESS_CY7C63 is not set # CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set # CONFIG_USB_CYTHERM is not set
...@@ -1445,9 +1462,11 @@ CONFIG_MAGIC_SYSRQ=y ...@@ -1445,9 +1462,11 @@ CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_FS=y CONFIG_DEBUG_FS=y
# CONFIG_HEADERS_CHECK is not set # CONFIG_HEADERS_CHECK is not set
CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_KERNEL=y
# CONFIG_DEBUG_SHIRQ is not set
CONFIG_LOG_BUF_SHIFT=18 CONFIG_LOG_BUF_SHIFT=18
CONFIG_DETECT_SOFTLOCKUP=y CONFIG_DETECT_SOFTLOCKUP=y
CONFIG_SCHEDSTATS=y CONFIG_SCHEDSTATS=y
# CONFIG_TIMER_STATS is not set
# CONFIG_DEBUG_SLAB is not set # CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set # CONFIG_RT_MUTEX_TESTER is not set
...@@ -1465,6 +1484,7 @@ CONFIG_DEBUG_BUGVERBOSE=y ...@@ -1465,6 +1484,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_FORCED_INLINING=y CONFIG_FORCED_INLINING=y
# CONFIG_RCU_TORTURE_TEST is not set # CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_LKDTM is not set # CONFIG_LKDTM is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUG_DCFLUSH is not set # CONFIG_DEBUG_DCFLUSH is not set
# CONFIG_STACK_DEBUG is not set # CONFIG_STACK_DEBUG is not set
......
...@@ -109,6 +109,7 @@ static unsigned char virt_irq_alloc(unsigned int real_irq) ...@@ -109,6 +109,7 @@ static unsigned char virt_irq_alloc(unsigned int real_irq)
return ent; return ent;
} }
#ifdef CONFIG_PCI_MSI
static void virt_irq_free(unsigned int virt_irq) static void virt_irq_free(unsigned int virt_irq)
{ {
unsigned int real_irq; unsigned int real_irq;
...@@ -121,6 +122,7 @@ static void virt_irq_free(unsigned int virt_irq) ...@@ -121,6 +122,7 @@ static void virt_irq_free(unsigned int virt_irq)
__bucket(real_irq)->virt_irq = 0; __bucket(real_irq)->virt_irq = 0;
} }
#endif
static unsigned int virt_to_real_irq(unsigned char virt_irq) static unsigned int virt_to_real_irq(unsigned char virt_irq)
{ {
......
...@@ -668,7 +668,7 @@ int arch_setup_msi_irq(struct pci_dev *pdev, struct msi_desc *desc) ...@@ -668,7 +668,7 @@ int arch_setup_msi_irq(struct pci_dev *pdev, struct msi_desc *desc)
void arch_teardown_msi_irq(unsigned int virt_irq) void arch_teardown_msi_irq(unsigned int virt_irq)
{ {
struct msi_desc *entry = get_irq_data(virt_irq); struct msi_desc *entry = get_irq_msi(virt_irq);
struct pci_dev *pdev = entry->dev; struct pci_dev *pdev = entry->dev;
struct pcidev_cookie *pcp = pdev->sysdata; struct pcidev_cookie *pcp = pdev->sysdata;
struct pci_pbm_info *pbm = pcp->pbm; struct pci_pbm_info *pbm = pcp->pbm;
......
...@@ -46,13 +46,6 @@ config SUN_VIDEOPIX ...@@ -46,13 +46,6 @@ config SUN_VIDEOPIX
based on the Phillips SAA9051, can handle NTSC and PAL/SECAM and based on the Phillips SAA9051, can handle NTSC and PAL/SECAM and
SVIDEO signals. SVIDEO signals.
config SUN_AURORA
tristate "Aurora Multiboard 1600se (EXPERIMENTAL)"
depends on EXPERIMENTAL && BROKEN
help
The Aurora Multiboard is a multi-port high-speed serial controller.
If you have one of these, say Y.
config TADPOLE_TS102_UCTRL config TADPOLE_TS102_UCTRL
tristate "Tadpole TS102 Microcontroller support (EXPERIMENTAL)" tristate "Tadpole TS102 Microcontroller support (EXPERIMENTAL)"
depends on EXPERIMENTAL && SPARC32 depends on EXPERIMENTAL && SPARC32
......
...@@ -19,7 +19,6 @@ obj-$(CONFIG_SUN_OPENPROMIO) += openprom.o ...@@ -19,7 +19,6 @@ obj-$(CONFIG_SUN_OPENPROMIO) += openprom.o
obj-$(CONFIG_SUN_MOSTEK_RTC) += rtc.o obj-$(CONFIG_SUN_MOSTEK_RTC) += rtc.o
obj-$(CONFIG_SUN_BPP) += bpp.o obj-$(CONFIG_SUN_BPP) += bpp.o
obj-$(CONFIG_SUN_VIDEOPIX) += vfc.o obj-$(CONFIG_SUN_VIDEOPIX) += vfc.o
obj-$(CONFIG_SUN_AURORA) += aurora.o
obj-$(CONFIG_TADPOLE_TS102_UCTRL) += uctrl.o obj-$(CONFIG_TADPOLE_TS102_UCTRL) += uctrl.o
obj-$(CONFIG_SUN_JSFLASH) += jsflash.o obj-$(CONFIG_SUN_JSFLASH) += jsflash.o
obj-$(CONFIG_BBC_I2C) += bbc.o obj-$(CONFIG_BBC_I2C) += bbc.o
This diff is collapsed.
This diff is collapsed.
...@@ -187,19 +187,20 @@ static int wait_for_pin(struct bbc_i2c_bus *bp, u8 *status) ...@@ -187,19 +187,20 @@ static int wait_for_pin(struct bbc_i2c_bus *bp, u8 *status)
bp->waiting = 1; bp->waiting = 1;
add_wait_queue(&bp->wq, &wait); add_wait_queue(&bp->wq, &wait);
while (limit-- > 0) { while (limit-- > 0) {
u8 val; unsigned long val;
set_current_state(TASK_INTERRUPTIBLE); val = wait_event_interruptible_timeout(
*status = val = readb(bp->i2c_control_regs + 0); bp->wq,
if ((val & I2C_PCF_PIN) == 0) { (((*status = readb(bp->i2c_control_regs + 0))
& I2C_PCF_PIN) == 0),
msecs_to_jiffies(250));
if (val > 0) {
ret = 0; ret = 0;
break; break;
} }
msleep_interruptible(250);
} }
remove_wait_queue(&bp->wq, &wait); remove_wait_queue(&bp->wq, &wait);
bp->waiting = 0; bp->waiting = 0;
current->state = TASK_RUNNING;
return ret; return ret;
} }
...@@ -340,7 +341,7 @@ static irqreturn_t bbc_i2c_interrupt(int irq, void *dev_id) ...@@ -340,7 +341,7 @@ static irqreturn_t bbc_i2c_interrupt(int irq, void *dev_id)
*/ */
if (bp->waiting && if (bp->waiting &&
!(readb(bp->i2c_control_regs + 0x0) & I2C_PCF_PIN)) !(readb(bp->i2c_control_regs + 0x0) & I2C_PCF_PIN))
wake_up(&bp->wq); wake_up_interruptible(&bp->wq);
return IRQ_HANDLED; return IRQ_HANDLED;
} }
......
This diff is collapsed.
...@@ -364,6 +364,7 @@ static int __init ts102_uctrl_init(void) ...@@ -364,6 +364,7 @@ static int __init ts102_uctrl_init(void)
struct linux_prom_irqs tmp_irq[2]; struct linux_prom_irqs tmp_irq[2];
unsigned int vaddr[2] = { 0, 0 }; unsigned int vaddr[2] = { 0, 0 };
int tmpnode, uctrlnode = prom_getchild(prom_root_node); int tmpnode, uctrlnode = prom_getchild(prom_root_node);
int err;
tmpnode = prom_searchsiblings(uctrlnode, "obio"); tmpnode = prom_searchsiblings(uctrlnode, "obio");
...@@ -389,7 +390,12 @@ static int __init ts102_uctrl_init(void) ...@@ -389,7 +390,12 @@ static int __init ts102_uctrl_init(void)
if(!driver->irq) if(!driver->irq)
driver->irq = tmp_irq[0].pri; driver->irq = tmp_irq[0].pri;
request_irq(driver->irq, uctrl_interrupt, 0, "uctrl", driver); err = request_irq(driver->irq, uctrl_interrupt, 0, "uctrl", driver);
if (err) {
printk("%s: unable to register irq %d\n",
__FUNCTION__, driver->irq);
return err;
}
if (misc_register(&uctrl_dev)) { if (misc_register(&uctrl_dev)) {
printk("%s: unable to get misc minor %d\n", printk("%s: unable to get misc minor %d\n",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment