03 Jun, 2007

1 commit

  • The current smc91x I/O routines ifdef the solution engine subtypes
    individually, which is rather bogus, as they can simply use
    CONFIG_SOLUTION_ENGINE instead. This fixes it for some of the other
    solution engines that weren't included in the ifdef list (SH7206
    specifically).

    There are also inb/outb definitions which are totally bogus (missing
    brackets in _both_ cases, SMC_CAN_USE_8BIT == 0, and even better, they
    try to use a 16-bit access to fake 8-bit access). Kill that nonsense off
    completely.

    Signed-off-by: Paul Mundt

    --

    drivers/net/smc91x.h | 5 +----
    1 file changed, 1 insertion(+), 4 deletions(-)
    Signed-off-by: Jeff Garzik

    Paul Mundt
     

08 May, 2007

2 commits


11 Dec, 2006

1 commit

  • This looks like a result of too many auto-merges. The
    CONFIG_ARCH_VERSATILE case was handled a total of 6 times.
    This kills 5 of them.

    Signed-off-by: Paul Mundt

    --

    drivers/net/smc91x.h | 90 ---------------------------------------------------
    1 file changed, 90 deletions(-)
    Signed-off-by: Jeff Garzik

    Paul Mundt
     

05 Dec, 2006

3 commits

  • Signed-off-by: Mariusz Kozlowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    Mariusz Kozlowski
     
  • We need to specify a Versatile-specific SMC_IRQ_FLAGS value or the new
    generic IRQ layer will complain thusly:

    No IRQF_TRIGGER set_type function for IRQ 25 ()

    Signed-off-by: Deepak Saxena
    Cc: Jeff Garzik
    Cc: Russell King
    Cc: Nicolas Pitre

    On Fri, 20 Oct 2006 22:50:40 +0100
    Russell King wrote:

    > On Fri, Oct 20, 2006 at 02:42:04PM -0700, akpm@osdl.org wrote:
    > > We need to specify a Versatile-specific SMC_IRQ_FLAGS value or the new
    > > generic IRQ layer will complain thusly:
    >
    > I don't think I heard anything back from my previous suggestion that
    > the IRQ flags are passed through the platform device IRQ resource.
    >
    > Doing so would avoid adding yet another platform specific block into
    > the file.
    >
    > BTW, Integrator platforms will also suffer from this, which will add
    > another ifdef to this header.
    >
    > Let's do it right and arrange to pass these flags from the platform
    > code. It's not like they're in a critical path.

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

    Deepak Saxena
     
  • Signed-off-by: Al Viro

    Al Viro
     

22 Oct, 2006

1 commit


11 Oct, 2006

1 commit


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
     

30 Sep, 2006

1 commit


26 Sep, 2006

1 commit


20 Aug, 2006

2 commits

  • Unclear how these bugs arrived, presumably from incorrect cleanup of
    the 16-bit-only paths, but smc91x wouldn't build for OMAP.

    Signed-off-by: David Brownell
    Cc: Nicolas Pitre
    Cc: Jeff Garzik
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    David Brownell
     
  • We need to specify a Versatile-specific SMC_IRQ_FLAGS value or the new
    generic IRQ layer will complain thusly:

    No IRQF_TRIGGER set_type function for IRQ 25 ()

    Signed-off-by: Deepak Saxena
    Cc: Jeff Garzik
    Cc: Russell King
    Cc: Nicolas Pitre
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    Deepak Saxena
     

15 Aug, 2006

1 commit


13 Jul, 2006

1 commit


03 Jul, 2006

1 commit


21 Jun, 2006

1 commit

  • * master.kernel.org:/home/rmk/linux-2.6-arm: (22 commits)
    [ARM] 3559/1: S3C2442: core and serial port
    [ARM] 3557/1: S3C24XX: centralise and cleanup uart registration
    [ARM] 3558/1: SMDK24XX: LED platform devices
    [ARM] 3534/1: add spi support to lubbock platform
    [ARM] 3554/1: ARM: Fix dyntick locking
    [ARM] 3553/1: S3C24XX: earlier print of cpu idcode info
    [ARM] 3552/1: S3C24XX: Move VA of GPIO for low-level debug
    [ARM] 3551/1: S3C24XX: PM code failes to compile with CONFIG_DCACHE_WRITETHROUGH
    [ARM] 3550/1: OSIRIS: fix serial port map for 1:1
    [ARM] 3548/1: Fix the ARMv6 CPU id in compressed/head.S
    [ARM] 3335/1: Old-abi Thumb sys_syscall broken
    [ARM] 3467/1: [3/3] Support for Philips PNX4008 platform: defconfig
    [ARM] 3466/1: [2/3] Support for Philips PNX4008 platform: chip support
    [ARM] 3465/1: [1/3] Support for Philips PNX4008 platform: headers
    [ARM] 3407/1: lpd7x: documetation update
    [ARM] 3406/1: lpd7x: compilation fix for smc91x
    [ARM] 3405/1: lpd7a40x: CPLD ssp driver
    [ARM] 3404/1: lpd7a40x: AMBA CLCD support
    [ARM] 3403/1: lpd7a40x: updated default configurations
    [ARM] 3402/1: lpd7a40x: serial driver bug fix
    ...

    Linus Torvalds
     

