09 Oct, 2006

1 commit


08 Oct, 2006

1 commit

  • m68k_handle_int() split in two functions: __m68k_handle_int() takes
    pt_regs * and does set_irq_regs(); m68k_handle_int() doesn't get pt_regs
    *.

    Places where we used to call m68k_handle_int() recursively with the same
    pt_regs have simply lost the second argument, the rest is switched to
    __m68k_handle_int().

    The rest of patch is just dropping pt_regs * where needed.

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     

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


03 Oct, 2006

1 commit

  • The last change for partport_pc did fix the common case for all PowerMacs,
    but it broke the case for PCI multiport IO cards. In fact, the config
    option CONFIG_PARPORT_PC_SUPERIO=y lead to a hard crash when cups probed
    the parport driver. It enables the winbond and smsc probing.

    Remove the PARPORT_BASE check again, parport_pc_find_nonpci_ports() will
    take care of it. All powerpc configs should have
    CONFIG_PARPORT_PC_SUPERIO=n, the code did not find anything on the chrp
    boards we tested it on.

    Tested on a G4/466 with a PCI card:

    0001:10:13.0 Serial controller: Timedia Technology Co Ltd PCI2S550 (Dual 16550 UART) (rev 01) (prog-if 02 [16550])
    Subsystem: Timedia Technology Co Ltd Unknown device 5079
    Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping+ SERR- FastB2B-
    Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR-
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Adam Belay
    Cc: Dmitry Torokhov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Olaf Hering
     

01 Oct, 2006

1 commit

  • ppc can boot one single binary on prep, chrp and pmac boards. ppc64 can
    boot one single binary on pseries and G5 boards. pmac has no legacy io,
    probing for PC style legacy hardware (or accessing the legacy io area
    regulary) may lead to a hard crash:

    * add check for parport_pc, exit on pmac. 32bit chrp has no
    ->check_legacy_ioport, the probe is always called. 64bit chrp has
    check_legacy_ioport, check for a "parallel" node

    * add check for isapnp, only PReP boards may have real ISA slots. 32bit
    PReP will have no ->check_legacy_ioport, the probe is always called.

    * update code in i8042_platform_init. Run ->check_legacy_ioport first,
    always call request_region. No functional change. Remove whitespace
    before i8042_reset init.

    Signed-off-by: Olaf Hering
    Acked-by: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Adam Belay
    Cc: Dmitry Torokhov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Olaf Hering
     

30 Sep, 2006

1 commit


03 Jul, 2006

1 commit


01 Jul, 2006

1 commit


27 Jun, 2006

2 commits


26 Jun, 2006

3 commits


24 Jun, 2006

1 commit


23 Jun, 2006

1 commit

  • It's wasn't referenced in Makefile since at least 2.2.8, unbuildable due to
    trivial typos and things like DATA_LATCH and arc_write_control() which
    doesn't exist.

    Adrian Bunk:
    adapted the patch to unrelated context changes

    Signed-off-by: Domen Puncer
    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Domen Puncer
     

18 Jun, 2006

1 commit


20 Apr, 2006

1 commit

  • From: Randy Dunlap

    Fix all modpost section mismatch warnings in parport_pc:

    WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.text: from .text.parport_pc_probe_port after 'parport_pc_probe_port' (at offset 0x230)
    WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.text: from .text.parport_pc_probe_port after 'parport_pc_probe_port' (at offset 0x283)
    WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.text: from .text.parport_pc_probe_port after 'parport_pc_probe_port' (at offset 0x3e6)
    WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.text: from .text.parport_pc_probe_port after 'parport_pc_probe_port' (at offset 0x400)
    WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.text: from .text.parport_pc_probe_port after 'parport_pc_probe_port' (at offset 0x463)
    WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.text: from .text.parport_pc_probe_port after 'parport_pc_probe_port' (at offset 0x488)
    WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.data:superios from .text.parport_pc_probe_port after 'parport_pc_probe_port' (at offset 0x54c)
    WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.data: from .text.parport_pc_probe_port after 'parport_pc_probe_port' (at offset 0x56a)
    WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.data: from .text.parport_pc_pci_probe after 'parport_pc_pci_probe' (at offset 0x67)
    WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.data: from .text.parport_pc_pci_probe after 'parport_pc_pci_probe' (at offset 0x9f)
    WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.data: from .text.parport_pc_pci_probe after 'parport_pc_pci_probe' (at offset 0xa7)
    WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.data:cards from .text.parport_pc_pci_probe after 'parport_pc_pci_probe' (at offset 0x132)
    WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.data: from .text.parport_pc_pci_probe after 'parport_pc_pci_probe' (at offset 0x142)

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

    Randy.Dunlap
     

11 Apr, 2006

1 commit


31 Mar, 2006

8 commits


28 Mar, 2006

1 commit

  • Remove the assumption that pnp_register_driver() returns the number of devices
    claimed.

    parport_pc_init() does nothing with "count", so remove it. Then nobody uses
    the return value of parport_pc_find_ports(), so make it void. Finally, update
    pnp_register_driver() usage.

    Signed-off-by: Bjorn Helgaas
    Cc: Adam Belay
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bjorn Helgaas
     

27 Mar, 2006

1 commit

  • Semaphore to mutex conversion.

    The conversion was generated via scripts, and the result was validated
    automatically via a script as well.

    Signed-off-by: Ingo Molnar
    Cc: Dave Jones
    Cc: Paul Mackerras
    Cc: Ralf Baechle
    Cc: Jens Axboe
    Cc: Neil Brown
    Acked-by: Alasdair G Kergon
    Cc: Greg KH
    Cc: Dominik Brodowski
    Cc: Adam Belay
    Cc: Martin Schwidefsky
    Cc: "David S. Miller"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ingo Molnar
     

21 Mar, 2006

1 commit


06 Mar, 2006

1 commit

  • Steinar H. Gunderson reported:

    - For some reason, it detects the 9845 as a 9735 -- it appears this is
    simply related to the ordering in parport_serial_pci_tbl[]. If we move
    the 9845 up above the 9735, it prints out 9710:9845, but no change in
    behaviour. (We didn't find out why this was the case; we left it alone
    since it didn't affect our problem.)
    - The card has no parallel port (at least no physical ones), yet it reports
    (via its subsystem ID of 0x0014) one parallel port and four serial ports.
    The probe for the parallel port fails, and the driver just aborts. Thus,
    it doesn't find the serial ports.

    Fix the debugging code to use dev_dbg, but don't bother displaying the
    PCI ID of the detected board (that's accessible via other means.)

    Also, arrange for parport_register() to return 0 even if it finds no
    ports.

    Signed-off-by: Russell King

    Russell King
     

04 Feb, 2006

5 commits


23 Jan, 2006

1 commit

  • Helge,
    o Convert a bunch of kmalloc/memset uses to kzalloc.
    o pci.c: Add some __read_mostly annotations.
    o pci.c: Move constant pci_post_reset_delay to asm/pci.h
    o grfioctl.h: Add A4450A to comment of CRT_ID_VISUALIZE_EG.
    o Add some consts to perf.c/perf_images.h

    Matthew,
    o sticore.c: Add some consts to suppress compile warnings.

    Signed-off-by: Helge Deller
    Signed-off-by: Matthew Wilcox
    Signed-off-by: Kyle McMartin

    Helge Deller
     

11 Jan, 2006

1 commit


10 Jan, 2006

1 commit


09 Jan, 2006

1 commit