1. 28 May, 2009 9 commits
    • Kevin Hilman's avatar
    • Mark A. Greer's avatar
      davinci: Move PINMUX defines to SoC files · 5570078c
      Mark A. Greer authored
      Different SoC have different numbers of pinmux registers and other
      resources that overlap with each other.  To clean up the code and
      eliminate defines that overlap with each other, move the PINMUX
      defines to the SoC specific files.
      Signed-off-by: default avatarMark A. Greer <mgreer@mvista.com>
      Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
      5570078c
    • Mark A. Greer's avatar
      davinci: Add compare register support to timer code · 3abd5acf
      Mark A. Greer authored
      The Timer64p timer has 8 compare registers that can
      be used to generate interrupts when the timer value
      matches the compare reg's value.  They do not disturb
      the timer itself.  This can be useful when there is
      only one timer available for both clock events and
      clocksource.
      
      When enabled, the clocksource remains a continuous
      32-bit counter but the clock event will no longer
      support periodic interrupts.  Instead only oneshot
      timers will be supported and implemented by setting
      the compare register to the current timer value plus
      the period that the clock event subsystem is requesting.
      
      Compare registers support is enabled automatically
      when the following conditions are met:
      1) The same timer is being used for clock events
         and clocksource.
      2) The timer is the bottom half (32 bits) of the
         64-bit timer (hardware limitation).
      3) The the compare register offset and irq are
         not zero.
      
      Since the timer is always running, there is a hardware
      race in timer32_config() between reading the current
      timer value, and adding the period to the current
      timer value and writing the compare register.
      Testing on a da830 evm board with the timer clocked
      at 24 MHz and the processor clocked at 300 MHz,
      showed the number of counter ticks to do this ranged
      from 20-53 (~1-2.2 usecs) but usually around 41 ticks.
      This includes some artifacts from collecting the
      information.  So, the minimum period should be
      at least 5 usecs to be safe.
      
      There is also an non-critical lower limit that
      the period should be since there is no point in
      setting an event that is much shorter than the
      time it takes to set the event, and get & handle
      the timer interrupt for that event.  There can
      also be all sorts of delays from activities
      occuring elsewhere in the system (including
      hardware activitis like cache & TLB management).
      These are virtually impossible to quantify so a
      minimum period of 50 usecs was chosen.  That will
      certianly be enough to avoid the actual hardware
      race but hopefully not large enough to cause
      unreasonably course-grained timers.
      Signed-off-by: default avatarMark A. Greer <mgreer@mvista.com>
      Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
      3abd5acf
    • Mark A. Greer's avatar
      davinci: Integrate cp_intc support into low-level irq code · 0b0c4c2a
      Mark A. Greer authored
      Integrate the Common Platform Interrupt Controller (cp_intc)
      support into the low-level irq handling for davinci and similar
      platforms.  Do it such that support for cp_intc and the original
      aintc can coexist in the same kernel binary.
      Signed-off-by: default avatarMark A. Greer <mgreer@mvista.com>
      Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
      0b0c4c2a
    • Mark A. Greer's avatar
      davinci: Factor out emac mac address handling · b14dc0f9
      Mark A. Greer authored
      Factor out the code to extract that mac address from
      i2c eeprom.
      Signed-off-by: default avatarMark A. Greer <mgreer@mvista.com>
      Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
      b14dc0f9
    • Mark A. Greer's avatar
      davinci: Remove unused i2c eeprom_read/write routines · c97909fc
      Mark A. Greer authored
      The dm644x and dm646x board files have i2c eeprom read and
      write routines but they are not used so remove them.
      Signed-off-by: default avatarMark A. Greer <mgreer@mvista.com>
      Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
      c97909fc
    • Mark A. Greer's avatar
      davinci: Move emac platform_data to SoC-specific files · 972412b6
      Mark A. Greer authored
      Since most of the emac platform_data is really SoC specific
      and not board specific, move it to the SoC-specific files.
      Put a pointer to the platform_data in the soc_info structure
      so the board-specific code can set some of the platform_data
      if it needs to.
      Signed-off-by: default avatarMark A. Greer <mgreer@mvista.com>
      Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
      972412b6
    • Mark A. Greer's avatar
      davinci: Move serial platform_device into SoC-specific files · 65e866a9
      Mark A. Greer authored
      Currently, there is one set of platform_device and platform_data
      structures for all DaVinci SoCs.  The differences in the data
      between the various SoCs is handled by davinci_serial_init()
      by checking the SoC type.  However, as new SoCs appear, this
      routine will become more & more cluttered.
      
      To clean up the routine and make it easier to add support for new
      SoCs, move the platform_device and platform_data structures into the
      SoC-specific code and use the SoC infrastructure to provide access
      to the data.
      
      In the process, fix a bug where the wrong irq is used for uart2
      of the dm646x.
      Signed-off-by: default avatarMark A. Greer <mgreer@mvista.com>
      Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
      65e866a9
    • Mark A. Greer's avatar
      davinci: Make GPIO code more generic · a994955c
      Mark A. Greer authored
      The current gpio code needs to know the number of
      gpio irqs there are and what the bank irq number is.
      To determine those values, it checks the SoC type.
      
      It also assumes that the base address and the number
      of irqs the interrupt controller uses is fixed.
      
      To clean up the SoC checks and make it support
      different base addresses and interrupt controllers,
      have the SoC-specific code set those values in
      the soc_info structure and have the gpio code
      reference them there.
      Signed-off-by: default avatarMark A. Greer <mgreer@mvista.com>
      Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
      a994955c
  2. 26 May, 2009 21 commits
  3. 23 May, 2009 5 commits
    • Linus Torvalds's avatar
      Linux 2.6.30-rc7 · 59a3759d
      Linus Torvalds authored
      59a3759d
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6 · 4a5dacec
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
        [SCSI] mpt2sas: fix driver version inconsistency
        [SCSI] 3w-xxxx: scsi_dma_unmap fix
        [SCSI] 3w-9xxx: scsi_dma_unmap fix
        [SCSI] ses: fix problems caused by empty SES provided name
        [SCSI] fc-transport: Close state transition-window during rport deletion.
        [SCSI] initialize max_target_blocked in scsi_alloc_target
        [SCSI] fnic: Add new Cisco PCI-Express FCoE HBA
      4a5dacec
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6 · 3eb9c8be
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
        [CIFS] Avoid open on possible directories since Samba now rejects them
      3eb9c8be
    • Steve French's avatar
      [CIFS] Avoid open on possible directories since Samba now rejects them · 8db14ca1
      Steve French authored
      Small change (mostly formatting) to limit lookup based open calls to
      file create only.
      
      After discussion yesteday on samba-technical about the posix lookup
      regression,  and looking at a problem with cifs posix open to one
      particular Samba version, Jeff and JRA realized that Samba server's
      behavior changed in this area (posix open behavior on files vs.
      directories).   To make this behavior consistent, JRA just made a
      fix to Samba server to alter how it handles open of directories (now
      returning the equivalent of EISDIR instead of success). Since we don't
      know at lookup time whether the inode is a directory or file (and
      thus whether posix open will succeed with most current Samba server),
      this change avoids the posix open code on lookup open (just issues
      posix open on creates).    This gets the semantic benefits we want
      (atomicity, posix byte range locks, improved write semantics on newly
      created files) and file create still is fast, and we avoid the problem
      that Jeff noticed yesterday with "openat" (and some open directory
      calls) of non-cached directories to one version of Samba server, and
      will work with future Samba versions (which include the fix jra just
      pushed into Samba server).  I confirmed this approach with jra
      yesterday and with Shirish today.
      
      Posix open is only called (at lookup time) for file create now.
      For opens (rather than creates), because we do not know if it
      is a file or directory yet, and current Samba no longer allows
      us to do posix open on dirs, we could end up wasting an open call
      on what turns out to be a dir. For file opens, we wait to call posix
      open till cifs_open.  It could be added here (lookup) in the future
      but the performance tradeoff of the extra network request when EISDIR
      or EACCES is returned would have to be weighed against the 50%
      reduction in network traffic in the other paths.
      Reviewed-by: default avatarShirish Pargaonkar <shirishp@us.ibm.com>
      Tested-by: default avatarJeff Layton <jlayton@redhat.com>
      CC: Jeremy Allison <jra@samba.org>
      Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
      8db14ca1
    • Breno Leitao's avatar
      icom: fix rmmod crash · 95caa0a9
      Breno Leitao authored
      Actually the icom driver is crashing when is being removed because
      the driver is kfreeing the adapter structure before calling
      pci_release_regions(), which result in the following error:
      
        Unable to handle kernel paging request for data at address 0x6b6b6b6b6b6b6d33
        Faulting instruction address: 0xc000000000246b80
        Oops: Kernel access of bad area, sig: 11 [#1]
        ....
        [c000000012d436a0] [c0000000001002d0] .kfree+0x120/0x34c (unreliable)
        [c000000012d43730] [c000000000246d60] .pci_release_selected_regions+0x3c/0x68
        [c000000012d437c0] [d000000002d54700] .icom_kref_release+0xf4/0x118 [icom]
        [c000000012d43850] [c000000000232e50] .kref_put+0x74/0x94
        [c000000012d438d0] [d000000002d56c58] .icom_remove+0x40/0xa4 [icom]
        [c000000012d43960] [c000000000249e48] .pci_device_remove+0x50/0x90
        [c000000012d439e0] [c0000000002d68d8] .__device_release_driver+0x94/0xd4
        [c000000012d43a70] [c0000000002d7104] .driver_detach+0xf8/0x12c
        [c000000012d43b00] [c0000000002d549c] .bus_remove_driver+0xbc/0x11c
        [c000000012d43b90] [c0000000002d71dc] .driver_unregister+0x60/0x80
        [c000000012d43c20] [c00000000024a07c] .pci_unregister_driver+0x44/0xe8
        [c000000012d43cb0] [d000000002d56bf4] .icom_exit+0x1c/0x40 [icom]
        [c000000012d43d30] [c000000000095fa8] .SyS_delete_module+0x214/0x2a8
        [c000000012d43e30] [c00000000000852c] syscall_exit+0x0/0x40
      Signed-off-by: default avatarBreno Leitao <leitao@linux.vnet.ibm.com>
      Cc: stable@kernel.org
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      95caa0a9
  4. 22 May, 2009 5 commits