Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 7 Nov 2011 03:44:47 +0000 (19:44 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 7 Nov 2011 03:44:47 +0000 (19:44 -0800)
* 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)
  Revert "tracing: Include module.h in define_trace.h"
  irq: don't put module.h into irq.h for tracking irqgen modules.
  bluetooth: macroize two small inlines to avoid module.h
  ip_vs.h: fix implicit use of module_get/module_put from module.h
  nf_conntrack.h: fix up fallout from implicit moduleparam.h presence
  include: replace linux/module.h with "struct module" wherever possible
  include: convert various register fcns to macros to avoid include chaining
  crypto.h: remove unused crypto_tfm_alg_modname() inline
  uwb.h: fix implicit use of asm/page.h for PAGE_SIZE
  pm_runtime.h: explicitly requires notifier.h
  linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h
  miscdevice.h: fix up implicit use of lists and types
  stop_machine.h: fix implicit use of smp.h for smp_processor_id
  of: fix implicit use of errno.h in include/linux/of.h
  of_platform.h: delete needless include <linux/module.h>
  acpi: remove module.h include from platform/aclinux.h
  miscdevice.h: delete unnecessary inclusion of module.h
  device_cgroup.h: delete needless include <linux/module.h>
  net: sch_generic remove redundant use of <linux/module.h>
  net: inet_timewait_sock doesnt need <linux/module.h>
  ...

Fix up trivial conflicts (other header files, and  removal of the ab3550 mfd driver) in
 - drivers/media/dvb/frontends/dibx000_common.c
 - drivers/media/video/{mt9m111.c,ov6650.c}
 - drivers/mfd/ab3550-core.c
 - include/linux/dmaengine.h

225 files changed:
1  2 
arch/arm/mach-exynos/dev-sysmmu.c
arch/arm/mach-imx/mach-mx31lilly.c
arch/arm/mach-imx/mach-mx31lite.c
arch/arm/mach-imx/mach-mx31moboard.c
arch/arm/mach-omap1/board-ams-delta.c
arch/arm/mach-omap1/board-sx1.c
arch/arm/mach-omap1/board-voiceblue.c
arch/arm/mach-omap2/board-omap3evm.c
arch/arm/mach-omap2/clockdomain.c
arch/arm/mach-omap2/display.c
arch/arm/mach-omap2/pm.c
arch/arm/mach-omap2/prcm.c
arch/arm/mach-omap2/voltage.c
arch/arm/mach-s3c2410/mach-h1940.c
arch/arm/mach-tegra/pcie.c
arch/arm/plat-samsung/dev-backlight.c
arch/arm/plat-samsung/platformdata.c
arch/microblaze/kernel/dma.c
arch/mips/kernel/cpu-probe.c
arch/powerpc/include/asm/machdep.h
arch/powerpc/kernel/dma-iommu.c
arch/powerpc/kernel/dma.c
arch/powerpc/kernel/ibmebus.c
arch/powerpc/kernel/pci-common.c
arch/powerpc/kernel/prom.c
arch/powerpc/kernel/ptrace.c
arch/powerpc/kernel/setup_64.c
arch/powerpc/kernel/smp.c
arch/powerpc/kernel/vio.c
arch/powerpc/mm/hash_utils_64.c
arch/powerpc/mm/mem.c
arch/powerpc/mm/mmu_context_hash64.c
arch/powerpc/mm/numa.c
arch/powerpc/mm/tlb_nohash.c
arch/powerpc/platforms/ps3/system-bus.c
arch/powerpc/platforms/pseries/eeh.c
arch/powerpc/platforms/pseries/iommu.c
arch/powerpc/sysdev/cpm_common.c
arch/powerpc/sysdev/fsl_rio.c
arch/powerpc/xmon/xmon.c
arch/sh/kernel/topology.c
arch/sh/mm/init.c
arch/x86/crypto/aes_glue.c
arch/x86/kernel/cpu/mcheck/mce.c
block/ioctl.c
drivers/base/power/runtime.c
drivers/block/aoe/aoeblk.c
drivers/block/ps3vram.c
drivers/block/virtio_blk.c
drivers/char/ttyprintk.c
drivers/char/virtio_console.c
drivers/dma/imx-dma.c
drivers/dma/imx-sdma.c
drivers/dma/intel_mid_dma.c
drivers/dma/ipu/ipu_idmac.c
drivers/gpio/gpio-mxc.c
drivers/gpio/gpio-mxs.c
drivers/hid/hid-roccat.c
drivers/i2c/busses/i2c-sh7760.c
drivers/i2c/busses/i2c-tegra.c
drivers/infiniband/core/cm.c
drivers/infiniband/core/cma.c
drivers/infiniband/core/mad.c
drivers/infiniband/core/sysfs.c
drivers/infiniband/core/ucma.c
drivers/infiniband/core/umem.c
drivers/infiniband/core/verbs.c
drivers/infiniband/hw/cxgb4/qp.c
drivers/infiniband/hw/mthca/mthca_provider.c
drivers/infiniband/hw/qib/qib_driver.c
drivers/infiniband/hw/qib/qib_file_ops.c
drivers/infiniband/hw/qib/qib_iba7220.c
drivers/infiniband/hw/qib/qib_iba7322.c
drivers/infiniband/hw/qib/qib_init.c
drivers/infiniband/hw/qib/qib_verbs.c
drivers/infiniband/ulp/ipoib/ipoib_cm.c
drivers/infiniband/ulp/ipoib/ipoib_fs.c
drivers/infiniband/ulp/iser/iscsi_iser.c
drivers/leds/leds-asic3.c
drivers/leds/leds-gpio.c
drivers/leds/leds-lm3530.c
drivers/md/dm-log-userspace-base.c
drivers/md/dm-raid.c
drivers/md/faulty.c
drivers/md/linear.c
drivers/md/md.c
drivers/md/multipath.c
drivers/md/raid0.c
drivers/md/raid1.c
drivers/md/raid10.c
drivers/md/raid5.c
drivers/media/common/saa7146_core.c
drivers/media/common/saa7146_fops.c
drivers/media/common/saa7146_hlp.c
drivers/media/common/saa7146_video.c
drivers/media/dvb/frontends/dibx000_common.c
drivers/media/radio/radio-wl1273.c
drivers/media/radio/wl128x/fmdrv_v4l2.c
drivers/media/rc/ir-lirc-codec.c
drivers/media/rc/keymaps/rc-pinnacle-pctv-hd.c
drivers/media/rc/rc-main.c
drivers/media/video/adp1653.c
drivers/media/video/cx25840/cx25840-ir.c
drivers/media/video/hexium_gemini.c
drivers/media/video/hexium_orion.c
drivers/media/video/imx074.c
drivers/media/video/m5mols/m5mols_core.c
drivers/media/video/mt9m001.c
drivers/media/video/mt9m111.c
drivers/media/video/mt9t031.c
drivers/media/video/mt9v022.c
drivers/media/video/mxb.c
drivers/media/video/noon010pc30.c
drivers/media/video/ov6650.c
drivers/media/video/pvrusb2/pvrusb2-hdw.c
drivers/media/video/pvrusb2/pvrusb2-v4l2.c
drivers/media/video/rj54n1cb0c.c
drivers/media/video/sh_mobile_csi2.c
drivers/media/video/sr030pc30.c
drivers/media/video/tvp7002.c
drivers/media/video/v4l2-ctrls.c
drivers/media/video/v4l2-device.c
drivers/media/video/v4l2-subdev.c
drivers/mfd/ab3100-core.c
drivers/mfd/asic3.c
drivers/mfd/max8997.c
drivers/mfd/twl-core.c
drivers/mfd/twl6030-irq.c
drivers/net/bonding/bond_procfs.c
drivers/net/ethernet/emulex/benet/be_main.c
drivers/net/ethernet/mellanox/mlx4/eq.c
drivers/net/ethernet/mellanox/mlx4/fw.c
drivers/net/ethernet/mellanox/mlx4/mr.c
drivers/net/ethernet/mellanox/mlx4/pd.c
drivers/net/ethernet/mellanox/mlx4/port.c
drivers/net/ethernet/mellanox/mlx4/qp.c
drivers/net/ethernet/mellanox/mlx4/srq.c
drivers/platform/x86/wmi.c
drivers/regulator/88pm8607.c
drivers/regulator/core.c
drivers/regulator/db8500-prcmu.c
drivers/regulator/mc13783-regulator.c
drivers/regulator/tps6586x-regulator.c
drivers/s390/char/vmur.c
drivers/s390/cio/qdio_debug.c
drivers/s390/kvm/kvm_virtio.c
drivers/scsi/device_handler/scsi_dh.c
drivers/scsi/device_handler/scsi_dh_alua.c
drivers/scsi/libfc/fc_exch.c
drivers/scsi/libfc/fc_lport.c
drivers/scsi/scsi_lib.c
drivers/staging/media/solo6x10/g723.c
drivers/target/iscsi/iscsi_target.c
drivers/target/target_core_alua.c
drivers/target/target_core_device.c
drivers/target/target_core_pscsi.c
drivers/target/target_core_tmr.c
drivers/target/target_core_transport.c
drivers/usb/core/driver.c
drivers/video/backlight/l4f00242t03.c
drivers/w1/w1_int.c
drivers/xen/xenbus/xenbus_client.c
fs/cifs/connect.c
fs/logfs/super.c
fs/nfs/nfs4filelayout.c
fs/nfs/pagelist.c
fs/nfs/pnfs.c
fs/nfs/write.c
fs/nfsd/nfssvc.c
include/drm/drmP.h
include/linux/blkdev.h
include/linux/crypto.h
include/linux/device.h
include/linux/dmaengine.h
include/linux/gameport.h
include/linux/of.h
include/media/saa7146.h
include/net/inet_timewait_sock.h
include/net/ip_vs.h
include/net/sock.h
include/sound/core.h
include/xen/xenbus.h
kernel/cpu.c
kernel/cpuset.c
kernel/crash_dump.c
kernel/events/core.c
kernel/freezer.c
kernel/module.c
kernel/power/qos.c
kernel/stop_machine.c
kernel/sys.c
kernel/utsname_sysctl.c
mm/bounce.c
mm/highmem.c
mm/memcontrol.c
mm/memory-failure.c
mm/memory.c
mm/mempolicy.c
mm/migrate.c
mm/mlock.c
mm/mmap.c
mm/oom_kill.c
mm/page-writeback.c
mm/rmap.c
mm/shmem.c
mm/swap.c
mm/swapfile.c
net/8021q/vlan_core.c
net/ipv4/udplite.c
net/ipv6/addrconf.c
net/ipv6/netfilter.c
net/ipv6/route.c
net/ipv6/udplite.c
sound/core/control.c
sound/core/hwdep.c
sound/pci/hda/hda_hwdep.c
sound/pci/hda/patch_hdmi.c
sound/pci/hda/patch_realtek.c
sound/pci/hda/patch_sigmatel.c
sound/pci/hda/patch_via.c
sound/pci/intel8x0.c
sound/pci/rme9652/hdsp.c
sound/pci/rme9652/hdspm.c
sound/soc/samsung/ac97.c
sound/soc/samsung/dma.c

