Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
becc7ae
MAINTAINERS: Add file patterns for mtd device tree bindings
geertu May 22, 2016
d945b5e
workqueue: Fix setting affinity of unbound worker threads
Jun 16, 2016
d4f56c7
i2c: qup: Fix wrong value of index variable
Jun 10, 2016
5abe9b2
i2c: remove __init from i2c_register_board_info()
mcgrof Jun 7, 2016
9a9b6aa
Input: add SW_PEN_INSERTED define
dianders Jun 28, 2016
caca925
Input: xpad - validate USB endpoint count during probe
cgutman Jun 29, 2016
a9cd9c0
drm/vmwgfx: Add a check to handle host message failure
Jun 29, 2016
7c20d21
drm/vmwgfx: Work around mode set failure in 2D VMs
Jun 29, 2016
04319d8
drm/vmwgfx: Add an option to change assumed FB bpp
Jun 29, 2016
94477bf
drm/ttm: Make ttm_bo_mem_compat available
Jun 29, 2016
4ed7e22
drm/vmwgfx: Check pin count before attempting to move a buffer
Jun 29, 2016
d5f1a29
drm/vmwgfx: Delay pinning fbdev framebuffer until after mode set
Jun 29, 2016
beca4cf
drm/vmwgfx: Fix corner case screen target management
thomashvmw Jun 29, 2016
eab0998
i2c: tegra: Correct error path in probe
jonhunter Jun 14, 2016
22ebf00
i2c: mux: reg: wrong condition checked for of_address_to_resource ret…
Jun 27, 2016
58541f7
drm/vmwgfx: Fix error paths when mapping framebuffer
Jul 7, 2016
896ce45
IB/hfi1: Correct issues with sc5 computation
Jul 1, 2016
98f179a
IB/hfi1: Fix sleep inside atomic issue in init_asic_data
tstruk Jul 6, 2016
c5a81d1
IB core: Add port_xmit_wait counter
Jul 8, 2016
b0548cf
i40iw: do not print unitialized variables in error message
fishilico Jun 25, 2016
8e0e7ae
i40iw: Enable remote access rights for stag allocation
shirazsaleem Jun 27, 2016
d60585c
sched/core: Correct off by one bug in load migration calculation
KAGA-KOKO Jul 12, 2016
b192400
drm/i915: Update ifdeffery for mutex->owner
ickle Jul 11, 2016
aeddda0
drm/i915: Ignore panel type from OpRegion on SKL
vsyrjala Jul 12, 2016
7ce9ea7
mtd: nand: omap2: Add check for old elm binding
tremmet Jul 5, 2016
3e9161b
Revert "Input: wacom_w8001 - drop use of ABS_MT_TOOL_TYPE"
dtor Jul 14, 2016
9624516
Input: synaptics-rmi4 - use of_get_child_by_name() to fix refcount
aduggan-syna Jul 14, 2016
795c210
drm/amdgpu: Add a missing register to Polaris golden setting
Jul 7, 2016
eeade25
drm/amdgpu: fix power distribution issue for Polaris10 XT
Jul 11, 2016
da03189
Merge branch 'drm-fixes-4.7' of git://people.freedesktop.org/~agd5f/l…
airlied Jul 14, 2016
71404e8
Merge tag 'drm-intel-fixes-2016-07-14' of git://anongit.freedesktop.o…
airlied Jul 14, 2016
d2e1204
Merge branch 'drm-vmwgfx-fixes' of git://people.freedesktop.org/~syeh…
airlied Jul 15, 2016
a46cbf3
mm, compaction: prevent VM_BUG_ON when terminating freeing scanner
rientjes Jul 14, 2016
2ba7805
kasan: add newline to messages
dvyukov Jul 14, 2016
abb035b
scripts/gdb: silence 'nothing to do' message
Jul 14, 2016
834a352
scripts/gdb: rebuild constants.py on dependancy change
Jul 14, 2016
e2aa2f8
scripts/gdb: add constants.py to .gitignore
osandov Jul 14, 2016
552ab2a
scripts/gdb: Perform path expansion to lx-symbol's arguments
Jul 14, 2016
b447e02
Revert "scripts/gdb: add a Radix Tree Parser"
Jul 14, 2016
ef722fd
Revert "scripts/gdb: add documentation example for radix tree"
Jul 14, 2016
9818b8c
madvise_free, thp: fix madvise_free_huge_pmd return value after split…
yhuang-intel Jul 14, 2016
12cb22b
uapi: export lirc.h header
mchehab Jul 14, 2016
0ab686d
kasan/quarantine: fix bugs on qlist_move_cache()
JoonsooKim Jul 14, 2016
e4568d3
mm, meminit: always return a valid node from early_pfn_to_nid
gormanm Jul 14, 2016
ef70b6f
mm, meminit: ensure node is online before checking whether pages are …
gormanm Jul 14, 2016
d02038f
gcov: add support for gcc version >= 6
Jul 14, 2016
e41f501
vmlinux.lds: account for destructor sections
dvyukov Jul 14, 2016
33f4751
mm: thp: move pmd check inside ptl for freeze_page()
Jul 14, 2016
55bda43
mm: rmap: call page_check_address() with sync enabled to avoid racy c…
Jul 14, 2016
5a49973
mm: thp: refix false positive BUG in page_move_anon_rmap()
Jul 14, 2016
d3d36c4
mm: workingset: printk missing log level, use pr_info()
antonblanchard Jul 14, 2016
9babed6
m32r: fix build warning about putc
sudipm-mukherjee Jul 14, 2016
d83a4c1
Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm…
torvalds Jul 15, 2016
24ee9a8
Merge tag 'drm-fixes-for-v4.7-rc8' of git://people.freedesktop.org/~a…
torvalds Jul 15, 2016
1f027f6
Merge tag 'drm-fixes-for-v4.7-rc8-vmware' of git://people.freedesktop…
torvalds Jul 15, 2016
1a86f94
Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/…
torvalds Jul 15, 2016
0a9cb48
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/gi…
torvalds Jul 15, 2016
fa3a9f5
Merge branch 'akpm' (patches from Andrew)
torvalds Jul 15, 2016
6a5029e
Input: ts4800-ts - add missing of_node_put after calling of_parse_pha…
Jul 15, 2016
0ba169a
EDAC, sb_edac: Fix Knights Landing
aegl Jul 14, 2016
aa93d1f
media: fix airspy usb probe error path
Jul 15, 2016
3e0a396
xfs: fix type confusion in xfs_ioc_swapext
thejh Sep 11, 2015
8dcf5a8
Merge branch 'for-4.7-fixes' of git://git.kernel.org/pub/scm/linux/ke…
torvalds Jul 15, 2016
6315170
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…
torvalds Jul 15, 2016
47ef4ad
Merge tag 'for-linus-20160715' of git://git.infradead.org/linux-mtd
torvalds Jul 16, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 0 additions & 21 deletions Documentation/gdb-kernel-debugging.txt
Original file line number Diff line number Diff line change
Expand Up @@ -139,27 +139,6 @@ Examples of using the Linux-provided gdb helpers
start_comm = "swapper/2\000\000\000\000\000\000"
}

