13 Jan, 2012

1 commit

  • drivers/parport/parport_pc.c: In function '__check_irq':
    drivers/parport/parport_pc.c:3415: warning: return from incompatible pointer type
    drivers/parport/parport_pc.c: In function '__check_dma':
    drivers/parport/parport_pc.c:3417: warning: return from incompatible pointer type

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

    Andrew Morton
     

19 Oct, 2011

1 commit

  • sio_ite_8872_probe() bails out if it detects no-parallel (1S, 2S) or
    unknown card.

    It doesn't call release_region() on the previously allocated resource
    though. This causes

    (a) leak of the resource
    (b) kernel oops when parport module is removed and /proc/ioports is read. This
    is because the string that has been associated to the IO port region
    is a static char array inside the already removed module.

    Let's call release_region() properly before baling out.

    Signed-off-by: Jiri Kosina
    Acked-by: Niels de Vos
    Cc: Bjorn Helgaas
    Cc: Alan Cox
    Cc: Joe Krahn
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Jiri Kosina
     

08 Jun, 2011

1 commit

  • Timedia/SUNIX PCI cards with both serial and parallel ports are
    currently supported by 8250_pci and parport_pc individually. Moving
    that support into parport_serial allows using both types of ports at the
    same time.

    This was successfully tested with a SUNIX 4079T.

    Signed-off-by: Frédéric Brière
    Acked-by: Alan Cox
    Cc: linux-serial@vger.kernel.org
    Cc: linux-parport@lists.infradead.org
    Signed-off-by: Greg Kroah-Hartman

    Frédéric Brière
     

24 May, 2011

1 commit

  • * 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6: (48 commits)
    serial: 8250_pci: add support for Cronyx Omega PCI multiserial board.
    tty/serial: Fix break handling for PORT_TEGRA
    tty/serial: Add explicit PORT_TEGRA type
    n_tracerouter and n_tracesink ldisc additions.
    Intel PTI implementaiton of MIPI 1149.7.
    Kernel documentation for the PTI feature.
    export kernel call get_task_comm().
    tty: Remove to support serial for S5P6442
    pch_phub: Support new device ML7223
    8250_pci: Add support for the Digi/IBM PCIe 2-port Adapter
    ASoC: Update cx20442 for TTY API change
    pch_uart: Support new device ML7223 IOH
    parport: Use request_muxed_region for IT87 probe and lock
    tty/serial: add support for Xilinx PS UART
    n_gsm: Use print_hex_dump_bytes
    drivers/tty/moxa.c: Put correct tty value
    TTY: tty_io, annotate locking functions
    TTY: serial_core, remove superfluous set_task_state
    TTY: serial_core, remove invalid test
    Char: moxa, fix locking in moxa_write
    ...

    Fix up trivial conflicts in drivers/bluetooth/hci_ldisc.c and
    drivers/tty/serial/Makefile.

    I did the hci_ldisc thing as an evil merge, cleaning things up.

    Linus Torvalds
     

07 May, 2011

1 commit

  • This is needed as part of making the various IT87 drivers actually co-exist
    politely with each other, and with other superio devices that may be muxed
    on 0x2E/0x2F.

    It can be applied before or after the other patches by Nat Gurumoorthy without
    problem.

    Signed-off-by: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    Alan Cox
     

20 Apr, 2011

1 commit

  • Replace release_resource() by release_region() and also fix the
    inconsistency in the size of the requested/released region.

    The size of the resource should be 32, not 0x8 like it was corrected in
    commit e7c310c36e5fdf1b83a459e5db167bfbd86137db already.

    CC: linux-serial@vger.kernel.org
    Reported-by: Julia Lawall
    Signed-off-by: Niels de Vos
    Signed-off-by: Greg Kroah-Hartman

    Niels de Vos
     

31 Mar, 2011

1 commit


24 Aug, 2010

1 commit


03 Mar, 2010

1 commit

  • This patch is heavily based on an earlier patch found on the linux-serial
    mailing list [1], written by Darius Augulis.

    The previous incarnation of this patch only supported a 2x serial port
    card. I have added support for my SYBA 6x serial port card, and tested on
    x86.

    [1]: http://marc.info/?l=linux-serial&m=124975806304760

    Signed-off-by: Ira W. Snyder
    Cc: Darius Augulis
    Cc: Greg KH
    Cc: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Ira W. Snyder
     

16 Dec, 2009

1 commit


01 Jul, 2009

1 commit

  • Add support for the PCI-Express NetMos 9901 Multi-IO card.

    0001:06:00.0 Serial controller [0700]: NetMos Technology Device [9710:9901] (prog-if 02 [16550])
    Subsystem: Device [a000:1000]
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR-
    Kernel driver in use: serial
    Kernel modules: 8250_pci

    0001:06:00.1 Serial controller [0700]: NetMos Technology Device [9710:9901] (prog-if 02 [16550])
    Subsystem: Device [a000:1000]
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR-
    Kernel driver in use: serial
    Kernel modules: 8250_pci

    0001:06:00.2 Parallel controller [0701]: NetMos Technology Device [9710:9901] (prog-if 03 [IEEE1284])
    Subsystem: Device [a000:2000]
    Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR-
    Region 2: Memory at 80101000 (32-bit, non-prefetchable) [size=4K]
    Region 4: Memory at 80100000 (32-bit, non-prefetchable) [size=4K]
    Capabilities:
    Kernel driver in use: parport_pc
    Kernel modules: parport_pc

    [ 16.760181] PCI parallel port detected: 416c:0100, I/O at 0x812010(0x0), IRQ 65
    [ 16.760225] parport0: PC-style at 0x812010, irq 65 [PCSPP,TRISTATE,EPP]
    [ 16.851842] serial 0001:06:00.0: enabling device (0004 -> 0007)
    [ 16.883776] 0001:06:00.0: ttyS0 at I/O 0x812030 (irq = 65) is a ST16650V2
    [ 16.893832] serial 0001:06:00.1: enabling device (0004 -> 0007)
    [ 16.926537] 0001:06:00.1: ttyS1 at I/O 0x812020 (irq = 65) is a ST16650V2

    Signed-off-by: Michael Buesch
    Cc: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michael Buesch
     