18 Jun, 2006

1 commit


02 Apr, 2006

1 commit


22 Mar, 2006

1 commit

  • All accessor's different methods are now selected with C code and unused
    ones statically optimized away at compile time instead of being selected
    with #if's and #ifdef's. This has many advantages such as allowing the
    compiler to validate the syntax of the whole code, making it cleaner and
    easier to understand, and ultimately allowing people to define
    configuration symbols in terms of variables if they really want to
    dynamically support multiple bus configurations at the same time (with
    the unavoidable performance cost).

    Signed-off-by: Nicolas Pitre
    Signed-off-by: Jeff Garzik

    Nicolas Pitre
     

09 Jan, 2006

1 commit

  • Some ARM platforms have the ability to program the interrupt controller to
    detect various interrupt edges and/or levels. For some platforms, this is
    critical to setup correctly, particularly those which the setting is dependent
    on the device.

    Currently, ARM drivers do (eg) the following:

    err = request_irq(irq, ...);

    set_irq_type(irq, IRQT_RISING);

    However, if the interrupt has previously been programmed to be level sensitive
    (for whatever reason) then this will cause an interrupt storm.

    Hence, if we combine set_irq_type() with request_irq(), we can then safely set
    the type prior to unmasking the interrupt. The unfortunate problem is that in
    order to support this, these flags need to be visible outside of the ARM
    architecture - drivers such as smc91x need these flags and they're
    cross-architecture.

    Finally, the SA_TRIGGER_* flag passed to request_irq() should reflect the
    property that the device would like. The IRQ controller code should do its
    best to select the most appropriate supported mode.

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

    Russell King
     

13 Nov, 2005

1 commit


11 Nov, 2005

1 commit


31 Oct, 2005

1 commit

  • Update SMC91x driver for m32r.

    - Remove needless NONCACHE_OFFSET adjustment.
    > [PATCH 2.6.14-rc4] m32r: NONCACHE_OFFSET in _port2addr
    > Change _port2addr() not to add NONCACHE_OFFSET.
    > Adding NONCACHE_OFFSET requires needless address adjusting by a driver
    > using ioremap() like a SMC91x driver.

    - Fix lots of warnings as following:
    /usr/src/ctest/git/kernel/drivers/net/smc91x.c: In function `smc_reset':
    /usr/src/ctest/git/kernel/drivers/net/smc91x.c:324: warning: passing arg 2 of `_outw' makes integer from pointer without a cast
    /usr/src/ctest/git/kernel/drivers/net/smc91x.c:325: warning: passing arg 2 of `_outw' makes integer from pointer without a cast
    /usr/src/ctest/git/kernel/drivers/net/smc91x.c:341: warning: passing arg 2 of `_outw' makes integer from pointer without a cast
    /usr/src/ctest/git/kernel/drivers/net/smc91x.c:342: warning: passing arg 2 of `_outw' makes integer from pointer without a cast
    :
    /usr/src/ctest/git/kernel/drivers/net/smc91x.c:1915: warning: passing arg 1 of `_inw' makes integer from pointer without a cast
    /usr/src/ctest/git/kernel/drivers/net/smc91x.c:1915: warning: passing arg 1 of `_inw' makes integer from pointer without a cast

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

    Hirokazu Takata
     

08 Sep, 2005

1 commit


31 Jul, 2005

1 commit

  • --ReaqsoxgOBHFXBhH
    Content-Type: text/plain; charset=us-ascii
    Content-Disposition: inline

    Hi Jeff,

    Here's a little patch fixing a typo in smc91x.h.

    Regards,

    Tony

    --ReaqsoxgOBHFXBhH
    Content-Type: text/x-chdr; charset=us-ascii
    Content-Disposition: inline; filename="patch-fix-typo-smc91x.h"
    Signed-off-by: Jeff Garzik

    Tony Lindgren
     

28 Jun, 2005

1 commit

  • For boards that invert the SMC91x IRQ line (maybe an FPGA inverts it),
    the set_irq_type() call can't assume IRQT_RISING. These particular
    boards currently use OMAP-specific calls to change the trigger type,
    but the boards break when set_irq_type() stops being a NOP.

    Signed-off-by: David Brownell

    David Brownell
     

28 May, 2005

1 commit


13 May, 2005

1 commit


17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds