1. 13 Jun, 2009 7 commits
    • Frank Shew's avatar
      i2c: Blackfin TWI: fix transfer errors with repeat start · 94327d00
      Frank Shew authored
      We have a custom BF537 board with an I2C RTC (MAX DS3231) running
      uclinux 2007R1 for some time. Recently during migration to 2008R1.5-RC3
      we losted access to the RTC. The RTC driver calls 'i2c_transfer()' which
      in turns calls 'bfin_twi_master_xfer()' in i2c-bfin-twi.c.
      
      Compared with 2007R1, it looks like the 2008R1.5 version of i2c-bin-twi.c
      has a new mode 'TWI_I2C-MODE_REPEAT' which corresponds to the Repeat Start
      Condition described in the HRM. However, according to the HRM, at XMIT or
      RECV interrupt and when the data count is 0, not only is the RESTART bit
      supposed to be set, but MDIR must also be set if the next operation is a
      receive sequence, and cleared if not. Currently there is no code that looks
      at the I2C_M_RD bit in the flag from the next cur_msg and set/clear the MDIR
      flag accordingly at the same time that the RSTART bit is set. Instead, MDIR
      is set or cleared (by OR'ing with 0?) after the RESTART bit has been cleared
      during handling of MCOMP interrupt.
      
      It appears that this is causing our failure with reading the RTC, as a
      quick patch to set/clear MDIR when RESTART is set seem to solve our problem.
      Signed-off-by: default avatarFrank Shew <fshew@geometrics.com>
      Signed-off-by: default avatarSonic Zhang <sonic.zhang@analog.com>
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      Signed-off-by: default avatarBryan Wu <cooloney@kernel.org>
      [ben-linux@fluff.org: shorted subject]
      Signed-off-by: default avatarBen Dooks <ben-linux@fluff.org>
      94327d00
    • Sonic Zhang's avatar
      i2c: Blackfin TWI: fix REPEAT START mode doesn't repeat · 57a8f32e
      Sonic Zhang authored
      Avoid rewrite TWI MASTER_CTL reg when issue next message
      In i2c repeat transfer mode, byte count of next message should be filled
      into part of the TWI MASTER_CTL reg when interrupt MCOMP of last
      message transfer is triggered. But, other bits in this reg should
      not be touched.
      Signed-off-by: default avatarSonic Zhang <sonic.zhang@analog.com>
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      Signed-off-by: default avatarBryan Wu <cooloney@kernel.org>
      [ben-linux@fluff.org: shorted subject]
      Signed-off-by: default avatarBen Dooks <ben-linux@fluff.org>
      57a8f32e
    • Michael Hennerich's avatar
      i2c: Blackfin TWI: make sure we don't end up with a CLKDIV=0 · 9528d1c7
      Michael Hennerich authored
      Make sure we don't end up with an invalid CLKDIV=0 in case someone
      specifies 20kHz SCL or less (5 * 1024 / 20 = 0x100).
      Signed-off-by: default avatarMichael Hennerich <michael.hennerich@analog.com>
      Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
      Signed-off-by: default avatarBryan Wu <cooloney@kernel.org>
      [ben-linux@fluff.org: shortened subject line]
      Signed-off-by: default avatarBen Dooks <ben-linux@fluff.org>
      9528d1c7
    • Linus Torvalds's avatar
      Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/configfs · f3ad1165
      Linus Torvalds authored
      * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/configfs:
        configfs: Rework configfs_depend_item() locking and make lockdep happy
        configfs: Silence lockdep on mkdir() and rmdir()
      f3ad1165
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6 · d645727b
      Linus Torvalds authored
      * 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6: (30 commits)
        [S390] wire up sys_perf_counter_open
        [S390] wire up sys_rt_tgsigqueueinfo
        [S390] ftrace: add system call tracer support
        [S390] ftrace: add function graph tracer support
        [S390] ftrace: add function trace mcount test support
        [S390] ftrace: add dynamic ftrace support
        [S390] kprobes: use probe_kernel_write
        [S390] maccess: arch specific probe_kernel_write() implementation
        [S390] maccess: add weak attribute to probe_kernel_write
        [S390] profile_tick called twice
        [S390] dasd: forward internal errors to dasd_sleep_on caller
        [S390] dasd: sync after async probe
        [S390] dasd: check_characteristics cleanup
        [S390] dasd: no High Performance FICON in 31-bit mode
        [S390] dcssblk: revert devt conversion
        [S390] qdio: fix access beyond ARRAY_SIZE of irq_ptr->{in,out}put_qs
        [S390] vmalloc: add vmalloc kernel parameter support
        [S390] uaccess: use might_fault() instead of might_sleep()
        [S390] 3270: lock dependency fixes
        [S390] 3270: do not register with tty_register_device
        ...
      d645727b
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic · cd166bd0
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
        add generic lib/checksum.c
        asm-generic: add a generic uaccess.h
        asm-generic: add generic NOMMU versions of some headers
        asm-generic: add generic atomic.h and io.h
        asm-generic: add legacy I/O header files
        asm-generic: add generic versions of common headers
        asm-generic: make bitops.h usable
        asm-generic: make pci.h usable directly
        asm-generic: make get_rtc_time overridable
        asm-generic: rename page.h and uaccess.h
        asm-generic: rename atomic.h to atomic-long.h
        asm-generic: add a generic unistd.h
        asm-generic: add generic ABI headers
        asm-generic: add generic sysv ipc headers
        asm-generic: introduce asm/bitsperlong.h
        asm-generic: rename termios.h, signal.h and mman.h
      cd166bd0
    • Linus Torvalds's avatar
      Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 · 6b702462
      Linus Torvalds authored
      * 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (50 commits)
        drm: include kernel list header file in hashtab header
        drm: Export hash table functionality.
        drm: Split out the mm declarations in a separate header. Add atomic operations.
        drm/radeon: add support for RV790.
        drm/radeon: add rv740 drm support.
        drm_calloc_large: check right size, check integer overflow, use GFP_ZERO
        drm: Eliminate magic I2C frobbing when reading EDID
        drm/i915: duplicate desired mode for use by fbcon.
        drm/via: vfree() no need checking before calling it
        drm: Replace DRM_DEBUG with DRM_DEBUG_DRIVER in i915 driver
        drm: Replace DRM_DEBUG with DRM_DEBUG_MODE in drm_mode
        drm/i915: Replace DRM_DEBUG with DRM_DEBUG_KMS in intel_sdvo
        drm/i915: replace DRM_DEBUG with DRM_DEBUG_KMS in intel_lvds
        drm: add separate drm debugging levels
        radeon: remove _DRM_DRIVER from the preadded sarea map
        drm: don't associate _DRM_DRIVER maps with a master
        drm: simplify kcalloc() call to kzalloc().
        intelfb: fix spelling of "CLOCK"
        drm: fix LOCK_TEST_WITH_RETURN macro
        drm/i915: Hook connector to encoder during load detection (fixes tv/vga detect)
        ...
      6b702462
  2. 12 Jun, 2009 33 commits