o Dig into a radix tree data structure, such as the IRQ descriptors:
(gdb) print (struct irq_desc)$lx_radix_tree_lookup(irq_desc_tree, 18)
$6 = {
irq_common_data = {
state_use_accessors = 67584,
handler_data = 0x0 <__vectors_start>,
msi_desc = 0x0 <__vectors_start>,
affinity = {{
bits = {65535}
}}
},
irq_data = {
mask = 0,
irq = 18,
hwirq = 27,
common = 0xee803d80,
chip = 0xc0eb0854 <gic_data>,
domain = 0xee808000,
parent_data = 0x0 <__vectors_start>,
chip_data = 0xc0eb0854 <gic_data>
} <... trimmed ...>

List of commands and functions
------------------------------
Expand Down
1 change: 1 addition & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -7476,6 +7476,7 @@ Q: http://patchwork.ozlabs.org/project/linux-mtd/list/
T: git git://git.infradead.org/linux-mtd.git
T: git git://git.infradead.org/l2-mtd.git
S: Maintained
F: Documentation/devicetree/bindings/mtd/
F: drivers/mtd/
F: include/linux/mtd/
F: include/uapi/mtd/
Expand Down
9 changes: 5 additions & 4 deletions arch/m32r/boot/compressed/m32r_sio.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,13 @@

#include <asm/processor.h>

static void putc(char c);
static void m32r_putc(char c);

static int puts(const char *s)
{
char c;
while ((c = *s++)) putc(c);
while ((c = *s++))
m32r_putc(c);
return 0;
}

Expand Down Expand Up @@ -41,7 +42,7 @@ static int puts(const char *s)
#define BOOT_SIO0TXB PLD_ESIO0TXB
#endif

static void putc(char c)
static void m32r_putc(char c)
{
while ((*BOOT_SIO0STS & 0x3) != 0x3)
cpu_relax();
Expand All @@ -61,7 +62,7 @@ static void putc(char c)
#define SIO0TXB (volatile unsigned short *)(0x00efd000 + 30)
#endif

static void putc(char c)
static void m32r_putc(char c)
{
while ((*SIO0STS & 0x1) == 0)
cpu_relax();
Expand Down
4 changes: 2 additions & 2 deletions arch/x86/mm/kasan_init_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,8 @@ static int kasan_die_handler(struct notifier_block *self,
void *data)
{
if (val == DIE_GPF) {
pr_emerg("CONFIG_KASAN_INLINE enabled");
pr_emerg("GPF could be caused by NULL-ptr deref or user memory access");
pr_emerg("CONFIG_KASAN_INLINE enabled\n");
pr_emerg("GPF could be caused by NULL-ptr deref or user memory access\n");
}
return NOTIFY_OK;
}
Expand Down
20 changes: 6 additions & 14 deletions drivers/edac/sb_edac.c
Original file line number Diff line number Diff line change
Expand Up @@ -2378,22 +2378,19 @@ static int sbridge_get_onedevice(struct pci_dev **prev,
* @num_mc: pointer to the memory controllers count, to be incremented in case
* of success.
* @table: model specific table
* @allow_dups: allow for multiple devices to exist with the same device id
* (as implemented, this isn't expected to work correctly in the
* multi-socket case).
* @multi_bus: don't assume devices on different buses belong to different
* memory controllers.
*
* returns 0 in case of success or error code
*/
static int sbridge_get_all_devices_full(u8 *num_mc,
const struct pci_id_table *table,
int allow_dups,
int multi_bus)
static int sbridge_get_all_devices(u8 *num_mc,
const struct pci_id_table *table)
{
int i, rc;
struct pci_dev *pdev = NULL;
int allow_dups = 0;
int multi_bus = 0;

if (table->type == KNIGHTS_LANDING)
allow_dups = multi_bus = 1;
while (table && table->descr) {
for (i = 0; i < table->n_devs; i++) {
if (!allow_dups || i == 0 ||
Expand All @@ -2420,11 +2417,6 @@ static int sbridge_get_all_devices_full(u8 *num_mc,
return 0;
}

#define sbridge_get_all_devices(num_mc, table) \
sbridge_get_all_devices_full(num_mc, table, 0, 0)
#define sbridge_get_all_devices_knl(num_mc, table) \
sbridge_get_all_devices_full(num_mc, table, 1, 1)

static int sbridge_mci_bind_devs(struct mem_ctl_info *mci,
struct sbridge_dev *sbridge_dev)
{
Expand Down
15 changes: 15 additions & 0 deletions drivers/gpu/drm/amd/amdgpu/atombios_i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -156,3 +156,18 @@ u32 amdgpu_atombios_i2c_func(struct i2c_adapter *adap)
return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL;
}

void amdgpu_atombios_i2c_channel_trans(struct amdgpu_device* adev, u8 slave_addr, u8 line_number, u8 offset, u8 data)
{
PROCESS_I2C_CHANNEL_TRANSACTION_PS_ALLOCATION args;
int index = GetIndexIntoMasterTable(COMMAND, ProcessI2cChannelTransaction);

args.ucRegIndex = offset;
args.lpI2CDataOut = data;
args.ucFlag = 1;
args.ucI2CSpeed = TARGET_HW_I2C_CLOCK;
args.ucTransBytes = 1;
args.ucSlaveAddr = slave_addr;
args.ucLineNumber = line_number;

amdgpu_atom_execute_table(adev->mode_info.atom_context, index, (uint32_t *)&args);
}
2 changes: 2 additions & 0 deletions drivers/gpu/drm/amd/amdgpu/atombios_i2c.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,7 @@
int amdgpu_atombios_i2c_xfer(struct i2c_adapter *i2c_adap,
struct i2c_msg *msgs, int num);
u32 amdgpu_atombios_i2c_func(struct i2c_adapter *adap);
void amdgpu_atombios_i2c_channel_trans(struct amdgpu_device* adev,
u8 slave_addr, u8 line_number, u8 offset, u8 data);

#endif
7 changes: 7 additions & 0 deletions drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
#include "vid.h"
#include "amdgpu_ucode.h"
#include "amdgpu_atombios.h"
#include "atombios_i2c.h"
#include "clearstate_vi.h"

#include "gmc/gmc_8_2_d.h"
Expand Down Expand Up @@ -284,6 +285,7 @@ static const u32 golden_settings_polaris11_a11[] =
mmTCP_ADDR_CONFIG, 0x000003ff, 0x000000f3,
mmTCP_CHAN_STEER_HI, 0xffffffff, 0x00000000,
mmTCP_CHAN_STEER_LO, 0xffffffff, 0x00003210,
mmVGT_RESET_DEBUG, 0x00000004, 0x00000004,
};

static const u32 polaris11_golden_common_all[] =
Expand Down Expand Up @@ -314,6 +316,7 @@ static const u32 golden_settings_polaris10_a11[] =
mmTCC_CTRL, 0x00100000, 0xf31fff7f,
mmTCP_ADDR_CONFIG, 0x000003ff, 0x000000f7,
mmTCP_CHAN_STEER_HI, 0xffffffff, 0x00000000,
mmVGT_RESET_DEBUG, 0x00000004, 0x00000004,
};

static const u32 polaris10_golden_common_all[] =
Expand Down Expand Up @@ -696,6 +699,10 @@ static void gfx_v8_0_init_golden_registers(struct amdgpu_device *adev)
polaris10_golden_common_all,
(const u32)ARRAY_SIZE(polaris10_golden_common_all));
WREG32_SMC(ixCG_ACLK_CNTL, 0x0000001C);
if (adev->pdev->revision == 0xc7) {
amdgpu_atombios_i2c_channel_trans(adev, 0x10, 0x96, 0x1E, 0xDD);
amdgpu_atombios_i2c_channel_trans(adev, 0x10, 0x96, 0x1F, 0xD0);
}
break;
case CHIP_CARRIZO:
amdgpu_program_register_sequence(adev,
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/i915/i915_gem_shrinker.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ static bool mutex_is_locked_by(struct mutex *mutex, struct task_struct *task)
if (!mutex_is_locked(mutex))
return false;

#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_MUTEXES)
#if defined(CONFIG_DEBUG_MUTEXES) || defined(CONFIG_MUTEX_SPIN_ON_OWNER)
return mutex->owner == task;
#else
/* Since UP may be pre-empted, we cannot assume that we own the lock */
Expand Down
11 changes: 11 additions & 0 deletions drivers/gpu/drm/i915/intel_opregion.c
Original file line number Diff line number Diff line change
Expand Up @@ -1038,5 +1038,16 @@ intel_opregion_get_panel_type(struct drm_device *dev)
return -ENODEV;
}

/*
* FIXME On Dell XPS 13 9350 the OpRegion panel type (0) gives us
* low vswing for eDP, whereas the VBT panel type (2) gives us normal
* vswing instead. Low vswing results in some display flickers, so
* let's simply ignore the OpRegion panel type on SKL for now.
*/
if (IS_SKYLAKE(dev)) {
DRM_DEBUG_KMS("Ignoring OpRegion panel type (%d)\n", ret - 1);
return -ENODEV;
}

return ret - 1;
}
7 changes: 4 additions & 3 deletions drivers/gpu/drm/ttm/ttm_bo.c
Original file line number Diff line number Diff line change
Expand Up @@ -1034,9 +1034,9 @@ static int ttm_bo_move_buffer(struct ttm_buffer_object *bo,
return ret;
}

static bool ttm_bo_mem_compat(struct ttm_placement *placement,
struct ttm_mem_reg *mem,
uint32_t *new_flags)
bool ttm_bo_mem_compat(struct ttm_placement *placement,
struct ttm_mem_reg *mem,
uint32_t *new_flags)
{
int i;

Expand Down Expand Up @@ -1068,6 +1068,7 @@ static bool ttm_bo_mem_compat(struct ttm_placement *placement,

return false;
}
EXPORT_SYMBOL(ttm_bo_mem_compat);

int ttm_bo_validate(struct ttm_buffer_object *bo,
struct ttm_placement *placement,
Expand Down
25 changes: 22 additions & 3 deletions drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ int vmw_dmabuf_pin_in_placement(struct vmw_private *dev_priv,
{
struct ttm_buffer_object *bo = &buf->base;
int ret;
uint32_t new_flags;

ret = ttm_write_lock(&dev_priv->reservation_sem, interruptible);
if (unlikely(ret != 0))
Expand All @@ -60,7 +61,12 @@ int vmw_dmabuf_pin_in_placement(struct vmw_private *dev_priv,
if (unlikely(ret != 0))
goto err;

ret = ttm_bo_validate(bo, placement, interruptible, false);
if (buf->pin_count > 0)
ret = ttm_bo_mem_compat(placement, &bo->mem,
&new_flags) == true ? 0 : -EINVAL;
else
ret = ttm_bo_validate(bo, placement, interruptible, false);

if (!ret)
vmw_bo_pin_reserved(buf, true);

Expand Down Expand Up @@ -91,6 +97,7 @@ int vmw_dmabuf_pin_in_vram_or_gmr(struct vmw_private *dev_priv,
{
struct ttm_buffer_object *bo = &buf->base;
int ret;
uint32_t new_flags;

ret = ttm_write_lock(&dev_priv->reservation_sem, interruptible);
if (unlikely(ret != 0))
Expand All @@ -102,6 +109,12 @@ int vmw_dmabuf_pin_in_vram_or_gmr(struct vmw_private *dev_priv,
if (unlikely(ret != 0))
goto err;

if (buf->pin_count > 0) {
ret = ttm_bo_mem_compat(&vmw_vram_gmr_placement, &bo->mem,
&new_flags) == true ? 0 : -EINVAL;
goto out_unreserve;
}

ret = ttm_bo_validate(bo, &vmw_vram_gmr_placement, interruptible,
false);
if (likely(ret == 0) || ret == -ERESTARTSYS)
Expand Down Expand Up @@ -161,6 +174,7 @@ int vmw_dmabuf_pin_in_start_of_vram(struct vmw_private *dev_priv,
struct ttm_placement placement;
struct ttm_place place;
int ret = 0;
uint32_t new_flags;

place = vmw_vram_placement.placement[0];
place.lpfn = bo->num_pages;
Expand All @@ -185,10 +199,15 @@ int vmw_dmabuf_pin_in_start_of_vram(struct vmw_private *dev_priv,
*/
if (bo->mem.mem_type == TTM_PL_VRAM &&
bo->mem.start < bo->num_pages &&
bo->mem.start > 0)
bo->mem.start > 0 &&
buf->pin_count == 0)
(void) ttm_bo_validate(bo, &vmw_sys_placement, false, false);

ret = ttm_bo_validate(bo, &placement, interruptible, false);
if (buf->pin_count > 0)
ret = ttm_bo_mem_compat(&placement, &bo->mem,
&new_flags) == true ? 0 : -EINVAL;
else
ret = ttm_bo_validate(bo, &placement, interruptible, false);

/* For some reason we didn't end up at the start of vram */
WARN_ON(ret == 0 && bo->offset != 0);
Expand Down
12 changes: 12 additions & 0 deletions drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,7 @@ static int vmw_force_iommu;
static int vmw_restrict_iommu;
static int vmw_force_coherent;
static int vmw_restrict_dma_mask;
static int vmw_assume_16bpp;

static int vmw_probe(struct pci_dev *, const struct pci_device_id *);
static void vmw_master_init(struct vmw_master *);
Expand All @@ -249,6 +250,8 @@ MODULE_PARM_DESC(force_coherent, "Force coherent TTM pages");
module_param_named(force_coherent, vmw_force_coherent, int, 0600);
MODULE_PARM_DESC(restrict_dma_mask, "Restrict DMA mask to 44 bits with IOMMU");
module_param_named(restrict_dma_mask, vmw_restrict_dma_mask, int, 0600);
MODULE_PARM_DESC(assume_16bpp, "Assume 16-bpp when filtering modes");
module_param_named(assume_16bpp, vmw_assume_16bpp, int, 0600);


static void vmw_print_capabilities(uint32_t capabilities)
Expand Down Expand Up @@ -660,6 +663,8 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset)
dev_priv->vram_start = pci_resource_start(dev->pdev, 1);
dev_priv->mmio_start = pci_resource_start(dev->pdev, 2);

dev_priv->assume_16bpp = !!vmw_assume_16bpp;

dev_priv->enable_fb = enable_fbdev;

vmw_write(dev_priv, SVGA_REG_ID, SVGA_ID_2);
Expand Down Expand Up @@ -706,6 +711,13 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset)
vmw_read(dev_priv,
SVGA_REG_SUGGESTED_GBOBJECT_MEM_SIZE_KB);

/*
* Workaround for low memory 2D VMs to compensate for the
* allocation taken by fbdev
*/
if (!(dev_priv->capabilities & SVGA_CAP_3D))
mem_size *= 2;

dev_priv->max_mob_pages = mem_size * 1024 / PAGE_SIZE;
dev_priv->prim_bb_mem =
vmw_read(dev_priv,
Expand Down
1 change: 1 addition & 0 deletions drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
Original file line number Diff line number Diff line change
Expand Up @@ -386,6 +386,7 @@ struct vmw_private {
spinlock_t hw_lock;
spinlock_t cap_lock;
bool has_dx;
bool assume_16bpp;

/*
* VGA registers.
Expand Down
Loading