10 Jul, 2007

40 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: (31 commits)
    firewire: fw-sbp2: fix DMA mapping of management ORBs
    firewire: fw-sbp2: fix DMA mapping of command ORBs
    firewire: fw-sbp2: fix DMA mapping of S/G tables
    firewire: fw-sbp2: add a boundary check
    firewire: fw-sbp2: correctly align page tables
    firewire: fw-sbp2: memset wants string.h
    firewire: fw-sbp2: use correct speed in sbp2_agent_reset
    firewire: fw-sbp2: correctly dereference by container_of
    firewire: Document userspace ioctl interface.
    firewire: fw-sbp2: implement nonexclusive login
    firewire: fw-sbp2: let SCSI shutdown commands through before logout
    firewire: fw-sbp2: implement max sectors limit for some old bridges
    firewire: simplify a struct type
    firewire: support S100B...S400B and link slower than PHY
    firewire: optimize gap count with 1394b leaf nodes
    firewire: remove unused macro
    firewire: missing newline in printk
    firewire: fw-sbp2: remove unused struct member
    ieee1394: remove old isochronous ABI
    ieee1394: sbp2: change some module parameters from int to bool
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
    HID: handle cases of volume knobs generating relative values
    HID: Logitech keyboard 0xc311 needs reset leds quirk
    HID: support for logitech cordless desktop LX500 special mapping
    HID: fix autocentering of PID devices
    HID: separate quirks for report descriptor fixup
    HID: Add NOGET quirk for all NCR devices
    HID: support for Petalynx Maxter remote control
    HID: fix mismatch between hid-input HUT find/search mapping and the HUT
    HID: support for Gameron dual psx adaptor
    USB HID: avoid flush_scheduled_work()
    HID: Use menuconfig objects
    HID: force hid-input for Microsoft SideWinder GameVoice device
    HID: input mapping for Chicony KU-0418 tactical pad
    HID: make debugging output runtime-configurable

    Linus Torvalds
     
  • * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (75 commits)
    Ethernet driver for EISA only SNI RM200/RM400 machines
    Extract chip specific code out of lasi_82596.c
    ehea: Whitespace cleanup
    pasemi_mac: Fix TX interrupt threshold
    spidernet: Replace literal with const
    r8169: perform RX config change after mac filtering
    r8169: mac address change support
    r8169: display some extra debug information during startup
    r8169: add endianess annotations to [RT]xDesc
    r8169: align the IP header when there is no DMA constraint
    r8169: add bit description for the TxPoll register
    r8169: cleanup
    r8169: remove the media option
    r8169: small 8101 comment
    r8169: confusion between hardware and IP header alignment
    r8169: merge with version 8.001.00 of Realtek's r8168 driver
    r8169: merge with version 6.001.00 of Realtek's r8169 driver
    r8169: prettify mac_version
    r8169: populate the hw_start handler for the 8110
    r8169: populate the hw_start handler for the 8168
    ...

    Linus Torvalds
     
  • The CPU must not touch the buffer after it was DMA-mapped.

    Signed-off-by: Stefan Richter
    Signed-off-by: Kristian Høgsberg

    Stefan Richter
     
  • The CPU must not touch the buffer after it was DMA-mapped.

    Signed-off-by: Stefan Richter
    Signed-off-by: Kristian Høgsberg

    Stefan Richter
     
  • - The CPU must not touch the buffer after it was DMA-mapped.
    - The size argument of dma_unmap_single(...page_table...) was bogus.
    - Move a comment closer to the code to which it refers to.

    Signed-off-by: Stefan Richter
    Signed-off-by: Kristian Høgsberg

    Stefan Richter
     
  • Add rudimentary check for the case that the page table overflows due to
    merging of s/g elements by the IOMMU. This would have lead to
    overwriting of arbitrary memory.

    After this change I expect that an offending command will be
    unsuccessfully retried until the scsi_device is taken offline by SCSI
    core. It's a border case and not worth to implement a recovery
    strategy.

    Signed-off-by: Stefan Richter
    Acked-by: Kristian Høgsberg

    Stefan Richter
     
  • This is required per SBP-2 clause 5.2.

    Signed-off-by: Stefan Richter
    Acked-by: Kristian Høgsberg

    Stefan Richter
     
  • Signed-off-by: Stefan Richter
    Acked-by: Kristian Høgsberg

    Stefan Richter
     
  • noticed by Jay Fenlason

    Signed-off-by: Stefan Richter
    Acked-by: Kristian Høgsberg

    Stefan Richter
     
  • Replace a cast with a container_of(). As long as nobody reorders the
    structure elements, they do the same thing, but container_of() is more
    readable.

    Signed-off-by: Stefan Richter (added complete_command_orb)
    Acked-by: Kristian Høgsberg

    Jay Fenlason
     
  • Signed-off-by: Stefan Richter
    Signed-off-by: Kristian Høgsberg

    Stefan Richter
     
  • This affects of course only the "soft shutdown" case, e.g. "modprobe -r
    firewire-sbp2", while it doesn't matter for hot unplug.

    Signed-off-by: Stefan Richter
    Signed-off-by: Kristian Høgsberg

    Stefan Richter
     
  • This currently only affects one bridge in the hardwired blacklist.
    I don't own one of those, hence haven't tested it.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • cleanup after "firewire: support S100B...S400B and link slower than PHY"

    Signed-off-by: Stefan Richter
    Signed-off-by: Kristian Høgsberg

    Stefan Richter
     
  • Use a speed probe to determine the speed over 1394b buses and of nodes
    which report a link speed less than their PHY speed.

    Log the effective maximum speed of newly created nodes in dmesg.

    Also, read the config ROM (except bus info block) at the maximum speed
    rather than S100. This isn't a real optimization though because we
    still only use quadlet read requests for the entire ROM.

    The patch also adds support for S1600 and S3200, although such hardware
    does not exist yet.

    Signed-off-by: Stefan Richter
    Signed-off-by: Kristian Høgsberg

    Stefan Richter
     
  • Table-based gap count optimization cannot be used if 1394b repeater PHYs
    are present. But it does work with 1394b leaf nodes.

    Signed-off-by: Stefan Richter
    Signed-off-by: Kristian Høgsberg

    Stefan Richter
     
  • Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Also remove some errno printouts which will be shown by infrastructure
    code anyway.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • cleanup after support of single-buffer requests was dropped

    Signed-off-by: Stefan Richter
    Signed-off-by: Kristian Hoegsberg

    Stefan Richter
     
  • Based on patch "the scheduled removal of RAW1394_REQ_ISO_{SEND,LISTEN}"
    from Adrian Bunk, November 20 2006.

    This patch also removes the underlying facilities in ohci1394 and
    disables them in pcilynx. That is, hpsb_host_driver.devctl() and
    hpsb_host_driver.transmit_packet() are no longer used for iso reception
    and transmission.

    Since video1394 and dv1394 only work with ohci1394 and raw1394's rawiso
    interface has never been implemented in pcilynx, pcilynx is now no
    longer useful for isochronous applications.

    raw1394 will still handle the request types but will complete the
    requests with errors that indicate API version conflicts.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • This is upwards compatible, except that integer values other than 0 or 1
    are no longer accepted. But values like "Y", "N", "no", "nnoooh!" work
    now.

    Also, improve a comment on the serialize_io parameter and make the
    ORB_SET_EXCLUSIVE macro ultra-safe.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Association of a host device with a node on NUMA machines optimizes
    allocations of skbs given from the networking stack to eth1394.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • After ieee1394 was converted away from class_device like the networking
    subsystem was already in 2.6.21, eth1394's device may point to the
    fw-host device as its parent again like in 2.6.20.

    This affects userspace tools which examine the sysfs representation of
    eth1394's device.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Remove the global nodemgr_serialize mutex which enclosed most of the
    host thread event loop. This allows for parallelism between several
    host adapter cards.

    Properly serialize the driver hooks .update(), .suspend(), .resume(),
    and .remove() by means of device->sem. These hooks can be called from
    outside the host threads' contexts.

    Get() and put() the device.driver when calling its hooks.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Here is a straightforward conversion to "struct device". The "struct
    class_device" will be removed from the kernel.

    It seems to work fine for me with and without CONFIG_SYSFS_DEPRECATED
    set.

    Signed-off-by: Stefan Richter

    Kay Sievers
     
  • I was told that only i386 aligns 64 bit integers at 4 bytes boundaries
    while all other architectures (32 bit architectures with 64 bit
    siblings) align it on 8 bytes boundaries.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Pointed out by Arnd Bergmann: PPC32 aligns this at 64bit, IA32 packs
    it. A kernel-wide available __compat_u64 which is 4-byte aligned on
    AMD64 and IA64 would be nicer though.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Add compat_ioctl. Although all structures are more or less same,
    raw1394_iso_packets got pointer inside, and raw1394_cycle_timer got unwanted
    padding in the middle. I did not add any translation for ioctls passing array
    of integers around as integers seem to have same size (32 bits) on all
    architectures supported by Linux.

    Signed-off-by: Petr Vandrovec
    Acked-by: Dan Dennedy
    Signed-off-by: Stefan Richter (split into 3 patches)

    Petr Vandrovec
     
  • * write(fd, buf, 52) from 32bit app was returning 56. Most of callers did not
    care, but some (arm registration) did, and anyway it looks bad if request for
    writing 52 bytes returns 56. And returning sizeof anything in 'int' is not
    good as well. So all functions now return '0' instead of
    sizeof(struct raw1394_request) on success, and write() itself provides correct
    return value (it just returns value it was asked to write on success as raw1394
    does not do any partial writes at all).

    * Related to this was problem that write() could have returned 0 when kernel
    state would become corrupted and moved to different state than
    opened/initialized/connected. Now it returns -EBADFD which seemed appropriate.

    Signed-off-by: Petr Vandrovec
    Acked-by: Dan Dennedy
    Signed-off-by: Stefan Richter (split into 3 patches)

    Petr Vandrovec
     
  • read() always failed with -EFAULT. This was happening due to
    raw1394_compat_read copying data to wrong location - access_ok always
    failed as 'r' is kernel address, not user. Whole function just tried to
    copy data from 'r' to 'r', which is not good.

    Signed-off-by: Petr Vandrovec
    Acked-by: Dan Dennedy
    Signed-off-by: Stefan Richter (split into 3 patches)

    Petr Vandrovec
     
  • to clarify who is supposed to set what

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • spotted by Robert P. J. Day

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • ide_set_dma no longer has any modular user.

    Signed-off-by: Adrian Bunk
    Signed-off-by: Bartlomiej Zolnierkiewicz

    Adrian Bunk
     
  • Backport short cables support from pata_via.c.

    This patch should allow UDMA > 2 modes on Acer Ferrari 3400.

    Signed-off-by: Bartlomiej Zolnierkiewicz
    Acked-by: Sergei Shtylyov

    Bartlomiej Zolnierkiewicz
     
  • Backport short cables support from pata_sis.c.

    This patch allows UDMA > 2 modes on ASUS A6K.

    Thanks to testing this patch goes out to Jiri Stavinoha.

    Signed-off-by: Bartlomiej Zolnierkiewicz
    Acked-by: Sergei Shtylyov

    Bartlomiej Zolnierkiewicz
     
  • Backport short cables support from pata_ali.c and while at it cleanup
    existing cable detection code.

    This patch should allow UDMA > 2 modes on HP Pavilion N5430 and Fujitsu P2000.

    Signed-off-by: Bartlomiej Zolnierkiewicz
    Acked-by: Sergei Shtylyov

    Bartlomiej Zolnierkiewicz
     
  • Backport short cables support from ata_piix.c.

    This patch should allow UDMA > 2 modes on:
    - Acer 5602WLMi
    - Acer 3682WLMi
    - Asus W5F
    - Acer Aspire 2023WLMi

    Signed-off-by: Bartlomiej Zolnierkiewicz
    Acked-by: Sergei Shtylyov

    Bartlomiej Zolnierkiewicz
     
  • This patch allows users to override both host and device side cable detection
    with "ideX=ata66" kernel parameter. Thanks to this it should be now possible
    to use UDMA > 2 modes on systems (laptops mainly) which use short 40-pin cable
    instead of 80-pin one.

    Next patches add automatic detection of some systems using short cables.

    Changes:

    * Rename hwif->udma_four to hwif->cbl and make it u8.

    * Convert all existing users accordingly (use ATA_CBL_* defines while at it).

    * Add ATA_CBL_PATA40_SHORT support to ide-iops.c:eighty_ninty_three().

    * Use ATA_CBL_PATA40_SHORT for "ideX=ata66" kernel parameter.

    Signed-off-by: Bartlomiej Zolnierkiewicz
    Reviewed-by: Sergei Shtylyov

    Bartlomiej Zolnierkiewicz
     
  • ide-timing.h:

    * remove handling of DMA modes from ide_find_best_mode() and rename it to
    ide_find_best_pio_mode()

    * drop no longer needed "map" argument from ide_find_best_pio_mode()
    and delete needless ->id check

    * remove no longer needed XFER_SWDMA and XFER_UDMA* defines

    au1xxx-ide.c:

    * use ide_max_dma_mode() instead of ide_find_best_mode()

    * remove needless CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA #ifdef

    amd74xx.c:

    * store UDMA masks in amd_ide_chip[] and while at it make "base" field
    to be u8 instead of unsigned long

    * convert the driver to use UDMA masks from amd_ide_chip[]

    * use ide_max_dma_mode() and ide_find_best_pio_mode() instead
    of ide_find_best_mode()

    * delete stale comment from amd74xx_ide_dma_check()

    * remove no longer needed AMD_UDMA* defines

    via82cxxx.c:

    * remove unused DISPLAY_VIA_TIMINGS define

    * store UDMA masks in via_isa_bridges[] and while at it make "flags" field
    to be u8 instead of u16

    * convert the driver to use UDMA masks from via_isa_bridges[]

    * use ide_max_dma_mode() and ide_find_best_pio_mode() instead
    of ide_find_best_mode()

    * remove no longer needed VIA_UDMA* defines

    pmac.c:

    * use ide_max_dma_mode() instead of ide_find_best_mode()

    There should be no functionality changes caused by this patch.

    Signed-off-by: Bartlomiej Zolnierkiewicz
    Reviewed-by: Sergei Shtylyov

    Bartlomiej Zolnierkiewicz