17 Jul, 2007

1 commit

  • The IO port range requested by parport_pc.c:sio_ite_8872_probe is too small.
    The IO-ports of ttyS1 (0x2f8) will be missconfigured by the ITE-chip. The ITE
    starts looking for the chip a 0x2a0. An IO-portrange of 32 will not overwrite
    the ports of ttyS1. Therefore register 0x60 should be written with
    0xe5000000, enabling the ITE and setting IO-portsize to 32 bytes.

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

    Niels de Vos
     

17 May, 2007

1 commit

  • alpha:

    drivers/parport/parport_pc.c: In function 'parport_pc_fifo_write_block_dma':
    drivers/parport/parport_pc.c:636: warning: implicit declaration of function 'dma_map_single'
    drivers/parport/parport_pc.c:637: error: 'DMA_TO_DEVICE' undeclared (first use in this function)
    drivers/parport/parport_pc.c:637: error: (Each undeclared identifier is reported only once
    drivers/parport/parport_pc.c:637: error: for each function it appears in.)

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

    Andrew Morton
     

09 May, 2007

2 commits

  • Give legacy parallel ports a platform device in the device tree.

    This is a quick and dirty implementation; it doesn't actually convert the
    legacy parport code to the device driver model (by splitting out probing from
    device creation). But at least parallel port device drivers will finally have
    a device to work with.

    Signed-off-by: Jean Delvare
    Signed-off-by: David Brownell
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jean Delvare
     
  • Currently a parport_driver can't get a handle on the device node for the
    underlying parport (PNPACPI, PCI, etc). That prevents correct placement of
    sysfs child nodes, which can affect things like power management.

    This patch adds a field to "struct parport" pointing to that device node, and
    updates non-legacy port drivers to initialize that device pointer. That field
    replaces the analagous PCI-only support in parport_pc.

    [akpm@linux-foundation.org: fix powerpc build]
    Signed-off-by: David Brownell
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     

21 Feb, 2007

1 commit

  • WARNING: drivers/parport/parport_pc.o - Section mismatch: reference
    to .init.text: from .text between 'parport_pc_probe_port' (at offset
    0x14f7) and 'parport_pc_unregister_port'

    parport_dma_probe() cannot be declared __devinit as it is called
    from parport_pc_probe_port() which isn't.

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

    Jean Delvare
     

08 Dec, 2006

2 commits

  • When CONFIG_HOTPLUG=n, parport_pc calls some __devinit == __init code that
    could be discarded. These calls are made from parport_irq_probe(), which is
    called from parport_pc_probe_port(), which is an exported symbol, so the calls
    could (possibly) happen after init time.

    WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.text: from .text between 'parport_irq_probe' (at offset 0x31d) and 'parport_pc_probe_port'
    WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.text: from .text between 'parport_irq_probe' (at offset 0x346) and 'parport_pc_probe_port'

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

    Randy Dunlap
     
  • Add support for the parallel port (implemented as separate PCI function) on
    the Oxford Semiconductor OX16PCI952.

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

    Ryan Underwood
     

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
     

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
     

01 Jul, 2006

1 commit


27 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
     

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
     

09 Jan, 2006

1 commit


07 Jan, 2006

1 commit


11 Sep, 2005

1 commit

  • Use schedule_timeout_interruptible() instead of
    set_current_state()/schedule_timeout() to reduce kernel size. Also use
    human-time to jiffies units conversion functions rather than direct HZ
    division to avoid rounding issues.

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

    Nishanth Aravamudan
     

09 Sep, 2005

1 commit


08 Sep, 2005

1 commit


02 Jul, 2005

1 commit

  • The dynamic pci id logic has been bothering me for a while, and now that
    I started to look into how to move some of this to the driver core, I
    thought it was time to clean it all up.

    It ends up making the code smaller, and easier to follow, and fixes a
    few bugs at the same time (dynamic ids were not being matched
    everywhere, and so could be missed on some call paths for new devices,
    semaphore not needed to be grabbed when adding a new id and calling the
    driver core, etc.)

    I also renamed the function pci_match_device() to pci_match_id() as
    that's what it really does.

    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

24 Jun, 2005

1 commit

  • kernel 2.6.12-rc2 adopted some code by Bjorn Helgaas supporting NetMos combo
    controller cards. this implementation doesn't work for nm9855 based cards!

    there are two reasons:

    a) the module 'parport_pc' doesn't want to give the resonsibility for
    the netmos_9855 to 'parport_serial' and can not handle the serial lines
    -- trivial to fix...

    http://lists.infradead.org/pipermail/linux-parport/2005-February/000250.html
    http://lkml.org/lkml/2005/3/24/199 b) the support for the nm9855 in

    'parport_serial' still doesn't work because of wrong assumptions about
    the relevant BARs port address layout for this chip:

    0000:00:09.0 Communication controller:
    NetMos Technology PCI 9855
    Multi-I/O Controller (rev 01)
    (= 9710:9855)
    Subsystem: LSI Logic / Symbios Logic 1P4S (= 1000:0014)
    Flags: medium devsel, IRQ 177
    I/O ports at a800 [size=8] (= parport)
    I/O ports at a400 [size=8]
    I/O ports at a000 [size=8] (= serial)
    I/O ports at 9800 [size=8] (= serial)
    I/O ports at 9400 [size=8] (= serial)
    I/O ports at 9000 [size=16] (= serial)

    the following patch will fix the problem.

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

    Martin Schitter
     

04 May, 2005

1 commit

  • Part of parport_pc that uses ISA DMA helpers made conditional on
    CONFIG_ISA_DMA_API. As the result, driver got usable for boxen that do
    not have ISA DMA stuff and have normal PCI parport card stuck into
    them - these never use DMA anyway.

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

    Al Viro
     

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