12 May, 2007

2 commits


10 May, 2007

3 commits

  • Disable some more menus in the configuration files that are of no
    interest to a s390 machine.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • flush_work(wq, work) doesn't need the first parameter, we can use cwq->wq
    (this was possible from the very beginnig, I missed this). So we can unify
    flush_work_keventd and flush_work.

    Also, rename flush_work() to cancel_work_sync() and fix all callers.
    Perhaps this is not the best name, but "flush_work" is really bad.

    (akpm: this is why the earlier patches bypassed maintainers)

    Signed-off-by: Oleg Nesterov
    Cc: Jeff Garzik
    Cc: "David S. Miller"
    Cc: Jens Axboe
    Cc: Tejun Heo
    Cc: Auke Kok ,
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • (akpm: bypassed maintainers, sorry. There are other patches which depend on
    this)

    Cc: "Maciej W. Rozycki"
    Cc: David Howells
    Cc: Jeff Garzik
    Cc: Oleg Nesterov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

28 Apr, 2007

3 commits

  • Function `phy_mii_ioctl' returns physical device's information based on
    user requests. When requested to return the basic mode control register
    information (BMCR), the original implementation only returns the physical
    device's duplex information and forgets to return speed information, which
    should not be because BMCR register is used to hold both duplex and speed
    information.

    The patch checks the BMCR value against speed-related flags and fills the
    return structure's speed field accordingly.

    Signed-off-by: Shan
    Cc: Jeff Garzik
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    Shan Lu
     
  • Convert function documentation in drivers/net/phy/ to kernel-doc
    and add it to DocBook.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    Randy Dunlap
     
  • The subsystem rwsem is not used by the driver core at all, so the use of
    it in the phy code doesn't make any sense. They might possibly
    want to use a local lock, but I am unsure about that.

    Cc: netdev
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

18 Feb, 2007

2 commits


15 Feb, 2007

1 commit

  • After Al Viro (finally) succeeded in removing the sched.h #include in module.h
    recently, it makes sense again to remove other superfluous sched.h includes.
    There are quite a lot of files which include it but don't actually need
    anything defined in there. Presumably these includes were once needed for
    macros that used to live in sched.h, but moved to other header files in the
    course of cleaning it up.

    To ease the pain, this time I did not fiddle with any header files and only
    removed #includes from .c-files, which tend to cause less trouble.

    Compile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,
    arm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,
    allmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all
    configs in arch/arm/configs on arm. I also checked that no new warnings were
    introduced by the patch (actually, some warnings are removed that were emitted
    by unnecessarily included header files).

    Signed-off-by: Tim Schmielau
    Acked-by: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tim Schmielau
     

10 Feb, 2007

1 commit

  • sparse complains about differing types from prototype to
    definition, so change the u32 to phy_interface_t:

    drivers/net/phy/phy_device.c:140:19: error: symbol 'phy_connect' redeclared with different type (originally declared at include/linux/phy.h:362) - incompatible argument 5 (different signedness)
    drivers/net/phy/phy_device.c:190:19: error: symbol 'phy_attach' redeclared with different type (originally declared at include/linux/phy.h:360) - incompatible argument 4 (different signedness)

    Signed-off-by: Randy Dunlap
    Signed-off-by: Jeff Garzik

    Randy Dunlap
     

30 Jan, 2007

1 commit

  • Updated direct resource pass with ioremap call, make it grant proper IRQ
    mapping, stuff incompatible with the new approach were respectively put
    under #ifndef CONFIG_PPC_MERGE. It is required so that both ppc and
    powerpc could utilize fs_enet effectively.

    Signed-off-by: Vitaly Bordug
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    Vitaly Bordug
     

23 Jan, 2007

1 commit


14 Dec, 2006

1 commit

  • All kcalloc() calls of the form "kcalloc(1,...)" are converted to the
    equivalent kzalloc() calls, and a few kcalloc() calls with the incorrect
    ordering of the first two arguments are fixed.

    Signed-off-by: Robert P. J. Day
    Cc: Jeff Garzik
    Cc: Alan Cox
    Cc: Dominik Brodowski
    Cc: Adam Belay
    Cc: James Bottomley
    Cc: Greg KH
    Cc: Mark Fasheh
    Cc: Trond Myklebust
    Cc: Neil Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Robert P. J. Day
     

08 Dec, 2006

1 commit

  • This allows workqueue users to run just their own pending work, rather
    than wait for the whole workqueue to finish running. This solves the
    deadlock with networking libphy that was due to other workqueue entries
    possibly needing a lock that was held by the routine that wanted to
    flush its own work.

    It's not wonderful: if you absolutely need to synchronize with the work
    function having been executed, any user strictly speaking should have
    its own completion tracking logic, since when we run things explicitly
    by hand, the generic workqueue layer can no longer help us synchronize.

    Also, this is strictly only usable for work that has been scheduled
    without any delayed timers. You can not mix the new interface with
    schedule_delayed_work().

    But it's better than what we had currently.

    Acked-by: Maciej W. Rozycki
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

06 Dec, 2006

1 commit


05 Dec, 2006

1 commit


04 Dec, 2006

1 commit


02 Dec, 2006

6 commits

  • Most PHYs connect to an ethernet controller over a GMII or MII
    interface. However, a growing number are connected over
    different interfaces, such as RGMII or SGMII.

    The ethernet driver will tell the PHY what type of connection it
    is by setting it manually, or passing it in through phy_connect
    (or phy_attach).

    Changes include:
    * Updates to documentation
    * Updates to PHY Lib consumers
    * Changes to PHY Lib to add interface support
    * Some minor changes to whitespace in phy.h
    * gianfar driver now detects interface and passes appropriate
    value to PHY Lib
    Signed-off-by: Andrew Fleming
    Signed-off-by: Jeff Garzik

    Andy Fleming
     
  • This reverts commit 477c517903d57047150b01608149e02c6e9d83dd.

    This patch depended on something that was not yet committed.

    Jeff Garzik
     
  • This patch requires the new support for configurable PHY
    interfaces.

    Changes include:
    * New support for 88e1145
    * New support for 88e111s
    * Fixing 88e1101 driver to not match non-88e1101 PHYs
    * Increases in feature support across Marvell PHY product line
    * Fixes a bunch of whitespace issues found by Lindent

    Signed-off-by: Andrew Fleming
    Signed-off-by: Jeff Garzik

    Andy Fleming
     
  • * genphy_update_link is now exported
    * Added a fix from ncase@xes-inc.com which changes forcing so it
    only updates the link. Otherwise, it never tries the lower
    values, since it is always overwriting the speed/duplex values
    with the current ones, rather than the intended ones.
    * Fixed a bug where bringing up a PHY with no link caused it to
    timeout, and enter forcing mode. Once in forcing mode,
    plugging in the link didn't autonegotiate. Now the AN state
    detects the lack of link, and enters the NO_LINK state. AN
    only times out if the link is up and AN fails
    * Cleaned up the PHY_AN case, reducing one level of indentation
    for the timeout code.

    Signed-off-by: Jeff Garzik

    Andy Fleming
     
  • This patch fixes a couple of problems discovered with interrupt handling
    in the phylib core, namely:

    1. The driver uses timer and workqueue calls, but does not include
    nor .

    2. The driver uses schedule_work() for handling interrupts, but does not
    make sure any pending work scheduled thus has been completed before
    driver's structures get freed from memory. This is especially
    important as interrupts may keep arriving if the line is shared with
    another PHY.

    The solution is to ignore phy_interrupt() calls if the reported device
    has already been halted and calling flush_scheduled_work() from
    phy_stop_interrupts() (but guarded with current_is_keventd() in case
    the function has been called through keventd from the MAC device's
    close call to avoid a deadlock on the netlink lock).

    Signed-off-by: Maciej W. Rozycki

    patch-mips-2.6.18-20060920-phy-irq-16
    Signed-off-by: Jeff Garzik

    Maciej W. Rozycki
     
  • This patch adds support for interrupt-driven operation of the Broadcom
    Gigabit Ethernet PHYs. I have included device IDs for the parts used on
    Broadcom SiByte evaluation boards; more can be added as a need arises.
    They are apparently generally software-compatible with one another.

    Signed-off-by: Maciej W. Rozycki

    patch-mips-2.6.18-20060920-broadcom-phy-15
    Signed-off-by: Jeff Garzik

    Maciej W. Rozycki
     

30 Nov, 2006

1 commit


22 Nov, 2006

1 commit


13 Nov, 2006

1 commit

  • * Cleaned up interrupt mapping a little by adding a helper
    function which parses the irq out of the device-tree, and puts
    it into a resource.
    * Changed the arch/ppc platform files to specify PHY_POLL, instead of -1
    * Changed the fixed phy to use PHY_IGNORE_INTERRUPT
    * Added ethtool.h and mii.h to phy.h includes

    Signed-off-by: Paul Mackerras

    Andy Fleming
     

05 Oct, 2006

1 commit

  • Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
    of passing regs around manually through all ~1800 interrupt handlers in the
    Linux kernel.

    The regs pointer is used in few places, but it potentially costs both stack
    space and code to pass it around. On the FRV arch, removing the regs parameter
    from all the genirq function results in a 20% speed up of the IRQ exit path
    (ie: from leaving timer_interrupt() to leaving do_IRQ()).

    Where appropriate, an arch may override the generic storage facility and do
    something different with the variable. On FRV, for instance, the address is
    maintained in GR28 at all times inside the kernel as part of general exception
    handling.

    Having looked over the code, it appears that the parameter may be handed down
    through up to twenty or so layers of functions. Consider a USB character
    device attached to a USB hub, attached to a USB controller that posts its
    interrupts through a cascaded auxiliary interrupt controller. A character
    device driver may want to pass regs to the sysrq handler through the input
    layer which adds another few layers of parameter passing.

    I've build this code with allyesconfig for x86_64 and i386. I've runtested the
    main part of the code on FRV and i386, though I can't test most of the drivers.
    I've also done partial conversion for powerpc and MIPS - these at least compile
    with minimal configurations.

    This will affect all archs. Mostly the changes should be relatively easy.
    Take do_IRQ(), store the regs pointer at the beginning, saving the old one:

    struct pt_regs *old_regs = set_irq_regs(regs);

    And put the old one back at the end:

    set_irq_regs(old_regs);

    Don't pass regs through to generic_handle_irq() or __do_IRQ().

    In timer_interrupt(), this sort of change will be necessary:

    - update_process_times(user_mode(regs));
    - profile_tick(CPU_PROFILING, regs);
    + update_process_times(user_mode(get_irq_regs()));
    + profile_tick(CPU_PROFILING);

    I'd like to move update_process_times()'s use of get_irq_regs() into itself,
    except that i386, alone of the archs, uses something other than user_mode().

    Some notes on the interrupt handling in the drivers:

    (*) input_dev() is now gone entirely. The regs pointer is no longer stored in
    the input_dev struct.

    (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does
    something different depending on whether it's been supplied with a regs
    pointer or not.

    (*) Various IRQ handler function pointers have been moved to type
    irq_handler_t.

    Signed-Off-By: David Howells
    (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)

    David Howells
     

04 Oct, 2006

1 commit


01 Oct, 2006

1 commit


26 Sep, 2006

1 commit

  • While checking gcc 4.1 -Wextra warnings, I stumbled across the following
    two warnings:

    drivers/net/phy/phy_device.c:528: warning: comparison of unsigned expression < 0 is always false
    drivers/net/phy/phy_device.c:546: warning: comparison of unsigned expression < 0 is always false

    Since phy_read() returns an integer and can return negative values, it seems
    to me the best way to get proper error handling working again is to make val
    an int. Currently it is an u32, so the < 0 check always fails.

    Signed-off-by: Eric Sesterhenn
    Cc: Jeff Garzik
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    Eric Sesterhenn
     

14 Sep, 2006

1 commit


20 Aug, 2006

2 commits


15 Aug, 2006

1 commit


04 Aug, 2006

1 commit

  • Prevent phylib from freeing PHY IRQ twice on closing an eth device:
    phy_disconnect() first calls phy_stop_interrupts(), then it calls
    phy_stop_machine() which in turn calls phy_stop_interrupts() making the
    kernel complain on each bootup...

    Signed-off-by: Sergei Shtylyov
    Signed-off-by: Jeff Garzik

    Sergei Shtylylov
     

06 Jul, 2006

1 commit


03 Jul, 2006

1 commit


01 Jul, 2006

1 commit