index 3b7cae0fe23ef257d4679056c86bc42380cc4af6,0000000000000000000000000000000000000000..781563fcb156d7dd90926fe885239fb3a8c1d82b
mode 100644,000000..100644
--- /dev/null
@@@ -1,232 -1,0 +1,233 @@@
 +/* linux/arch/arm/mach-exynos4/dev-sysmmu.c
 + *
 + * Copyright (c) 2010 Samsung Electronics Co., Ltd.
 + *            http://www.samsung.com
 + *
 + * EXYNOS4 - System MMU support
 + *
 + * This program is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License version 2 as
 + * published by the Free Software Foundation.
 + */
 +
 +#include <linux/platform_device.h>
 +#include <linux/dma-mapping.h>
++#include <linux/export.h>
 +
 +#include <mach/map.h>
 +#include <mach/irqs.h>
 +#include <mach/sysmmu.h>
 +#include <plat/s5p-clock.h>
 +
 +/* These names must be equal to the clock names in mach-exynos4/clock.c */
 +const char *sysmmu_ips_name[EXYNOS4_SYSMMU_TOTAL_IPNUM] = {
 +      "SYSMMU_MDMA"   ,
 +      "SYSMMU_SSS"    ,
 +      "SYSMMU_FIMC0"  ,
 +      "SYSMMU_FIMC1"  ,
 +      "SYSMMU_FIMC2"  ,
 +      "SYSMMU_FIMC3"  ,
 +      "SYSMMU_JPEG"   ,
 +      "SYSMMU_FIMD0"  ,
 +      "SYSMMU_FIMD1"  ,
 +      "SYSMMU_PCIe"   ,
 +      "SYSMMU_G2D"    ,
 +      "SYSMMU_ROTATOR",
 +      "SYSMMU_MDMA2"  ,
 +      "SYSMMU_TV"     ,
 +      "SYSMMU_MFC_L"  ,
 +      "SYSMMU_MFC_R"  ,
 +};
 +
 +static struct resource exynos4_sysmmu_resource[] = {
 +      [0] = {
 +              .start  = EXYNOS4_PA_SYSMMU_MDMA,
 +              .end    = EXYNOS4_PA_SYSMMU_MDMA + SZ_64K - 1,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +      [1] = {
 +              .start  = IRQ_SYSMMU_MDMA0_0,
 +              .end    = IRQ_SYSMMU_MDMA0_0,
 +              .flags  = IORESOURCE_IRQ,
 +      },
 +      [2] = {
 +              .start  = EXYNOS4_PA_SYSMMU_SSS,
 +              .end    = EXYNOS4_PA_SYSMMU_SSS + SZ_64K - 1,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +      [3] = {
 +              .start  = IRQ_SYSMMU_SSS_0,
 +              .end    = IRQ_SYSMMU_SSS_0,
 +              .flags  = IORESOURCE_IRQ,
 +      },
 +      [4] = {
 +              .start  = EXYNOS4_PA_SYSMMU_FIMC0,
 +              .end    = EXYNOS4_PA_SYSMMU_FIMC0 + SZ_64K - 1,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +      [5] = {
 +              .start  = IRQ_SYSMMU_FIMC0_0,
 +              .end    = IRQ_SYSMMU_FIMC0_0,
 +              .flags  = IORESOURCE_IRQ,
 +      },
 +      [6] = {
 +              .start  = EXYNOS4_PA_SYSMMU_FIMC1,
 +              .end    = EXYNOS4_PA_SYSMMU_FIMC1 + SZ_64K - 1,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +      [7] = {
 +              .start  = IRQ_SYSMMU_FIMC1_0,
 +              .end    = IRQ_SYSMMU_FIMC1_0,
 +              .flags  = IORESOURCE_IRQ,
 +      },
 +      [8] = {
 +              .start  = EXYNOS4_PA_SYSMMU_FIMC2,
 +              .end    = EXYNOS4_PA_SYSMMU_FIMC2 + SZ_64K - 1,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +      [9] = {
 +              .start  = IRQ_SYSMMU_FIMC2_0,
 +              .end    = IRQ_SYSMMU_FIMC2_0,
 +              .flags  = IORESOURCE_IRQ,
 +      },
 +      [10] = {
 +              .start  = EXYNOS4_PA_SYSMMU_FIMC3,
 +              .end    = EXYNOS4_PA_SYSMMU_FIMC3 + SZ_64K - 1,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +      [11] = {
 +              .start  = IRQ_SYSMMU_FIMC3_0,
 +              .end    = IRQ_SYSMMU_FIMC3_0,
 +              .flags  = IORESOURCE_IRQ,
 +      },
 +      [12] = {
 +              .start  = EXYNOS4_PA_SYSMMU_JPEG,
 +              .end    = EXYNOS4_PA_SYSMMU_JPEG + SZ_64K - 1,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +      [13] = {
 +              .start  = IRQ_SYSMMU_JPEG_0,
 +              .end    = IRQ_SYSMMU_JPEG_0,
 +              .flags  = IORESOURCE_IRQ,
 +      },
 +      [14] = {
 +              .start  = EXYNOS4_PA_SYSMMU_FIMD0,
 +              .end    = EXYNOS4_PA_SYSMMU_FIMD0 + SZ_64K - 1,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +      [15] = {
 +              .start  = IRQ_SYSMMU_LCD0_M0_0,
 +              .end    = IRQ_SYSMMU_LCD0_M0_0,
 +              .flags  = IORESOURCE_IRQ,
 +      },
 +      [16] = {
 +              .start  = EXYNOS4_PA_SYSMMU_FIMD1,
 +              .end    = EXYNOS4_PA_SYSMMU_FIMD1 + SZ_64K - 1,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +      [17] = {
 +              .start  = IRQ_SYSMMU_LCD1_M1_0,
 +              .end    = IRQ_SYSMMU_LCD1_M1_0,
 +              .flags  = IORESOURCE_IRQ,
 +      },
 +      [18] = {
 +              .start  = EXYNOS4_PA_SYSMMU_PCIe,
 +              .end    = EXYNOS4_PA_SYSMMU_PCIe + SZ_64K - 1,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +      [19] = {
 +              .start  = IRQ_SYSMMU_PCIE_0,
 +              .end    = IRQ_SYSMMU_PCIE_0,
 +              .flags  = IORESOURCE_IRQ,
 +      },
 +      [20] = {
 +              .start  = EXYNOS4_PA_SYSMMU_G2D,
 +              .end    = EXYNOS4_PA_SYSMMU_G2D + SZ_64K - 1,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +      [21] = {
 +              .start  = IRQ_SYSMMU_2D_0,
 +              .end    = IRQ_SYSMMU_2D_0,
 +              .flags  = IORESOURCE_IRQ,
 +      },
 +      [22] = {
 +              .start  = EXYNOS4_PA_SYSMMU_ROTATOR,
 +              .end    = EXYNOS4_PA_SYSMMU_ROTATOR + SZ_64K - 1,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +      [23] = {
 +              .start  = IRQ_SYSMMU_ROTATOR_0,
 +              .end    = IRQ_SYSMMU_ROTATOR_0,
 +              .flags  = IORESOURCE_IRQ,
 +      },
 +      [24] = {
 +              .start  = EXYNOS4_PA_SYSMMU_MDMA2,
 +              .end    = EXYNOS4_PA_SYSMMU_MDMA2 + SZ_64K - 1,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +      [25] = {
 +              .start  = IRQ_SYSMMU_MDMA1_0,
 +              .end    = IRQ_SYSMMU_MDMA1_0,
 +              .flags  = IORESOURCE_IRQ,
 +      },
 +      [26] = {
 +              .start  = EXYNOS4_PA_SYSMMU_TV,
 +              .end    = EXYNOS4_PA_SYSMMU_TV + SZ_64K - 1,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +      [27] = {
 +              .start  = IRQ_SYSMMU_TV_M0_0,
 +              .end    = IRQ_SYSMMU_TV_M0_0,
 +              .flags  = IORESOURCE_IRQ,
 +      },
 +      [28] = {
 +              .start  = EXYNOS4_PA_SYSMMU_MFC_L,
 +              .end    = EXYNOS4_PA_SYSMMU_MFC_L + SZ_64K - 1,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +      [29] = {
 +              .start  = IRQ_SYSMMU_MFC_M0_0,
 +              .end    = IRQ_SYSMMU_MFC_M0_0,
 +              .flags  = IORESOURCE_IRQ,
 +      },
 +      [30] = {
 +              .start  = EXYNOS4_PA_SYSMMU_MFC_R,
 +              .end    = EXYNOS4_PA_SYSMMU_MFC_R + SZ_64K - 1,
 +              .flags  = IORESOURCE_MEM,
 +      },
 +      [31] = {
 +              .start  = IRQ_SYSMMU_MFC_M1_0,
 +              .end    = IRQ_SYSMMU_MFC_M1_0,
 +              .flags  = IORESOURCE_IRQ,
 +      },
 +};
 +
 +struct platform_device exynos4_device_sysmmu = {
 +      .name           = "s5p-sysmmu",
 +      .id             = 32,
 +      .num_resources  = ARRAY_SIZE(exynos4_sysmmu_resource),
 +      .resource       = exynos4_sysmmu_resource,
 +};
 +EXPORT_SYMBOL(exynos4_device_sysmmu);
 +
 +static struct clk *sysmmu_clk[S5P_SYSMMU_TOTAL_IPNUM];
 +void sysmmu_clk_init(struct device *dev, sysmmu_ips ips)
 +{
 +      sysmmu_clk[ips] = clk_get(dev, sysmmu_ips_name[ips]);
 +      if (IS_ERR(sysmmu_clk[ips]))
 +              sysmmu_clk[ips] = NULL;
 +      else
 +              clk_put(sysmmu_clk[ips]);
 +}
 +
 +void sysmmu_clk_enable(sysmmu_ips ips)
 +{
 +      if (sysmmu_clk[ips])
 +              clk_enable(sysmmu_clk[ips]);
 +}
 +
 +void sysmmu_clk_disable(sysmmu_ips ips)
 +{
 +      if (sysmmu_clk[ips])
 +              clk_disable(sysmmu_clk[ips]);
 +}
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 64070ac1e761048caf85bf5fb4ebad2e06b85197,e964cfd3a3d0108fd5967a2d337fd5842eef258f..1f8fdf736e630976bc97fc781d58bfbf85704179
  
  #include <linux/delay.h>
  #include <linux/io.h>
 -#include <linux/clk.h>
  #include <linux/err.h>
+ #include <linux/export.h>
  #include <linux/debugfs.h>
  #include <linux/slab.h>
 +#include <linux/clk.h>
  
  #include <plat/common.h>
  
Simple merge
Simple merge
index 2adbeaed4c042262d0ef4f9cdf0beb2dded2cf5b,a976c023b286b4a1b991cfa63c2dc93e9912151d..e657305644cc27140f8c878d99e34ac2ea668ac0
  
  #include <linux/gpio.h>
  #include <linux/platform_device.h>
+ #include <linux/slab.h>
  #include <linux/io.h>
  #include <linux/pwm_backlight.h>
 +#include <linux/slab.h>
  
  #include <plat/devs.h>
  #include <plat/gpio-cfg.h>
Simple merge
index dc6416d265d616e1ac65382b5174c81c1b22d723,b159b8a847d69144d0a74753dca4d315bb80a7fd..65a4af4cbbbe864bb10eb75ff7fd1426c8021950
@@@ -10,7 -10,9 +10,8 @@@
  #include <linux/dma-mapping.h>
  #include <linux/gfp.h>
  #include <linux/dma-debug.h>
+ #include <linux/export.h>
  #include <asm/bug.h>
 -#include <asm/cacheflush.h>
  
  /*
   * Generic direct DMA implementation
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index ecc2d3d0f54a3bd142500fae47b207ad421ee699,ab37955b453a592f5034bb4eb8f89ff055764fd8..4649a6ff0cfefa1f64e7ce91dd2105f15ac8eccd
  #include <linux/cpumask.h>
  #include <linux/init.h>
  #include <linux/percpu.h>
 +#include <linux/topology.h>
  #include <linux/node.h>
  #include <linux/nodemask.h>
+ #include <linux/export.h>
  
  static DEFINE_PER_CPU(struct cpu, cpu_devices);
  
Simple merge
index b0b6950cc8c8850d68366b869ca39e4250827013,bdce3eeeaa37633ead43d56065892cfaa4a53c58..8efcf42a9d7e318b4cddb93a820cd01d1bd01f4e
@@@ -3,8 -3,8 +3,9 @@@
   *
   */
  
+ #include <linux/module.h>
  #include <crypto/aes.h>
 +#include <asm/aes.h>
  
  asmlinkage void aes_enc_blk(struct crypto_aes_ctx *ctx, u8 *out, const u8 *in);
  asmlinkage void aes_dec_blk(struct crypto_aes_ctx *ctx, u8 *out, const u8 *in);
index 864830e1dd655839dec78d5b45ed2e27442305c8,537c89e0009519900f51451095907f138576dfa5..362056aefeb474c86b165c4f9c77d213b40fdbfa
@@@ -36,7 -36,9 +36,8 @@@
  #include <linux/fs.h>
  #include <linux/mm.h>
  #include <linux/debugfs.h>
 -#include <linux/edac_mce.h>
  #include <linux/irq_work.h>
+ #include <linux/export.h>
  
  #include <asm/processor.h>
  #include <asm/mce.h>
diff --cc block/ioctl.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 42517500b223e98b0e9dd265e799233057dde9f4,a8923ffc64594eba2e00a83645bd4d58534d011b..602b1bd723a963aa49904fc0a907d12d965b009e
@@@ -38,8 -38,8 +38,9 @@@
  
  #include <linux/errno.h>
  #include <linux/err.h>
+ #include <linux/export.h>
  #include <linux/string.h>
 +#include <linux/slab.h>
  
  #include <rdma/ib_verbs.h>
  #include <rdma/ib_cache.h>
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc drivers/md/md.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index f5d53a2023442fbfe1bb8c9bf77817e0fd051174,31e53b6a881aa2f7894d72f43bb3fe50e84495a6..d6b1cf66042d196b40a7b99c18241fe186840d1d
      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
  
 +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 +
  #include <media/saa7146.h>
+ #include <linux/module.h>
  
  LIST_HEAD(saa7146_devices);
  DEFINE_MUTEX(saa7146_devices_lock);
index a92546144eaa30dc33695104374841b73b5b2bda,e4547afcfa8809e41c9488b380c58939188ca719..71f8e018e564818225137d437ecbc369418a5519
@@@ -1,6 -1,5 +1,7 @@@
 +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 +
  #include <media/saa7146_vv.h>
+ #include <linux/module.h>
  
  /****************************************************************************/
  /* resource management functions, shamelessly stolen from saa7134 driver */
index 79ad73accb27426a058c03ef4481be174988eda0,c9c6e9a6c31d30e187ef38b480d0a46a226f1803..bc1f545c95cb2b669cae45a7e59bfe268e4d2844
@@@ -1,6 -1,5 +1,7 @@@
 +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 +
  #include <linux/kernel.h>
+ #include <linux/export.h>
  #include <media/saa7146_vv.h>
  
  static void calculate_output_format_register(struct saa7146_dev* saa, u32 palette, u32* clip_format)
index 384b358d30379dfcdef7a99428bea28c24f7b77f,3a00253fe1ee8bc6ab5e0e3fb89ef8cd451feef2..ce30533fd9724e1f802ecb6f67a6e6f42f998a65
@@@ -1,7 -1,6 +1,8 @@@
 +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 +
  #include <media/saa7146_vv.h>
  #include <media/v4l2-chip-ident.h>
+ #include <linux/module.h>
  
  static int max_memory = 32;
  
index 774d507b66cc7e841b412efe4c06ea4a6c8c1be5,977211fec137bdcf668ef7a022f23548e38ae11b..43be7238311ec513726e8ecaa13d0864c2b622dd
@@@ -1,5 -1,5 +1,6 @@@
  #include <linux/i2c.h>
 +#include <linux/mutex.h>
+ #include <linux/module.h>
  
  #include "dibx000_common.h"
  
Simple merge
Simple merge
Simple merge
index 5914390211ff2ac6f087ec5693c08234ec55bd7d,c2594948ca3fad7cbc7c4d52a327b1fa57a94904..12eedf4d515aa86dcf60107de69158895ae04795
@@@ -31,8 -31,8 +31,9 @@@
   */
  
  #include <linux/delay.h>
+ #include <linux/module.h>
  #include <linux/i2c.h>
 +#include <linux/module.h>
  #include <linux/slab.h>
  #include <linux/version.h>
  #include <media/adp1653.h>
Simple merge
Simple merge
index 8775e262bb6e8b9f42f19a467ed37ec806ff79e4,3319b40c87a4fd584a554dd32c9eb433cb0cc0f6..eec75bb57203f4c044ce8072616f625094a78385
  
  #include <linux/delay.h>
  #include <linux/i2c.h>
 +#include <linux/v4l2-mediabus.h>
  #include <linux/slab.h>
  #include <linux/videodev2.h>
+ #include <linux/module.h>
  
  #include <media/soc_camera.h>
 -#include <media/soc_mediabus.h>
  #include <media/v4l2-subdev.h>
  #include <media/v4l2-chip-ident.h>
  
index 63ae5c61c9bf9af4f63c32f0ed6ed3e513206d1a,6866a9ef3f60c1e31330c37de2c4941de4d5ef18..e2b1029b16cdd24552123d67dfc4a44ef51a6359
  #include <linux/slab.h>
  #include <linux/i2c.h>
  #include <linux/log2.h>
+ #include <linux/module.h>
  
 +#include <media/soc_camera.h>
 +#include <media/soc_mediabus.h>
  #include <media/v4l2-subdev.h>
  #include <media/v4l2-chip-ident.h>
 -#include <media/soc_camera.h>
 +#include <media/v4l2-ctrls.h>
  
  /*
   * mt9m001 i2c address 0x5d
index f023cc092c2b8ea6d435daaf77e802ae74ef0ad3,66e3c3c2e60601fb8ac4319397df4b051207de24..cf2c0fb95f2f47d96121e55a4e4d87a07c076bcf
  #include <linux/log2.h>
  #include <linux/gpio.h>
  #include <linux/delay.h>
 +#include <linux/v4l2-mediabus.h>
+ #include <linux/module.h>
  
 +#include <media/soc_camera.h>
  #include <media/v4l2-common.h>
 +#include <media/v4l2-ctrls.h>
  #include <media/v4l2-chip-ident.h>
 -#include <media/soc_camera.h>
  
  /*
   * MT9M111, MT9M112 and MT9M131:
index 7ee84cc578b9d2d018358bb6d1a44b7415fdb994,e6e0238eca16a4bb5b1f6ddfabe2e71a323bec88..0e78477452ffb81bf5a09a781d9b68326b61e345
@@@ -13,8 -13,8 +13,9 @@@
  #include <linux/log2.h>
  #include <linux/pm.h>
  #include <linux/slab.h>
 +#include <linux/v4l2-mediabus.h>
  #include <linux/videodev2.h>
+ #include <linux/module.h>
  
  #include <media/soc_camera.h>
  #include <media/v4l2-chip-ident.h>
index b6a29f7de82cf60ff6cbf21c878db52f43afbd78,c74d6604598ebcf8c9dfafdc2f2b43672e39f963..690ee0d42eebbcbb8aaf7374ca49a7302716180f
  #include <linux/i2c.h>
  #include <linux/delay.h>
  #include <linux/log2.h>
+ #include <linux/module.h>
  
 +#include <media/soc_camera.h>
 +#include <media/soc_mediabus.h>
  #include <media/v4l2-subdev.h>
  #include <media/v4l2-chip-ident.h>
 -#include <media/soc_camera.h>
 +#include <media/v4l2-ctrls.h>
  
  /*
   * mt9v022 i2c address 0x48, 0x4c, 0x58, 0x5c
Simple merge
Simple merge
index d5b057207a7b969b330d20e02161ac7a0bf7c245,2e1680631f0fe4913f204bd07da42cc4e7031e43..9f2d26b1d4cb8e2af6a48ccdc9c3f66c4bc87715
@@@ -28,7 -28,7 +28,8 @@@
  #include <linux/delay.h>
  #include <linux/i2c.h>
  #include <linux/slab.h>
 +#include <linux/v4l2-mediabus.h>
+ #include <linux/module.h>
  
  #include <media/soc_camera.h>
  #include <media/v4l2-chip-ident.h>
index 6afc6168954926cb0f4715150798ea217255ca79,985965f744ffdb16f366e352b40cc70fb481fbbf..9937386a3baef7e0bf252eb82d75a2283b89b97a
@@@ -11,8 -11,8 +11,9 @@@
  #include <linux/delay.h>
  #include <linux/i2c.h>
  #include <linux/slab.h>
 +#include <linux/v4l2-mediabus.h>
  #include <linux/videodev2.h>
+ #include <linux/module.h>
  
  #include <media/rj54n1cb0c.h>
  #include <media/soc_camera.h>
Simple merge
Simple merge
Simple merge
Simple merge
index 9fc0ae8a526a4958995dd76fbedefd630d736879,c742b1f5e73efa6c226ddfae2d3b80d01df0bd2e..0edd618b9ddf17c1a117b157428df48ceccca1ae
@@@ -20,8 -20,8 +20,9 @@@
  
  #include <linux/types.h>
  #include <linux/ioctl.h>
+ #include <linux/module.h>
  #include <linux/i2c.h>
 +#include <linux/slab.h>
  #if defined(CONFIG_SPI)
  #include <linux/spi/spi.h>
  #endif
Simple merge
Simple merge
Simple merge
index dc58750bb71bbfc52c45fd8afe93be1d5d288be7,50ad93bb49ddfbf4e4839f81102fd98299958dbf..5be53ae9b61cf2a6d6c318c881e43605b3dee526
@@@ -23,8 -23,8 +23,9 @@@
  
  #include <linux/slab.h>
  #include <linux/i2c.h>
 +#include <linux/interrupt.h>
  #include <linux/pm_runtime.h>
+ #include <linux/module.h>
  #include <linux/mutex.h>
  #include <linux/mfd/core.h>
  #include <linux/mfd/max8997.h>
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index d291a54acfad5f94ec127cfdbff6e37d5b8cf85d,b95cbdccc11a506128c5e8c237f3c7121fbed86e..85f4a9a5d12e5d00a7e445bd1e1e0a784eaf7cd0
  #define KMSG_COMPONENT "vmur"
  #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
  
 -#include <linux/kernel_stat.h>
  #include <linux/cdev.h>
  #include <linux/slab.h>
+ #include <linux/module.h>
  
  #include <asm/uaccess.h>
  #include <asm/cio.h>
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 59274bfca95bf53182f2800aae636ad0d91a7725,0000000000000000000000000000000000000000..2cd0de28a633eb7ca74386baff9199e870748b30
mode 100644,000000..100644
--- /dev/null
@@@ -1,399 -1,0 +1,400 @@@
 +/*
 + * Copyright (C) 2010 Bluecherry, LLC www.bluecherrydvr.com
 + * Copyright (C) 2010 Ben Collins <bcollins@bluecherry.net>
 + *
 + * This program is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
 + * the Free Software Foundation; either version 2 of the License, or
 + * (at your option) any later version.
 + *
 + * This program is distributed in the hope that it will be useful,
 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 + * GNU General Public License for more details.
 + *
 + * You should have received a copy of the GNU General Public License
 + * along with this program; if not, write to the Free Software
 + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 + */
 +
 +#include <linux/kernel.h>
 +#include <linux/mempool.h>
 +#include <linux/poll.h>
 +#include <linux/kthread.h>
 +#include <linux/slab.h>
 +#include <linux/freezer.h>
++#include <linux/export.h>
 +#include <sound/core.h>
 +#include <sound/initval.h>
 +#include <sound/pcm.h>
 +#include <sound/control.h>
 +#include "solo6x10.h"
 +#include "tw28.h"
 +
 +#define G723_INTR_ORDER               0
 +#define G723_FDMA_PAGES               32
 +#define G723_PERIOD_BYTES     48
 +#define G723_PERIOD_BLOCK     1024
 +#define G723_FRAMES_PER_PAGE  48
 +
 +/* Sets up channels 16-19 for decoding and 0-15 for encoding */
 +#define OUTMODE_MASK          0x300
 +
 +#define SAMPLERATE            8000
 +#define BITRATE                       25
 +
 +/* The solo writes to 1k byte pages, 32 pages, in the dma. Each 1k page
 + * is broken down to 20 * 48 byte regions (one for each channel possible)
 + * with the rest of the page being dummy data. */
 +#define MAX_BUFFER            (G723_PERIOD_BYTES * PERIODS_MAX)
 +#define IRQ_PAGES             4 /* 0 - 4 */
 +#define PERIODS_MIN           (1 << IRQ_PAGES)
 +#define PERIODS_MAX           G723_FDMA_PAGES
 +
 +struct solo_snd_pcm {
 +      int             on;
 +      spinlock_t      lock;
 +      struct solo_dev *solo_dev;
 +      unsigned char   g723_buf[G723_PERIOD_BYTES];
 +};
 +
 +static void solo_g723_config(struct solo_dev *solo_dev)
 +{
 +      int clk_div;
 +
 +      clk_div = SOLO_CLOCK_MHZ / (SAMPLERATE * (BITRATE * 2) * 2);
 +
 +      solo_reg_write(solo_dev, SOLO_AUDIO_SAMPLE,
 +                     SOLO_AUDIO_BITRATE(BITRATE) |
 +                     SOLO_AUDIO_CLK_DIV(clk_div));
 +
 +      solo_reg_write(solo_dev, SOLO_AUDIO_FDMA_INTR,
 +                    SOLO_AUDIO_FDMA_INTERVAL(IRQ_PAGES) |
 +                    SOLO_AUDIO_INTR_ORDER(G723_INTR_ORDER) |
 +                    SOLO_AUDIO_FDMA_BASE(SOLO_G723_EXT_ADDR(solo_dev) >> 16));
 +
 +      solo_reg_write(solo_dev, SOLO_AUDIO_CONTROL,
 +                     SOLO_AUDIO_ENABLE | SOLO_AUDIO_I2S_MODE |
 +                     SOLO_AUDIO_I2S_MULTI(3) | SOLO_AUDIO_MODE(OUTMODE_MASK));
 +}
 +
 +void solo_g723_isr(struct solo_dev *solo_dev)
 +{
 +      struct snd_pcm_str *pstr =
 +              &solo_dev->snd_pcm->streams[SNDRV_PCM_STREAM_CAPTURE];
 +      struct snd_pcm_substream *ss;
 +      struct solo_snd_pcm *solo_pcm;
 +
 +      solo_reg_write(solo_dev, SOLO_IRQ_STAT, SOLO_IRQ_G723);
 +
 +      for (ss = pstr->substream; ss != NULL; ss = ss->next) {
 +              if (snd_pcm_substream_chip(ss) == NULL)
 +                      continue;
 +
 +              /* This means open() hasn't been called on this one */
 +              if (snd_pcm_substream_chip(ss) == solo_dev)
 +                      continue;
 +
 +              /* Haven't triggered a start yet */
 +              solo_pcm = snd_pcm_substream_chip(ss);
 +              if (!solo_pcm->on)
 +                      continue;
 +
 +              snd_pcm_period_elapsed(ss);
 +      }
 +}
 +
 +static int snd_solo_hw_params(struct snd_pcm_substream *ss,
 +                            struct snd_pcm_hw_params *hw_params)
 +{
 +      return snd_pcm_lib_malloc_pages(ss, params_buffer_bytes(hw_params));
 +}
 +
 +static int snd_solo_hw_free(struct snd_pcm_substream *ss)
 +{
 +      return snd_pcm_lib_free_pages(ss);
 +}
 +
 +static struct snd_pcm_hardware snd_solo_pcm_hw = {
 +      .info                   = (SNDRV_PCM_INFO_MMAP |
 +                                 SNDRV_PCM_INFO_INTERLEAVED |
 +                                 SNDRV_PCM_INFO_BLOCK_TRANSFER |
 +                                 SNDRV_PCM_INFO_MMAP_VALID),
 +      .formats                = SNDRV_PCM_FMTBIT_U8,
 +      .rates                  = SNDRV_PCM_RATE_8000,
 +      .rate_min               = 8000,
 +      .rate_max               = 8000,
 +      .channels_min           = 1,
 +      .channels_max           = 1,
 +      .buffer_bytes_max       = MAX_BUFFER,
 +      .period_bytes_min       = G723_PERIOD_BYTES,
 +      .period_bytes_max       = G723_PERIOD_BYTES,
 +      .periods_min            = PERIODS_MIN,
 +      .periods_max            = PERIODS_MAX,
 +};
 +
 +static int snd_solo_pcm_open(struct snd_pcm_substream *ss)
 +{
 +      struct solo_dev *solo_dev = snd_pcm_substream_chip(ss);
 +      struct solo_snd_pcm *solo_pcm;
 +
 +      solo_pcm = kzalloc(sizeof(*solo_pcm), GFP_KERNEL);
 +      if (solo_pcm == NULL)
 +              return -ENOMEM;
 +
 +      spin_lock_init(&solo_pcm->lock);
 +      solo_pcm->solo_dev = solo_dev;
 +      ss->runtime->hw = snd_solo_pcm_hw;
 +
 +      snd_pcm_substream_chip(ss) = solo_pcm;
 +
 +      return 0;
 +}
 +
 +static int snd_solo_pcm_close(struct snd_pcm_substream *ss)
 +{
 +      struct solo_snd_pcm *solo_pcm = snd_pcm_substream_chip(ss);
 +
 +      snd_pcm_substream_chip(ss) = solo_pcm->solo_dev;
 +      kfree(solo_pcm);
 +
 +      return 0;
 +}
 +
 +static int snd_solo_pcm_trigger(struct snd_pcm_substream *ss, int cmd)
 +{
 +      struct solo_snd_pcm *solo_pcm = snd_pcm_substream_chip(ss);
 +      struct solo_dev *solo_dev = solo_pcm->solo_dev;
 +      int ret = 0;
 +
 +      spin_lock(&solo_pcm->lock);
 +
 +      switch (cmd) {
 +      case SNDRV_PCM_TRIGGER_START:
 +              if (solo_pcm->on == 0) {
 +                      /* If this is the first user, switch on interrupts */
 +                      if (atomic_inc_return(&solo_dev->snd_users) == 1)
 +                              solo_irq_on(solo_dev, SOLO_IRQ_G723);
 +                      solo_pcm->on = 1;
 +              }
 +              break;
 +      case SNDRV_PCM_TRIGGER_STOP:
 +              if (solo_pcm->on) {
 +                      /* If this was our last user, switch them off */
 +                      if (atomic_dec_return(&solo_dev->snd_users) == 0)
 +                              solo_irq_off(solo_dev, SOLO_IRQ_G723);
 +                      solo_pcm->on = 0;
 +              }
 +              break;
 +      default:
 +              ret = -EINVAL;
 +      }
 +
 +      spin_unlock(&solo_pcm->lock);
 +
 +      return ret;
 +}
 +
 +static int snd_solo_pcm_prepare(struct snd_pcm_substream *ss)
 +{
 +      return 0;
 +}
 +
 +static snd_pcm_uframes_t snd_solo_pcm_pointer(struct snd_pcm_substream *ss)
 +{
 +      struct solo_snd_pcm *solo_pcm = snd_pcm_substream_chip(ss);
 +      struct solo_dev *solo_dev = solo_pcm->solo_dev;
 +      snd_pcm_uframes_t idx = solo_reg_read(solo_dev, SOLO_AUDIO_STA) & 0x1f;
 +
 +      return idx * G723_FRAMES_PER_PAGE;
 +}
 +
 +static int snd_solo_pcm_copy(struct snd_pcm_substream *ss, int channel,
 +                           snd_pcm_uframes_t pos, void __user *dst,
 +                           snd_pcm_uframes_t count)
 +{
 +      struct solo_snd_pcm *solo_pcm = snd_pcm_substream_chip(ss);
 +      struct solo_dev *solo_dev = solo_pcm->solo_dev;
 +      int err, i;
 +
 +      for (i = 0; i < (count / G723_FRAMES_PER_PAGE); i++) {
 +              int page = (pos / G723_FRAMES_PER_PAGE) + i;
 +
 +              err = solo_p2m_dma(solo_dev, SOLO_P2M_DMA_ID_G723E, 0,
 +                                 solo_pcm->g723_buf,
 +                                 SOLO_G723_EXT_ADDR(solo_dev) +
 +                                 (page * G723_PERIOD_BLOCK) +
 +                                 (ss->number * G723_PERIOD_BYTES),
 +                                 G723_PERIOD_BYTES);
 +              if (err)
 +                      return err;
 +
 +              err = copy_to_user(dst + (i * G723_PERIOD_BYTES),
 +                                 solo_pcm->g723_buf, G723_PERIOD_BYTES);
 +
 +              if (err)
 +                      return -EFAULT;
 +      }
 +
 +      return 0;
 +}
 +
 +static struct snd_pcm_ops snd_solo_pcm_ops = {
 +      .open = snd_solo_pcm_open,
 +      .close = snd_solo_pcm_close,
 +      .ioctl = snd_pcm_lib_ioctl,
 +      .hw_params = snd_solo_hw_params,
 +      .hw_free = snd_solo_hw_free,
 +      .prepare = snd_solo_pcm_prepare,
 +      .trigger = snd_solo_pcm_trigger,
 +      .pointer = snd_solo_pcm_pointer,
 +      .copy = snd_solo_pcm_copy,
 +};
 +
 +static int snd_solo_capture_volume_info(struct snd_kcontrol *kcontrol,
 +                                      struct snd_ctl_elem_info *info)
 +{
 +      info->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
 +      info->count = 1;
 +      info->value.integer.min = 0;
 +      info->value.integer.max = 15;
 +      info->value.integer.step = 1;
 +
 +      return 0;
 +}
 +
 +static int snd_solo_capture_volume_get(struct snd_kcontrol *kcontrol,
 +                                     struct snd_ctl_elem_value *value)
 +{
 +      struct solo_dev *solo_dev = snd_kcontrol_chip(kcontrol);
 +      u8 ch = value->id.numid - 1;
 +
 +      value->value.integer.value[0] = tw28_get_audio_gain(solo_dev, ch);
 +
 +      return 0;
 +}
 +
 +static int snd_solo_capture_volume_put(struct snd_kcontrol *kcontrol,
 +                                     struct snd_ctl_elem_value *value)
 +{
 +      struct solo_dev *solo_dev = snd_kcontrol_chip(kcontrol);
 +      u8 ch = value->id.numid - 1;
 +      u8 old_val;
 +
 +      old_val = tw28_get_audio_gain(solo_dev, ch);
 +      if (old_val == value->value.integer.value[0])
 +              return 0;
 +
 +      tw28_set_audio_gain(solo_dev, ch, value->value.integer.value[0]);
 +
 +      return 1;
 +}
 +
 +static struct snd_kcontrol_new snd_solo_capture_volume = {
 +      .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
 +      .name = "Capture Volume",
 +      .info = snd_solo_capture_volume_info,
 +      .get = snd_solo_capture_volume_get,
 +      .put = snd_solo_capture_volume_put,
 +};
 +
 +static int solo_snd_pcm_init(struct solo_dev *solo_dev)
 +{
 +      struct snd_card *card = solo_dev->snd_card;
 +      struct snd_pcm *pcm;
 +      struct snd_pcm_substream *ss;
 +      int ret;
 +      int i;
 +
 +      ret = snd_pcm_new(card, card->driver, 0, 0, solo_dev->nr_chans,
 +                        &pcm);
 +      if (ret < 0)
 +              return ret;
 +
 +      snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE,
 +                      &snd_solo_pcm_ops);
 +
 +      snd_pcm_chip(pcm) = solo_dev;
 +      pcm->info_flags = 0;
 +      strcpy(pcm->name, card->shortname);
 +
 +      for (i = 0, ss = pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream;
 +           ss; ss = ss->next, i++)
 +              sprintf(ss->name, "Camera #%d Audio", i);
 +
 +      ret = snd_pcm_lib_preallocate_pages_for_all(pcm,
 +                                      SNDRV_DMA_TYPE_CONTINUOUS,
 +                                      snd_dma_continuous_data(GFP_KERNEL),
 +                                      MAX_BUFFER, MAX_BUFFER);
 +      if (ret < 0)
 +              return ret;
 +
 +      solo_dev->snd_pcm = pcm;
 +
 +      return 0;
 +}
 +
 +int solo_g723_init(struct solo_dev *solo_dev)
 +{
 +      static struct snd_device_ops ops = { NULL };
 +      struct snd_card *card;
 +      struct snd_kcontrol_new kctl;
 +      char name[32];
 +      int ret;
 +
 +      atomic_set(&solo_dev->snd_users, 0);
 +
 +      /* Allows for easier mapping between video and audio */
 +      sprintf(name, "Softlogic%d", solo_dev->vfd->num);
 +
 +      ret = snd_card_create(SNDRV_DEFAULT_IDX1, name, THIS_MODULE, 0,
 +                            &solo_dev->snd_card);
 +      if (ret < 0)
 +              return ret;
 +
 +      card = solo_dev->snd_card;
 +
 +      strcpy(card->driver, SOLO6X10_NAME);
 +      strcpy(card->shortname, "SOLO-6x10 Audio");
 +      sprintf(card->longname, "%s on %s IRQ %d", card->shortname,
 +              pci_name(solo_dev->pdev), solo_dev->pdev->irq);
 +      snd_card_set_dev(card, &solo_dev->pdev->dev);
 +
 +      ret = snd_device_new(card, SNDRV_DEV_LOWLEVEL, solo_dev, &ops);
 +      if (ret < 0)
 +              goto snd_error;
 +
 +      /* Mixer controls */
 +      strcpy(card->mixername, "SOLO-6x10");
 +      kctl = snd_solo_capture_volume;
 +      kctl.count = solo_dev->nr_chans;
 +      ret = snd_ctl_add(card, snd_ctl_new1(&kctl, solo_dev));
 +      if (ret < 0)
 +              return ret;
 +
 +      ret = solo_snd_pcm_init(solo_dev);
 +      if (ret < 0)
 +              goto snd_error;
 +
 +      ret = snd_card_register(card);
 +      if (ret < 0)
 +              goto snd_error;
 +
 +      solo_g723_config(solo_dev);
 +
 +      dev_info(&solo_dev->pdev->dev, "Alsa sound card as %s\n", name);
 +
 +      return 0;
 +
 +snd_error:
 +      snd_card_free(card);
 +      return ret;
 +}
 +
 +void solo_g723_exit(struct solo_dev *solo_dev)
 +{
 +      solo_reg_write(solo_dev, SOLO_AUDIO_CONTROL, 0);
 +      solo_irq_off(solo_dev, SOLO_IRQ_G723);
 +
 +      snd_card_free(solo_dev->snd_card);
 +}
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc fs/nfs/pnfs.c
Simple merge
diff --cc fs/nfs/write.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index ace51af4369f668ea647f47c2d87f76d4478b121,1ceff5ae9d31c2df27b1e6bcc46df342a5b43125..75f53f874b24a0c0abb790f501f2f60ace48e17e
  #include <linux/device.h>
  #include <linux/uio.h>
  #include <linux/dma-direction.h>
 +#include <linux/scatterlist.h>
+ #include <linux/bitmap.h>
+ #include <asm/page.h>
  
 -struct scatterlist;
 -
  /**
   * typedef dma_cookie_t - an opaque DMA cookie
   *
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc kernel/cpu.c
Simple merge
diff --cc kernel/cpuset.c
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc kernel/module.c
Simple merge
Simple merge
Simple merge
diff --cc kernel/sys.c
Simple merge
Simple merge
diff --cc mm/bounce.c
Simple merge
diff --cc mm/highmem.c
Simple merge
diff --cc mm/memcontrol.c
Simple merge
Simple merge
diff --cc mm/memory.c
Simple merge
diff --cc mm/mempolicy.c
Simple merge
diff --cc mm/migrate.c
Simple merge
diff --cc mm/mlock.c
Simple merge
diff --cc mm/mmap.c
Simple merge
diff --cc mm/oom_kill.c
Simple merge
Simple merge
diff --cc mm/rmap.c
Simple merge
diff --cc mm/shmem.c
Simple merge
diff --cc mm/swap.c
Simple merge
diff --cc mm/swapfile.c
Simple merge
index 163397f1fd5adefd655efcfb681544b1a56655bf,1f64cc9da1b09b75b40ccf532580ef20cdbe7c29..f5ffc02729d60396aac6abbdcbfc49bf1ebf20e1
@@@ -2,9 -2,10 +2,10 @@@
  #include <linux/netdevice.h>
  #include <linux/if_vlan.h>
  #include <linux/netpoll.h>
+ #include <linux/export.h>
  #include "vlan.h"
  
 -bool vlan_do_receive(struct sk_buff **skbp)
 +bool vlan_do_receive(struct sk_buff **skbp, bool last_handler)
  {
        struct sk_buff *skb = *skbp;
        u16 vlan_id = skb->vlan_tci & VLAN_VID_MASK;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge