S: Maintained
F: drivers/net/wireless/wl3501*
- - -WM97XX TOUCHSCREEN DRIVERS
- - -M: Mark Brown <broonie@kernel.org>
- - -M: Liam Girdwood <lrg@slimlogic.co.uk>
- - -L: linux-input@vger.kernel.org
- - W: https://github.com/CirrusLogic/linux-drivers/wiki
-T: git git://opensource.wolfsonmicro.com/linux-2.6-touch
-W: http://opensource.wolfsonmicro.com/node/7
- - -S: Supported
- - -F: drivers/input/touchscreen/*wm97*
- - -F: include/linux/wm97xx.h
- - -
WOLFSON MICROELECTRONICS DRIVERS
L: patches@opensource.wolfsonmicro.com
-T: git git://opensource.wolfsonmicro.com/linux-2.6-asoc
-T: git git://opensource.wolfsonmicro.com/linux-2.6-audioplus
-W: http://opensource.wolfsonmicro.com/content/linux-drivers-wolfson-devices
+T: git https://github.com/CirrusLogic/linux-drivers.git
+W: https://github.com/CirrusLogic/linux-drivers/wiki
S: Supported
F: Documentation/hwmon/wm83??
F: arch/arm/mach-s3c64xx/mach-crag6410*
static void do_detach(struct iommu_dev_data *dev_data)
{
struct amd_iommu *iommu;
++++++ u16 alias;
+++++
++++++ /*
++++++ * First check if the device is still attached. It might already
++++++ * be detached from its domain because the generic
++++++ * iommu_detach_group code detached it and we try again here in
++++++ * our alias handling.
++++++ */
++++++ if (!dev_data->domain)
++++++ return;
+
iommu = amd_iommu_rlookup_table[dev_data->devid];
++++++ alias = amd_iommu_alias_table[dev_data->devid];
/* decrease reference counters */
dev_data->domain->dev_iommu[iommu->index] -= 1;
}
/* allocates the memory where the IOMMU will log its events to */
------ static u8 * __init alloc_ppr_log(struct amd_iommu *iommu)
++++++ static int __init alloc_ppr_log(struct amd_iommu *iommu)
{
------ iommu->ppr_log = (u8 *)__get_free_pages(GFP_KERNEL | __GFP_ZERO,
------ get_order(PPR_LOG_SIZE));
-----
----- if (iommu->ppr_log == NULL)
----- return NULL;
++++++ iommu->ppr_log = (void *)__get_free_pages(GFP_KERNEL | __GFP_ZERO,
++++++ get_order(PPR_LOG_SIZE));
- if (iommu->ppr_log == NULL)
- return NULL;
-
------ return iommu->ppr_log;
++++++ return iommu->ppr_log ? 0 : -ENOMEM;
}
static void iommu_enable_ppr_log(struct amd_iommu *iommu)
#define IOMMU_PTE_IR (1ULL << 61)
#define IOMMU_PTE_IW (1ULL << 62)
----- #define DTE_FLAG_IOTLB (0x01UL << 32)
----- #define DTE_FLAG_GV (0x01ULL << 55)
++++++ #define DTE_FLAG_IOTLB (1ULL << 32)
++++++ #define DTE_FLAG_GV (1ULL << 55)
++++++#define DTE_FLAG_MASK (0x3ffULL << 32)
- #define DTE_FLAG_IOTLB (0x01UL << 32)
- #define DTE_FLAG_GV (0x01ULL << 55)
#define DTE_GLX_SHIFT (56)
#define DTE_GLX_MASK (3)
static int arm_smmu_add_device(struct device *dev)
{
----- - if (dev_is_pci(dev))
----- - return arm_smmu_add_pci_device(to_pci_dev(dev));
+++++ + struct iommu_group *group;
+++ + +
- return arm_smmu_add_platform_device(dev);
+++++ + group = iommu_group_get_for_dev(dev);
+++++ + if (IS_ERR(group))
+++++ + return PTR_ERR(group);
+
--- - - return arm_smmu_add_platform_device(dev);
+++++ + return 0;
}
static void arm_smmu_remove_device(struct device *dev)