|
|
|
#
|
|
|
|
# Makefile for the Linux kernel device drivers.
|
|
|
|
#
|
|
|
|
# 15 Sep 2000, Christoph Hellwig <hch@infradead.org>
|
|
|
|
# Rewritten to use lists instead of if-statements.
|
|
|
|
#
|
|
|
|
|
|
|
|
obj-$(CONFIG_PCI) += pci/
|
|
|
|
obj-$(CONFIG_PARISC) += parisc/
|
|
|
|
obj-$(CONFIG_RAPIDIO) += rapidio/
|
|
|
|
obj-y += video/
|
|
|
|
obj-$(CONFIG_ACPI) += acpi/
|
|
|
|
# PnP must come after ACPI since it will eventually need to check if acpi
|
|
|
|
# was used and do nothing if so
|
|
|
|
obj-$(CONFIG_PNP) += pnp/
|
|
|
|
obj-$(CONFIG_ARM_AMBA) += amba/
|
|
|
|
|
|
|
|
# char/ comes before serial/ etc so that the VT console is the boot-time
|
|
|
|
# default.
|
|
|
|
obj-y += char/
|
|
|
|
|
|
|
|
obj-$(CONFIG_CONNECTOR) += connector/
|
|
|
|
|
|
|
|
# i810fb and intelfb depend on char/agp/
|
|
|
|
obj-$(CONFIG_FB_I810) += video/i810/
|
|
|
|
obj-$(CONFIG_FB_INTEL) += video/intelfb/
|
|
|
|
|
|
|
|
obj-y += serial/
|
|
|
|
obj-$(CONFIG_PARPORT) += parport/
|
|
|
|
obj-y += base/ block/ misc/ mfd/ net/ media/
|
|
|
|
obj-$(CONFIG_NUBUS) += nubus/
|
|
|
|
obj-$(CONFIG_ATM) += atm/
|
|
|
|
obj-y += macintosh/
|
|
|
|
obj-$(CONFIG_IDE) += ide/
|
|
|
|
obj-$(CONFIG_FC4) += fc4/
|
|
|
|
obj-$(CONFIG_SCSI) += scsi/
|
|
|
|
obj-$(CONFIG_ATA) += ata/
|
|
|
|
obj-$(CONFIG_FUSION) += message/
|
|
|
|
obj-$(CONFIG_IEEE1394) += ieee1394/
|
|
|
|
obj-y += cdrom/
|
|
|
|
obj-y += auxdisplay/
|
|
|
|
obj-$(CONFIG_MTD) += mtd/
|
[PATCH] spi: simple SPI framework
This is the core of a small SPI framework, implementing the model of a
queue of messages which complete asynchronously (with thin synchronous
wrappers on top).
- It's still less than 2KB of ".text" (ARM). If there's got to be a
mid-layer for something so simple, that's the right size budget. :)
- The guts use board-specific SPI device tables to build the driver
model tree. (Hardware probing is rarely an option.)
- This version of Kconfig includes no drivers. At this writing there
are two known master controller drivers (PXA/SSP, OMAP MicroWire)
and three protocol drivers (CS8415a, ADS7846, DataFlash) with LKML
mentions of other drivers in development.
- No userspace API. There are several implementations to compare.
Implement them like any other driver, and bind them with sysfs.
The changes from last version posted to LKML (on 11-Nov-2005) are minor,
and include:
- One bugfix (removes a FIXME), with the visible effect of making device
names be "spiB.C" where B is the bus number and C is the chipselect.
- The "caller provides DMA mappings" mechanism now has kerneldoc, for
DMA drivers that want to be fancy.
- Hey, the framework init can be subsys_init. Even though board init
logic fires earlier, at arch_init ... since the framework init is
for driver support, and the board init support uses static init.
- Various additional spec/doc clarifications based on discussions
with other folk. It adds a brief "thank you" at the end, for folk
who've helped nudge this framework into existence.
As I've said before, I think that "protocol tweaking" is the main support
that this driver framework will need to evolve.
From: Mark Underwood <basicmark@yahoo.com>
Update the SPI framework to remove a potential priority inversion case by
reverting to kmalloc if the pre-allocated DMA-safe buffer isn't available.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
19 years ago
|
|
|
obj-$(CONFIG_SPI) += spi/
|
|
|
|
obj-$(CONFIG_PCCARD) += pcmcia/
|
|
|
|
obj-$(CONFIG_DIO) += dio/
|
|
|
|
obj-$(CONFIG_SBUS) += sbus/
|
[PATCH] kvm: userspace interface
web site: http://kvm.sourceforge.net
mailing list: kvm-devel@lists.sourceforge.net
(http://lists.sourceforge.net/lists/listinfo/kvm-devel)
The following patchset adds a driver for Intel's hardware virtualization
extensions to the x86 architecture. The driver adds a character device
(/dev/kvm) that exposes the virtualization capabilities to userspace. Using
this driver, a process can run a virtual machine (a "guest") in a fully
virtualized PC containing its own virtual hard disks, network adapters, and
display.
Using this driver, one can start multiple virtual machines on a host.
Each virtual machine is a process on the host; a virtual cpu is a thread in
that process. kill(1), nice(1), top(1) work as expected. In effect, the
driver adds a third execution mode to the existing two: we now have kernel
mode, user mode, and guest mode. Guest mode has its own address space mapping
guest physical memory (which is accessible to user mode by mmap()ing
/dev/kvm). Guest mode has no access to any I/O devices; any such access is
intercepted and directed to user mode for emulation.
The driver supports i386 and x86_64 hosts and guests. All combinations are
allowed except x86_64 guest on i386 host. For i386 guests and hosts, both pae
and non-pae paging modes are supported.
SMP hosts and UP guests are supported. At the moment only Intel
hardware is supported, but AMD virtualization support is being worked on.
Performance currently is non-stellar due to the naive implementation of the
mmu virtualization, which throws away most of the shadow page table entries
every context switch. We plan to address this in two ways:
- cache shadow page tables across tlb flushes
- wait until AMD and Intel release processors with nested page tables
Currently a virtual desktop is responsive but consumes a lot of CPU. Under
Windows I tried playing pinball and watching a few flash movies; with a recent
CPU one can hardly feel the virtualization. Linux/X is slower, probably due
to X being in a separate process.
In addition to the driver, you need a slightly modified qemu to provide I/O
device emulation and the BIOS.
Caveats (akpm: might no longer be true):
- The Windows install currently bluescreens due to a problem with the
virtual APIC. We are working on a fix. A temporary workaround is to
use an existing image or install through qemu
- Windows 64-bit does not work. That's also true for qemu, so it's
probably a problem with the device model.
[bero@arklinux.org: build fix]
[simon.kagstrom@bth.se: build fix, other fixes]
[uril@qumranet.com: KVM: Expose interrupt bitmap]
[akpm@osdl.org: i386 build fix]
[mingo@elte.hu: i386 fixes]
[rdreier@cisco.com: add log levels to all printks]
[randy.dunlap@oracle.com: Fix sparse NULL and C99 struct init warnings]
[anthony@codemonkey.ws: KVM: AMD SVM: 32-bit host support]
Signed-off-by: Yaniv Kamay <yaniv@qumranet.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
Cc: Simon Kagstrom <simon.kagstrom@bth.se>
Cc: Bernhard Rosenkraenzer <bero@arklinux.org>
Signed-off-by: Uri Lublin <uril@qumranet.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Roland Dreier <rolandd@cisco.com>
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Anthony Liguori <anthony@codemonkey.ws>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
18 years ago
|
|
|
obj-$(CONFIG_KVM) += kvm/
|
|
|
|
obj-$(CONFIG_ZORRO) += zorro/
|
|
|
|
obj-$(CONFIG_MAC) += macintosh/
|
|
|
|
obj-$(CONFIG_ATA_OVER_ETH) += block/aoe/
|
|
|
|
obj-$(CONFIG_PARIDE) += block/paride/
|
|
|
|
obj-$(CONFIG_TC) += tc/
|
|
|
|
obj-$(CONFIG_USB) += usb/
|
|
|
|
obj-$(CONFIG_PCI) += usb/
|
|
|
|
obj-$(CONFIG_USB_GADGET) += usb/gadget/
|
|
|
|
obj-$(CONFIG_SERIO) += input/serio/
|
|
|
|
obj-$(CONFIG_GAMEPORT) += input/gameport/
|
|
|
|
obj-$(CONFIG_INPUT) += input/
|
|
|
|
obj-$(CONFIG_I2O) += message/
|
|
|
|
obj-$(CONFIG_RTC_LIB) += rtc/
|
i2c: Add i2c_board_info and i2c_new_device()
This provides partial support for new-style I2C driver binding. It builds
on "struct i2c_board_info" declarations that identify I2C devices on a given
board. This is needed on systems with I2C devices that can't be fully probed
and/or autoconfigured, such as many embedded Linux configurations where the
way a given I2C device is wired may affect how it must be used.
There are two models for declaring such devices:
* LATE -- using a public function i2c_new_device(). This lets modules
declare I2C devices found *AFTER* a given I2C adapter becomes available.
For example, a PCI card could create adapters giving access to utility
chips on that card, and this would be used to associate those chips with
those adapters.
* EARLY -- from arch_initcall() level code, using a non-exported function
i2c_register_board_info(). This copies the declarations *BEFORE* such
an i2c_adapter becomes available, arranging that i2c_new_device() will
be called later when i2c-core registers the relevant i2c_adapter.
For example, arch/.../.../board-*.c files would declare the I2C devices
along with their platform data, and I2C devices would behave much like
PNPACPI devices. (That is, both enumerate from board-specific tables.)
To match the exported i2c_new_device(), the previously-private function
i2c_unregister_device() is now exported.
Pending later patches using these new APIs, this is effectively a NOP.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
18 years ago
|
|
|
obj-y += i2c/
|
|
|
|
obj-$(CONFIG_W1) += w1/
|
|
|
|
obj-$(CONFIG_HWMON) += hwmon/
|
|
|
|
obj-$(CONFIG_PHONE) += telephony/
|
|
|
|
obj-$(CONFIG_MD) += md/
|
|
|
|
obj-$(CONFIG_BT) += bluetooth/
|
|
|
|
obj-$(CONFIG_ISDN) += isdn/
|
|
|
|
obj-$(CONFIG_EDAC) += edac/
|
|
|
|
obj-$(CONFIG_MCA) += mca/
|
|
|
|
obj-$(CONFIG_EISA) += eisa/
|
|
|
|
obj-$(CONFIG_CPU_FREQ) += cpufreq/
|
|
|
|
obj-$(CONFIG_MMC) += mmc/
|
|
|
|
obj-$(CONFIG_NEW_LEDS) += leds/
|
|
|
|
obj-$(CONFIG_INFINIBAND) += infiniband/
|
|
|
|
obj-$(CONFIG_SGI_SN) += sn/
|
|
|
|
obj-y += firmware/
|
|
|
|
obj-$(CONFIG_CRYPTO) += crypto/
|
|
|
|
obj-$(CONFIG_SUPERH) += sh/
|
|
|
|
obj-$(CONFIG_GENERIC_TIME) += clocksource/
|
|
|
|
obj-$(CONFIG_DMA_ENGINE) += dma/
|
|
|
|
obj-$(CONFIG_HID) += hid/
|
|
|
|
obj-$(CONFIG_PPC_PS3) += ps3/
|