1. 21 Oct, 2008 6 commits
    • Jeremy Kerr's avatar
      powerpc/spufs: Use kmalloc rather than kzalloc for switch log buffer · 837ef884
      Jeremy Kerr authored
      No need to zero the entire buffer, just the head and tail indices.
      Signed-off-by: default avatarJeremy Kerr <jk@ozlabs.org>
      837ef884
    • Jeremy Kerr's avatar
      powerpc/spufs: Don't spu_acquire_saved unnecessarily in regs read · f027faa2
      Jeremy Kerr authored
      With most file readers (eg cat, dd), reading a context's regs file will
      result in two reads: the first to read the data, and the second to
      return EOF. Because each read performs a spu_acquire_saved, we end up
      descheduling and re-scheduling the context twice.
      
      This change does a simple check to see if we'd return EOF before
      calling spu_acquire_saved(), saving the extra schedule operation.
      Signed-off-by: default avatarJeremy Kerr <jk@ozlabs.org>
      f027faa2
    • Jeremy Kerr's avatar
      powerpc/spufs: Don't require full buffer in switch_log read · 14f693ee
      Jeremy Kerr authored
      Currently, read() on the sputrace log will block until the read buffer
      is full. This makes it difficult to retrieve the end of the buffer, as
      the user will need to read with the right-sized buffer.
      
      In a similar method as 91553a1b5e0df006a3573a88d98ee7cd48a3818a, this
      change makes the switch_log return if there has already been data
      read.
      Signed-off-by: default avatarJeremy Kerr <jk@ozlabs.org>
      14f693ee
    • Jeremy Kerr's avatar
      powerpc/spufs: Use state_mutex for switch_log locking, and prevent multiple openers · f5ed0eb6
      Jeremy Kerr authored
      Currently, we use ctx->mapping_lock and ctx->switch_log->lock for the
      context switch log. The mapping lock only prevents concurrent open()s,
      so we require the switch_lock->lock for reads.
      
      Since writes to the switch log buffer occur on context switches, we're
      better off synchronising with the state_mutex, which is held during a
      switch. Since we're serialised througout the buffer reads and writes,
      we can use the state mutex to protect open and release too, and
      can now kfree() the log buffer on release. This allows us to perform
      the switch log notify without taking any extra locks.
      
      Because the buffer is only present while the file is open, we can use
      it to prevent multiple simultaneous openers.
      Signed-off-by: default avatarJeremy Kerr <jk@ozlabs.org>
      f5ed0eb6
    • Jeremy Kerr's avatar
      powerpc/spufs: sputrace: Don't block until the read buffer is full · e869446b
      Jeremy Kerr authored
      Currently, read() on the sputrace buffer will only return data when
      the user buffer is exhausted. This may mean that we never see the
      end of the event log, unless we read() with exactly the right-sized
      buffer.
      
      This change makes sputrace_read not block if we have data ready to
      return.
      Signed-off-by: default avatarJeremy Kerr <jk@ozlabs.org>
      e869446b
    • Jeremy Kerr's avatar
      powerpc/spufs: sputrace: Only enable logging on open(), prevent multiple openers · baf39927
      Jeremy Kerr authored
      Currently, sputrace will start logging to the event buffer before the
      log buffer has been open()ed. This results in a heap of "lost samples"
      warnings if the sputrace file hasn't yet been opened.
      
      Since the buffer is reset on open() anyway, there's no need to enable
      logging when no-one has opened the log.
      
      Because open clears the log, make it return EBUSY for mutliple open
      calls.
      Signed-off-by: default avatarJeremy Kerr <jk@ozlabs.org>
      baf39927
  2. 15 Oct, 2008 23 commits
  3. 14 Oct, 2008 11 commits
    • Linus Torvalds's avatar
      Merge branch 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6 · 278429cf
      Linus Torvalds authored
      * 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6:
        i2c-viapro: Add support for SMBus Process Call transactions
        i2c: Restore i2c_smbus_process_call function
        i2c: Do earlier driver model init
        i2c: Only build Tyan SMBus mux drivers on x86
        i2c: Guard against oopses from bad init sequences
        i2c: Document the implementation details of the /dev interface
        i2c: Improve dev-interface documentation
        i2c-parport-light: Don't register a platform device resource
        hwmon: (dme1737) Convert to a new-style i2c driver
        hwmon: (dme1737) Be less i2c-centric
        i2c/tps65010: Vibrator hookup to gpiolib
        i2c-viapro: Add VX800/VX820 support
        i2c: Renesas Highlander FPGA SMBus support
        i2c-pca-isa: Don't grab arbitrary resources
        i2c/isp1301_omap: Convert to a new-style i2c driver, part 2
        i2c/isp1301_omap: Convert to a new-style i2c driver, part 1
      278429cf
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · e413b210
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (55 commits)
        HID: build drivers for all quirky devices by default
        HID: add missing blacklist entry for Apple ATV ircontrol
        HID: add support for Bright ABNT2 brazilian device
        HID: Don't let Avermedia Radio FM800 be handled by usb hid drivers
        HID: fix numlock led on Dell device 0x413c/0x2105
        HID: remove warn() macro from usb hid drivers
        HID: remove info() macro from usb HID drivers
        HID: add appletv IR receiver quirk
        HID: fix a lockup regression when using force feedback on a PID device
        HID: hiddev.h: Fix example code.
        HID: hiddev.h: Fix mixed space and tabs in example code.
        HID: convert to dev_* prints
        HID: remove hid-ff
        HID: move zeroplus FF processing
        HID: move thrustmaster FF processing
        HID: move pantherlord FF processing
        HID: fix incorrent length condition in hidraw_write()
        HID: fix tty<->hid deadlock
        HID: ignore iBuddy devices
        HID: report descriptor fix for remaining MacBook JIS keyboards
        ...
      e413b210
    • Linus Torvalds's avatar
      Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2 · acd15a83
      Linus Torvalds authored
      * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2: (56 commits)
        ocfs2: Make cached block reads the common case.
        ocfs2: Kill the last naked wait_on_buffer() for cached reads.
        ocfs2: Move ocfs2_bread() into dir.c
        ocfs2: Simplify ocfs2_read_block()
        ocfs2: Require an inode for ocfs2_read_block(s)().
        ocfs2: Separate out sync reads from ocfs2_read_blocks()
        ocfs2: Refactor xattr list and remove ocfs2_xattr_handler().
        ocfs2: Calculate EA hash only by its suffix.
        ocfs2: Move trusted and user attribute support into xattr.c
        ocfs2: Uninline ocfs2_xattr_name_hash()
        ocfs2: Don't check for NULL before brelse()
        ocfs2: use smaller counters in ocfs2_remove_xattr_clusters_from_cache
        ocfs2: Documentation update for user_xattr / nouser_xattr mount options
        ocfs2: make la_debug_mutex static
        ocfs2: Remove pointless !!
        ocfs2: Add empty bucket support in xattr.
        ocfs2/xattr.c: Fix a bug when inserting xattr.
        ocfs2: Add xattr mount option in ocfs2_show_options()
        ocfs2: Switch over to JBD2.
        ocfs2: Add the 'inode64' mount option.
        ...
      acd15a83
    • Bjorn Helgaas's avatar
      rtc-cmos: look for PNP RTC first, then for platform RTC · 72f22b1e
      Bjorn Helgaas authored
      We shouldn't rely on "pnp_platform_devices" to tell us whether there
      is a PNP RTC device.
      
      I introduced "pnp_platform_devices", but I think it was a mistake.
      All it tells us is whether we found any PNPBIOS or PNPACPI devices.
      Many machines have some PNP devices, but do not describe the RTC
      via PNP.  On those machines, we need to do the platform driver probe
      to find the RTC.
      
      We should just register the PNP driver and see whether it claims anything.
      If we don't find a PNP RTC, fall back to the platform driver probe.
      
      This (in conjunction with the arch/x86/kernel/rtc.c patch to add
      a platform RTC device when PNP doesn't have one) should resolve
      these issues:
      
          http://bugzilla.kernel.org/show_bug.cgi?id=11580
          https://bugzilla.redhat.com/show_bug.cgi?id=451188Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
      Acked-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Reported-by: default avatarRik Theys <rik.theys@esat.kuleuven.be>
      Reported-by: shr_msn@yahoo.com.tw
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      72f22b1e
    • Bjorn Helgaas's avatar
      x86: register a platform RTC device if PNP doesn't describe it · 758a7f7b
      Bjorn Helgaas authored
      Most if not all x86 platforms have an RTC device, but sometimes the RTC
      is not exposed as a PNP0b00/PNP0b01/PNP0b02 device in PNPBIOS or ACPI:
      
          http://bugzilla.kernel.org/show_bug.cgi?id=11580
          https://bugzilla.redhat.com/show_bug.cgi?id=451188
      
      It's best if we can discover the RTC via PNP because then we know
      which flavor of device it is, where it lives, and which IRQ it uses.
      
      But if we can't, we should register a platform device using the
      compiled-in RTC_PORT/RTC_IRQ resource assumptions.
      Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
      Acked-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Acked-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Reported-by: default avatarRik Theys <rik.theys@esat.kuleuven.be>
      Reported-by: shr_msn@yahoo.com.tw
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      758a7f7b
    • Benjamin Herrenschmidt's avatar
      powerpc: Fix CHRP PCI config access for indirect_pci · ee673eaa
      Benjamin Herrenschmidt authored
      Recently, indirect_pci was changed to test if the bus number requested
      is the one hanging straight off the PHB, then it substitutes the bus
      number with another one contained in a new "self_busno" field of the
      pci_controller structure.
      
      However, this breaks CHRP which didn't initialize this new field, and
      which relies on having the right bus number passed to the hardware.
      
      This fixes it by initializing this variable properly for all CHRP bridges
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      ee673eaa
    • Benjamin Herrenschmidt's avatar
      powerpc/chrp: Fix detection of Python PCI host bridge on IBM CHRPs · 22007a16
      Benjamin Herrenschmidt authored
      The detection of the IBM "Python" PCI host bridge on IBM CHRP
      machines such as old RS6000 was broken when we changed
      of_device_is_compatible() from strncasecmp to strcasecmp (dropped
      the "n" variant) due to the way IBM encodes the chip version.
      
      We fix that by instead doing a match on the model property like
      we do for others bridges in that file. It should be good enough
      for those machines. If yours is still broken, let me know.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      22007a16
    • Benjamin Herrenschmidt's avatar
      powerpc: Fix 32-bit SMP boot on CHRP · 2bda347b
      Benjamin Herrenschmidt authored
      prom_init was changed to take a new argument, the address
      where the kernel is loaded, which is now used to copy the
      SMP spin loop down before use.
      
      However, only head_64.S was adapted to pass this new value,
      not head_32.S, thus breaking SMP boot on 32-bit SMP CHRP
      machines.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      2bda347b
    • Benjamin Herrenschmidt's avatar
      powerpc: Fix link errors on 32-bit machines using legacy DMA · 7b6b574c
      Benjamin Herrenschmidt authored
      The new merged DMA code will try to access isa_bridge_pcidev when
      trying to DMA to/from legacy devices. This is however only defined
      on 64-bit. Fixes this for now by adding the variable, even if it
      stays NULL. In the long run, we'll make isa-bridge.c common to
      32 and 64-bit.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      7b6b574c
    • Benjamin Herrenschmidt's avatar
      powerpc/pci: Improve detection of unassigned bridge resources · b5561511
      Benjamin Herrenschmidt authored
      When the powerpc PCI layer is not configured to re-assign everything,
      it currently fails to detect that a PCI to PCI bridge has been left
      unassigned by the firmware and tries to allocate resource for the
      default window values in the bridge (0...X) (with the notable exception
      of a hack we have in there that detects some Apple firmware unassigned
      bridge resources).
      
      This results in resource allocation failures, which are generally
      fixed up later on but it causes scary warnings in the logs and we
      have seen the fixup code fall over in some circumstances (a different
      issue to fix as well).
      
      This code improves that by providing a more complete & useful function
      to intuit that a bridge was left unassigned by the firmware, and thus
      force a full re-allocation by the PCI code without trying to allocate
      the existing useless resources first.
      
      The algorithm we use basically considers unassigned a window that
      starts at 0 (PCI address) if the corresponding address space enable
      bit is not set. In addition, for memory space, it considers such a
      resource unassigned also if the host bridge isn't configured to
      forward cycles to address 0 (ie, the resource basically overlaps
      main memory).
      
      This fixes a range of problems with things like Bare-Metal support
      on pSeries machines, or attempt to use partial firmware PCI setup.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      b5561511
    • Christian Borntraeger's avatar
      hvc_console: Fix free_irq in spinlocked section · eef2622a
      Christian Borntraeger authored
          commit 611e097d
          Author: Christian Borntraeger <borntraeger@de.ibm.com>
          hvc_console: rework setup to replace irq functions with callbacks
          introduced a spinlock recursion problem. The notifier_del is
          called with a lock held, and in turns calls free_irq which then
          complains when manipulating procfs. This fixes it by moving the
          call to the notifier to outside of the locked section.
      
      Signed-off-by: Christian Borntraeger<borntraeger@de.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      eef2622a