aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/acorn/block/mfmhd.c1
-rw-r--r--drivers/acorn/char/i2c.c1
-rw-r--r--drivers/acpi/i2c_ec.c1
-rw-r--r--drivers/acpi/namespace/nsinit.c9
-rw-r--r--drivers/acpi/sleep/poweroff.c1
-rw-r--r--drivers/acpi/tables.c1
-rw-r--r--drivers/acpi/thermal.c3
-rw-r--r--drivers/ata/ahci.c1
-rw-r--r--drivers/ata/pata_mpiix.c2
-rw-r--r--drivers/ata/pata_pcmcia.c2
-rw-r--r--drivers/ata/pata_pdc2027x.c2
-rw-r--r--drivers/ata/pdc_adma.c1
-rw-r--r--drivers/ata/sata_inic162x.c2
-rw-r--r--drivers/ata/sata_mv.c1
-rw-r--r--drivers/ata/sata_promise.c1
-rw-r--r--drivers/ata/sata_qstor.c1
-rw-r--r--drivers/ata/sata_sx4.c1
-rw-r--r--drivers/atm/adummy.c1
-rw-r--r--drivers/atm/fore200e.c1
-rw-r--r--drivers/atm/idt77105.c1
-rw-r--r--drivers/atm/uPD98402.c1
-rw-r--r--drivers/atm/zatm.c1
-rw-r--r--drivers/block/acsi.c1
-rw-r--r--drivers/block/paride/pd.c1
-rw-r--r--drivers/block/umem.c1
-rw-r--r--drivers/bluetooth/bfusb.c1
-rw-r--r--drivers/bluetooth/bt3c_cs.c1
-rw-r--r--drivers/bluetooth/btuart_cs.c1
-rw-r--r--drivers/bluetooth/dtl1_cs.c1
-rw-r--r--drivers/bluetooth/hci_bcsp.c1
-rw-r--r--drivers/bluetooth/hci_h4.c1
-rw-r--r--drivers/bluetooth/hci_ldisc.c1
-rw-r--r--drivers/bluetooth/hci_usb.c1
-rw-r--r--drivers/cdrom/aztcd.c1
-rw-r--r--drivers/cdrom/cdrom.c4
-rw-r--r--drivers/cdrom/cm206.c1
-rw-r--r--drivers/cdrom/gscd.c1
-rw-r--r--drivers/cdrom/sjcd.c1
-rw-r--r--drivers/char/briq_panel.c1
-rw-r--r--drivers/char/drm/ffb_context.c1
-rw-r--r--drivers/char/drm/ffb_drv.c1
-rw-r--r--drivers/char/ds1620.c1
-rw-r--r--drivers/char/dsp56k.c1
-rw-r--r--drivers/char/hpet.c6
-rw-r--r--drivers/char/hvsi.c1
-rw-r--r--drivers/char/ipmi/ipmi_devintf.c1
-rw-r--r--drivers/char/ipmi/ipmi_msghandler.c1
-rw-r--r--drivers/char/ipmi/ipmi_poweroff.c2
-rw-r--r--drivers/char/nvram.c1
-rw-r--r--drivers/char/nwflash.c1
-rw-r--r--drivers/char/pty.c1
-rw-r--r--drivers/char/rtc.c8
-rw-r--r--drivers/char/ser_a2232.c1
-rw-r--r--drivers/char/sonypi.c1
-rw-r--r--drivers/char/tlclk.c1
-rw-r--r--drivers/char/toshiba.c1
-rw-r--r--drivers/char/tpm/tpm.c1
-rw-r--r--drivers/char/vc_screen.c1
-rw-r--r--drivers/char/vme_scc.c1
-rw-r--r--drivers/char/watchdog/rm9k_wdt.c2
-rw-r--r--drivers/cpufreq/cpufreq_conservative.c1
-rw-r--r--drivers/crypto/geode-aes.c1
-rw-r--r--drivers/fc4/fc_syms.c1
-rw-r--r--drivers/fc4/soc.c1
-rw-r--r--drivers/fc4/socal.c1
-rw-r--r--drivers/hid/hid-core.c1
-rw-r--r--drivers/i2c/busses/i2c-ali1535.c1
-rw-r--r--drivers/i2c/busses/i2c-ali15x3.c1
-rw-r--r--drivers/i2c/busses/i2c-amd756.c1
-rw-r--r--drivers/i2c/busses/i2c-amd8111.c1
-rw-r--r--drivers/i2c/busses/i2c-i801.c1
-rw-r--r--drivers/i2c/busses/i2c-iop3xx.c1
-rw-r--r--drivers/i2c/busses/i2c-nforce2.c1
-rw-r--r--drivers/i2c/busses/i2c-ocores.c1
-rw-r--r--drivers/i2c/busses/i2c-piix4.c1
-rw-r--r--drivers/i2c/busses/i2c-s3c2410.c1
-rw-r--r--drivers/i2c/busses/i2c-sis96x.c1
-rw-r--r--drivers/i2c/chips/eeprom.c1
-rw-r--r--drivers/ide/ide-proc.c1
-rw-r--r--drivers/ide/legacy/ide-cs.c1
-rw-r--r--drivers/ide/ppc/mpc8xx.c1
-rw-r--r--drivers/ide/ppc/pmac.c1
-rw-r--r--drivers/ieee1394/eth1394.c1
-rw-r--r--drivers/ieee1394/iso.c1
-rw-r--r--drivers/ieee1394/ohci1394.c1
-rw-r--r--drivers/infiniband/core/cache.c1
-rw-r--r--drivers/infiniband/hw/amso1100/c2.c2
-rw-r--r--drivers/infiniband/hw/ehca/ehca_eq.c4
-rw-r--r--drivers/input/ff-memless.c2
-rw-r--r--drivers/input/input.c1
-rw-r--r--drivers/input/keyboard/gpio_keys.c2
-rw-r--r--drivers/input/mouse/rpcmouse.c1
-rw-r--r--drivers/input/serio/hil_mlc.c1
-rw-r--r--drivers/input/serio/hp_sdc.c1
-rw-r--r--drivers/isdn/capi/capidrv.c1
-rw-r--r--drivers/isdn/hardware/avm/avm_cs.c1
-rw-r--r--drivers/isdn/hardware/eicon/divamnt.c1
-rw-r--r--drivers/isdn/hardware/eicon/divasmain.c1
-rw-r--r--drivers/isdn/hisax/avma1_cs.c1
-rw-r--r--drivers/isdn/hisax/elsa_cs.c1
-rw-r--r--drivers/isdn/hisax/hfc_usb.c1
-rw-r--r--drivers/isdn/hisax/sedlbauer_cs.c1
-rw-r--r--drivers/isdn/hisax/teles_cs.c1
-rw-r--r--drivers/isdn/hysdn/boardergo.c1
-rw-r--r--drivers/isdn/hysdn/hysdn_sched.c1
-rw-r--r--drivers/isdn/i4l/isdn_bsdcomp.c1
-rw-r--r--drivers/isdn/pcbit/callbacks.c1
-rw-r--r--drivers/isdn/pcbit/capi.c1
-rw-r--r--drivers/isdn/pcbit/drv.c1
-rw-r--r--drivers/isdn/pcbit/edss1.c1
-rw-r--r--drivers/isdn/pcbit/layer2.c1
-rw-r--r--drivers/isdn/pcbit/module.c1
-rw-r--r--drivers/kvm/vmx.c12
-rw-r--r--drivers/macintosh/mac_hid.c2
-rw-r--r--drivers/macintosh/macio-adb.c1
-rw-r--r--drivers/macintosh/via-cuda.c1
-rw-r--r--drivers/macintosh/via-macii.c1
-rw-r--r--drivers/macintosh/via-maciisi.c1
-rw-r--r--drivers/macintosh/via-pmu68k.c1
-rw-r--r--drivers/md/md.c2
-rw-r--r--drivers/media/dvb/dvb-core/dmxdev.c1
-rw-r--r--drivers/media/dvb/dvb-core/dvbdev.c1
-rw-r--r--drivers/media/dvb/ttpci/av7110_av.c1
-rw-r--r--drivers/media/dvb/ttpci/av7110_ca.c1
-rw-r--r--drivers/media/dvb/ttpci/av7110_hw.c1
-rw-r--r--drivers/media/dvb/ttpci/av7110_v4l.c1
-rw-r--r--drivers/media/radio/miropcm20-rds.c1
-rw-r--r--drivers/media/radio/radio-maestro.c1
-rw-r--r--drivers/media/radio/radio-maxiradio.c1
-rw-r--r--drivers/media/video/adv7170.c1
-rw-r--r--drivers/media/video/adv7175.c1
-rw-r--r--drivers/media/video/bt819.c1
-rw-r--r--drivers/media/video/bt856.c1
-rw-r--r--drivers/media/video/bt8xx/bttv-vbi.c1
-rw-r--r--drivers/media/video/cx88/cx88-tvaudio.c1
-rw-r--r--drivers/media/video/em28xx/em28xx-input.c1
-rw-r--r--drivers/media/video/indycam.c1
-rw-r--r--drivers/media/video/ir-kbd-i2c.c1
-rw-r--r--drivers/media/video/meye.c1
-rw-r--r--drivers/media/video/pms.c1
-rw-r--r--drivers/media/video/saa5246a.c1
-rw-r--r--drivers/media/video/saa7111.c1
-rw-r--r--drivers/media/video/saa7114.c1
-rw-r--r--drivers/media/video/saa711x.c1
-rw-r--r--drivers/media/video/saa7134/saa6752hs.c1
-rw-r--r--drivers/media/video/saa7134/saa7134-input.c1
-rw-r--r--drivers/media/video/saa7185.c1
-rw-r--r--drivers/media/video/saa7191.c1
-rw-r--r--drivers/media/video/tda7432.c1
-rw-r--r--drivers/media/video/tda9875.c1
-rw-r--r--drivers/media/video/tuner-core.c1
-rw-r--r--drivers/media/video/tvmixer.c1
-rw-r--r--drivers/media/video/usbvideo/ibmcam.c1
-rw-r--r--drivers/media/video/usbvideo/ultracam.c1
-rw-r--r--drivers/media/video/usbvision/usbvision-core.c1
-rw-r--r--drivers/media/video/usbvision/usbvision-i2c.c1
-rw-r--r--drivers/media/video/usbvision/usbvision-video.c1
-rw-r--r--drivers/media/video/v4l2-common.c1
-rw-r--r--drivers/media/video/videodev.c1
-rw-r--r--drivers/message/fusion/mptfc.c1
-rw-r--r--drivers/message/fusion/mptsas.c2
-rw-r--r--drivers/message/fusion/mptscsih.c1
-rw-r--r--drivers/message/fusion/mptspi.c1
-rw-r--r--drivers/misc/tifm_7xx1.c2
-rw-r--r--drivers/mmc/mmc_block.c1
-rw-r--r--drivers/mtd/chips/cfi_util.c1
-rw-r--r--drivers/mtd/devices/doc2001.c1
-rw-r--r--drivers/mtd/devices/doc2001plus.c1
-rw-r--r--drivers/mtd/devices/docecc.c1
-rw-r--r--drivers/mtd/devices/pmc551.c1
-rw-r--r--drivers/mtd/devices/slram.c1
-rw-r--r--drivers/mtd/ftl.c1
-rw-r--r--drivers/mtd/inftlmount.c1
-rw-r--r--drivers/mtd/mtdcore.c1
-rw-r--r--drivers/mtd/nand/cafe.c3
-rw-r--r--drivers/mtd/nftlcore.c1
-rw-r--r--drivers/net/7990.c2
-rw-r--r--drivers/net/arm/ether1.c1
-rw-r--r--drivers/net/arm/ether3.c1
-rw-r--r--drivers/net/arm/etherh.c1
-rw-r--r--drivers/net/au1000_eth.c1
-rw-r--r--drivers/net/bonding/bond_main.c1
-rw-r--r--drivers/net/bonding/bond_sysfs.c1
-rw-r--r--drivers/net/cris/eth_v10.c1
-rw-r--r--drivers/net/cxgb3/cxgb3_main.c3
-rw-r--r--drivers/net/ehea/ehea_main.c8
-rw-r--r--drivers/net/fec_8xx/fec_8xx-netta.c1
-rw-r--r--drivers/net/fec_8xx/fec_main.c1
-rw-r--r--drivers/net/fec_8xx/fec_mii.c1
-rw-r--r--drivers/net/fs_enet/fs_enet-main.c1
-rw-r--r--drivers/net/fs_enet/mac-fcc.c1
-rw-r--r--drivers/net/fs_enet/mac-fec.c1
-rw-r--r--drivers/net/fs_enet/mac-scc.c1
-rw-r--r--drivers/net/fs_enet/mii-bitbang.c1
-rw-r--r--drivers/net/fs_enet/mii-fec.c1
-rw-r--r--drivers/net/gianfar.c1
-rw-r--r--drivers/net/gianfar_ethtool.c1
-rw-r--r--drivers/net/gianfar_mii.c1
-rw-r--r--drivers/net/gianfar_sysfs.c1
-rw-r--r--drivers/net/ibm_emac/ibm_emac_core.c1
-rw-r--r--drivers/net/irda/ma600-sir.c1
-rw-r--r--drivers/net/macb.c2
-rw-r--r--drivers/net/meth.c1
-rw-r--r--drivers/net/mipsnet.c1
-rw-r--r--drivers/net/netxen/netxen_nic_main.c4
-rw-r--r--drivers/net/phy/cicada.c1
-rw-r--r--drivers/net/phy/davicom.c1
-rw-r--r--drivers/net/phy/fixed.c1
-rw-r--r--drivers/net/phy/lxt.c1
-rw-r--r--drivers/net/phy/marvell.c1
-rw-r--r--drivers/net/phy/mdio_bus.c1
-rw-r--r--drivers/net/phy/phy.c1
-rw-r--r--drivers/net/phy/phy_device.c1
-rw-r--r--drivers/net/phy/qsemi.c1
-rwxr-xr-xdrivers/net/qla3xxx.c4
-rw-r--r--drivers/net/s2io.c1
-rw-r--r--drivers/net/sc92031.c2
-rw-r--r--drivers/net/sungem_phy.c1
-rw-r--r--drivers/net/tsi108_eth.c1
-rw-r--r--drivers/net/ucc_geth.c4
-rw-r--r--drivers/net/ucc_geth_phy.c1
-rw-r--r--drivers/net/wan/cycx_drv.c1
-rw-r--r--drivers/net/wan/pci200syn.c1
-rw-r--r--drivers/net/wireless/arlan-proc.c4
-rw-r--r--drivers/net/wireless/atmel.c1
-rw-r--r--drivers/net/wireless/bcm43xx/bcm43xx_wx.c1
-rw-r--r--drivers/parisc/eisa.c1
-rw-r--r--drivers/parport/parport_cs.c1
-rw-r--r--drivers/parport/parport_gsc.c1
-rw-r--r--drivers/parport/procfs.c270
-rw-r--r--drivers/pci/hotplug/ibmphp_ebda.c1
-rw-r--r--drivers/pci/pcie/aer/aerdrv.c2
-rw-r--r--drivers/pci/syscall.c1
-rw-r--r--drivers/pcmcia/at91_cf.c1
-rw-r--r--drivers/pcmcia/cistpl.c1
-rw-r--r--drivers/pcmcia/i82365.c1
-rw-r--r--drivers/pcmcia/m32r_cfc.c1
-rw-r--r--drivers/pcmcia/m32r_pcc.c1
-rw-r--r--drivers/pcmcia/m8xx_pcmcia.c1
-rw-r--r--drivers/pcmcia/omap_cf.c1
-rw-r--r--drivers/pcmcia/pxa2xx_lubbock.c1
-rw-r--r--drivers/pcmcia/sa1100_badge4.c1
-rw-r--r--drivers/pcmcia/sa1100_cerf.c1
-rw-r--r--drivers/pcmcia/sa1100_h3600.c1
-rw-r--r--drivers/pcmcia/sa1100_jornada720.c1
-rw-r--r--drivers/pcmcia/sa1100_neponset.c1
-rw-r--r--drivers/pcmcia/sa1100_shannon.c1
-rw-r--r--drivers/pcmcia/sa1100_simpad.c1
-rw-r--r--drivers/pcmcia/vrc4171_card.c1
-rw-r--r--drivers/pcmcia/yenta_socket.c1
-rw-r--r--drivers/rapidio/rio-sysfs.c1
-rw-r--r--drivers/rtc/rtc-omap.c4
-rw-r--r--drivers/rtc/rtc-s3c.c4
-rw-r--r--drivers/s390/char/sclp_tty.c1
-rw-r--r--drivers/s390/char/sclp_vt220.c1
-rw-r--r--drivers/s390/net/ctcmain.c1
-rw-r--r--drivers/s390/net/netiucv.c1
-rw-r--r--drivers/sbus/char/cpwatchdog.c1
-rw-r--r--drivers/sbus/char/openprom.c1
-rw-r--r--drivers/sbus/char/uctrl.c1
-rw-r--r--drivers/sbus/char/vfc_dev.c1
-rw-r--r--drivers/scsi/53c700.c1
-rw-r--r--drivers/scsi/NCR53c406a.c1
-rw-r--r--drivers/scsi/a2091.c1
-rw-r--r--drivers/scsi/a3000.c1
-rw-r--r--drivers/scsi/aacraid/aachba.c1
-rw-r--r--drivers/scsi/aacraid/commctrl.c1
-rw-r--r--drivers/scsi/aacraid/comminit.c1
-rw-r--r--drivers/scsi/aacraid/dpcsup.c1
-rw-r--r--drivers/scsi/aacraid/rx.c1
-rw-r--r--drivers/scsi/aacraid/sa.c1
-rw-r--r--drivers/scsi/aha152x.c1
-rw-r--r--drivers/scsi/aic7xxx_old.c1
-rw-r--r--drivers/scsi/aic94xx/aic94xx_init.c2
-rw-r--r--drivers/scsi/amiga7xx.c1
-rw-r--r--drivers/scsi/arcmsr/arcmsr_hba.c2
-rw-r--r--drivers/scsi/arm/acornscsi.c1
-rw-r--r--drivers/scsi/arm/arxescsi.c1
-rw-r--r--drivers/scsi/arm/cumana_1.c1
-rw-r--r--drivers/scsi/arm/cumana_2.c1
-rw-r--r--drivers/scsi/arm/ecoscsi.c1
-rw-r--r--drivers/scsi/arm/eesox.c1
-rw-r--r--drivers/scsi/arm/fas216.c1
-rw-r--r--drivers/scsi/arm/oak.c1
-rw-r--r--drivers/scsi/arm/powertec.c1
-rw-r--r--drivers/scsi/atari_scsi.c1
-rw-r--r--drivers/scsi/bvme6000.c1
-rw-r--r--drivers/scsi/ch.c1
-rw-r--r--drivers/scsi/dtc.c1
-rw-r--r--drivers/scsi/eata_pio.c1
-rw-r--r--drivers/scsi/g_NCR5380.c1
-rw-r--r--drivers/scsi/gdth.c1
-rw-r--r--drivers/scsi/gvp11.c1
-rw-r--r--drivers/scsi/ibmvscsi/ibmvstgt.c2
-rw-r--r--drivers/scsi/initio.c1
-rw-r--r--drivers/scsi/lasi700.c1
-rw-r--r--drivers/scsi/mac_scsi.c1
-rw-r--r--drivers/scsi/mvme147.c1
-rw-r--r--drivers/scsi/mvme16x.c1
-rw-r--r--drivers/scsi/nsp32.c1
-rw-r--r--drivers/scsi/pas16.c1
-rw-r--r--drivers/scsi/pcmcia/aha152x_stub.c1
-rw-r--r--drivers/scsi/pcmcia/fdomain_stub.c1
-rw-r--r--drivers/scsi/pcmcia/nsp_cs.c1
-rw-r--r--drivers/scsi/pcmcia/qlogic_stub.c1
-rw-r--r--drivers/scsi/pcmcia/sym53c500_cs.c1
-rw-r--r--drivers/scsi/qla1280.c1
-rw-r--r--drivers/scsi/qla4xxx/ql4_os.c2
-rw-r--r--drivers/scsi/scsi.c1
-rw-r--r--drivers/scsi/scsi_debug.c1
-rw-r--r--drivers/scsi/scsi_sysctl.c2
-rw-r--r--drivers/scsi/scsi_transport_fc.c1
-rw-r--r--drivers/scsi/sd.c1
-rw-r--r--drivers/scsi/sr.c1
-rw-r--r--drivers/scsi/sr_ioctl.c1
-rw-r--r--drivers/scsi/stex.c1
-rw-r--r--drivers/scsi/sun3_scsi.c1
-rw-r--r--drivers/scsi/sun3_scsi_vme.c1
-rw-r--r--drivers/scsi/sym53c416.c1
-rw-r--r--drivers/scsi/t128.c1
-rw-r--r--drivers/scsi/tmscsim.c1
-rw-r--r--drivers/scsi/wd33c93.c1
-rw-r--r--drivers/serial/8250.c178
-rw-r--r--drivers/serial/8250_acorn.c3
-rw-r--r--drivers/serial/8250_pci.c6
-rw-r--r--drivers/serial/8250_pnp.c8
-rw-r--r--drivers/serial/Kconfig16
-rw-r--r--drivers/serial/Makefile1
-rw-r--r--drivers/serial/icom.c5
-rw-r--r--drivers/serial/ioc3_serial.c6
-rw-r--r--drivers/serial/ioc4_serial.c9
-rw-r--r--drivers/serial/ip22zilog.c9
-rw-r--r--drivers/serial/jsm/jsm_driver.c6
-rw-r--r--drivers/serial/jsm/jsm_tty.c12
-rw-r--r--drivers/serial/pnx8xxx_uart.c852
-rw-r--r--drivers/serial/serial_core.c18
-rw-r--r--drivers/serial/serial_cs.c4
-rw-r--r--drivers/serial/sunsab.c1
-rw-r--r--drivers/serial/sunsu.c1
-rw-r--r--drivers/serial/sunzilog.c1
-rw-r--r--drivers/spi/Kconfig7
-rw-r--r--drivers/spi/Makefile1
-rw-r--r--drivers/spi/atmel_spi.c678
-rw-r--r--drivers/spi/atmel_spi.h167
-rw-r--r--drivers/tc/lk201.c1
-rw-r--r--drivers/telephony/ixj_pcmcia.c1
-rw-r--r--drivers/usb/gadget/at91_udc.c1
-rw-r--r--drivers/usb/gadget/dummy_hcd.c1
-rw-r--r--drivers/usb/gadget/ether.c1
-rw-r--r--drivers/usb/gadget/goku_udc.c1
-rw-r--r--drivers/usb/gadget/net2280.c1
-rw-r--r--drivers/usb/gadget/omap_udc.c1
-rw-r--r--drivers/usb/gadget/pxa2xx_udc.c3
-rw-r--r--drivers/usb/gadget/serial.c1
-rw-r--r--drivers/usb/gadget/zero.c1
-rw-r--r--drivers/usb/host/hc_crisv10.c1
-rw-r--r--drivers/usb/host/ohci-ep93xx.c2
-rw-r--r--drivers/usb/host/ohci-pnx4008.c2
-rw-r--r--drivers/usb/host/ohci-pnx8550.c2
-rw-r--r--drivers/usb/host/sl811_cs.c1
-rw-r--r--drivers/usb/host/uhci-hcd.c1
-rw-r--r--drivers/usb/image/microtek.c1
-rw-r--r--drivers/usb/input/aiptek.c1
-rw-r--r--drivers/usb/input/hid-core.c1
-rw-r--r--drivers/usb/input/hid-pidff.c1
-rw-r--r--drivers/usb/misc/sisusbvga/sisusb.c1
-rw-r--r--drivers/usb/misc/sisusbvga/sisusb_con.c1
-rw-r--r--drivers/usb/net/asix.c1
-rw-r--r--drivers/usb/net/cdc_ether.c1
-rw-r--r--drivers/usb/net/cdc_subset.c1
-rw-r--r--drivers/usb/net/gl620a.c1
-rw-r--r--drivers/usb/net/kaweth.c1
-rw-r--r--drivers/usb/net/net1080.c1
-rw-r--r--drivers/usb/net/plusb.c1
-rw-r--r--drivers/usb/net/rndis_host.c1
-rw-r--r--drivers/usb/net/rtl8150.c1
-rw-r--r--drivers/usb/net/usbnet.c1
-rw-r--r--drivers/usb/net/zaurus.c1
-rw-r--r--drivers/usb/storage/datafab.c1
-rw-r--r--drivers/usb/storage/initializers.c1
-rw-r--r--drivers/usb/storage/jumpshot.c1
-rw-r--r--drivers/usb/storage/sddr09.c1
-rw-r--r--drivers/usb/storage/shuttle_usbat.c1
-rw-r--r--drivers/video/atafb.c1
-rw-r--r--drivers/video/aty/mach64_accel.c1
-rw-r--r--drivers/video/aty/mach64_gx.c1
-rw-r--r--drivers/video/aty/radeon_i2c.c1
-rw-r--r--drivers/video/console/fbcon.c1
-rw-r--r--drivers/video/console/mdacon.c1
-rw-r--r--drivers/video/console/vgacon.c1
-rw-r--r--drivers/video/fbmem.c1
-rw-r--r--drivers/video/g364fb.c1
-rw-r--r--drivers/video/hitfb.c1
-rw-r--r--drivers/video/hpfb.c1
-rw-r--r--drivers/video/i810/i810-i2c.c1
-rw-r--r--drivers/video/imxfb.c1
-rw-r--r--drivers/video/intelfb/intelfb_i2c.c1
-rw-r--r--drivers/video/intelfb/intelfbhw.c3
-rw-r--r--drivers/video/kyro/fbdev.c1
-rw-r--r--drivers/video/macfb.c1
-rw-r--r--drivers/video/maxinefb.c1
-rw-r--r--drivers/video/modedb.c1
-rw-r--r--drivers/video/nvidia/nv_i2c.c1
-rw-r--r--drivers/video/nvidia/nv_of.c1
-rw-r--r--drivers/video/pmag-aa-fb.c1
-rw-r--r--drivers/video/riva/rivafb-i2c.c1
-rw-r--r--drivers/video/savage/savagefb-i2c.c1
-rw-r--r--drivers/video/tgafb.c1
408 files changed, 2155 insertions, 586 deletions
diff --git a/drivers/acorn/block/mfmhd.c b/drivers/acorn/block/mfmhd.c
index 7fde8f4daebf..689a4c3542ba 100644
--- a/drivers/acorn/block/mfmhd.c
+++ b/drivers/acorn/block/mfmhd.c
@@ -99,7 +99,6 @@
99 */ 99 */
100 100
101#include <linux/module.h> 101#include <linux/module.h>
102#include <linux/sched.h>
103#include <linux/fs.h> 102#include <linux/fs.h>
104#include <linux/interrupt.h> 103#include <linux/interrupt.h>
105#include <linux/kernel.h> 104#include <linux/kernel.h>
diff --git a/drivers/acorn/char/i2c.c b/drivers/acorn/char/i2c.c
index 157d8b73bb64..d276fd14d63a 100644
--- a/drivers/acorn/char/i2c.c
+++ b/drivers/acorn/char/i2c.c
@@ -14,7 +14,6 @@
14 */ 14 */
15#include <linux/capability.h> 15#include <linux/capability.h>
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/sched.h>
18#include <linux/time.h> 17#include <linux/time.h>
19#include <linux/miscdevice.h> 18#include <linux/miscdevice.h>
20#include <linux/rtc.h> 19#include <linux/rtc.h>
diff --git a/drivers/acpi/i2c_ec.c b/drivers/acpi/i2c_ec.c
index bb54b6cdb30b..76ec8b63e69f 100644
--- a/drivers/acpi/i2c_ec.c
+++ b/drivers/acpi/i2c_ec.c
@@ -14,7 +14,6 @@
14#include <linux/slab.h> 14#include <linux/slab.h>
15#include <linux/kernel.h> 15#include <linux/kernel.h>
16#include <linux/stddef.h> 16#include <linux/stddef.h>
17#include <linux/sched.h>
18#include <linux/init.h> 17#include <linux/init.h>
19#include <linux/i2c.h> 18#include <linux/i2c.h>
20#include <linux/acpi.h> 19#include <linux/acpi.h>
diff --git a/drivers/acpi/namespace/nsinit.c b/drivers/acpi/namespace/nsinit.c
index 326af8fc0ce7..33db2241044e 100644
--- a/drivers/acpi/namespace/nsinit.c
+++ b/drivers/acpi/namespace/nsinit.c
@@ -45,6 +45,7 @@
45#include <acpi/acnamesp.h> 45#include <acpi/acnamesp.h>
46#include <acpi/acdispat.h> 46#include <acpi/acdispat.h>
47#include <acpi/acinterp.h> 47#include <acpi/acinterp.h>
48#include <linux/nmi.h>
48 49
49#define _COMPONENT ACPI_NAMESPACE 50#define _COMPONENT ACPI_NAMESPACE
50ACPI_MODULE_NAME("nsinit") 51ACPI_MODULE_NAME("nsinit")
@@ -534,7 +535,15 @@ acpi_ns_init_one_device(acpi_handle obj_handle,
534 info->parameter_type = ACPI_PARAM_ARGS; 535 info->parameter_type = ACPI_PARAM_ARGS;
535 info->flags = ACPI_IGNORE_RETURN_VALUE; 536 info->flags = ACPI_IGNORE_RETURN_VALUE;
536 537
538 /*
539 * Some hardware relies on this being executed as atomically
540 * as possible (without an NMI being received in the middle of
541 * this) - so disable NMIs and initialize the device:
542 */
543 acpi_nmi_disable();
537 status = acpi_ns_evaluate(info); 544 status = acpi_ns_evaluate(info);
545 acpi_nmi_enable();
546
538 if (ACPI_SUCCESS(status)) { 547 if (ACPI_SUCCESS(status)) {
539 walk_info->num_INI++; 548 walk_info->num_INI++;
540 549
diff --git a/drivers/acpi/sleep/poweroff.c b/drivers/acpi/sleep/poweroff.c
index 47fb4b394eec..d9801eff6489 100644
--- a/drivers/acpi/sleep/poweroff.c
+++ b/drivers/acpi/sleep/poweroff.c
@@ -12,7 +12,6 @@
12#include <linux/pm.h> 12#include <linux/pm.h>
13#include <linux/init.h> 13#include <linux/init.h>
14#include <acpi/acpi_bus.h> 14#include <acpi/acpi_bus.h>
15#include <linux/sched.h>
16#include <linux/sysdev.h> 15#include <linux/sysdev.h>
17#include <asm/io.h> 16#include <asm/io.h>
18#include "sleep.h" 17#include "sleep.h"
diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
index ba4cb200314a..45bd17313c4a 100644
--- a/drivers/acpi/tables.c
+++ b/drivers/acpi/tables.c
@@ -25,7 +25,6 @@
25 25
26#include <linux/init.h> 26#include <linux/init.h>
27#include <linux/kernel.h> 27#include <linux/kernel.h>
28#include <linux/sched.h>
29#include <linux/smp.h> 28#include <linux/smp.h>
30#include <linux/string.h> 29#include <linux/string.h>
31#include <linux/types.h> 30#include <linux/types.h>
diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
index f76d3168c2b2..986afd470a14 100644
--- a/drivers/acpi/thermal.c
+++ b/drivers/acpi/thermal.c
@@ -36,7 +36,8 @@
36#include <linux/init.h> 36#include <linux/init.h>
37#include <linux/types.h> 37#include <linux/types.h>
38#include <linux/proc_fs.h> 38#include <linux/proc_fs.h>
39#include <linux/sched.h> 39#include <linux/timer.h>
40#include <linux/jiffies.h>
40#include <linux/kmod.h> 41#include <linux/kmod.h>
41#include <linux/seq_file.h> 42#include <linux/seq_file.h>
42#include <asm/uaccess.h> 43#include <asm/uaccess.h>
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 92cdb0c5171f..6a3543e06241 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -39,7 +39,6 @@
39#include <linux/blkdev.h> 39#include <linux/blkdev.h>
40#include <linux/delay.h> 40#include <linux/delay.h>
41#include <linux/interrupt.h> 41#include <linux/interrupt.h>
42#include <linux/sched.h>
43#include <linux/dma-mapping.h> 42#include <linux/dma-mapping.h>
44#include <linux/device.h> 43#include <linux/device.h>
45#include <scsi/scsi_host.h> 44#include <scsi/scsi_host.h>
diff --git a/drivers/ata/pata_mpiix.c b/drivers/ata/pata_mpiix.c
index ca8c965179b1..f2e7115f7ab9 100644
--- a/drivers/ata/pata_mpiix.c
+++ b/drivers/ata/pata_mpiix.c
@@ -241,7 +241,7 @@ static int mpiix_init_one(struct pci_dev *dev, const struct pci_device_id *id)
241 probe.port_ops = &mpiix_port_ops; 241 probe.port_ops = &mpiix_port_ops;
242 probe.sht = &mpiix_sht; 242 probe.sht = &mpiix_sht;
243 probe.pio_mask = 0x1F; 243 probe.pio_mask = 0x1F;
244 probe.irq_flags = SA_SHIRQ; 244 probe.irq_flags = IRQF_SHARED;
245 probe.port_flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SRST; 245 probe.port_flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SRST;
246 probe.n_ports = 1; 246 probe.n_ports = 1;
247 247
diff --git a/drivers/ata/pata_pcmcia.c b/drivers/ata/pata_pcmcia.c
index acfc09f9abd9..36468ec6454c 100644
--- a/drivers/ata/pata_pcmcia.c
+++ b/drivers/ata/pata_pcmcia.c
@@ -264,7 +264,7 @@ next_entry:
264 ae.n_ports = 1; 264 ae.n_ports = 1;
265 ae.pio_mask = 1; /* ISA so PIO 0 cycles */ 265 ae.pio_mask = 1; /* ISA so PIO 0 cycles */
266 ae.irq = pdev->irq.AssignedIRQ; 266 ae.irq = pdev->irq.AssignedIRQ;
267 ae.irq_flags = SA_SHIRQ; 267 ae.irq_flags = IRQF_SHARED;
268 ae.port_flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SRST; 268 ae.port_flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SRST;
269 ae.port[0].cmd_addr = io_addr; 269 ae.port[0].cmd_addr = io_addr;
270 ae.port[0].altstatus_addr = ctl_addr; 270 ae.port[0].altstatus_addr = ctl_addr;
diff --git a/drivers/ata/pata_pdc2027x.c b/drivers/ata/pata_pdc2027x.c
index ffa7f47fbb20..61537873d28e 100644
--- a/drivers/ata/pata_pdc2027x.c
+++ b/drivers/ata/pata_pdc2027x.c
@@ -796,7 +796,7 @@ static int __devinit pdc2027x_init_one(struct pci_dev *pdev, const struct pci_de
796 probe_ent->port_ops = pdc2027x_port_info[board_idx].port_ops; 796 probe_ent->port_ops = pdc2027x_port_info[board_idx].port_ops;
797 797
798 probe_ent->irq = pdev->irq; 798 probe_ent->irq = pdev->irq;
799 probe_ent->irq_flags = SA_SHIRQ; 799 probe_ent->irq_flags = IRQF_SHARED;
800 probe_ent->iomap = pcim_iomap_table(pdev); 800 probe_ent->iomap = pcim_iomap_table(pdev);
801 801
802 mmio_base = probe_ent->iomap[PDC_MMIO_BAR]; 802 mmio_base = probe_ent->iomap[PDC_MMIO_BAR];
diff --git a/drivers/ata/pdc_adma.c b/drivers/ata/pdc_adma.c
index b4ed8ce553e6..857ac23217ab 100644
--- a/drivers/ata/pdc_adma.c
+++ b/drivers/ata/pdc_adma.c
@@ -39,7 +39,6 @@
39#include <linux/blkdev.h> 39#include <linux/blkdev.h>
40#include <linux/delay.h> 40#include <linux/delay.h>
41#include <linux/interrupt.h> 41#include <linux/interrupt.h>
42#include <linux/sched.h>
43#include <linux/device.h> 42#include <linux/device.h>
44#include <scsi/scsi_host.h> 43#include <scsi/scsi_host.h>
45#include <linux/libata.h> 44#include <linux/libata.h>
diff --git a/drivers/ata/sata_inic162x.c b/drivers/ata/sata_inic162x.c
index c5335f422801..31b636fac98e 100644
--- a/drivers/ata/sata_inic162x.c
+++ b/drivers/ata/sata_inic162x.c
@@ -710,7 +710,7 @@ static int inic_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
710 probe_ent->n_ports = NR_PORTS; 710 probe_ent->n_ports = NR_PORTS;
711 711
712 probe_ent->irq = pdev->irq; 712 probe_ent->irq = pdev->irq;
713 probe_ent->irq_flags = SA_SHIRQ; 713 probe_ent->irq_flags = IRQF_SHARED;
714 714
715 probe_ent->iomap = iomap; 715 probe_ent->iomap = iomap;
716 716
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index 769eca52442c..d689df52eae3 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -28,7 +28,6 @@
28#include <linux/blkdev.h> 28#include <linux/blkdev.h>
29#include <linux/delay.h> 29#include <linux/delay.h>
30#include <linux/interrupt.h> 30#include <linux/interrupt.h>
31#include <linux/sched.h>
32#include <linux/dma-mapping.h> 31#include <linux/dma-mapping.h>
33#include <linux/device.h> 32#include <linux/device.h>
34#include <scsi/scsi_host.h> 33#include <scsi/scsi_host.h>
diff --git a/drivers/ata/sata_promise.c b/drivers/ata/sata_promise.c
index 3be4cc338d7b..b2e2e695c92e 100644
--- a/drivers/ata/sata_promise.c
+++ b/drivers/ata/sata_promise.c
@@ -37,7 +37,6 @@
37#include <linux/blkdev.h> 37#include <linux/blkdev.h>
38#include <linux/delay.h> 38#include <linux/delay.h>
39#include <linux/interrupt.h> 39#include <linux/interrupt.h>
40#include <linux/sched.h>
41#include <linux/device.h> 40#include <linux/device.h>
42#include <scsi/scsi.h> 41#include <scsi/scsi.h>
43#include <scsi/scsi_host.h> 42#include <scsi/scsi_host.h>
diff --git a/drivers/ata/sata_qstor.c b/drivers/ata/sata_qstor.c
index bfa35ede6551..6097d8f2a0c0 100644
--- a/drivers/ata/sata_qstor.c
+++ b/drivers/ata/sata_qstor.c
@@ -34,7 +34,6 @@
34#include <linux/blkdev.h> 34#include <linux/blkdev.h>
35#include <linux/delay.h> 35#include <linux/delay.h>
36#include <linux/interrupt.h> 36#include <linux/interrupt.h>
37#include <linux/sched.h>
38#include <linux/device.h> 37#include <linux/device.h>
39#include <scsi/scsi_host.h> 38#include <scsi/scsi_host.h>
40#include <linux/libata.h> 39#include <linux/libata.h>
diff --git a/drivers/ata/sata_sx4.c b/drivers/ata/sata_sx4.c
index 06e87a377382..0ebd77b080d6 100644
--- a/drivers/ata/sata_sx4.c
+++ b/drivers/ata/sata_sx4.c
@@ -37,7 +37,6 @@
37#include <linux/blkdev.h> 37#include <linux/blkdev.h>
38#include <linux/delay.h> 38#include <linux/delay.h>
39#include <linux/interrupt.h> 39#include <linux/interrupt.h>
40#include <linux/sched.h>
41#include <linux/device.h> 40#include <linux/device.h>
42#include <scsi/scsi_host.h> 41#include <scsi/scsi_host.h>
43#include <scsi/scsi_cmnd.h> 42#include <scsi/scsi_cmnd.h>
diff --git a/drivers/atm/adummy.c b/drivers/atm/adummy.c
index ac2c10822be0..8d60c4eb54fe 100644
--- a/drivers/atm/adummy.c
+++ b/drivers/atm/adummy.c
@@ -13,7 +13,6 @@
13#include <linux/delay.h> 13#include <linux/delay.h>
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/mm.h> 15#include <linux/mm.h>
16#include <linux/sched.h>
17#include <linux/timer.h> 16#include <linux/timer.h>
18#include <linux/interrupt.h> 17#include <linux/interrupt.h>
19#include <asm/io.h> 18#include <asm/io.h>
diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.c
index 4aeb3d062ff6..a7c0ed3107e3 100644
--- a/drivers/atm/fore200e.c
+++ b/drivers/atm/fore200e.c
@@ -29,7 +29,6 @@
29#include <linux/slab.h> 29#include <linux/slab.h>
30#include <linux/init.h> 30#include <linux/init.h>
31#include <linux/capability.h> 31#include <linux/capability.h>
32#include <linux/sched.h>
33#include <linux/interrupt.h> 32#include <linux/interrupt.h>
34#include <linux/bitops.h> 33#include <linux/bitops.h>
35#include <linux/pci.h> 34#include <linux/pci.h>
diff --git a/drivers/atm/idt77105.c b/drivers/atm/idt77105.c
index 325325afabec..0bd657f5dd2a 100644
--- a/drivers/atm/idt77105.c
+++ b/drivers/atm/idt77105.c
@@ -4,7 +4,6 @@
4 4
5 5
6#include <linux/module.h> 6#include <linux/module.h>
7#include <linux/sched.h>
8#include <linux/kernel.h> 7#include <linux/kernel.h>
9#include <linux/mm.h> 8#include <linux/mm.h>
10#include <linux/errno.h> 9#include <linux/errno.h>
diff --git a/drivers/atm/uPD98402.c b/drivers/atm/uPD98402.c
index 9504cce51bfb..fc8cb07c2477 100644
--- a/drivers/atm/uPD98402.c
+++ b/drivers/atm/uPD98402.c
@@ -4,7 +4,6 @@
4 4
5 5
6#include <linux/module.h> 6#include <linux/module.h>
7#include <linux/sched.h> /* for jiffies */
8#include <linux/mm.h> 7#include <linux/mm.h>
9#include <linux/errno.h> 8#include <linux/errno.h>
10#include <linux/atmdev.h> 9#include <linux/atmdev.h>
diff --git a/drivers/atm/zatm.c b/drivers/atm/zatm.c
index 756d4f760da3..0d7091e2077f 100644
--- a/drivers/atm/zatm.c
+++ b/drivers/atm/zatm.c
@@ -4,7 +4,6 @@
4 4
5 5
6#include <linux/module.h> 6#include <linux/module.h>
7#include <linux/sched.h>
8#include <linux/kernel.h> 7#include <linux/kernel.h>
9#include <linux/mm.h> 8#include <linux/mm.h>
10#include <linux/pci.h> 9#include <linux/pci.h>
diff --git a/drivers/block/acsi.c b/drivers/block/acsi.c
index 706cdc6a69ec..e3d9152e231a 100644
--- a/drivers/block/acsi.c
+++ b/drivers/block/acsi.c
@@ -46,7 +46,6 @@
46#include <linux/module.h> 46#include <linux/module.h>
47#include <linux/errno.h> 47#include <linux/errno.h>
48#include <linux/signal.h> 48#include <linux/signal.h>
49#include <linux/sched.h>
50#include <linux/timer.h> 49#include <linux/timer.h>
51#include <linux/fs.h> 50#include <linux/fs.h>
52#include <linux/kernel.h> 51#include <linux/kernel.h>
diff --git a/drivers/block/paride/pd.c b/drivers/block/paride/pd.c
index 9d9bff23f426..99e2c8ce1cc4 100644
--- a/drivers/block/paride/pd.c
+++ b/drivers/block/paride/pd.c
@@ -153,7 +153,6 @@ enum {D_PRT, D_PRO, D_UNI, D_MOD, D_GEO, D_SBY, D_DLY, D_SLV};
153#include <linux/blkpg.h> 153#include <linux/blkpg.h>
154#include <linux/kernel.h> 154#include <linux/kernel.h>
155#include <asm/uaccess.h> 155#include <asm/uaccess.h>
156#include <linux/sched.h>
157#include <linux/workqueue.h> 156#include <linux/workqueue.h>
158 157
159static DEFINE_SPINLOCK(pd_lock); 158static DEFINE_SPINLOCK(pd_lock);
diff --git a/drivers/block/umem.c b/drivers/block/umem.c
index 30f16bd83650..dff3766f117f 100644
--- a/drivers/block/umem.c
+++ b/drivers/block/umem.c
@@ -35,7 +35,6 @@
35 */ 35 */
36 36
37//#define DEBUG /* uncomment if you want debugging info (pr_debug) */ 37//#define DEBUG /* uncomment if you want debugging info (pr_debug) */
38#include <linux/sched.h>
39#include <linux/fs.h> 38#include <linux/fs.h>
40#include <linux/bio.h> 39#include <linux/bio.h>
41#include <linux/kernel.h> 40#include <linux/kernel.h>
diff --git a/drivers/bluetooth/bfusb.c b/drivers/bluetooth/bfusb.c
index 31ade991aa91..27cceb6f5652 100644
--- a/drivers/bluetooth/bfusb.c
+++ b/drivers/bluetooth/bfusb.c
@@ -27,7 +27,6 @@
27#include <linux/init.h> 27#include <linux/init.h>
28#include <linux/slab.h> 28#include <linux/slab.h>
29#include <linux/types.h> 29#include <linux/types.h>
30#include <linux/sched.h>
31#include <linux/errno.h> 30#include <linux/errno.h>
32#include <linux/skbuff.h> 31#include <linux/skbuff.h>
33 32
diff --git a/drivers/bluetooth/bt3c_cs.c b/drivers/bluetooth/bt3c_cs.c
index aae3abace586..34e5555cb917 100644
--- a/drivers/bluetooth/bt3c_cs.c
+++ b/drivers/bluetooth/bt3c_cs.c
@@ -27,7 +27,6 @@
27#include <linux/init.h> 27#include <linux/init.h>
28#include <linux/slab.h> 28#include <linux/slab.h>
29#include <linux/types.h> 29#include <linux/types.h>
30#include <linux/sched.h>
31#include <linux/delay.h> 30#include <linux/delay.h>
32#include <linux/errno.h> 31#include <linux/errno.h>
33#include <linux/ptrace.h> 32#include <linux/ptrace.h>
diff --git a/drivers/bluetooth/btuart_cs.c b/drivers/bluetooth/btuart_cs.c
index 92648ef2f5d0..c1bce75148fe 100644
--- a/drivers/bluetooth/btuart_cs.c
+++ b/drivers/bluetooth/btuart_cs.c
@@ -26,7 +26,6 @@
26#include <linux/init.h> 26#include <linux/init.h>
27#include <linux/slab.h> 27#include <linux/slab.h>
28#include <linux/types.h> 28#include <linux/types.h>
29#include <linux/sched.h>
30#include <linux/delay.h> 29#include <linux/delay.h>
31#include <linux/errno.h> 30#include <linux/errno.h>
32#include <linux/ptrace.h> 31#include <linux/ptrace.h>
diff --git a/drivers/bluetooth/dtl1_cs.c b/drivers/bluetooth/dtl1_cs.c
index 77b99eecbc49..459aa97937ab 100644
--- a/drivers/bluetooth/dtl1_cs.c
+++ b/drivers/bluetooth/dtl1_cs.c
@@ -26,7 +26,6 @@
26#include <linux/init.h> 26#include <linux/init.h>
27#include <linux/slab.h> 27#include <linux/slab.h>
28#include <linux/types.h> 28#include <linux/types.h>
29#include <linux/sched.h>
30#include <linux/delay.h> 29#include <linux/delay.h>
31#include <linux/errno.h> 30#include <linux/errno.h>
32#include <linux/ptrace.h> 31#include <linux/ptrace.h>
diff --git a/drivers/bluetooth/hci_bcsp.c b/drivers/bluetooth/hci_bcsp.c
index 5e2c31882003..d66064ccb31c 100644
--- a/drivers/bluetooth/hci_bcsp.c
+++ b/drivers/bluetooth/hci_bcsp.c
@@ -26,7 +26,6 @@
26 26
27#include <linux/kernel.h> 27#include <linux/kernel.h>
28#include <linux/init.h> 28#include <linux/init.h>
29#include <linux/sched.h>
30#include <linux/types.h> 29#include <linux/types.h>
31#include <linux/fcntl.h> 30#include <linux/fcntl.h>
32#include <linux/interrupt.h> 31#include <linux/interrupt.h>
diff --git a/drivers/bluetooth/hci_h4.c b/drivers/bluetooth/hci_h4.c
index ad62abbbb739..34f0afc42407 100644
--- a/drivers/bluetooth/hci_h4.c
+++ b/drivers/bluetooth/hci_h4.c
@@ -27,7 +27,6 @@
27 27
28#include <linux/kernel.h> 28#include <linux/kernel.h>
29#include <linux/init.h> 29#include <linux/init.h>
30#include <linux/sched.h>
31#include <linux/types.h> 30#include <linux/types.h>
32#include <linux/fcntl.h> 31#include <linux/fcntl.h>
33#include <linux/interrupt.h> 32#include <linux/interrupt.h>
diff --git a/drivers/bluetooth/hci_ldisc.c b/drivers/bluetooth/hci_ldisc.c
index 420b645c4c9f..0f4203b499af 100644
--- a/drivers/bluetooth/hci_ldisc.c
+++ b/drivers/bluetooth/hci_ldisc.c
@@ -27,7 +27,6 @@
27 27
28#include <linux/kernel.h> 28#include <linux/kernel.h>
29#include <linux/init.h> 29#include <linux/init.h>
30#include <linux/sched.h>
31#include <linux/types.h> 30#include <linux/types.h>
32#include <linux/fcntl.h> 31#include <linux/fcntl.h>
33#include <linux/interrupt.h> 32#include <linux/interrupt.h>
diff --git a/drivers/bluetooth/hci_usb.c b/drivers/bluetooth/hci_usb.c
index 6bdf593081d8..406af579ac3a 100644
--- a/drivers/bluetooth/hci_usb.c
+++ b/drivers/bluetooth/hci_usb.c
@@ -35,7 +35,6 @@
35 35
36#include <linux/kernel.h> 36#include <linux/kernel.h>
37#include <linux/init.h> 37#include <linux/init.h>
38#include <linux/sched.h>
39#include <linux/unistd.h> 38#include <linux/unistd.h>
40#include <linux/types.h> 39#include <linux/types.h>
41#include <linux/interrupt.h> 40#include <linux/interrupt.h>
diff --git a/drivers/cdrom/aztcd.c b/drivers/cdrom/aztcd.c
index ec469497c10f..1f9fb7a96703 100644
--- a/drivers/cdrom/aztcd.c
+++ b/drivers/cdrom/aztcd.c
@@ -170,7 +170,6 @@
170 170
171#include <linux/module.h> 171#include <linux/module.h>
172#include <linux/errno.h> 172#include <linux/errno.h>
173#include <linux/sched.h>
174#include <linux/mm.h> 173#include <linux/mm.h>
175#include <linux/timer.h> 174#include <linux/timer.h>
176#include <linux/fs.h> 175#include <linux/fs.h>
diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
index 3105dddf59f1..b36f44d4d1bf 100644
--- a/drivers/cdrom/cdrom.c
+++ b/drivers/cdrom/cdrom.c
@@ -3553,9 +3553,7 @@ static void cdrom_sysctl_register(void)
3553 if (initialized == 1) 3553 if (initialized == 1)
3554 return; 3554 return;
3555 3555
3556 cdrom_sysctl_header = register_sysctl_table(cdrom_root_table, 1); 3556 cdrom_sysctl_header = register_sysctl_table(cdrom_root_table);
3557 if (cdrom_root_table->ctl_name && cdrom_root_table->child->de)
3558 cdrom_root_table->child->de->owner = THIS_MODULE;
3559 3557
3560 /* set the defaults */ 3558 /* set the defaults */
3561 cdrom_sysctl_settings.autoclose = autoclose; 3559 cdrom_sysctl_settings.autoclose = autoclose;
diff --git a/drivers/cdrom/cm206.c b/drivers/cdrom/cm206.c
index b6c61bbb20e1..230131163240 100644
--- a/drivers/cdrom/cm206.c
+++ b/drivers/cdrom/cm206.c
@@ -183,7 +183,6 @@ History:
183#include <linux/errno.h> /* These include what we really need */ 183#include <linux/errno.h> /* These include what we really need */
184#include <linux/delay.h> 184#include <linux/delay.h>
185#include <linux/string.h> 185#include <linux/string.h>
186#include <linux/sched.h>
187#include <linux/interrupt.h> 186#include <linux/interrupt.h>
188#include <linux/timer.h> 187#include <linux/timer.h>
189#include <linux/cdrom.h> 188#include <linux/cdrom.h>
diff --git a/drivers/cdrom/gscd.c b/drivers/cdrom/gscd.c
index fa7082489765..b3ab6e9b8df1 100644
--- a/drivers/cdrom/gscd.c
+++ b/drivers/cdrom/gscd.c
@@ -53,7 +53,6 @@
53#include <linux/slab.h> 53#include <linux/slab.h>
54#include <linux/errno.h> 54#include <linux/errno.h>
55#include <linux/signal.h> 55#include <linux/signal.h>
56#include <linux/sched.h>
57#include <linux/timer.h> 56#include <linux/timer.h>
58#include <linux/fs.h> 57#include <linux/fs.h>
59#include <linux/mm.h> 58#include <linux/mm.h>
diff --git a/drivers/cdrom/sjcd.c b/drivers/cdrom/sjcd.c
index bf5aef4e555b..5409fca5bbfc 100644
--- a/drivers/cdrom/sjcd.c
+++ b/drivers/cdrom/sjcd.c
@@ -60,7 +60,6 @@
60 60
61#include <linux/module.h> 61#include <linux/module.h>
62#include <linux/errno.h> 62#include <linux/errno.h>
63#include <linux/sched.h>
64#include <linux/mm.h> 63#include <linux/mm.h>
65#include <linux/timer.h> 64#include <linux/timer.h>
66#include <linux/fs.h> 65#include <linux/fs.h>
diff --git a/drivers/char/briq_panel.c b/drivers/char/briq_panel.c
index 7f60a18ef76b..8dcf9d20f449 100644
--- a/drivers/char/briq_panel.c
+++ b/drivers/char/briq_panel.c
@@ -8,7 +8,6 @@
8 8
9#include <linux/types.h> 9#include <linux/types.h>
10#include <linux/errno.h> 10#include <linux/errno.h>
11#include <linux/sched.h>
12#include <linux/tty.h> 11#include <linux/tty.h>
13#include <linux/timer.h> 12#include <linux/timer.h>
14#include <linux/kernel.h> 13#include <linux/kernel.h>
diff --git a/drivers/char/drm/ffb_context.c b/drivers/char/drm/ffb_context.c
index 1383727b443a..ac9ab40d57aa 100644
--- a/drivers/char/drm/ffb_context.c
+++ b/drivers/char/drm/ffb_context.c
@@ -7,7 +7,6 @@
7 * for authors. 7 * for authors.
8 */ 8 */
9 9
10#include <linux/sched.h>
11#include <asm/upa.h> 10#include <asm/upa.h>
12 11
13#include "ffb.h" 12#include "ffb.h"
diff --git a/drivers/char/drm/ffb_drv.c b/drivers/char/drm/ffb_drv.c
index dd45111a4854..9a19879e3b68 100644
--- a/drivers/char/drm/ffb_drv.c
+++ b/drivers/char/drm/ffb_drv.c
@@ -9,7 +9,6 @@
9 9
10#include "ffb_drv.h" 10#include "ffb_drv.h"
11 11
12#include <linux/sched.h>
13#include <linux/smp_lock.h> 12#include <linux/smp_lock.h>
14#include <asm/shmparam.h> 13#include <asm/shmparam.h>
15#include <asm/oplib.h> 14#include <asm/oplib.h>
diff --git a/drivers/char/ds1620.c b/drivers/char/ds1620.c
index 48cb8f0e8ebf..3d7efc26aad6 100644
--- a/drivers/char/ds1620.c
+++ b/drivers/char/ds1620.c
@@ -3,7 +3,6 @@
3 * thermometer driver (as used in the Rebel.com NetWinder) 3 * thermometer driver (as used in the Rebel.com NetWinder)
4 */ 4 */
5#include <linux/module.h> 5#include <linux/module.h>
6#include <linux/sched.h>
7#include <linux/miscdevice.h> 6#include <linux/miscdevice.h>
8#include <linux/smp_lock.h> 7#include <linux/smp_lock.h>
9#include <linux/delay.h> 8#include <linux/delay.h>
diff --git a/drivers/char/dsp56k.c b/drivers/char/dsp56k.c
index 06f2dbf17710..db984e481d4c 100644
--- a/drivers/char/dsp56k.c
+++ b/drivers/char/dsp56k.c
@@ -25,7 +25,6 @@
25 25
26#include <linux/module.h> 26#include <linux/module.h>
27#include <linux/slab.h> /* for kmalloc() and kfree() */ 27#include <linux/slab.h> /* for kmalloc() and kfree() */
28#include <linux/sched.h> /* for struct wait_queue etc */
29#include <linux/major.h> 28#include <linux/major.h>
30#include <linux/types.h> 29#include <linux/types.h>
31#include <linux/errno.h> 30#include <linux/errno.h>
diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
index 20dc3be5ecfc..0be700f4e8fd 100644
--- a/drivers/char/hpet.c
+++ b/drivers/char/hpet.c
@@ -703,7 +703,7 @@ int hpet_control(struct hpet_task *tp, unsigned int cmd, unsigned long arg)
703 703
704static ctl_table hpet_table[] = { 704static ctl_table hpet_table[] = {
705 { 705 {
706 .ctl_name = 1, 706 .ctl_name = CTL_UNNUMBERED,
707 .procname = "max-user-freq", 707 .procname = "max-user-freq",
708 .data = &hpet_max_freq, 708 .data = &hpet_max_freq,
709 .maxlen = sizeof(int), 709 .maxlen = sizeof(int),
@@ -715,7 +715,7 @@ static ctl_table hpet_table[] = {
715 715
716static ctl_table hpet_root[] = { 716static ctl_table hpet_root[] = {
717 { 717 {
718 .ctl_name = 1, 718 .ctl_name = CTL_UNNUMBERED,
719 .procname = "hpet", 719 .procname = "hpet",
720 .maxlen = 0, 720 .maxlen = 0,
721 .mode = 0555, 721 .mode = 0555,
@@ -1018,7 +1018,7 @@ static int __init hpet_init(void)
1018 if (result < 0) 1018 if (result < 0)
1019 return -ENODEV; 1019 return -ENODEV;
1020 1020
1021 sysctl_header = register_sysctl_table(dev_root, 0); 1021 sysctl_header = register_sysctl_table(dev_root);
1022 1022
1023 result = acpi_bus_register_driver(&hpet_acpi_driver); 1023 result = acpi_bus_register_driver(&hpet_acpi_driver);
1024 if (result < 0) { 1024 if (result < 0) {
diff --git a/drivers/char/hvsi.c b/drivers/char/hvsi.c
index d7806834fc17..50315d6364fd 100644
--- a/drivers/char/hvsi.c
+++ b/drivers/char/hvsi.c
@@ -39,7 +39,6 @@
39#include <linux/module.h> 39#include <linux/module.h>
40#include <linux/major.h> 40#include <linux/major.h>
41#include <linux/kernel.h> 41#include <linux/kernel.h>
42#include <linux/sched.h>
43#include <linux/spinlock.h> 42#include <linux/spinlock.h>
44#include <linux/sysrq.h> 43#include <linux/sysrq.h>
45#include <linux/tty.h> 44#include <linux/tty.h>
diff --git a/drivers/char/ipmi/ipmi_devintf.c b/drivers/char/ipmi/ipmi_devintf.c
index ff2d052177cb..c2aa44ee6eb6 100644
--- a/drivers/char/ipmi/ipmi_devintf.c
+++ b/drivers/char/ipmi/ipmi_devintf.c
@@ -35,7 +35,6 @@
35#include <linux/moduleparam.h> 35#include <linux/moduleparam.h>
36#include <linux/errno.h> 36#include <linux/errno.h>
37#include <asm/system.h> 37#include <asm/system.h>
38#include <linux/sched.h>
39#include <linux/poll.h> 38#include <linux/poll.h>
40#include <linux/spinlock.h> 39#include <linux/spinlock.h>
41#include <linux/slab.h> 40#include <linux/slab.h>
diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c
index 3aff5e99b674..8e222f2b80cc 100644
--- a/drivers/char/ipmi/ipmi_msghandler.c
+++ b/drivers/char/ipmi/ipmi_msghandler.c
@@ -34,7 +34,6 @@
34#include <linux/module.h> 34#include <linux/module.h>
35#include <linux/errno.h> 35#include <linux/errno.h>
36#include <asm/system.h> 36#include <asm/system.h>
37#include <linux/sched.h>
38#include <linux/poll.h> 37#include <linux/poll.h>
39#include <linux/spinlock.h> 38#include <linux/spinlock.h>
40#include <linux/mutex.h> 39#include <linux/mutex.h>
diff --git a/drivers/char/ipmi/ipmi_poweroff.c b/drivers/char/ipmi/ipmi_poweroff.c
index 9d23136e598a..e02893b7b300 100644
--- a/drivers/char/ipmi/ipmi_poweroff.c
+++ b/drivers/char/ipmi/ipmi_poweroff.c
@@ -686,7 +686,7 @@ static int ipmi_poweroff_init (void)
686 printk(KERN_INFO PFX "Power cycle is enabled.\n"); 686 printk(KERN_INFO PFX "Power cycle is enabled.\n");
687 687
688#ifdef CONFIG_PROC_FS 688#ifdef CONFIG_PROC_FS
689 ipmi_table_header = register_sysctl_table(ipmi_root_table, 1); 689 ipmi_table_header = register_sysctl_table(ipmi_root_table);
690 if (!ipmi_table_header) { 690 if (!ipmi_table_header) {
691 printk(KERN_ERR PFX "Unable to register powercycle sysctl\n"); 691 printk(KERN_ERR PFX "Unable to register powercycle sysctl\n");
692 rv = -ENOMEM; 692 rv = -ENOMEM;
diff --git a/drivers/char/nvram.c b/drivers/char/nvram.c
index a39f19c35a6a..204deaa0de80 100644
--- a/drivers/char/nvram.c
+++ b/drivers/char/nvram.c
@@ -37,7 +37,6 @@
37#define NVRAM_VERSION "1.2" 37#define NVRAM_VERSION "1.2"
38 38
39#include <linux/module.h> 39#include <linux/module.h>
40#include <linux/sched.h>
41#include <linux/smp_lock.h> 40#include <linux/smp_lock.h>
42#include <linux/nvram.h> 41#include <linux/nvram.h>
43 42
diff --git a/drivers/char/nwflash.c b/drivers/char/nwflash.c
index 206cf6f50695..ba012c2bdf7a 100644
--- a/drivers/char/nwflash.c
+++ b/drivers/char/nwflash.c
@@ -21,7 +21,6 @@
21#include <linux/mm.h> 21#include <linux/mm.h>
22#include <linux/delay.h> 22#include <linux/delay.h>
23#include <linux/proc_fs.h> 23#include <linux/proc_fs.h>
24#include <linux/sched.h>
25#include <linux/miscdevice.h> 24#include <linux/miscdevice.h>
26#include <linux/spinlock.h> 25#include <linux/spinlock.h>
27#include <linux/rwsem.h> 26#include <linux/rwsem.h>
diff --git a/drivers/char/pty.c b/drivers/char/pty.c
index c07a1b5cd05d..de14aea34e11 100644
--- a/drivers/char/pty.c
+++ b/drivers/char/pty.c
@@ -14,7 +14,6 @@
14#include <linux/module.h> /* For EXPORT_SYMBOL */ 14#include <linux/module.h> /* For EXPORT_SYMBOL */
15 15
16#include <linux/errno.h> 16#include <linux/errno.h>
17#include <linux/sched.h>
18#include <linux/interrupt.h> 17#include <linux/interrupt.h>
19#include <linux/tty.h> 18#include <linux/tty.h>
20#include <linux/tty_flip.h> 19#include <linux/tty_flip.h>
diff --git a/drivers/char/rtc.c b/drivers/char/rtc.c
index b6d3072dce5a..c7dac9b13351 100644
--- a/drivers/char/rtc.c
+++ b/drivers/char/rtc.c
@@ -282,7 +282,7 @@ irqreturn_t rtc_interrupt(int irq, void *dev_id)
282 */ 282 */
283static ctl_table rtc_table[] = { 283static ctl_table rtc_table[] = {
284 { 284 {
285 .ctl_name = 1, 285 .ctl_name = CTL_UNNUMBERED,
286 .procname = "max-user-freq", 286 .procname = "max-user-freq",
287 .data = &rtc_max_user_freq, 287 .data = &rtc_max_user_freq,
288 .maxlen = sizeof(int), 288 .maxlen = sizeof(int),
@@ -294,9 +294,8 @@ static ctl_table rtc_table[] = {
294 294
295static ctl_table rtc_root[] = { 295static ctl_table rtc_root[] = {
296 { 296 {
297 .ctl_name = 1, 297 .ctl_name = CTL_UNNUMBERED,
298 .procname = "rtc", 298 .procname = "rtc",
299 .maxlen = 0,
300 .mode = 0555, 299 .mode = 0555,
301 .child = rtc_table, 300 .child = rtc_table,
302 }, 301 },
@@ -307,7 +306,6 @@ static ctl_table dev_root[] = {
307 { 306 {
308 .ctl_name = CTL_DEV, 307 .ctl_name = CTL_DEV,
309 .procname = "dev", 308 .procname = "dev",
310 .maxlen = 0,
311 .mode = 0555, 309 .mode = 0555,
312 .child = rtc_root, 310 .child = rtc_root,
313 }, 311 },
@@ -318,7 +316,7 @@ static struct ctl_table_header *sysctl_header;
318 316
319static int __init init_sysctl(void) 317static int __init init_sysctl(void)
320{ 318{
321 sysctl_header = register_sysctl_table(dev_root, 0); 319 sysctl_header = register_sysctl_table(dev_root);
322 return 0; 320 return 0;
323} 321}
324 322
diff --git a/drivers/char/ser_a2232.c b/drivers/char/ser_a2232.c
index 75de5f66517a..3c869145bfdc 100644
--- a/drivers/char/ser_a2232.c
+++ b/drivers/char/ser_a2232.c
@@ -86,7 +86,6 @@
86#include <linux/module.h> 86#include <linux/module.h>
87 87
88#include <linux/types.h> 88#include <linux/types.h>
89#include <linux/sched.h>
90#include <linux/interrupt.h> 89#include <linux/interrupt.h>
91#include <linux/kernel.h> 90#include <linux/kernel.h>
92#include <linux/errno.h> 91#include <linux/errno.h>
diff --git a/drivers/char/sonypi.c b/drivers/char/sonypi.c
index 17d54e1331b2..78237577b05a 100644
--- a/drivers/char/sonypi.c
+++ b/drivers/char/sonypi.c
@@ -36,7 +36,6 @@
36#include <linux/module.h> 36#include <linux/module.h>
37#include <linux/input.h> 37#include <linux/input.h>
38#include <linux/pci.h> 38#include <linux/pci.h>
39#include <linux/sched.h>
40#include <linux/init.h> 39#include <linux/init.h>
41#include <linux/interrupt.h> 40#include <linux/interrupt.h>
42#include <linux/miscdevice.h> 41#include <linux/miscdevice.h>
diff --git a/drivers/char/tlclk.c b/drivers/char/tlclk.c
index 4fac2bdf6215..35e58030d296 100644
--- a/drivers/char/tlclk.c
+++ b/drivers/char/tlclk.c
@@ -29,7 +29,6 @@
29 29
30#include <linux/module.h> 30#include <linux/module.h>
31#include <linux/init.h> 31#include <linux/init.h>
32#include <linux/sched.h>
33#include <linux/kernel.h> /* printk() */ 32#include <linux/kernel.h> /* printk() */
34#include <linux/fs.h> /* everything... */ 33#include <linux/fs.h> /* everything... */
35#include <linux/errno.h> /* error codes */ 34#include <linux/errno.h> /* error codes */
diff --git a/drivers/char/toshiba.c b/drivers/char/toshiba.c
index c346ec5a3dc9..5422f999636f 100644
--- a/drivers/char/toshiba.c
+++ b/drivers/char/toshiba.c
@@ -58,7 +58,6 @@
58 58
59#include <linux/module.h> 59#include <linux/module.h>
60#include <linux/kernel.h> 60#include <linux/kernel.h>
61#include <linux/sched.h>
62#include <linux/types.h> 61#include <linux/types.h>
63#include <linux/fcntl.h> 62#include <linux/fcntl.h>
64#include <linux/miscdevice.h> 63#include <linux/miscdevice.h>
diff --git a/drivers/char/tpm/tpm.c b/drivers/char/tpm/tpm.c
index 2f572b97c16d..e5a254a434f8 100644
--- a/drivers/char/tpm/tpm.c
+++ b/drivers/char/tpm/tpm.c
@@ -23,7 +23,6 @@
23 * 23 *
24 */ 24 */
25 25
26#include <linux/sched.h>
27#include <linux/poll.h> 26#include <linux/poll.h>
28#include <linux/spinlock.h> 27#include <linux/spinlock.h>
29#include "tpm.h" 28#include "tpm.h"
diff --git a/drivers/char/vc_screen.c b/drivers/char/vc_screen.c
index 26776517f04c..791930320a13 100644
--- a/drivers/char/vc_screen.c
+++ b/drivers/char/vc_screen.c
@@ -25,7 +25,6 @@
25#include <linux/major.h> 25#include <linux/major.h>
26#include <linux/errno.h> 26#include <linux/errno.h>
27#include <linux/tty.h> 27#include <linux/tty.h>
28#include <linux/sched.h>
29#include <linux/interrupt.h> 28#include <linux/interrupt.h>
30#include <linux/mm.h> 29#include <linux/mm.h>
31#include <linux/init.h> 30#include <linux/init.h>
diff --git a/drivers/char/vme_scc.c b/drivers/char/vme_scc.c
index e01317cb1a0e..bef6d886d4fb 100644
--- a/drivers/char/vme_scc.c
+++ b/drivers/char/vme_scc.c
@@ -17,7 +17,6 @@
17#include <linux/kdev_t.h> 17#include <linux/kdev_t.h>
18#include <asm/io.h> 18#include <asm/io.h>
19#include <linux/kernel.h> 19#include <linux/kernel.h>
20#include <linux/sched.h>
21#include <linux/ioport.h> 20#include <linux/ioport.h>
22#include <linux/interrupt.h> 21#include <linux/interrupt.h>
23#include <linux/errno.h> 22#include <linux/errno.h>
diff --git a/drivers/char/watchdog/rm9k_wdt.c b/drivers/char/watchdog/rm9k_wdt.c
index b4678839d3bb..5c921e471564 100644
--- a/drivers/char/watchdog/rm9k_wdt.c
+++ b/drivers/char/watchdog/rm9k_wdt.c
@@ -192,7 +192,7 @@ static int wdt_gpi_open(struct inode *inode, struct file *file)
192 locked = 0; 192 locked = 0;
193 } 193 }
194 194
195 res = request_irq(wd_irq, wdt_gpi_irqhdl, SA_SHIRQ | SA_INTERRUPT, 195 res = request_irq(wd_irq, wdt_gpi_irqhdl, IRQF_SHARED | IRQF_DISABLED,
196 wdt_gpi_name, &miscdev); 196 wdt_gpi_name, &miscdev);
197 if (unlikely(res)) 197 if (unlikely(res))
198 return res; 198 return res;
diff --git a/drivers/cpufreq/cpufreq_conservative.c b/drivers/cpufreq/cpufreq_conservative.c
index eef0270c6f3d..05d6c22ba07c 100644
--- a/drivers/cpufreq/cpufreq_conservative.c
+++ b/drivers/cpufreq/cpufreq_conservative.c
@@ -23,7 +23,6 @@
23#include <linux/fs.h> 23#include <linux/fs.h>
24#include <linux/sysfs.h> 24#include <linux/sysfs.h>
25#include <linux/cpu.h> 25#include <linux/cpu.h>
26#include <linux/sched.h>
27#include <linux/kmod.h> 26#include <linux/kmod.h>
28#include <linux/workqueue.h> 27#include <linux/workqueue.h>
29#include <linux/jiffies.h> 28#include <linux/jiffies.h>
diff --git a/drivers/crypto/geode-aes.c b/drivers/crypto/geode-aes.c
index 31ea405f2eeb..0eb62841e9b0 100644
--- a/drivers/crypto/geode-aes.c
+++ b/drivers/crypto/geode-aes.c
@@ -8,7 +8,6 @@
8 8
9#include <linux/module.h> 9#include <linux/module.h>
10#include <linux/kernel.h> 10#include <linux/kernel.h>
11#include <linux/sched.h>
12#include <linux/pci.h> 11#include <linux/pci.h>
13#include <linux/pci_ids.h> 12#include <linux/pci_ids.h>
14#include <linux/crypto.h> 13#include <linux/crypto.h>
diff --git a/drivers/fc4/fc_syms.c b/drivers/fc4/fc_syms.c
index 8700a8076d04..bd3918ddf7ac 100644
--- a/drivers/fc4/fc_syms.c
+++ b/drivers/fc4/fc_syms.c
@@ -6,7 +6,6 @@
6 6
7#ifdef CONFIG_MODULES 7#ifdef CONFIG_MODULES
8 8
9#include <linux/sched.h>
10#include <linux/types.h> 9#include <linux/types.h>
11#include <linux/string.h> 10#include <linux/string.h>
12#include <linux/kernel.h> 11#include <linux/kernel.h>
diff --git a/drivers/fc4/soc.c b/drivers/fc4/soc.c
index b09dfc78e5a2..d517734462e6 100644
--- a/drivers/fc4/soc.c
+++ b/drivers/fc4/soc.c
@@ -22,7 +22,6 @@ static char *version =
22 22
23#include <linux/module.h> 23#include <linux/module.h>
24#include <linux/kernel.h> 24#include <linux/kernel.h>
25#include <linux/sched.h>
26#include <linux/types.h> 25#include <linux/types.h>
27#include <linux/fcntl.h> 26#include <linux/fcntl.h>
28#include <linux/interrupt.h> 27#include <linux/interrupt.h>
diff --git a/drivers/fc4/socal.c b/drivers/fc4/socal.c
index a6b1ae256e16..c903ebfab526 100644
--- a/drivers/fc4/socal.c
+++ b/drivers/fc4/socal.c
@@ -17,7 +17,6 @@ static char *version =
17 17
18#include <linux/module.h> 18#include <linux/module.h>
19#include <linux/kernel.h> 19#include <linux/kernel.h>
20#include <linux/sched.h>
21#include <linux/types.h> 20#include <linux/types.h>
22#include <linux/fcntl.h> 21#include <linux/fcntl.h>
23#include <linux/interrupt.h> 22#include <linux/interrupt.h>
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 8c7d48eff7b7..7452399501b4 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -18,7 +18,6 @@
18#include <linux/slab.h> 18#include <linux/slab.h>
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/kernel.h> 20#include <linux/kernel.h>
21#include <linux/sched.h>
22#include <linux/list.h> 21#include <linux/list.h>
23#include <linux/mm.h> 22#include <linux/mm.h>
24#include <linux/smp_lock.h> 23#include <linux/smp_lock.h>
diff --git a/drivers/i2c/busses/i2c-ali1535.c b/drivers/i2c/busses/i2c-ali1535.c
index 0b0a87b8d107..6fd8ad7faa06 100644
--- a/drivers/i2c/busses/i2c-ali1535.c
+++ b/drivers/i2c/busses/i2c-ali1535.c
@@ -57,7 +57,6 @@
57#include <linux/pci.h> 57#include <linux/pci.h>
58#include <linux/kernel.h> 58#include <linux/kernel.h>
59#include <linux/stddef.h> 59#include <linux/stddef.h>
60#include <linux/sched.h>
61#include <linux/delay.h> 60#include <linux/delay.h>
62#include <linux/ioport.h> 61#include <linux/ioport.h>
63#include <linux/i2c.h> 62#include <linux/i2c.h>
diff --git a/drivers/i2c/busses/i2c-ali15x3.c b/drivers/i2c/busses/i2c-ali15x3.c
index c537441ac038..e4e0df106812 100644
--- a/drivers/i2c/busses/i2c-ali15x3.c
+++ b/drivers/i2c/busses/i2c-ali15x3.c
@@ -64,7 +64,6 @@
64#include <linux/pci.h> 64#include <linux/pci.h>
65#include <linux/kernel.h> 65#include <linux/kernel.h>
66#include <linux/stddef.h> 66#include <linux/stddef.h>
67#include <linux/sched.h>
68#include <linux/ioport.h> 67#include <linux/ioport.h>
69#include <linux/delay.h> 68#include <linux/delay.h>
70#include <linux/i2c.h> 69#include <linux/i2c.h>
diff --git a/drivers/i2c/busses/i2c-amd756.c b/drivers/i2c/busses/i2c-amd756.c
index 91fbc0ee439c..fa6155a54cc3 100644
--- a/drivers/i2c/busses/i2c-amd756.c
+++ b/drivers/i2c/busses/i2c-amd756.c
@@ -42,7 +42,6 @@
42#include <linux/kernel.h> 42#include <linux/kernel.h>
43#include <linux/delay.h> 43#include <linux/delay.h>
44#include <linux/stddef.h> 44#include <linux/stddef.h>
45#include <linux/sched.h>
46#include <linux/ioport.h> 45#include <linux/ioport.h>
47#include <linux/i2c.h> 46#include <linux/i2c.h>
48#include <linux/init.h> 47#include <linux/init.h>
diff --git a/drivers/i2c/busses/i2c-amd8111.c b/drivers/i2c/busses/i2c-amd8111.c
index 14ad9912f204..5bba3fb50d71 100644
--- a/drivers/i2c/busses/i2c-amd8111.c
+++ b/drivers/i2c/busses/i2c-amd8111.c
@@ -12,7 +12,6 @@
12#include <linux/pci.h> 12#include <linux/pci.h>
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/stddef.h> 14#include <linux/stddef.h>
15#include <linux/sched.h>
16#include <linux/ioport.h> 15#include <linux/ioport.h>
17#include <linux/init.h> 16#include <linux/init.h>
18#include <linux/i2c.h> 17#include <linux/i2c.h>
diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c
index 8c3569a9775b..21f2671f7220 100644
--- a/drivers/i2c/busses/i2c-i801.c
+++ b/drivers/i2c/busses/i2c-i801.c
@@ -48,7 +48,6 @@
48#include <linux/kernel.h> 48#include <linux/kernel.h>
49#include <linux/stddef.h> 49#include <linux/stddef.h>
50#include <linux/delay.h> 50#include <linux/delay.h>
51#include <linux/sched.h>
52#include <linux/ioport.h> 51#include <linux/ioport.h>
53#include <linux/init.h> 52#include <linux/init.h>
54#include <linux/i2c.h> 53#include <linux/i2c.h>
diff --git a/drivers/i2c/busses/i2c-iop3xx.c b/drivers/i2c/busses/i2c-iop3xx.c
index d108ab4974cc..20ee4f7c53a0 100644
--- a/drivers/i2c/busses/i2c-iop3xx.c
+++ b/drivers/i2c/busses/i2c-iop3xx.c
@@ -36,7 +36,6 @@
36#include <linux/slab.h> 36#include <linux/slab.h>
37#include <linux/init.h> 37#include <linux/init.h>
38#include <linux/errno.h> 38#include <linux/errno.h>
39#include <linux/sched.h>
40#include <linux/platform_device.h> 39#include <linux/platform_device.h>
41#include <linux/i2c.h> 40#include <linux/i2c.h>
42 41
diff --git a/drivers/i2c/busses/i2c-nforce2.c b/drivers/i2c/busses/i2c-nforce2.c
index 653555184a64..1514ec5b77f8 100644
--- a/drivers/i2c/busses/i2c-nforce2.c
+++ b/drivers/i2c/busses/i2c-nforce2.c
@@ -44,7 +44,6 @@
44#include <linux/pci.h> 44#include <linux/pci.h>
45#include <linux/kernel.h> 45#include <linux/kernel.h>
46#include <linux/stddef.h> 46#include <linux/stddef.h>
47#include <linux/sched.h>
48#include <linux/ioport.h> 47#include <linux/ioport.h>
49#include <linux/init.h> 48#include <linux/init.h>
50#include <linux/i2c.h> 49#include <linux/i2c.h>
diff --git a/drivers/i2c/busses/i2c-ocores.c b/drivers/i2c/busses/i2c-ocores.c
index f28a76d1c0af..e417c2c3ca22 100644
--- a/drivers/i2c/busses/i2c-ocores.c
+++ b/drivers/i2c/busses/i2c-ocores.c
@@ -11,7 +11,6 @@
11 11
12#include <linux/kernel.h> 12#include <linux/kernel.h>
13#include <linux/module.h> 13#include <linux/module.h>
14#include <linux/sched.h>
15#include <linux/init.h> 14#include <linux/init.h>
16#include <linux/errno.h> 15#include <linux/errno.h>
17#include <linux/platform_device.h> 16#include <linux/platform_device.h>
diff --git a/drivers/i2c/busses/i2c-piix4.c b/drivers/i2c/busses/i2c-piix4.c
index 03d0aeea0189..d888293c1a9c 100644
--- a/drivers/i2c/busses/i2c-piix4.c
+++ b/drivers/i2c/busses/i2c-piix4.c
@@ -35,7 +35,6 @@
35#include <linux/kernel.h> 35#include <linux/kernel.h>
36#include <linux/delay.h> 36#include <linux/delay.h>
37#include <linux/stddef.h> 37#include <linux/stddef.h>
38#include <linux/sched.h>
39#include <linux/ioport.h> 38#include <linux/ioport.h>
40#include <linux/i2c.h> 39#include <linux/i2c.h>
41#include <linux/init.h> 40#include <linux/init.h>
diff --git a/drivers/i2c/busses/i2c-s3c2410.c b/drivers/i2c/busses/i2c-s3c2410.c
index 4ca6de209b8b..556f244aae76 100644
--- a/drivers/i2c/busses/i2c-s3c2410.c
+++ b/drivers/i2c/busses/i2c-s3c2410.c
@@ -28,7 +28,6 @@
28#include <linux/init.h> 28#include <linux/init.h>
29#include <linux/time.h> 29#include <linux/time.h>
30#include <linux/interrupt.h> 30#include <linux/interrupt.h>
31#include <linux/sched.h>
32#include <linux/delay.h> 31#include <linux/delay.h>
33#include <linux/errno.h> 32#include <linux/errno.h>
34#include <linux/err.h> 33#include <linux/err.h>
diff --git a/drivers/i2c/busses/i2c-sis96x.c b/drivers/i2c/busses/i2c-sis96x.c
index 869a635d37e9..73dae449fb23 100644
--- a/drivers/i2c/busses/i2c-sis96x.c
+++ b/drivers/i2c/busses/i2c-sis96x.c
@@ -37,7 +37,6 @@
37#include <linux/kernel.h> 37#include <linux/kernel.h>
38#include <linux/delay.h> 38#include <linux/delay.h>
39#include <linux/stddef.h> 39#include <linux/stddef.h>
40#include <linux/sched.h>
41#include <linux/ioport.h> 40#include <linux/ioport.h>
42#include <linux/i2c.h> 41#include <linux/i2c.h>
43#include <linux/init.h> 42#include <linux/init.h>
diff --git a/drivers/i2c/chips/eeprom.c b/drivers/i2c/chips/eeprom.c
index cec3a0c3894d..bfce13c8f1ff 100644
--- a/drivers/i2c/chips/eeprom.c
+++ b/drivers/i2c/chips/eeprom.c
@@ -30,7 +30,6 @@
30#include <linux/init.h> 30#include <linux/init.h>
31#include <linux/module.h> 31#include <linux/module.h>
32#include <linux/slab.h> 32#include <linux/slab.h>
33#include <linux/sched.h>
34#include <linux/jiffies.h> 33#include <linux/jiffies.h>
35#include <linux/i2c.h> 34#include <linux/i2c.h>
36#include <linux/mutex.h> 35#include <linux/mutex.h>
diff --git a/drivers/ide/ide-proc.c b/drivers/ide/ide-proc.c
index 30a5780f4185..afb71c66b6f3 100644
--- a/drivers/ide/ide-proc.c
+++ b/drivers/ide/ide-proc.c
@@ -26,7 +26,6 @@
26 26
27#include <asm/uaccess.h> 27#include <asm/uaccess.h>
28#include <linux/errno.h> 28#include <linux/errno.h>
29#include <linux/sched.h>
30#include <linux/proc_fs.h> 29#include <linux/proc_fs.h>
31#include <linux/stat.h> 30#include <linux/stat.h>
32#include <linux/mm.h> 31#include <linux/mm.h>
diff --git a/drivers/ide/legacy/ide-cs.c b/drivers/ide/legacy/ide-cs.c
index 7efd28ac21ed..a5023cdbdc58 100644
--- a/drivers/ide/legacy/ide-cs.c
+++ b/drivers/ide/legacy/ide-cs.c
@@ -34,7 +34,6 @@
34#include <linux/module.h> 34#include <linux/module.h>
35#include <linux/kernel.h> 35#include <linux/kernel.h>
36#include <linux/init.h> 36#include <linux/init.h>
37#include <linux/sched.h>
38#include <linux/ptrace.h> 37#include <linux/ptrace.h>
39#include <linux/slab.h> 38#include <linux/slab.h>
40#include <linux/string.h> 39#include <linux/string.h>
diff --git a/drivers/ide/ppc/mpc8xx.c b/drivers/ide/ppc/mpc8xx.c
index 0ac9da3a7378..82de2d781f2e 100644
--- a/drivers/ide/ppc/mpc8xx.c
+++ b/drivers/ide/ppc/mpc8xx.c
@@ -12,7 +12,6 @@
12 */ 12 */
13 13
14#include <linux/errno.h> 14#include <linux/errno.h>
15#include <linux/sched.h>
16#include <linux/kernel.h> 15#include <linux/kernel.h>
17#include <linux/mm.h> 16#include <linux/mm.h>
18#include <linux/stddef.h> 17#include <linux/stddef.h>
diff --git a/drivers/ide/ppc/pmac.c b/drivers/ide/ppc/pmac.c
index 91c5344a945d..d8ea23710bf0 100644
--- a/drivers/ide/ppc/pmac.c
+++ b/drivers/ide/ppc/pmac.c
@@ -24,7 +24,6 @@
24 */ 24 */
25#include <linux/types.h> 25#include <linux/types.h>
26#include <linux/kernel.h> 26#include <linux/kernel.h>
27#include <linux/sched.h>
28#include <linux/init.h> 27#include <linux/init.h>
29#include <linux/delay.h> 28#include <linux/delay.h>
30#include <linux/ide.h> 29#include <linux/ide.h>
diff --git a/drivers/ieee1394/eth1394.c b/drivers/ieee1394/eth1394.c
index 97e5c3dd044d..a95313521985 100644
--- a/drivers/ieee1394/eth1394.c
+++ b/drivers/ieee1394/eth1394.c
@@ -43,7 +43,6 @@
43 43
44#include <linux/module.h> 44#include <linux/module.h>
45 45
46#include <linux/sched.h>
47#include <linux/kernel.h> 46#include <linux/kernel.h>
48#include <linux/slab.h> 47#include <linux/slab.h>
49#include <linux/errno.h> 48#include <linux/errno.h>
diff --git a/drivers/ieee1394/iso.c b/drivers/ieee1394/iso.c
index 08bd15d2a7b6..c6227e51136d 100644
--- a/drivers/ieee1394/iso.c
+++ b/drivers/ieee1394/iso.c
@@ -10,7 +10,6 @@
10 */ 10 */
11 11
12#include <linux/pci.h> 12#include <linux/pci.h>
13#include <linux/sched.h>
14#include <linux/slab.h> 13#include <linux/slab.h>
15 14
16#include "hosts.h" 15#include "hosts.h"
diff --git a/drivers/ieee1394/ohci1394.c b/drivers/ieee1394/ohci1394.c
index 5729e412cc4a..e982d60ac4b7 100644
--- a/drivers/ieee1394/ohci1394.c
+++ b/drivers/ieee1394/ohci1394.c
@@ -102,7 +102,6 @@
102#include <asm/pgtable.h> 102#include <asm/pgtable.h>
103#include <asm/page.h> 103#include <asm/page.h>
104#include <asm/irq.h> 104#include <asm/irq.h>
105#include <linux/sched.h>
106#include <linux/types.h> 105#include <linux/types.h>
107#include <linux/vmalloc.h> 106#include <linux/vmalloc.h>
108#include <linux/init.h> 107#include <linux/init.h>
diff --git a/drivers/infiniband/core/cache.c b/drivers/infiniband/core/cache.c
index 98272fbbfb31..558c9a0fc8b9 100644
--- a/drivers/infiniband/core/cache.c
+++ b/drivers/infiniband/core/cache.c
@@ -38,7 +38,6 @@
38#include <linux/module.h> 38#include <linux/module.h>
39#include <linux/errno.h> 39#include <linux/errno.h>
40#include <linux/slab.h> 40#include <linux/slab.h>
41#include <linux/sched.h> /* INIT_WORK, schedule_work(), flush_scheduled_work() */
42 41
43#include <rdma/ib_cache.h> 42#include <rdma/ib_cache.h>
44 43
diff --git a/drivers/infiniband/hw/amso1100/c2.c b/drivers/infiniband/hw/amso1100/c2.c
index 27fe242ed435..59243d9aedd6 100644
--- a/drivers/infiniband/hw/amso1100/c2.c
+++ b/drivers/infiniband/hw/amso1100/c2.c
@@ -1073,7 +1073,7 @@ static int __devinit c2_probe(struct pci_dev *pcidev,
1073 0xffffc000) / sizeof(struct c2_rxp_desc); 1073 0xffffc000) / sizeof(struct c2_rxp_desc);
1074 1074
1075 /* Request an interrupt line for the driver */ 1075 /* Request an interrupt line for the driver */
1076 ret = request_irq(pcidev->irq, c2_interrupt, SA_SHIRQ, DRV_NAME, c2dev); 1076 ret = request_irq(pcidev->irq, c2_interrupt, IRQF_SHARED, DRV_NAME, c2dev);
1077 if (ret) { 1077 if (ret) {
1078 printk(KERN_ERR PFX "%s: requested IRQ %u is busy\n", 1078 printk(KERN_ERR PFX "%s: requested IRQ %u is busy\n",
1079 pci_name(pcidev), pcidev->irq); 1079 pci_name(pcidev), pcidev->irq);
diff --git a/drivers/infiniband/hw/ehca/ehca_eq.c b/drivers/infiniband/hw/ehca/ehca_eq.c
index 5281dec66f12..24ceab0bae4a 100644
--- a/drivers/infiniband/hw/ehca/ehca_eq.c
+++ b/drivers/infiniband/hw/ehca/ehca_eq.c
@@ -122,7 +122,7 @@ int ehca_create_eq(struct ehca_shca *shca,
122 /* register interrupt handlers and initialize work queues */ 122 /* register interrupt handlers and initialize work queues */
123 if (type == EHCA_EQ) { 123 if (type == EHCA_EQ) {
124 ret = ibmebus_request_irq(NULL, eq->ist, ehca_interrupt_eq, 124 ret = ibmebus_request_irq(NULL, eq->ist, ehca_interrupt_eq,
125 SA_INTERRUPT, "ehca_eq", 125 IRQF_DISABLED, "ehca_eq",
126 (void *)shca); 126 (void *)shca);
127 if (ret < 0) 127 if (ret < 0)
128 ehca_err(ib_dev, "Can't map interrupt handler."); 128 ehca_err(ib_dev, "Can't map interrupt handler.");
@@ -130,7 +130,7 @@ int ehca_create_eq(struct ehca_shca *shca,
130 tasklet_init(&eq->interrupt_task, ehca_tasklet_eq, (long)shca); 130 tasklet_init(&eq->interrupt_task, ehca_tasklet_eq, (long)shca);
131 } else if (type == EHCA_NEQ) { 131 } else if (type == EHCA_NEQ) {
132 ret = ibmebus_request_irq(NULL, eq->ist, ehca_interrupt_neq, 132 ret = ibmebus_request_irq(NULL, eq->ist, ehca_interrupt_neq,
133 SA_INTERRUPT, "ehca_neq", 133 IRQF_DISABLED, "ehca_neq",
134 (void *)shca); 134 (void *)shca);
135 if (ret < 0) 135 if (ret < 0)
136 ehca_err(ib_dev, "Can't map interrupt handler."); 136 ehca_err(ib_dev, "Can't map interrupt handler.");
diff --git a/drivers/input/ff-memless.c b/drivers/input/ff-memless.c
index eba18b6ac5e4..d226d935b0dc 100644
--- a/drivers/input/ff-memless.c
+++ b/drivers/input/ff-memless.c
@@ -29,7 +29,7 @@
29#include <linux/module.h> 29#include <linux/module.h>
30#include <linux/mutex.h> 30#include <linux/mutex.h>
31#include <linux/spinlock.h> 31#include <linux/spinlock.h>
32#include <linux/sched.h> 32#include <linux/jiffies.h>
33 33
34#include "fixp-arith.h" 34#include "fixp-arith.h"
35 35
diff --git a/drivers/input/input.c b/drivers/input/input.c
index 14d4c0493c36..efa1b1f75393 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -11,7 +11,6 @@
11 */ 11 */
12 12
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/sched.h>
15#include <linux/smp_lock.h> 14#include <linux/smp_lock.h>
16#include <linux/input.h> 15#include <linux/input.h>
17#include <linux/module.h> 16#include <linux/module.h>
diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c
index 3a8f1b427a7f..7ad479e4e3b3 100644
--- a/drivers/input/keyboard/gpio_keys.c
+++ b/drivers/input/keyboard/gpio_keys.c
@@ -78,7 +78,7 @@ static int __devinit gpio_keys_probe(struct platform_device *pdev)
78 int irq = IRQ_GPIO(pdata->buttons[i].gpio); 78 int irq = IRQ_GPIO(pdata->buttons[i].gpio);
79 79
80 set_irq_type(irq, IRQ_TYPE_EDGE_BOTH); 80 set_irq_type(irq, IRQ_TYPE_EDGE_BOTH);
81 error = request_irq(irq, gpio_keys_isr, SA_SAMPLE_RANDOM, 81 error = request_irq(irq, gpio_keys_isr, IRQF_SAMPLE_RANDOM,
82 pdata->buttons[i].desc ? pdata->buttons[i].desc : "gpio_keys", 82 pdata->buttons[i].desc ? pdata->buttons[i].desc : "gpio_keys",
83 pdev); 83 pdev);
84 if (error) { 84 if (error) {
diff --git a/drivers/input/mouse/rpcmouse.c b/drivers/input/mouse/rpcmouse.c
index fbdcfd8eb4e9..355efd0423e7 100644
--- a/drivers/input/mouse/rpcmouse.c
+++ b/drivers/input/mouse/rpcmouse.c
@@ -18,7 +18,6 @@
18 */ 18 */
19 19
20#include <linux/module.h> 20#include <linux/module.h>
21#include <linux/sched.h>
22#include <linux/ptrace.h> 21#include <linux/ptrace.h>
23#include <linux/interrupt.h> 22#include <linux/interrupt.h>
24#include <linux/init.h> 23#include <linux/init.h>
diff --git a/drivers/input/serio/hil_mlc.c b/drivers/input/serio/hil_mlc.c
index 49e11e2c1d5d..4fa93ff30919 100644
--- a/drivers/input/serio/hil_mlc.c
+++ b/drivers/input/serio/hil_mlc.c
@@ -59,7 +59,6 @@
59#include <linux/init.h> 59#include <linux/init.h>
60#include <linux/interrupt.h> 60#include <linux/interrupt.h>
61#include <linux/timer.h> 61#include <linux/timer.h>
62#include <linux/sched.h>
63#include <linux/list.h> 62#include <linux/list.h>
64 63
65MODULE_AUTHOR("Brian S. Julin <bri@calyx.com>"); 64MODULE_AUTHOR("Brian S. Julin <bri@calyx.com>");
diff --git a/drivers/input/serio/hp_sdc.c b/drivers/input/serio/hp_sdc.c
index 9907ad3bea23..b57370dc4e3d 100644
--- a/drivers/input/serio/hp_sdc.c
+++ b/drivers/input/serio/hp_sdc.c
@@ -62,7 +62,6 @@
62 */ 62 */
63 63
64#include <linux/hp_sdc.h> 64#include <linux/hp_sdc.h>
65#include <linux/sched.h>
66#include <linux/errno.h> 65#include <linux/errno.h>
67#include <linux/init.h> 66#include <linux/init.h>
68#include <linux/module.h> 67#include <linux/module.h>
diff --git a/drivers/isdn/capi/capidrv.c b/drivers/isdn/capi/capidrv.c
index 8cec9c3898ec..2a49cea0a223 100644
--- a/drivers/isdn/capi/capidrv.c
+++ b/drivers/isdn/capi/capidrv.c
@@ -13,7 +13,6 @@
13#include <linux/errno.h> 13#include <linux/errno.h>
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/major.h> 15#include <linux/major.h>
16#include <linux/sched.h>
17#include <linux/slab.h> 16#include <linux/slab.h>
18#include <linux/fcntl.h> 17#include <linux/fcntl.h>
19#include <linux/fs.h> 18#include <linux/fs.h>
diff --git a/drivers/isdn/hardware/avm/avm_cs.c b/drivers/isdn/hardware/avm/avm_cs.c
index eba10466ccc6..a5b941c327f7 100644
--- a/drivers/isdn/hardware/avm/avm_cs.c
+++ b/drivers/isdn/hardware/avm/avm_cs.c
@@ -12,7 +12,6 @@
12#include <linux/module.h> 12#include <linux/module.h>
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/sched.h>
16#include <linux/ptrace.h> 15#include <linux/ptrace.h>
17#include <linux/slab.h> 16#include <linux/slab.h>
18#include <linux/string.h> 17#include <linux/string.h>
diff --git a/drivers/isdn/hardware/eicon/divamnt.c b/drivers/isdn/hardware/eicon/divamnt.c
index 6b2940ed0776..4aba5c502d8e 100644
--- a/drivers/isdn/hardware/eicon/divamnt.c
+++ b/drivers/isdn/hardware/eicon/divamnt.c
@@ -13,7 +13,6 @@
13#include <linux/module.h> 13#include <linux/module.h>
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/kernel.h> 15#include <linux/kernel.h>
16#include <linux/sched.h>
17#include <linux/smp_lock.h> 16#include <linux/smp_lock.h>
18#include <linux/poll.h> 17#include <linux/poll.h>
19#include <asm/uaccess.h> 18#include <asm/uaccess.h>
diff --git a/drivers/isdn/hardware/eicon/divasmain.c b/drivers/isdn/hardware/eicon/divasmain.c
index b365e44072c0..5e862e244117 100644
--- a/drivers/isdn/hardware/eicon/divasmain.c
+++ b/drivers/isdn/hardware/eicon/divasmain.c
@@ -12,7 +12,6 @@
12#include <linux/module.h> 12#include <linux/module.h>
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/sched.h>
16#include <asm/uaccess.h> 15#include <asm/uaccess.h>
17#include <asm/io.h> 16#include <asm/io.h>
18#include <linux/ioport.h> 17#include <linux/ioport.h>
diff --git a/drivers/isdn/hisax/avma1_cs.c b/drivers/isdn/hisax/avma1_cs.c
index 9e70c206779e..fc6cc2c065b8 100644
--- a/drivers/isdn/hisax/avma1_cs.c
+++ b/drivers/isdn/hisax/avma1_cs.c
@@ -14,7 +14,6 @@
14 14
15#include <linux/kernel.h> 15#include <linux/kernel.h>
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/sched.h>
18#include <linux/ptrace.h> 17#include <linux/ptrace.h>
19#include <linux/slab.h> 18#include <linux/slab.h>
20#include <linux/string.h> 19#include <linux/string.h>
diff --git a/drivers/isdn/hisax/elsa_cs.c b/drivers/isdn/hisax/elsa_cs.c
index 79ab9dda7d08..db7e64424afe 100644
--- a/drivers/isdn/hisax/elsa_cs.c
+++ b/drivers/isdn/hisax/elsa_cs.c
@@ -38,7 +38,6 @@
38#include <linux/module.h> 38#include <linux/module.h>
39#include <linux/kernel.h> 39#include <linux/kernel.h>
40#include <linux/init.h> 40#include <linux/init.h>
41#include <linux/sched.h>
42#include <linux/ptrace.h> 41#include <linux/ptrace.h>
43#include <linux/slab.h> 42#include <linux/slab.h>
44#include <linux/string.h> 43#include <linux/string.h>
diff --git a/drivers/isdn/hisax/hfc_usb.c b/drivers/isdn/hisax/hfc_usb.c
index 42bbae2a646c..9f44d3e69fb0 100644
--- a/drivers/isdn/hisax/hfc_usb.c
+++ b/drivers/isdn/hisax/hfc_usb.c
@@ -38,7 +38,6 @@
38#include <linux/usb.h> 38#include <linux/usb.h>
39#include <linux/kernel.h> 39#include <linux/kernel.h>
40#include <linux/smp_lock.h> 40#include <linux/smp_lock.h>
41#include <linux/sched.h>
42#include "hisax.h" 41#include "hisax.h"
43#include "hisax_if.h" 42#include "hisax_if.h"
44#include "hfc_usb.h" 43#include "hfc_usb.h"
diff --git a/drivers/isdn/hisax/sedlbauer_cs.c b/drivers/isdn/hisax/sedlbauer_cs.c
index 45debde05fbd..439cb530def8 100644
--- a/drivers/isdn/hisax/sedlbauer_cs.c
+++ b/drivers/isdn/hisax/sedlbauer_cs.c
@@ -38,7 +38,6 @@
38#include <linux/kernel.h> 38#include <linux/kernel.h>
39#include <linux/module.h> 39#include <linux/module.h>
40#include <linux/init.h> 40#include <linux/init.h>
41#include <linux/sched.h>
42#include <linux/ptrace.h> 41#include <linux/ptrace.h>
43#include <linux/slab.h> 42#include <linux/slab.h>
44#include <linux/string.h> 43#include <linux/string.h>
diff --git a/drivers/isdn/hisax/teles_cs.c b/drivers/isdn/hisax/teles_cs.c
index 3e3e18239ec7..ab4bd455450e 100644
--- a/drivers/isdn/hisax/teles_cs.c
+++ b/drivers/isdn/hisax/teles_cs.c
@@ -19,7 +19,6 @@
19#include <linux/kernel.h> 19#include <linux/kernel.h>
20#include <linux/module.h> 20#include <linux/module.h>
21#include <linux/init.h> 21#include <linux/init.h>
22#include <linux/sched.h>
23#include <linux/ptrace.h> 22#include <linux/ptrace.h>
24#include <linux/slab.h> 23#include <linux/slab.h>
25#include <linux/string.h> 24#include <linux/string.h>
diff --git a/drivers/isdn/hysdn/boardergo.c b/drivers/isdn/hysdn/boardergo.c
index a1206498a1cf..84dccd526ac0 100644
--- a/drivers/isdn/hysdn/boardergo.c
+++ b/drivers/isdn/hysdn/boardergo.c
@@ -14,7 +14,6 @@
14 * 14 *
15 */ 15 */
16 16
17#include <linux/sched.h>
18#include <linux/signal.h> 17#include <linux/signal.h>
19#include <linux/kernel.h> 18#include <linux/kernel.h>
20#include <linux/ioport.h> 19#include <linux/ioport.h>
diff --git a/drivers/isdn/hysdn/hysdn_sched.c b/drivers/isdn/hysdn/hysdn_sched.c
index 18758772b744..b7b5aa4748a0 100644
--- a/drivers/isdn/hysdn/hysdn_sched.c
+++ b/drivers/isdn/hysdn/hysdn_sched.c
@@ -11,7 +11,6 @@
11 * 11 *
12 */ 12 */
13 13
14#include <linux/sched.h>
15#include <linux/signal.h> 14#include <linux/signal.h>
16#include <linux/kernel.h> 15#include <linux/kernel.h>
17#include <linux/ioport.h> 16#include <linux/ioport.h>
diff --git a/drivers/isdn/i4l/isdn_bsdcomp.c b/drivers/isdn/i4l/isdn_bsdcomp.c
index a20f33b4a220..90a23795db7e 100644
--- a/drivers/isdn/i4l/isdn_bsdcomp.c
+++ b/drivers/isdn/i4l/isdn_bsdcomp.c
@@ -56,7 +56,6 @@
56#include <linux/module.h> 56#include <linux/module.h>
57#include <linux/init.h> 57#include <linux/init.h>
58#include <linux/kernel.h> 58#include <linux/kernel.h>
59#include <linux/sched.h>
60#include <linux/types.h> 59#include <linux/types.h>
61#include <linux/fcntl.h> 60#include <linux/fcntl.h>
62#include <linux/interrupt.h> 61#include <linux/interrupt.h>
diff --git a/drivers/isdn/pcbit/callbacks.c b/drivers/isdn/pcbit/callbacks.c
index f151f36c8255..43ecd0f54235 100644
--- a/drivers/isdn/pcbit/callbacks.c
+++ b/drivers/isdn/pcbit/callbacks.c
@@ -15,7 +15,6 @@
15 * NULL pointer dereference in cb_in_1 (originally fixed in 2.0) 15 * NULL pointer dereference in cb_in_1 (originally fixed in 2.0)
16 */ 16 */
17 17
18#include <linux/sched.h>
19#include <linux/string.h> 18#include <linux/string.h>
20#include <linux/kernel.h> 19#include <linux/kernel.h>
21 20
diff --git a/drivers/isdn/pcbit/capi.c b/drivers/isdn/pcbit/capi.c
index bef321d0e51d..47c59e95898d 100644
--- a/drivers/isdn/pcbit/capi.c
+++ b/drivers/isdn/pcbit/capi.c
@@ -27,7 +27,6 @@
27 * encode our number in CallerPN and ConnectedPN 27 * encode our number in CallerPN and ConnectedPN
28 */ 28 */
29 29
30#include <linux/sched.h>
31#include <linux/string.h> 30#include <linux/string.h>
32#include <linux/kernel.h> 31#include <linux/kernel.h>
33 32
diff --git a/drivers/isdn/pcbit/drv.c b/drivers/isdn/pcbit/drv.c
index 386c5ce64844..8c66bcb953a1 100644
--- a/drivers/isdn/pcbit/drv.c
+++ b/drivers/isdn/pcbit/drv.c
@@ -19,7 +19,6 @@
19 19
20#include <linux/module.h> 20#include <linux/module.h>
21 21
22#include <linux/sched.h>
23 22
24#include <linux/kernel.h> 23#include <linux/kernel.h>
25 24
diff --git a/drivers/isdn/pcbit/edss1.c b/drivers/isdn/pcbit/edss1.c
index 1ad8b07efd8b..37e9626cebf6 100644
--- a/drivers/isdn/pcbit/edss1.c
+++ b/drivers/isdn/pcbit/edss1.c
@@ -15,7 +15,6 @@
15 * move state/event descriptions to a user space logger 15 * move state/event descriptions to a user space logger
16 */ 16 */
17 17
18#include <linux/sched.h>
19#include <linux/string.h> 18#include <linux/string.h>
20#include <linux/kernel.h> 19#include <linux/kernel.h>
21 20
diff --git a/drivers/isdn/pcbit/layer2.c b/drivers/isdn/pcbit/layer2.c
index 58eee50c8e26..5ba2a879df14 100644
--- a/drivers/isdn/pcbit/layer2.c
+++ b/drivers/isdn/pcbit/layer2.c
@@ -24,7 +24,6 @@
24 * re-write/remove debug printks 24 * re-write/remove debug printks
25 */ 25 */
26 26
27#include <linux/sched.h>
28#include <linux/string.h> 27#include <linux/string.h>
29#include <linux/kernel.h> 28#include <linux/kernel.h>
30#include <linux/types.h> 29#include <linux/types.h>
diff --git a/drivers/isdn/pcbit/module.c b/drivers/isdn/pcbit/module.c
index 7b7b1777f09b..04ea241ff176 100644
--- a/drivers/isdn/pcbit/module.c
+++ b/drivers/isdn/pcbit/module.c
@@ -11,7 +11,6 @@
11 11
12#include <linux/module.h> 12#include <linux/module.h>
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/sched.h>
15#include <linux/string.h> 14#include <linux/string.h>
16#include <linux/kernel.h> 15#include <linux/kernel.h>
17#include <linux/skbuff.h> 16#include <linux/skbuff.h>
diff --git a/drivers/kvm/vmx.c b/drivers/kvm/vmx.c
index 1e640b899175..fd4e91734388 100644
--- a/drivers/kvm/vmx.c
+++ b/drivers/kvm/vmx.c
@@ -1879,12 +1879,6 @@ again:
1879 1879
1880 asm ("mov %0, %%ds; mov %0, %%es" : : "r"(__USER_DS)); 1880 asm ("mov %0, %%ds; mov %0, %%es" : : "r"(__USER_DS));
1881 1881
1882 /*
1883 * Profile KVM exit RIPs:
1884 */
1885 if (unlikely(prof_on == KVM_PROFILING))
1886 profile_hit(KVM_PROFILING, (void *)vmcs_readl(GUEST_RIP));
1887
1888 kvm_run->exit_type = 0; 1882 kvm_run->exit_type = 0;
1889 if (fail) { 1883 if (fail) {
1890 kvm_run->exit_type = KVM_EXIT_TYPE_FAIL_ENTRY; 1884 kvm_run->exit_type = KVM_EXIT_TYPE_FAIL_ENTRY;
@@ -1907,6 +1901,12 @@ again:
1907 1901
1908 reload_tss(); 1902 reload_tss();
1909 } 1903 }
1904 /*
1905 * Profile KVM exit RIPs:
1906 */
1907 if (unlikely(prof_on == KVM_PROFILING))
1908 profile_hit(KVM_PROFILING, (void *)vmcs_readl(GUEST_RIP));
1909
1910 vcpu->launched = 1; 1910 vcpu->launched = 1;
1911 kvm_run->exit_type = KVM_EXIT_TYPE_VM_EXIT; 1911 kvm_run->exit_type = KVM_EXIT_TYPE_VM_EXIT;
1912 r = kvm_handle_exit(kvm_run, vcpu); 1912 r = kvm_handle_exit(kvm_run, vcpu);
diff --git a/drivers/macintosh/mac_hid.c b/drivers/macintosh/mac_hid.c
index f632cec9ce45..c1fd816e9f09 100644
--- a/drivers/macintosh/mac_hid.c
+++ b/drivers/macintosh/mac_hid.c
@@ -138,7 +138,7 @@ int __init mac_hid_init(void)
138 return err; 138 return err;
139 139
140#if defined(CONFIG_SYSCTL) 140#if defined(CONFIG_SYSCTL)
141 mac_hid_sysctl_header = register_sysctl_table(mac_hid_root_dir, 1); 141 mac_hid_sysctl_header = register_sysctl_table(mac_hid_root_dir);
142#endif /* CONFIG_SYSCTL */ 142#endif /* CONFIG_SYSCTL */
143 143
144 return 0; 144 return 0;
diff --git a/drivers/macintosh/macio-adb.c b/drivers/macintosh/macio-adb.c
index 797cef72258f..026b67f4f659 100644
--- a/drivers/macintosh/macio-adb.c
+++ b/drivers/macintosh/macio-adb.c
@@ -6,7 +6,6 @@
6#include <linux/errno.h> 6#include <linux/errno.h>
7#include <linux/kernel.h> 7#include <linux/kernel.h>
8#include <linux/delay.h> 8#include <linux/delay.h>
9#include <linux/sched.h>
10#include <linux/spinlock.h> 9#include <linux/spinlock.h>
11#include <linux/interrupt.h> 10#include <linux/interrupt.h>
12#include <asm/prom.h> 11#include <asm/prom.h>
diff --git a/drivers/macintosh/via-cuda.c b/drivers/macintosh/via-cuda.c
index 3797f503cd6c..d58fcf6cca0a 100644
--- a/drivers/macintosh/via-cuda.c
+++ b/drivers/macintosh/via-cuda.c
@@ -13,7 +13,6 @@
13#include <linux/errno.h> 13#include <linux/errno.h>
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/delay.h> 15#include <linux/delay.h>
16#include <linux/sched.h>
17#include <linux/adb.h> 16#include <linux/adb.h>
18#include <linux/cuda.h> 17#include <linux/cuda.h>
19#include <linux/spinlock.h> 18#include <linux/spinlock.h>
diff --git a/drivers/macintosh/via-macii.c b/drivers/macintosh/via-macii.c
index 175b3e56e375..1b3bad62a1be 100644
--- a/drivers/macintosh/via-macii.c
+++ b/drivers/macintosh/via-macii.c
@@ -19,7 +19,6 @@
19#include <linux/errno.h> 19#include <linux/errno.h>
20#include <linux/kernel.h> 20#include <linux/kernel.h>
21#include <linux/delay.h> 21#include <linux/delay.h>
22#include <linux/sched.h>
23#include <linux/adb.h> 22#include <linux/adb.h>
24#include <linux/interrupt.h> 23#include <linux/interrupt.h>
25#include <linux/init.h> 24#include <linux/init.h>
diff --git a/drivers/macintosh/via-maciisi.c b/drivers/macintosh/via-maciisi.c
index 10051db48d23..2dc788042707 100644
--- a/drivers/macintosh/via-maciisi.c
+++ b/drivers/macintosh/via-maciisi.c
@@ -18,7 +18,6 @@
18#include <linux/types.h> 18#include <linux/types.h>
19#include <linux/errno.h> 19#include <linux/errno.h>
20#include <linux/kernel.h> 20#include <linux/kernel.h>
21#include <linux/sched.h>
22#include <linux/adb.h> 21#include <linux/adb.h>
23#include <linux/cuda.h> 22#include <linux/cuda.h>
24#include <linux/delay.h> 23#include <linux/delay.h>
diff --git a/drivers/macintosh/via-pmu68k.c b/drivers/macintosh/via-pmu68k.c
index 54baee57d2f8..356c7216a179 100644
--- a/drivers/macintosh/via-pmu68k.c
+++ b/drivers/macintosh/via-pmu68k.c
@@ -22,7 +22,6 @@
22#include <linux/errno.h> 22#include <linux/errno.h>
23#include <linux/kernel.h> 23#include <linux/kernel.h>
24#include <linux/delay.h> 24#include <linux/delay.h>
25#include <linux/sched.h>
26#include <linux/miscdevice.h> 25#include <linux/miscdevice.h>
27#include <linux/blkdev.h> 26#include <linux/blkdev.h>
28#include <linux/pci.h> 27#include <linux/pci.h>
diff --git a/drivers/md/md.c b/drivers/md/md.c
index e85fa75a7912..05febfd9f071 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -5581,7 +5581,7 @@ static int __init md_init(void)
5581 md_probe, NULL, NULL); 5581 md_probe, NULL, NULL);
5582 5582
5583 register_reboot_notifier(&md_notifier); 5583 register_reboot_notifier(&md_notifier);
5584 raid_table_header = register_sysctl_table(raid_root_table, 1); 5584 raid_table_header = register_sysctl_table(raid_root_table);
5585 5585
5586 md_geninit(); 5586 md_geninit();
5587 return (0); 5587 return (0);
diff --git a/drivers/media/dvb/dvb-core/dmxdev.c b/drivers/media/dvb/dvb-core/dmxdev.c
index 988499dfddf8..fc77de45ca4d 100644
--- a/drivers/media/dvb/dvb-core/dmxdev.c
+++ b/drivers/media/dvb/dvb-core/dmxdev.c
@@ -25,7 +25,6 @@
25#include <linux/vmalloc.h> 25#include <linux/vmalloc.h>
26#include <linux/module.h> 26#include <linux/module.h>
27#include <linux/moduleparam.h> 27#include <linux/moduleparam.h>
28#include <linux/sched.h>
29#include <linux/poll.h> 28#include <linux/poll.h>
30#include <linux/ioctl.h> 29#include <linux/ioctl.h>
31#include <linux/wait.h> 30#include <linux/wait.h>
diff --git a/drivers/media/dvb/dvb-core/dvbdev.c b/drivers/media/dvb/dvb-core/dvbdev.c
index 40774feb8953..826b47f155a0 100644
--- a/drivers/media/dvb/dvb-core/dvbdev.c
+++ b/drivers/media/dvb/dvb-core/dvbdev.c
@@ -27,7 +27,6 @@
27#include <linux/module.h> 27#include <linux/module.h>
28#include <linux/moduleparam.h> 28#include <linux/moduleparam.h>
29#include <linux/kernel.h> 29#include <linux/kernel.h>
30#include <linux/sched.h>
31#include <linux/init.h> 30#include <linux/init.h>
32#include <linux/slab.h> 31#include <linux/slab.h>
33#include <linux/device.h> 32#include <linux/device.h>
diff --git a/drivers/media/dvb/ttpci/av7110_av.c b/drivers/media/dvb/ttpci/av7110_av.c
index 8c577cf30fb3..795e6e95915c 100644
--- a/drivers/media/dvb/ttpci/av7110_av.c
+++ b/drivers/media/dvb/ttpci/av7110_av.c
@@ -31,7 +31,6 @@
31#include <linux/types.h> 31#include <linux/types.h>
32#include <linux/kernel.h> 32#include <linux/kernel.h>
33#include <linux/string.h> 33#include <linux/string.h>
34#include <linux/sched.h>
35#include <linux/delay.h> 34#include <linux/delay.h>
36#include <linux/smp_lock.h> 35#include <linux/smp_lock.h>
37#include <linux/fs.h> 36#include <linux/fs.h>
diff --git a/drivers/media/dvb/ttpci/av7110_ca.c b/drivers/media/dvb/ttpci/av7110_ca.c
index dd9aee314e0a..4251a97d420e 100644
--- a/drivers/media/dvb/ttpci/av7110_ca.c
+++ b/drivers/media/dvb/ttpci/av7110_ca.c
@@ -29,7 +29,6 @@
29 */ 29 */
30 30
31#include <linux/kernel.h> 31#include <linux/kernel.h>
32#include <linux/sched.h>
33#include <linux/types.h> 32#include <linux/types.h>
34#include <linux/delay.h> 33#include <linux/delay.h>
35#include <linux/fs.h> 34#include <linux/fs.h>
diff --git a/drivers/media/dvb/ttpci/av7110_hw.c b/drivers/media/dvb/ttpci/av7110_hw.c
index 37de2e88a273..4d7150e15d1e 100644
--- a/drivers/media/dvb/ttpci/av7110_hw.c
+++ b/drivers/media/dvb/ttpci/av7110_hw.c
@@ -32,7 +32,6 @@
32#include <linux/types.h> 32#include <linux/types.h>
33#include <linux/kernel.h> 33#include <linux/kernel.h>
34#include <linux/string.h> 34#include <linux/string.h>
35#include <linux/sched.h>
36#include <linux/delay.h> 35#include <linux/delay.h>
37#include <linux/smp_lock.h> 36#include <linux/smp_lock.h>
38#include <linux/fs.h> 37#include <linux/fs.h>
diff --git a/drivers/media/dvb/ttpci/av7110_v4l.c b/drivers/media/dvb/ttpci/av7110_v4l.c
index 10cfe3131e72..dbfd5e7b4be0 100644
--- a/drivers/media/dvb/ttpci/av7110_v4l.c
+++ b/drivers/media/dvb/ttpci/av7110_v4l.c
@@ -26,7 +26,6 @@
26 */ 26 */
27 27
28#include <linux/kernel.h> 28#include <linux/kernel.h>
29#include <linux/sched.h>
30#include <linux/types.h> 29#include <linux/types.h>
31#include <linux/delay.h> 30#include <linux/delay.h>
32#include <linux/fs.h> 31#include <linux/fs.h>
diff --git a/drivers/media/radio/miropcm20-rds.c b/drivers/media/radio/miropcm20-rds.c
index c93490ec96bb..aed11477378b 100644
--- a/drivers/media/radio/miropcm20-rds.c
+++ b/drivers/media/radio/miropcm20-rds.c
@@ -14,7 +14,6 @@
14#include <linux/slab.h> 14#include <linux/slab.h>
15#include <linux/fs.h> 15#include <linux/fs.h>
16#include <linux/miscdevice.h> 16#include <linux/miscdevice.h>
17#include <linux/sched.h> /* current, TASK_*, schedule_timeout() */
18#include <linux/delay.h> 17#include <linux/delay.h>
19#include <asm/uaccess.h> 18#include <asm/uaccess.h>
20#include "miropcm20-rds-core.h" 19#include "miropcm20-rds-core.h"
diff --git a/drivers/media/radio/radio-maestro.c b/drivers/media/radio/radio-maestro.c
index 9bba6eb10925..e67b7f258029 100644
--- a/drivers/media/radio/radio-maestro.c
+++ b/drivers/media/radio/radio-maestro.c
@@ -22,7 +22,6 @@
22#include <linux/init.h> 22#include <linux/init.h>
23#include <linux/ioport.h> 23#include <linux/ioport.h>
24#include <linux/delay.h> 24#include <linux/delay.h>
25#include <linux/sched.h>
26#include <asm/io.h> 25#include <asm/io.h>
27#include <asm/uaccess.h> 26#include <asm/uaccess.h>
28#include <linux/mutex.h> 27#include <linux/mutex.h>
diff --git a/drivers/media/radio/radio-maxiradio.c b/drivers/media/radio/radio-maxiradio.c
index 00a2f31d2af3..6beeb74004b1 100644
--- a/drivers/media/radio/radio-maxiradio.c
+++ b/drivers/media/radio/radio-maxiradio.c
@@ -35,7 +35,6 @@
35#include <linux/init.h> 35#include <linux/init.h>
36#include <linux/ioport.h> 36#include <linux/ioport.h>
37#include <linux/delay.h> 37#include <linux/delay.h>
38#include <linux/sched.h>
39#include <asm/io.h> 38#include <asm/io.h>
40#include <asm/uaccess.h> 39#include <asm/uaccess.h>
41#include <linux/mutex.h> 40#include <linux/mutex.h>
diff --git a/drivers/media/video/adv7170.c b/drivers/media/video/adv7170.c
index 48709582a186..2aa9ce920607 100644
--- a/drivers/media/video/adv7170.c
+++ b/drivers/media/video/adv7170.c
@@ -42,7 +42,6 @@
42#include <asm/io.h> 42#include <asm/io.h>
43#include <asm/pgtable.h> 43#include <asm/pgtable.h>
44#include <asm/page.h> 44#include <asm/page.h>
45#include <linux/sched.h>
46#include <linux/types.h> 45#include <linux/types.h>
47 46
48#include <linux/videodev.h> 47#include <linux/videodev.h>
diff --git a/drivers/media/video/adv7175.c b/drivers/media/video/adv7175.c
index 68e7d7aff5e6..a3246a283aa4 100644
--- a/drivers/media/video/adv7175.c
+++ b/drivers/media/video/adv7175.c
@@ -38,7 +38,6 @@
38#include <asm/io.h> 38#include <asm/io.h>
39#include <asm/pgtable.h> 39#include <asm/pgtable.h>
40#include <asm/page.h> 40#include <asm/page.h>
41#include <linux/sched.h>
42#include <linux/types.h> 41#include <linux/types.h>
43 42
44#include <linux/videodev.h> 43#include <linux/videodev.h>
diff --git a/drivers/media/video/bt819.c b/drivers/media/video/bt819.c
index e7b38fdd5e3c..68673863d5c9 100644
--- a/drivers/media/video/bt819.c
+++ b/drivers/media/video/bt819.c
@@ -42,7 +42,6 @@
42#include <asm/io.h> 42#include <asm/io.h>
43#include <asm/pgtable.h> 43#include <asm/pgtable.h>
44#include <asm/page.h> 44#include <asm/page.h>
45#include <linux/sched.h>
46#include <linux/types.h> 45#include <linux/types.h>
47 46
48#include <linux/videodev.h> 47#include <linux/videodev.h>
diff --git a/drivers/media/video/bt856.c b/drivers/media/video/bt856.c
index af3b61d4fa7d..42e2299dcb22 100644
--- a/drivers/media/video/bt856.c
+++ b/drivers/media/video/bt856.c
@@ -42,7 +42,6 @@
42#include <asm/io.h> 42#include <asm/io.h>
43#include <asm/pgtable.h> 43#include <asm/pgtable.h>
44#include <asm/page.h> 44#include <asm/page.h>
45#include <linux/sched.h>
46#include <linux/types.h> 45#include <linux/types.h>
47 46
48#include <linux/videodev.h> 47#include <linux/videodev.h>
diff --git a/drivers/media/video/bt8xx/bttv-vbi.c b/drivers/media/video/bt8xx/bttv-vbi.c
index 63676e7bd635..6fc6b0260056 100644
--- a/drivers/media/video/bt8xx/bttv-vbi.c
+++ b/drivers/media/video/bt8xx/bttv-vbi.c
@@ -25,7 +25,6 @@
25#include <linux/errno.h> 25#include <linux/errno.h>
26#include <linux/fs.h> 26#include <linux/fs.h>
27#include <linux/kernel.h> 27#include <linux/kernel.h>
28#include <linux/sched.h>
29#include <linux/interrupt.h> 28#include <linux/interrupt.h>
30#include <linux/kdev_t.h> 29#include <linux/kdev_t.h>
31#include <asm/io.h> 30#include <asm/io.h>
diff --git a/drivers/media/video/cx88/cx88-tvaudio.c b/drivers/media/video/cx88/cx88-tvaudio.c
index 2bd84d351a18..063df03dcf2e 100644
--- a/drivers/media/video/cx88/cx88-tvaudio.c
+++ b/drivers/media/video/cx88/cx88-tvaudio.c
@@ -46,7 +46,6 @@
46#include <linux/pci.h> 46#include <linux/pci.h>
47#include <linux/signal.h> 47#include <linux/signal.h>
48#include <linux/ioport.h> 48#include <linux/ioport.h>
49#include <linux/sched.h>
50#include <linux/types.h> 49#include <linux/types.h>
51#include <linux/interrupt.h> 50#include <linux/interrupt.h>
52#include <linux/vmalloc.h> 51#include <linux/vmalloc.h>
diff --git a/drivers/media/video/em28xx/em28xx-input.c b/drivers/media/video/em28xx/em28xx-input.c
index 3ffb5684f127..55d45b0032cf 100644
--- a/drivers/media/video/em28xx/em28xx-input.c
+++ b/drivers/media/video/em28xx/em28xx-input.c
@@ -25,7 +25,6 @@
25#include <linux/moduleparam.h> 25#include <linux/moduleparam.h>
26#include <linux/init.h> 26#include <linux/init.h>
27#include <linux/delay.h> 27#include <linux/delay.h>
28#include <linux/sched.h>
29#include <linux/interrupt.h> 28#include <linux/interrupt.h>
30#include <linux/input.h> 29#include <linux/input.h>
31#include <linux/usb.h> 30#include <linux/usb.h>
diff --git a/drivers/media/video/indycam.c b/drivers/media/video/indycam.c
index 7420b79e987a..5c2c4029ff86 100644
--- a/drivers/media/video/indycam.c
+++ b/drivers/media/video/indycam.c
@@ -17,7 +17,6 @@
17#include <linux/major.h> 17#include <linux/major.h>
18#include <linux/module.h> 18#include <linux/module.h>
19#include <linux/mm.h> 19#include <linux/mm.h>
20#include <linux/sched.h>
21#include <linux/slab.h> 20#include <linux/slab.h>
22 21
23#include <linux/videodev.h> 22#include <linux/videodev.h>
diff --git a/drivers/media/video/ir-kbd-i2c.c b/drivers/media/video/ir-kbd-i2c.c
index 59edf58204de..210582d420f8 100644
--- a/drivers/media/video/ir-kbd-i2c.c
+++ b/drivers/media/video/ir-kbd-i2c.c
@@ -31,7 +31,6 @@
31#include <linux/moduleparam.h> 31#include <linux/moduleparam.h>
32#include <linux/init.h> 32#include <linux/init.h>
33#include <linux/kernel.h> 33#include <linux/kernel.h>
34#include <linux/sched.h>
35#include <linux/string.h> 34#include <linux/string.h>
36#include <linux/timer.h> 35#include <linux/timer.h>
37#include <linux/delay.h> 36#include <linux/delay.h>
diff --git a/drivers/media/video/meye.c b/drivers/media/video/meye.c
index 9528e10c2828..98681da5e3b9 100644
--- a/drivers/media/video/meye.c
+++ b/drivers/media/video/meye.c
@@ -28,7 +28,6 @@
28 */ 28 */
29#include <linux/module.h> 29#include <linux/module.h>
30#include <linux/pci.h> 30#include <linux/pci.h>
31#include <linux/sched.h>
32#include <linux/init.h> 31#include <linux/init.h>
33#include <linux/videodev.h> 32#include <linux/videodev.h>
34#include <media/v4l2-common.h> 33#include <media/v4l2-common.h>
diff --git a/drivers/media/video/pms.c b/drivers/media/video/pms.c
index d38d3dc4a012..b5a67f0dd19f 100644
--- a/drivers/media/video/pms.c
+++ b/drivers/media/video/pms.c
@@ -28,7 +28,6 @@
28#include <linux/ioport.h> 28#include <linux/ioport.h>
29#include <linux/init.h> 29#include <linux/init.h>
30#include <asm/io.h> 30#include <asm/io.h>
31#include <linux/sched.h>
32#include <linux/videodev.h> 31#include <linux/videodev.h>
33#include <media/v4l2-common.h> 32#include <media/v4l2-common.h>
34#include <linux/mutex.h> 33#include <linux/mutex.h>
diff --git a/drivers/media/video/saa5246a.c b/drivers/media/video/saa5246a.c
index 0b5d159895bf..76f5f5d49dae 100644
--- a/drivers/media/video/saa5246a.c
+++ b/drivers/media/video/saa5246a.c
@@ -40,7 +40,6 @@
40 40
41#include <linux/module.h> 41#include <linux/module.h>
42#include <linux/kernel.h> 42#include <linux/kernel.h>
43#include <linux/sched.h>
44#include <linux/mm.h> 43#include <linux/mm.h>
45#include <linux/init.h> 44#include <linux/init.h>
46#include <linux/i2c.h> 45#include <linux/i2c.h>
diff --git a/drivers/media/video/saa7111.c b/drivers/media/video/saa7111.c
index 686fd4746205..44dc7479119c 100644
--- a/drivers/media/video/saa7111.c
+++ b/drivers/media/video/saa7111.c
@@ -41,7 +41,6 @@
41#include <asm/io.h> 41#include <asm/io.h>
42#include <asm/pgtable.h> 42#include <asm/pgtable.h>
43#include <asm/page.h> 43#include <asm/page.h>
44#include <linux/sched.h>
45#include <linux/types.h> 44#include <linux/types.h>
46 45
47#include <linux/videodev.h> 46#include <linux/videodev.h>
diff --git a/drivers/media/video/saa7114.c b/drivers/media/video/saa7114.c
index 90398ab8252e..2ce3321ab995 100644
--- a/drivers/media/video/saa7114.c
+++ b/drivers/media/video/saa7114.c
@@ -44,7 +44,6 @@
44#include <asm/io.h> 44#include <asm/io.h>
45#include <asm/pgtable.h> 45#include <asm/pgtable.h>
46#include <asm/page.h> 46#include <asm/page.h>
47#include <linux/sched.h>
48#include <linux/types.h> 47#include <linux/types.h>
49 48
50#include <linux/videodev.h> 49#include <linux/videodev.h>
diff --git a/drivers/media/video/saa711x.c b/drivers/media/video/saa711x.c
index 708fae51e8ee..269d7114a93a 100644
--- a/drivers/media/video/saa711x.c
+++ b/drivers/media/video/saa711x.c
@@ -35,7 +35,6 @@
35#include <asm/io.h> 35#include <asm/io.h>
36#include <asm/pgtable.h> 36#include <asm/pgtable.h>
37#include <asm/page.h> 37#include <asm/page.h>
38#include <linux/sched.h>
39#include <linux/types.h> 38#include <linux/types.h>
40#include <asm/uaccess.h> 39#include <asm/uaccess.h>
41#include <linux/videodev.h> 40#include <linux/videodev.h>
diff --git a/drivers/media/video/saa7134/saa6752hs.c b/drivers/media/video/saa7134/saa6752hs.c
index afc8f352b8e7..57f1f5d409e0 100644
--- a/drivers/media/video/saa7134/saa6752hs.c
+++ b/drivers/media/video/saa7134/saa6752hs.c
@@ -1,6 +1,5 @@
1#include <linux/module.h> 1#include <linux/module.h>
2#include <linux/kernel.h> 2#include <linux/kernel.h>
3#include <linux/sched.h>
4#include <linux/string.h> 3#include <linux/string.h>
5#include <linux/timer.h> 4#include <linux/timer.h>
6#include <linux/delay.h> 5#include <linux/delay.h>
diff --git a/drivers/media/video/saa7134/saa7134-input.c b/drivers/media/video/saa7134/saa7134-input.c
index 60b38defd9bc..e4252683a597 100644
--- a/drivers/media/video/saa7134/saa7134-input.c
+++ b/drivers/media/video/saa7134/saa7134-input.c
@@ -22,7 +22,6 @@
22#include <linux/moduleparam.h> 22#include <linux/moduleparam.h>
23#include <linux/init.h> 23#include <linux/init.h>
24#include <linux/delay.h> 24#include <linux/delay.h>
25#include <linux/sched.h>
26#include <linux/interrupt.h> 25#include <linux/interrupt.h>
27#include <linux/input.h> 26#include <linux/input.h>
28 27
diff --git a/drivers/media/video/saa7185.c b/drivers/media/video/saa7185.c
index 9c308410856d..e0fdb1ab7580 100644
--- a/drivers/media/video/saa7185.c
+++ b/drivers/media/video/saa7185.c
@@ -38,7 +38,6 @@
38#include <asm/io.h> 38#include <asm/io.h>
39#include <asm/pgtable.h> 39#include <asm/pgtable.h>
40#include <asm/page.h> 40#include <asm/page.h>
41#include <linux/sched.h>
42#include <linux/types.h> 41#include <linux/types.h>
43 42
44#include <linux/videodev.h> 43#include <linux/videodev.h>
diff --git a/drivers/media/video/saa7191.c b/drivers/media/video/saa7191.c
index 746cadb8f1c4..8615a6081a5d 100644
--- a/drivers/media/video/saa7191.c
+++ b/drivers/media/video/saa7191.c
@@ -17,7 +17,6 @@
17#include <linux/major.h> 17#include <linux/major.h>
18#include <linux/module.h> 18#include <linux/module.h>
19#include <linux/mm.h> 19#include <linux/mm.h>
20#include <linux/sched.h>
21#include <linux/slab.h> 20#include <linux/slab.h>
22 21
23#include <linux/videodev.h> 22#include <linux/videodev.h>
diff --git a/drivers/media/video/tda7432.c b/drivers/media/video/tda7432.c
index 78e043ac9ea0..d1ccc064206f 100644
--- a/drivers/media/video/tda7432.c
+++ b/drivers/media/video/tda7432.c
@@ -38,7 +38,6 @@
38#include <linux/module.h> 38#include <linux/module.h>
39#include <linux/init.h> 39#include <linux/init.h>
40#include <linux/kernel.h> 40#include <linux/kernel.h>
41#include <linux/sched.h>
42#include <linux/string.h> 41#include <linux/string.h>
43#include <linux/timer.h> 42#include <linux/timer.h>
44#include <linux/delay.h> 43#include <linux/delay.h>
diff --git a/drivers/media/video/tda9875.c b/drivers/media/video/tda9875.c
index 827633b3bb43..00f0e8b6e03b 100644
--- a/drivers/media/video/tda9875.c
+++ b/drivers/media/video/tda9875.c
@@ -19,7 +19,6 @@
19 19
20#include <linux/module.h> 20#include <linux/module.h>
21#include <linux/kernel.h> 21#include <linux/kernel.h>
22#include <linux/sched.h>
23#include <linux/string.h> 22#include <linux/string.h>
24#include <linux/timer.h> 23#include <linux/timer.h>
25#include <linux/delay.h> 24#include <linux/delay.h>
diff --git a/drivers/media/video/tuner-core.c b/drivers/media/video/tuner-core.c
index ee4a493032d6..7be73e3763de 100644
--- a/drivers/media/video/tuner-core.c
+++ b/drivers/media/video/tuner-core.c
@@ -7,7 +7,6 @@
7#include <linux/module.h> 7#include <linux/module.h>
8#include <linux/moduleparam.h> 8#include <linux/moduleparam.h>
9#include <linux/kernel.h> 9#include <linux/kernel.h>
10#include <linux/sched.h>
11#include <linux/string.h> 10#include <linux/string.h>
12#include <linux/timer.h> 11#include <linux/timer.h>
13#include <linux/delay.h> 12#include <linux/delay.h>
diff --git a/drivers/media/video/tvmixer.c b/drivers/media/video/tvmixer.c
index e2747bd373fd..7ea9132a1965 100644
--- a/drivers/media/video/tvmixer.c
+++ b/drivers/media/video/tvmixer.c
@@ -4,7 +4,6 @@
4#include <linux/module.h> 4#include <linux/module.h>
5#include <linux/moduleparam.h> 5#include <linux/moduleparam.h>
6#include <linux/kernel.h> 6#include <linux/kernel.h>
7#include <linux/sched.h>
8#include <linux/string.h> 7#include <linux/string.h>
9#include <linux/timer.h> 8#include <linux/timer.h>
10#include <linux/delay.h> 9#include <linux/delay.h>
diff --git a/drivers/media/video/usbvideo/ibmcam.c b/drivers/media/video/usbvideo/ibmcam.c
index 76f771b6a32f..14db95e10cfe 100644
--- a/drivers/media/video/usbvideo/ibmcam.c
+++ b/drivers/media/video/usbvideo/ibmcam.c
@@ -15,7 +15,6 @@
15 */ 15 */
16 16
17#include <linux/kernel.h> 17#include <linux/kernel.h>
18#include <linux/sched.h>
19#include <linux/module.h> 18#include <linux/module.h>
20#include <linux/init.h> 19#include <linux/init.h>
21 20
diff --git a/drivers/media/video/usbvideo/ultracam.c b/drivers/media/video/usbvideo/ultracam.c
index 10c58b4a2e5b..95453c108d40 100644
--- a/drivers/media/video/usbvideo/ultracam.c
+++ b/drivers/media/video/usbvideo/ultracam.c
@@ -6,7 +6,6 @@
6 */ 6 */
7 7
8#include <linux/kernel.h> 8#include <linux/kernel.h>
9#include <linux/sched.h>
10#include <linux/module.h> 9#include <linux/module.h>
11#include <linux/init.h> 10#include <linux/init.h>
12 11
diff --git a/drivers/media/video/usbvision/usbvision-core.c b/drivers/media/video/usbvision/usbvision-core.c
index a807d971e273..901f664dc6db 100644
--- a/drivers/media/video/usbvision/usbvision-core.c
+++ b/drivers/media/video/usbvision/usbvision-core.c
@@ -24,7 +24,6 @@
24 */ 24 */
25 25
26#include <linux/kernel.h> 26#include <linux/kernel.h>
27#include <linux/sched.h>
28#include <linux/list.h> 27#include <linux/list.h>
29#include <linux/timer.h> 28#include <linux/timer.h>
30#include <linux/slab.h> 29#include <linux/slab.h>
diff --git a/drivers/media/video/usbvision/usbvision-i2c.c b/drivers/media/video/usbvision/usbvision-i2c.c
index a242b76aea89..609e1fd9c784 100644
--- a/drivers/media/video/usbvision/usbvision-i2c.c
+++ b/drivers/media/video/usbvision/usbvision-i2c.c
@@ -34,7 +34,6 @@
34#include <asm/uaccess.h> 34#include <asm/uaccess.h>
35#include <linux/ioport.h> 35#include <linux/ioport.h>
36#include <linux/errno.h> 36#include <linux/errno.h>
37#include <linux/sched.h>
38#include <linux/usb.h> 37#include <linux/usb.h>
39#include <linux/i2c.h> 38#include <linux/i2c.h>
40#include "usbvision.h" 39#include "usbvision.h"
diff --git a/drivers/media/video/usbvision/usbvision-video.c b/drivers/media/video/usbvision/usbvision-video.c
index 4eb7330b96f8..af33653f0db8 100644
--- a/drivers/media/video/usbvision/usbvision-video.c
+++ b/drivers/media/video/usbvision/usbvision-video.c
@@ -46,7 +46,6 @@
46 46
47#include <linux/version.h> 47#include <linux/version.h>
48#include <linux/kernel.h> 48#include <linux/kernel.h>
49#include <linux/sched.h>
50#include <linux/list.h> 49#include <linux/list.h>
51#include <linux/timer.h> 50#include <linux/timer.h>
52#include <linux/slab.h> 51#include <linux/slab.h>
diff --git a/drivers/media/video/v4l2-common.c b/drivers/media/video/v4l2-common.c
index b87d571e0463..b8ee37ded3c9 100644
--- a/drivers/media/video/v4l2-common.c
+++ b/drivers/media/video/v4l2-common.c
@@ -47,7 +47,6 @@
47#include <linux/module.h> 47#include <linux/module.h>
48#include <linux/types.h> 48#include <linux/types.h>
49#include <linux/kernel.h> 49#include <linux/kernel.h>
50#include <linux/sched.h>
51#include <linux/smp_lock.h> 50#include <linux/smp_lock.h>
52#include <linux/mm.h> 51#include <linux/mm.h>
53#include <linux/string.h> 52#include <linux/string.h>
diff --git a/drivers/media/video/videodev.c b/drivers/media/video/videodev.c
index 30c3822692fb..a786c1f5b960 100644
--- a/drivers/media/video/videodev.c
+++ b/drivers/media/video/videodev.c
@@ -30,7 +30,6 @@
30#include <linux/module.h> 30#include <linux/module.h>
31#include <linux/types.h> 31#include <linux/types.h>
32#include <linux/kernel.h> 32#include <linux/kernel.h>
33#include <linux/sched.h>
34#include <linux/smp_lock.h> 33#include <linux/smp_lock.h>
35#include <linux/mm.h> 34#include <linux/mm.h>
36#include <linux/string.h> 35#include <linux/string.h>
diff --git a/drivers/message/fusion/mptfc.c b/drivers/message/fusion/mptfc.c
index b7d4c7265ec6..0caaf6403993 100644
--- a/drivers/message/fusion/mptfc.c
+++ b/drivers/message/fusion/mptfc.c
@@ -53,7 +53,6 @@
53#include <linux/delay.h> /* for mdelay */ 53#include <linux/delay.h> /* for mdelay */
54#include <linux/interrupt.h> /* needed for in_interrupt() proto */ 54#include <linux/interrupt.h> /* needed for in_interrupt() proto */
55#include <linux/reboot.h> /* notifier code */ 55#include <linux/reboot.h> /* notifier code */
56#include <linux/sched.h>
57#include <linux/workqueue.h> 56#include <linux/workqueue.h>
58#include <linux/sort.h> 57#include <linux/sort.h>
59 58
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
index 84b8b485e95b..404c014db1bd 100644
--- a/drivers/message/fusion/mptsas.c
+++ b/drivers/message/fusion/mptsas.c
@@ -48,7 +48,7 @@
48#include <linux/kernel.h> 48#include <linux/kernel.h>
49#include <linux/init.h> 49#include <linux/init.h>
50#include <linux/errno.h> 50#include <linux/errno.h>
51#include <linux/sched.h> 51#include <linux/jiffies.h>
52#include <linux/workqueue.h> 52#include <linux/workqueue.h>
53#include <linux/delay.h> /* for mdelay */ 53#include <linux/delay.h> /* for mdelay */
54 54
diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c
index c417ae0b5fe6..2a3e9e66d4ef 100644
--- a/drivers/message/fusion/mptscsih.c
+++ b/drivers/message/fusion/mptscsih.c
@@ -54,7 +54,6 @@
54#include <linux/delay.h> /* for mdelay */ 54#include <linux/delay.h> /* for mdelay */
55#include <linux/interrupt.h> /* needed for in_interrupt() proto */ 55#include <linux/interrupt.h> /* needed for in_interrupt() proto */
56#include <linux/reboot.h> /* notifier code */ 56#include <linux/reboot.h> /* notifier code */
57#include <linux/sched.h>
58#include <linux/workqueue.h> 57#include <linux/workqueue.h>
59 58
60#include <scsi/scsi.h> 59#include <scsi/scsi.h>
diff --git a/drivers/message/fusion/mptspi.c b/drivers/message/fusion/mptspi.c
index c31a9e3c8a26..85f21b54cb7d 100644
--- a/drivers/message/fusion/mptspi.c
+++ b/drivers/message/fusion/mptspi.c
@@ -54,7 +54,6 @@
54#include <linux/delay.h> /* for mdelay */ 54#include <linux/delay.h> /* for mdelay */
55#include <linux/interrupt.h> /* needed for in_interrupt() proto */ 55#include <linux/interrupt.h> /* needed for in_interrupt() proto */
56#include <linux/reboot.h> /* notifier code */ 56#include <linux/reboot.h> /* notifier code */
57#include <linux/sched.h>
58#include <linux/workqueue.h> 57#include <linux/workqueue.h>
59#include <linux/raid_class.h> 58#include <linux/raid_class.h>
60 59
diff --git a/drivers/misc/tifm_7xx1.c b/drivers/misc/tifm_7xx1.c
index e21e490fedb0..bc60e2fc3c2c 100644
--- a/drivers/misc/tifm_7xx1.c
+++ b/drivers/misc/tifm_7xx1.c
@@ -367,7 +367,7 @@ static int tifm_7xx1_probe(struct pci_dev *dev,
367 if (!fm->addr) 367 if (!fm->addr)
368 goto err_out_free; 368 goto err_out_free;
369 369
370 rc = request_irq(dev->irq, tifm_7xx1_isr, SA_SHIRQ, DRIVER_NAME, fm); 370 rc = request_irq(dev->irq, tifm_7xx1_isr, IRQF_SHARED, DRIVER_NAME, fm);
371 if (rc) 371 if (rc)
372 goto err_out_unmap; 372 goto err_out_unmap;
373 373
diff --git a/drivers/mmc/mmc_block.c b/drivers/mmc/mmc_block.c
index 05ba8ace70e7..86439a0bb271 100644
--- a/drivers/mmc/mmc_block.c
+++ b/drivers/mmc/mmc_block.c
@@ -20,7 +20,6 @@
20#include <linux/module.h> 20#include <linux/module.h>
21#include <linux/init.h> 21#include <linux/init.h>
22 22
23#include <linux/sched.h>
24#include <linux/kernel.h> 23#include <linux/kernel.h>
25#include <linux/fs.h> 24#include <linux/fs.h>
26#include <linux/errno.h> 25#include <linux/errno.h>
diff --git a/drivers/mtd/chips/cfi_util.c b/drivers/mtd/chips/cfi_util.c
index d8e7a026ba5a..2e51496c248e 100644
--- a/drivers/mtd/chips/cfi_util.c
+++ b/drivers/mtd/chips/cfi_util.c
@@ -14,7 +14,6 @@
14#include <linux/module.h> 14#include <linux/module.h>
15#include <linux/types.h> 15#include <linux/types.h>
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/sched.h>
18#include <asm/io.h> 17#include <asm/io.h>
19#include <asm/byteorder.h> 18#include <asm/byteorder.h>
20 19
diff --git a/drivers/mtd/devices/doc2001.c b/drivers/mtd/devices/doc2001.c
index 0e2a9326f717..fe71a12c2627 100644
--- a/drivers/mtd/devices/doc2001.c
+++ b/drivers/mtd/devices/doc2001.c
@@ -16,7 +16,6 @@
16#include <linux/pci.h> 16#include <linux/pci.h>
17#include <linux/delay.h> 17#include <linux/delay.h>
18#include <linux/slab.h> 18#include <linux/slab.h>
19#include <linux/sched.h>
20#include <linux/init.h> 19#include <linux/init.h>
21#include <linux/types.h> 20#include <linux/types.h>
22#include <linux/bitops.h> 21#include <linux/bitops.h>
diff --git a/drivers/mtd/devices/doc2001plus.c b/drivers/mtd/devices/doc2001plus.c
index 92dbb47f2ac3..ba4db686285a 100644
--- a/drivers/mtd/devices/doc2001plus.c
+++ b/drivers/mtd/devices/doc2001plus.c
@@ -20,7 +20,6 @@
20#include <linux/pci.h> 20#include <linux/pci.h>
21#include <linux/delay.h> 21#include <linux/delay.h>
22#include <linux/slab.h> 22#include <linux/slab.h>
23#include <linux/sched.h>
24#include <linux/init.h> 23#include <linux/init.h>
25#include <linux/types.h> 24#include <linux/types.h>
26#include <linux/bitops.h> 25#include <linux/bitops.h>
diff --git a/drivers/mtd/devices/docecc.c b/drivers/mtd/devices/docecc.c
index cd3db72bef96..52b5d638077f 100644
--- a/drivers/mtd/devices/docecc.c
+++ b/drivers/mtd/devices/docecc.c
@@ -32,7 +32,6 @@
32#include <linux/pci.h> 32#include <linux/pci.h>
33#include <linux/delay.h> 33#include <linux/delay.h>
34#include <linux/slab.h> 34#include <linux/slab.h>
35#include <linux/sched.h>
36#include <linux/init.h> 35#include <linux/init.h>
37#include <linux/types.h> 36#include <linux/types.h>
38 37
diff --git a/drivers/mtd/devices/pmc551.c b/drivers/mtd/devices/pmc551.c
index 354e1657cc26..a4873ab84e6b 100644
--- a/drivers/mtd/devices/pmc551.c
+++ b/drivers/mtd/devices/pmc551.c
@@ -86,7 +86,6 @@
86#include <linux/module.h> 86#include <linux/module.h>
87#include <asm/uaccess.h> 87#include <asm/uaccess.h>
88#include <linux/types.h> 88#include <linux/types.h>
89#include <linux/sched.h>
90#include <linux/init.h> 89#include <linux/init.h>
91#include <linux/ptrace.h> 90#include <linux/ptrace.h>
92#include <linux/slab.h> 91#include <linux/slab.h>
diff --git a/drivers/mtd/devices/slram.c b/drivers/mtd/devices/slram.c
index 5f49248a4856..d293add1857c 100644
--- a/drivers/mtd/devices/slram.c
+++ b/drivers/mtd/devices/slram.c
@@ -35,7 +35,6 @@
35#include <asm/uaccess.h> 35#include <asm/uaccess.h>
36#include <linux/types.h> 36#include <linux/types.h>
37#include <linux/kernel.h> 37#include <linux/kernel.h>
38#include <linux/sched.h>
39#include <linux/ptrace.h> 38#include <linux/ptrace.h>
40#include <linux/slab.h> 39#include <linux/slab.h>
41#include <linux/string.h> 40#include <linux/string.h>
diff --git a/drivers/mtd/ftl.c b/drivers/mtd/ftl.c
index 24235d4f1d23..c815d0f38577 100644
--- a/drivers/mtd/ftl.c
+++ b/drivers/mtd/ftl.c
@@ -61,7 +61,6 @@
61/*#define PSYCHO_DEBUG */ 61/*#define PSYCHO_DEBUG */
62 62
63#include <linux/kernel.h> 63#include <linux/kernel.h>
64#include <linux/sched.h>
65#include <linux/ptrace.h> 64#include <linux/ptrace.h>
66#include <linux/slab.h> 65#include <linux/slab.h>
67#include <linux/string.h> 66#include <linux/string.h>
diff --git a/drivers/mtd/inftlmount.c b/drivers/mtd/inftlmount.c
index 8f6006f1a519..acf3ba223298 100644
--- a/drivers/mtd/inftlmount.c
+++ b/drivers/mtd/inftlmount.c
@@ -34,7 +34,6 @@
34#include <linux/pci.h> 34#include <linux/pci.h>
35#include <linux/delay.h> 35#include <linux/delay.h>
36#include <linux/slab.h> 36#include <linux/slab.h>
37#include <linux/sched.h>
38#include <linux/init.h> 37#include <linux/init.h>
39#include <linux/mtd/mtd.h> 38#include <linux/mtd/mtd.h>
40#include <linux/mtd/nftl.h> 39#include <linux/mtd/nftl.h>
diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
index 7070110aba2a..c153b64a8300 100644
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
@@ -8,7 +8,6 @@
8 8
9#include <linux/module.h> 9#include <linux/module.h>
10#include <linux/kernel.h> 10#include <linux/kernel.h>
11#include <linux/sched.h>
12#include <linux/ptrace.h> 11#include <linux/ptrace.h>
13#include <linux/slab.h> 12#include <linux/slab.h>
14#include <linux/string.h> 13#include <linux/string.h>
diff --git a/drivers/mtd/nand/cafe.c b/drivers/mtd/nand/cafe.c
index 65f9bd3ceebf..08cb060dfa3d 100644
--- a/drivers/mtd/nand/cafe.c
+++ b/drivers/mtd/nand/cafe.c
@@ -597,7 +597,8 @@ static int __devinit cafe_nand_probe(struct pci_dev *pdev,
597 cafe_writel(cafe, 0xffffffff, NAND_TIMING3); 597 cafe_writel(cafe, 0xffffffff, NAND_TIMING3);
598 } 598 }
599 cafe_writel(cafe, 0xffffffff, NAND_IRQ_MASK); 599 cafe_writel(cafe, 0xffffffff, NAND_IRQ_MASK);
600 err = request_irq(pdev->irq, &cafe_nand_interrupt, SA_SHIRQ, "CAFE NAND", mtd); 600 err = request_irq(pdev->irq, &cafe_nand_interrupt, IRQF_SHARED,
601 "CAFE NAND", mtd);
601 if (err) { 602 if (err) {
602 dev_warn(&pdev->dev, "Could not register IRQ %d\n", pdev->irq); 603 dev_warn(&pdev->dev, "Could not register IRQ %d\n", pdev->irq);
603 604
diff --git a/drivers/mtd/nftlcore.c b/drivers/mtd/nftlcore.c
index 4b1ba4fcfcd3..e6ef7d7f9f14 100644
--- a/drivers/mtd/nftlcore.c
+++ b/drivers/mtd/nftlcore.c
@@ -20,7 +20,6 @@
20#include <linux/pci.h> 20#include <linux/pci.h>
21#include <linux/delay.h> 21#include <linux/delay.h>
22#include <linux/slab.h> 22#include <linux/slab.h>
23#include <linux/sched.h>
24#include <linux/init.h> 23#include <linux/init.h>
25#include <linux/hdreg.h> 24#include <linux/hdreg.h>
26 25
diff --git a/drivers/net/7990.c b/drivers/net/7990.c
index 2d5ba076471c..1b3d11ed6cff 100644
--- a/drivers/net/7990.c
+++ b/drivers/net/7990.c
@@ -500,7 +500,7 @@ int lance_open (struct net_device *dev)
500 int res; 500 int res;
501 501
502 /* Install the Interrupt handler. Or we could shunt this out to specific drivers? */ 502 /* Install the Interrupt handler. Or we could shunt this out to specific drivers? */
503 if (request_irq(lp->irq, lance_interrupt, SA_SHIRQ, lp->name, dev)) 503 if (request_irq(lp->irq, lance_interrupt, IRQF_SHARED, lp->name, dev))
504 return -EAGAIN; 504 return -EAGAIN;
505 505
506 res = lance_reset(dev); 506 res = lance_reset(dev);
diff --git a/drivers/net/arm/ether1.c b/drivers/net/arm/ether1.c
index d6da3ce9ad79..a2921882eba8 100644
--- a/drivers/net/arm/ether1.c
+++ b/drivers/net/arm/ether1.c
@@ -33,7 +33,6 @@
33 33
34#include <linux/module.h> 34#include <linux/module.h>
35#include <linux/kernel.h> 35#include <linux/kernel.h>
36#include <linux/sched.h>
37#include <linux/types.h> 36#include <linux/types.h>
38#include <linux/fcntl.h> 37#include <linux/fcntl.h>
39#include <linux/interrupt.h> 38#include <linux/interrupt.h>
diff --git a/drivers/net/arm/ether3.c b/drivers/net/arm/ether3.c
index 4fc234785d56..841178343a07 100644
--- a/drivers/net/arm/ether3.c
+++ b/drivers/net/arm/ether3.c
@@ -48,7 +48,6 @@
48 48
49#include <linux/module.h> 49#include <linux/module.h>
50#include <linux/kernel.h> 50#include <linux/kernel.h>
51#include <linux/sched.h>
52#include <linux/types.h> 51#include <linux/types.h>
53#include <linux/fcntl.h> 52#include <linux/fcntl.h>
54#include <linux/interrupt.h> 53#include <linux/interrupt.h>
diff --git a/drivers/net/arm/etherh.c b/drivers/net/arm/etherh.c
index 72c41f5907f2..61f574aa3a99 100644
--- a/drivers/net/arm/etherh.c
+++ b/drivers/net/arm/etherh.c
@@ -28,7 +28,6 @@
28 28
29#include <linux/module.h> 29#include <linux/module.h>
30#include <linux/kernel.h> 30#include <linux/kernel.h>
31#include <linux/sched.h>
32#include <linux/types.h> 31#include <linux/types.h>
33#include <linux/fcntl.h> 32#include <linux/fcntl.h>
34#include <linux/interrupt.h> 33#include <linux/interrupt.h>
diff --git a/drivers/net/au1000_eth.c b/drivers/net/au1000_eth.c
index f0b6879a1c7d..69ae229b680e 100644
--- a/drivers/net/au1000_eth.c
+++ b/drivers/net/au1000_eth.c
@@ -37,7 +37,6 @@
37 37
38#include <linux/module.h> 38#include <linux/module.h>
39#include <linux/kernel.h> 39#include <linux/kernel.h>
40#include <linux/sched.h>
41#include <linux/string.h> 40#include <linux/string.h>
42#include <linux/timer.h> 41#include <linux/timer.h>
43#include <linux/errno.h> 42#include <linux/errno.h>
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 61a6fa465d71..a7c8f98a890c 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -35,7 +35,6 @@
35 35
36#include <linux/kernel.h> 36#include <linux/kernel.h>
37#include <linux/module.h> 37#include <linux/module.h>
38#include <linux/sched.h>
39#include <linux/types.h> 38#include <linux/types.h>
40#include <linux/fcntl.h> 39#include <linux/fcntl.h>
41#include <linux/interrupt.h> 40#include <linux/interrupt.h>
diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c
index 878f7aabeeac..a122baa5c7bb 100644
--- a/drivers/net/bonding/bond_sysfs.c
+++ b/drivers/net/bonding/bond_sysfs.c
@@ -22,7 +22,6 @@
22 */ 22 */
23#include <linux/kernel.h> 23#include <linux/kernel.h>
24#include <linux/module.h> 24#include <linux/module.h>
25#include <linux/sched.h>
26#include <linux/device.h> 25#include <linux/device.h>
27#include <linux/sysdev.h> 26#include <linux/sysdev.h>
28#include <linux/fs.h> 27#include <linux/fs.h>
diff --git a/drivers/net/cris/eth_v10.c b/drivers/net/cris/eth_v10.c
index a03d781f6d0a..8eb571276000 100644
--- a/drivers/net/cris/eth_v10.c
+++ b/drivers/net/cris/eth_v10.c
@@ -222,7 +222,6 @@
222#include <linux/module.h> 222#include <linux/module.h>
223 223
224#include <linux/kernel.h> 224#include <linux/kernel.h>
225#include <linux/sched.h>
226#include <linux/delay.h> 225#include <linux/delay.h>
227#include <linux/types.h> 226#include <linux/types.h>
228#include <linux/fcntl.h> 227#include <linux/fcntl.h>
diff --git a/drivers/net/cxgb3/cxgb3_main.c b/drivers/net/cxgb3/cxgb3_main.c
index c67f7d3c2f92..43583ed655ab 100644
--- a/drivers/net/cxgb3/cxgb3_main.c
+++ b/drivers/net/cxgb3/cxgb3_main.c
@@ -757,7 +757,8 @@ static int cxgb_up(struct adapter *adap)
757 t3_intr_handler(adap, 757 t3_intr_handler(adap,
758 adap->sge.qs[0].rspq. 758 adap->sge.qs[0].rspq.
759 polling), 759 polling),
760 (adap->flags & USING_MSI) ? 0 : SA_SHIRQ, 760 (adap->flags & USING_MSI) ?
761 0 : IRQF_SHARED,
761 adap->name, adap))) 762 adap->name, adap)))
762 goto irq_err; 763 goto irq_err;
763 764
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index 9de2d38a5321..38b2fa424b2d 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -882,7 +882,7 @@ static int ehea_reg_interrupts(struct net_device *dev)
882 , "%s-recv%d", dev->name, i); 882 , "%s-recv%d", dev->name, i);
883 ret = ibmebus_request_irq(NULL, pr->recv_eq->attr.ist1, 883 ret = ibmebus_request_irq(NULL, pr->recv_eq->attr.ist1,
884 ehea_recv_irq_handler, 884 ehea_recv_irq_handler,
885 SA_INTERRUPT, pr->int_recv_name, pr); 885 IRQF_DISABLED, pr->int_recv_name, pr);
886 if (ret) { 886 if (ret) {
887 ehea_error("failed registering irq for ehea_recv_int:" 887 ehea_error("failed registering irq for ehea_recv_int:"
888 "port_res_nr:%d, ist=%X", i, 888 "port_res_nr:%d, ist=%X", i,
@@ -899,7 +899,7 @@ static int ehea_reg_interrupts(struct net_device *dev)
899 899
900 ret = ibmebus_request_irq(NULL, port->qp_eq->attr.ist1, 900 ret = ibmebus_request_irq(NULL, port->qp_eq->attr.ist1,
901 ehea_qp_aff_irq_handler, 901 ehea_qp_aff_irq_handler,
902 SA_INTERRUPT, port->int_aff_name, port); 902 IRQF_DISABLED, port->int_aff_name, port);
903 if (ret) { 903 if (ret) {
904 ehea_error("failed registering irq for qp_aff_irq_handler:" 904 ehea_error("failed registering irq for qp_aff_irq_handler:"
905 "ist=%X", port->qp_eq->attr.ist1); 905 "ist=%X", port->qp_eq->attr.ist1);
@@ -916,7 +916,7 @@ static int ehea_reg_interrupts(struct net_device *dev)
916 "%s-send%d", dev->name, i); 916 "%s-send%d", dev->name, i);
917 ret = ibmebus_request_irq(NULL, pr->send_eq->attr.ist1, 917 ret = ibmebus_request_irq(NULL, pr->send_eq->attr.ist1,
918 ehea_send_irq_handler, 918 ehea_send_irq_handler,
919 SA_INTERRUPT, pr->int_send_name, 919 IRQF_DISABLED, pr->int_send_name,
920 pr); 920 pr);
921 if (ret) { 921 if (ret) {
922 ehea_error("failed registering irq for ehea_send " 922 ehea_error("failed registering irq for ehea_send "
@@ -2539,7 +2539,7 @@ static int __devinit ehea_probe(struct ibmebus_dev *dev,
2539 (unsigned long)adapter); 2539 (unsigned long)adapter);
2540 2540
2541 ret = ibmebus_request_irq(NULL, adapter->neq->attr.ist1, 2541 ret = ibmebus_request_irq(NULL, adapter->neq->attr.ist1,
2542 ehea_interrupt_neq, SA_INTERRUPT, 2542 ehea_interrupt_neq, IRQF_DISABLED,
2543 "ehea_neq", adapter); 2543 "ehea_neq", adapter);
2544 if (ret) { 2544 if (ret) {
2545 dev_err(&dev->ofdev.dev, "requesting NEQ IRQ failed"); 2545 dev_err(&dev->ofdev.dev, "requesting NEQ IRQ failed");
diff --git a/drivers/net/fec_8xx/fec_8xx-netta.c b/drivers/net/fec_8xx/fec_8xx-netta.c
index 790d9dbe42dd..e492eb84f948 100644
--- a/drivers/net/fec_8xx/fec_8xx-netta.c
+++ b/drivers/net/fec_8xx/fec_8xx-netta.c
@@ -4,7 +4,6 @@
4 4
5#include <linux/kernel.h> 5#include <linux/kernel.h>
6#include <linux/types.h> 6#include <linux/types.h>
7#include <linux/sched.h>
8#include <linux/string.h> 7#include <linux/string.h>
9#include <linux/ptrace.h> 8#include <linux/ptrace.h>
10#include <linux/errno.h> 9#include <linux/errno.h>
diff --git a/drivers/net/fec_8xx/fec_main.c b/drivers/net/fec_8xx/fec_main.c
index 8e7a56fadfd2..77f747a5afa7 100644
--- a/drivers/net/fec_8xx/fec_main.c
+++ b/drivers/net/fec_8xx/fec_main.c
@@ -13,7 +13,6 @@
13#include <linux/module.h> 13#include <linux/module.h>
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/types.h> 15#include <linux/types.h>
16#include <linux/sched.h>
17#include <linux/string.h> 16#include <linux/string.h>
18#include <linux/ptrace.h> 17#include <linux/ptrace.h>
19#include <linux/errno.h> 18#include <linux/errno.h>
diff --git a/drivers/net/fec_8xx/fec_mii.c b/drivers/net/fec_8xx/fec_mii.c
index d3c16b85d9a4..e79700abf7b6 100644
--- a/drivers/net/fec_8xx/fec_mii.c
+++ b/drivers/net/fec_8xx/fec_mii.c
@@ -13,7 +13,6 @@
13#include <linux/module.h> 13#include <linux/module.h>
14#include <linux/types.h> 14#include <linux/types.h>
15#include <linux/kernel.h> 15#include <linux/kernel.h>
16#include <linux/sched.h>
17#include <linux/string.h> 16#include <linux/string.h>
18#include <linux/ptrace.h> 17#include <linux/ptrace.h>
19#include <linux/errno.h> 18#include <linux/errno.h>
diff --git a/drivers/net/fs_enet/fs_enet-main.c b/drivers/net/fs_enet/fs_enet-main.c
index 889d3a13e95e..4a05c14bf7ec 100644
--- a/drivers/net/fs_enet/fs_enet-main.c
+++ b/drivers/net/fs_enet/fs_enet-main.c
@@ -18,7 +18,6 @@
18#include <linux/module.h> 18#include <linux/module.h>
19#include <linux/kernel.h> 19#include <linux/kernel.h>
20#include <linux/types.h> 20#include <linux/types.h>
21#include <linux/sched.h>
22#include <linux/string.h> 21#include <linux/string.h>
23#include <linux/ptrace.h> 22#include <linux/ptrace.h>
24#include <linux/errno.h> 23#include <linux/errno.h>
diff --git a/drivers/net/fs_enet/mac-fcc.c b/drivers/net/fs_enet/mac-fcc.c
index 1ff2597b8495..8545e84fc9a0 100644
--- a/drivers/net/fs_enet/mac-fcc.c
+++ b/drivers/net/fs_enet/mac-fcc.c
@@ -15,7 +15,6 @@
15#include <linux/module.h> 15#include <linux/module.h>
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/types.h> 17#include <linux/types.h>
18#include <linux/sched.h>
19#include <linux/string.h> 18#include <linux/string.h>
20#include <linux/ptrace.h> 19#include <linux/ptrace.h>
21#include <linux/errno.h> 20#include <linux/errno.h>
diff --git a/drivers/net/fs_enet/mac-fec.c b/drivers/net/fs_enet/mac-fec.c
index ff6839477306..cdcfb96f360f 100644
--- a/drivers/net/fs_enet/mac-fec.c
+++ b/drivers/net/fs_enet/mac-fec.c
@@ -15,7 +15,6 @@
15#include <linux/module.h> 15#include <linux/module.h>
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/types.h> 17#include <linux/types.h>
18#include <linux/sched.h>
19#include <linux/string.h> 18#include <linux/string.h>
20#include <linux/ptrace.h> 19#include <linux/ptrace.h>
21#include <linux/errno.h> 20#include <linux/errno.h>
diff --git a/drivers/net/fs_enet/mac-scc.c b/drivers/net/fs_enet/mac-scc.c
index afd7fca7c6c4..65925b5a224f 100644
--- a/drivers/net/fs_enet/mac-scc.c
+++ b/drivers/net/fs_enet/mac-scc.c
@@ -15,7 +15,6 @@
15#include <linux/module.h> 15#include <linux/module.h>
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/types.h> 17#include <linux/types.h>
18#include <linux/sched.h>
19#include <linux/string.h> 18#include <linux/string.h>
20#include <linux/ptrace.h> 19#include <linux/ptrace.h>
21#include <linux/errno.h> 20#include <linux/errno.h>
diff --git a/drivers/net/fs_enet/mii-bitbang.c b/drivers/net/fs_enet/mii-bitbang.c
index 0b9b8b5c847c..f91447837fd4 100644
--- a/drivers/net/fs_enet/mii-bitbang.c
+++ b/drivers/net/fs_enet/mii-bitbang.c
@@ -16,7 +16,6 @@
16#include <linux/module.h> 16#include <linux/module.h>
17#include <linux/types.h> 17#include <linux/types.h>
18#include <linux/kernel.h> 18#include <linux/kernel.h>
19#include <linux/sched.h>
20#include <linux/string.h> 19#include <linux/string.h>
21#include <linux/ptrace.h> 20#include <linux/ptrace.h>
22#include <linux/errno.h> 21#include <linux/errno.h>
diff --git a/drivers/net/fs_enet/mii-fec.c b/drivers/net/fs_enet/mii-fec.c
index baaae3dbf2e6..235b177fb9ac 100644
--- a/drivers/net/fs_enet/mii-fec.c
+++ b/drivers/net/fs_enet/mii-fec.c
@@ -15,7 +15,6 @@
15#include <linux/module.h> 15#include <linux/module.h>
16#include <linux/types.h> 16#include <linux/types.h>
17#include <linux/kernel.h> 17#include <linux/kernel.h>
18#include <linux/sched.h>
19#include <linux/string.h> 18#include <linux/string.h>
20#include <linux/ptrace.h> 19#include <linux/ptrace.h>
21#include <linux/errno.h> 20#include <linux/errno.h>
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index baa35144134c..1be4a84dce0e 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -65,7 +65,6 @@
65 */ 65 */
66 66
67#include <linux/kernel.h> 67#include <linux/kernel.h>
68#include <linux/sched.h>
69#include <linux/string.h> 68#include <linux/string.h>
70#include <linux/errno.h> 69#include <linux/errno.h>
71#include <linux/unistd.h> 70#include <linux/unistd.h>
diff --git a/drivers/net/gianfar_ethtool.c b/drivers/net/gianfar_ethtool.c
index 0d6943d67096..7b411c1514db 100644
--- a/drivers/net/gianfar_ethtool.c
+++ b/drivers/net/gianfar_ethtool.c
@@ -16,7 +16,6 @@
16 */ 16 */
17 17
18#include <linux/kernel.h> 18#include <linux/kernel.h>
19#include <linux/sched.h>
20#include <linux/string.h> 19#include <linux/string.h>
21#include <linux/errno.h> 20#include <linux/errno.h>
22#include <linux/slab.h> 21#include <linux/slab.h>
diff --git a/drivers/net/gianfar_mii.c b/drivers/net/gianfar_mii.c
index ff684d4be96d..bcc6b82f4a33 100644
--- a/drivers/net/gianfar_mii.c
+++ b/drivers/net/gianfar_mii.c
@@ -17,7 +17,6 @@
17 */ 17 */
18 18
19#include <linux/kernel.h> 19#include <linux/kernel.h>
20#include <linux/sched.h>
21#include <linux/string.h> 20#include <linux/string.h>
22#include <linux/errno.h> 21#include <linux/errno.h>
23#include <linux/unistd.h> 22#include <linux/unistd.h>
diff --git a/drivers/net/gianfar_sysfs.c b/drivers/net/gianfar_sysfs.c
index 9dd387fb3d74..45ffb5d0ca33 100644
--- a/drivers/net/gianfar_sysfs.c
+++ b/drivers/net/gianfar_sysfs.c
@@ -20,7 +20,6 @@
20 */ 20 */
21 21
22#include <linux/kernel.h> 22#include <linux/kernel.h>
23#include <linux/sched.h>
24#include <linux/string.h> 23#include <linux/string.h>
25#include <linux/errno.h> 24#include <linux/errno.h>
26#include <linux/unistd.h> 25#include <linux/unistd.h>
diff --git a/drivers/net/ibm_emac/ibm_emac_core.c b/drivers/net/ibm_emac/ibm_emac_core.c
index ffeafb28f782..dd8ad8746825 100644
--- a/drivers/net/ibm_emac/ibm_emac_core.c
+++ b/drivers/net/ibm_emac/ibm_emac_core.c
@@ -21,7 +21,6 @@
21 21
22#include <linux/module.h> 22#include <linux/module.h>
23#include <linux/kernel.h> 23#include <linux/kernel.h>
24#include <linux/sched.h>
25#include <linux/string.h> 24#include <linux/string.h>
26#include <linux/errno.h> 25#include <linux/errno.h>
27#include <linux/interrupt.h> 26#include <linux/interrupt.h>
diff --git a/drivers/net/irda/ma600-sir.c b/drivers/net/irda/ma600-sir.c
index ebed168b7da6..809906d94762 100644
--- a/drivers/net/irda/ma600-sir.c
+++ b/drivers/net/irda/ma600-sir.c
@@ -34,7 +34,6 @@
34#include <linux/module.h> 34#include <linux/module.h>
35#include <linux/delay.h> 35#include <linux/delay.h>
36#include <linux/init.h> 36#include <linux/init.h>
37#include <linux/sched.h>
38 37
39#include <net/irda/irda.h> 38#include <net/irda/irda.h>
40 39
diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index e67361e2bf5d..a41418b3c518 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -1077,7 +1077,7 @@ static int __devinit macb_probe(struct platform_device *pdev)
1077 } 1077 }
1078 1078
1079 dev->irq = platform_get_irq(pdev, 0); 1079 dev->irq = platform_get_irq(pdev, 0);
1080 err = request_irq(dev->irq, macb_interrupt, SA_SAMPLE_RANDOM, 1080 err = request_irq(dev->irq, macb_interrupt, IRQF_SAMPLE_RANDOM,
1081 dev->name, dev); 1081 dev->name, dev);
1082 if (err) { 1082 if (err) {
1083 printk(KERN_ERR 1083 printk(KERN_ERR
diff --git a/drivers/net/meth.c b/drivers/net/meth.c
index e1d97cdf649e..d38b7c723620 100644
--- a/drivers/net/meth.c
+++ b/drivers/net/meth.c
@@ -11,7 +11,6 @@
11#include <linux/module.h> 11#include <linux/module.h>
12#include <linux/init.h> 12#include <linux/init.h>
13 13
14#include <linux/sched.h>
15#include <linux/kernel.h> /* printk() */ 14#include <linux/kernel.h> /* printk() */
16#include <linux/delay.h> 15#include <linux/delay.h>
17#include <linux/slab.h> 16#include <linux/slab.h>
diff --git a/drivers/net/mipsnet.c b/drivers/net/mipsnet.c
index c9469985bd71..f42b9e201937 100644
--- a/drivers/net/mipsnet.c
+++ b/drivers/net/mipsnet.c
@@ -10,7 +10,6 @@
10#include <linux/kernel.h> 10#include <linux/kernel.h>
11#include <linux/module.h> 11#include <linux/module.h>
12#include <linux/netdevice.h> 12#include <linux/netdevice.h>
13#include <linux/sched.h>
14#include <linux/etherdevice.h> 13#include <linux/etherdevice.h>
15#include <linux/netdevice.h> 14#include <linux/netdevice.h>
16#include <linux/platform_device.h> 15#include <linux/platform_device.h>
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c
index 69c1b9d23a1a..36ba6a1aa363 100644
--- a/drivers/net/netxen/netxen_nic_main.c
+++ b/drivers/net/netxen/netxen_nic_main.c
@@ -619,8 +619,8 @@ static int netxen_nic_open(struct net_device *netdev)
619 } 619 }
620 adapter->irq = adapter->ahw.pdev->irq; 620 adapter->irq = adapter->ahw.pdev->irq;
621 err = request_irq(adapter->ahw.pdev->irq, &netxen_intr, 621 err = request_irq(adapter->ahw.pdev->irq, &netxen_intr,
622 SA_SHIRQ | SA_SAMPLE_RANDOM, netdev->name, 622 IRQF_SHARED | IRQF_SAMPLE_RANDOM,
623 adapter); 623 netdev->name, adapter);
624 if (err) { 624 if (err) {
625 printk(KERN_ERR "request_irq failed with: %d\n", err); 625 printk(KERN_ERR "request_irq failed with: %d\n", err);
626 netxen_free_hw_resources(adapter); 626 netxen_free_hw_resources(adapter);
diff --git a/drivers/net/phy/cicada.c b/drivers/net/phy/cicada.c
index ae60e6e4107c..a1bd599c8a5b 100644
--- a/drivers/net/phy/cicada.c
+++ b/drivers/net/phy/cicada.c
@@ -14,7 +14,6 @@
14 * 14 *
15 */ 15 */
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/sched.h>
18#include <linux/string.h> 17#include <linux/string.h>
19#include <linux/errno.h> 18#include <linux/errno.h>
20#include <linux/unistd.h> 19#include <linux/unistd.h>
diff --git a/drivers/net/phy/davicom.c b/drivers/net/phy/davicom.c
index aa7983f55838..519baa38be8d 100644
--- a/drivers/net/phy/davicom.c
+++ b/drivers/net/phy/davicom.c
@@ -14,7 +14,6 @@
14 * 14 *
15 */ 15 */
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/sched.h>
18#include <linux/string.h> 17#include <linux/string.h>
19#include <linux/errno.h> 18#include <linux/errno.h>
20#include <linux/unistd.h> 19#include <linux/unistd.h>
diff --git a/drivers/net/phy/fixed.c b/drivers/net/phy/fixed.c
index 86135397f430..66da91bb1388 100644
--- a/drivers/net/phy/fixed.c
+++ b/drivers/net/phy/fixed.c
@@ -14,7 +14,6 @@
14 * 14 *
15 */ 15 */
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/sched.h>
18#include <linux/string.h> 17#include <linux/string.h>
19#include <linux/errno.h> 18#include <linux/errno.h>
20#include <linux/unistd.h> 19#include <linux/unistd.h>
diff --git a/drivers/net/phy/lxt.c b/drivers/net/phy/lxt.c
index 69d2325f848c..4cf3324ba166 100644
--- a/drivers/net/phy/lxt.c
+++ b/drivers/net/phy/lxt.c
@@ -14,7 +14,6 @@
14 * 14 *
15 */ 15 */
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/sched.h>
18#include <linux/string.h> 17#include <linux/string.h>
19#include <linux/errno.h> 18#include <linux/errno.h>
20#include <linux/unistd.h> 19#include <linux/unistd.h>
diff --git a/drivers/net/phy/marvell.c b/drivers/net/phy/marvell.c
index 0ad253282d0d..f4d4eb659cad 100644
--- a/drivers/net/phy/marvell.c
+++ b/drivers/net/phy/marvell.c
@@ -14,7 +14,6 @@
14 * 14 *
15 */ 15 */
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/sched.h>
18#include <linux/string.h> 17#include <linux/string.h>
19#include <linux/errno.h> 18#include <linux/errno.h>
20#include <linux/unistd.h> 19#include <linux/unistd.h>
diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
index cf6660c93ffa..b31ce278bf35 100644
--- a/drivers/net/phy/mdio_bus.c
+++ b/drivers/net/phy/mdio_bus.c
@@ -14,7 +14,6 @@
14 * 14 *
15 */ 15 */
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/sched.h>
18#include <linux/string.h> 17#include <linux/string.h>
19#include <linux/errno.h> 18#include <linux/errno.h>
20#include <linux/unistd.h> 19#include <linux/unistd.h>
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index 9765fa661467..c94a1fb3a4be 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -16,7 +16,6 @@
16 * 16 *
17 */ 17 */
18#include <linux/kernel.h> 18#include <linux/kernel.h>
19#include <linux/sched.h>
20#include <linux/string.h> 19#include <linux/string.h>
21#include <linux/errno.h> 20#include <linux/errno.h>
22#include <linux/unistd.h> 21#include <linux/unistd.h>
diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index a4d7529ef415..fdf45fdb6731 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -15,7 +15,6 @@
15 * 15 *
16 */ 16 */
17#include <linux/kernel.h> 17#include <linux/kernel.h>
18#include <linux/sched.h>
19#include <linux/string.h> 18#include <linux/string.h>
20#include <linux/errno.h> 19#include <linux/errno.h>
21#include <linux/unistd.h> 20#include <linux/unistd.h>
diff --git a/drivers/net/phy/qsemi.c b/drivers/net/phy/qsemi.c
index 2b50e1739aa5..23062d067231 100644
--- a/drivers/net/phy/qsemi.c
+++ b/drivers/net/phy/qsemi.c
@@ -14,7 +14,6 @@
14 * 14 *
15 */ 15 */
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/sched.h>
18#include <linux/string.h> 17#include <linux/string.h>
19#include <linux/errno.h> 18#include <linux/errno.h>
20#include <linux/unistd.h> 19#include <linux/unistd.h>
diff --git a/drivers/net/qla3xxx.c b/drivers/net/qla3xxx.c
index 2429b274f0b0..a142cdfd947b 100755
--- a/drivers/net/qla3xxx.c
+++ b/drivers/net/qla3xxx.c
@@ -3228,7 +3228,7 @@ static int ql_adapter_up(struct ql3_adapter *qdev)
3228{ 3228{
3229 struct net_device *ndev = qdev->ndev; 3229 struct net_device *ndev = qdev->ndev;
3230 int err; 3230 int err;
3231 unsigned long irq_flags = SA_SAMPLE_RANDOM | SA_SHIRQ; 3231 unsigned long irq_flags = IRQF_SAMPLE_RANDOM | IRQF_SHARED;
3232 unsigned long hw_flags; 3232 unsigned long hw_flags;
3233 3233
3234 if (ql_alloc_mem_resources(qdev)) { 3234 if (ql_alloc_mem_resources(qdev)) {
@@ -3247,7 +3247,7 @@ static int ql_adapter_up(struct ql3_adapter *qdev)
3247 } else { 3247 } else {
3248 printk(KERN_INFO PFX "%s: MSI Enabled...\n", qdev->ndev->name); 3248 printk(KERN_INFO PFX "%s: MSI Enabled...\n", qdev->ndev->name);
3249 set_bit(QL_MSI_ENABLED,&qdev->flags); 3249 set_bit(QL_MSI_ENABLED,&qdev->flags);
3250 irq_flags &= ~SA_SHIRQ; 3250 irq_flags &= ~IRQF_SHARED;
3251 } 3251 }
3252 } 3252 }
3253 3253
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
index 8646b64994ab..e8e0d94e9bdd 100644
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -59,7 +59,6 @@
59#include <linux/stddef.h> 59#include <linux/stddef.h>
60#include <linux/ioctl.h> 60#include <linux/ioctl.h>
61#include <linux/timex.h> 61#include <linux/timex.h>
62#include <linux/sched.h>
63#include <linux/ethtool.h> 62#include <linux/ethtool.h>
64#include <linux/workqueue.h> 63#include <linux/workqueue.h>
65#include <linux/if_vlan.h> 64#include <linux/if_vlan.h>
diff --git a/drivers/net/sc92031.c b/drivers/net/sc92031.c
index 7f800feaa9a2..4a926f20b6ea 100644
--- a/drivers/net/sc92031.c
+++ b/drivers/net/sc92031.c
@@ -1035,7 +1035,7 @@ static int sc92031_open(struct net_device *dev)
1035 priv->tx_head = priv->tx_tail = 0; 1035 priv->tx_head = priv->tx_tail = 0;
1036 1036
1037 err = request_irq(pdev->irq, sc92031_interrupt, 1037 err = request_irq(pdev->irq, sc92031_interrupt,
1038 SA_SHIRQ, dev->name, dev); 1038 IRQF_SHARED, dev->name, dev);
1039 if (unlikely(err < 0)) 1039 if (unlikely(err < 0))
1040 goto out_request_irq; 1040 goto out_request_irq;
1041 1041
diff --git a/drivers/net/sungem_phy.c b/drivers/net/sungem_phy.c
index d21991ee88c4..701ba4f3b69d 100644
--- a/drivers/net/sungem_phy.c
+++ b/drivers/net/sungem_phy.c
@@ -22,7 +22,6 @@
22#include <linux/module.h> 22#include <linux/module.h>
23 23
24#include <linux/kernel.h> 24#include <linux/kernel.h>
25#include <linux/sched.h>
26#include <linux/types.h> 25#include <linux/types.h>
27#include <linux/netdevice.h> 26#include <linux/netdevice.h>
28#include <linux/etherdevice.h> 27#include <linux/etherdevice.h>
diff --git a/drivers/net/tsi108_eth.c b/drivers/net/tsi108_eth.c
index 893808ab3742..d92c5c597e16 100644
--- a/drivers/net/tsi108_eth.c
+++ b/drivers/net/tsi108_eth.c
@@ -38,7 +38,6 @@
38#include <linux/etherdevice.h> 38#include <linux/etherdevice.h>
39#include <linux/skbuff.h> 39#include <linux/skbuff.h>
40#include <linux/slab.h> 40#include <linux/slab.h>
41#include <linux/sched.h>
42#include <linux/spinlock.h> 41#include <linux/spinlock.h>
43#include <linux/delay.h> 42#include <linux/delay.h>
44#include <linux/crc32.h> 43#include <linux/crc32.h>
diff --git a/drivers/net/ucc_geth.c b/drivers/net/ucc_geth.c
index 31c97a6591a4..a2fc2bbcf97f 100644
--- a/drivers/net/ucc_geth.c
+++ b/drivers/net/ucc_geth.c
@@ -3939,8 +3939,8 @@ static void ugeth_phy_startup_timer(unsigned long data)
3939 /* Grab the PHY interrupt, if necessary/possible */ 3939 /* Grab the PHY interrupt, if necessary/possible */
3940 if (ugeth->ug_info->board_flags & FSL_UGETH_BRD_HAS_PHY_INTR) { 3940 if (ugeth->ug_info->board_flags & FSL_UGETH_BRD_HAS_PHY_INTR) {
3941 if (request_irq(ugeth->ug_info->phy_interrupt, 3941 if (request_irq(ugeth->ug_info->phy_interrupt,
3942 phy_interrupt, 3942 phy_interrupt, IRQF_SHARED,
3943 SA_SHIRQ, "phy_interrupt", mii_info->dev) < 0) { 3943 "phy_interrupt", mii_info->dev) < 0) {
3944 ugeth_err("%s: Can't get IRQ %d (PHY)", 3944 ugeth_err("%s: Can't get IRQ %d (PHY)",
3945 mii_info->dev->name, 3945 mii_info->dev->name,
3946 ugeth->ug_info->phy_interrupt); 3946 ugeth->ug_info->phy_interrupt);
diff --git a/drivers/net/ucc_geth_phy.c b/drivers/net/ucc_geth_phy.c
index 6fda6d88be49..9373d895b9ec 100644
--- a/drivers/net/ucc_geth_phy.c
+++ b/drivers/net/ucc_geth_phy.c
@@ -18,7 +18,6 @@
18 */ 18 */
19 19
20#include <linux/kernel.h> 20#include <linux/kernel.h>
21#include <linux/sched.h>
22#include <linux/string.h> 21#include <linux/string.h>
23#include <linux/errno.h> 22#include <linux/errno.h>
24#include <linux/slab.h> 23#include <linux/slab.h>
diff --git a/drivers/net/wan/cycx_drv.c b/drivers/net/wan/cycx_drv.c
index e6d005726aad..d347d59db656 100644
--- a/drivers/net/wan/cycx_drv.c
+++ b/drivers/net/wan/cycx_drv.c
@@ -53,7 +53,6 @@
53#include <linux/kernel.h> /* printk(), and other useful stuff */ 53#include <linux/kernel.h> /* printk(), and other useful stuff */
54#include <linux/stddef.h> /* offsetof(), etc. */ 54#include <linux/stddef.h> /* offsetof(), etc. */
55#include <linux/errno.h> /* return codes */ 55#include <linux/errno.h> /* return codes */
56#include <linux/sched.h> /* for jiffies, HZ, etc. */
57#include <linux/cycx_drv.h> /* API definitions */ 56#include <linux/cycx_drv.h> /* API definitions */
58#include <linux/cycx_cfm.h> /* CYCX firmware module definitions */ 57#include <linux/cycx_cfm.h> /* CYCX firmware module definitions */
59#include <linux/delay.h> /* udelay, msleep_interruptible */ 58#include <linux/delay.h> /* udelay, msleep_interruptible */
diff --git a/drivers/net/wan/pci200syn.c b/drivers/net/wan/pci200syn.c
index a6b9c33b68e4..ca06a00d9d86 100644
--- a/drivers/net/wan/pci200syn.c
+++ b/drivers/net/wan/pci200syn.c
@@ -17,7 +17,6 @@
17#include <linux/module.h> 17#include <linux/module.h>
18#include <linux/kernel.h> 18#include <linux/kernel.h>
19#include <linux/slab.h> 19#include <linux/slab.h>
20#include <linux/sched.h>
21#include <linux/types.h> 20#include <linux/types.h>
22#include <linux/fcntl.h> 21#include <linux/fcntl.h>
23#include <linux/in.h> 22#include <linux/in.h>
diff --git a/drivers/net/wireless/arlan-proc.c b/drivers/net/wireless/arlan-proc.c
index 5fa985435ffa..015abd928ab0 100644
--- a/drivers/net/wireless/arlan-proc.c
+++ b/drivers/net/wireless/arlan-proc.c
@@ -1216,7 +1216,7 @@ static ctl_table arlan_table[MAX_ARLANS + 1] =
1216static ctl_table arlan_root_table[] = 1216static ctl_table arlan_root_table[] =
1217{ 1217{
1218 { 1218 {
1219 .ctl_name = 254, 1219 .ctl_name = CTL_ARLAN,
1220 .procname = "arlan", 1220 .procname = "arlan",
1221 .maxlen = 0, 1221 .maxlen = 0,
1222 .mode = 0555, 1222 .mode = 0555,
@@ -1244,7 +1244,7 @@ int __init init_arlan_proc(void)
1244 return 0; 1244 return 0;
1245 for (i = 0; i < MAX_ARLANS && arlan_device[i]; i++) 1245 for (i = 0; i < MAX_ARLANS && arlan_device[i]; i++)
1246 arlan_table[i].ctl_name = i + 1; 1246 arlan_table[i].ctl_name = i + 1;
1247 arlan_device_sysctl_header = register_sysctl_table(arlan_root_table, 0); 1247 arlan_device_sysctl_header = register_sysctl_table(arlan_root_table);
1248 if (!arlan_device_sysctl_header) 1248 if (!arlan_device_sysctl_header)
1249 return -1; 1249 return -1;
1250 1250
diff --git a/drivers/net/wireless/atmel.c b/drivers/net/wireless/atmel.c
index 10bcb48e80d0..23eba698aec5 100644
--- a/drivers/net/wireless/atmel.c
+++ b/drivers/net/wireless/atmel.c
@@ -42,7 +42,6 @@
42#include <linux/init.h> 42#include <linux/init.h>
43 43
44#include <linux/kernel.h> 44#include <linux/kernel.h>
45#include <linux/sched.h>
46#include <linux/ptrace.h> 45#include <linux/ptrace.h>
47#include <linux/slab.h> 46#include <linux/slab.h>
48#include <linux/string.h> 47#include <linux/string.h>
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_wx.c b/drivers/net/wireless/bcm43xx/bcm43xx_wx.c
index a659442b9c15..d2ca949174fe 100644
--- a/drivers/net/wireless/bcm43xx/bcm43xx_wx.c
+++ b/drivers/net/wireless/bcm43xx/bcm43xx_wx.c
@@ -33,7 +33,6 @@
33#include <net/ieee80211softmac.h> 33#include <net/ieee80211softmac.h>
34#include <net/ieee80211softmac_wx.h> 34#include <net/ieee80211softmac_wx.h>
35#include <linux/capability.h> 35#include <linux/capability.h>
36#include <linux/sched.h> /* for capable() */
37#include <linux/delay.h> 36#include <linux/delay.h>
38 37
39#include "bcm43xx.h" 38#include "bcm43xx.h"
diff --git a/drivers/parisc/eisa.c b/drivers/parisc/eisa.c
index e97cecbc4d18..309076b39853 100644
--- a/drivers/parisc/eisa.c
+++ b/drivers/parisc/eisa.c
@@ -33,7 +33,6 @@
33#include <linux/kernel.h> 33#include <linux/kernel.h>
34#include <linux/module.h> 34#include <linux/module.h>
35#include <linux/pci.h> 35#include <linux/pci.h>
36#include <linux/sched.h>
37#include <linux/spinlock.h> 36#include <linux/spinlock.h>
38#include <linux/eisa.h> 37#include <linux/eisa.h>
39 38
diff --git a/drivers/parport/parport_cs.c b/drivers/parport/parport_cs.c
index e60b4bf6bae8..316c06f4423c 100644
--- a/drivers/parport/parport_cs.c
+++ b/drivers/parport/parport_cs.c
@@ -37,7 +37,6 @@
37#include <linux/kernel.h> 37#include <linux/kernel.h>
38#include <linux/module.h> 38#include <linux/module.h>
39#include <linux/init.h> 39#include <linux/init.h>
40#include <linux/sched.h>
41#include <linux/ptrace.h> 40#include <linux/ptrace.h>
42#include <linux/slab.h> 41#include <linux/slab.h>
43#include <linux/string.h> 42#include <linux/string.h>
diff --git a/drivers/parport/parport_gsc.c b/drivers/parport/parport_gsc.c
index a7c5ead9a3d3..17bf9937d276 100644
--- a/drivers/parport/parport_gsc.c
+++ b/drivers/parport/parport_gsc.c
@@ -23,7 +23,6 @@
23 23
24#include <linux/module.h> 24#include <linux/module.h>
25#include <linux/init.h> 25#include <linux/init.h>
26#include <linux/sched.h>
27#include <linux/delay.h> 26#include <linux/delay.h>
28#include <linux/errno.h> 27#include <linux/errno.h>
29#include <linux/interrupt.h> 28#include <linux/interrupt.h>
diff --git a/drivers/parport/procfs.c b/drivers/parport/procfs.c
index 2e744a274517..bdbdab9285ca 100644
--- a/drivers/parport/procfs.c
+++ b/drivers/parport/procfs.c
@@ -233,12 +233,12 @@ static int do_hardware_modes (ctl_table *table, int write,
233 return copy_to_user(result, buffer, len) ? -EFAULT : 0; 233 return copy_to_user(result, buffer, len) ? -EFAULT : 0;
234} 234}
235 235
236#define PARPORT_PORT_DIR(child) { 0, NULL, NULL, 0, 0555, child } 236#define PARPORT_PORT_DIR(CHILD) { .ctl_name = 0, .procname = NULL, .mode = 0555, .child = CHILD }
237#define PARPORT_PARPORT_DIR(child) { DEV_PARPORT, "parport", \ 237#define PARPORT_PARPORT_DIR(CHILD) { .ctl_name = DEV_PARPORT, .procname = "parport", \
238 NULL, 0, 0555, child } 238 .mode = 0555, .child = CHILD }
239#define PARPORT_DEV_DIR(child) { CTL_DEV, "dev", NULL, 0, 0555, child } 239#define PARPORT_DEV_DIR(CHILD) { .ctl_name = CTL_DEV, .procname = "dev", .mode = 0555, .child = CHILD }
240#define PARPORT_DEVICES_ROOT_DIR { DEV_PARPORT_DEVICES, "devices", \ 240#define PARPORT_DEVICES_ROOT_DIR { .ctl_name = DEV_PARPORT_DEVICES, .procname = "devices", \
241 NULL, 0, 0555, NULL } 241 .mode = 0555, .child = NULL }
242 242
243static const unsigned long parport_min_timeslice_value = 243static const unsigned long parport_min_timeslice_value =
244PARPORT_MIN_TIMESLICE_VALUE; 244PARPORT_MIN_TIMESLICE_VALUE;
@@ -263,50 +263,118 @@ struct parport_sysctl_table {
263}; 263};
264 264
265static const struct parport_sysctl_table parport_sysctl_template = { 265static const struct parport_sysctl_table parport_sysctl_template = {
266 NULL, 266 .sysctl_header = NULL,
267 { 267 {
268 { DEV_PARPORT_SPINTIME, "spintime", 268 {
269 NULL, sizeof(int), 0644, NULL, 269 .ctl_name = DEV_PARPORT_SPINTIME,
270 &proc_dointvec_minmax, NULL, NULL, 270 .procname = "spintime",
271 (void*) &parport_min_spintime_value, 271 .data = NULL,
272 (void*) &parport_max_spintime_value }, 272 .maxlen = sizeof(int),
273 { DEV_PARPORT_BASE_ADDR, "base-addr", 273 .mode = 0644,
274 NULL, 0, 0444, NULL, 274 .proc_handler = &proc_dointvec_minmax,
275 &do_hardware_base_addr }, 275 .extra1 = (void*) &parport_min_spintime_value,
276 { DEV_PARPORT_IRQ, "irq", 276 .extra2 = (void*) &parport_max_spintime_value
277 NULL, 0, 0444, NULL, 277 },
278 &do_hardware_irq }, 278 {
279 { DEV_PARPORT_DMA, "dma", 279 .ctl_name = DEV_PARPORT_BASE_ADDR,
280 NULL, 0, 0444, NULL, 280 .procname = "base-addr",
281 &do_hardware_dma }, 281 .data = NULL,
282 { DEV_PARPORT_MODES, "modes", 282 .maxlen = 0,
283 NULL, 0, 0444, NULL, 283 .mode = 0444,
284 &do_hardware_modes }, 284 .proc_handler = &do_hardware_base_addr
285 },
286 {
287 .ctl_name = DEV_PARPORT_IRQ,
288 .procname = "irq",
289 .data = NULL,
290 .maxlen = 0,
291 .mode = 0444,
292 .proc_handler = &do_hardware_irq
293 },
294 {
295 .ctl_name = DEV_PARPORT_DMA,
296 .procname = "dma",
297 .data = NULL,
298 .maxlen = 0,
299 .mode = 0444,
300 .proc_handler = &do_hardware_dma
301 },
302 {
303 .ctl_name = DEV_PARPORT_MODES,
304 .procname = "modes",
305 .data = NULL,
306 .maxlen = 0,
307 .mode = 0444,
308 .proc_handler = &do_hardware_modes
309 },
285 PARPORT_DEVICES_ROOT_DIR, 310 PARPORT_DEVICES_ROOT_DIR,
286#ifdef CONFIG_PARPORT_1284 311#ifdef CONFIG_PARPORT_1284
287 { DEV_PARPORT_AUTOPROBE, "autoprobe", 312 {
288 NULL, 0, 0444, NULL, 313 .ctl_name = DEV_PARPORT_AUTOPROBE,
289 &do_autoprobe }, 314 .procname = "autoprobe",
290 { DEV_PARPORT_AUTOPROBE + 1, "autoprobe0", 315 .data = NULL,
291 NULL, 0, 0444, NULL, 316 .maxlen = 0,
292 &do_autoprobe }, 317 .mode = 0444,
293 { DEV_PARPORT_AUTOPROBE + 2, "autoprobe1", 318 .proc_handler = &do_autoprobe
294 NULL, 0, 0444, NULL, 319 },
295 &do_autoprobe }, 320 {
296 { DEV_PARPORT_AUTOPROBE + 3, "autoprobe2", 321 .ctl_name = DEV_PARPORT_AUTOPROBE + 1,
297 NULL, 0, 0444, NULL, 322 .procname = "autoprobe0",
298 &do_autoprobe }, 323 .data = NULL,
299 { DEV_PARPORT_AUTOPROBE + 4, "autoprobe3", 324 .maxlen = 0,
300 NULL, 0, 0444, NULL, 325 .mode = 0444,
301 &do_autoprobe }, 326 .proc_handler = &do_autoprobe
327 },
328 {
329 .ctl_name = DEV_PARPORT_AUTOPROBE + 2,
330 .procname = "autoprobe1",
331 .data = NULL,
332 .maxlen = 0,
333 .mode = 0444,
334 .proc_handler = &do_autoprobe
335 },
336 {
337 .ctl_name = DEV_PARPORT_AUTOPROBE + 3,
338 .procname = "autoprobe2",
339 .data = NULL,
340 .maxlen = 0,
341 .mode = 0444,
342 .proc_handler = &do_autoprobe
343 },
344 {
345 .ctl_name = DEV_PARPORT_AUTOPROBE + 4,
346 .procname = "autoprobe3",
347 .data = NULL,
348 .maxlen = 0,
349 .mode = 0444,
350 .proc_handler = &do_autoprobe
351 },
302#endif /* IEEE 1284 support */ 352#endif /* IEEE 1284 support */
303 {0} 353 {}
304 }, 354 },
305 { {DEV_PARPORT_DEVICES_ACTIVE, "active", NULL, 0, 0444, NULL, 355 {
306 &do_active_device }, {0}}, 356 {
307 { PARPORT_PORT_DIR(NULL), {0}}, 357 .ctl_name = DEV_PARPORT_DEVICES_ACTIVE,
308 { PARPORT_PARPORT_DIR(NULL), {0}}, 358 .procname = "active",
309 { PARPORT_DEV_DIR(NULL), {0}} 359 .data = NULL,
360 .maxlen = 0,
361 .mode = 0444,
362 .proc_handler = &do_active_device
363 },
364 {}
365 },
366 {
367 PARPORT_PORT_DIR(NULL),
368 {}
369 },
370 {
371 PARPORT_PARPORT_DIR(NULL),
372 {}
373 },
374 {
375 PARPORT_DEV_DIR(NULL),
376 {}
377 }
310}; 378};
311 379
312struct parport_device_sysctl_table 380struct parport_device_sysctl_table
@@ -322,19 +390,46 @@ struct parport_device_sysctl_table
322 390
323static const struct parport_device_sysctl_table 391static const struct parport_device_sysctl_table
324parport_device_sysctl_template = { 392parport_device_sysctl_template = {
325 NULL, 393 .sysctl_header = NULL,
394 {
395 {
396 .ctl_name = DEV_PARPORT_DEVICE_TIMESLICE,
397 .procname = "timeslice",
398 .data = NULL,
399 .maxlen = sizeof(int),
400 .mode = 0644,
401 .proc_handler = &proc_doulongvec_ms_jiffies_minmax,
402 .extra1 = (void*) &parport_min_timeslice_value,
403 .extra2 = (void*) &parport_max_timeslice_value
404 },
405 },
406 {
407 {
408 .ctl_name = 0,
409 .procname = NULL,
410 .data = NULL,
411 .maxlen = 0,
412 .mode = 0555,
413 .child = NULL
414 },
415 {}
416 },
326 { 417 {
327 { DEV_PARPORT_DEVICE_TIMESLICE, "timeslice", 418 PARPORT_DEVICES_ROOT_DIR,
328 NULL, sizeof(int), 0644, NULL, 419 {}
329 &proc_doulongvec_ms_jiffies_minmax, NULL, NULL, 420 },
330 (void*) &parport_min_timeslice_value, 421 {
331 (void*) &parport_max_timeslice_value }, 422 PARPORT_PORT_DIR(NULL),
423 {}
332 }, 424 },
333 { {0, NULL, NULL, 0, 0555, NULL}, {0}}, 425 {
334 { PARPORT_DEVICES_ROOT_DIR, {0}}, 426 PARPORT_PARPORT_DIR(NULL),
335 { PARPORT_PORT_DIR(NULL), {0}}, 427 {}
336 { PARPORT_PARPORT_DIR(NULL), {0}}, 428 },
337 { PARPORT_DEV_DIR(NULL), {0}} 429 {
430 PARPORT_DEV_DIR(NULL),
431 {}
432 }
338}; 433};
339 434
340struct parport_default_sysctl_table 435struct parport_default_sysctl_table
@@ -351,28 +446,47 @@ extern int parport_default_spintime;
351 446
352static struct parport_default_sysctl_table 447static struct parport_default_sysctl_table
353parport_default_sysctl_table = { 448parport_default_sysctl_table = {
354 NULL, 449 .sysctl_header = NULL,
450 {
451 {
452 .ctl_name = DEV_PARPORT_DEFAULT_TIMESLICE,
453 .procname = "timeslice",
454 .data = &parport_default_timeslice,
455 .maxlen = sizeof(parport_default_timeslice),
456 .mode = 0644,
457 .proc_handler = &proc_doulongvec_ms_jiffies_minmax,
458 .extra1 = (void*) &parport_min_timeslice_value,
459 .extra2 = (void*) &parport_max_timeslice_value
460 },
461 {
462 .ctl_name = DEV_PARPORT_DEFAULT_SPINTIME,
463 .procname = "spintime",
464 .data = &parport_default_spintime,
465 .maxlen = sizeof(parport_default_spintime),
466 .mode = 0644,
467 .proc_handler = &proc_dointvec_minmax,
468 .extra1 = (void*) &parport_min_spintime_value,
469 .extra2 = (void*) &parport_max_spintime_value
470 },
471 {}
472 },
355 { 473 {
356 { DEV_PARPORT_DEFAULT_TIMESLICE, "timeslice", 474 {
357 &parport_default_timeslice, 475 .ctl_name = DEV_PARPORT_DEFAULT,
358 sizeof(parport_default_timeslice), 0644, NULL, 476 .procname = "default",
359 &proc_doulongvec_ms_jiffies_minmax, NULL, NULL, 477 .mode = 0555,
360 (void*) &parport_min_timeslice_value, 478 .child = parport_default_sysctl_table.vars
361 (void*) &parport_max_timeslice_value }, 479 },
362 { DEV_PARPORT_DEFAULT_SPINTIME, "spintime", 480 {}
363 &parport_default_spintime,
364 sizeof(parport_default_spintime), 0644, NULL,
365 &proc_dointvec_minmax, NULL, NULL,
366 (void*) &parport_min_spintime_value,
367 (void*) &parport_max_spintime_value },
368 {0}
369 }, 481 },
370 { { DEV_PARPORT_DEFAULT, "default", NULL, 0, 0555,
371 parport_default_sysctl_table.vars },{0}},
372 { 482 {
373 PARPORT_PARPORT_DIR(parport_default_sysctl_table.default_dir), 483 PARPORT_PARPORT_DIR(parport_default_sysctl_table.default_dir),
374 {0}}, 484 {}
375 { PARPORT_DEV_DIR(parport_default_sysctl_table.parport_dir), {0}} 485 },
486 {
487 PARPORT_DEV_DIR(parport_default_sysctl_table.parport_dir),
488 {}
489 }
376}; 490};
377 491
378 492
@@ -404,7 +518,7 @@ int parport_proc_register(struct parport *port)
404 t->parport_dir[0].child = t->port_dir; 518 t->parport_dir[0].child = t->port_dir;
405 t->dev_dir[0].child = t->parport_dir; 519 t->dev_dir[0].child = t->parport_dir;
406 520
407 t->sysctl_header = register_sysctl_table(t->dev_dir, 0); 521 t->sysctl_header = register_sysctl_table(t->dev_dir);
408 if (t->sysctl_header == NULL) { 522 if (t->sysctl_header == NULL) {
409 kfree(t); 523 kfree(t);
410 t = NULL; 524 t = NULL;
@@ -460,7 +574,7 @@ int parport_device_proc_register(struct pardevice *device)
460 t->device_dir[0].child = t->vars; 574 t->device_dir[0].child = t->vars;
461 t->vars[0].data = &device->timeslice; 575 t->vars[0].data = &device->timeslice;
462 576
463 t->sysctl_header = register_sysctl_table(t->dev_dir, 0); 577 t->sysctl_header = register_sysctl_table(t->dev_dir);
464 if (t->sysctl_header == NULL) { 578 if (t->sysctl_header == NULL) {
465 kfree(t); 579 kfree(t);
466 t = NULL; 580 t = NULL;
@@ -483,7 +597,7 @@ int parport_device_proc_unregister(struct pardevice *device)
483static int __init parport_default_proc_register(void) 597static int __init parport_default_proc_register(void)
484{ 598{
485 parport_default_sysctl_table.sysctl_header = 599 parport_default_sysctl_table.sysctl_header =
486 register_sysctl_table(parport_default_sysctl_table.dev_dir, 0); 600 register_sysctl_table(parport_default_sysctl_table.dev_dir);
487 return 0; 601 return 0;
488} 602}
489 603
diff --git a/drivers/pci/hotplug/ibmphp_ebda.c b/drivers/pci/hotplug/ibmphp_ebda.c
index 05e4f5a1927a..600ed7b67ae7 100644
--- a/drivers/pci/hotplug/ibmphp_ebda.c
+++ b/drivers/pci/hotplug/ibmphp_ebda.c
@@ -28,7 +28,6 @@
28 */ 28 */
29 29
30#include <linux/module.h> 30#include <linux/module.h>
31#include <linux/sched.h>
32#include <linux/errno.h> 31#include <linux/errno.h>
33#include <linux/mm.h> 32#include <linux/mm.h>
34#include <linux/slab.h> 33#include <linux/slab.h>
diff --git a/drivers/pci/pcie/aer/aerdrv.c b/drivers/pci/pcie/aer/aerdrv.c
index 6f5fabbd14e5..b164de050d4f 100644
--- a/drivers/pci/pcie/aer/aerdrv.c
+++ b/drivers/pci/pcie/aer/aerdrv.c
@@ -220,7 +220,7 @@ static int __devinit aer_probe (struct pcie_device *dev,
220 } 220 }
221 221
222 /* Request IRQ ISR */ 222 /* Request IRQ ISR */
223 if ((status = request_irq(dev->irq, aer_irq, SA_SHIRQ, "aerdrv", 223 if ((status = request_irq(dev->irq, aer_irq, IRQF_SHARED, "aerdrv",
224 dev))) { 224 dev))) {
225 printk(KERN_DEBUG "%s: Request ISR fails on PCIE device[%s]\n", 225 printk(KERN_DEBUG "%s: Request ISR fails on PCIE device[%s]\n",
226 __FUNCTION__, device->bus_id); 226 __FUNCTION__, device->bus_id);
diff --git a/drivers/pci/syscall.c b/drivers/pci/syscall.c
index 87fafc08cb9d..9d37fec27f24 100644
--- a/drivers/pci/syscall.c
+++ b/drivers/pci/syscall.c
@@ -7,7 +7,6 @@
7 * magic northbridge registers.. 7 * magic northbridge registers..
8 */ 8 */
9 9
10#include <linux/sched.h>
11#include <linux/errno.h> 10#include <linux/errno.h>
12#include <linux/pci.h> 11#include <linux/pci.h>
13#include <linux/smp_lock.h> 12#include <linux/smp_lock.h>
diff --git a/drivers/pcmcia/at91_cf.c b/drivers/pcmcia/at91_cf.c
index 3334f22a86c0..b31862837534 100644
--- a/drivers/pcmcia/at91_cf.c
+++ b/drivers/pcmcia/at91_cf.c
@@ -11,7 +11,6 @@
11 11
12#include <linux/module.h> 12#include <linux/module.h>
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/sched.h>
15#include <linux/platform_device.h> 14#include <linux/platform_device.h>
16#include <linux/errno.h> 15#include <linux/errno.h>
17#include <linux/init.h> 16#include <linux/init.h>
diff --git a/drivers/pcmcia/cistpl.c b/drivers/pcmcia/cistpl.c
index 912c03e5eb0a..d154dee76e7f 100644
--- a/drivers/pcmcia/cistpl.c
+++ b/drivers/pcmcia/cistpl.c
@@ -21,7 +21,6 @@
21#include <linux/timer.h> 21#include <linux/timer.h>
22#include <linux/slab.h> 22#include <linux/slab.h>
23#include <linux/mm.h> 23#include <linux/mm.h>
24#include <linux/sched.h>
25#include <linux/pci.h> 24#include <linux/pci.h>
26#include <linux/ioport.h> 25#include <linux/ioport.h>
27#include <asm/io.h> 26#include <asm/io.h>
diff --git a/drivers/pcmcia/i82365.c b/drivers/pcmcia/i82365.c
index 72ff2f615b33..71b33707117f 100644
--- a/drivers/pcmcia/i82365.c
+++ b/drivers/pcmcia/i82365.c
@@ -40,7 +40,6 @@
40#include <linux/kernel.h> 40#include <linux/kernel.h>
41#include <linux/errno.h> 41#include <linux/errno.h>
42#include <linux/timer.h> 42#include <linux/timer.h>
43#include <linux/sched.h>
44#include <linux/slab.h> 43#include <linux/slab.h>
45#include <linux/ioport.h> 44#include <linux/ioport.h>
46#include <linux/delay.h> 45#include <linux/delay.h>
diff --git a/drivers/pcmcia/m32r_cfc.c b/drivers/pcmcia/m32r_cfc.c
index 3c22ac4625c2..e4a94108aab9 100644
--- a/drivers/pcmcia/m32r_cfc.c
+++ b/drivers/pcmcia/m32r_cfc.c
@@ -16,7 +16,6 @@
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/errno.h> 17#include <linux/errno.h>
18#include <linux/timer.h> 18#include <linux/timer.h>
19#include <linux/sched.h>
20#include <linux/slab.h> 19#include <linux/slab.h>
21#include <linux/ioport.h> 20#include <linux/ioport.h>
22#include <linux/delay.h> 21#include <linux/delay.h>
diff --git a/drivers/pcmcia/m32r_pcc.c b/drivers/pcmcia/m32r_pcc.c
index 4dbef0762376..67d28ee80f22 100644
--- a/drivers/pcmcia/m32r_pcc.c
+++ b/drivers/pcmcia/m32r_pcc.c
@@ -16,7 +16,6 @@
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/errno.h> 17#include <linux/errno.h>
18#include <linux/timer.h> 18#include <linux/timer.h>
19#include <linux/sched.h>
20#include <linux/slab.h> 19#include <linux/slab.h>
21#include <linux/ioport.h> 20#include <linux/ioport.h>
22#include <linux/delay.h> 21#include <linux/delay.h>
diff --git a/drivers/pcmcia/m8xx_pcmcia.c b/drivers/pcmcia/m8xx_pcmcia.c
index 3b72be880401..d059c9196172 100644
--- a/drivers/pcmcia/m8xx_pcmcia.c
+++ b/drivers/pcmcia/m8xx_pcmcia.c
@@ -46,7 +46,6 @@
46 46
47#include <linux/kernel.h> 47#include <linux/kernel.h>
48#include <linux/errno.h> 48#include <linux/errno.h>
49#include <linux/sched.h>
50#include <linux/slab.h> 49#include <linux/slab.h>
51#include <linux/timer.h> 50#include <linux/timer.h>
52#include <linux/ioport.h> 51#include <linux/ioport.h>
diff --git a/drivers/pcmcia/omap_cf.c b/drivers/pcmcia/omap_cf.c
index e65a6b8188f6..76f7cbc62a8b 100644
--- a/drivers/pcmcia/omap_cf.c
+++ b/drivers/pcmcia/omap_cf.c
@@ -11,7 +11,6 @@
11 11
12#include <linux/module.h> 12#include <linux/module.h>
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/sched.h>
15#include <linux/platform_device.h> 14#include <linux/platform_device.h>
16#include <linux/errno.h> 15#include <linux/errno.h>
17#include <linux/init.h> 16#include <linux/init.h>
diff --git a/drivers/pcmcia/pxa2xx_lubbock.c b/drivers/pcmcia/pxa2xx_lubbock.c
index a92f11143c43..5e9b9a3fd027 100644
--- a/drivers/pcmcia/pxa2xx_lubbock.c
+++ b/drivers/pcmcia/pxa2xx_lubbock.c
@@ -16,7 +16,6 @@
16 */ 16 */
17#include <linux/module.h> 17#include <linux/module.h>
18#include <linux/kernel.h> 18#include <linux/kernel.h>
19#include <linux/sched.h>
20#include <linux/device.h> 19#include <linux/device.h>
21#include <linux/errno.h> 20#include <linux/errno.h>
22#include <linux/init.h> 21#include <linux/init.h>
diff --git a/drivers/pcmcia/sa1100_badge4.c b/drivers/pcmcia/sa1100_badge4.c
index 19b1e1276220..62bfc7566ec2 100644
--- a/drivers/pcmcia/sa1100_badge4.c
+++ b/drivers/pcmcia/sa1100_badge4.c
@@ -14,7 +14,6 @@
14 */ 14 */
15#include <linux/module.h> 15#include <linux/module.h>
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/sched.h>
18#include <linux/device.h> 17#include <linux/device.h>
19#include <linux/errno.h> 18#include <linux/errno.h>
20#include <linux/init.h> 19#include <linux/init.h>
diff --git a/drivers/pcmcia/sa1100_cerf.c b/drivers/pcmcia/sa1100_cerf.c
index eb89928f2338..549a1529fe35 100644
--- a/drivers/pcmcia/sa1100_cerf.c
+++ b/drivers/pcmcia/sa1100_cerf.c
@@ -7,7 +7,6 @@
7 */ 7 */
8#include <linux/module.h> 8#include <linux/module.h>
9#include <linux/kernel.h> 9#include <linux/kernel.h>
10#include <linux/sched.h>
11#include <linux/device.h> 10#include <linux/device.h>
12#include <linux/init.h> 11#include <linux/init.h>
13#include <linux/delay.h> 12#include <linux/delay.h>
diff --git a/drivers/pcmcia/sa1100_h3600.c b/drivers/pcmcia/sa1100_h3600.c
index 64fd5e37f2d2..e5491879acd9 100644
--- a/drivers/pcmcia/sa1100_h3600.c
+++ b/drivers/pcmcia/sa1100_h3600.c
@@ -6,7 +6,6 @@
6 */ 6 */
7#include <linux/module.h> 7#include <linux/module.h>
8#include <linux/kernel.h> 8#include <linux/kernel.h>
9#include <linux/sched.h>
10#include <linux/device.h> 9#include <linux/device.h>
11#include <linux/interrupt.h> 10#include <linux/interrupt.h>
12#include <linux/init.h> 11#include <linux/init.h>
diff --git a/drivers/pcmcia/sa1100_jornada720.c b/drivers/pcmcia/sa1100_jornada720.c
index 7a87298bae99..af485ae38602 100644
--- a/drivers/pcmcia/sa1100_jornada720.c
+++ b/drivers/pcmcia/sa1100_jornada720.c
@@ -6,7 +6,6 @@
6 */ 6 */
7#include <linux/module.h> 7#include <linux/module.h>
8#include <linux/kernel.h> 8#include <linux/kernel.h>
9#include <linux/sched.h>
10#include <linux/device.h> 9#include <linux/device.h>
11#include <linux/errno.h> 10#include <linux/errno.h>
12#include <linux/init.h> 11#include <linux/init.h>
diff --git a/drivers/pcmcia/sa1100_neponset.c b/drivers/pcmcia/sa1100_neponset.c
index 5e34b3e8e5db..5bc9e9532b9d 100644
--- a/drivers/pcmcia/sa1100_neponset.c
+++ b/drivers/pcmcia/sa1100_neponset.c
@@ -5,7 +5,6 @@
5 */ 5 */
6#include <linux/module.h> 6#include <linux/module.h>
7#include <linux/kernel.h> 7#include <linux/kernel.h>
8#include <linux/sched.h>
9#include <linux/device.h> 8#include <linux/device.h>
10#include <linux/errno.h> 9#include <linux/errno.h>
11#include <linux/init.h> 10#include <linux/init.h>
diff --git a/drivers/pcmcia/sa1100_shannon.c b/drivers/pcmcia/sa1100_shannon.c
index 7bc9e59c761f..9456f5478d09 100644
--- a/drivers/pcmcia/sa1100_shannon.c
+++ b/drivers/pcmcia/sa1100_shannon.c
@@ -6,7 +6,6 @@
6 */ 6 */
7#include <linux/module.h> 7#include <linux/module.h>
8#include <linux/kernel.h> 8#include <linux/kernel.h>
9#include <linux/sched.h>
10#include <linux/device.h> 9#include <linux/device.h>
11#include <linux/init.h> 10#include <linux/init.h>
12 11
diff --git a/drivers/pcmcia/sa1100_simpad.c b/drivers/pcmcia/sa1100_simpad.c
index c2ecf1185e9e..04d6f7f75f78 100644
--- a/drivers/pcmcia/sa1100_simpad.c
+++ b/drivers/pcmcia/sa1100_simpad.c
@@ -6,7 +6,6 @@
6 */ 6 */
7#include <linux/module.h> 7#include <linux/module.h>
8#include <linux/kernel.h> 8#include <linux/kernel.h>
9#include <linux/sched.h>
10#include <linux/device.h> 9#include <linux/device.h>
11#include <linux/init.h> 10#include <linux/init.h>
12 11
diff --git a/drivers/pcmcia/vrc4171_card.c b/drivers/pcmcia/vrc4171_card.c
index e90d8e8c5fd6..206e26c91807 100644
--- a/drivers/pcmcia/vrc4171_card.c
+++ b/drivers/pcmcia/vrc4171_card.c
@@ -22,7 +22,6 @@
22#include <linux/interrupt.h> 22#include <linux/interrupt.h>
23#include <linux/module.h> 23#include <linux/module.h>
24#include <linux/spinlock.h> 24#include <linux/spinlock.h>
25#include <linux/sched.h>
26#include <linux/types.h> 25#include <linux/types.h>
27#include <linux/platform_device.h> 26#include <linux/platform_device.h>
28 27
diff --git a/drivers/pcmcia/yenta_socket.c b/drivers/pcmcia/yenta_socket.c
index a61d768f6e0e..20853a03202d 100644
--- a/drivers/pcmcia/yenta_socket.c
+++ b/drivers/pcmcia/yenta_socket.c
@@ -12,7 +12,6 @@
12 */ 12 */
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/pci.h> 14#include <linux/pci.h>
15#include <linux/sched.h>
16#include <linux/workqueue.h> 15#include <linux/workqueue.h>
17#include <linux/interrupt.h> 16#include <linux/interrupt.h>
18#include <linux/delay.h> 17#include <linux/delay.h>
diff --git a/drivers/rapidio/rio-sysfs.c b/drivers/rapidio/rio-sysfs.c
index 5687b8fcbf93..eed91434417d 100644
--- a/drivers/rapidio/rio-sysfs.c
+++ b/drivers/rapidio/rio-sysfs.c
@@ -14,7 +14,6 @@
14#include <linux/rio.h> 14#include <linux/rio.h>
15#include <linux/rio_drv.h> 15#include <linux/rio_drv.h>
16#include <linux/stat.h> 16#include <linux/stat.h>
17#include <linux/sched.h> /* for capable() */
18 17
19#include "rio.h" 18#include "rio.h"
20 19
diff --git a/drivers/rtc/rtc-omap.c b/drivers/rtc/rtc-omap.c
index d59880d44fba..9de8d67f4f8d 100644
--- a/drivers/rtc/rtc-omap.c
+++ b/drivers/rtc/rtc-omap.c
@@ -417,13 +417,13 @@ static int __devinit omap_rtc_probe(struct platform_device *pdev)
417 rtc_write(OMAP_RTC_STATUS_ALARM, OMAP_RTC_STATUS_REG); 417 rtc_write(OMAP_RTC_STATUS_ALARM, OMAP_RTC_STATUS_REG);
418 418
419 /* handle periodic and alarm irqs */ 419 /* handle periodic and alarm irqs */
420 if (request_irq(omap_rtc_timer, rtc_irq, SA_INTERRUPT, 420 if (request_irq(omap_rtc_timer, rtc_irq, IRQF_DISABLED,
421 rtc->class_dev.class_id, &rtc->class_dev)) { 421 rtc->class_dev.class_id, &rtc->class_dev)) {
422 pr_debug("%s: RTC timer interrupt IRQ%d already claimed\n", 422 pr_debug("%s: RTC timer interrupt IRQ%d already claimed\n",
423 pdev->name, omap_rtc_timer); 423 pdev->name, omap_rtc_timer);
424 goto fail0; 424 goto fail0;
425 } 425 }
426 if (request_irq(omap_rtc_alarm, rtc_irq, SA_INTERRUPT, 426 if (request_irq(omap_rtc_alarm, rtc_irq, IRQF_DISABLED,
427 rtc->class_dev.class_id, &rtc->class_dev)) { 427 rtc->class_dev.class_id, &rtc->class_dev)) {
428 pr_debug("%s: RTC alarm interrupt IRQ%d already claimed\n", 428 pr_debug("%s: RTC alarm interrupt IRQ%d already claimed\n",
429 pdev->name, omap_rtc_alarm); 429 pdev->name, omap_rtc_alarm);
diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c
index f406a2b55aea..9a79a24a7487 100644
--- a/drivers/rtc/rtc-s3c.c
+++ b/drivers/rtc/rtc-s3c.c
@@ -350,7 +350,7 @@ static int s3c_rtc_open(struct device *dev)
350 int ret; 350 int ret;
351 351
352 ret = request_irq(s3c_rtc_alarmno, s3c_rtc_alarmirq, 352 ret = request_irq(s3c_rtc_alarmno, s3c_rtc_alarmirq,
353 SA_INTERRUPT, "s3c2410-rtc alarm", rtc_dev); 353 IRQF_DISABLED, "s3c2410-rtc alarm", rtc_dev);
354 354
355 if (ret) { 355 if (ret) {
356 dev_err(dev, "IRQ%d error %d\n", s3c_rtc_alarmno, ret); 356 dev_err(dev, "IRQ%d error %d\n", s3c_rtc_alarmno, ret);
@@ -358,7 +358,7 @@ static int s3c_rtc_open(struct device *dev)
358 } 358 }
359 359
360 ret = request_irq(s3c_rtc_tickno, s3c_rtc_tickirq, 360 ret = request_irq(s3c_rtc_tickno, s3c_rtc_tickirq,
361 SA_INTERRUPT, "s3c2410-rtc tick", rtc_dev); 361 IRQF_DISABLED, "s3c2410-rtc tick", rtc_dev);
362 362
363 if (ret) { 363 if (ret) {
364 dev_err(dev, "IRQ%d error %d\n", s3c_rtc_tickno, ret); 364 dev_err(dev, "IRQ%d error %d\n", s3c_rtc_tickno, ret);
diff --git a/drivers/s390/char/sclp_tty.c b/drivers/s390/char/sclp_tty.c
index 90536f60bf50..076816b9d528 100644
--- a/drivers/s390/char/sclp_tty.c
+++ b/drivers/s390/char/sclp_tty.c
@@ -13,7 +13,6 @@
13#include <linux/tty.h> 13#include <linux/tty.h>
14#include <linux/tty_driver.h> 14#include <linux/tty_driver.h>
15#include <linux/tty_flip.h> 15#include <linux/tty_flip.h>
16#include <linux/sched.h>
17#include <linux/wait.h> 16#include <linux/wait.h>
18#include <linux/slab.h> 17#include <linux/slab.h>
19#include <linux/err.h> 18#include <linux/err.h>
diff --git a/drivers/s390/char/sclp_vt220.c b/drivers/s390/char/sclp_vt220.c
index 544f137d70d7..f77dc33b5f8d 100644
--- a/drivers/s390/char/sclp_vt220.c
+++ b/drivers/s390/char/sclp_vt220.c
@@ -16,7 +16,6 @@
16#include <linux/tty.h> 16#include <linux/tty.h>
17#include <linux/tty_driver.h> 17#include <linux/tty_driver.h>
18#include <linux/tty_flip.h> 18#include <linux/tty_flip.h>
19#include <linux/sched.h>
20#include <linux/errno.h> 19#include <linux/errno.h>
21#include <linux/mm.h> 20#include <linux/mm.h>
22#include <linux/major.h> 21#include <linux/major.h>
diff --git a/drivers/s390/net/ctcmain.c b/drivers/s390/net/ctcmain.c
index 5a84fbbc6611..0d6d5fcc128b 100644
--- a/drivers/s390/net/ctcmain.c
+++ b/drivers/s390/net/ctcmain.c
@@ -45,7 +45,6 @@
45#include <linux/types.h> 45#include <linux/types.h>
46#include <linux/interrupt.h> 46#include <linux/interrupt.h>
47#include <linux/timer.h> 47#include <linux/timer.h>
48#include <linux/sched.h>
49#include <linux/bitops.h> 48#include <linux/bitops.h>
50 49
51#include <linux/signal.h> 50#include <linux/signal.h>
diff --git a/drivers/s390/net/netiucv.c b/drivers/s390/net/netiucv.c
index 6387b483f2bf..594320ca1b7c 100644
--- a/drivers/s390/net/netiucv.c
+++ b/drivers/s390/net/netiucv.c
@@ -41,7 +41,6 @@
41#include <linux/types.h> 41#include <linux/types.h>
42#include <linux/interrupt.h> 42#include <linux/interrupt.h>
43#include <linux/timer.h> 43#include <linux/timer.h>
44#include <linux/sched.h>
45#include <linux/bitops.h> 44#include <linux/bitops.h>
46 45
47#include <linux/signal.h> 46#include <linux/signal.h>
diff --git a/drivers/sbus/char/cpwatchdog.c b/drivers/sbus/char/cpwatchdog.c
index 0cfd1e4c032c..022e869c44dd 100644
--- a/drivers/sbus/char/cpwatchdog.c
+++ b/drivers/sbus/char/cpwatchdog.c
@@ -20,7 +20,6 @@
20#include <linux/major.h> 20#include <linux/major.h>
21#include <linux/init.h> 21#include <linux/init.h>
22#include <linux/miscdevice.h> 22#include <linux/miscdevice.h>
23#include <linux/sched.h>
24#include <linux/interrupt.h> 23#include <linux/interrupt.h>
25#include <linux/ioport.h> 24#include <linux/ioport.h>
26#include <linux/timer.h> 25#include <linux/timer.h>
diff --git a/drivers/sbus/char/openprom.c b/drivers/sbus/char/openprom.c
index e8776230782b..eec28c142a59 100644
--- a/drivers/sbus/char/openprom.c
+++ b/drivers/sbus/char/openprom.c
@@ -31,7 +31,6 @@
31 31
32#include <linux/module.h> 32#include <linux/module.h>
33#include <linux/kernel.h> 33#include <linux/kernel.h>
34#include <linux/sched.h>
35#include <linux/errno.h> 34#include <linux/errno.h>
36#include <linux/slab.h> 35#include <linux/slab.h>
37#include <linux/string.h> 36#include <linux/string.h>
diff --git a/drivers/sbus/char/uctrl.c b/drivers/sbus/char/uctrl.c
index 4d1a505e9e74..45cf5bc0bbee 100644
--- a/drivers/sbus/char/uctrl.c
+++ b/drivers/sbus/char/uctrl.c
@@ -5,7 +5,6 @@
5 */ 5 */
6 6
7#include <linux/module.h> 7#include <linux/module.h>
8#include <linux/sched.h>
9#include <linux/errno.h> 8#include <linux/errno.h>
10#include <linux/delay.h> 9#include <linux/delay.h>
11#include <linux/interrupt.h> 10#include <linux/interrupt.h>
diff --git a/drivers/sbus/char/vfc_dev.c b/drivers/sbus/char/vfc_dev.c
index 37a04a0cecfa..8bfb67ccdcd4 100644
--- a/drivers/sbus/char/vfc_dev.c
+++ b/drivers/sbus/char/vfc_dev.c
@@ -19,7 +19,6 @@
19#include <linux/string.h> 19#include <linux/string.h>
20#include <linux/slab.h> 20#include <linux/slab.h>
21#include <linux/errno.h> 21#include <linux/errno.h>
22#include <linux/sched.h>
23#include <linux/fs.h> 22#include <linux/fs.h>
24#include <linux/smp_lock.h> 23#include <linux/smp_lock.h>
25#include <linux/delay.h> 24#include <linux/delay.h>
diff --git a/drivers/scsi/53c700.c b/drivers/scsi/53c700.c
index 88e061d13d0b..cb02656eb54c 100644
--- a/drivers/scsi/53c700.c
+++ b/drivers/scsi/53c700.c
@@ -121,7 +121,6 @@
121#include <linux/delay.h> 121#include <linux/delay.h>
122#include <linux/spinlock.h> 122#include <linux/spinlock.h>
123#include <linux/completion.h> 123#include <linux/completion.h>
124#include <linux/sched.h>
125#include <linux/init.h> 124#include <linux/init.h>
126#include <linux/proc_fs.h> 125#include <linux/proc_fs.h>
127#include <linux/blkdev.h> 126#include <linux/blkdev.h>
diff --git a/drivers/scsi/NCR53c406a.c b/drivers/scsi/NCR53c406a.c
index 8578555d58fd..7c0b17f86903 100644
--- a/drivers/scsi/NCR53c406a.c
+++ b/drivers/scsi/NCR53c406a.c
@@ -41,7 +41,6 @@
41 41
42#include <linux/errno.h> 42#include <linux/errno.h>
43#include <linux/ioport.h> 43#include <linux/ioport.h>
44#include <linux/sched.h>
45#include <linux/interrupt.h> 44#include <linux/interrupt.h>
46#include <linux/proc_fs.h> 45#include <linux/proc_fs.h>
47#include <linux/stat.h> 46#include <linux/stat.h>
diff --git a/drivers/scsi/a2091.c b/drivers/scsi/a2091.c
index f77016d31cab..b7c5385e2efe 100644
--- a/drivers/scsi/a2091.c
+++ b/drivers/scsi/a2091.c
@@ -1,7 +1,6 @@
1#include <linux/types.h> 1#include <linux/types.h>
2#include <linux/mm.h> 2#include <linux/mm.h>
3#include <linux/blkdev.h> 3#include <linux/blkdev.h>
4#include <linux/sched.h>
5#include <linux/init.h> 4#include <linux/init.h>
6#include <linux/interrupt.h> 5#include <linux/interrupt.h>
7 6
diff --git a/drivers/scsi/a3000.c b/drivers/scsi/a3000.c
index 1299bc8edef1..796f1c4d772e 100644
--- a/drivers/scsi/a3000.c
+++ b/drivers/scsi/a3000.c
@@ -1,7 +1,6 @@
1#include <linux/types.h> 1#include <linux/types.h>
2#include <linux/mm.h> 2#include <linux/mm.h>
3#include <linux/blkdev.h> 3#include <linux/blkdev.h>
4#include <linux/sched.h>
5#include <linux/ioport.h> 4#include <linux/ioport.h>
6#include <linux/init.h> 5#include <linux/init.h>
7#include <linux/spinlock.h> 6#include <linux/spinlock.h>
diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
index ddb33b06e0ef..d789e61bdc49 100644
--- a/drivers/scsi/aacraid/aachba.c
+++ b/drivers/scsi/aacraid/aachba.c
@@ -26,7 +26,6 @@
26#include <linux/kernel.h> 26#include <linux/kernel.h>
27#include <linux/init.h> 27#include <linux/init.h>
28#include <linux/types.h> 28#include <linux/types.h>
29#include <linux/sched.h>
30#include <linux/pci.h> 29#include <linux/pci.h>
31#include <linux/spinlock.h> 30#include <linux/spinlock.h>
32#include <linux/slab.h> 31#include <linux/slab.h>
diff --git a/drivers/scsi/aacraid/commctrl.c b/drivers/scsi/aacraid/commctrl.c
index da1d3a9212f8..e21070f4eac1 100644
--- a/drivers/scsi/aacraid/commctrl.c
+++ b/drivers/scsi/aacraid/commctrl.c
@@ -31,7 +31,6 @@
31#include <linux/kernel.h> 31#include <linux/kernel.h>
32#include <linux/init.h> 32#include <linux/init.h>
33#include <linux/types.h> 33#include <linux/types.h>
34#include <linux/sched.h>
35#include <linux/pci.h> 34#include <linux/pci.h>
36#include <linux/spinlock.h> 35#include <linux/spinlock.h>
37#include <linux/slab.h> 36#include <linux/slab.h>
diff --git a/drivers/scsi/aacraid/comminit.c b/drivers/scsi/aacraid/comminit.c
index df67ba686023..ae34768987a4 100644
--- a/drivers/scsi/aacraid/comminit.c
+++ b/drivers/scsi/aacraid/comminit.c
@@ -32,7 +32,6 @@
32#include <linux/kernel.h> 32#include <linux/kernel.h>
33#include <linux/init.h> 33#include <linux/init.h>
34#include <linux/types.h> 34#include <linux/types.h>
35#include <linux/sched.h>
36#include <linux/pci.h> 35#include <linux/pci.h>
37#include <linux/spinlock.h> 36#include <linux/spinlock.h>
38#include <linux/slab.h> 37#include <linux/slab.h>
diff --git a/drivers/scsi/aacraid/dpcsup.c b/drivers/scsi/aacraid/dpcsup.c
index 8335f07b7720..d38b628be1ad 100644
--- a/drivers/scsi/aacraid/dpcsup.c
+++ b/drivers/scsi/aacraid/dpcsup.c
@@ -32,7 +32,6 @@
32#include <linux/kernel.h> 32#include <linux/kernel.h>
33#include <linux/init.h> 33#include <linux/init.h>
34#include <linux/types.h> 34#include <linux/types.h>
35#include <linux/sched.h>
36#include <linux/pci.h> 35#include <linux/pci.h>
37#include <linux/spinlock.h> 36#include <linux/spinlock.h>
38#include <linux/slab.h> 37#include <linux/slab.h>
diff --git a/drivers/scsi/aacraid/rx.c b/drivers/scsi/aacraid/rx.c
index c632d9354a26..d242e2611d67 100644
--- a/drivers/scsi/aacraid/rx.c
+++ b/drivers/scsi/aacraid/rx.c
@@ -31,7 +31,6 @@
31#include <linux/kernel.h> 31#include <linux/kernel.h>
32#include <linux/init.h> 32#include <linux/init.h>
33#include <linux/types.h> 33#include <linux/types.h>
34#include <linux/sched.h>
35#include <linux/pci.h> 34#include <linux/pci.h>
36#include <linux/spinlock.h> 35#include <linux/spinlock.h>
37#include <linux/slab.h> 36#include <linux/slab.h>
diff --git a/drivers/scsi/aacraid/sa.c b/drivers/scsi/aacraid/sa.c
index 8535db068c2f..6f1a1780efce 100644
--- a/drivers/scsi/aacraid/sa.c
+++ b/drivers/scsi/aacraid/sa.c
@@ -31,7 +31,6 @@
31#include <linux/kernel.h> 31#include <linux/kernel.h>
32#include <linux/init.h> 32#include <linux/init.h>
33#include <linux/types.h> 33#include <linux/types.h>
34#include <linux/sched.h>
35#include <linux/pci.h> 34#include <linux/pci.h>
36#include <linux/spinlock.h> 35#include <linux/spinlock.h>
37#include <linux/slab.h> 36#include <linux/slab.h>
diff --git a/drivers/scsi/aha152x.c b/drivers/scsi/aha152x.c
index 0cec742d12e9..4b4d1233ce8a 100644
--- a/drivers/scsi/aha152x.c
+++ b/drivers/scsi/aha152x.c
@@ -236,7 +236,6 @@
236 **************************************************************************/ 236 **************************************************************************/
237 237
238#include <linux/module.h> 238#include <linux/module.h>
239#include <linux/sched.h>
240#include <asm/irq.h> 239#include <asm/irq.h>
241#include <linux/io.h> 240#include <linux/io.h>
242#include <linux/blkdev.h> 241#include <linux/blkdev.h>
diff --git a/drivers/scsi/aic7xxx_old.c b/drivers/scsi/aic7xxx_old.c
index 7d1fec620948..a988d5abf702 100644
--- a/drivers/scsi/aic7xxx_old.c
+++ b/drivers/scsi/aic7xxx_old.c
@@ -229,7 +229,6 @@
229#include <linux/kernel.h> 229#include <linux/kernel.h>
230#include <linux/ioport.h> 230#include <linux/ioport.h>
231#include <linux/delay.h> 231#include <linux/delay.h>
232#include <linux/sched.h>
233#include <linux/pci.h> 232#include <linux/pci.h>
234#include <linux/proc_fs.h> 233#include <linux/proc_fs.h>
235#include <linux/blkdev.h> 234#include <linux/blkdev.h>
diff --git a/drivers/scsi/aic94xx/aic94xx_init.c b/drivers/scsi/aic94xx/aic94xx_init.c
index bc7744e35ad0..27852b43b904 100644
--- a/drivers/scsi/aic94xx/aic94xx_init.c
+++ b/drivers/scsi/aic94xx/aic94xx_init.c
@@ -653,7 +653,7 @@ static int __devinit asd_pci_probe(struct pci_dev *dev,
653 if (use_msi) 653 if (use_msi)
654 pci_enable_msi(asd_ha->pcidev); 654 pci_enable_msi(asd_ha->pcidev);
655 655
656 err = request_irq(asd_ha->pcidev->irq, asd_hw_isr, SA_SHIRQ, 656 err = request_irq(asd_ha->pcidev->irq, asd_hw_isr, IRQF_SHARED,
657 ASD_DRIVER_NAME, asd_ha); 657 ASD_DRIVER_NAME, asd_ha);
658 if (err) { 658 if (err) {
659 asd_printk("couldn't get irq %d for %s\n", 659 asd_printk("couldn't get irq %d for %s\n",
diff --git a/drivers/scsi/amiga7xx.c b/drivers/scsi/amiga7xx.c
index 9099d531d5a4..d5d3c4d5a253 100644
--- a/drivers/scsi/amiga7xx.c
+++ b/drivers/scsi/amiga7xx.c
@@ -10,7 +10,6 @@
10#include <linux/types.h> 10#include <linux/types.h>
11#include <linux/mm.h> 11#include <linux/mm.h>
12#include <linux/blkdev.h> 12#include <linux/blkdev.h>
13#include <linux/sched.h>
14#include <linux/zorro.h> 13#include <linux/zorro.h>
15#include <linux/stat.h> 14#include <linux/stat.h>
16 15
diff --git a/drivers/scsi/arcmsr/arcmsr_hba.c b/drivers/scsi/arcmsr/arcmsr_hba.c
index 086cc97eee8c..8b46158cc045 100644
--- a/drivers/scsi/arcmsr/arcmsr_hba.c
+++ b/drivers/scsi/arcmsr/arcmsr_hba.c
@@ -322,7 +322,7 @@ static int arcmsr_probe(struct pci_dev *pdev,
322 goto out_iounmap; 322 goto out_iounmap;
323 323
324 error = request_irq(pdev->irq, arcmsr_do_interrupt, 324 error = request_irq(pdev->irq, arcmsr_do_interrupt,
325 SA_INTERRUPT | SA_SHIRQ, "arcmsr", acb); 325 IRQF_DISABLED | IRQF_SHARED, "arcmsr", acb);
326 if (error) 326 if (error)
327 goto out_free_ccb_pool; 327 goto out_free_ccb_pool;
328 328
diff --git a/drivers/scsi/arm/acornscsi.c b/drivers/scsi/arm/acornscsi.c
index 9cf902b7a126..eceacf6d49ea 100644
--- a/drivers/scsi/arm/acornscsi.c
+++ b/drivers/scsi/arm/acornscsi.c
@@ -131,7 +131,6 @@
131 131
132#include <linux/module.h> 132#include <linux/module.h>
133#include <linux/kernel.h> 133#include <linux/kernel.h>
134#include <linux/sched.h>
135#include <linux/string.h> 134#include <linux/string.h>
136#include <linux/signal.h> 135#include <linux/signal.h>
137#include <linux/errno.h> 136#include <linux/errno.h>
diff --git a/drivers/scsi/arm/arxescsi.c b/drivers/scsi/arm/arxescsi.c
index 4385e9e3ded6..7e132c5bacf8 100644
--- a/drivers/scsi/arm/arxescsi.c
+++ b/drivers/scsi/arm/arxescsi.c
@@ -23,7 +23,6 @@
23#include <linux/kernel.h> 23#include <linux/kernel.h>
24#include <linux/string.h> 24#include <linux/string.h>
25#include <linux/ioport.h> 25#include <linux/ioport.h>
26#include <linux/sched.h>
27#include <linux/proc_fs.h> 26#include <linux/proc_fs.h>
28#include <linux/unistd.h> 27#include <linux/unistd.h>
29#include <linux/stat.h> 28#include <linux/stat.h>
diff --git a/drivers/scsi/arm/cumana_1.c b/drivers/scsi/arm/cumana_1.c
index 3bdfc36481ae..cf9a21cea6d9 100644
--- a/drivers/scsi/arm/cumana_1.c
+++ b/drivers/scsi/arm/cumana_1.c
@@ -5,7 +5,6 @@
5 */ 5 */
6#include <linux/module.h> 6#include <linux/module.h>
7#include <linux/signal.h> 7#include <linux/signal.h>
8#include <linux/sched.h>
9#include <linux/ioport.h> 8#include <linux/ioport.h>
10#include <linux/delay.h> 9#include <linux/delay.h>
11#include <linux/blkdev.h> 10#include <linux/blkdev.h>
diff --git a/drivers/scsi/arm/cumana_2.c b/drivers/scsi/arm/cumana_2.c
index 19edd9c853d9..d2d51dc51ab8 100644
--- a/drivers/scsi/arm/cumana_2.c
+++ b/drivers/scsi/arm/cumana_2.c
@@ -21,7 +21,6 @@
21#include <linux/kernel.h> 21#include <linux/kernel.h>
22#include <linux/string.h> 22#include <linux/string.h>
23#include <linux/ioport.h> 23#include <linux/ioport.h>
24#include <linux/sched.h>
25#include <linux/proc_fs.h> 24#include <linux/proc_fs.h>
26#include <linux/delay.h> 25#include <linux/delay.h>
27#include <linux/interrupt.h> 26#include <linux/interrupt.h>
diff --git a/drivers/scsi/arm/ecoscsi.c b/drivers/scsi/arm/ecoscsi.c
index 6adcccbf444b..378e7af0c5d6 100644
--- a/drivers/scsi/arm/ecoscsi.c
+++ b/drivers/scsi/arm/ecoscsi.c
@@ -23,7 +23,6 @@
23 23
24#include <linux/module.h> 24#include <linux/module.h>
25#include <linux/signal.h> 25#include <linux/signal.h>
26#include <linux/sched.h>
27#include <linux/ioport.h> 26#include <linux/ioport.h>
28#include <linux/delay.h> 27#include <linux/delay.h>
29#include <linux/init.h> 28#include <linux/init.h>
diff --git a/drivers/scsi/arm/eesox.c b/drivers/scsi/arm/eesox.c
index 3f876fb75469..4677152142d9 100644
--- a/drivers/scsi/arm/eesox.c
+++ b/drivers/scsi/arm/eesox.c
@@ -27,7 +27,6 @@
27#include <linux/kernel.h> 27#include <linux/kernel.h>
28#include <linux/string.h> 28#include <linux/string.h>
29#include <linux/ioport.h> 29#include <linux/ioport.h>
30#include <linux/sched.h>
31#include <linux/proc_fs.h> 30#include <linux/proc_fs.h>
32#include <linux/delay.h> 31#include <linux/delay.h>
33#include <linux/interrupt.h> 32#include <linux/interrupt.h>
diff --git a/drivers/scsi/arm/fas216.c b/drivers/scsi/arm/fas216.c
index e05f0c2fc912..2969cc0ff259 100644
--- a/drivers/scsi/arm/fas216.c
+++ b/drivers/scsi/arm/fas216.c
@@ -39,7 +39,6 @@
39#include <linux/kernel.h> 39#include <linux/kernel.h>
40#include <linux/string.h> 40#include <linux/string.h>
41#include <linux/ioport.h> 41#include <linux/ioport.h>
42#include <linux/sched.h>
43#include <linux/proc_fs.h> 42#include <linux/proc_fs.h>
44#include <linux/delay.h> 43#include <linux/delay.h>
45#include <linux/bitops.h> 44#include <linux/bitops.h>
diff --git a/drivers/scsi/arm/oak.c b/drivers/scsi/arm/oak.c
index d806b024c3bd..c21b8392c928 100644
--- a/drivers/scsi/arm/oak.c
+++ b/drivers/scsi/arm/oak.c
@@ -6,7 +6,6 @@
6 6
7#include <linux/module.h> 7#include <linux/module.h>
8#include <linux/signal.h> 8#include <linux/signal.h>
9#include <linux/sched.h>
10#include <linux/ioport.h> 9#include <linux/ioport.h>
11#include <linux/delay.h> 10#include <linux/delay.h>
12#include <linux/blkdev.h> 11#include <linux/blkdev.h>
diff --git a/drivers/scsi/arm/powertec.c b/drivers/scsi/arm/powertec.c
index ce159c15bc86..f9cd20bfb958 100644
--- a/drivers/scsi/arm/powertec.c
+++ b/drivers/scsi/arm/powertec.c
@@ -12,7 +12,6 @@
12#include <linux/kernel.h> 12#include <linux/kernel.h>
13#include <linux/string.h> 13#include <linux/string.h>
14#include <linux/ioport.h> 14#include <linux/ioport.h>
15#include <linux/sched.h>
16#include <linux/proc_fs.h> 15#include <linux/proc_fs.h>
17#include <linux/delay.h> 16#include <linux/delay.h>
18#include <linux/interrupt.h> 17#include <linux/interrupt.h>
diff --git a/drivers/scsi/atari_scsi.c b/drivers/scsi/atari_scsi.c
index dfb1bcfae82e..642de7b2b7a2 100644
--- a/drivers/scsi/atari_scsi.c
+++ b/drivers/scsi/atari_scsi.c
@@ -86,7 +86,6 @@
86#include <linux/delay.h> 86#include <linux/delay.h>
87#include <linux/mm.h> 87#include <linux/mm.h>
88#include <linux/blkdev.h> 88#include <linux/blkdev.h>
89#include <linux/sched.h>
90#include <linux/interrupt.h> 89#include <linux/interrupt.h>
91#include <linux/init.h> 90#include <linux/init.h>
92#include <linux/nvram.h> 91#include <linux/nvram.h>
diff --git a/drivers/scsi/bvme6000.c b/drivers/scsi/bvme6000.c
index 2958b8c2bfb7..599b400a3c43 100644
--- a/drivers/scsi/bvme6000.c
+++ b/drivers/scsi/bvme6000.c
@@ -6,7 +6,6 @@
6#include <linux/types.h> 6#include <linux/types.h>
7#include <linux/mm.h> 7#include <linux/mm.h>
8#include <linux/blkdev.h> 8#include <linux/blkdev.h>
9#include <linux/sched.h>
10#include <linux/zorro.h> 9#include <linux/zorro.h>
11 10
12#include <asm/setup.h> 11#include <asm/setup.h>
diff --git a/drivers/scsi/ch.c b/drivers/scsi/ch.c
index d02759f13469..2a2cc6cf1182 100644
--- a/drivers/scsi/ch.c
+++ b/drivers/scsi/ch.c
@@ -11,7 +11,6 @@
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/fs.h> 12#include <linux/fs.h>
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/sched.h>
15#include <linux/mm.h> 14#include <linux/mm.h>
16#include <linux/major.h> 15#include <linux/major.h>
17#include <linux/string.h> 16#include <linux/string.h>
diff --git a/drivers/scsi/dtc.c b/drivers/scsi/dtc.c
index 54756722dd5f..9d52e45c7d36 100644
--- a/drivers/scsi/dtc.c
+++ b/drivers/scsi/dtc.c
@@ -75,7 +75,6 @@
75#include <asm/system.h> 75#include <asm/system.h>
76#include <linux/module.h> 76#include <linux/module.h>
77#include <linux/signal.h> 77#include <linux/signal.h>
78#include <linux/sched.h>
79#include <linux/blkdev.h> 78#include <linux/blkdev.h>
80#include <linux/delay.h> 79#include <linux/delay.h>
81#include <linux/stat.h> 80#include <linux/stat.h>
diff --git a/drivers/scsi/eata_pio.c b/drivers/scsi/eata_pio.c
index 2dbb66d2f0a7..f33ad01064a9 100644
--- a/drivers/scsi/eata_pio.c
+++ b/drivers/scsi/eata_pio.c
@@ -48,7 +48,6 @@
48 48
49#include <linux/module.h> 49#include <linux/module.h>
50#include <linux/kernel.h> 50#include <linux/kernel.h>
51#include <linux/sched.h>
52#include <linux/string.h> 51#include <linux/string.h>
53#include <linux/ioport.h> 52#include <linux/ioport.h>
54#include <linux/slab.h> 53#include <linux/slab.h>
diff --git a/drivers/scsi/g_NCR5380.c b/drivers/scsi/g_NCR5380.c
index cdd893bb4e28..880f70d24e65 100644
--- a/drivers/scsi/g_NCR5380.c
+++ b/drivers/scsi/g_NCR5380.c
@@ -103,7 +103,6 @@
103#include <asm/system.h> 103#include <asm/system.h>
104#include <asm/io.h> 104#include <asm/io.h>
105#include <linux/signal.h> 105#include <linux/signal.h>
106#include <linux/sched.h>
107#include <linux/blkdev.h> 106#include <linux/blkdev.h>
108#include "scsi.h" 107#include "scsi.h"
109#include <scsi/scsi_host.h> 108#include <scsi/scsi_host.h>
diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c
index a1992928e671..8c81cec85298 100644
--- a/drivers/scsi/gdth.c
+++ b/drivers/scsi/gdth.c
@@ -387,7 +387,6 @@
387#include <linux/ctype.h> 387#include <linux/ctype.h>
388#include <linux/ioport.h> 388#include <linux/ioport.h>
389#include <linux/delay.h> 389#include <linux/delay.h>
390#include <linux/sched.h>
391#include <linux/interrupt.h> 390#include <linux/interrupt.h>
392#include <linux/in.h> 391#include <linux/in.h>
393#include <linux/proc_fs.h> 392#include <linux/proc_fs.h>
diff --git a/drivers/scsi/gvp11.c b/drivers/scsi/gvp11.c
index 2f6c1137a6e5..37741e9b5c3b 100644
--- a/drivers/scsi/gvp11.c
+++ b/drivers/scsi/gvp11.c
@@ -1,7 +1,6 @@
1#include <linux/types.h> 1#include <linux/types.h>
2#include <linux/mm.h> 2#include <linux/mm.h>
3#include <linux/blkdev.h> 3#include <linux/blkdev.h>
4#include <linux/sched.h>
5#include <linux/init.h> 4#include <linux/init.h>
6#include <linux/interrupt.h> 5#include <linux/interrupt.h>
7 6
diff --git a/drivers/scsi/ibmvscsi/ibmvstgt.c b/drivers/scsi/ibmvscsi/ibmvstgt.c
index e28260f05d6b..4368ca0e8270 100644
--- a/drivers/scsi/ibmvscsi/ibmvstgt.c
+++ b/drivers/scsi/ibmvscsi/ibmvstgt.c
@@ -580,7 +580,7 @@ static int crq_queue_create(struct crq_queue *queue, struct srp_target *target)
580 } 580 }
581 581
582 err = request_irq(vport->dma_dev->irq, &ibmvstgt_interrupt, 582 err = request_irq(vport->dma_dev->irq, &ibmvstgt_interrupt,
583 SA_INTERRUPT, "ibmvstgt", target); 583 IRQF_DISABLED, "ibmvstgt", target);
584 if (err) 584 if (err)
585 goto req_irq_failed; 585 goto req_irq_failed;
586 586
diff --git a/drivers/scsi/initio.c b/drivers/scsi/initio.c
index d561663fb4e4..7e7635ca78f1 100644
--- a/drivers/scsi/initio.c
+++ b/drivers/scsi/initio.c
@@ -123,7 +123,6 @@
123#include <linux/string.h> 123#include <linux/string.h>
124#include <linux/interrupt.h> 124#include <linux/interrupt.h>
125#include <linux/ioport.h> 125#include <linux/ioport.h>
126#include <linux/sched.h>
127#include <linux/slab.h> 126#include <linux/slab.h>
128#include <linux/jiffies.h> 127#include <linux/jiffies.h>
129#include <linux/dma-mapping.h> 128#include <linux/dma-mapping.h>
diff --git a/drivers/scsi/lasi700.c b/drivers/scsi/lasi700.c
index 2aae1b081fcf..5c32a69e41ba 100644
--- a/drivers/scsi/lasi700.c
+++ b/drivers/scsi/lasi700.c
@@ -38,7 +38,6 @@
38#include <linux/stat.h> 38#include <linux/stat.h>
39#include <linux/mm.h> 39#include <linux/mm.h>
40#include <linux/blkdev.h> 40#include <linux/blkdev.h>
41#include <linux/sched.h>
42#include <linux/ioport.h> 41#include <linux/ioport.h>
43#include <linux/dma-mapping.h> 42#include <linux/dma-mapping.h>
44 43
diff --git a/drivers/scsi/mac_scsi.c b/drivers/scsi/mac_scsi.c
index a942a21dd87e..cdbcaa5ad6cf 100644
--- a/drivers/scsi/mac_scsi.c
+++ b/drivers/scsi/mac_scsi.c
@@ -36,7 +36,6 @@
36 36
37#include <linux/module.h> 37#include <linux/module.h>
38#include <linux/signal.h> 38#include <linux/signal.h>
39#include <linux/sched.h>
40#include <linux/ioport.h> 39#include <linux/ioport.h>
41#include <linux/init.h> 40#include <linux/init.h>
42#include <linux/blkdev.h> 41#include <linux/blkdev.h>
diff --git a/drivers/scsi/mvme147.c b/drivers/scsi/mvme147.c
index 1ddd7a11a958..be41aadccae5 100644
--- a/drivers/scsi/mvme147.c
+++ b/drivers/scsi/mvme147.c
@@ -1,7 +1,6 @@
1#include <linux/types.h> 1#include <linux/types.h>
2#include <linux/mm.h> 2#include <linux/mm.h>
3#include <linux/blkdev.h> 3#include <linux/blkdev.h>
4#include <linux/sched.h>
5#include <linux/interrupt.h> 4#include <linux/interrupt.h>
6 5
7#include <asm/page.h> 6#include <asm/page.h>
diff --git a/drivers/scsi/mvme16x.c b/drivers/scsi/mvme16x.c
index 890e9e232dab..575fe6f7e0ec 100644
--- a/drivers/scsi/mvme16x.c
+++ b/drivers/scsi/mvme16x.c
@@ -6,7 +6,6 @@
6#include <linux/types.h> 6#include <linux/types.h>
7#include <linux/mm.h> 7#include <linux/mm.h>
8#include <linux/blkdev.h> 8#include <linux/blkdev.h>
9#include <linux/sched.h>
10 9
11#include <asm/page.h> 10#include <asm/page.h>
12#include <asm/pgtable.h> 11#include <asm/pgtable.h>
diff --git a/drivers/scsi/nsp32.c b/drivers/scsi/nsp32.c
index 7c13f6f4a4c6..f6f561d26bf0 100644
--- a/drivers/scsi/nsp32.c
+++ b/drivers/scsi/nsp32.c
@@ -27,7 +27,6 @@
27#include <linux/module.h> 27#include <linux/module.h>
28#include <linux/init.h> 28#include <linux/init.h>
29#include <linux/kernel.h> 29#include <linux/kernel.h>
30#include <linux/sched.h>
31#include <linux/slab.h> 30#include <linux/slab.h>
32#include <linux/string.h> 31#include <linux/string.h>
33#include <linux/timer.h> 32#include <linux/timer.h>
diff --git a/drivers/scsi/pas16.c b/drivers/scsi/pas16.c
index 1434209a8ac5..ee5965659971 100644
--- a/drivers/scsi/pas16.c
+++ b/drivers/scsi/pas16.c
@@ -116,7 +116,6 @@
116#include <asm/system.h> 116#include <asm/system.h>
117#include <linux/signal.h> 117#include <linux/signal.h>
118#include <linux/proc_fs.h> 118#include <linux/proc_fs.h>
119#include <linux/sched.h>
120#include <asm/io.h> 119#include <asm/io.h>
121#include <asm/dma.h> 120#include <asm/dma.h>
122#include <linux/blkdev.h> 121#include <linux/blkdev.h>
diff --git a/drivers/scsi/pcmcia/aha152x_stub.c b/drivers/scsi/pcmcia/aha152x_stub.c
index aad362ba02e0..370802d24acd 100644
--- a/drivers/scsi/pcmcia/aha152x_stub.c
+++ b/drivers/scsi/pcmcia/aha152x_stub.c
@@ -37,7 +37,6 @@
37#include <linux/module.h> 37#include <linux/module.h>
38#include <linux/init.h> 38#include <linux/init.h>
39#include <linux/kernel.h> 39#include <linux/kernel.h>
40#include <linux/sched.h>
41#include <linux/slab.h> 40#include <linux/slab.h>
42#include <linux/string.h> 41#include <linux/string.h>
43#include <linux/ioport.h> 42#include <linux/ioport.h>
diff --git a/drivers/scsi/pcmcia/fdomain_stub.c b/drivers/scsi/pcmcia/fdomain_stub.c
index a1c5f265069f..4b82b2021981 100644
--- a/drivers/scsi/pcmcia/fdomain_stub.c
+++ b/drivers/scsi/pcmcia/fdomain_stub.c
@@ -34,7 +34,6 @@
34#include <linux/module.h> 34#include <linux/module.h>
35#include <linux/init.h> 35#include <linux/init.h>
36#include <linux/kernel.h> 36#include <linux/kernel.h>
37#include <linux/sched.h>
38#include <linux/slab.h> 37#include <linux/slab.h>
39#include <linux/string.h> 38#include <linux/string.h>
40#include <linux/ioport.h> 39#include <linux/ioport.h>
diff --git a/drivers/scsi/pcmcia/nsp_cs.c b/drivers/scsi/pcmcia/nsp_cs.c
index e16fe361436e..c6f8c6e65e05 100644
--- a/drivers/scsi/pcmcia/nsp_cs.c
+++ b/drivers/scsi/pcmcia/nsp_cs.c
@@ -31,7 +31,6 @@
31#include <linux/module.h> 31#include <linux/module.h>
32#include <linux/kernel.h> 32#include <linux/kernel.h>
33#include <linux/init.h> 33#include <linux/init.h>
34#include <linux/sched.h>
35#include <linux/slab.h> 34#include <linux/slab.h>
36#include <linux/string.h> 35#include <linux/string.h>
37#include <linux/timer.h> 36#include <linux/timer.h>
diff --git a/drivers/scsi/pcmcia/qlogic_stub.c b/drivers/scsi/pcmcia/qlogic_stub.c
index 9d431fe7f47f..697cfb76c3a4 100644
--- a/drivers/scsi/pcmcia/qlogic_stub.c
+++ b/drivers/scsi/pcmcia/qlogic_stub.c
@@ -34,7 +34,6 @@
34#include <linux/module.h> 34#include <linux/module.h>
35#include <linux/init.h> 35#include <linux/init.h>
36#include <linux/kernel.h> 36#include <linux/kernel.h>
37#include <linux/sched.h>
38#include <linux/slab.h> 37#include <linux/slab.h>
39#include <linux/string.h> 38#include <linux/string.h>
40#include <linux/ioport.h> 39#include <linux/ioport.h>
diff --git a/drivers/scsi/pcmcia/sym53c500_cs.c b/drivers/scsi/pcmcia/sym53c500_cs.c
index 5b458d2478f7..ffe75c431b25 100644
--- a/drivers/scsi/pcmcia/sym53c500_cs.c
+++ b/drivers/scsi/pcmcia/sym53c500_cs.c
@@ -54,7 +54,6 @@
54#include <linux/init.h> 54#include <linux/init.h>
55#include <linux/interrupt.h> 55#include <linux/interrupt.h>
56#include <linux/kernel.h> 56#include <linux/kernel.h>
57#include <linux/sched.h>
58#include <linux/slab.h> 57#include <linux/slab.h>
59#include <linux/string.h> 58#include <linux/string.h>
60#include <linux/ioport.h> 59#include <linux/ioport.h>
diff --git a/drivers/scsi/qla1280.c b/drivers/scsi/qla1280.c
index 1548d42a3b43..6777e8a69153 100644
--- a/drivers/scsi/qla1280.c
+++ b/drivers/scsi/qla1280.c
@@ -341,7 +341,6 @@
341#include <linux/ioport.h> 341#include <linux/ioport.h>
342#include <linux/delay.h> 342#include <linux/delay.h>
343#include <linux/timer.h> 343#include <linux/timer.h>
344#include <linux/sched.h>
345#include <linux/pci.h> 344#include <linux/pci.h>
346#include <linux/proc_fs.h> 345#include <linux/proc_fs.h>
347#include <linux/stat.h> 346#include <linux/stat.h>
diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
index 81fb7bd44f01..0bfddf893ed0 100644
--- a/drivers/scsi/qla4xxx/ql4_os.c
+++ b/drivers/scsi/qla4xxx/ql4_os.c
@@ -1270,7 +1270,7 @@ static int __devinit qla4xxx_probe_adapter(struct pci_dev *pdev,
1270 INIT_WORK(&ha->dpc_work, qla4xxx_do_dpc); 1270 INIT_WORK(&ha->dpc_work, qla4xxx_do_dpc);
1271 1271
1272 ret = request_irq(pdev->irq, qla4xxx_intr_handler, 1272 ret = request_irq(pdev->irq, qla4xxx_intr_handler,
1273 SA_INTERRUPT|SA_SHIRQ, "qla4xxx", ha); 1273 IRQF_DISABLED | IRQF_SHARED, "qla4xxx", ha);
1274 if (ret) { 1274 if (ret) {
1275 dev_warn(&ha->pdev->dev, "Failed to reserve interrupt %d" 1275 dev_warn(&ha->pdev->dev, "Failed to reserve interrupt %d"
1276 " already in use.\n", pdev->irq); 1276 " already in use.\n", pdev->irq);
diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
index f33e2eb9f1b9..1c89ee3e69ba 100644
--- a/drivers/scsi/scsi.c
+++ b/drivers/scsi/scsi.c
@@ -40,7 +40,6 @@
40#include <linux/module.h> 40#include <linux/module.h>
41#include <linux/moduleparam.h> 41#include <linux/moduleparam.h>
42#include <linux/kernel.h> 42#include <linux/kernel.h>
43#include <linux/sched.h>
44#include <linux/timer.h> 43#include <linux/timer.h>
45#include <linux/string.h> 44#include <linux/string.h>
46#include <linux/slab.h> 45#include <linux/slab.h>
diff --git a/drivers/scsi/scsi_debug.c b/drivers/scsi/scsi_debug.c
index 5adbbeedec38..3e2930b7ee23 100644
--- a/drivers/scsi/scsi_debug.c
+++ b/drivers/scsi/scsi_debug.c
@@ -28,7 +28,6 @@
28#include <linux/module.h> 28#include <linux/module.h>
29 29
30#include <linux/kernel.h> 30#include <linux/kernel.h>
31#include <linux/sched.h>
32#include <linux/errno.h> 31#include <linux/errno.h>
33#include <linux/timer.h> 32#include <linux/timer.h>
34#include <linux/types.h> 33#include <linux/types.h>
diff --git a/drivers/scsi/scsi_sysctl.c b/drivers/scsi/scsi_sysctl.c
index 04d06c25132b..6cfaaa2d0c81 100644
--- a/drivers/scsi/scsi_sysctl.c
+++ b/drivers/scsi/scsi_sysctl.c
@@ -41,7 +41,7 @@ static struct ctl_table_header *scsi_table_header;
41 41
42int __init scsi_init_sysctl(void) 42int __init scsi_init_sysctl(void)
43{ 43{
44 scsi_table_header = register_sysctl_table(scsi_root_table, 1); 44 scsi_table_header = register_sysctl_table(scsi_root_table);
45 if (!scsi_table_header) 45 if (!scsi_table_header)
46 return -ENOMEM; 46 return -ENOMEM;
47 return 0; 47 return 0;
diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c
index 3571ce8934e7..0d3c10f2134c 100644
--- a/drivers/scsi/scsi_transport_fc.c
+++ b/drivers/scsi/scsi_transport_fc.c
@@ -26,7 +26,6 @@
26 */ 26 */
27#include <linux/module.h> 27#include <linux/module.h>
28#include <linux/init.h> 28#include <linux/init.h>
29#include <linux/sched.h> /* workqueue stuff, HZ */
30#include <scsi/scsi_device.h> 29#include <scsi/scsi_device.h>
31#include <scsi/scsi_host.h> 30#include <scsi/scsi_host.h>
32#include <scsi/scsi_transport.h> 31#include <scsi/scsi_transport.h>
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index b781a90d6699..3f048bd6326d 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -35,7 +35,6 @@
35#include <linux/module.h> 35#include <linux/module.h>
36#include <linux/fs.h> 36#include <linux/fs.h>
37#include <linux/kernel.h> 37#include <linux/kernel.h>
38#include <linux/sched.h>
39#include <linux/mm.h> 38#include <linux/mm.h>
40#include <linux/bio.h> 39#include <linux/bio.h>
41#include <linux/genhd.h> 40#include <linux/genhd.h>
diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c
index 89e9b36b1788..1857d68e7195 100644
--- a/drivers/scsi/sr.c
+++ b/drivers/scsi/sr.c
@@ -35,7 +35,6 @@
35#include <linux/module.h> 35#include <linux/module.h>
36#include <linux/fs.h> 36#include <linux/fs.h>
37#include <linux/kernel.h> 37#include <linux/kernel.h>
38#include <linux/sched.h>
39#include <linux/mm.h> 38#include <linux/mm.h>
40#include <linux/bio.h> 39#include <linux/bio.h>
41#include <linux/string.h> 40#include <linux/string.h>
diff --git a/drivers/scsi/sr_ioctl.c b/drivers/scsi/sr_ioctl.c
index 0578ba42718b..e1589f91706a 100644
--- a/drivers/scsi/sr_ioctl.c
+++ b/drivers/scsi/sr_ioctl.c
@@ -1,5 +1,4 @@
1#include <linux/kernel.h> 1#include <linux/kernel.h>
2#include <linux/sched.h>
3#include <linux/mm.h> 2#include <linux/mm.h>
4#include <linux/fs.h> 3#include <linux/fs.h>
5#include <linux/errno.h> 4#include <linux/errno.h>
diff --git a/drivers/scsi/stex.c b/drivers/scsi/stex.c
index ba6bcdaf2a6a..69be1324b114 100644
--- a/drivers/scsi/stex.c
+++ b/drivers/scsi/stex.c
@@ -17,7 +17,6 @@
17#include <linux/errno.h> 17#include <linux/errno.h>
18#include <linux/kernel.h> 18#include <linux/kernel.h>
19#include <linux/delay.h> 19#include <linux/delay.h>
20#include <linux/sched.h>
21#include <linux/time.h> 20#include <linux/time.h>
22#include <linux/pci.h> 21#include <linux/pci.h>
23#include <linux/blkdev.h> 22#include <linux/blkdev.h>
diff --git a/drivers/scsi/sun3_scsi.c b/drivers/scsi/sun3_scsi.c
index 69ee3e4a820e..5e46d842c6f9 100644
--- a/drivers/scsi/sun3_scsi.c
+++ b/drivers/scsi/sun3_scsi.c
@@ -58,7 +58,6 @@
58 58
59#include <linux/module.h> 59#include <linux/module.h>
60#include <linux/signal.h> 60#include <linux/signal.h>
61#include <linux/sched.h>
62#include <linux/ioport.h> 61#include <linux/ioport.h>
63#include <linux/init.h> 62#include <linux/init.h>
64#include <linux/blkdev.h> 63#include <linux/blkdev.h>
diff --git a/drivers/scsi/sun3_scsi_vme.c b/drivers/scsi/sun3_scsi_vme.c
index bb0c9fd99e68..7cb4a31453e6 100644
--- a/drivers/scsi/sun3_scsi_vme.c
+++ b/drivers/scsi/sun3_scsi_vme.c
@@ -20,7 +20,6 @@
20 20
21#include <linux/module.h> 21#include <linux/module.h>
22#include <linux/signal.h> 22#include <linux/signal.h>
23#include <linux/sched.h>
24#include <linux/ioport.h> 23#include <linux/ioport.h>
25#include <linux/init.h> 24#include <linux/init.h>
26#include <linux/blkdev.h> 25#include <linux/blkdev.h>
diff --git a/drivers/scsi/sym53c416.c b/drivers/scsi/sym53c416.c
index 32c883f1efa1..2ca950582bc3 100644
--- a/drivers/scsi/sym53c416.c
+++ b/drivers/scsi/sym53c416.c
@@ -32,7 +32,6 @@
32#include <linux/init.h> 32#include <linux/init.h>
33#include <linux/string.h> 33#include <linux/string.h>
34#include <linux/ioport.h> 34#include <linux/ioport.h>
35#include <linux/sched.h>
36#include <linux/interrupt.h> 35#include <linux/interrupt.h>
37#include <linux/delay.h> 36#include <linux/delay.h>
38#include <linux/proc_fs.h> 37#include <linux/proc_fs.h>
diff --git a/drivers/scsi/t128.c b/drivers/scsi/t128.c
index 0b7a70f61e0d..248d60b8d899 100644
--- a/drivers/scsi/t128.c
+++ b/drivers/scsi/t128.c
@@ -108,7 +108,6 @@
108 108
109#include <asm/system.h> 109#include <asm/system.h>
110#include <linux/signal.h> 110#include <linux/signal.h>
111#include <linux/sched.h>
112#include <linux/io.h> 111#include <linux/io.h>
113#include <linux/blkdev.h> 112#include <linux/blkdev.h>
114#include <linux/interrupt.h> 113#include <linux/interrupt.h>
diff --git a/drivers/scsi/tmscsim.c b/drivers/scsi/tmscsim.c
index fa5382e354be..a583e89238fc 100644
--- a/drivers/scsi/tmscsim.c
+++ b/drivers/scsi/tmscsim.c
@@ -221,7 +221,6 @@
221#include <linux/module.h> 221#include <linux/module.h>
222#include <linux/delay.h> 222#include <linux/delay.h>
223#include <linux/signal.h> 223#include <linux/signal.h>
224#include <linux/sched.h>
225#include <linux/errno.h> 224#include <linux/errno.h>
226#include <linux/kernel.h> 225#include <linux/kernel.h>
227#include <linux/ioport.h> 226#include <linux/ioport.h>
diff --git a/drivers/scsi/wd33c93.c b/drivers/scsi/wd33c93.c
index 2083454db511..835751600e93 100644
--- a/drivers/scsi/wd33c93.c
+++ b/drivers/scsi/wd33c93.c
@@ -73,7 +73,6 @@
73 73
74#include <linux/module.h> 74#include <linux/module.h>
75 75
76#include <linux/sched.h>
77#include <linux/string.h> 76#include <linux/string.h>
78#include <linux/delay.h> 77#include <linux/delay.h>
79#include <linux/init.h> 78#include <linux/init.h>
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
index 2964ca9df5a0..98ec86185328 100644
--- a/drivers/serial/8250.c
+++ b/drivers/serial/8250.c
@@ -364,6 +364,23 @@ serial_out(struct uart_8250_port *up, int offset, int value)
364 } 364 }
365} 365}
366 366
367static void
368serial_out_sync(struct uart_8250_port *up, int offset, int value)
369{
370 switch (up->port.iotype) {
371 case UPIO_MEM:
372 case UPIO_MEM32:
373#ifdef CONFIG_SERIAL_8250_AU1X00
374 case UPIO_AU:
375#endif
376 serial_out(up, offset, value);
377 serial_in(up, UART_LCR); /* safe, no side-effects */
378 break;
379 default:
380 serial_out(up, offset, value);
381 }
382}
383
367/* 384/*
368 * We used to support using pause I/O for certain machines. We 385 * We used to support using pause I/O for certain machines. We
369 * haven't supported this for a while, but just in case it's badly 386 * haven't supported this for a while, but just in case it's badly
@@ -1045,7 +1062,7 @@ static void autoconfig(struct uart_8250_port *up, unsigned int probeflags)
1045#endif 1062#endif
1046 serial_outp(up, UART_MCR, save_mcr); 1063 serial_outp(up, UART_MCR, save_mcr);
1047 serial8250_clear_fifos(up); 1064 serial8250_clear_fifos(up);
1048 (void)serial_in(up, UART_RX); 1065 serial_in(up, UART_RX);
1049 if (up->capabilities & UART_CAP_UUE) 1066 if (up->capabilities & UART_CAP_UUE)
1050 serial_outp(up, UART_IER, UART_IER_UUE); 1067 serial_outp(up, UART_IER, UART_IER_UUE);
1051 else 1068 else
@@ -1451,6 +1468,12 @@ static void serial_unlink_irq_chain(struct uart_8250_port *up)
1451 serial_do_unlink(i, up); 1468 serial_do_unlink(i, up);
1452} 1469}
1453 1470
1471/* Base timer interval for polling */
1472static inline int poll_timeout(int timeout)
1473{
1474 return timeout > 6 ? (timeout / 2 - 2) : 1;
1475}
1476
1454/* 1477/*
1455 * This function is used to handle ports that do not have an 1478 * This function is used to handle ports that do not have an
1456 * interrupt. This doesn't work very well for 16450's, but gives 1479 * interrupt. This doesn't work very well for 16450's, but gives
@@ -1460,16 +1483,51 @@ static void serial_unlink_irq_chain(struct uart_8250_port *up)
1460static void serial8250_timeout(unsigned long data) 1483static void serial8250_timeout(unsigned long data)
1461{ 1484{
1462 struct uart_8250_port *up = (struct uart_8250_port *)data; 1485 struct uart_8250_port *up = (struct uart_8250_port *)data;
1463 unsigned int timeout;
1464 unsigned int iir; 1486 unsigned int iir;
1465 1487
1466 iir = serial_in(up, UART_IIR); 1488 iir = serial_in(up, UART_IIR);
1467 if (!(iir & UART_IIR_NO_INT)) 1489 if (!(iir & UART_IIR_NO_INT))
1468 serial8250_handle_port(up); 1490 serial8250_handle_port(up);
1491 mod_timer(&up->timer, jiffies + poll_timeout(up->port.timeout));
1492}
1493
1494static void serial8250_backup_timeout(unsigned long data)
1495{
1496 struct uart_8250_port *up = (struct uart_8250_port *)data;
1497 unsigned int iir, ier = 0;
1498
1499 /*
1500 * Must disable interrupts or else we risk racing with the interrupt
1501 * based handler.
1502 */
1503 if (is_real_interrupt(up->port.irq)) {
1504 ier = serial_in(up, UART_IER);
1505 serial_out(up, UART_IER, 0);
1506 }
1469 1507
1470 timeout = up->port.timeout; 1508 iir = serial_in(up, UART_IIR);
1471 timeout = timeout > 6 ? (timeout / 2 - 2) : 1; 1509
1472 mod_timer(&up->timer, jiffies + timeout); 1510 /*
1511 * This should be a safe test for anyone who doesn't trust the
1512 * IIR bits on their UART, but it's specifically designed for
1513 * the "Diva" UART used on the management processor on many HP
1514 * ia64 and parisc boxes.
1515 */
1516 if ((iir & UART_IIR_NO_INT) && (up->ier & UART_IER_THRI) &&
1517 (!uart_circ_empty(&up->port.info->xmit) || up->port.x_char) &&
1518 (serial_in(up, UART_LSR) & UART_LSR_THRE)) {
1519 iir &= ~(UART_IIR_ID | UART_IIR_NO_INT);
1520 iir |= UART_IIR_THRI;
1521 }
1522
1523 if (!(iir & UART_IIR_NO_INT))
1524 serial8250_handle_port(up);
1525
1526 if (is_real_interrupt(up->port.irq))
1527 serial_out(up, UART_IER, ier);
1528
1529 /* Standard timer interval plus 0.2s to keep the port running */
1530 mod_timer(&up->timer, jiffies + poll_timeout(up->port.timeout) + HZ/5);
1473} 1531}
1474 1532
1475static unsigned int serial8250_tx_empty(struct uart_port *port) 1533static unsigned int serial8250_tx_empty(struct uart_port *port)
@@ -1540,6 +1598,37 @@ static void serial8250_break_ctl(struct uart_port *port, int break_state)
1540 spin_unlock_irqrestore(&up->port.lock, flags); 1598 spin_unlock_irqrestore(&up->port.lock, flags);
1541} 1599}
1542 1600
1601#define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE)
1602
1603/*
1604 * Wait for transmitter & holding register to empty
1605 */
1606static inline void wait_for_xmitr(struct uart_8250_port *up, int bits)
1607{
1608 unsigned int status, tmout = 10000;
1609
1610 /* Wait up to 10ms for the character(s) to be sent. */
1611 do {
1612 status = serial_in(up, UART_LSR);
1613
1614 if (status & UART_LSR_BI)
1615 up->lsr_break_flag = UART_LSR_BI;
1616
1617 if (--tmout == 0)
1618 break;
1619 udelay(1);
1620 } while ((status & bits) != bits);
1621
1622 /* Wait up to 1s for flow control if necessary */
1623 if (up->port.flags & UPF_CONS_FLOW) {
1624 tmout = 1000000;
1625 while (!(serial_in(up, UART_MSR) & UART_MSR_CTS) && --tmout) {
1626 udelay(1);
1627 touch_nmi_watchdog();
1628 }
1629 }
1630}
1631
1543static int serial8250_startup(struct uart_port *port) 1632static int serial8250_startup(struct uart_port *port)
1544{ 1633{
1545 struct uart_8250_port *up = (struct uart_8250_port *)port; 1634 struct uart_8250_port *up = (struct uart_8250_port *)port;
@@ -1613,18 +1702,50 @@ static int serial8250_startup(struct uart_port *port)
1613 serial_outp(up, UART_LCR, 0); 1702 serial_outp(up, UART_LCR, 0);
1614 } 1703 }
1615 1704
1705 if (is_real_interrupt(up->port.irq)) {
1706 /*
1707 * Test for UARTs that do not reassert THRE when the
1708 * transmitter is idle and the interrupt has already
1709 * been cleared. Real 16550s should always reassert
1710 * this interrupt whenever the transmitter is idle and
1711 * the interrupt is enabled. Delays are necessary to
1712 * allow register changes to become visible.
1713 */
1714 spin_lock_irqsave(&up->port.lock, flags);
1715
1716 wait_for_xmitr(up, UART_LSR_THRE);
1717 serial_out_sync(up, UART_IER, UART_IER_THRI);
1718 udelay(1); /* allow THRE to set */
1719 serial_in(up, UART_IIR);
1720 serial_out(up, UART_IER, 0);
1721 serial_out_sync(up, UART_IER, UART_IER_THRI);
1722 udelay(1); /* allow a working UART time to re-assert THRE */
1723 iir = serial_in(up, UART_IIR);
1724 serial_out(up, UART_IER, 0);
1725
1726 spin_unlock_irqrestore(&up->port.lock, flags);
1727
1728 /*
1729 * If the interrupt is not reasserted, setup a timer to
1730 * kick the UART on a regular basis.
1731 */
1732 if (iir & UART_IIR_NO_INT) {
1733 pr_debug("ttyS%d - using backup timer\n", port->line);
1734 up->timer.function = serial8250_backup_timeout;
1735 up->timer.data = (unsigned long)up;
1736 mod_timer(&up->timer, jiffies +
1737 poll_timeout(up->port.timeout) + HZ/5);
1738 }
1739 }
1740
1616 /* 1741 /*
1617 * If the "interrupt" for this port doesn't correspond with any 1742 * If the "interrupt" for this port doesn't correspond with any
1618 * hardware interrupt, we use a timer-based system. The original 1743 * hardware interrupt, we use a timer-based system. The original
1619 * driver used to do this with IRQ0. 1744 * driver used to do this with IRQ0.
1620 */ 1745 */
1621 if (!is_real_interrupt(up->port.irq)) { 1746 if (!is_real_interrupt(up->port.irq)) {
1622 unsigned int timeout = up->port.timeout;
1623
1624 timeout = timeout > 6 ? (timeout / 2 - 2) : 1;
1625
1626 up->timer.data = (unsigned long)up; 1747 up->timer.data = (unsigned long)up;
1627 mod_timer(&up->timer, jiffies + timeout); 1748 mod_timer(&up->timer, jiffies + poll_timeout(up->port.timeout));
1628 } else { 1749 } else {
1629 retval = serial_link_irq_chain(up); 1750 retval = serial_link_irq_chain(up);
1630 if (retval) 1751 if (retval)
@@ -1740,9 +1861,9 @@ static void serial8250_shutdown(struct uart_port *port)
1740 */ 1861 */
1741 (void) serial_in(up, UART_RX); 1862 (void) serial_in(up, UART_RX);
1742 1863
1743 if (!is_real_interrupt(up->port.irq)) 1864 del_timer_sync(&up->timer);
1744 del_timer_sync(&up->timer); 1865 up->timer.function = serial8250_timeout;
1745 else 1866 if (is_real_interrupt(up->port.irq))
1746 serial_unlink_irq_chain(up); 1867 serial_unlink_irq_chain(up);
1747} 1868}
1748 1869
@@ -2212,37 +2333,6 @@ serial8250_register_ports(struct uart_driver *drv, struct device *dev)
2212 2333
2213#ifdef CONFIG_SERIAL_8250_CONSOLE 2334#ifdef CONFIG_SERIAL_8250_CONSOLE
2214 2335
2215#define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE)
2216
2217/*
2218 * Wait for transmitter & holding register to empty
2219 */
2220static inline void wait_for_xmitr(struct uart_8250_port *up, int bits)
2221{
2222 unsigned int status, tmout = 10000;
2223
2224 /* Wait up to 10ms for the character(s) to be sent. */
2225 do {
2226 status = serial_in(up, UART_LSR);
2227
2228 if (status & UART_LSR_BI)
2229 up->lsr_break_flag = UART_LSR_BI;
2230
2231 if (--tmout == 0)
2232 break;
2233 udelay(1);
2234 } while ((status & bits) != bits);
2235
2236 /* Wait up to 1s for flow control if necessary */
2237 if (up->port.flags & UPF_CONS_FLOW) {
2238 tmout = 1000000;
2239 while (!(serial_in(up, UART_MSR) & UART_MSR_CTS) && --tmout) {
2240 udelay(1);
2241 touch_nmi_watchdog();
2242 }
2243 }
2244}
2245
2246static void serial8250_console_putchar(struct uart_port *port, int ch) 2336static void serial8250_console_putchar(struct uart_port *port, int ch)
2247{ 2337{
2248 struct uart_8250_port *up = (struct uart_8250_port *)port; 2338 struct uart_8250_port *up = (struct uart_8250_port *)port;
diff --git a/drivers/serial/8250_acorn.c b/drivers/serial/8250_acorn.c
index ef8cc8a70c60..562ba745a044 100644
--- a/drivers/serial/8250_acorn.c
+++ b/drivers/serial/8250_acorn.c
@@ -47,11 +47,10 @@ serial_card_probe(struct expansion_card *ec, const struct ecard_id *id)
47 unsigned long bus_addr; 47 unsigned long bus_addr;
48 unsigned int i; 48 unsigned int i;
49 49
50 info = kmalloc(sizeof(struct serial_card_info), GFP_KERNEL); 50 info = kzalloc(sizeof(struct serial_card_info), GFP_KERNEL);
51 if (!info) 51 if (!info)
52 return -ENOMEM; 52 return -ENOMEM;
53 53
54 memset(info, 0, sizeof(struct serial_card_info));
55 info->num_ports = type->num_ports; 54 info->num_ports = type->num_ports;
56 55
57 bus_addr = ecard_resource_start(ec, type->type); 56 bus_addr = ecard_resource_start(ec, type->type);
diff --git a/drivers/serial/8250_pci.c b/drivers/serial/8250_pci.c
index a2dac378bda9..6d7d616e9ccd 100644
--- a/drivers/serial/8250_pci.c
+++ b/drivers/serial/8250_pci.c
@@ -16,7 +16,6 @@
16#include <linux/module.h> 16#include <linux/module.h>
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/pci.h> 18#include <linux/pci.h>
19#include <linux/sched.h>
20#include <linux/string.h> 19#include <linux/string.h>
21#include <linux/kernel.h> 20#include <linux/kernel.h>
22#include <linux/slab.h> 21#include <linux/slab.h>
@@ -1628,7 +1627,7 @@ pciserial_init_ports(struct pci_dev *dev, struct pciserial_board *board)
1628 nr_ports = rc; 1627 nr_ports = rc;
1629 } 1628 }
1630 1629
1631 priv = kmalloc(sizeof(struct serial_private) + 1630 priv = kzalloc(sizeof(struct serial_private) +
1632 sizeof(unsigned int) * nr_ports, 1631 sizeof(unsigned int) * nr_ports,
1633 GFP_KERNEL); 1632 GFP_KERNEL);
1634 if (!priv) { 1633 if (!priv) {
@@ -1636,9 +1635,6 @@ pciserial_init_ports(struct pci_dev *dev, struct pciserial_board *board)
1636 goto err_deinit; 1635 goto err_deinit;
1637 } 1636 }
1638 1637
1639 memset(priv, 0, sizeof(struct serial_private) +
1640 sizeof(unsigned int) * nr_ports);
1641
1642 priv->dev = dev; 1638 priv->dev = dev;
1643 priv->quirk = quirk; 1639 priv->quirk = quirk;
1644 1640
diff --git a/drivers/serial/8250_pnp.c b/drivers/serial/8250_pnp.c
index d3d6b82706b5..cde5db44abf6 100644
--- a/drivers/serial/8250_pnp.c
+++ b/drivers/serial/8250_pnp.c
@@ -450,11 +450,11 @@ serial_pnp_probe(struct pnp_dev *dev, const struct pnp_device_id *dev_id)
450 port.dev = &dev->dev; 450 port.dev = &dev->dev;
451 451
452 line = serial8250_register_port(&port); 452 line = serial8250_register_port(&port);
453 if (line < 0)
454 return -ENODEV;
453 455
454 if (line >= 0) 456 pnp_set_drvdata(dev, (void *)((long)line + 1));
455 pnp_set_drvdata(dev, (void *)((long)line + 1)); 457 return 0;
456 return line >= 0 ? 0 : -ENODEV;
457
458} 458}
459 459
460static void __devexit serial_pnp_remove(struct pnp_dev *dev) 460static void __devexit serial_pnp_remove(struct pnp_dev *dev)
diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig
index d0edbaacb1f7..e8dd71df9165 100644
--- a/drivers/serial/Kconfig
+++ b/drivers/serial/Kconfig
@@ -686,6 +686,22 @@ config SERIAL_SH_SCI_CONSOLE
686 depends on SERIAL_SH_SCI=y 686 depends on SERIAL_SH_SCI=y
687 select SERIAL_CORE_CONSOLE 687 select SERIAL_CORE_CONSOLE
688 688
689config SERIAL_PNX8XXX
690 bool "Enable PNX8XXX SoCs' UART Support"
691 depends on MIPS && SOC_PNX8550
692 select SERIAL_CORE
693 help
694 If you have a MIPS-based Philips SoC such as PNX8550 or PNX8330
695 and you want to use serial ports, say Y. Otherwise, say N.
696
697config SERIAL_PNX8XXX_CONSOLE
698 bool "Enable PNX8XX0 serial console"
699 depends on SERIAL_PNX8XXX
700 select SERIAL_CORE_CONSOLE
701 help
702 If you have a MIPS-based Philips SoC such as PNX8550 or PNX8330
703 and you want to use serial console, say Y. Otherwise, say N.
704
689config SERIAL_CORE 705config SERIAL_CORE
690 tristate 706 tristate
691 707
diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile
index f3f82587b5fa..6b3560c5749a 100644
--- a/drivers/serial/Makefile
+++ b/drivers/serial/Makefile
@@ -25,6 +25,7 @@ obj-$(CONFIG_SERIAL_AMBA_PL010) += amba-pl010.o
25obj-$(CONFIG_SERIAL_AMBA_PL011) += amba-pl011.o 25obj-$(CONFIG_SERIAL_AMBA_PL011) += amba-pl011.o
26obj-$(CONFIG_SERIAL_CLPS711X) += clps711x.o 26obj-$(CONFIG_SERIAL_CLPS711X) += clps711x.o
27obj-$(CONFIG_SERIAL_PXA) += pxa.o 27obj-$(CONFIG_SERIAL_PXA) += pxa.o
28obj-$(CONFIG_SERIAL_PNX8XXX) += pnx8xxx_uart.o
28obj-$(CONFIG_SERIAL_SA1100) += sa1100.o 29obj-$(CONFIG_SERIAL_SA1100) += sa1100.o
29obj-$(CONFIG_SERIAL_S3C2410) += s3c2410.o 30obj-$(CONFIG_SERIAL_S3C2410) += s3c2410.o
30obj-$(CONFIG_SERIAL_SUNCORE) += suncore.o 31obj-$(CONFIG_SERIAL_SUNCORE) += suncore.o
diff --git a/drivers/serial/icom.c b/drivers/serial/icom.c
index 71e6a24d8c28..41431d0d5512 100644
--- a/drivers/serial/icom.c
+++ b/drivers/serial/icom.c
@@ -27,7 +27,6 @@
27#include <linux/kernel.h> 27#include <linux/kernel.h>
28#include <linux/errno.h> 28#include <linux/errno.h>
29#include <linux/signal.h> 29#include <linux/signal.h>
30#include <linux/sched.h>
31#include <linux/timer.h> 30#include <linux/timer.h>
32#include <linux/interrupt.h> 31#include <linux/interrupt.h>
33#include <linux/tty.h> 32#include <linux/tty.h>
@@ -1417,14 +1416,12 @@ static int __devinit icom_alloc_adapter(struct icom_adapter
1417 struct list_head *tmp; 1416 struct list_head *tmp;
1418 1417
1419 icom_adapter = (struct icom_adapter *) 1418 icom_adapter = (struct icom_adapter *)
1420 kmalloc(sizeof(struct icom_adapter), GFP_KERNEL); 1419 kzalloc(sizeof(struct icom_adapter), GFP_KERNEL);
1421 1420
1422 if (!icom_adapter) { 1421 if (!icom_adapter) {
1423 return -ENOMEM; 1422 return -ENOMEM;
1424 } 1423 }
1425 1424
1426 memset(icom_adapter, 0, sizeof(struct icom_adapter));
1427
1428 list_for_each(tmp, &icom_adapter_head) { 1425 list_for_each(tmp, &icom_adapter_head) {
1429 cur_adapter_entry = 1426 cur_adapter_entry =
1430 list_entry(tmp, struct icom_adapter, 1427 list_entry(tmp, struct icom_adapter,
diff --git a/drivers/serial/ioc3_serial.c b/drivers/serial/ioc3_serial.c
index 9cc0be932316..168073f12cec 100644
--- a/drivers/serial/ioc3_serial.c
+++ b/drivers/serial/ioc3_serial.c
@@ -2019,13 +2019,12 @@ ioc3uart_probe(struct ioc3_submodule *is, struct ioc3_driver_data *idd)
2019 2019
2020 DPRINT_CONFIG(("%s (0x%p, 0x%p)\n", __FUNCTION__, is, idd)); 2020 DPRINT_CONFIG(("%s (0x%p, 0x%p)\n", __FUNCTION__, is, idd));
2021 2021
2022 card_ptr = kmalloc(sizeof(struct ioc3_card), GFP_KERNEL); 2022 card_ptr = kzalloc(sizeof(struct ioc3_card), GFP_KERNEL);
2023 if (!card_ptr) { 2023 if (!card_ptr) {
2024 printk(KERN_WARNING "ioc3_attach_one" 2024 printk(KERN_WARNING "ioc3_attach_one"
2025 ": unable to get memory for the IOC3\n"); 2025 ": unable to get memory for the IOC3\n");
2026 return -ENOMEM; 2026 return -ENOMEM;
2027 } 2027 }
2028 memset(card_ptr, 0, sizeof(struct ioc3_card));
2029 idd->data[is->id] = card_ptr; 2028 idd->data[is->id] = card_ptr;
2030 Submodule_slot = is->id; 2029 Submodule_slot = is->id;
2031 2030
@@ -2040,13 +2039,12 @@ ioc3uart_probe(struct ioc3_submodule *is, struct ioc3_driver_data *idd)
2040 2039
2041 /* Create port structures for each port */ 2040 /* Create port structures for each port */
2042 for (phys_port = 0; phys_port < PORTS_PER_CARD; phys_port++) { 2041 for (phys_port = 0; phys_port < PORTS_PER_CARD; phys_port++) {
2043 port = kmalloc(sizeof(struct ioc3_port), GFP_KERNEL); 2042 port = kzalloc(sizeof(struct ioc3_port), GFP_KERNEL);
2044 if (!port) { 2043 if (!port) {
2045 printk(KERN_WARNING 2044 printk(KERN_WARNING
2046 "IOC3 serial memory not available for port\n"); 2045 "IOC3 serial memory not available for port\n");
2047 goto out4; 2046 goto out4;
2048 } 2047 }
2049 memset(port, 0, sizeof(struct ioc3_port));
2050 spin_lock_init(&port->ip_lock); 2048 spin_lock_init(&port->ip_lock);
2051 2049
2052 /* we need to remember the previous ones, to point back to 2050 /* we need to remember the previous ones, to point back to
diff --git a/drivers/serial/ioc4_serial.c b/drivers/serial/ioc4_serial.c
index f540212e7409..0c179384fb0c 100644
--- a/drivers/serial/ioc4_serial.c
+++ b/drivers/serial/ioc4_serial.c
@@ -1076,13 +1076,12 @@ static int inline ioc4_attach_local(struct ioc4_driver_data *idd)
1076 /* Create port structures for each port */ 1076 /* Create port structures for each port */
1077 for (port_number = 0; port_number < IOC4_NUM_SERIAL_PORTS; 1077 for (port_number = 0; port_number < IOC4_NUM_SERIAL_PORTS;
1078 port_number++) { 1078 port_number++) {
1079 port = kmalloc(sizeof(struct ioc4_port), GFP_KERNEL); 1079 port = kzalloc(sizeof(struct ioc4_port), GFP_KERNEL);
1080 if (!port) { 1080 if (!port) {
1081 printk(KERN_WARNING 1081 printk(KERN_WARNING
1082 "IOC4 serial memory not available for port\n"); 1082 "IOC4 serial memory not available for port\n");
1083 return -ENOMEM; 1083 return -ENOMEM;
1084 } 1084 }
1085 memset(port, 0, sizeof(struct ioc4_port));
1086 spin_lock_init(&port->ip_lock); 1085 spin_lock_init(&port->ip_lock);
1087 1086
1088 /* we need to remember the previous ones, to point back to 1087 /* we need to remember the previous ones, to point back to
@@ -2811,7 +2810,7 @@ ioc4_serial_attach_one(struct ioc4_driver_data *idd)
2811 (void *)serial)); 2810 (void *)serial));
2812 2811
2813 /* Get memory for the new card */ 2812 /* Get memory for the new card */
2814 control = kmalloc(sizeof(struct ioc4_control), GFP_KERNEL); 2813 control = kzalloc(sizeof(struct ioc4_control), GFP_KERNEL);
2815 2814
2816 if (!control) { 2815 if (!control) {
2817 printk(KERN_WARNING "ioc4_attach_one" 2816 printk(KERN_WARNING "ioc4_attach_one"
@@ -2819,11 +2818,10 @@ ioc4_serial_attach_one(struct ioc4_driver_data *idd)
2819 ret = -ENOMEM; 2818 ret = -ENOMEM;
2820 goto out2; 2819 goto out2;
2821 } 2820 }
2822 memset(control, 0, sizeof(struct ioc4_control));
2823 idd->idd_serial_data = control; 2821 idd->idd_serial_data = control;
2824 2822
2825 /* Allocate the soft structure */ 2823 /* Allocate the soft structure */
2826 soft = kmalloc(sizeof(struct ioc4_soft), GFP_KERNEL); 2824 soft = kzalloc(sizeof(struct ioc4_soft), GFP_KERNEL);
2827 if (!soft) { 2825 if (!soft) {
2828 printk(KERN_WARNING 2826 printk(KERN_WARNING
2829 "ioc4 (%p): unable to get memory for the soft struct\n", 2827 "ioc4 (%p): unable to get memory for the soft struct\n",
@@ -2831,7 +2829,6 @@ ioc4_serial_attach_one(struct ioc4_driver_data *idd)
2831 ret = -ENOMEM; 2829 ret = -ENOMEM;
2832 goto out3; 2830 goto out3;
2833 } 2831 }
2834 memset(soft, 0, sizeof(struct ioc4_soft));
2835 2832
2836 spin_lock_init(&soft->is_ir_lock); 2833 spin_lock_init(&soft->is_ir_lock);
2837 soft->is_ioc4_misc_addr = idd->idd_misc_regs; 2834 soft->is_ioc4_misc_addr = idd->idd_misc_regs;
diff --git a/drivers/serial/ip22zilog.c b/drivers/serial/ip22zilog.c
index 0746c9446ae0..c3abfb39f316 100644
--- a/drivers/serial/ip22zilog.c
+++ b/drivers/serial/ip22zilog.c
@@ -14,7 +14,6 @@
14 */ 14 */
15#include <linux/module.h> 15#include <linux/module.h>
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/sched.h>
18#include <linux/errno.h> 17#include <linux/errno.h>
19#include <linux/delay.h> 18#include <linux/delay.h>
20#include <linux/tty.h> 19#include <linux/tty.h>
@@ -922,13 +921,7 @@ static int zilog_irq = -1;
922 921
923static void * __init alloc_one_table(unsigned long size) 922static void * __init alloc_one_table(unsigned long size)
924{ 923{
925 void *ret; 924 return kzalloc(size, GFP_KERNEL);
926
927 ret = kmalloc(size, GFP_KERNEL);
928 if (ret != NULL)
929 memset(ret, 0, size);
930
931 return ret;
932} 925}
933 926
934static void __init ip22zilog_alloc_tables(void) 927static void __init ip22zilog_alloc_tables(void)
diff --git a/drivers/serial/jsm/jsm_driver.c b/drivers/serial/jsm/jsm_driver.c
index 244f63be3a03..81792e6eeb2d 100644
--- a/drivers/serial/jsm/jsm_driver.c
+++ b/drivers/serial/jsm/jsm_driver.c
@@ -71,14 +71,13 @@ static int jsm_probe_one(struct pci_dev *pdev, const struct pci_device_id *ent)
71 goto out_disable_device; 71 goto out_disable_device;
72 } 72 }
73 73
74 brd = kmalloc(sizeof(struct jsm_board), GFP_KERNEL); 74 brd = kzalloc(sizeof(struct jsm_board), GFP_KERNEL);
75 if (!brd) { 75 if (!brd) {
76 dev_err(&pdev->dev, 76 dev_err(&pdev->dev,
77 "memory allocation for board structure failed\n"); 77 "memory allocation for board structure failed\n");
78 rc = -ENOMEM; 78 rc = -ENOMEM;
79 goto out_release_regions; 79 goto out_release_regions;
80 } 80 }
81 memset(brd, 0, sizeof(struct jsm_board));
82 81
83 /* store the info for the board we've found */ 82 /* store the info for the board we've found */
84 brd->boardnum = adapter_count++; 83 brd->boardnum = adapter_count++;
@@ -152,7 +151,7 @@ static int jsm_probe_one(struct pci_dev *pdev, const struct pci_device_id *ent)
152 * Okay to malloc with GFP_KERNEL, we are not at interrupt 151 * Okay to malloc with GFP_KERNEL, we are not at interrupt
153 * context, and there are no locks held. 152 * context, and there are no locks held.
154 */ 153 */
155 brd->flipbuf = kmalloc(MYFLIPLEN, GFP_KERNEL); 154 brd->flipbuf = kzalloc(MYFLIPLEN, GFP_KERNEL);
156 if (!brd->flipbuf) { 155 if (!brd->flipbuf) {
157 /* XXX: leaking all resources from jsm_tty_init and 156 /* XXX: leaking all resources from jsm_tty_init and
158 jsm_uart_port_init here! */ 157 jsm_uart_port_init here! */
@@ -160,7 +159,6 @@ static int jsm_probe_one(struct pci_dev *pdev, const struct pci_device_id *ent)
160 retval = -ENOMEM; 159 retval = -ENOMEM;
161 goto out_free_irq; 160 goto out_free_irq;
162 } 161 }
163 memset(brd->flipbuf, 0, MYFLIPLEN);
164 162
165 pci_set_drvdata(pdev, brd); 163 pci_set_drvdata(pdev, brd);
166 164
diff --git a/drivers/serial/jsm/jsm_tty.c b/drivers/serial/jsm/jsm_tty.c
index 7cf1c60027f8..be22bbdbc8e5 100644
--- a/drivers/serial/jsm/jsm_tty.c
+++ b/drivers/serial/jsm/jsm_tty.c
@@ -194,31 +194,28 @@ static int jsm_tty_open(struct uart_port *port)
194 /* Drop locks, as malloc with GFP_KERNEL can sleep */ 194 /* Drop locks, as malloc with GFP_KERNEL can sleep */
195 195
196 if (!channel->ch_rqueue) { 196 if (!channel->ch_rqueue) {
197 channel->ch_rqueue = (u8 *) kmalloc(RQUEUESIZE, GFP_KERNEL); 197 channel->ch_rqueue = kzalloc(RQUEUESIZE, GFP_KERNEL);
198 if (!channel->ch_rqueue) { 198 if (!channel->ch_rqueue) {
199 jsm_printk(INIT, ERR, &channel->ch_bd->pci_dev, 199 jsm_printk(INIT, ERR, &channel->ch_bd->pci_dev,
200 "unable to allocate read queue buf"); 200 "unable to allocate read queue buf");
201 return -ENOMEM; 201 return -ENOMEM;
202 } 202 }
203 memset(channel->ch_rqueue, 0, RQUEUESIZE);
204 } 203 }
205 if (!channel->ch_equeue) { 204 if (!channel->ch_equeue) {
206 channel->ch_equeue = (u8 *) kmalloc(EQUEUESIZE, GFP_KERNEL); 205 channel->ch_equeue = kzalloc(EQUEUESIZE, GFP_KERNEL);
207 if (!channel->ch_equeue) { 206 if (!channel->ch_equeue) {
208 jsm_printk(INIT, ERR, &channel->ch_bd->pci_dev, 207 jsm_printk(INIT, ERR, &channel->ch_bd->pci_dev,
209 "unable to allocate error queue buf"); 208 "unable to allocate error queue buf");
210 return -ENOMEM; 209 return -ENOMEM;
211 } 210 }
212 memset(channel->ch_equeue, 0, EQUEUESIZE);
213 } 211 }
214 if (!channel->ch_wqueue) { 212 if (!channel->ch_wqueue) {
215 channel->ch_wqueue = (u8 *) kmalloc(WQUEUESIZE, GFP_KERNEL); 213 channel->ch_wqueue = kzalloc(WQUEUESIZE, GFP_KERNEL);
216 if (!channel->ch_wqueue) { 214 if (!channel->ch_wqueue) {
217 jsm_printk(INIT, ERR, &channel->ch_bd->pci_dev, 215 jsm_printk(INIT, ERR, &channel->ch_bd->pci_dev,
218 "unable to allocate write queue buf"); 216 "unable to allocate write queue buf");
219 return -ENOMEM; 217 return -ENOMEM;
220 } 218 }
221 memset(channel->ch_wqueue, 0, WQUEUESIZE);
222 } 219 }
223 220
224 channel->ch_flags &= ~(CH_OPENING); 221 channel->ch_flags &= ~(CH_OPENING);
@@ -392,13 +389,12 @@ int jsm_tty_init(struct jsm_board *brd)
392 * Okay to malloc with GFP_KERNEL, we are not at 389 * Okay to malloc with GFP_KERNEL, we are not at
393 * interrupt context, and there are no locks held. 390 * interrupt context, and there are no locks held.
394 */ 391 */
395 brd->channels[i] = kmalloc(sizeof(struct jsm_channel), GFP_KERNEL); 392 brd->channels[i] = kzalloc(sizeof(struct jsm_channel), GFP_KERNEL);
396 if (!brd->channels[i]) { 393 if (!brd->channels[i]) {
397 jsm_printk(CORE, ERR, &brd->pci_dev, 394 jsm_printk(CORE, ERR, &brd->pci_dev,
398 "%s:%d Unable to allocate memory for channel struct\n", 395 "%s:%d Unable to allocate memory for channel struct\n",
399 __FILE__, __LINE__); 396 __FILE__, __LINE__);
400 } 397 }
401 memset(brd->channels[i], 0, sizeof(struct jsm_channel));
402 } 398 }
403 } 399 }
404 400
diff --git a/drivers/serial/pnx8xxx_uart.c b/drivers/serial/pnx8xxx_uart.c
new file mode 100644
index 000000000000..8d01c59e8d04
--- /dev/null
+++ b/drivers/serial/pnx8xxx_uart.c
@@ -0,0 +1,852 @@
1/*
2 * UART driver for PNX8XXX SoCs
3 *
4 * Author: Per Hallsmark per.hallsmark@mvista.com
5 * Ported to 2.6 kernel by EmbeddedAlley
6 * Reworked by Vitaly Wool <vitalywool@gmail.com>
7 *
8 * Based on drivers/char/serial.c, by Linus Torvalds, Theodore Ts'o.
9 * Copyright (C) 2000 Deep Blue Solutions Ltd.
10 *
11 * This file is licensed under the terms of the GNU General Public License
12 * version 2. This program is licensed "as is" without any warranty of
13 * any kind, whether express or implied.
14 *
15 */
16
17#if defined(CONFIG_SERIAL_PNX8XXX_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
18#define SUPPORT_SYSRQ
19#endif
20
21#include <linux/module.h>
22#include <linux/ioport.h>
23#include <linux/init.h>
24#include <linux/console.h>
25#include <linux/sysrq.h>
26#include <linux/device.h>
27#include <linux/platform_device.h>
28#include <linux/tty.h>
29#include <linux/tty_flip.h>
30#include <linux/serial_core.h>
31#include <linux/serial.h>
32#include <linux/serial_pnx8xxx.h>
33
34#include <asm/io.h>
35#include <asm/irq.h>
36
37/* We'll be using StrongARM sa1100 serial port major/minor */
38#define SERIAL_PNX8XXX_MAJOR 204
39#define MINOR_START 5
40
41#define NR_PORTS 2
42
43#define PNX8XXX_ISR_PASS_LIMIT 256
44
45/*
46 * Convert from ignore_status_mask or read_status_mask to FIFO
47 * and interrupt status bits
48 */
49#define SM_TO_FIFO(x) ((x) >> 10)
50#define SM_TO_ISTAT(x) ((x) & 0x000001ff)
51#define FIFO_TO_SM(x) ((x) << 10)
52#define ISTAT_TO_SM(x) ((x) & 0x000001ff)
53
54/*
55 * This is the size of our serial port register set.
56 */
57#define UART_PORT_SIZE 0x1000
58
59/*
60 * This determines how often we check the modem status signals
61 * for any change. They generally aren't connected to an IRQ
62 * so we have to poll them. We also check immediately before
63 * filling the TX fifo incase CTS has been dropped.
64 */
65#define MCTRL_TIMEOUT (250*HZ/1000)
66
67extern struct pnx8xxx_port pnx8xxx_ports[];
68
69static inline int serial_in(struct pnx8xxx_port *sport, int offset)
70{
71 return (__raw_readl(sport->port.membase + offset));
72}
73
74static inline void serial_out(struct pnx8xxx_port *sport, int offset, int value)
75{
76 __raw_writel(value, sport->port.membase + offset);
77}
78
79/*
80 * Handle any change of modem status signal since we were last called.
81 */
82static void pnx8xxx_mctrl_check(struct pnx8xxx_port *sport)
83{
84 unsigned int status, changed;
85
86 status = sport->port.ops->get_mctrl(&sport->port);
87 changed = status ^ sport->old_status;
88
89 if (changed == 0)
90 return;
91
92 sport->old_status = status;
93
94 if (changed & TIOCM_RI)
95 sport->port.icount.rng++;
96 if (changed & TIOCM_DSR)
97 sport->port.icount.dsr++;
98 if (changed & TIOCM_CAR)
99 uart_handle_dcd_change(&sport->port, status & TIOCM_CAR);
100 if (changed & TIOCM_CTS)
101 uart_handle_cts_change(&sport->port, status & TIOCM_CTS);
102
103 wake_up_interruptible(&sport->port.info->delta_msr_wait);
104}
105
106/*
107 * This is our per-port timeout handler, for checking the
108 * modem status signals.
109 */
110static void pnx8xxx_timeout(unsigned long data)
111{
112 struct pnx8xxx_port *sport = (struct pnx8xxx_port *)data;
113 unsigned long flags;
114
115 if (sport->port.info) {
116 spin_lock_irqsave(&sport->port.lock, flags);
117 pnx8xxx_mctrl_check(sport);
118 spin_unlock_irqrestore(&sport->port.lock, flags);
119
120 mod_timer(&sport->timer, jiffies + MCTRL_TIMEOUT);
121 }
122}
123
124/*
125 * interrupts disabled on entry
126 */
127static void pnx8xxx_stop_tx(struct uart_port *port)
128{
129 struct pnx8xxx_port *sport = (struct pnx8xxx_port *)port;
130 u32 ien;
131
132 /* Disable TX intr */
133 ien = serial_in(sport, PNX8XXX_IEN);
134 serial_out(sport, PNX8XXX_IEN, ien & ~PNX8XXX_UART_INT_ALLTX);
135
136 /* Clear all pending TX intr */
137 serial_out(sport, PNX8XXX_ICLR, PNX8XXX_UART_INT_ALLTX);
138}
139
140/*
141 * interrupts may not be disabled on entry
142 */
143static void pnx8xxx_start_tx(struct uart_port *port)
144{
145 struct pnx8xxx_port *sport = (struct pnx8xxx_port *)port;
146 u32 ien;
147
148 /* Clear all pending TX intr */
149 serial_out(sport, PNX8XXX_ICLR, PNX8XXX_UART_INT_ALLTX);
150
151 /* Enable TX intr */
152 ien = serial_in(sport, PNX8XXX_IEN);
153 serial_out(sport, PNX8XXX_IEN, ien | PNX8XXX_UART_INT_ALLTX);
154}
155
156/*
157 * Interrupts enabled
158 */
159static void pnx8xxx_stop_rx(struct uart_port *port)
160{
161 struct pnx8xxx_port *sport = (struct pnx8xxx_port *)port;
162 u32 ien;
163
164 /* Disable RX intr */
165 ien = serial_in(sport, PNX8XXX_IEN);
166 serial_out(sport, PNX8XXX_IEN, ien & ~PNX8XXX_UART_INT_ALLRX);
167
168 /* Clear all pending RX intr */
169 serial_out(sport, PNX8XXX_ICLR, PNX8XXX_UART_INT_ALLRX);
170}
171
172/*
173 * Set the modem control timer to fire immediately.
174 */
175static void pnx8xxx_enable_ms(struct uart_port *port)
176{
177 struct pnx8xxx_port *sport = (struct pnx8xxx_port *)port;
178
179 mod_timer(&sport->timer, jiffies);
180}
181
182static void pnx8xxx_rx_chars(struct pnx8xxx_port *sport)
183{
184 struct tty_struct *tty = sport->port.info->tty;
185 unsigned int status, ch, flg;
186
187 status = FIFO_TO_SM(serial_in(sport, PNX8XXX_FIFO)) |
188 ISTAT_TO_SM(serial_in(sport, PNX8XXX_ISTAT));
189 while (status & FIFO_TO_SM(PNX8XXX_UART_FIFO_RXFIFO)) {
190 ch = serial_in(sport, PNX8XXX_FIFO);
191
192 sport->port.icount.rx++;
193
194 flg = TTY_NORMAL;
195
196 /*
197 * note that the error handling code is
198 * out of the main execution path
199 */
200 if (status & (FIFO_TO_SM(PNX8XXX_UART_FIFO_RXFE |
201 PNX8XXX_UART_FIFO_RXPAR) |
202 ISTAT_TO_SM(PNX8XXX_UART_INT_RXOVRN))) {
203 if (status & FIFO_TO_SM(PNX8XXX_UART_FIFO_RXPAR))
204 sport->port.icount.parity++;
205 else if (status & FIFO_TO_SM(PNX8XXX_UART_FIFO_RXFE))
206 sport->port.icount.frame++;
207 if (status & ISTAT_TO_SM(PNX8XXX_UART_INT_RXOVRN))
208 sport->port.icount.overrun++;
209
210 status &= sport->port.read_status_mask;
211
212 if (status & FIFO_TO_SM(PNX8XXX_UART_FIFO_RXPAR))
213 flg = TTY_PARITY;
214 else if (status & FIFO_TO_SM(PNX8XXX_UART_FIFO_RXFE))
215 flg = TTY_FRAME;
216
217#ifdef SUPPORT_SYSRQ
218 sport->port.sysrq = 0;
219#endif
220 }
221
222 if (uart_handle_sysrq_char(&sport->port, ch))
223 goto ignore_char;
224
225 uart_insert_char(&sport->port, status,
226 ISTAT_TO_SM(PNX8XXX_UART_INT_RXOVRN), ch, flg);
227
228 ignore_char:
229 serial_out(sport, PNX8XXX_LCR, serial_in(sport, PNX8XXX_LCR) |
230 PNX8XXX_UART_LCR_RX_NEXT);
231 status = FIFO_TO_SM(serial_in(sport, PNX8XXX_FIFO)) |
232 ISTAT_TO_SM(serial_in(sport, PNX8XXX_ISTAT));
233 }
234 tty_flip_buffer_push(tty);
235}
236
237static void pnx8xxx_tx_chars(struct pnx8xxx_port *sport)
238{
239 struct circ_buf *xmit = &sport->port.info->xmit;
240
241 if (sport->port.x_char) {
242 serial_out(sport, PNX8XXX_FIFO, sport->port.x_char);
243 sport->port.icount.tx++;
244 sport->port.x_char = 0;
245 return;
246 }
247
248 /*
249 * Check the modem control lines before
250 * transmitting anything.
251 */
252 pnx8xxx_mctrl_check(sport);
253
254 if (uart_circ_empty(xmit) || uart_tx_stopped(&sport->port)) {
255 pnx8xxx_stop_tx(&sport->port);
256 return;
257 }
258
259 /*
260 * TX while bytes available
261 */
262 while (((serial_in(sport, PNX8XXX_FIFO) &
263 PNX8XXX_UART_FIFO_TXFIFO) >> 16) < 16) {
264 serial_out(sport, PNX8XXX_FIFO, xmit->buf[xmit->tail]);
265 xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
266 sport->port.icount.tx++;
267 if (uart_circ_empty(xmit))
268 break;
269 }
270
271 if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
272 uart_write_wakeup(&sport->port);
273
274 if (uart_circ_empty(xmit))
275 pnx8xxx_stop_tx(&sport->port);
276}
277
278static irqreturn_t pnx8xxx_int(int irq, void *dev_id)
279{
280 struct pnx8xxx_port *sport = dev_id;
281 unsigned int status;
282
283 spin_lock(&sport->port.lock);
284 /* Get the interrupts */
285 status = serial_in(sport, PNX8XXX_ISTAT) & serial_in(sport, PNX8XXX_IEN);
286
287 /* Break signal received */
288 if (status & PNX8XXX_UART_INT_BREAK) {
289 sport->port.icount.brk++;
290 uart_handle_break(&sport->port);
291 }
292
293 /* Byte received */
294 if (status & PNX8XXX_UART_INT_RX)
295 pnx8xxx_rx_chars(sport);
296
297 /* TX holding register empty - transmit a byte */
298 if (status & PNX8XXX_UART_INT_TX)
299 pnx8xxx_tx_chars(sport);
300
301 /* Clear the ISTAT register */
302 serial_out(sport, PNX8XXX_ICLR, status);
303
304 spin_unlock(&sport->port.lock);
305 return IRQ_HANDLED;
306}
307
308/*
309 * Return TIOCSER_TEMT when transmitter is not busy.
310 */
311static unsigned int pnx8xxx_tx_empty(struct uart_port *port)
312{
313 struct pnx8xxx_port *sport = (struct pnx8xxx_port *)port;
314
315 return serial_in(sport, PNX8XXX_FIFO) & PNX8XXX_UART_FIFO_TXFIFO_STA ? 0 : TIOCSER_TEMT;
316}
317
318static unsigned int pnx8xxx_get_mctrl(struct uart_port *port)
319{
320 struct pnx8xxx_port *sport = (struct pnx8xxx_port *)port;
321 unsigned int mctrl = TIOCM_DSR;
322 unsigned int msr;
323
324 /* REVISIT */
325
326 msr = serial_in(sport, PNX8XXX_MCR);
327
328 mctrl |= msr & PNX8XXX_UART_MCR_CTS ? TIOCM_CTS : 0;
329 mctrl |= msr & PNX8XXX_UART_MCR_DCD ? TIOCM_CAR : 0;
330
331 return mctrl;
332}
333
334static void pnx8xxx_set_mctrl(struct uart_port *port, unsigned int mctrl)
335{
336#if 0 /* FIXME */
337 struct pnx8xxx_port *sport = (struct pnx8xxx_port *)port;
338 unsigned int msr;
339#endif
340}
341
342/*
343 * Interrupts always disabled.
344 */
345static void pnx8xxx_break_ctl(struct uart_port *port, int break_state)
346{
347 struct pnx8xxx_port *sport = (struct pnx8xxx_port *)port;
348 unsigned long flags;
349 unsigned int lcr;
350
351 spin_lock_irqsave(&sport->port.lock, flags);
352 lcr = serial_in(sport, PNX8XXX_LCR);
353 if (break_state == -1)
354 lcr |= PNX8XXX_UART_LCR_TXBREAK;
355 else
356 lcr &= ~PNX8XXX_UART_LCR_TXBREAK;
357 serial_out(sport, PNX8XXX_LCR, lcr);
358 spin_unlock_irqrestore(&sport->port.lock, flags);
359}
360
361static int pnx8xxx_startup(struct uart_port *port)
362{
363 struct pnx8xxx_port *sport = (struct pnx8xxx_port *)port;
364 int retval;
365
366 /*
367 * Allocate the IRQ
368 */
369 retval = request_irq(sport->port.irq, pnx8xxx_int, 0,
370 "pnx8xxx-uart", sport);
371 if (retval)
372 return retval;
373
374 /*
375 * Finally, clear and enable interrupts
376 */
377
378 serial_out(sport, PNX8XXX_ICLR, PNX8XXX_UART_INT_ALLRX |
379 PNX8XXX_UART_INT_ALLTX);
380
381 serial_out(sport, PNX8XXX_IEN, serial_in(sport, PNX8XXX_IEN) |
382 PNX8XXX_UART_INT_ALLRX |
383 PNX8XXX_UART_INT_ALLTX);
384
385 /*
386 * Enable modem status interrupts
387 */
388 spin_lock_irq(&sport->port.lock);
389 pnx8xxx_enable_ms(&sport->port);
390 spin_unlock_irq(&sport->port.lock);
391
392 return 0;
393}
394
395static void pnx8xxx_shutdown(struct uart_port *port)
396{
397 struct pnx8xxx_port *sport = (struct pnx8xxx_port *)port;
398 int lcr;
399
400 /*
401 * Stop our timer.
402 */
403 del_timer_sync(&sport->timer);
404
405 /*
406 * Disable all interrupts
407 */
408 serial_out(sport, PNX8XXX_IEN, 0);
409
410 /*
411 * Reset the Tx and Rx FIFOS, disable the break condition
412 */
413 lcr = serial_in(sport, PNX8XXX_LCR);
414 lcr &= ~PNX8XXX_UART_LCR_TXBREAK;
415 lcr |= PNX8XXX_UART_LCR_TX_RST | PNX8XXX_UART_LCR_RX_RST;
416 serial_out(sport, PNX8XXX_LCR, lcr);
417
418 /*
419 * Clear all interrupts
420 */
421 serial_out(sport, PNX8XXX_ICLR, PNX8XXX_UART_INT_ALLRX |
422 PNX8XXX_UART_INT_ALLTX);
423
424 /*
425 * Free the interrupt
426 */
427 free_irq(sport->port.irq, sport);
428}
429
430static void
431pnx8xxx_set_termios(struct uart_port *port, struct ktermios *termios,
432 struct ktermios *old)
433{
434 struct pnx8xxx_port *sport = (struct pnx8xxx_port *)port;
435 unsigned long flags;
436 unsigned int lcr_fcr, old_ien, baud, quot;
437 unsigned int old_csize = old ? old->c_cflag & CSIZE : CS8;
438
439 /*
440 * We only support CS7 and CS8.
441 */
442 while ((termios->c_cflag & CSIZE) != CS7 &&
443 (termios->c_cflag & CSIZE) != CS8) {
444 termios->c_cflag &= ~CSIZE;
445 termios->c_cflag |= old_csize;
446 old_csize = CS8;
447 }
448
449 if ((termios->c_cflag & CSIZE) == CS8)
450 lcr_fcr = PNX8XXX_UART_LCR_8BIT;
451 else
452 lcr_fcr = 0;
453
454 if (termios->c_cflag & CSTOPB)
455 lcr_fcr |= PNX8XXX_UART_LCR_2STOPB;
456 if (termios->c_cflag & PARENB) {
457 lcr_fcr |= PNX8XXX_UART_LCR_PAREN;
458 if (!(termios->c_cflag & PARODD))
459 lcr_fcr |= PNX8XXX_UART_LCR_PAREVN;
460 }
461
462 /*
463 * Ask the core to calculate the divisor for us.
464 */
465 baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16);
466 quot = uart_get_divisor(port, baud);
467
468 spin_lock_irqsave(&sport->port.lock, flags);
469
470 sport->port.read_status_mask = ISTAT_TO_SM(PNX8XXX_UART_INT_RXOVRN) |
471 ISTAT_TO_SM(PNX8XXX_UART_INT_EMPTY) |
472 ISTAT_TO_SM(PNX8XXX_UART_INT_RX);
473 if (termios->c_iflag & INPCK)
474 sport->port.read_status_mask |=
475 FIFO_TO_SM(PNX8XXX_UART_FIFO_RXFE) |
476 FIFO_TO_SM(PNX8XXX_UART_FIFO_RXPAR);
477 if (termios->c_iflag & (BRKINT | PARMRK))
478 sport->port.read_status_mask |=
479 ISTAT_TO_SM(PNX8XXX_UART_INT_BREAK);
480
481 /*
482 * Characters to ignore
483 */
484 sport->port.ignore_status_mask = 0;
485 if (termios->c_iflag & IGNPAR)
486 sport->port.ignore_status_mask |=
487 FIFO_TO_SM(PNX8XXX_UART_FIFO_RXFE) |
488 FIFO_TO_SM(PNX8XXX_UART_FIFO_RXPAR);
489 if (termios->c_iflag & IGNBRK) {
490 sport->port.ignore_status_mask |=
491 ISTAT_TO_SM(PNX8XXX_UART_INT_BREAK);
492 /*
493 * If we're ignoring parity and break indicators,
494 * ignore overruns too (for real raw support).
495 */
496 if (termios->c_iflag & IGNPAR)
497 sport->port.ignore_status_mask |=
498 ISTAT_TO_SM(PNX8XXX_UART_INT_RXOVRN);
499 }
500
501 /*
502 * ignore all characters if CREAD is not set
503 */
504 if ((termios->c_cflag & CREAD) == 0)
505 sport->port.ignore_status_mask |=
506 ISTAT_TO_SM(PNX8XXX_UART_INT_RX);
507
508 del_timer_sync(&sport->timer);
509
510 /*
511 * Update the per-port timeout.
512 */
513 uart_update_timeout(port, termios->c_cflag, baud);
514
515 /*
516 * disable interrupts and drain transmitter
517 */
518 old_ien = serial_in(sport, PNX8XXX_IEN);
519 serial_out(sport, PNX8XXX_IEN, old_ien & ~(PNX8XXX_UART_INT_ALLTX |
520 PNX8XXX_UART_INT_ALLRX));
521
522 while (serial_in(sport, PNX8XXX_FIFO) & PNX8XXX_UART_FIFO_TXFIFO_STA)
523 barrier();
524
525 /* then, disable everything */
526 serial_out(sport, PNX8XXX_IEN, 0);
527
528 /* Reset the Rx and Tx FIFOs too */
529 lcr_fcr |= PNX8XXX_UART_LCR_TX_RST;
530 lcr_fcr |= PNX8XXX_UART_LCR_RX_RST;
531
532 /* set the parity, stop bits and data size */
533 serial_out(sport, PNX8XXX_LCR, lcr_fcr);
534
535 /* set the baud rate */
536 quot -= 1;
537 serial_out(sport, PNX8XXX_BAUD, quot);
538
539 serial_out(sport, PNX8XXX_ICLR, -1);
540
541 serial_out(sport, PNX8XXX_IEN, old_ien);
542
543 if (UART_ENABLE_MS(&sport->port, termios->c_cflag))
544 pnx8xxx_enable_ms(&sport->port);
545
546 spin_unlock_irqrestore(&sport->port.lock, flags);
547}
548
549static const char *pnx8xxx_type(struct uart_port *port)
550{
551 struct pnx8xxx_port *sport = (struct pnx8xxx_port *)port;
552
553 return sport->port.type == PORT_PNX8XXX ? "PNX8XXX" : NULL;
554}
555
556/*
557 * Release the memory region(s) being used by 'port'.
558 */
559static void pnx8xxx_release_port(struct uart_port *port)
560{
561 struct pnx8xxx_port *sport = (struct pnx8xxx_port *)port;
562
563 release_mem_region(sport->port.mapbase, UART_PORT_SIZE);
564}
565
566/*
567 * Request the memory region(s) being used by 'port'.
568 */
569static int pnx8xxx_request_port(struct uart_port *port)
570{
571 struct pnx8xxx_port *sport = (struct pnx8xxx_port *)port;
572 return request_mem_region(sport->port.mapbase, UART_PORT_SIZE,
573 "pnx8xxx-uart") != NULL ? 0 : -EBUSY;
574}
575
576/*
577 * Configure/autoconfigure the port.
578 */
579static void pnx8xxx_config_port(struct uart_port *port, int flags)
580{
581 struct pnx8xxx_port *sport = (struct pnx8xxx_port *)port;
582
583 if (flags & UART_CONFIG_TYPE &&
584 pnx8xxx_request_port(&sport->port) == 0)
585 sport->port.type = PORT_PNX8XXX;
586}
587
588/*
589 * Verify the new serial_struct (for TIOCSSERIAL).
590 * The only change we allow are to the flags and type, and
591 * even then only between PORT_PNX8XXX and PORT_UNKNOWN
592 */
593static int
594pnx8xxx_verify_port(struct uart_port *port, struct serial_struct *ser)
595{
596 struct pnx8xxx_port *sport = (struct pnx8xxx_port *)port;
597 int ret = 0;
598
599 if (ser->type != PORT_UNKNOWN && ser->type != PORT_PNX8XXX)
600 ret = -EINVAL;
601 if (sport->port.irq != ser->irq)
602 ret = -EINVAL;
603 if (ser->io_type != SERIAL_IO_MEM)
604 ret = -EINVAL;
605 if (sport->port.uartclk / 16 != ser->baud_base)
606 ret = -EINVAL;
607 if ((void *)sport->port.mapbase != ser->iomem_base)
608 ret = -EINVAL;
609 if (sport->port.iobase != ser->port)
610 ret = -EINVAL;
611 if (ser->hub6 != 0)
612 ret = -EINVAL;
613 return ret;
614}
615
616static struct uart_ops pnx8xxx_pops = {
617 .tx_empty = pnx8xxx_tx_empty,
618 .set_mctrl = pnx8xxx_set_mctrl,
619 .get_mctrl = pnx8xxx_get_mctrl,
620 .stop_tx = pnx8xxx_stop_tx,
621 .start_tx = pnx8xxx_start_tx,
622 .stop_rx = pnx8xxx_stop_rx,
623 .enable_ms = pnx8xxx_enable_ms,
624 .break_ctl = pnx8xxx_break_ctl,
625 .startup = pnx8xxx_startup,
626 .shutdown = pnx8xxx_shutdown,
627 .set_termios = pnx8xxx_set_termios,
628 .type = pnx8xxx_type,
629 .release_port = pnx8xxx_release_port,
630 .request_port = pnx8xxx_request_port,
631 .config_port = pnx8xxx_config_port,
632 .verify_port = pnx8xxx_verify_port,
633};
634
635
636/*
637 * Setup the PNX8XXX serial ports.
638 *
639 * Note also that we support "console=ttySx" where "x" is either 0 or 1.
640 */
641static void __init pnx8xxx_init_ports(void)
642{
643 static int first = 1;
644 int i;
645
646 if (!first)
647 return;
648 first = 0;
649
650 for (i = 0; i < NR_PORTS; i++) {
651 init_timer(&pnx8xxx_ports[i].timer);
652 pnx8xxx_ports[i].timer.function = pnx8xxx_timeout;
653 pnx8xxx_ports[i].timer.data = (unsigned long)&pnx8xxx_ports[i];
654 pnx8xxx_ports[i].port.ops = &pnx8xxx_pops;
655 }
656}
657
658#ifdef CONFIG_SERIAL_PNX8XXX_CONSOLE
659
660static void pnx8xxx_console_putchar(struct uart_port *port, int ch)
661{
662 struct pnx8xxx_port *sport = (struct pnx8xxx_port *)port;
663 int status;
664
665 do {
666 /* Wait for UART_TX register to empty */
667 status = serial_in(sport, PNX8XXX_FIFO);
668 } while (status & PNX8XXX_UART_FIFO_TXFIFO);
669 serial_out(sport, PNX8XXX_FIFO, ch);
670}
671
672/*
673 * Interrupts are disabled on entering
674 */static void
675pnx8xxx_console_write(struct console *co, const char *s, unsigned int count)
676{
677 struct pnx8xxx_port *sport = &pnx8xxx_ports[co->index];
678 unsigned int old_ien, status;
679
680 /*
681 * First, save IEN and then disable interrupts
682 */
683 old_ien = serial_in(sport, PNX8XXX_IEN);
684 serial_out(sport, PNX8XXX_IEN, old_ien & ~(PNX8XXX_UART_INT_ALLTX |
685 PNX8XXX_UART_INT_ALLRX));
686
687 uart_console_write(&sport->port, s, count, pnx8xxx_console_putchar);
688
689 /*
690 * Finally, wait for transmitter to become empty
691 * and restore IEN
692 */
693 do {
694 /* Wait for UART_TX register to empty */
695 status = serial_in(sport, PNX8XXX_FIFO);
696 } while (status & PNX8XXX_UART_FIFO_TXFIFO);
697
698 /* Clear TX and EMPTY interrupt */
699 serial_out(sport, PNX8XXX_ICLR, PNX8XXX_UART_INT_TX |
700 PNX8XXX_UART_INT_EMPTY);
701
702 serial_out(sport, PNX8XXX_IEN, old_ien);
703}
704
705static int __init
706pnx8xxx_console_setup(struct console *co, char *options)
707{
708 struct pnx8xxx_port *sport;
709 int baud = 38400;
710 int bits = 8;
711 int parity = 'n';
712 int flow = 'n';
713
714 /*
715 * Check whether an invalid uart number has been specified, and
716 * if so, search for the first available port that does have
717 * console support.
718 */
719 if (co->index == -1 || co->index >= NR_PORTS)
720 co->index = 0;
721 sport = &pnx8xxx_ports[co->index];
722
723 if (options)
724 uart_parse_options(options, &baud, &parity, &bits, &flow);
725
726 return uart_set_options(&sport->port, co, baud, parity, bits, flow);
727}
728
729static struct uart_driver pnx8xxx_reg;
730static struct console pnx8xxx_console = {
731 .name = "ttyS",
732 .write = pnx8xxx_console_write,
733 .device = uart_console_device,
734 .setup = pnx8xxx_console_setup,
735 .flags = CON_PRINTBUFFER,
736 .index = -1,
737 .data = &pnx8xxx_reg,
738};
739
740static int __init pnx8xxx_rs_console_init(void)
741{
742 pnx8xxx_init_ports();
743 register_console(&pnx8xxx_console);
744 return 0;
745}
746console_initcall(pnx8xxx_rs_console_init);
747
748#define PNX8XXX_CONSOLE &pnx8xxx_console
749#else
750#define PNX8XXX_CONSOLE NULL
751#endif
752
753static struct uart_driver pnx8xxx_reg = {
754 .owner = THIS_MODULE,
755 .driver_name = "ttyS",
756 .dev_name = "ttyS",
757 .major = SERIAL_PNX8XXX_MAJOR,
758 .minor = MINOR_START,
759 .nr = NR_PORTS,
760 .cons = PNX8XXX_CONSOLE,
761};
762
763static int pnx8xxx_serial_suspend(struct platform_device *pdev, pm_message_t state)
764{
765 struct pnx8xxx_port *sport = platform_get_drvdata(pdev);
766
767 return uart_suspend_port(&pnx8xxx_reg, &sport->port);
768}
769
770static int pnx8xxx_serial_resume(struct platform_device *pdev)
771{
772 struct pnx8xxx_port *sport = platform_get_drvdata(pdev);
773
774 return uart_resume_port(&pnx8xxx_reg, &sport->port);
775}
776
777static int pnx8xxx_serial_probe(struct platform_device *pdev)
778{
779 struct resource *res = pdev->resource;
780 int i;
781
782 for (i = 0; i < pdev->num_resources; i++, res++) {
783 if (!(res->flags & IORESOURCE_MEM))
784 continue;
785
786 for (i = 0; i < NR_PORTS; i++) {
787 if (pnx8xxx_ports[i].port.mapbase != res->start)
788 continue;
789
790 pnx8xxx_ports[i].port.dev = &pdev->dev;
791 uart_add_one_port(&pnx8xxx_reg, &pnx8xxx_ports[i].port);
792 platform_set_drvdata(pdev, &pnx8xxx_ports[i]);
793 break;
794 }
795 }
796
797 return 0;
798}
799
800static int pnx8xxx_serial_remove(struct platform_device *pdev)
801{
802 struct pnx8xxx_port *sport = platform_get_drvdata(pdev);
803
804 platform_set_drvdata(pdev, NULL);
805
806 if (sport)
807 uart_remove_one_port(&pnx8xxx_reg, &sport->port);
808
809 return 0;
810}
811
812static struct platform_driver pnx8xxx_serial_driver = {
813 .driver = {
814 .name = "pnx8xxx-uart",
815 .owner = THIS_MODULE,
816 },
817 .probe = pnx8xxx_serial_probe,
818 .remove = pnx8xxx_serial_remove,
819 .suspend = pnx8xxx_serial_suspend,
820 .resume = pnx8xxx_serial_resume,
821};
822
823static int __init pnx8xxx_serial_init(void)
824{
825 int ret;
826
827 printk(KERN_INFO "Serial: PNX8XXX driver $Revision: 1.2 $\n");
828
829 pnx8xxx_init_ports();
830
831 ret = uart_register_driver(&pnx8xxx_reg);
832 if (ret == 0) {
833 ret = platform_driver_register(&pnx8xxx_serial_driver);
834 if (ret)
835 uart_unregister_driver(&pnx8xxx_reg);
836 }
837 return ret;
838}
839
840static void __exit pnx8xxx_serial_exit(void)
841{
842 platform_driver_unregister(&pnx8xxx_serial_driver);
843 uart_unregister_driver(&pnx8xxx_reg);
844}
845
846module_init(pnx8xxx_serial_init);
847module_exit(pnx8xxx_serial_exit);
848
849MODULE_AUTHOR("Embedded Alley Solutions, Inc.");
850MODULE_DESCRIPTION("PNX8XXX SoCs serial port driver");
851MODULE_LICENSE("GPL");
852MODULE_ALIAS_CHARDEV_MAJOR(SERIAL_PNX8XXX_MAJOR);
diff --git a/drivers/serial/serial_core.c b/drivers/serial/serial_core.c
index f84982e508c7..0422c0f1f852 100644
--- a/drivers/serial/serial_core.c
+++ b/drivers/serial/serial_core.c
@@ -1523,9 +1523,8 @@ static struct uart_state *uart_get(struct uart_driver *drv, int line)
1523 } 1523 }
1524 1524
1525 if (!state->info) { 1525 if (!state->info) {
1526 state->info = kmalloc(sizeof(struct uart_info), GFP_KERNEL); 1526 state->info = kzalloc(sizeof(struct uart_info), GFP_KERNEL);
1527 if (state->info) { 1527 if (state->info) {
1528 memset(state->info, 0, sizeof(struct uart_info));
1529 init_waitqueue_head(&state->info->open_wait); 1528 init_waitqueue_head(&state->info->open_wait);
1530 init_waitqueue_head(&state->info->delta_msr_wait); 1529 init_waitqueue_head(&state->info->delta_msr_wait);
1531 1530
@@ -1660,6 +1659,7 @@ static const char *uart_type(struct uart_port *port)
1660static int uart_line_info(char *buf, struct uart_driver *drv, int i) 1659static int uart_line_info(char *buf, struct uart_driver *drv, int i)
1661{ 1660{
1662 struct uart_state *state = drv->state + i; 1661 struct uart_state *state = drv->state + i;
1662 int pm_state;
1663 struct uart_port *port = state->port; 1663 struct uart_port *port = state->port;
1664 char stat_buf[32]; 1664 char stat_buf[32];
1665 unsigned int status; 1665 unsigned int status;
@@ -1682,9 +1682,16 @@ static int uart_line_info(char *buf, struct uart_driver *drv, int i)
1682 1682
1683 if(capable(CAP_SYS_ADMIN)) 1683 if(capable(CAP_SYS_ADMIN))
1684 { 1684 {
1685 mutex_lock(&state->mutex);
1686 pm_state = state->pm_state;
1687 if (pm_state)
1688 uart_change_pm(state, 0);
1685 spin_lock_irq(&port->lock); 1689 spin_lock_irq(&port->lock);
1686 status = port->ops->get_mctrl(port); 1690 status = port->ops->get_mctrl(port);
1687 spin_unlock_irq(&port->lock); 1691 spin_unlock_irq(&port->lock);
1692 if (pm_state)
1693 uart_change_pm(state, pm_state);
1694 mutex_unlock(&state->mutex);
1688 1695
1689 ret += sprintf(buf + ret, " tx:%d rx:%d", 1696 ret += sprintf(buf + ret, " tx:%d rx:%d",
1690 port->icount.tx, port->icount.rx); 1697 port->icount.tx, port->icount.rx);
@@ -2100,6 +2107,9 @@ uart_configure_port(struct uart_driver *drv, struct uart_state *state,
2100 2107
2101 uart_report_port(drv, port); 2108 uart_report_port(drv, port);
2102 2109
2110 /* Power up port for set_mctrl() */
2111 uart_change_pm(state, 0);
2112
2103 /* 2113 /*
2104 * Ensure that the modem control lines are de-activated. 2114 * Ensure that the modem control lines are de-activated.
2105 * We probably don't need a spinlock around this, but 2115 * We probably don't need a spinlock around this, but
@@ -2167,13 +2177,11 @@ int uart_register_driver(struct uart_driver *drv)
2167 * Maybe we should be using a slab cache for this, especially if 2177 * Maybe we should be using a slab cache for this, especially if
2168 * we have a large number of ports to handle. 2178 * we have a large number of ports to handle.
2169 */ 2179 */
2170 drv->state = kmalloc(sizeof(struct uart_state) * drv->nr, GFP_KERNEL); 2180 drv->state = kzalloc(sizeof(struct uart_state) * drv->nr, GFP_KERNEL);
2171 retval = -ENOMEM; 2181 retval = -ENOMEM;
2172 if (!drv->state) 2182 if (!drv->state)
2173 goto out; 2183 goto out;
2174 2184
2175 memset(drv->state, 0, sizeof(struct uart_state) * drv->nr);
2176
2177 normal = alloc_tty_driver(drv->nr); 2185 normal = alloc_tty_driver(drv->nr);
2178 if (!normal) 2186 if (!normal)
2179 goto out; 2187 goto out;
diff --git a/drivers/serial/serial_cs.c b/drivers/serial/serial_cs.c
index 431433f4dd6d..c2f1012449da 100644
--- a/drivers/serial/serial_cs.c
+++ b/drivers/serial/serial_cs.c
@@ -35,7 +35,6 @@
35#include <linux/moduleparam.h> 35#include <linux/moduleparam.h>
36#include <linux/kernel.h> 36#include <linux/kernel.h>
37#include <linux/init.h> 37#include <linux/init.h>
38#include <linux/sched.h>
39#include <linux/ptrace.h> 38#include <linux/ptrace.h>
40#include <linux/slab.h> 39#include <linux/slab.h>
41#include <linux/string.h> 40#include <linux/string.h>
@@ -334,10 +333,9 @@ static int serial_probe(struct pcmcia_device *link)
334 DEBUG(0, "serial_attach()\n"); 333 DEBUG(0, "serial_attach()\n");
335 334
336 /* Create new serial device */ 335 /* Create new serial device */
337 info = kmalloc(sizeof (*info), GFP_KERNEL); 336 info = kzalloc(sizeof (*info), GFP_KERNEL);
338 if (!info) 337 if (!info)
339 return -ENOMEM; 338 return -ENOMEM;
340 memset(info, 0, sizeof (*info));
341 info->p_dev = link; 339 info->p_dev = link;
342 link->priv = info; 340 link->priv = info;
343 341
diff --git a/drivers/serial/sunsab.c b/drivers/serial/sunsab.c
index 145d6236954b..deb9ab4b5a0b 100644
--- a/drivers/serial/sunsab.c
+++ b/drivers/serial/sunsab.c
@@ -17,7 +17,6 @@
17 17
18#include <linux/module.h> 18#include <linux/module.h>
19#include <linux/kernel.h> 19#include <linux/kernel.h>
20#include <linux/sched.h>
21#include <linux/errno.h> 20#include <linux/errno.h>
22#include <linux/tty.h> 21#include <linux/tty.h>
23#include <linux/tty_flip.h> 22#include <linux/tty_flip.h>
diff --git a/drivers/serial/sunsu.c b/drivers/serial/sunsu.c
index 3ec3df21816b..96a852aa1903 100644
--- a/drivers/serial/sunsu.c
+++ b/drivers/serial/sunsu.c
@@ -17,7 +17,6 @@
17 17
18#include <linux/module.h> 18#include <linux/module.h>
19#include <linux/kernel.h> 19#include <linux/kernel.h>
20#include <linux/sched.h>
21#include <linux/spinlock.h> 20#include <linux/spinlock.h>
22#include <linux/errno.h> 21#include <linux/errno.h>
23#include <linux/tty.h> 22#include <linux/tty.h>
diff --git a/drivers/serial/sunzilog.c b/drivers/serial/sunzilog.c
index 244f796dc625..da73205e54cd 100644
--- a/drivers/serial/sunzilog.c
+++ b/drivers/serial/sunzilog.c
@@ -14,7 +14,6 @@
14 14
15#include <linux/module.h> 15#include <linux/module.h>
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/sched.h>
18#include <linux/errno.h> 17#include <linux/errno.h>
19#include <linux/delay.h> 18#include <linux/delay.h>
20#include <linux/tty.h> 19#include <linux/tty.h>
diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
index 9052f4c3493b..7e54e48efd5c 100644
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
@@ -51,6 +51,13 @@ config SPI_MASTER
51comment "SPI Master Controller Drivers" 51comment "SPI Master Controller Drivers"
52 depends on SPI_MASTER 52 depends on SPI_MASTER
53 53
54config SPI_ATMEL
55 tristate "Atmel SPI Controller"
56 depends on (ARCH_AT91 || AVR32) && SPI_MASTER
57 help
58 This selects a driver for the Atmel SPI Controller, present on
59 many AT32 (AVR32) and AT91 (ARM) chips.
60
54config SPI_BITBANG 61config SPI_BITBANG
55 tristate "Bitbanging SPI master" 62 tristate "Bitbanging SPI master"
56 depends on SPI_MASTER && EXPERIMENTAL 63 depends on SPI_MASTER && EXPERIMENTAL
diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
index bf271fe4e536..3c280ad89202 100644
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
@@ -12,6 +12,7 @@ obj-$(CONFIG_SPI_MASTER) += spi.o
12 12
13# SPI master controller drivers (bus) 13# SPI master controller drivers (bus)
14obj-$(CONFIG_SPI_BITBANG) += spi_bitbang.o 14obj-$(CONFIG_SPI_BITBANG) += spi_bitbang.o
15obj-$(CONFIG_SPI_ATMEL) += atmel_spi.o
15obj-$(CONFIG_SPI_BUTTERFLY) += spi_butterfly.o 16obj-$(CONFIG_SPI_BUTTERFLY) += spi_butterfly.o
16obj-$(CONFIG_SPI_IMX) += spi_imx.o 17obj-$(CONFIG_SPI_IMX) += spi_imx.o
17obj-$(CONFIG_SPI_PXA2XX) += pxa2xx_spi.o 18obj-$(CONFIG_SPI_PXA2XX) += pxa2xx_spi.o
diff --git a/drivers/spi/atmel_spi.c b/drivers/spi/atmel_spi.c
new file mode 100644
index 000000000000..c2a9fef58edc
--- /dev/null
+++ b/drivers/spi/atmel_spi.c
@@ -0,0 +1,678 @@
1/*
2 * Driver for Atmel AT32 and AT91 SPI Controllers
3 *
4 * Copyright (C) 2006 Atmel Corporation
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10
11#include <linux/kernel.h>
12#include <linux/init.h>
13#include <linux/clk.h>
14#include <linux/module.h>
15#include <linux/platform_device.h>
16#include <linux/delay.h>
17#include <linux/dma-mapping.h>
18#include <linux/err.h>
19#include <linux/interrupt.h>
20#include <linux/spi/spi.h>
21
22#include <asm/io.h>
23#include <asm/arch/board.h>
24#include <asm/arch/gpio.h>
25
26#include "atmel_spi.h"
27
28/*
29 * The core SPI transfer engine just talks to a register bank to set up
30 * DMA transfers; transfer queue progress is driven by IRQs. The clock
31 * framework provides the base clock, subdivided for each spi_device.
32 *
33 * Newer controllers, marked with "new_1" flag, have:
34 * - CR.LASTXFER
35 * - SPI_MR.DIV32 may become FDIV or must-be-zero (here: always zero)
36 * - SPI_SR.TXEMPTY, SPI_SR.NSSR (and corresponding irqs)
37 * - SPI_CSRx.CSAAT
38 * - SPI_CSRx.SBCR allows faster clocking
39 */
40struct atmel_spi {
41 spinlock_t lock;
42
43 void __iomem *regs;
44 int irq;
45 struct clk *clk;
46 struct platform_device *pdev;
47 unsigned new_1:1;
48
49 u8 stopping;
50 struct list_head queue;
51 struct spi_transfer *current_transfer;
52 unsigned long remaining_bytes;
53
54 void *buffer;
55 dma_addr_t buffer_dma;
56};
57
58#define BUFFER_SIZE PAGE_SIZE
59#define INVALID_DMA_ADDRESS 0xffffffff
60
61/*
62 * Earlier SPI controllers (e.g. on at91rm9200) have a design bug whereby
63 * they assume that spi slave device state will not change on deselect, so
64 * that automagic deselection is OK. Not so! Workaround uses nCSx pins
65 * as GPIOs; or newer controllers have CSAAT and friends.
66 *
67 * Since the CSAAT functionality is a bit weird on newer controllers
68 * as well, we use GPIO to control nCSx pins on all controllers.
69 */
70
71static inline void cs_activate(struct spi_device *spi)
72{
73 unsigned gpio = (unsigned) spi->controller_data;
74 unsigned active = spi->mode & SPI_CS_HIGH;
75
76 dev_dbg(&spi->dev, "activate %u%s\n", gpio, active ? " (high)" : "");
77 gpio_set_value(gpio, active);
78}
79
80static inline void cs_deactivate(struct spi_device *spi)
81{
82 unsigned gpio = (unsigned) spi->controller_data;
83 unsigned active = spi->mode & SPI_CS_HIGH;
84
85 dev_dbg(&spi->dev, "DEactivate %u%s\n", gpio, active ? " (low)" : "");
86 gpio_set_value(gpio, !active);
87}
88
89/*
90 * Submit next transfer for DMA.
91 * lock is held, spi irq is blocked
92 */
93static void atmel_spi_next_xfer(struct spi_master *master,
94 struct spi_message *msg)
95{
96 struct atmel_spi *as = spi_master_get_devdata(master);
97 struct spi_transfer *xfer;
98 u32 len;
99 dma_addr_t tx_dma, rx_dma;
100
101 xfer = as->current_transfer;
102 if (!xfer || as->remaining_bytes == 0) {
103 if (xfer)
104 xfer = list_entry(xfer->transfer_list.next,
105 struct spi_transfer, transfer_list);
106 else
107 xfer = list_entry(msg->transfers.next,
108 struct spi_transfer, transfer_list);
109 as->remaining_bytes = xfer->len;
110 as->current_transfer = xfer;
111 }
112
113 len = as->remaining_bytes;
114
115 tx_dma = xfer->tx_dma;
116 rx_dma = xfer->rx_dma;
117
118 /* use scratch buffer only when rx or tx data is unspecified */
119 if (rx_dma == INVALID_DMA_ADDRESS) {
120 rx_dma = as->buffer_dma;
121 if (len > BUFFER_SIZE)
122 len = BUFFER_SIZE;
123 }
124 if (tx_dma == INVALID_DMA_ADDRESS) {
125 tx_dma = as->buffer_dma;
126 if (len > BUFFER_SIZE)
127 len = BUFFER_SIZE;
128 memset(as->buffer, 0, len);
129 dma_sync_single_for_device(&as->pdev->dev,
130 as->buffer_dma, len, DMA_TO_DEVICE);
131 }
132
133 spi_writel(as, RPR, rx_dma);
134 spi_writel(as, TPR, tx_dma);
135
136 as->remaining_bytes -= len;
137 if (msg->spi->bits_per_word > 8)
138 len >>= 1;
139
140 /* REVISIT: when xfer->delay_usecs == 0, the PDC "next transfer"
141 * mechanism might help avoid the IRQ latency between transfers
142 *
143 * We're also waiting for ENDRX before we start the next
144 * transfer because we need to handle some difficult timing
145 * issues otherwise. If we wait for ENDTX in one transfer and
146 * then starts waiting for ENDRX in the next, it's difficult
147 * to tell the difference between the ENDRX interrupt we're
148 * actually waiting for and the ENDRX interrupt of the
149 * previous transfer.
150 *
151 * It should be doable, though. Just not now...
152 */
153 spi_writel(as, TNCR, 0);
154 spi_writel(as, RNCR, 0);
155 spi_writel(as, IER, SPI_BIT(ENDRX) | SPI_BIT(OVRES));
156
157 dev_dbg(&msg->spi->dev,
158 " start xfer %p: len %u tx %p/%08x rx %p/%08x imr %03x\n",
159 xfer, xfer->len, xfer->tx_buf, xfer->tx_dma,
160 xfer->rx_buf, xfer->rx_dma, spi_readl(as, IMR));
161
162 spi_writel(as, TCR, len);
163 spi_writel(as, RCR, len);
164 spi_writel(as, PTCR, SPI_BIT(TXTEN) | SPI_BIT(RXTEN));
165}
166
167static void atmel_spi_next_message(struct spi_master *master)
168{
169 struct atmel_spi *as = spi_master_get_devdata(master);
170 struct spi_message *msg;
171 u32 mr;
172
173 BUG_ON(as->current_transfer);
174
175 msg = list_entry(as->queue.next, struct spi_message, queue);
176
177 /* Select the chip */
178 mr = spi_readl(as, MR);
179 mr = SPI_BFINS(PCS, ~(1 << msg->spi->chip_select), mr);
180 spi_writel(as, MR, mr);
181 cs_activate(msg->spi);
182
183 atmel_spi_next_xfer(master, msg);
184}
185
186static void
187atmel_spi_dma_map_xfer(struct atmel_spi *as, struct spi_transfer *xfer)
188{
189 xfer->tx_dma = xfer->rx_dma = INVALID_DMA_ADDRESS;
190 if (xfer->tx_buf)
191 xfer->tx_dma = dma_map_single(&as->pdev->dev,
192 (void *) xfer->tx_buf, xfer->len,
193 DMA_TO_DEVICE);
194 if (xfer->rx_buf)
195 xfer->rx_dma = dma_map_single(&as->pdev->dev,
196 xfer->rx_buf, xfer->len,
197 DMA_FROM_DEVICE);
198}
199
200static void atmel_spi_dma_unmap_xfer(struct spi_master *master,
201 struct spi_transfer *xfer)
202{
203 if (xfer->tx_dma != INVALID_DMA_ADDRESS)
204 dma_unmap_single(master->cdev.dev, xfer->tx_dma,
205 xfer->len, DMA_TO_DEVICE);
206 if (xfer->rx_dma != INVALID_DMA_ADDRESS)
207 dma_unmap_single(master->cdev.dev, xfer->rx_dma,
208 xfer->len, DMA_FROM_DEVICE);
209}
210
211static void
212atmel_spi_msg_done(struct spi_master *master, struct atmel_spi *as,
213 struct spi_message *msg, int status)
214{
215 cs_deactivate(msg->spi);
216 list_del(&msg->queue);
217 msg->status = status;
218
219 dev_dbg(master->cdev.dev,
220 "xfer complete: %u bytes transferred\n",
221 msg->actual_length);
222
223 spin_unlock(&as->lock);
224 msg->complete(msg->context);
225 spin_lock(&as->lock);
226
227 as->current_transfer = NULL;
228
229 /* continue if needed */
230 if (list_empty(&as->queue) || as->stopping)
231 spi_writel(as, PTCR, SPI_BIT(RXTDIS) | SPI_BIT(TXTDIS));
232 else
233 atmel_spi_next_message(master);
234}
235
236static irqreturn_t
237atmel_spi_interrupt(int irq, void *dev_id)
238{
239 struct spi_master *master = dev_id;
240 struct atmel_spi *as = spi_master_get_devdata(master);
241 struct spi_message *msg;
242 struct spi_transfer *xfer;
243 u32 status, pending, imr;
244 int ret = IRQ_NONE;
245
246 spin_lock(&as->lock);
247
248 xfer = as->current_transfer;
249 msg = list_entry(as->queue.next, struct spi_message, queue);
250
251 imr = spi_readl(as, IMR);
252 status = spi_readl(as, SR);
253 pending = status & imr;
254
255 if (pending & SPI_BIT(OVRES)) {
256 int timeout;
257
258 ret = IRQ_HANDLED;
259
260 spi_writel(as, IDR, (SPI_BIT(ENDTX) | SPI_BIT(ENDRX)
261 | SPI_BIT(OVRES)));
262
263 /*
264 * When we get an overrun, we disregard the current
265 * transfer. Data will not be copied back from any
266 * bounce buffer and msg->actual_len will not be
267 * updated with the last xfer.
268 *
269 * We will also not process any remaning transfers in
270 * the message.
271 *
272 * First, stop the transfer and unmap the DMA buffers.
273 */
274 spi_writel(as, PTCR, SPI_BIT(RXTDIS) | SPI_BIT(TXTDIS));
275 if (!msg->is_dma_mapped)
276 atmel_spi_dma_unmap_xfer(master, xfer);
277
278 /* REVISIT: udelay in irq is unfriendly */
279 if (xfer->delay_usecs)
280 udelay(xfer->delay_usecs);
281
282 dev_warn(master->cdev.dev, "fifo overrun (%u/%u remaining)\n",
283 spi_readl(as, TCR), spi_readl(as, RCR));
284
285 /*
286 * Clean up DMA registers and make sure the data
287 * registers are empty.
288 */
289 spi_writel(as, RNCR, 0);
290 spi_writel(as, TNCR, 0);
291 spi_writel(as, RCR, 0);
292 spi_writel(as, TCR, 0);
293 for (timeout = 1000; timeout; timeout--)
294 if (spi_readl(as, SR) & SPI_BIT(TXEMPTY))
295 break;
296 if (!timeout)
297 dev_warn(master->cdev.dev,
298 "timeout waiting for TXEMPTY");
299 while (spi_readl(as, SR) & SPI_BIT(RDRF))
300 spi_readl(as, RDR);
301
302 /* Clear any overrun happening while cleaning up */
303 spi_readl(as, SR);
304
305 atmel_spi_msg_done(master, as, msg, -EIO);
306 } else if (pending & SPI_BIT(ENDRX)) {
307 ret = IRQ_HANDLED;
308
309 spi_writel(as, IDR, pending);
310
311 if (as->remaining_bytes == 0) {
312 msg->actual_length += xfer->len;
313
314 if (!msg->is_dma_mapped)
315 atmel_spi_dma_unmap_xfer(master, xfer);
316
317 /* REVISIT: udelay in irq is unfriendly */
318 if (xfer->delay_usecs)
319 udelay(xfer->delay_usecs);
320
321 if (msg->transfers.prev == &xfer->transfer_list) {
322 /* report completed message */
323 atmel_spi_msg_done(master, as, msg, 0);
324 } else {
325 if (xfer->cs_change) {
326 cs_deactivate(msg->spi);
327 udelay(1);
328 cs_activate(msg->spi);
329 }
330
331 /*
332 * Not done yet. Submit the next transfer.
333 *
334 * FIXME handle protocol options for xfer
335 */
336 atmel_spi_next_xfer(master, msg);
337 }
338 } else {
339 /*
340 * Keep going, we still have data to send in
341 * the current transfer.
342 */
343 atmel_spi_next_xfer(master, msg);
344 }
345 }
346
347 spin_unlock(&as->lock);
348
349 return ret;
350}
351
352#define MODEBITS (SPI_CPOL | SPI_CPHA | SPI_CS_HIGH)
353
354static int atmel_spi_setup(struct spi_device *spi)
355{
356 struct atmel_spi *as;
357 u32 scbr, csr;
358 unsigned int bits = spi->bits_per_word;
359 unsigned long bus_hz, sck_hz;
360 unsigned int npcs_pin;
361 int ret;
362
363 as = spi_master_get_devdata(spi->master);
364
365 if (as->stopping)
366 return -ESHUTDOWN;
367
368 if (spi->chip_select > spi->master->num_chipselect) {
369 dev_dbg(&spi->dev,
370 "setup: invalid chipselect %u (%u defined)\n",
371 spi->chip_select, spi->master->num_chipselect);
372 return -EINVAL;
373 }
374
375 if (bits == 0)
376 bits = 8;
377 if (bits < 8 || bits > 16) {
378 dev_dbg(&spi->dev,
379 "setup: invalid bits_per_word %u (8 to 16)\n",
380 bits);
381 return -EINVAL;
382 }
383
384 if (spi->mode & ~MODEBITS) {
385 dev_dbg(&spi->dev, "setup: unsupported mode bits %x\n",
386 spi->mode & ~MODEBITS);
387 return -EINVAL;
388 }
389
390 /* speed zero convention is used by some upper layers */
391 bus_hz = clk_get_rate(as->clk);
392 if (spi->max_speed_hz) {
393 /* assume div32/fdiv/mbz == 0 */
394 if (!as->new_1)
395 bus_hz /= 2;
396 scbr = ((bus_hz + spi->max_speed_hz - 1)
397 / spi->max_speed_hz);
398 if (scbr >= (1 << SPI_SCBR_SIZE)) {
399 dev_dbg(&spi->dev, "setup: %d Hz too slow, scbr %u\n",
400 spi->max_speed_hz, scbr);
401 return -EINVAL;
402 }
403 } else
404 scbr = 0xff;
405 sck_hz = bus_hz / scbr;
406
407 csr = SPI_BF(SCBR, scbr) | SPI_BF(BITS, bits - 8);
408 if (spi->mode & SPI_CPOL)
409 csr |= SPI_BIT(CPOL);
410 if (!(spi->mode & SPI_CPHA))
411 csr |= SPI_BIT(NCPHA);
412
413 /* TODO: DLYBS and DLYBCT */
414 csr |= SPI_BF(DLYBS, 10);
415 csr |= SPI_BF(DLYBCT, 10);
416
417 /* chipselect must have been muxed as GPIO (e.g. in board setup) */
418 npcs_pin = (unsigned int)spi->controller_data;
419 if (!spi->controller_state) {
420 ret = gpio_request(npcs_pin, "spi_npcs");
421 if (ret)
422 return ret;
423 spi->controller_state = (void *)npcs_pin;
424 gpio_direction_output(npcs_pin);
425 }
426
427 dev_dbg(&spi->dev,
428 "setup: %lu Hz bpw %u mode 0x%x -> csr%d %08x\n",
429 sck_hz, bits, spi->mode, spi->chip_select, csr);
430
431 spi_writel(as, CSR0 + 4 * spi->chip_select, csr);
432
433 return 0;
434}
435
436static int atmel_spi_transfer(struct spi_device *spi, struct spi_message *msg)
437{
438 struct atmel_spi *as;
439 struct spi_transfer *xfer;
440 unsigned long flags;
441 struct device *controller = spi->master->cdev.dev;
442
443 as = spi_master_get_devdata(spi->master);
444
445 dev_dbg(controller, "new message %p submitted for %s\n",
446 msg, spi->dev.bus_id);
447
448 if (unlikely(list_empty(&msg->transfers)
449 || !spi->max_speed_hz))
450 return -EINVAL;
451
452 if (as->stopping)
453 return -ESHUTDOWN;
454
455 list_for_each_entry(xfer, &msg->transfers, transfer_list) {
456 if (!(xfer->tx_buf || xfer->rx_buf)) {
457 dev_dbg(&spi->dev, "missing rx or tx buf\n");
458 return -EINVAL;
459 }
460
461 /* FIXME implement these protocol options!! */
462 if (xfer->bits_per_word || xfer->speed_hz) {
463 dev_dbg(&spi->dev, "no protocol options yet\n");
464 return -ENOPROTOOPT;
465 }
466 }
467
468 /* scrub dcache "early" */
469 if (!msg->is_dma_mapped) {
470 list_for_each_entry(xfer, &msg->transfers, transfer_list)
471 atmel_spi_dma_map_xfer(as, xfer);
472 }
473
474 list_for_each_entry(xfer, &msg->transfers, transfer_list) {
475 dev_dbg(controller,
476 " xfer %p: len %u tx %p/%08x rx %p/%08x\n",
477 xfer, xfer->len,
478 xfer->tx_buf, xfer->tx_dma,
479 xfer->rx_buf, xfer->rx_dma);
480 }
481
482 msg->status = -EINPROGRESS;
483 msg->actual_length = 0;
484
485 spin_lock_irqsave(&as->lock, flags);
486 list_add_tail(&msg->queue, &as->queue);
487 if (!as->current_transfer)
488 atmel_spi_next_message(spi->master);
489 spin_unlock_irqrestore(&as->lock, flags);
490
491 return 0;
492}
493
494static void atmel_spi_cleanup(const struct spi_device *spi)
495{
496 if (spi->controller_state)
497 gpio_free((unsigned int)spi->controller_data);
498}
499
500/*-------------------------------------------------------------------------*/
501
502static int __init atmel_spi_probe(struct platform_device *pdev)
503{
504 struct resource *regs;
505 int irq;
506 struct clk *clk;
507 int ret;
508 struct spi_master *master;
509 struct atmel_spi *as;
510
511 regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
512 if (!regs)
513 return -ENXIO;
514
515 irq = platform_get_irq(pdev, 0);
516 if (irq < 0)
517 return irq;
518
519 clk = clk_get(&pdev->dev, "spi_clk");
520 if (IS_ERR(clk))
521 return PTR_ERR(clk);
522
523 /* setup spi core then atmel-specific driver state */
524 ret = -ENOMEM;
525 master = spi_alloc_master(&pdev->dev, sizeof *as);
526 if (!master)
527 goto out_free;
528
529 master->bus_num = pdev->id;
530 master->num_chipselect = 4;
531 master->setup = atmel_spi_setup;
532 master->transfer = atmel_spi_transfer;
533 master->cleanup = atmel_spi_cleanup;
534 platform_set_drvdata(pdev, master);
535
536 as = spi_master_get_devdata(master);
537
538 as->buffer = dma_alloc_coherent(&pdev->dev, BUFFER_SIZE,
539 &as->buffer_dma, GFP_KERNEL);
540 if (!as->buffer)
541 goto out_free;
542
543 spin_lock_init(&as->lock);
544 INIT_LIST_HEAD(&as->queue);
545 as->pdev = pdev;
546 as->regs = ioremap(regs->start, (regs->end - regs->start) + 1);
547 if (!as->regs)
548 goto out_free_buffer;
549 as->irq = irq;
550 as->clk = clk;
551#ifdef CONFIG_ARCH_AT91
552 if (!cpu_is_at91rm9200())
553 as->new_1 = 1;
554#endif
555
556 ret = request_irq(irq, atmel_spi_interrupt, 0,
557 pdev->dev.bus_id, master);
558 if (ret)
559 goto out_unmap_regs;
560
561 /* Initialize the hardware */
562 clk_enable(clk);
563 spi_writel(as, CR, SPI_BIT(SWRST));
564 spi_writel(as, MR, SPI_BIT(MSTR) | SPI_BIT(MODFDIS));
565 spi_writel(as, PTCR, SPI_BIT(RXTDIS) | SPI_BIT(TXTDIS));
566 spi_writel(as, CR, SPI_BIT(SPIEN));
567
568 /* go! */
569 dev_info(&pdev->dev, "Atmel SPI Controller at 0x%08lx (irq %d)\n",
570 (unsigned long)regs->start, irq);
571
572 ret = spi_register_master(master);
573 if (ret)
574 goto out_reset_hw;
575
576 return 0;
577
578out_reset_hw:
579 spi_writel(as, CR, SPI_BIT(SWRST));
580 clk_disable(clk);
581 free_irq(irq, master);
582out_unmap_regs:
583 iounmap(as->regs);
584out_free_buffer:
585 dma_free_coherent(&pdev->dev, BUFFER_SIZE, as->buffer,
586 as->buffer_dma);
587out_free:
588 clk_put(clk);
589 spi_master_put(master);
590 return ret;
591}
592
593static int __exit atmel_spi_remove(struct platform_device *pdev)
594{
595 struct spi_master *master = platform_get_drvdata(pdev);
596 struct atmel_spi *as = spi_master_get_devdata(master);
597 struct spi_message *msg;
598
599 /* reset the hardware and block queue progress */
600 spin_lock_irq(&as->lock);
601 as->stopping = 1;
602 spi_writel(as, CR, SPI_BIT(SWRST));
603 spi_readl(as, SR);
604 spin_unlock_irq(&as->lock);
605
606 /* Terminate remaining queued transfers */
607 list_for_each_entry(msg, &as->queue, queue) {
608 /* REVISIT unmapping the dma is a NOP on ARM and AVR32
609 * but we shouldn't depend on that...
610 */
611 msg->status = -ESHUTDOWN;
612 msg->complete(msg->context);
613 }
614
615 dma_free_coherent(&pdev->dev, BUFFER_SIZE, as->buffer,
616 as->buffer_dma);
617
618 clk_disable(as->clk);
619 clk_put(as->clk);
620 free_irq(as->irq, master);
621 iounmap(as->regs);
622
623 spi_unregister_master(master);
624
625 return 0;
626}
627
628#ifdef CONFIG_PM
629
630static int atmel_spi_suspend(struct platform_device *pdev, pm_message_t mesg)
631{
632 struct spi_master *master = platform_get_drvdata(pdev);
633 struct atmel_spi *as = spi_master_get_devdata(master);
634
635 clk_disable(as->clk);
636 return 0;
637}
638
639static int atmel_spi_resume(struct platform_device *pdev)
640{
641 struct spi_master *master = platform_get_drvdata(pdev);
642 struct atmel_spi *as = spi_master_get_devdata(master);
643
644 clk_enable(as->clk);
645 return 0;
646}
647
648#else
649#define atmel_spi_suspend NULL
650#define atmel_spi_resume NULL
651#endif
652
653
654static struct platform_driver atmel_spi_driver = {
655 .driver = {
656 .name = "atmel_spi",
657 .owner = THIS_MODULE,
658 },
659 .suspend = atmel_spi_suspend,
660 .resume = atmel_spi_resume,
661 .remove = __exit_p(atmel_spi_remove),
662};
663
664static int __init atmel_spi_init(void)
665{
666 return platform_driver_probe(&atmel_spi_driver, atmel_spi_probe);
667}
668module_init(atmel_spi_init);
669
670static void __exit atmel_spi_exit(void)
671{
672 platform_driver_unregister(&atmel_spi_driver);
673}
674module_exit(atmel_spi_exit);
675
676MODULE_DESCRIPTION("Atmel AT32/AT91 SPI Controller driver");
677MODULE_AUTHOR("Haavard Skinnemoen <hskinnemoen@atmel.com>");
678MODULE_LICENSE("GPL");
diff --git a/drivers/spi/atmel_spi.h b/drivers/spi/atmel_spi.h
new file mode 100644
index 000000000000..6e06b6ad3a45
--- /dev/null
+++ b/drivers/spi/atmel_spi.h
@@ -0,0 +1,167 @@
1/*
2 * Register definitions for Atmel Serial Peripheral Interface (SPI)
3 *
4 * Copyright (C) 2006 Atmel Corporation
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10#ifndef __ATMEL_SPI_H__
11#define __ATMEL_SPI_H__
12
13/* SPI register offsets */
14#define SPI_CR 0x0000
15#define SPI_MR 0x0004
16#define SPI_RDR 0x0008
17#define SPI_TDR 0x000c
18#define SPI_SR 0x0010
19#define SPI_IER 0x0014
20#define SPI_IDR 0x0018
21#define SPI_IMR 0x001c
22#define SPI_CSR0 0x0030
23#define SPI_CSR1 0x0034
24#define SPI_CSR2 0x0038
25#define SPI_CSR3 0x003c
26#define SPI_RPR 0x0100
27#define SPI_RCR 0x0104
28#define SPI_TPR 0x0108
29#define SPI_TCR 0x010c
30#define SPI_RNPR 0x0110
31#define SPI_RNCR 0x0114
32#define SPI_TNPR 0x0118
33#define SPI_TNCR 0x011c
34#define SPI_PTCR 0x0120
35#define SPI_PTSR 0x0124
36
37/* Bitfields in CR */
38#define SPI_SPIEN_OFFSET 0
39#define SPI_SPIEN_SIZE 1
40#define SPI_SPIDIS_OFFSET 1
41#define SPI_SPIDIS_SIZE 1
42#define SPI_SWRST_OFFSET 7
43#define SPI_SWRST_SIZE 1
44#define SPI_LASTXFER_OFFSET 24
45#define SPI_LASTXFER_SIZE 1
46
47/* Bitfields in MR */
48#define SPI_MSTR_OFFSET 0
49#define SPI_MSTR_SIZE 1
50#define SPI_PS_OFFSET 1
51#define SPI_PS_SIZE 1
52#define SPI_PCSDEC_OFFSET 2
53#define SPI_PCSDEC_SIZE 1
54#define SPI_FDIV_OFFSET 3
55#define SPI_FDIV_SIZE 1
56#define SPI_MODFDIS_OFFSET 4
57#define SPI_MODFDIS_SIZE 1
58#define SPI_LLB_OFFSET 7
59#define SPI_LLB_SIZE 1
60#define SPI_PCS_OFFSET 16
61#define SPI_PCS_SIZE 4
62#define SPI_DLYBCS_OFFSET 24
63#define SPI_DLYBCS_SIZE 8
64
65/* Bitfields in RDR */
66#define SPI_RD_OFFSET 0
67#define SPI_RD_SIZE 16
68
69/* Bitfields in TDR */
70#define SPI_TD_OFFSET 0
71#define SPI_TD_SIZE 16
72
73/* Bitfields in SR */
74#define SPI_RDRF_OFFSET 0
75#define SPI_RDRF_SIZE 1
76#define SPI_TDRE_OFFSET 1
77#define SPI_TDRE_SIZE 1
78#define SPI_MODF_OFFSET 2
79#define SPI_MODF_SIZE 1
80#define SPI_OVRES_OFFSET 3
81#define SPI_OVRES_SIZE 1
82#define SPI_ENDRX_OFFSET 4
83#define SPI_ENDRX_SIZE 1
84#define SPI_ENDTX_OFFSET 5
85#define SPI_ENDTX_SIZE 1
86#define SPI_RXBUFF_OFFSET 6
87#define SPI_RXBUFF_SIZE 1
88#define SPI_TXBUFE_OFFSET 7
89#define SPI_TXBUFE_SIZE 1
90#define SPI_NSSR_OFFSET 8
91#define SPI_NSSR_SIZE 1
92#define SPI_TXEMPTY_OFFSET 9
93#define SPI_TXEMPTY_SIZE 1
94#define SPI_SPIENS_OFFSET 16
95#define SPI_SPIENS_SIZE 1
96
97/* Bitfields in CSR0 */
98#define SPI_CPOL_OFFSET 0
99#define SPI_CPOL_SIZE 1
100#define SPI_NCPHA_OFFSET 1
101#define SPI_NCPHA_SIZE 1
102#define SPI_CSAAT_OFFSET 3
103#define SPI_CSAAT_SIZE 1
104#define SPI_BITS_OFFSET 4
105#define SPI_BITS_SIZE 4
106#define SPI_SCBR_OFFSET 8
107#define SPI_SCBR_SIZE 8
108#define SPI_DLYBS_OFFSET 16
109#define SPI_DLYBS_SIZE 8
110#define SPI_DLYBCT_OFFSET 24
111#define SPI_DLYBCT_SIZE 8
112
113/* Bitfields in RCR */
114#define SPI_RXCTR_OFFSET 0
115#define SPI_RXCTR_SIZE 16
116
117/* Bitfields in TCR */
118#define SPI_TXCTR_OFFSET 0
119#define SPI_TXCTR_SIZE 16
120
121/* Bitfields in RNCR */
122#define SPI_RXNCR_OFFSET 0
123#define SPI_RXNCR_SIZE 16
124
125/* Bitfields in TNCR */
126#define SPI_TXNCR_OFFSET 0
127#define SPI_TXNCR_SIZE 16
128
129/* Bitfields in PTCR */
130#define SPI_RXTEN_OFFSET 0
131#define SPI_RXTEN_SIZE 1
132#define SPI_RXTDIS_OFFSET 1
133#define SPI_RXTDIS_SIZE 1
134#define SPI_TXTEN_OFFSET 8
135#define SPI_TXTEN_SIZE 1
136#define SPI_TXTDIS_OFFSET 9
137#define SPI_TXTDIS_SIZE 1
138
139/* Constants for BITS */
140#define SPI_BITS_8_BPT 0
141#define SPI_BITS_9_BPT 1
142#define SPI_BITS_10_BPT 2
143#define SPI_BITS_11_BPT 3
144#define SPI_BITS_12_BPT 4
145#define SPI_BITS_13_BPT 5
146#define SPI_BITS_14_BPT 6
147#define SPI_BITS_15_BPT 7
148#define SPI_BITS_16_BPT 8
149
150/* Bit manipulation macros */
151#define SPI_BIT(name) \
152 (1 << SPI_##name##_OFFSET)
153#define SPI_BF(name,value) \
154 (((value) & ((1 << SPI_##name##_SIZE) - 1)) << SPI_##name##_OFFSET)
155#define SPI_BFEXT(name,value) \
156 (((value) >> SPI_##name##_OFFSET) & ((1 << SPI_##name##_SIZE) - 1))
157#define SPI_BFINS(name,value,old) \
158 ( ((old) & ~(((1 << SPI_##name##_SIZE) - 1) << SPI_##name##_OFFSET)) \
159 | SPI_BF(name,value))
160
161/* Register access macros */
162#define spi_readl(port,reg) \
163 __raw_readl((port)->regs + SPI_##reg)
164#define spi_writel(port,reg,value) \
165 __raw_writel((value), (port)->regs + SPI_##reg)
166
167#endif /* __ATMEL_SPI_H__ */
diff --git a/drivers/tc/lk201.c b/drivers/tc/lk201.c
index 757dec9c7ee9..a90c255f079d 100644
--- a/drivers/tc/lk201.c
+++ b/drivers/tc/lk201.c
@@ -10,7 +10,6 @@
10 10
11 11
12#include <linux/errno.h> 12#include <linux/errno.h>
13#include <linux/sched.h>
14#include <linux/tty.h> 13#include <linux/tty.h>
15#include <linux/kernel.h> 14#include <linux/kernel.h>
16#include <linux/init.h> 15#include <linux/init.h>
diff --git a/drivers/telephony/ixj_pcmcia.c b/drivers/telephony/ixj_pcmcia.c
index 164a5dcf1f1e..3e658dc7c2d8 100644
--- a/drivers/telephony/ixj_pcmcia.c
+++ b/drivers/telephony/ixj_pcmcia.c
@@ -3,7 +3,6 @@
3#include <linux/module.h> 3#include <linux/module.h>
4 4
5#include <linux/init.h> 5#include <linux/init.h>
6#include <linux/sched.h>
7#include <linux/kernel.h> /* printk() */ 6#include <linux/kernel.h> /* printk() */
8#include <linux/fs.h> /* everything... */ 7#include <linux/fs.h> /* everything... */
9#include <linux/errno.h> /* error codes */ 8#include <linux/errno.h> /* error codes */
diff --git a/drivers/usb/gadget/at91_udc.c b/drivers/usb/gadget/at91_udc.c
index f39050145f1f..36b36e0175fc 100644
--- a/drivers/usb/gadget/at91_udc.c
+++ b/drivers/usb/gadget/at91_udc.c
@@ -30,7 +30,6 @@
30#include <linux/platform_device.h> 30#include <linux/platform_device.h>
31#include <linux/delay.h> 31#include <linux/delay.h>
32#include <linux/ioport.h> 32#include <linux/ioport.h>
33#include <linux/sched.h>
34#include <linux/slab.h> 33#include <linux/slab.h>
35#include <linux/smp_lock.h> 34#include <linux/smp_lock.h>
36#include <linux/errno.h> 35#include <linux/errno.h>
diff --git a/drivers/usb/gadget/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c
index 3c2bc075ef4f..7d7909cf2558 100644
--- a/drivers/usb/gadget/dummy_hcd.c
+++ b/drivers/usb/gadget/dummy_hcd.c
@@ -40,7 +40,6 @@
40#include <linux/kernel.h> 40#include <linux/kernel.h>
41#include <linux/delay.h> 41#include <linux/delay.h>
42#include <linux/ioport.h> 42#include <linux/ioport.h>
43#include <linux/sched.h>
44#include <linux/slab.h> 43#include <linux/slab.h>
45#include <linux/smp_lock.h> 44#include <linux/smp_lock.h>
46#include <linux/errno.h> 45#include <linux/errno.h>
diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c
index 22e3c9443641..04e6b8508fb6 100644
--- a/drivers/usb/gadget/ether.c
+++ b/drivers/usb/gadget/ether.c
@@ -27,7 +27,6 @@
27#include <linux/kernel.h> 27#include <linux/kernel.h>
28#include <linux/delay.h> 28#include <linux/delay.h>
29#include <linux/ioport.h> 29#include <linux/ioport.h>
30#include <linux/sched.h>
31#include <linux/slab.h> 30#include <linux/slab.h>
32#include <linux/smp_lock.h> 31#include <linux/smp_lock.h>
33#include <linux/errno.h> 32#include <linux/errno.h>
diff --git a/drivers/usb/gadget/goku_udc.c b/drivers/usb/gadget/goku_udc.c
index e873cf488246..7b3a326b57ab 100644
--- a/drivers/usb/gadget/goku_udc.c
+++ b/drivers/usb/gadget/goku_udc.c
@@ -29,7 +29,6 @@
29#include <linux/pci.h> 29#include <linux/pci.h>
30#include <linux/delay.h> 30#include <linux/delay.h>
31#include <linux/ioport.h> 31#include <linux/ioport.h>
32#include <linux/sched.h>
33#include <linux/slab.h> 32#include <linux/slab.h>
34#include <linux/smp_lock.h> 33#include <linux/smp_lock.h>
35#include <linux/errno.h> 34#include <linux/errno.h>
diff --git a/drivers/usb/gadget/net2280.c b/drivers/usb/gadget/net2280.c
index 7617ff7bd5ac..49d737725f70 100644
--- a/drivers/usb/gadget/net2280.c
+++ b/drivers/usb/gadget/net2280.c
@@ -53,7 +53,6 @@
53#include <linux/kernel.h> 53#include <linux/kernel.h>
54#include <linux/delay.h> 54#include <linux/delay.h>
55#include <linux/ioport.h> 55#include <linux/ioport.h>
56#include <linux/sched.h>
57#include <linux/slab.h> 56#include <linux/slab.h>
58#include <linux/smp_lock.h> 57#include <linux/smp_lock.h>
59#include <linux/errno.h> 58#include <linux/errno.h>
diff --git a/drivers/usb/gadget/omap_udc.c b/drivers/usb/gadget/omap_udc.c
index 140104341db4..8f9a2b615422 100644
--- a/drivers/usb/gadget/omap_udc.c
+++ b/drivers/usb/gadget/omap_udc.c
@@ -28,7 +28,6 @@
28#include <linux/types.h> 28#include <linux/types.h>
29#include <linux/errno.h> 29#include <linux/errno.h>
30#include <linux/delay.h> 30#include <linux/delay.h>
31#include <linux/sched.h>
32#include <linux/slab.h> 31#include <linux/slab.h>
33#include <linux/init.h> 32#include <linux/init.h>
34#include <linux/timer.h> 33#include <linux/timer.h>
diff --git a/drivers/usb/gadget/pxa2xx_udc.c b/drivers/usb/gadget/pxa2xx_udc.c
index 0d225369847d..27904a56494b 100644
--- a/drivers/usb/gadget/pxa2xx_udc.c
+++ b/drivers/usb/gadget/pxa2xx_udc.c
@@ -33,7 +33,6 @@
33#include <linux/types.h> 33#include <linux/types.h>
34#include <linux/errno.h> 34#include <linux/errno.h>
35#include <linux/delay.h> 35#include <linux/delay.h>
36#include <linux/sched.h>
37#include <linux/slab.h> 36#include <linux/slab.h>
38#include <linux/init.h> 37#include <linux/init.h>
39#include <linux/timer.h> 38#include <linux/timer.h>
@@ -2614,7 +2613,7 @@ lubbock_fail0:
2614#endif 2613#endif
2615 if (vbus_irq) { 2614 if (vbus_irq) {
2616 retval = request_irq(vbus_irq, udc_vbus_irq, 2615 retval = request_irq(vbus_irq, udc_vbus_irq,
2617 SA_INTERRUPT | SA_SAMPLE_RANDOM, 2616 IRQF_DISABLED | IRQF_SAMPLE_RANDOM,
2618 driver_name, dev); 2617 driver_name, dev);
2619 if (retval != 0) { 2618 if (retval != 0) {
2620 printk(KERN_ERR "%s: can't get irq %i, err %d\n", 2619 printk(KERN_ERR "%s: can't get irq %i, err %d\n",
diff --git a/drivers/usb/gadget/serial.c b/drivers/usb/gadget/serial.c
index 6c742a909225..e6c19aa4bef3 100644
--- a/drivers/usb/gadget/serial.c
+++ b/drivers/usb/gadget/serial.c
@@ -21,7 +21,6 @@
21#include <linux/kernel.h> 21#include <linux/kernel.h>
22#include <linux/delay.h> 22#include <linux/delay.h>
23#include <linux/ioport.h> 23#include <linux/ioport.h>
24#include <linux/sched.h>
25#include <linux/slab.h> 24#include <linux/slab.h>
26#include <linux/smp_lock.h> 25#include <linux/smp_lock.h>
27#include <linux/errno.h> 26#include <linux/errno.h>
diff --git a/drivers/usb/gadget/zero.c b/drivers/usb/gadget/zero.c
index ebe04e0d2879..8c85e33f74a4 100644
--- a/drivers/usb/gadget/zero.c
+++ b/drivers/usb/gadget/zero.c
@@ -66,7 +66,6 @@
66#include <linux/kernel.h> 66#include <linux/kernel.h>
67#include <linux/delay.h> 67#include <linux/delay.h>
68#include <linux/ioport.h> 68#include <linux/ioport.h>
69#include <linux/sched.h>
70#include <linux/slab.h> 69#include <linux/slab.h>
71#include <linux/smp_lock.h> 70#include <linux/smp_lock.h>
72#include <linux/errno.h> 71#include <linux/errno.h>
diff --git a/drivers/usb/host/hc_crisv10.c b/drivers/usb/host/hc_crisv10.c
index f0ffb8907f29..32f7caf24747 100644
--- a/drivers/usb/host/hc_crisv10.c
+++ b/drivers/usb/host/hc_crisv10.c
@@ -7,7 +7,6 @@
7#include <linux/kernel.h> 7#include <linux/kernel.h>
8#include <linux/delay.h> 8#include <linux/delay.h>
9#include <linux/ioport.h> 9#include <linux/ioport.h>
10#include <linux/sched.h>
11#include <linux/slab.h> 10#include <linux/slab.h>
12#include <linux/errno.h> 11#include <linux/errno.h>
13#include <linux/unistd.h> 12#include <linux/unistd.h>
diff --git a/drivers/usb/host/ohci-ep93xx.c b/drivers/usb/host/ohci-ep93xx.c
index 44c60fba76e1..a68ce9d3c525 100644
--- a/drivers/usb/host/ohci-ep93xx.c
+++ b/drivers/usb/host/ohci-ep93xx.c
@@ -78,7 +78,7 @@ static int usb_hcd_ep93xx_probe(const struct hc_driver *driver,
78 78
79 ohci_hcd_init(hcd_to_ohci(hcd)); 79 ohci_hcd_init(hcd_to_ohci(hcd));
80 80
81 retval = usb_add_hcd(hcd, pdev->resource[1].start, SA_INTERRUPT); 81 retval = usb_add_hcd(hcd, pdev->resource[1].start, IRQF_DISABLED);
82 if (retval == 0) 82 if (retval == 0)
83 return retval; 83 return retval;
84 84
diff --git a/drivers/usb/host/ohci-pnx4008.c b/drivers/usb/host/ohci-pnx4008.c
index 893b172384da..d601bbb9387b 100644
--- a/drivers/usb/host/ohci-pnx4008.c
+++ b/drivers/usb/host/ohci-pnx4008.c
@@ -421,7 +421,7 @@ static int __devinit usb_hcd_pnx4008_probe(struct platform_device *pdev)
421 ohci_hcd_init(ohci); 421 ohci_hcd_init(ohci);
422 422
423 dev_info(&pdev->dev, "at 0x%p, irq %d\n", hcd->regs, hcd->irq); 423 dev_info(&pdev->dev, "at 0x%p, irq %d\n", hcd->regs, hcd->irq);
424 ret = usb_add_hcd(hcd, irq, SA_INTERRUPT); 424 ret = usb_add_hcd(hcd, irq, IRQF_DISABLED);
425 if (ret == 0) 425 if (ret == 0)
426 return ret; 426 return ret;
427 427
diff --git a/drivers/usb/host/ohci-pnx8550.c b/drivers/usb/host/ohci-pnx8550.c
index de45eb0051a7..85fdfd2a7ad0 100644
--- a/drivers/usb/host/ohci-pnx8550.c
+++ b/drivers/usb/host/ohci-pnx8550.c
@@ -107,7 +107,7 @@ int usb_hcd_pnx8550_probe (const struct hc_driver *driver,
107 107
108 ohci_hcd_init(hcd_to_ohci(hcd)); 108 ohci_hcd_init(hcd_to_ohci(hcd));
109 109
110 retval = usb_add_hcd(hcd, dev->resource[1].start, SA_INTERRUPT); 110 retval = usb_add_hcd(hcd, dev->resource[1].start, IRQF_DISABLED);
111 if (retval == 0) 111 if (retval == 0)
112 return retval; 112 return retval;
113 113
diff --git a/drivers/usb/host/sl811_cs.c b/drivers/usb/host/sl811_cs.c
index ac9f11d19817..2d0e73b20099 100644
--- a/drivers/usb/host/sl811_cs.c
+++ b/drivers/usb/host/sl811_cs.c
@@ -13,7 +13,6 @@
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/module.h> 14#include <linux/module.h>
15#include <linux/init.h> 15#include <linux/init.h>
16#include <linux/sched.h>
17#include <linux/ptrace.h> 16#include <linux/ptrace.h>
18#include <linux/slab.h> 17#include <linux/slab.h>
19#include <linux/string.h> 18#include <linux/string.h>
diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c
index 49b9d390b95f..ded4df30a631 100644
--- a/drivers/usb/host/uhci-hcd.c
+++ b/drivers/usb/host/uhci-hcd.c
@@ -28,7 +28,6 @@
28#include <linux/init.h> 28#include <linux/init.h>
29#include <linux/delay.h> 29#include <linux/delay.h>
30#include <linux/ioport.h> 30#include <linux/ioport.h>
31#include <linux/sched.h>
32#include <linux/slab.h> 31#include <linux/slab.h>
33#include <linux/errno.h> 32#include <linux/errno.h>
34#include <linux/unistd.h> 33#include <linux/unistd.h>
diff --git a/drivers/usb/image/microtek.c b/drivers/usb/image/microtek.c
index 8ccddf74534a..896cb2b71020 100644
--- a/drivers/usb/image/microtek.c
+++ b/drivers/usb/image/microtek.c
@@ -121,7 +121,6 @@
121 121
122#include <linux/module.h> 122#include <linux/module.h>
123#include <linux/kernel.h> 123#include <linux/kernel.h>
124#include <linux/sched.h>
125#include <linux/signal.h> 124#include <linux/signal.h>
126#include <linux/errno.h> 125#include <linux/errno.h>
127#include <linux/random.h> 126#include <linux/random.h>
diff --git a/drivers/usb/input/aiptek.c b/drivers/usb/input/aiptek.c
index 9f52429ce654..f857935e615c 100644
--- a/drivers/usb/input/aiptek.c
+++ b/drivers/usb/input/aiptek.c
@@ -76,7 +76,6 @@
76#include <linux/module.h> 76#include <linux/module.h>
77#include <linux/init.h> 77#include <linux/init.h>
78#include <linux/usb/input.h> 78#include <linux/usb/input.h>
79#include <linux/sched.h>
80#include <asm/uaccess.h> 79#include <asm/uaccess.h>
81#include <asm/unaligned.h> 80#include <asm/unaligned.h>
82 81
diff --git a/drivers/usb/input/hid-core.c b/drivers/usb/input/hid-core.c
index 84983d1b7164..4d8ed3d71a15 100644
--- a/drivers/usb/input/hid-core.c
+++ b/drivers/usb/input/hid-core.c
@@ -18,7 +18,6 @@
18#include <linux/slab.h> 18#include <linux/slab.h>
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/kernel.h> 20#include <linux/kernel.h>
21#include <linux/sched.h>
22#include <linux/list.h> 21#include <linux/list.h>
23#include <linux/mm.h> 22#include <linux/mm.h>
24#include <linux/smp_lock.h> 23#include <linux/smp_lock.h>
diff --git a/drivers/usb/input/hid-pidff.c b/drivers/usb/input/hid-pidff.c
index cbd2d53fefff..f5a90e950e6b 100644
--- a/drivers/usb/input/hid-pidff.c
+++ b/drivers/usb/input/hid-pidff.c
@@ -24,7 +24,6 @@
24 24
25#define debug(format, arg...) pr_debug("hid-pidff: " format "\n" , ## arg) 25#define debug(format, arg...) pr_debug("hid-pidff: " format "\n" , ## arg)
26 26
27#include <linux/sched.h>
28#include <linux/input.h> 27#include <linux/input.h>
29#include <linux/usb.h> 28#include <linux/usb.h>
30 29
diff --git a/drivers/usb/misc/sisusbvga/sisusb.c b/drivers/usb/misc/sisusbvga/sisusb.c
index 0398908b15d4..6f8b134a79cb 100644
--- a/drivers/usb/misc/sisusbvga/sisusb.c
+++ b/drivers/usb/misc/sisusbvga/sisusb.c
@@ -40,7 +40,6 @@
40#include <linux/module.h> 40#include <linux/module.h>
41#include <linux/kernel.h> 41#include <linux/kernel.h>
42#include <linux/signal.h> 42#include <linux/signal.h>
43#include <linux/sched.h>
44#include <linux/errno.h> 43#include <linux/errno.h>
45#include <linux/poll.h> 44#include <linux/poll.h>
46#include <linux/init.h> 45#include <linux/init.h>
diff --git a/drivers/usb/misc/sisusbvga/sisusb_con.c b/drivers/usb/misc/sisusbvga/sisusb_con.c
index 9148694627d5..1730d8642a47 100644
--- a/drivers/usb/misc/sisusbvga/sisusb_con.c
+++ b/drivers/usb/misc/sisusbvga/sisusb_con.c
@@ -51,7 +51,6 @@
51#include <linux/module.h> 51#include <linux/module.h>
52#include <linux/kernel.h> 52#include <linux/kernel.h>
53#include <linux/signal.h> 53#include <linux/signal.h>
54#include <linux/sched.h>
55#include <linux/fs.h> 54#include <linux/fs.h>
56#include <linux/tty.h> 55#include <linux/tty.h>
57#include <linux/console.h> 56#include <linux/console.h>
diff --git a/drivers/usb/net/asix.c b/drivers/usb/net/asix.c
index 4206df2d61b7..bd357e178e55 100644
--- a/drivers/usb/net/asix.c
+++ b/drivers/usb/net/asix.c
@@ -25,7 +25,6 @@
25 25
26#include <linux/module.h> 26#include <linux/module.h>
27#include <linux/kmod.h> 27#include <linux/kmod.h>
28#include <linux/sched.h>
29#include <linux/init.h> 28#include <linux/init.h>
30#include <linux/netdevice.h> 29#include <linux/netdevice.h>
31#include <linux/etherdevice.h> 30#include <linux/etherdevice.h>
diff --git a/drivers/usb/net/cdc_ether.c b/drivers/usb/net/cdc_ether.c
index e5cdafa258dd..5a21f06bf8a5 100644
--- a/drivers/usb/net/cdc_ether.c
+++ b/drivers/usb/net/cdc_ether.c
@@ -22,7 +22,6 @@
22// #define VERBOSE // more; success messages 22// #define VERBOSE // more; success messages
23 23
24#include <linux/module.h> 24#include <linux/module.h>
25#include <linux/sched.h>
26#include <linux/init.h> 25#include <linux/init.h>
27#include <linux/netdevice.h> 26#include <linux/netdevice.h>
28#include <linux/etherdevice.h> 27#include <linux/etherdevice.h>
diff --git a/drivers/usb/net/cdc_subset.c b/drivers/usb/net/cdc_subset.c
index e2fae85851a3..ae8fb06cf38e 100644
--- a/drivers/usb/net/cdc_subset.c
+++ b/drivers/usb/net/cdc_subset.c
@@ -19,7 +19,6 @@
19 19
20#include <linux/module.h> 20#include <linux/module.h>
21#include <linux/kmod.h> 21#include <linux/kmod.h>
22#include <linux/sched.h>
23#include <linux/init.h> 22#include <linux/init.h>
24#include <linux/netdevice.h> 23#include <linux/netdevice.h>
25#include <linux/etherdevice.h> 24#include <linux/etherdevice.h>
diff --git a/drivers/usb/net/gl620a.c b/drivers/usb/net/gl620a.c
index 31e5fe363fdc..d257a8e026d6 100644
--- a/drivers/usb/net/gl620a.c
+++ b/drivers/usb/net/gl620a.c
@@ -22,7 +22,6 @@
22// #define VERBOSE // more; success messages 22// #define VERBOSE // more; success messages
23 23
24#include <linux/module.h> 24#include <linux/module.h>
25#include <linux/sched.h>
26#include <linux/init.h> 25#include <linux/init.h>
27#include <linux/netdevice.h> 26#include <linux/netdevice.h>
28#include <linux/etherdevice.h> 27#include <linux/etherdevice.h>
diff --git a/drivers/usb/net/kaweth.c b/drivers/usb/net/kaweth.c
index 36a989160a68..de95268ae4b8 100644
--- a/drivers/usb/net/kaweth.c
+++ b/drivers/usb/net/kaweth.c
@@ -46,7 +46,6 @@
46 */ 46 */
47 47
48#include <linux/module.h> 48#include <linux/module.h>
49#include <linux/sched.h>
50#include <linux/slab.h> 49#include <linux/slab.h>
51#include <linux/string.h> 50#include <linux/string.h>
52#include <linux/init.h> 51#include <linux/init.h>
diff --git a/drivers/usb/net/net1080.c b/drivers/usb/net/net1080.c
index 493635954513..ccebfdef4751 100644
--- a/drivers/usb/net/net1080.c
+++ b/drivers/usb/net/net1080.c
@@ -21,7 +21,6 @@
21// #define VERBOSE // more; success messages 21// #define VERBOSE // more; success messages
22 22
23#include <linux/module.h> 23#include <linux/module.h>
24#include <linux/sched.h>
25#include <linux/init.h> 24#include <linux/init.h>
26#include <linux/netdevice.h> 25#include <linux/netdevice.h>
27#include <linux/etherdevice.h> 26#include <linux/etherdevice.h>
diff --git a/drivers/usb/net/plusb.c b/drivers/usb/net/plusb.c
index 5d17cdfc7bab..45300939d185 100644
--- a/drivers/usb/net/plusb.c
+++ b/drivers/usb/net/plusb.c
@@ -21,7 +21,6 @@
21// #define VERBOSE // more; success messages 21// #define VERBOSE // more; success messages
22 22
23#include <linux/module.h> 23#include <linux/module.h>
24#include <linux/sched.h>
25#include <linux/init.h> 24#include <linux/init.h>
26#include <linux/netdevice.h> 25#include <linux/netdevice.h>
27#include <linux/etherdevice.h> 26#include <linux/etherdevice.h>
diff --git a/drivers/usb/net/rndis_host.c b/drivers/usb/net/rndis_host.c
index be888d2d813c..39a21c74fdf4 100644
--- a/drivers/usb/net/rndis_host.c
+++ b/drivers/usb/net/rndis_host.c
@@ -21,7 +21,6 @@
21// #define VERBOSE // more; success messages 21// #define VERBOSE // more; success messages
22 22
23#include <linux/module.h> 23#include <linux/module.h>
24#include <linux/sched.h>
25#include <linux/init.h> 24#include <linux/init.h>
26#include <linux/netdevice.h> 25#include <linux/netdevice.h>
27#include <linux/etherdevice.h> 26#include <linux/etherdevice.h>
diff --git a/drivers/usb/net/rtl8150.c b/drivers/usb/net/rtl8150.c
index 670262a38a0f..ea153dc9b0ac 100644
--- a/drivers/usb/net/rtl8150.c
+++ b/drivers/usb/net/rtl8150.c
@@ -6,7 +6,6 @@
6 * version 2 as published by the Free Software Foundation. 6 * version 2 as published by the Free Software Foundation.
7 */ 7 */
8 8
9#include <linux/sched.h>
10#include <linux/init.h> 9#include <linux/init.h>
11#include <linux/signal.h> 10#include <linux/signal.h>
12#include <linux/slab.h> 11#include <linux/slab.h>
diff --git a/drivers/usb/net/usbnet.c b/drivers/usb/net/usbnet.c
index 6e39e9988259..43ba61abfcc5 100644
--- a/drivers/usb/net/usbnet.c
+++ b/drivers/usb/net/usbnet.c
@@ -34,7 +34,6 @@
34// #define VERBOSE // more; success messages 34// #define VERBOSE // more; success messages
35 35
36#include <linux/module.h> 36#include <linux/module.h>
37#include <linux/sched.h>
38#include <linux/init.h> 37#include <linux/init.h>
39#include <linux/netdevice.h> 38#include <linux/netdevice.h>
40#include <linux/etherdevice.h> 39#include <linux/etherdevice.h>
diff --git a/drivers/usb/net/zaurus.c b/drivers/usb/net/zaurus.c
index 144566bda583..9f98e8ce487a 100644
--- a/drivers/usb/net/zaurus.c
+++ b/drivers/usb/net/zaurus.c
@@ -21,7 +21,6 @@
21// #define VERBOSE // more; success messages 21// #define VERBOSE // more; success messages
22 22
23#include <linux/module.h> 23#include <linux/module.h>
24#include <linux/sched.h>
25#include <linux/init.h> 24#include <linux/init.h>
26#include <linux/netdevice.h> 25#include <linux/netdevice.h>
27#include <linux/ethtool.h> 26#include <linux/ethtool.h>
diff --git a/drivers/usb/storage/datafab.c b/drivers/usb/storage/datafab.c
index 01d8971ad7db..c87ad1bae1d6 100644
--- a/drivers/usb/storage/datafab.c
+++ b/drivers/usb/storage/datafab.c
@@ -50,7 +50,6 @@
50 * in that routine. 50 * in that routine.
51 */ 51 */
52 52
53#include <linux/sched.h>
54#include <linux/errno.h> 53#include <linux/errno.h>
55#include <linux/slab.h> 54#include <linux/slab.h>
56 55
diff --git a/drivers/usb/storage/initializers.c b/drivers/usb/storage/initializers.c
index 5b06f9240d05..3a41740cad97 100644
--- a/drivers/usb/storage/initializers.c
+++ b/drivers/usb/storage/initializers.c
@@ -37,7 +37,6 @@
37 * 675 Mass Ave, Cambridge, MA 02139, USA. 37 * 675 Mass Ave, Cambridge, MA 02139, USA.
38 */ 38 */
39 39
40#include <linux/sched.h>
41#include <linux/errno.h> 40#include <linux/errno.h>
42 41
43#include "usb.h" 42#include "usb.h"
diff --git a/drivers/usb/storage/jumpshot.c b/drivers/usb/storage/jumpshot.c
index 5031aa98f6a9..003fcf545888 100644
--- a/drivers/usb/storage/jumpshot.c
+++ b/drivers/usb/storage/jumpshot.c
@@ -47,7 +47,6 @@
47 * in that routine. 47 * in that routine.
48 */ 48 */
49 49
50#include <linux/sched.h>
51#include <linux/errno.h> 50#include <linux/errno.h>
52#include <linux/slab.h> 51#include <linux/slab.h>
53 52
diff --git a/drivers/usb/storage/sddr09.c b/drivers/usb/storage/sddr09.c
index e3528eca29a5..b2ed2a3e6fca 100644
--- a/drivers/usb/storage/sddr09.c
+++ b/drivers/usb/storage/sddr09.c
@@ -41,7 +41,6 @@
41 * EF: compute checksum (?) 41 * EF: compute checksum (?)
42 */ 42 */
43 43
44#include <linux/sched.h>
45#include <linux/errno.h> 44#include <linux/errno.h>
46#include <linux/slab.h> 45#include <linux/slab.h>
47 46
diff --git a/drivers/usb/storage/shuttle_usbat.c b/drivers/usb/storage/shuttle_usbat.c
index 8fcec01dc622..5e27297c0175 100644
--- a/drivers/usb/storage/shuttle_usbat.c
+++ b/drivers/usb/storage/shuttle_usbat.c
@@ -43,7 +43,6 @@
43 * 675 Mass Ave, Cambridge, MA 02139, USA. 43 * 675 Mass Ave, Cambridge, MA 02139, USA.
44 */ 44 */
45 45
46#include <linux/sched.h>
47#include <linux/errno.h> 46#include <linux/errno.h>
48#include <linux/slab.h> 47#include <linux/slab.h>
49#include <linux/cdrom.h> 48#include <linux/cdrom.h>
diff --git a/drivers/video/atafb.c b/drivers/video/atafb.c
index 602db660bc73..bffe2b946344 100644
--- a/drivers/video/atafb.c
+++ b/drivers/video/atafb.c
@@ -49,7 +49,6 @@
49 49
50#include <linux/module.h> 50#include <linux/module.h>
51#include <linux/kernel.h> 51#include <linux/kernel.h>
52#include <linux/sched.h>
53#include <linux/errno.h> 52#include <linux/errno.h>
54#include <linux/string.h> 53#include <linux/string.h>
55#include <linux/mm.h> 54#include <linux/mm.h>
diff --git a/drivers/video/aty/mach64_accel.c b/drivers/video/aty/mach64_accel.c
index 1490e5e1c232..a8f60c33863c 100644
--- a/drivers/video/aty/mach64_accel.c
+++ b/drivers/video/aty/mach64_accel.c
@@ -3,7 +3,6 @@
3 * ATI Mach64 Hardware Acceleration 3 * ATI Mach64 Hardware Acceleration
4 */ 4 */
5 5
6#include <linux/sched.h>
7#include <linux/delay.h> 6#include <linux/delay.h>
8#include <linux/fb.h> 7#include <linux/fb.h>
9#include <video/mach64.h> 8#include <video/mach64.h>
diff --git a/drivers/video/aty/mach64_gx.c b/drivers/video/aty/mach64_gx.c
index 2045639cb671..10c988aef58e 100644
--- a/drivers/video/aty/mach64_gx.c
+++ b/drivers/video/aty/mach64_gx.c
@@ -5,7 +5,6 @@
5 5
6#include <linux/delay.h> 6#include <linux/delay.h>
7#include <linux/fb.h> 7#include <linux/fb.h>
8#include <linux/sched.h>
9 8
10#include <asm/io.h> 9#include <asm/io.h>
11 10
diff --git a/drivers/video/aty/radeon_i2c.c b/drivers/video/aty/radeon_i2c.c
index e7c5b219ad1b..508479920705 100644
--- a/drivers/video/aty/radeon_i2c.c
+++ b/drivers/video/aty/radeon_i2c.c
@@ -1,6 +1,5 @@
1#include <linux/module.h> 1#include <linux/module.h>
2#include <linux/kernel.h> 2#include <linux/kernel.h>
3#include <linux/sched.h>
4#include <linux/delay.h> 3#include <linux/delay.h>
5#include <linux/pci.h> 4#include <linux/pci.h>
6#include <linux/fb.h> 5#include <linux/fb.h>
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
index ce5ac268074e..be3f2c3f132c 100644
--- a/drivers/video/console/fbcon.c
+++ b/drivers/video/console/fbcon.c
@@ -60,7 +60,6 @@
60 60
61#include <linux/module.h> 61#include <linux/module.h>
62#include <linux/types.h> 62#include <linux/types.h>
63#include <linux/sched.h>
64#include <linux/fs.h> 63#include <linux/fs.h>
65#include <linux/kernel.h> 64#include <linux/kernel.h>
66#include <linux/delay.h> /* MSch: for IRQ probe */ 65#include <linux/delay.h> /* MSch: for IRQ probe */
diff --git a/drivers/video/console/mdacon.c b/drivers/video/console/mdacon.c
index eb4d03fa5391..124ecbe6f88c 100644
--- a/drivers/video/console/mdacon.c
+++ b/drivers/video/console/mdacon.c
@@ -27,7 +27,6 @@
27 */ 27 */
28 28
29#include <linux/types.h> 29#include <linux/types.h>
30#include <linux/sched.h>
31#include <linux/fs.h> 30#include <linux/fs.h>
32#include <linux/kernel.h> 31#include <linux/kernel.h>
33#include <linux/module.h> 32#include <linux/module.h>
diff --git a/drivers/video/console/vgacon.c b/drivers/video/console/vgacon.c
index 4a9bde2c839b..91a20785108a 100644
--- a/drivers/video/console/vgacon.c
+++ b/drivers/video/console/vgacon.c
@@ -35,7 +35,6 @@
35 35
36#include <linux/module.h> 36#include <linux/module.h>
37#include <linux/types.h> 37#include <linux/types.h>
38#include <linux/sched.h>
39#include <linux/fs.h> 38#include <linux/fs.h>
40#include <linux/kernel.h> 39#include <linux/kernel.h>
41#include <linux/console.h> 40#include <linux/console.h>
diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c
index 3cfea315a48f..28225265159a 100644
--- a/drivers/video/fbmem.c
+++ b/drivers/video/fbmem.c
@@ -16,7 +16,6 @@
16#include <linux/compat.h> 16#include <linux/compat.h>
17#include <linux/types.h> 17#include <linux/types.h>
18#include <linux/errno.h> 18#include <linux/errno.h>
19#include <linux/sched.h>
20#include <linux/smp_lock.h> 19#include <linux/smp_lock.h>
21#include <linux/kernel.h> 20#include <linux/kernel.h>
22#include <linux/major.h> 21#include <linux/major.h>
diff --git a/drivers/video/g364fb.c b/drivers/video/g364fb.c
index 1b981b635675..ca93a75f2997 100644
--- a/drivers/video/g364fb.c
+++ b/drivers/video/g364fb.c
@@ -16,7 +16,6 @@
16 16
17#include <linux/module.h> 17#include <linux/module.h>
18#include <linux/console.h> 18#include <linux/console.h>
19#include <linux/sched.h>
20#include <linux/kernel.h> 19#include <linux/kernel.h>
21#include <linux/errno.h> 20#include <linux/errno.h>
22#include <linux/string.h> 21#include <linux/string.h>
diff --git a/drivers/video/hitfb.c b/drivers/video/hitfb.c
index 3dc49424dc75..756c0ce85911 100644
--- a/drivers/video/hitfb.c
+++ b/drivers/video/hitfb.c
@@ -13,7 +13,6 @@
13 13
14#include <linux/module.h> 14#include <linux/module.h>
15#include <linux/kernel.h> 15#include <linux/kernel.h>
16#include <linux/sched.h>
17#include <linux/errno.h> 16#include <linux/errno.h>
18#include <linux/string.h> 17#include <linux/string.h>
19#include <linux/mm.h> 18#include <linux/mm.h>
diff --git a/drivers/video/hpfb.c b/drivers/video/hpfb.c
index 9ab9b839a0f5..b18486ad8e17 100644
--- a/drivers/video/hpfb.c
+++ b/drivers/video/hpfb.c
@@ -7,7 +7,6 @@
7 7
8#include <linux/module.h> 8#include <linux/module.h>
9#include <linux/kernel.h> 9#include <linux/kernel.h>
10#include <linux/sched.h>
11#include <linux/errno.h> 10#include <linux/errno.h>
12#include <linux/string.h> 11#include <linux/string.h>
13#include <linux/mm.h> 12#include <linux/mm.h>
diff --git a/drivers/video/i810/i810-i2c.c b/drivers/video/i810/i810-i2c.c
index 961f4d404467..7787c3322ffb 100644
--- a/drivers/video/i810/i810-i2c.c
+++ b/drivers/video/i810/i810-i2c.c
@@ -10,7 +10,6 @@
10 */ 10 */
11#include <linux/module.h> 11#include <linux/module.h>
12#include <linux/kernel.h> 12#include <linux/kernel.h>
13#include <linux/sched.h>
14#include <linux/delay.h> 13#include <linux/delay.h>
15#include <linux/pci.h> 14#include <linux/pci.h>
16#include <linux/fb.h> 15#include <linux/fb.h>
diff --git a/drivers/video/imxfb.c b/drivers/video/imxfb.c
index 0f9b2fdc28b1..267c1ff9ebd9 100644
--- a/drivers/video/imxfb.c
+++ b/drivers/video/imxfb.c
@@ -20,7 +20,6 @@
20 20
21#include <linux/module.h> 21#include <linux/module.h>
22#include <linux/kernel.h> 22#include <linux/kernel.h>
23#include <linux/sched.h>
24#include <linux/errno.h> 23#include <linux/errno.h>
25#include <linux/string.h> 24#include <linux/string.h>
26#include <linux/interrupt.h> 25#include <linux/interrupt.h>
diff --git a/drivers/video/intelfb/intelfb_i2c.c b/drivers/video/intelfb/intelfb_i2c.c
index 33bc41f50540..f4ede5f6b588 100644
--- a/drivers/video/intelfb/intelfb_i2c.c
+++ b/drivers/video/intelfb/intelfb_i2c.c
@@ -27,7 +27,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
27 27
28#include <linux/module.h> 28#include <linux/module.h>
29#include <linux/kernel.h> 29#include <linux/kernel.h>
30#include <linux/sched.h>
31#include <linux/delay.h> 30#include <linux/delay.h>
32#include <linux/pci.h> 31#include <linux/pci.h>
33#include <linux/fb.h> 32#include <linux/fb.h>
diff --git a/drivers/video/intelfb/intelfbhw.c b/drivers/video/intelfb/intelfbhw.c
index a95836839e1e..c1eb18bf0883 100644
--- a/drivers/video/intelfb/intelfbhw.c
+++ b/drivers/video/intelfb/intelfbhw.c
@@ -1990,7 +1990,8 @@ int
1990intelfbhw_enable_irq(struct intelfb_info *dinfo, int reenable) { 1990intelfbhw_enable_irq(struct intelfb_info *dinfo, int reenable) {
1991 1991
1992 if (!test_and_set_bit(0, &dinfo->irq_flags)) { 1992 if (!test_and_set_bit(0, &dinfo->irq_flags)) {
1993 if (request_irq(dinfo->pdev->irq, intelfbhw_irq, SA_SHIRQ, "intelfb", dinfo)) { 1993 if (request_irq(dinfo->pdev->irq, intelfbhw_irq, IRQF_SHARED,
1994 "intelfb", dinfo)) {
1994 clear_bit(0, &dinfo->irq_flags); 1995 clear_bit(0, &dinfo->irq_flags);
1995 return -EINVAL; 1996 return -EINVAL;
1996 } 1997 }
diff --git a/drivers/video/kyro/fbdev.c b/drivers/video/kyro/fbdev.c
index f0d614a80f1f..1c5579907397 100644
--- a/drivers/video/kyro/fbdev.c
+++ b/drivers/video/kyro/fbdev.c
@@ -12,7 +12,6 @@
12#include <linux/module.h> 12#include <linux/module.h>
13#include <linux/types.h> 13#include <linux/types.h>
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/sched.h>
16#include <linux/mm.h> 15#include <linux/mm.h>
17#include <linux/errno.h> 16#include <linux/errno.h>
18#include <linux/string.h> 17#include <linux/string.h>
diff --git a/drivers/video/macfb.c b/drivers/video/macfb.c
index 180d94c2b4d2..f7d647dda978 100644
--- a/drivers/video/macfb.c
+++ b/drivers/video/macfb.c
@@ -20,7 +20,6 @@
20 20
21#include <linux/module.h> 21#include <linux/module.h>
22#include <linux/kernel.h> 22#include <linux/kernel.h>
23#include <linux/sched.h>
24#include <linux/errno.h> 23#include <linux/errno.h>
25#include <linux/string.h> 24#include <linux/string.h>
26#include <linux/mm.h> 25#include <linux/mm.h>
diff --git a/drivers/video/maxinefb.c b/drivers/video/maxinefb.c
index 38c8d38de4fd..5e91c2b30af9 100644
--- a/drivers/video/maxinefb.c
+++ b/drivers/video/maxinefb.c
@@ -25,7 +25,6 @@
25 25
26#include <linux/module.h> 26#include <linux/module.h>
27#include <linux/kernel.h> 27#include <linux/kernel.h>
28#include <linux/sched.h>
29#include <linux/errno.h> 28#include <linux/errno.h>
30#include <linux/string.h> 29#include <linux/string.h>
31#include <linux/mm.h> 30#include <linux/mm.h>
diff --git a/drivers/video/modedb.c b/drivers/video/modedb.c
index 5162eab95539..3e517940c5a5 100644
--- a/drivers/video/modedb.c
+++ b/drivers/video/modedb.c
@@ -13,7 +13,6 @@
13 13
14#include <linux/module.h> 14#include <linux/module.h>
15#include <linux/fb.h> 15#include <linux/fb.h>
16#include <linux/sched.h>
17 16
18#undef DEBUG 17#undef DEBUG
19 18
diff --git a/drivers/video/nvidia/nv_i2c.c b/drivers/video/nvidia/nv_i2c.c
index 8454adf2d178..b8588973e400 100644
--- a/drivers/video/nvidia/nv_i2c.c
+++ b/drivers/video/nvidia/nv_i2c.c
@@ -12,7 +12,6 @@
12 12
13#include <linux/module.h> 13#include <linux/module.h>
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/sched.h>
16#include <linux/delay.h> 15#include <linux/delay.h>
17#include <linux/pci.h> 16#include <linux/pci.h>
18#include <linux/fb.h> 17#include <linux/fb.h>
diff --git a/drivers/video/nvidia/nv_of.c b/drivers/video/nvidia/nv_of.c
index 181875fe35c6..163a774a1b30 100644
--- a/drivers/video/nvidia/nv_of.c
+++ b/drivers/video/nvidia/nv_of.c
@@ -12,7 +12,6 @@
12 12
13#include <linux/module.h> 13#include <linux/module.h>
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/sched.h>
16#include <linux/delay.h> 15#include <linux/delay.h>
17#include <linux/pci.h> 16#include <linux/pci.h>
18#include <linux/fb.h> 17#include <linux/fb.h>
diff --git a/drivers/video/pmag-aa-fb.c b/drivers/video/pmag-aa-fb.c
index 68ca3cc40770..a864438b6008 100644
--- a/drivers/video/pmag-aa-fb.c
+++ b/drivers/video/pmag-aa-fb.c
@@ -24,7 +24,6 @@
24 */ 24 */
25#include <linux/module.h> 25#include <linux/module.h>
26#include <linux/kernel.h> 26#include <linux/kernel.h>
27#include <linux/sched.h>
28#include <linux/errno.h> 27#include <linux/errno.h>
29#include <linux/string.h> 28#include <linux/string.h>
30#include <linux/timer.h> 29#include <linux/timer.h>
diff --git a/drivers/video/riva/rivafb-i2c.c b/drivers/video/riva/rivafb-i2c.c
index 01b85e3b0ae1..0405e839ff93 100644
--- a/drivers/video/riva/rivafb-i2c.c
+++ b/drivers/video/riva/rivafb-i2c.c
@@ -14,7 +14,6 @@
14 14
15#include <linux/module.h> 15#include <linux/module.h>
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/sched.h>
18#include <linux/delay.h> 17#include <linux/delay.h>
19#include <linux/pci.h> 18#include <linux/pci.h>
20#include <linux/fb.h> 19#include <linux/fb.h>
diff --git a/drivers/video/savage/savagefb-i2c.c b/drivers/video/savage/savagefb-i2c.c
index 1411f3b6a009..8db066ccca6b 100644
--- a/drivers/video/savage/savagefb-i2c.c
+++ b/drivers/video/savage/savagefb-i2c.c
@@ -12,7 +12,6 @@
12 12
13#include <linux/module.h> 13#include <linux/module.h>
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/sched.h>
16#include <linux/delay.h> 15#include <linux/delay.h>
17#include <linux/pci.h> 16#include <linux/pci.h>
18#include <linux/fb.h> 17#include <linux/fb.h>
diff --git a/drivers/video/tgafb.c b/drivers/video/tgafb.c
index b604859b4ddb..7478d0e3e211 100644
--- a/drivers/video/tgafb.c
+++ b/drivers/video/tgafb.c
@@ -13,7 +13,6 @@
13 13
14#include <linux/module.h> 14#include <linux/module.h>
15#include <linux/kernel.h> 15#include <linux/kernel.h>
16#include <linux/sched.h>
17#include <linux/errno.h> 16#include <linux/errno.h>
18#include <linux/string.h> 17#include <linux/string.h>
19#include <linux/mm.h> 18#include <linux/mm.h>