22 Jun, 2005

40 commits

  • 1/ Must typecast int to (sector_t) before inverting or we
    might not invert enough bits.

    2/ When "bitmap_offset" was added to mdp_superblock_1, we didn't increase
    the count of words-used (96 to 100).

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • currently, md updates all superblocks (one on each device) in series. It
    waits for one write to complete before starting the next. This isn't a big
    problem as superblock updates don't happen that often.

    However it is neater to do it in parallel, and if the drives in the array have
    gone to "sleep" after a period of idleness, then waking them is parallel is
    faster (and someone else should be worrying about power drain).

    Futher, we will need parallel superblock updates for a future patch which
    keeps the intent-logging bitmap near the superblock.

    Also remove the silly code that retired superblock updates 100 times. This
    simply never made sense.

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • This provides an alternate to storing the bitmap in a separate file. The
    bitmap can be stored at a given offset from the superblock. Obviously the
    creator of the array must make sure this doesn't intersect with data....
    After is good for version-0.90 superblocks.

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • Before completing a 'write' the md superblock might need to be updated.
    This is best done by the md_thread.

    The current code schedules this up and queues the write request for later
    handling by the md_thread.

    However some personalities (Raid5/raid6) will deadlock if the md_thread
    tries to submit requests to its own array.

    So this patch changes things so the processes submitting the request waits
    for the superblock to be written and then submits the request itself.

    This fixes a recently-created deadlock in raid5/raid6

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • When an array is degraded, bit in the intent-bitmap are never cleared. So if
    a recently failed drive is re-added, we only need to reconstruct the block
    that are still reflected in the bitmap.

    This patch adds support for this re-adding.

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • Currently we don't wait for updates to the bitmap to be flushed to disk
    properly. The infrastructure all there, but it isn't being used....

    A separate kernel thread (bitmap_writeback_daemon) is needed to wait for each
    page as we cannot get callbacks when a page write completes.

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • With this patch, the intent to write to some block in the array can be logged
    to a bitmap file. Each bit represents some number of sectors and is set
    before any update happens, and only cleared when all writes relating to all
    sectors are complete.

    After an unclean shutdown, information in this bitmap can be used to optimise
    resync - only sectors which could be out-of-sync need to be updated.

    Also if a drive is removed and then added back into an array, the recovery can
    make use of the bitmap to optimise reconstruction. This is not implemented in
    this patch.

    Currently the bitmap is stored in a file which must (obviously) be stored on a
    separate device.

    The patch only provided infrastructure. It does not update any personalities
    to bitmap intent logging.

    Md arrays can still be used with no bitmap file. This patch has minimal
    impact on such arrays.

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • 1/ change the return value (which is number-of-sectors synced)
    from 'int' to 'sector_t'.
    The number of sectors is usually easily small enough to fit
    in an int, but if resync needs to abort, it may want to return
    the total number of remaining sectors, which could be large.
    Also errors cannot be returned as negative numbers now, so use
    0 instead
    2/ Add a 'skipped' return parameter to allow the array to report
    that it skipped the sectors. This allows md to take this into account
    in the speed calculations.
    Currently there is no important skipping, but the bitmap-based-resync
    that is coming will use this.

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • When md marks the superblock dirty before a write, it calls
    generic_make_request (to write the superblock) from within
    generic_make_request (to write the first dirty block), which could cause
    problems later.

    With this patch, the superblock write is always done by the helper thread, and
    write request are delayed until that write completes.

    Also, the locking around marking the array dirty and writing the superblock is
    improved to avoid possible races.

    Signed-off-by: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    NeilBrown
     
  • Shrink the stack when calling the drawing alignment functions.

    Signed-off-by: James Simmons
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    James Simmons
     
  • Improve the fonts for use with the framebuffer.

    I've added all the characters marked 'FIXME' in the sun12x22 font and
    created a 10x18 font (based on the sun12x22 font) and a 7x14 font (based
    on the vga8x16 font).

    This patch is non-intrusive, no options are enabled by default so most
    users won't notice a thing.

    I am placing my changes under the GPL, however, I've not seen any copyright
    notices on the sun12x22 font and the vga8x16 font which I derived my new
    fonts from so I don't know what the copyright status is.

    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jurriaan
     
  • Patch adds pci ID for CT 69000 chipset.

    Signed-off-by: James Simmons
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    James Simmons
     
  • Add support for the Arc monochrome LCD board.

    The board uses KS108 controllers to drive individual 64x64 LCD matrices.
    The board can be paneled in a variety of setups such as 2x1=128x64,
    4x4=256x256 and so on. The board/host interface is through GPIO.

    Signed-off-by: Jaya Kumar
    Cc: "Antonino A. Daplas"
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jaya Kumar
     
  • Since no one is using the inbuf, outbuf of struct fb_pixmap I removed their
    use in the framebuffer console. The idea is instead move the pixmap
    functionality below the accelerated functions intead of on top as the way
    it is now. If there is no objection please apply. This is against Linus
    latestr GIT tree. Thank you.

    Signed-off-by: James Simmons
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    James Simmons
     
  • Signed-off-by: Ian Kent
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ian Kent
     
  • With Chris Wedgwood

    As suggested by Chris, we can make the "just added" method ->release
    conditional to UML only (better: to archs requesting it, i.e. only UML
    currently), so that other archs don't get this unneeded crud, and if UML
    won't need it any more we can kill this.

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    CC: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • With Chris Wedgwood

    Currently UML must explicitly call the UML-specific
    free_irq_by_irq_and_dev() for each free_irq call it's done.

    This is needed because ->shutdown and/or ->disable are only called when the
    last "action" for that irq is removed.

    Instead, for UML shared IRQs (UML IRQs are very often, if not always,
    shared), for each dev_id some setup is done, which must be cleared on the
    release of that fd. For instance, for each open console a new instance
    (i.e. new dev_id) of the same IRQ is requested().

    Exactly, a fd is stored in an array (pollfds), which is after read by a
    host thread and passed to poll(). Each event registered by poll() triggers
    an interrupt. So, for each free_irq() we must remove the corresponding
    host fd from the table, which we do via this -release() method.

    In this patch we add an appropriate hook for this, and remove all uses of
    it by pointing the hook to the said procedure; this is safe to do since the
    said procedure.

    Also some cosmetic improvements are included.

    This is heavily based on some work by Chris Wedgwood, which however didn't
    get the patch merged for something I'd call a "misunderstanding" (the need
    for this patch wasn't cleanly explained, thus adding the generic hook was
    felt as undesirable).

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso
    CC: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paolo 'Blaisorblade' Giarrusso
     
  • The current include/asm-m32r/div64.h of 2.6.12-rc5 looks buggy. Here is a
    patch for updating it to use asm-generic/div64.h for m32r like other
    architectures.

    Signed-off-by: Hitoshi Yamamoto
    Signed-off-by: Hirokazu Takata
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hirokazu Takata
     
  • This patch removes an obsolete header file include/asm-m32r/m32102peri.h.
    In this header, there are some undesirable single character types, like V.
    And the header is almost no longer used.

    Signed-off-by: Hayato Fujiwara
    Signed-off-by: Hirokazu Takata
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hirokazu Takata
     
  • This patchset is for supporting a new m32r platform, M3A-2170(Mappi-III)
    evaluation board. An M32R chip multiprocessor is equipped on the board.
    http://http://www.linux-m32r.org/eng/platform/platform.html

    * arch/m32r/Kconfig: Support Mappi-III platform.
    * arch/m32r/kernel/Makefile: ditto.
    * arch/m32r/kernel/io_mappi3.c: ditto.
    * arch/m32r/kernel/setup.c: ditto.
    * arch/m32r/kernel/setup_mappi3.c: ditto.
    * include/asm-m32r/m32102.h: ditto.
    * include/asm-m32r/m32r.h: ditto.
    * include/asm-m32r/mappi3/mappi3_pld.h: ditto.

    * include/asm-m32r/ide.h: CF support for Mappi-III.
    * arch/m32r/kernel/setup_mappi3.c: ditto.

    * arch/m32r/mappi3/defconfig.smp: A default config file for Mappi-III.
    * arch/m32r/mappi3/dot.gdbinit: A default .gdbinit file for Mappi-III.

    * arch/m32r/boot/compressed/m32r_sio.c: Modified for Mappi-III
    - At boot time, m32r-g00ff bootloader makes MMU off for Mappi-III,
    on the contrary it makes MMU on for Mappi-II.

    * arch/m32r/kernel/io_mappi2.c: Update comments.
    * arch/m32r/kernel/setup_mappi2.c: ditto.

    Signed-off-by: Mamoru Sakugawa
    Signed-off-by: Hirokazu Takata
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hirokazu Takata
     
  • Several hardware features of SGI's IOC4 I/O controller chip require
    timing-related driver calculations dependent upon the PCI bus speed. This
    patch enables the core IOC4 driver code to detect the actual bus speed and
    store a value that can later be used by the IOC4 subdrivers as needed.

    Signed-off-by: Brent Casavant
    Acked-by: Pat Gefre
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Brent Casavant
     
  • This series of patches reworks the configuration and internal structure
    of the SGI IOC4 I/O controller device drivers.

    These changes are motivated by several factors:

    - The IOC4 chip PCI resources are of mixed use between functions (i.e.
    multiple functions are handled in the same address range, sometimes
    within the same register), muddling resource ownership and initialization
    issues. Centralizing this ownership in a core driver is desirable.

    - The IOC4 chip implements multiple functions (serial, IDE, others not
    yet implemented in the mainline kernel) but is not a multifunction
    PCI device. In order to properly handle device addition and removal
    as well as module insertion and deletion, an intermediary IOC4-specific
    driver layer is needed to handle these operations cleanly.

    - All IOC4 drivers are currently enabled by a single CONFIG value. As
    not all systems need all IOC4 functions, it is desireable to enable
    these drivers independently.

    - The current IOC4 core driver will trigger loading of all function-level
    drivers, as it makes direct calls to them. This situation should be
    reversed (i.e. function-level drivers cause loading of core driver)
    in order to maintain a clear and least-surprise driver loading model.

    - IOC4 hardware design necessitates some driver-level dependency on
    the PCI bus clock speed. Current code assumes a 66MHz bus, but the
    speed should be autodetected and appropriate compensation taken.

    This patch series effects the above changes by a newly and better designed
    IOC4 core driver with which the function-level drivers can register and
    deregister themselves upon module insertion/removal. By tracking these
    modules, device addition/removal is also handled properly. PCI resource
    management and ownership issues are centralized in this core driver, and
    IOC4-wide configuration actions such as bus speed detection are also
    handled in this core driver.

    This patch:

    The SGI IOC4 I/O controller chip implements multiple functions, though it is
    not a multi-function PCI device. Additionally, various PCI resources of the
    IOC4 are shared by multiple hardware functions, and thus resource ownership by
    driver is not clearly delineated. Due to the current driver design, all core
    and subordinate drivers must be loaded, or none, which is undesirable if not
    all IOC4 hardware features are being used.

    This patch reorganizes the IOC4 drivers so that the core driver provides a
    subdriver registration service. Through appropriate callbacks the subdrivers
    can now handle device addition and removal, as well as module insertion and
    deletion (though the IOC4 IDE driver requires further work before module
    deletion will work). The core driver now takes care of allocating PCI
    resources and data which must be shared between subdrivers, to clearly
    delineate module ownership of these items.

    Signed-off-by: Brent Casavant
    Acked-by: Pat Gefre
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Brent Casavant
     
  • Add vr41xx gpio support.

    Signed-off-by: Yoichi Yuasa
    Cc: Ralf Baechle
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yoichi Yuasa
     
  • This patch allows iSeries to build with CONFIG_PCI=n. This is useful for
    partitions that have only virtual I/O.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • This patch just removes some dead code, fixes messages that referred to the
    file this code used to be in and inserts XmPciLpEvent_init into its caller.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • This patch is just simple cleanups to the iSeries irq code.
    - whitespace and comments
    - rearrange some functions to avoid forward declarations
    - remove XmPciLpEvent.h as its functions were declared elsewhere
    - remove decaration of function that no longer exists
    No semantic changes.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • The AgentId, PhbId, FrameId, CardLocation and Location members of
    iSeries_Device_Node are stored early in the boot process just so that a
    message about the device can be printed later in the boot process. Remove
    them and construct the message by doing the VPD parsing at the time the
    message is printed.

    Also remove a few unused defines in iSeries_VpdInfo.c.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • The IoRetry member of iSeries_Devide_Node is really only used locally, so
    remove it and replace it with a local variable.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • Remove no longer used things from iSeries_pci.h.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • The iommu_table_cb structure is iSeries specific, so move it to the header
    file that declares the function we pass it to. vio_tce_table and
    iommu_setup_iSeries no longer exist, so remove their declarations.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • The file arch/ppc64/kernel/iSeries_pci_reset contains only one function that
    is not use anywhere (any more). Remove it. This function is the only user of
    the ReturnCode member of iSeries_Device_Node, so remove that as well.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • Last of this round of the iSeries header cleanups
    - don't have two defines for the same thing (HvMaxArchitectedLps
    and HvMaxArchitectedVirtualLans)
    - HvCallSc.h only needs linux/types.h
    - remove unused struct definition
    - add "extern" to some more function declarations

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • This patch removes some unused bits from HvCall.h and some unneeded #includes
    from other files. Also includes ItLpQueue.h in paca.h in preference to a stub
    declaration of struct ItLpQueue.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • Just white space cleaups and move process_iSeries_events into its only caller.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • Now that the only users of things in HvCallCfg.h are in HvLpConfig.h, merge in
    the bit we need and remove HvCallCfg.h.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • This patch removes from the iSeries header files a large number of inline
    functions that are not used. It also changes the only caller of a HvCallCfg
    function that is outside HvLpConfig.h to its equivalent HvLpConfig function
    and no longer includes HvCallCfg.h where it is not needed.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • include/asm-ppc64/iSeries/LparData.h just included a whole lot of other files
    to declare variables that would be better declared in those other files. So,
    remove it. This will reduce that number of things needed to be included in
    most cases to access the relevant variables.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • This patch does some obvious code cleanups in the iSeries headers files.
    - simplifies the bodies of lots of inline functions
    - parenthesises a macros result
    - removes C++ wrapping
    - adds "extern" to some function declarations
    There are no semantic changes.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • This patch just contains white space and comment cleanups in the iSeries
    headers files. There are no semantic changes.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Rothwell