23 Jun, 2009

2 commits

  • parport_pc_probe_port() creates the own 'parport_pc' device if the
    device argument is NULL. Then parport_pc_probe_port() doesn't
    initialize the dma_mask and coherent_dma_mask of the device and calls
    dma_alloc_coherent with it. dma_alloc_coherent fails because
    dma_alloc_coherent() doesn't accept the uninitialized dma_mask:

    http://lkml.org/lkml/2009/6/16/150

    Long ago, X86_32 and X86_64 had the own dma_alloc_coherent
    implementations; X86_32 accepted a device having dma_mask that is not
    initialized however X86_64 didn't. When we merged them, we chose to
    prohibit a device having dma_mask that is not initialized. I think
    that it's good to require drivers to set up dma_mask (and
    coherent_dma_mask) properly if the drivers want DMA.

    Signed-off-by: FUJITA Tomonori
    Reported-by: Malcom Blaney
    Tested-by: Malcom Blaney
    Cc: stable@kernel.org
    Signed-off-by: Alan Cox
    Acked-by: Jeff Garzik
    Signed-off-by: Linus Torvalds

    FUJITA Tomonori
     
  • CONFIG_PARPORT_PC_SUPERIO probes for various superio chips by writing
    byte sequences to a set of different potential I/O ranges. But the
    probed ranges are not exclusive to parallel ports. Some of our boards
    just happen to have a watchdog in one of them. Took us almost a week
    to figure out why some distros reboot without warning after running
    flawlessly for 3 hours. For exactly 170 = 0xAA minutes, that is ...

    Fixed by restoring original values after probing. Also fixed too small
    request_region() in detect_and_report_it87().

    Signed-off-by: Jens Rottmann
    Signed-off-by: Alan Cox
    Cc:
    Acked-by: Jeff Garzik
    Signed-off-by: Linus Torvalds

    Jens Rottmann
     

11 Jun, 2009

3 commits

  • And tidy up a few bits coding style detectors missed

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • Michael's patch fixed some of the coding style so the style is now
    inconsistent. Sort the rest out

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • This patch fixes array subscription bugs in the parport_pc driver.

    drivers/parport/parport_pc.c: In function ‘parport_irq_probe’:
    drivers/parport/parport_pc.c:1589: warning: array subscript is above array bounds
    drivers/parport/parport_pc.c: In function ‘parport_pc_probe_port’:
    drivers/parport/parport_pc.c:1579: warning: array subscript is above array bounds

    The patch also fixes a few other array bugs, which the compiler was
    unable to find. Coding style violations are also fixed.

    Signed-off-by: Michael Buesch
    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Michael Buesch
     

07 Apr, 2009

1 commit

  • PCI parallel port devices can IRQ share so we should stop them hogging
    the line and making a mess on modern PC systems. We know the sharing
    side works as the PCMCIA driver has shared the parallel port IRQ for
    some time.

    Signed-off-by: Alan Cox
    Signed-off-by: Linus Torvalds

    Alan Cox
     

24 Oct, 2008

1 commit


27 Jul, 2008

1 commit

  • Use the 2nd BAR for the oxsemi_840 chip as BAR for base_hi. Tested with:

    Parallel controller [0701]: Oxford Semiconductor Ltd VScom 011H-EP1
    1 port parallel adaptor [1415:8403] (prog-if 03 [IEEE1284])

    This patch is needed to make 'TRISTATE' work with that adaptor.

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

    Bernhard Walle
     

30 Apr, 2008

1 commit


29 Apr, 2008

1 commit

  • Wrap PNP probe code in #ifdef CONFIG_PNP. We already do the same for
    CONFIG_PCI.

    Without this change, we'll have unresolved references to pnp_get_resource()
    function when CONFIG_PNP=n. (This is a new interface that's not in mainline
    yet.)

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

    Bjorn Helgaas
     

05 Apr, 2008

1 commit

  • Commit f63fd7e299ee13da071ecfce2b90b58c5e1562b1 ("parport_pc: detection
    for SuperIO IT87XX POST") only released the IO port region on success,
    not when the probe for the IT87XX chip failed.

    That caused not only a reserved region to leak, but also caused an oops
    when the driver module was unloaded and somebody tried to cat
    /proc/ioports - because the string that was assigned to the IO port
    region was a static string in the module virtual address area.

    Reported-by: Lubos Lunak
    Cc: Jan Kara
    Cc: Petr Cvek
    Acked-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

14 Feb, 2008

1 commit

  • Fix section warning for parport_ECP_supported(); it's called from a routine
    exported to modules, so it can't be removed with __devinit section pruning.

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

    David Brownell
     

07 Feb, 2008

2 commits


24 Oct, 2007

1 commit


01 Aug, 2007

1 commit

  • http://bugzilla.kernel.org/show_bug.cgi?id=8821 reports a might_sleep()
    warning due to parport_pc_exit() running platform_device_unregister() while
    holding ports_lock.

    Just remove the locking: nobody else can access ports_list during module_exit.

    Cc: "Mike Sharkey"
    Cc: Tim Waugh
    Cc: Stas Sergeev
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

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