Skip to content

Commit

Permalink
Merge branch 'feature/android443'
Browse files Browse the repository at this point in the history
  • Loading branch information
anvol committed Sep 3, 2014
2 parents 4dd0bc6 + 3bab168 commit 055355e
Show file tree
Hide file tree
Showing 181 changed files with 5,862 additions and 4,943 deletions.
12 changes: 9 additions & 3 deletions arch/arm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ config ARM
select HAVE_DMA_API_DEBUG
select HAVE_IDE if PCI || ISA || PCMCIA
select HAVE_DMA_CONTIGUOUS if (CPU_V6 || CPU_V6K || CPU_V7)
select HAVE_DMA_ATTRS
select HAVE_MEMBLOCK
select RTC_LIB
select SYS_SUPPORTS_APM_EMULATION
Expand Down Expand Up @@ -46,6 +47,14 @@ config ARM
config ARM_HAS_SG_CHAIN
bool

config NEED_SG_DMA_LENGTH
bool

config ARM_DMA_USE_IOMMU
select NEED_SG_DMA_LENGTH
select ARM_HAS_SG_CHAIN
bool

config HAVE_PWM
bool

Expand Down Expand Up @@ -1869,9 +1878,6 @@ config ARCH_MEMORY_PROBE
config ARCH_MEMORY_REMOVE
def_bool n

config ARCH_POPULATES_NODE_MAP
def_bool n

config ENABLE_DMM
def_bool n

Expand Down
18 changes: 13 additions & 5 deletions arch/arm/configs/dlxp_ul_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ CONFIG_RD_GZIP=y
# CONFIG_RD_LZMA is not set
# CONFIG_RD_XZ is not set
# CONFIG_RD_LZO is not set
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=n
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
CONFIG_PANIC_TIMEOUT=5
Expand Down Expand Up @@ -163,6 +163,7 @@ CONFIG_HAVE_OPROFILE=y
# CONFIG_JUMP_LABEL is not set
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_DMA_ATTRS=y
CONFIG_HAVE_DMA_CONTIGUOUS=y
CONFIG_USE_GENERIC_SMP_HELPERS=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
Expand Down Expand Up @@ -569,6 +570,7 @@ CONFIG_MACH_DLXP_U=y
CONFIG_SUPPORT_USB_SPEAKER=y
CONFIG_SENSE_4_PLUS=y
CONFIG_MSM_NONSMD_PACKET_FILTER=y
# CONFIG_MONITOR_STREAMING_PORT_SOCKET is not set
# CONFIG_IO_FOOTPRINT is not set
CONFIG_BT_WBS_BRCM=y
CONFIG_HTC_POWEROFF_MODEM_IN_OFFMODE_CHARGING=y
Expand Down Expand Up @@ -703,7 +705,6 @@ CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_CLEANCACHE=y
# CONFIG_ARCH_MEMORY_PROBE is not set
# CONFIG_ARCH_MEMORY_REMOVE is not set
# CONFIG_ARCH_POPULATES_NODE_MAP is not set
# CONFIG_ENABLE_DMM is not set
# CONFIG_FIX_MOVABLE_ZONE is not set
CONFIG_DONT_MAP_HOLE_AFTER_MEMBANK0=y
Expand Down Expand Up @@ -1568,6 +1569,7 @@ CONFIG_USB_NET_ZAURUS=y
# CONFIG_USB_SIERRA_NET is not set
# CONFIG_USB_VL600 is not set
CONFIG_MSM_RMNET_USB=y
# CONFIG_RIL_PCN001_HTC_QUEUE_URB_TO_DEFERRED_ANCHOR is not set
CONFIG_WLAN=y
# CONFIG_USB_ZD1201 is not set
# CONFIG_USB_NET_RNDIS_WLAN is not set
Expand Down Expand Up @@ -1724,6 +1726,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
# CONFIG_TOUCHSCREEN_MK712 is not set
# CONFIG_TOUCHSCREEN_PENMOUNT is not set
# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI is not set
CONFIG_TOUCHSCREEN_SYNAPTICS_SWEEP2WAKE=y
# CONFIG_TOUCHSCREEN_SYNAPTICS_RMI4_I2C is not set
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
Expand Down Expand Up @@ -1800,6 +1803,7 @@ CONFIG_UNIX98_PTYS=y
# CONFIG_TRACE_SINK is not set
# CONFIG_DEVMEM is not set
# CONFIG_DEVKMEM is not set
CONFIG_FRANDOM=y

