1. 09 Dec, 2004 9 commits
    • Greg Kroah-Hartman's avatar
      d5acaac4
    • Greg Kroah-Hartman's avatar
      79477b6b
    • David Brownell's avatar
      [PATCH] USB: sl811-hcd driver, replaces hc_sl811 · d3e8ea41
      David Brownell authored
      This patch provides a new "sl811-hcd" driver, which should replace the older
      one from Cypress (which has been broken for ages, even on SA-1100).
      
      Key features of this new driver:
      
       - Small, relatively tight code;
       - Uses the 2.6 platform_device and usbcore HCD infrastructures;
       - Compiles (x86, ARM) and works (ARM/PXA255);
       - Passed a day's worth of "usbtest" stress testing (on 2.6.9).
      
      I've enumerated over a dozen different devices with it, and actually tested
      mice, hubs, keyboards, and usb-storage.  There's a hardware erratum that
      prevents this chip from working with certain external hubs.  There's scope
      yet for some performance work here; and some IRQ quirks linger.
      
      This PIO-only driver should serve as a model for some other non-DMA USB host
      controllers (like isp1161, isp1362, td243) used in embedded Linuxes ... in
      particular, showing how to maintain async and periodic schedules without
      pointless emulation of OHCI DMA queues and/or registers.
      
      The driver should handle ISO, but since it doesn't implement the special
      urb->iso_frame_desc[] "pseudo-queue" model (and since Linux can't guarantee
      low enough IRQ latencies!), ISO is disabled.
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      d3e8ea41
    • David Brownell's avatar
      [PATCH] USB: OHCI "resume"/smp fix · f977cda1
      David Brownell authored
      I noticed an SMP deadlock when connecting devices to
      an autosuspended root hub.
      
      This fix just makes the OHCI hub status reporting logic (used
      exclusively by khubd) be a NOP until after the worker task
      (keventd) finishes resuming the port, so they can't deadlock.
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      f977cda1
    • Adrian Bunk's avatar
      [PATCH] USB uhci-debug.c: remove an unused function (fwd) · 373390dc
      Adrian Bunk authored
      The patch below removes an unused function from
      drivers/usb/host/uhci-debug.c
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      373390dc
    • David Brownell's avatar
      [PATCH] USB: EHCI qh update race fix · 6679699c
      David Brownell authored
      This makes the EHCI driver stop trying to update a live QH ... it's
      not like OHCI, that can't be done safely because of a hardware race.
      The fix:
      
          - Unlinks the QH before updating it; only the tail can safely be
            updated "live", not the queue head.  The async schedule (all
            control/bulk QHs) and periodic schedule (interrupt QH) work a
            bit differently ... high bandwidth transfers will hiccup.
      
          - Moves "update QH" and "clear toggle" logic into one new
            qh_refresh() routine, used in several places.
      
      The race shows readily enough under load with the right hardware.
      The controller silicon might be relatively slow, or maybe it's the
      bus that's slow/busy:
      
      	Host			Controller
      	---			----------
      				reads two TD pointers
      	update two TD pointers
      	wmb()
      	activate QH
      				reads rest of QH
      
      Net result is that the HC treated old TD pointers as valid, and things
      started misbehaving.  Busy controllers would misbehave worse; some systems
      wouldn't notice more than a slowdown, especially with light USB loads.
      
      This affects behavior in two cases.  The uncommon one is when an endpoint
      gets an error and halts.  The more common one happens when the controller
      runs off the end of its queue and overlays an inactive "dummy" TD into
      the QH ... something the spec says shouldn't happen, but which more
      silicon seems to be doing.  (Presumably to reduce DMA chatter.)
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      6679699c
    • Alan Stern's avatar
      [PATCH] USB UHCI: minor bugfix for port resume · 114c173d
      Alan Stern authored
      This patch fixes two small problems in the port suspend/resume handling
      for the UHCI driver.  There were a couple of spots where I neglected to
      store I/O addresses in unsigned _long_ variables (required for 64-bit
      architectures).  And it turns out the host controller will continue to
      indicate a resume is in progress for a few microseconds after it has been
      turned off, so an extra delay is needed.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      114c173d
    • Randy Dunlap's avatar
      [PATCH] PCI/x86-64: build with PCI=n · d84ab56d
      Randy Dunlap authored
      Fix (most of) x64-64 kernel build for CONFIG_PCI=n.  Fixes these 2 errors:
      
      1. arch/x86_64/kernel/built-in.o(.text+0x8186): In function `quirk_intel_irqbalance':
      : undefined reference to `raw_pci_ops'
      
      Kconfig change:
      2. arch/x86_64/kernel/pci-gart.c:194: error: `pci_bus_type' undeclared (first use in this function)
      
      Still does not fix this one:
      drivers/built-in.o(.text+0x3dcd8): In function `pnpacpi_allocated_resource':
      : undefined reference to `pcibios_penalize_isa_irq'
      Signed-off-by: default avatarRandy Dunlap <rddunlap@osdl.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      d84ab56d
    • Pavel Pisa's avatar
      [PATCH] VM86 interrupt emulation fix · 90732a8a
      Pavel Pisa authored
      Fixes faulty IRQ_NONE value returning by VM86 irq_handler().
      
      The IRQ source is blocked as well until userspace confirms processing.
      This should enable to use VM86 code even for level triggered interrupt
      sources. 
      Signed-off-by: default avatarPavel Pisa <pisa@cmp.felk.cvut.cz>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      90732a8a
  2. 08 Dec, 2004 10 commits
  3. 07 Dec, 2004 21 commits
    • Nick Piggin's avatar
      [PATCH] Fix broken domain debugging (aka "isolcpus option broken") · bea1dc68
      Nick Piggin authored
      Fix an oops in sched_domain_debug when using the isolcpus= option.
      
      Also move a debug check for validating groups into the "for-each-group"
      loop, where it should be.
      Signed-off-by: default avatarNick Piggin <nickpiggin@yahoo.com.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      bea1dc68
    • Linus Torvalds's avatar
      Revert isolcpus option fix, pending better fix from Nick. · d6f0f257
      Linus Torvalds authored
      The real bug was in the debugging code, not the actual domain data
      structure setup.
      
      Cset exclude: sivanich@sgi.com[torvalds]|ChangeSet|20041207160443|30564
      d6f0f257
    • Linus Torvalds's avatar
      Merge bk://kernel.bkbits.net/davem/net-2.6 · cb746226
      Linus Torvalds authored
      into ppc970.osdl.org:/home/torvalds/v2.6/linux
      cb746226
    • Patrick McHardy's avatar
      [PKT_SCHED]: Fix hard freeze with QoS in 2.6.10-rc3 · 81563af3
      Patrick McHardy authored
      The problem is in tcf_action_copy_stats, it assumes a->priv has
      the same layout as struct tcf_act_hdr, which is not true for
      struct tcf_police. This patch rearranges struct tcf_police to
      match tcf_act_hdr.
      Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      81563af3
    • Mitchell Blank Jr.'s avatar
    • David S. Miller's avatar
      Merge nuts.davemloft.net:/disk1/BK/sparcwork-2.6 · a886eaab
      David S. Miller authored
      into nuts.davemloft.net:/disk1/BK/sparc-2.6
      a886eaab
    • Linus Torvalds's avatar
      Merge bk://gkernel.bkbits.net/libata-2.6 · dcd9a626
      Linus Torvalds authored
      into ppc970.osdl.org:/home/torvalds/v2.6/linux
      dcd9a626
    • Douglas Gilbert's avatar
      [PATCH] off-by-1 libata-scsi INQUIRY VPD pages 0x80 and 0x83 · 21d3de02
      Douglas Gilbert authored
      I have some code (in sginfo) that requests the first 4 bytes
      of SCSI INQUIRY VPD pages to get their length then asks for
      that exact length in a follow up request to fetch the payload.
      Just like I saw with 36 byte standard INQUIRYs (no fixed)
      I get a buffer  full or zeroes.
      
      BTW SCSI standards dictate that in situations where the allocation
      length (in the cdb) is less than what is needed that what can be
      sent shall be sent (i.e. truncated and without any error indication
      or modification to the part of the response returned).
      In other words it is up the the application client to take remedial
      action.
      
      Changelog:
         - fix off-by-1 allocation length issue with SCSI
           INQUIRY VPD pages 0x80 and 0x83
      Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
      21d3de02
    • Jeff Garzik's avatar
      [libata] only DMA map data for DMA commands (fix >=4GB bug) · 046de9be
      Jeff Garzik authored
      libata made the assumption that (for PIO commands in this case)
      it could modify DMA memory at the kernel-virtual address, after
      mapping this.  This is incorrect, and fails on e.g. platforms that
      copy DMA memory back and forth (swiotlb on Intel EM64T and IA64).
      
      Remove this assumption by ensuring that we only call the DMA mapping
      routines if we really are going to use DMA for data xfer.
      
      Also:  remove a bogus WARN_ON() in ata_sg_init_one() which caused
      bug reports (but no problems).
      046de9be
    • Linus Torvalds's avatar
      Revert recent ext3_dx_readdir changes · 5c6b5243
      Linus Torvalds authored
      They turn out to be buggy, and result in the same filename being
      reported twice when htree directory indexing is enabled.
      
      Thanks for Kris Karas for helping chase it down. Also reported
      by Holger Kiehl.
      
      Cset exclude: akpm@osdl.org[torvalds]|ChangeSet|20041108040801|49372
      5c6b5243
    • Gerd Knorr's avatar
      [PATCH] msp3400 quick fix · 29770305
      Gerd Knorr authored
      The new "simpler" opmode added by the recent merge from ivtv breaks msp3400
      support for other tv cards.  Not figured yet why.
      
      This patch disables the "simpler" mode by default (can still be enabled by
      insmod option) as quick fix for 2.6.10.
      Signed-off-by: default avatarGerd Knorr <kraxel@bytesex.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      29770305
    • Michael Hunold's avatar
      [PATCH] dvb: follow changes in dvb-ttpci and budget drivers · 919243ea
      Michael Hunold authored
      - [DVB] dvb-ttpci, budget: updated to fix problems with some CAMs on KNC1
        cards
      
      - [DVB] dvb-ttpci, budget: make needlessly global code static, whitespace
        and newline cleanups, thanks to Adrian Bunk <bunk@stusta.de>
      
      - [DVB] dvb-ttpci, budget: follow frontend changes in driver
      
      - [DVB] dvb-ttpci, budget: fix drivers to use new
        wait_for_debi_done(...,nobusywait) routine.
      Signed-off-by: default avatarMichael Hunold <hunold@linuxtv.org>
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      919243ea
    • Michael Hunold's avatar
      [PATCH] dvb: remove dead files · f569744d
      Michael Hunold authored
      - [DVB] remove obsolete grundig_29504-401, grundig_29504-491, alps_tdlb7 and
        alps_tdmb7 frontend drivers
      
      - [DVB] remove sp887x firmware file, it's unused thanks to firmware_class
      Signed-off-by: default avatarMichael Hunold <hunold@linuxtv.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      f569744d
    • Michael Hunold's avatar
      [PATCH] dvb: core changes · 9d49da8a
      Michael Hunold authored
      - [DVB] dvb-core: follow Linux coding style, kill dvb_ksyms.c and move the
        EXPORT_SYMBOLs to the files where the functions are, thanks to Adrian Bunk
        <bunk@stusta.de>
      
      - [DVB] dvb-core: #if 0'ing unused code, make needlessly global code static,
        whitespace and newline cleanups, thanks to Adrian Bunk <bunk@stusta.de>
      
      - [DVB] dvb_ca_en50221.c: support for KNC1/Cinergy CI modules, fix
        segfaults, enhanced poll_slot_status to support non-IRQ interfaces, Fix
        module usage count problem
      
      - [DVB] dvb-frontend.c: core changes to support the refactorized frontend
        drivers
      Signed-off-by: default avatarMichael Hunold <hunold@linuxtv.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      9d49da8a
    • Michael Hunold's avatar
      [PATCH] dvb: dibusb driver update · b0da8f73
      Michael Hunold authored
      - [DVB] dibusb: added remote control event handling, thanks to David
        Matthews.
      
      - [DVB] dibusb: added support for special Artec devices (with AN2235 usb
        controller)
      
      - [DVB] dibusb: enable several new devices (even the broken Artec T1)
      
      - [DVB] dibusb: #if 0'ing unused code
      
      - [DVB] dibusb: follow frontend changes
      Signed-off-by: default avatarMichael Hunold <hunold@linuxtv.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      b0da8f73
    • Michael Hunold's avatar
      [PATCH] dvb: Cinergy T2 update · c26eb345
      Michael Hunold authored
      - [DVB] cinergyT2: update driver to exploit hardware capabilities
      Signed-off-by: default avatarMichael Hunold <hunold@linuxtv.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      c26eb345
    • Michael Hunold's avatar
      [PATCH] dvb: follow frontend changes in drivers · ea609508
      Michael Hunold authored
      - [DVB] dvb-ttusb-dec, dvb-ttusb-budget, skystar2, bt878 + dvb-bt8xx: follow
        frontend changes in driver
      
      - [DVB] DST isn't a real frontend, it's an interface to a frontend
        microcontroller, so move the hardware dependend stuff to the right place
      Signed-off-by: default avatarMichael Hunold <hunold@linuxtv.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      ea609508
    • Michael Hunold's avatar
      [PATCH] dvb: saa7146 changes · 9edd313d
      Michael Hunold authored
      - [DVB] saa7146_core.c, saa7146_video.c: MODULE_PARM -> module_param, added
        non-busy waiting option for saa7146_wait_for_debi_done(), make needlessly
        global code static and remove unused code (thanks to Adrian Bunk
        <bunk@stusta.de)
      
      - [DVB] saa7146_core.c: dev is kmalloc'ed twice, add missing
        pci_disable_device(), rename goto labels, propagate the error code from the
        underlying layers when possible, pci_request_region replaces
        request_mem_region, other minor cleanups (thanks to Francois Romieu)
      
      - [DVB] saa7146_fops.c, saa7146_i2c.c, saa7146_hlp.c, saa7146_vbi.c: make
        needlessly global code static, remove unused code (thanks to Adrian Bunk
        <bunk@stusta.de>)
      Signed-off-by: default avatarMichael Hunold <hunold@linuxtv.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      9edd313d
    • Michael Hunold's avatar
      [PATCH] dvb: frontend driver refactoring · 780a9fc0
      Michael Hunold authored
      - [DVB] reafactor or add the following frontend drivers: at76c651, cx22700,
        ves1x93, ves1820, tda80xx, tda8083, cx22702, tda1004x, tda10021, cx24110,
        dvb_dummy_fe, l64781, mt312, mt352, stv0299, sp887x, stv0297, nxt6000,
        sp8870
      
      - [DVB] remove dib3000mb from frontends, it's handled by the hw dependent
        driver now
      Signed-off-by: default avatarMichael Hunold <hunold@linuxtv.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      780a9fc0
    • Michael Hunold's avatar
      [PATCH] dvb: collateral frontend changes · 53a618cd
      Michael Hunold authored
      - [DVB] get_dvb_firmware: rework to reflect new frontend design, added
        additional firmware location
      
      - [DVB] Kconfig and Makefile changes all over the place, remove Makefile.lib
      Signed-off-by: default avatarMichael Hunold <hunold@linuxtv.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      53a618cd
    • Michael Hunold's avatar
      [PATCH] dvb: documentation update · 1a6b6b96
      Michael Hunold authored
      Start of a big DVB update.
      
      
      The reasons for revamping the DVB frontend architecture:
      
      Just as analog TV cards, DVB cards need some sort of tuner to tune to the
      desired frequency of the digital transponder.  Tuning alone doesn't give you a
      digital DVB datastream, however, you need a demodulator as well.  The
      combination of tuner and demodulator is called frontend in the DVB world.
      Tuner and demodulator are both accessed via the serial i2c bus on all DVB
      cards out there.  So, technically a frontend consists of two i2c helper
      chipsets.
      
      In former times when there was only a handful of different DVB cards, the
      frontend was encapsulated in one tin box.  Some people had the idea that there
      should be one "frontend driver" instead of dedicated tuner and demodulator
      drivers.  A bad idea.
      
      As time went on, different manufacturers used the same tuner and demodulator
      combination, but used a different wiring for the tuner or did other technical
      changes.  The only possibility to support different cards with one combined
      frontend driver was to add hardware dependent tuner code inside the generic
      i2c frontend drivers.  Yuck.
      
      So there was a need for communication between the i2c frontend driver and the
      hardware depenedent driver, for example to exchange initialization code for
      the tuner.  Unfortunately, the i2c infrastructure is one way, from the i2c
      client to the i2c adapter using a non-typesafe ioctl() like interface, which
      is ugly by itself.  Greg K-H and others refused the idea to add an iotctl()
      like interface from the i2c adapter to the i2c client and instead proposed to
      use a typesafe interface instead.  We all agreed with that.
      
      The existing i2c infrastructure heavily depends on the probing facility, ie.
      clients probe for their existence on i2c busses.  This is dumb for most i2c
      busses out there that sit on dedicated hardware.  A DVB card is uniquely
      identified with pci or usb subvendor and subsystem ids, so on that particular
      bus we exactly *know* which kinds of i2c helper chipsets sit on there.
      
      Up to now this wasn't a problem, because we could fix all conflicts manually
      until half a year ago.  By that date, we found two different DVB designs which
      used different demodulators that unfortunately use the same i2c address and
      which cannot be distinguished by hardware tricks (ie.  different number of
      registers, some fixed hw dependent register,...)
      
      Getting a usable DVB card depended on the load order of the modules, because
      the i2c core probed the demodulator drivers one after another and the first
      one won the race.  Compiling all drivers statically into the kernel resulted
      in non-working cards.
      
      Our solution is as follows: we agreed to keep the basic underlying kernel i2c
      infrastructure, but we decided not to register our bussed and chipsets to the
      kernel i2c "probing" infrastructure.  Instead, we killed the tuner parts of
      the frontend drivers and put them into the dedicated hardware drivers (this is
      were they technically belong, they are highly hardware dependent) and we
      changed the frontend drivers to pure demodulator drivers (which are hardware
      independend).  There is now a type-safe functional dependency between the
      drivers and the demodulator drivers, the drivers explicitely ask the
      demodulator drivers to attach to their i2c bus.  The only negative aspect of
      that approach is that for some hardware there are now more dependencies to
      demodulator drivers than needed, ie.  a small amount of memory is wasted.
      
      This patch:
      
      - [DVB] cards.txt: added the USB devices to the card-list
      - [DVB] README.dibusb: follow changes in dibusb-driver
      Signed-off-by: default avatarMichael Hunold <hunold@linuxtv.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      1a6b6b96