Bisecting: 5556 revisions left to test after this (roughly 13 steps) #GOOD# [1289ace5b4f70f1e68ce785735b82c7e483de863] Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Bisecting: 2483 revisions left to test after this (roughly 12 steps) #BAD# [984065055e6e39f8dd812529e11922374bd39352] Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux Bisecting: 1192 revisions left to test after this (roughly 11 steps) #BAD# [a016af2e70bfca23f2f5de7d8708157b86ea374d] Merge tag 'sound-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Bisecting: 966 revisions left to test after this (roughly 10 steps) #GOOD# [d45187aaf0e256d23da2f7694a7826524499aa31] Merge branch 'dmi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging Bisecting: 522 revisions left to test after this (roughly 9 steps) #GOOD# [d0021d3bdfe9d551859bca1f58da0e6be8e26043] Merge remote-tracking branch 'asoc/topic/wm8960' into asoc-next Bisecting: 273 revisions left to test after this (roughly 8 steps) #BAD# [0bdf5a05647a66dcc6394986e061daeac9b1cf96] drm/i915: Add reverse mapping between port and intel_encoder Bisecting: 124 revisions left to test after this (roughly 7 steps) #GOOD# [6a6582bfff39f099d0867e8b97b409efd1d84b9a] drm/i915/gen9: extract parse_csr_fw Bisecting: 62 revisions left to test after this (roughly 6 steps) #GOOD# [ab75bb5d852cf9a877a973c2174e7791d92554c5] drm/i915: Turn vgpu pdps into an array Bisecting: 31 revisions left to test after this (roughly 5 steps) #GOOD# [1494276000db789c6d2acd85747be4707051c801] drm/atomic-helper: Implement subsystem-level suspend/resume Bisecting: 15 revisions left to test after this (roughly 4 steps) #BAD# [ce7f172856396d92e82cb0eae420f4ce41c92851] drm/i915: Fix i915_ggtt_view_equal to handle rotation correctly Bisecting: 7 revisions left to test after this (roughly 3 steps) #BAD# [81e4e0c95d37d020e18268bdd58f208bb5259713] drm/i915: Send TP1 TP2/3 even when panel claims no NO_TRAIN_ON_EXIT. Bisecting: 3 revisions left to test after this (roughly 2 steps) #BAD# [f0f59a00a1c9be11038bef5aa735ed7dd985f9cf] drm/i915: Type safe register read/write Bisecting: 1 revision left to test after this (roughly 1 step) #GOOD# [0670c5a688122c66ecfb0bd8cbd8067cc971a4e8] drm/i915: Add 'offset' to uncore funcs Bisecting: 0 revisions left to test after this (roughly 0 steps) #GOOD# [9bca5d0ca76c0ce029e2b43cf081863e7e8f6768] drm/i915: Add missing ')' to SKL_PS_ECC_STAT define f0f59a00a1c9be11038bef5aa735ed7dd985f9cf is the first bad commit commit f0f59a00a1c9be11038bef5aa735ed7dd985f9cf Author: Ville Syrjälä Date: Wed Nov 18 15:33:26 2015 +0200 drm/i915: Type safe register read/write Make I915_READ and I915_WRITE more type safe by wrapping the register offset in a struct. This should eliminate most of the fumbles we've had with misplaced parens. This only takes care of normal mmio registers. We could extend the idea to other register types and define each with its own struct. That way you wouldn't be able to accidentally pass the wrong thing to a specific register access function. The gpio_reg setup is probably the ugliest thing left. But I figure I'd just leave it for now, and wait for some divine inspiration to strike before making it nice. As for the generated code, it's actually a bit better sometimes. Eg. looking at i915_irq_handler(), we can see the following change: lea 0x70024(%rdx,%rax,1),%r9d mov $0x1,%edx - movslq %r9d,%r9 - mov %r9,%rsi - mov %r9,-0x58(%rbp) - callq *0xd8(%rbx) + mov %r9d,%esi + mov %r9d,-0x48(%rbp) callq *0xd8(%rbx) So previously gcc thought the register offset might be signed and decided to sign extend it, just in case. The rest appears to be mostly just minor shuffling of instructions. v2: i915_mmio_reg_{offset,equal,valid}() helpers added s/_REG/_MMIO/ in the register defines mo more switch statements left to worry about ring_emit stuff got sorted in a prep patch cmd parser, lrc context and w/a batch buildup also in prep patch vgpu stuff cleaned up and moved to a prep patch all other unrelated changes split out v3: Rebased due to BXT DSI/BLC, MOCS, etc. v4: Rebased due to churn, s/i915_mmio_reg_t/i915_reg_t/ Signed-off-by: Ville Syrjälä Reviewed-by: Chris Wilson Link: http://patchwork.freedesktop.org/patch/msgid/1447853606-2751-1-git-send-email-ville.syrjala@linux.intel.com :040000 040000 c0e5d868baa9f128af701fa0642d9c1551ee415c 1fbd83167b2645ee34dfd626b8c38f15114d45d6 M drivers