#
# Serial drivers
Expand Down Expand Up @@ -2529,7 +2533,7 @@ CONFIG_MSM_KGSL_PAGE_TABLE_SIZE=0xFFF0000
CONFIG_MSM_KGSL_PAGE_TABLE_COUNT=24
CONFIG_MSM_KGSL_MMU_PAGE_FAULT=y
# CONFIG_MSM_KGSL_DISABLE_SHADOW_WRITES is not set
CONFIG_MSM_KGSL_KILL_HANG_PROCESS=y
# CONFIG_MSM_KGSL_KILL_HANG_PROCESS is not set
# CONFIG_MSM_KGSL_GPU_USAGE is not set
CONFIG_MSM_KGSL_SIMPLE_GOV=y
# CONFIG_VGASTATE is not set
Expand Down Expand Up @@ -2727,7 +2731,7 @@ CONFIG_FB_MSM_DEFAULT_DEPTH_RGBA8888=y
# CONFIG_MSM_ALT_DSI_ESCAPE_CLOCK is not set
# CONFIG_FB_MSM_ESD_WORKAROUND is not set
CONFIG_FB_MSM_CABC_LEVEL_CONTROL=y
CONFIG_FB_MSM_UNDERFLOW_WORKAROUND=y
# CONFIG_FB_MSM_UNDERFLOW_WORKAROUND is not set
# CONFIG_EXYNOS_VIDEO is not set
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=m
Expand Down Expand Up @@ -3347,6 +3351,7 @@ CONFIG_ANDROID_LOW_MEMORY_KILLER_AUTODETECT_OOM_ADJ_VALUES=y
# CONFIG_ANDROID_INTF_ALARM_DEV is not set
# CONFIG_PHONE is not set
# CONFIG_USB_WPAN_HCD is not set
# CONFIG_CPUPOWER is not set

#
# Qualcomm MSM specific device drivers
Expand Down Expand Up @@ -3440,6 +3445,8 @@ CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
CONFIG_EXFAT_DEFAULT_CODEPAGE=437
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"

#
# Pseudo filesystems
Expand All @@ -3453,6 +3460,7 @@ CONFIG_TMPFS=y
# CONFIG_TMPFS_XATTR is not set
# CONFIG_HUGETLB_PAGE is not set
# CONFIG_CONFIGFS_FS is not set
# CONFIG_RESTRICT_ROOTFS_SLAVE is not set
CONFIG_MISC_FILESYSTEMS=y
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
Expand Down Expand Up @@ -3525,7 +3533,7 @@ CONFIG_NLS_ISO8859_1=y
CONFIG_NLS_UTF8=y
CONFIG_EXFAT_FS=m
CONFIG_EXFAT_PATH="texfat_dlxpul"
CONFIG_EXFAT_VERSION="target/htc.d/htc-3013.6.27"
CONFIG_EXFAT_VERSION="target/htc.d/htc-3014.1.24"

#
# Kernel hacking
Expand Down
4 changes: 4 additions & 0 deletions arch/arm/include/asm/device.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,16 @@
#define ASMARM_DEVICE_H

struct dev_archdata {
struct dma_map_ops *dma_ops;
#ifdef CONFIG_DMABOUNCE
struct dmabounce_device_info *dmabounce;
#endif
#ifdef CONFIG_IOMMU_API
void *iommu; /* private IOMMU data */
#endif
#ifdef CONFIG_ARM_DMA_USE_IOMMU
struct dma_iommu_mapping *mapping;
#endif
};

struct omap_device;
Expand Down
34 changes: 34 additions & 0 deletions arch/arm/include/asm/dma-iommu.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#ifndef ASMARM_DMA_IOMMU_H
#define ASMARM_DMA_IOMMU_H

#ifdef __KERNEL__

#include <linux/mm_types.h>
#include <linux/scatterlist.h>
#include <linux/dma-debug.h>
#include <linux/kmemcheck.h>

struct dma_iommu_mapping {

struct iommu_domain *domain;

void *bitmap;
size_t bits;
unsigned int order;
dma_addr_t base;

spinlock_t lock;
struct kref kref;
};

struct dma_iommu_mapping *
arm_iommu_create_mapping(struct bus_type *bus, dma_addr_t base, size_t size,
int order);

void arm_iommu_release_mapping(struct dma_iommu_mapping *mapping);

int arm_iommu_attach_device(struct device *dev,
struct dma_iommu_mapping *mapping);

#endif
#endif
Loading

0 comments on commit 055355e

Please sign in to comment.