F: drivers/input/mouse/bcm5974.c
APPLE SMC DRIVER
S: Maintained
F: drivers/hwmon/applesmc.c
F: drivers/mtd/nand/bcm_umi_hamming.c
F: drivers/mtd/nand/nand_bcm_umi.h
+ ARM/CAVIUM NETWORKS CNS3XXX MACHINE SUPPORT
+ S: Maintained
+ F: arch/arm/mach-cns3xxx/
+ T: git git://git.infradead.org/users/cbou/linux-cns3xxx.git
+
ARM/CIRRUS LOGIC EP93XX ARM ARCHITECTURE
S: Maintained
ARM/Marvell Loki/Kirkwood/MV78xx0/Orion SOC support
- M: Nicolas Pitre <nico@marvell.com>
+ M: Nicolas Pitre <nico@fluxnic.net>
- T: git git://git.marvell.com/orion
- S: Maintained
+ S: Odd Fixes
F: arch/arm/mach-loki/
F: arch/arm/mach-kirkwood/
F: arch/arm/mach-mv78xx0/
F: arch/arm/mach-msm/
F: drivers/video/msm/
F: drivers/mmc/host/msm_sdcc.c
-T: git git://git.kernel.org/pub/scm/linux/kernel/git/lethal/genesis-2.6.git
W: http://oss.renesas.com
+Q: http://patchwork.kernel.org/project/linux-sh/list/
+T: git git://git.kernel.org/pub/scm/linux/kernel/git/lethal/genesis-2.6.git
S: Supported
F: arch/arm/mach-shmobile/
F: drivers/sh/
W: http://www.mcuos.com
S: Maintained
+ ARM/U300 MACHINE SUPPORT
+ S: Supported
+ F: arch/arm/mach-u300/
+ F: drivers/i2c/busses/i2c-stu300.c
+ F: drivers/rtc/rtc-coh901331.c
+ F: drivers/watchdog/coh901327_wdt.c
+ F: drivers/dma/coh901318*
+
ARM/U8500 ARM ARCHITECTURE
S: Maintained
F: arch/arm/vfp/
+ ARM/VOIPAC PXA270 SUPPORT
+ S: Maintained
+ F: arch/arm/mach-pxa/vpac270.c
+ F: arch/arm/mach-pxa/include/mach-pxa/vpac270.h
+
+ ARM/ZIPIT Z2 SUPPORT
+ S: Maintained
+ F: arch/arm/mach-pxa/z2.c
+ F: arch/arm/mach-pxa/include/mach-pxa/z2.h
+
ASC7621 HARDWARE MONITOR DRIVER
DRM DRIVERS
- L: dri-devel@lists.sourceforge.net
+ L: dri-devel@lists.freedesktop.org
T: git git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git
S: Maintained
F: drivers/gpu/drm/
S: Odd Fixes
F: drivers/char/hvc_*
- VIRTIO CONSOLE DRIVER
- S: Maintained
- F: drivers/char/virtio_console.c
-
iSCSI BOOT FIRMWARE TABLE (iBFT) DRIVER
F: Documentation/networking/README.ipw2200
F: drivers/net/wireless/ipw2x00/ipw2200.*
+ INTEL(R) TRUSTED EXECUTION TECHNOLOGY (TXT)
+ W: http://tboot.sourceforge.net
+ T: Mercurial http://www.bughost.org/repos.hg/tboot.hg
+ S: Supported
+ F: Documentation/intel_txt.txt
+ F: include/linux/tboot.h
+ F: arch/x86/kernel/tboot.c
+
INTEL WIRELESS WIMAX CONNECTION 2400
MARVELL SOC MMC/SD/SDIO CONTROLLER DRIVER
- S: Maintained
+ S: Odd Fixes
+ F: drivers/mmc/host/mvsdio.*
MARVELL YUKON / SYSKONNECT DRIVER
S: Maintained
+ F: arch/*/include/asm/oprofile*.h
F: arch/*/oprofile/
F: drivers/oprofile/
F: include/linux/oprofile.h
S: Supported
- F: kernel/perf_event.c
+ F: kernel/perf_event*.c
F: include/linux/perf_event.h
- F: arch/*/kernel/perf_event.c
- F: arch/*/kernel/*/perf_event.c
- F: arch/*/kernel/*/*/perf_event.c
+ F: arch/*/kernel/perf_event*.c
+ F: arch/*/kernel/*/perf_event*.c
+ F: arch/*/kernel/*/*/perf_event*.c
F: arch/*/include/asm/perf_event.h
- F: arch/*/lib/perf_event.c
+ F: arch/*/lib/perf_event*.c
F: arch/*/kernel/perf_callchain.c
F: tools/perf/
F: drivers/ata/sata_promise.*
PS3 NETWORK SUPPORT
+ M: Geoff Levand <geoff@infradead.org>
- S: Supported
+ S: Maintained
F: drivers/net/ps3_gelic_net.*
PS3 PLATFORM SUPPORT
+ M: Geoff Levand <geoff@infradead.org>
- S: Supported
+ S: Maintained
F: arch/powerpc/boot/ps3*
F: arch/powerpc/include/asm/lv1call.h
F: arch/powerpc/include/asm/ps3*.h
S390 ZFCP DRIVER
- M: Martin Peschke <mp3@de.ibm.com>
+ M: Swen Schillig <swen@vnet.ibm.com>
W: http://www.ibm.com/developerworks/linux/linux390/
S: Supported
- F: Documentation/s390/zfcpdump.txt
F: drivers/s390/scsi/zfcp_*
S390 IUCV NETWORK LAYER
SMC91x ETHERNET DRIVER
- S: Maintained
+ S: Odd Fixes
F: drivers/net/smc91x.*
SMSC47B397 HARDWARE MONITOR DRIVER
F: drivers/serial/sunzilog.c
F: drivers/serial/sunzilog.h
+ SPEAR PLATFORM SUPPORT
+ W: http://www.st.com/spear
+ S: Maintained
+ F: arch/arm/plat-spear/
+
+ SPEAR3XX MACHINE SUPPORT
+ W: http://www.st.com/spear
+ S: Maintained
+ F: arch/arm/mach-spear3xx/
+
+ SPEAR6XX MACHINE SUPPORT
+ W: http://www.st.com/spear
+ S: Maintained
+ F: arch/arm/mach-spear6xx/
+
+ SPEAR CLOCK FRAMEWORK SUPPORT
+ W: http://www.st.com/spear
+ S: Maintained
+ F: arch/arm/mach-spear*/clock.c
+ F: arch/arm/mach-spear*/include/mach/clkdev.h
+ F: arch/arm/plat-spear/clock.c
+ F: arch/arm/plat-spear/include/plat/clock.h and clkdev.h
+
+ SPEAR PAD MULTIPLEXING SUPPORT
+ W: http://www.st.com/spear
+ S: Maintained
+ F: arch/arm/plat-spear/include/plat/padmux.h
+ F: arch/arm/plat-spear/padmux.c
+ F: arch/arm/mach-spear*/spear*xx.c
+ F: arch/arm/mach-spear*/include/mach/generic.h
+ F: arch/arm/mach-spear3xx/spear3*0.c
+ F: arch/arm/mach-spear3xx/spear3*0_evb.c
+ F: arch/arm/mach-spear6xx/spear600.c
+ F: arch/arm/mach-spear6xx/spear600_evb.c
+
SPECIALIX IO8+ MULTIPORT SERIAL CARD DRIVER
S: Supported
F: drivers/mmc/host/tmio_mmc.*
TMPFS (SHMEM FILESYSTEM)
S: Maintained
F: include/linux/shmem_fs.h
F: Documentation/filesystems/vfat.txt
F: fs/fat/
+ VIRTIO CONSOLE DRIVER
+ S: Maintained
+ F: drivers/char/virtio_console.c
+ F: include/linux/virtio_console.h
+
VIRTIO HOST (VHOST)
struct sh_dmae_device *shdev = container_of(sh_chan->common.device,
struct sh_dmae_device, common);
struct sh_dmae_pdata *pdata = shdev->pdata;
- struct sh_dmae_channel *chan_pdata = &pdata->channel[sh_chan->id];
+ const struct sh_dmae_channel *chan_pdata = &pdata->channel[sh_chan->id];
u16 __iomem *addr = shdev->dmars + chan_pdata->dmars / sizeof(u16);
int shift = chan_pdata->dmars_bit;
return NULL;
}
- static struct sh_dmae_slave_config *sh_dmae_find_slave(
+ static const struct sh_dmae_slave_config *sh_dmae_find_slave(
struct sh_dmae_chan *sh_chan, struct sh_dmae_slave *param)
{
struct dma_device *dma_dev = sh_chan->common.device;
struct sh_dmae_chan *sh_chan = to_sh_chan(chan);
struct sh_desc *desc;
struct sh_dmae_slave *param = chan->private;
+ int ret;
pm_runtime_get_sync(sh_chan->dev);
* never runs concurrently with itself or free_chan_resources.
*/
if (param) {
- struct sh_dmae_slave_config *cfg;
+ const struct sh_dmae_slave_config *cfg;
cfg = sh_dmae_find_slave(sh_chan, param);
- if (!cfg)
- return -EINVAL;
+ if (!cfg) {
+ ret = -EINVAL;
+ goto efindslave;
+ }
- if (test_and_set_bit(param->slave_id, sh_dmae_slave_used))
- return -EBUSY;
+ if (test_and_set_bit(param->slave_id, sh_dmae_slave_used)) {
+ ret = -EBUSY;
+ goto etestused;
+ }
param->config = cfg;
}
spin_unlock_bh(&sh_chan->desc_lock);
- if (!sh_chan->descs_allocated)
- pm_runtime_put(sh_chan->dev);
+ if (!sh_chan->descs_allocated) {
+ ret = -ENOMEM;
+ goto edescalloc;
+ }
return sh_chan->descs_allocated;
+
+ edescalloc:
+ if (param)
+ clear_bit(param->slave_id, sh_dmae_slave_used);
+ etestused:
+ efindslave:
+ pm_runtime_put(sh_chan->dev);
+ return ret;
}
/*
{
struct sh_dmae_slave *param;
struct sh_dmae_chan *sh_chan;
+ dma_addr_t slave_addr;
if (!chan)
return NULL;
sh_chan = to_sh_chan(chan);
param = chan->private;
+ slave_addr = param->config->addr;
/* Someone calling slave DMA on a public channel? */
if (!param || !sg_len) {
* if (param != NULL), this is a successfully requested slave channel,
* therefore param->config != NULL too.
*/
- return sh_dmae_prep_sg(sh_chan, sgl, sg_len, ¶m->config->addr,
+ return sh_dmae_prep_sg(sh_chan, sgl, sg_len, &slave_addr,
direction, flags);
}
return ret;
}
-#if defined(CONFIG_CPU_SH4)
+#if defined(CONFIG_CPU_SH4) || defined(CONFIG_ARCH_SHMOBILE)
static irqreturn_t sh_dmae_err(int irq, void *data)
{
struct sh_dmae_device *shdev = (struct sh_dmae_device *)data;
int irq, unsigned long flags)
{
int err;
- struct sh_dmae_channel *chan_pdata = &shdev->pdata->channel[id];
+ const struct sh_dmae_channel *chan_pdata = &shdev->pdata->channel[id];
struct platform_device *pdev = to_platform_device(shdev->common.dev);
struct sh_dmae_chan *new_sh_chan;
/* Default transfer size of 32 bytes requires 32-byte alignment */
shdev->common.copy_align = LOG2_DEFAULT_XFER_SIZE;
-#if defined(CONFIG_CPU_SH4)
+#if defined(CONFIG_CPU_SH4) || defined(CONFIG_ARCH_SHMOBILE)
chanirq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 1);
if (!chanirq_res)
#else
chanirq_res = errirq_res;
-#endif /* CONFIG_CPU_SH4 */
+#endif /* CONFIG_CPU_SH4 || CONFIG_ARCH_SHMOBILE */
if (chanirq_res->start == chanirq_res->end &&
!platform_get_resource(pdev, IORESOURCE_IRQ, 1)) {
chan_probe_err:
sh_dmae_chan_remove(shdev);
eirqres:
-#if defined(CONFIG_CPU_SH4)
+#if defined(CONFIG_CPU_SH4) || defined(CONFIG_ARCH_SHMOBILE)
free_irq(errirq, shdev);
eirq_err:
#endif