Commit 95c7d351e1ccc2c381f0a60eaca9dd962d2aff6d

Authored by Dave Airlie

Merge tag 'drm/tegra/for-3.15-rc2' of git://anongit.freedesktop.org/tegra/linux into drm-next

drm/tegra: Fixes for v3.15-rc2

This contains a fix for the host1x driver writing to non-existent syncpt
registers.

A second commit removes an excess pad field in the parameter structure
for the DRM_TEGRA_SUBMIT IOCTL. Archeaology on earlier versions of this
file indicates that this was once there to pad an uneven number of u32
u32 fields, of which one was subsequently removed. Unfortunately nobody
remembered to get rid of the padding when that happened.

Both of these commits are Cc: stable because they fix issues that were
introduced back in v3.10.

* tag 'drm/tegra/for-3.15-rc2' of git://anongit.freedesktop.org/tegra/linux:
  drm/tegra: Remove gratuitous pad field
  gpu: host1x: handle the correct # of syncpt regs

Showing 2 changed files Side-by-side Diff

drivers/gpu/host1x/hw/intr_hw.c
... ... @@ -47,7 +47,7 @@
47 47 unsigned long reg;
48 48 int i, id;
49 49  
50   - for (i = 0; i <= BIT_WORD(host->info->nb_pts); i++) {
  50 + for (i = 0; i < DIV_ROUND_UP(host->info->nb_pts, 32); i++) {
51 51 reg = host1x_sync_readl(host,
52 52 HOST1X_SYNC_SYNCPT_THRESH_CPU0_INT_STATUS(i));
53 53 for_each_set_bit(id, &reg, BITS_PER_LONG) {
... ... @@ -64,7 +64,7 @@
64 64 {
65 65 u32 i;
66 66  
67   - for (i = 0; i <= BIT_WORD(host->info->nb_pts); ++i) {
  67 + for (i = 0; i < DIV_ROUND_UP(host->info->nb_pts, 32); ++i) {
68 68 host1x_sync_writel(host, 0xffffffffu,
69 69 HOST1X_SYNC_SYNCPT_THRESH_INT_DISABLE(i));
70 70 host1x_sync_writel(host, 0xffffffffu,
include/uapi/drm/tegra_drm.h
... ... @@ -120,7 +120,6 @@
120 120 __u32 num_waitchks;
121 121 __u32 waitchk_mask;
122 122 __u32 timeout;
123   - __u32 pad;
124 123 __u64 syncpts;
125 124 __u64 cmdbufs;
126 125 __u64 relocs;