1. 03 12月, 2006 1 次提交
  2. 02 12月, 2006 36 次提交
    • A
      [PATCH] PHY: Add support for configuring the PHY connection interface · e8a2b6a4
      Andy Fleming 提交于
      Most PHYs connect to an ethernet controller over a GMII or MII
      interface.  However, a growing number are connected over
      different interfaces, such as RGMII or SGMII.
      
      The ethernet driver will tell the PHY what type of connection it
      is by setting it manually, or passing it in through phy_connect
      (or phy_attach).
      
      Changes include:
      * Updates to documentation
      * Updates to PHY Lib consumers
      * Changes to PHY Lib to add interface support
      * Some minor changes to whitespace in phy.h
      * gianfar driver now detects interface and passes appropriate
        value to PHY Lib
      Signed-off-by: NAndrew Fleming <afleming@freescale.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      e8a2b6a4
    • M
    • A
      [PATCH] forcedeth: add new NVIDIA pci ids · 52d78d63
      Ayaz Abdulla 提交于
      Add pci device ids for the NVIDIA MCP67 chip.
      Signed-off-by: NAyaz Abdulla <aabdulla@nvidia.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      52d78d63
    • C
      [PATCH] wext: extend MLME support · fe75f747
      Christian Lamparter 提交于
      This patch adds two new defines for the SIOCSIWMLME to cover all
      kinds MLMEs (well, except REASSOC) through a ioctl.
      Signed-off-by: NChristian Lamparter <chunkeey@web.de>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      fe75f747
    • L
      [PATCH] ieee80211: Drop and count duplicate data frames to remove 'replay detected' log messages · 837925df
      Larry Finger 提交于
      In the SoftMAC version of the IEEE 802.11 stack, not all duplicate messages are
      detected. For the most part, there is no difficulty; however for TKIP and CCMP
      encryption, the duplicates result in a "replay detected" log message where the
      received and previous values of the TSC are identical. This change adds a new
      variable to the ieee80211_device structure that holds the 'seq_ctl' value for
      the previous frame. When a new frame repeats the value, the frame is dropped and
      the appropriate counter is incremented.
      Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      837925df
    • D
      [PATCH] ieee80211: Move IV/ICV stripping into ieee80211_rx · c9308b06
      Daniel Drake 提交于
      This patch adds a host_strip_iv_icv flag to ieee80211 which indicates that
      ieee80211_rx should strip the IV/ICV/other security features from the payload.
      This saves on some memmove() calls in the driver and seems like something that
      belongs in the stack as it can be used by bcm43xx, ipw2200, and zd1211rw
      
      I will submit the ipw2200 patch separately as it needs testing.
      
      This patch also adds some sensible variable reuse (idx vs keyidx) in
      ieee80211_rx
      Signed-off-by: NDaniel Drake <dsd@gentoo.org>
      Acked-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      c9308b06
    • M
      [PATCH] 2.6.18: sb1250-mac: Missing inclusions from <linux/phy.h> · 13df29f6
      Maciej W. Rozycki 提交于
       The <linux/phy.h> uses some types and macros defined in
      <linux/ethtool.h>, <linux/mii.h>, <linux/timer.h> and <linux/workqueue.h>,
      but fails to include these headers.
      Signed-off-by: NMaciej W. Rozycki <macro@linux-mips.org>
      
      patch-mips-2.6.18-20060920-include-phy-16
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      13df29f6
    • K
      Driver core: show drivers in /sys/module/ · e17e0f51
      Kay Sievers 提交于
      Show the drivers, which belong to the module:
        $ ls -l /sys/module/usbcore/drivers/
        hub -> ../../../bus/usb/drivers/hub
        usb -> ../../../bus/usb/drivers/usb
        usbfs -> ../../../bus/usb/drivers/usbfs
      Signed-off-by: NKay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      e17e0f51
    • D
      Driver core: platform_driver_probe(), can save codespace · c67334fb
      David Brownell 提交于
      This defines a new platform_driver_probe() method allowing the driver's
      probe() method, and its support code+data, to safely live in __init
      sections for typical system configurations.
      
      Many system-on-chip processors could benefit from this API, to the tune
      of recovering hundreds to thousands of bytes per driver.  That's memory
      which is currently wasted holding code which can never be called after
      system startup, yet can not be removed.   It can't be removed because of
      the linkage requirement that pointers to init section code (like, ideally,
      probe support) must not live in other sections (like driver method tables)
      after those pointers would be invalid.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      c67334fb
    • C
      driver core: Introduce device_move(): move a device to a new parent. · 8a82472f
      Cornelia Huck 提交于
      Provide a function device_move() to move a device to a new parent device. Add
      auxilliary functions kobject_move() and sysfs_move_dir().
      kobject_move() generates a new uevent of type KOBJ_MOVE, containing the
      previous path (DEVPATH_OLD) in addition to the usual values. For this, a new
      interface kobject_uevent_env() is created that allows to add further
      environmental data to the uevent at the kobject layer.
      Signed-off-by: NCornelia Huck <cornelia.huck@de.ibm.com>
      Acked-by: NKay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      8a82472f
    • C
      driver core: Introduce device_find_child(). · 5ab69981
      Cornelia Huck 提交于
      Introduce device_find_child() to match device_for_each_child().
      Signed-off-by: NCornelia Huck <cornelia.huck@de.ibm.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      5ab69981
    • B
      ACPI: Change ACPI to use dev_archdata instead of firmware_data · 465ae641
      Benjamin Herrenschmidt 提交于
      Change ACPI to use dev_archdata instead of firmware_data
      
      This patch changes ACPI to use the new dev_archdata on i386, x86_64
      and ia64 (is there any other arch using ACPI ?) to store it's
      acpi_handle.
      
      It also removes the firmware_data field from struct device as this
      was the only user.
      
      Only build-tested on x86
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Len Brown <lenb@kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      465ae641
    • B
      Driver core: add dev_archdata to struct device · c6dbaef2
      Benjamin Herrenschmidt 提交于
      Add arch specific dev_archdata to struct device
      
      Adds an arch specific struct dev_arch to struct device. This enables
      architecture to add specific fields to every device in the system, like
      DMA operation pointers, NUMA node ID, firmware specific data, etc...
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Acked-by: NAndi Kleen <ak@suse.de>
      Acked-By: NDavid Howells <dhowells@redhat.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      c6dbaef2
    • G
      Driver core: convert sound core to use struct device · d80f19fa
      Greg Kroah-Hartman 提交于
      Converts from using struct "class_device" to "struct device" making
      everything show up properly in /sys/devices/ with symlinks from the
      /sys/class directory.
      
      It also makes the struct sound_card to show up as a "real" device
      where all the different sound class devices are placed as childs
      and different card attribute files can hang off of. /sys/class/sound is
      still a flat directory, but the symlink targets of all devices belonging
      to the same card, point the the /sys/devices tree below the new card
      device object.
      
      Thanks to Kay for the updates to this patch.
      Signed-off-by: NKay Sievers <kay.sievers@novell.com>
      Acked-by: NJaroslav Kysela <perex@suse.cz>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      d80f19fa
    • G
      Driver core: convert fb code to use struct device · 78cde088
      Greg Kroah-Hartman 提交于
      Converts from using struct "class_device" to "struct device" making
      everything show up properly in /sys/devices/ with symlinks from the
      /sys/class directory.
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      78cde088
    • G
      Driver core: convert mmc code to use struct device · fcaf71fd
      Greg Kroah-Hartman 提交于
      Converts from using struct "class_device" to "struct device" making
      everything show up properly in /sys/devices/ with symlinks from the
      /sys/class directory.
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      fcaf71fd
    • G
      Driver core: convert tty core to use struct device · 01107d34
      Greg Kroah-Hartman 提交于
      Converts from using struct "class_device" to "struct device" making
      everything show up properly in /sys/devices/ with symlinks from the
      /sys/class directory.
      
      Also fixes up the isdn drivers that were putting something in the class
      device's directory.
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      01107d34
    • G
      Driver core: change misc class_devices to be real devices · 94fbcded
      Greg Kroah-Hartman 提交于
      This also ment that some of the misc drivers had to also be fixed
      up as they were assuming the device was a class_device.
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      94fbcded
    • G
      Driver Core: Move virtual_device_parent() to core.c · f0ee61a6
      Greg Kroah-Hartman 提交于
      It doesn't need to be global or in device.h
      
      
      Cc: Kay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      f0ee61a6
    • B
      Driver core: add notification of bus events · 116af378
      Benjamin Herrenschmidt 提交于
      I finally did as you suggested and added the notifier to the struct
      bus_type itself. There are still problems to be expected is something
      attaches to a bus type where the code can hook in different struct
      device sub-classes (which is imho a big bogosity but I won't even try to
      argue that case now) but it will solve nicely a number of issues I've
      had so far.
      
      That also means that clients interested in registering for such
      notifications have to do it before devices are added and after bus types
      are registered. Fortunately, most bus types that matter for the various
      usage scenarios I have in mind are registerd at postcore_initcall time,
      which means I have a really nice spot at arch_initcall time to add my
      notifiers.
      
      There are 4 notifications provided. Device being added (before hooked to
      the bus) and removed (failure of previous case or after being unhooked
      from the bus), along with driver being bound to a device and about to be
      unbound.
      
      The usage I have for these are:
      
       - The 2 first ones are used to maintain a struct device_ext that is
      hooked to struct device.firmware_data. This structure contains for now a
      pointer to the Open Firmware node related to the device (if any), the
      NUMA node ID (for quick access to it) and the DMA operations pointers &
      iommu table instance for DMA to/from this device. For bus types I own
      (like IBM VIO or EBUS), I just maintain that structure directly from the
      bus code when creating the devices. But for bus types managed by generic
      code like PCI or platform (actually, of_platform which is a variation of
      platform linked to Open Firmware device-tree), I need this notifier.
      
       - The other two ones have a completely different usage scenario. I have
      cases where multiple devices and their drivers depend on each other. For
      example, the IBM EMAC network driver needs to attach to a MAL DMA engine
      which is a separate device, and a PHY interface which is also a separate
      device. They are all of_platform_device's (well, about to be with my
      upcoming patches) but there is no say in what precise order the core
      will "probe" them and instanciate the various modules. The solution I
      found for that is to have the drivers for emac to use multithread_probe,
      and wait for a driver to be bound to the target MAL and PHY control
      devices (the device-tree contains reference to the MAL and PHY interface
      nodes, which I can then match to of_platform_devices). Right now, I've
      been polling, but with that notifier, I can more cleanly wait (with a
      timeout of course).
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      116af378
    • J
      PCI: irq: irq and pci_ids patch for Intel ICH9 · 3b59d52d
      Jason Gaston 提交于
      This updated patch adds the Intel ICH9 LPC and SMBus Controller DID's.
      Signed-off-by: NJason Gaston <jason.d.gaston@intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      3b59d52d
    • I
      PCI: switch pci_{enable,disable}_device() to be nestable · bae94d02
      Inaky Perez-Gonzalez 提交于
      Changes the pci_{enable,disable}_device() functions to work in a
      nested basis, so that eg, three calls to enable_device() require three
      calls to disable_device().
      
      The reason for this is to simplify PCI drivers for
      multi-interface/capability devices. These are devices that cram more
      than one interface in a single function. A relevant example of that is
      the Wireless [USB] Host Controller Interface (similar to EHCI) [see
      http://www.intel.com/technology/comms/wusb/whci.htm]. 
      
      In these kind of devices, multiple interfaces are accessed through a
      single bar and IRQ line. For that, the drivers map only the smallest
      area of the bar to access their register banks and use shared IRQ
      handlers. 
      
      However, because the order at which those drivers load cannot be known
      ahead of time, the sequence in which the calls to pci_enable_device()
      and pci_disable_device() cannot be predicted. Thus:
      
      1. driverA     starts     pci_enable_device()
      2. driverB     starts     pci_enable_device()
      3. driverA     shutdown   pci_disable_device()
      4. driverB     shutdown   pci_disable_device()
      
      between steps 3 and 4, driver B would loose access to it's device,
      even if it didn't intend to.
      
      By using this modification, the device won't be disabled until all the
      callers to enable() have called disable().
      
      This is implemented by replacing 'struct pci_dev->is_enabled' from a
      bitfield to an atomic use count. Each caller to enable increments it,
      each caller to disable decrements it. When the count increments from 0
      to 1, __pci_enable_device() is called to actually enable the
      device. When it drops to zero, pci_disable_device() actually does the
      disabling.
      
      We keep the backend __pci_enable_device() for pci_default_resume() to
      use and also change the sysfs method implementation, so that userspace
      enabling/disabling the device doesn't disable it one time too much.
      Signed-off-by: NInaky Perez-Gonzalez <inaky@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      bae94d02
    • J
      Altix: Initial ACPI support - ROM shadowing. · a2302c68
      John Keller 提交于
      Support a shadowed ROM when running with an ACPI capable PROM.
      
      Define a new dev.resource flag IORESOURCE_ROM_BIOS_COPY to
      describe the case of a BIOS shadowed ROM, which can then
      be used to avoid pci_map_rom() making an unneeded call to
      pci_enable_rom().
      Signed-off-by: NJohn Keller <jpk@sgi.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      a2302c68
    • J
      Altix: Add initial ACPI IO support · 8ea6091f
      John Keller 提交于
      First phase in introducing ACPI support to SN.
      In this phase, when running with an ACPI capable PROM,
      the DSDT will define the root busses and all SN nodes
      (SGIHUB, SGITIO). An ACPI bus driver will be registered
      for the node devices, with the acpi_pci_root_driver being
      used for the root busses. An ACPI vendor descriptor is
      now used to pass platform specific information for both
      nodes and busses, eliminating the need for the current
      SAL calls. Also, with ACPI support, SN fixup code is no longer
      needed to initiate the PCI bus scans, as the acpi_pci_root_driver
      does that.
      
      However, to maintain backward compatibility with non-ACPI capable
      PROMs, none of the current 'fixup' code can been deleted, though
      much restructuring has been done. For example, the bulk of the code
      in io_common.c is relocated code that is now common regardless
      of what PROM is running, while io_acpi_init.c and io_init.c contain
      routines specific to an ACPI or non ACPI capable PROM respectively.
      
      A new pci bus fixup platform vector has been created to provide
      a hook for invoking platform specific bus fixup from pcibios_fixup_bus().
      
      The size of io_space[] has been increased to support systems with
      large IO configurations.
      Signed-off-by: NJohn Keller <jpk@sgi.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      8ea6091f
    • M
      PCI: Replace HAVE_ARCH_PCI_MWI with PCI_DISABLE_MWI · edb2d97e
      Matthew Wilcox 提交于
      pSeries is the only architecture left using HAVE_ARCH_PCI_MWI and it's
      really inappropriate for its needs.  It really wants to disable MWI
      altogether.  So here are a pair of stub implementations for pci_set_mwi
      and pci_clear_mwi.
      
      Also rename pci_generic_prep_mwi to pci_set_cacheline_size since that
      better reflects what it does.
      Signed-off-by: NMatthew Wilcox <matthew@wil.cx>
      Cc: Paul Mackerras <paulus@samba.org>
      Acked-by: NJeff Garzik <jeff@garzik.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      edb2d97e
    • M
      PCI: Use pci_generic_prep_mwi on sparc64 · ebf5a248
      Matthew Wilcox 提交于
      The setting of the CACHE_LINE_SIZE register in sparc64's pci
      initialisation code isn't quite adequate as the device may have
      incompatible requirements.  The generic code tests for this, so switch
      sparc64 over to using it.
      
      Since sparc64 has different L1 cache line size and PCI cache line size,
      it would need to override the generic code like i386 and ia64 do.  We
      know what the cache line size is at compile time though, so introduce a
      new optional constant PCI_CACHE_LINE_BYTES.
      Signed-off-by: NMatthew Wilcox <matthew@wil.cx>
      Signed-off-by: NDavid Miller <davem@davemloft.net>
      Acked-by: NJeff Garzik <jeff@garzik.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      ebf5a248
    • M
      PCI: Use pci_generic_prep_mwi on ia64 · 3efe2d84
      Matthew Wilcox 提交于
      The pci_generic_prep_mwi() code does everything that pcibios_prep_mwi()
      does on ia64.  All we need to do is be sure that pci_cache_line_size
      is set appropriately, and we can delete pcibios_prep_mwi().
      
      Using SMP_CACHE_BYTES as the default was wrong on uniprocessor machines
      as it is only 8 bytes.  The default in the generic code of L1_CACHE_BYTES
      is at least as good.
      Signed-off-by: NMatthew Wilcox <matthew@wil.cx>
      Acked-by: NJeff Garzik <jeff@garzik.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      3efe2d84
    • M
      PCI: Make some MSI-X #defines generic · e65e5fb5
      Michael Ellerman 提交于
      Move some MSI-X #defines into pci_regs.h so they can be used
      outside of drivers/pci.
      Signed-off-by: NMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      e65e5fb5
    • A
      USB: keep count of unsuspended children · ee49fb5d
      Alan Stern 提交于
      This patch (as818b) simplifies autosuspend processing by keeping track
      of the number of unsuspended children of each USB hub.  This will
      permit us to avoid a good deal of unnecessary work all the time; we
      will no longer have to create a bunch of workqueue entries to carry
      out autosuspend requests, only to have them fail because one of the
      hub's children isn't suspended.
      
      The basic idea is simple.  There already is a usage counter in the
      usb_device structure for preventing autosuspends.  The patch just
      increments that counter for every unsuspended child.  There's only one
      tricky part: When a device disconnects we need to remember whether it
      was suspended at the time (leave the counter alone) or not (decrement
      the counter).
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      ee49fb5d
    • A
      USB: struct usb_device: change flag to bitflag · ce361587
      Alan Stern 提交于
      This patch (as816) changes an existing flag in the usb_device
      structure to a bitflag, preparing the way for more bitflags to come
      in the future.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      ce361587
    • A
      USB: expand autosuspend/autoresume API · 692a186c
      Alan Stern 提交于
      This patch (as814) adds usb_autopm_set_interface() to the autosuspend
      API.  It also provides convenient wrapper routines,
      usb_autopm_enable() and usb_autopm_disable(), for drivers that want
      to specify directly whether autosuspend should be allowed.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      692a186c
    • L
      USB: makes usb_endpoint_* functions inline. · 0c1ac4f2
      Luiz Fernando N. Capitulino 提交于
      We have no benefits of having the usb_endpoint_* functions as functions,
      but making them inline saves text and data segment sizes:
      
      text	   data	    bss	    dec	    hex	filename
      14893634	3108770	1108840	19111244	1239d4c	vmlinux.func
      14893185	3108566	1108840	19110591	1239abf	vmlinux.inline
      
       This is the result of a 2.6.19-rc3 kernel compiled with GCC 4.1.1 without
      CONFIG_MODULES, CONFIG_CC_OPTIMIZE_FOR_SIZE, CONFIG_REGPARM options set.
      USB support is fully enabled (while most of the other drivers are not),
      and that kernel has most of the USB code ported to use the endpoint
      functions.
      
      That happens because a call to those functions are expensive (in terms
      of bytes), while the function's size is smaller or have the same 'size' of
      the call.
      Signed-off-by: NLuiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      0c1ac4f2
    • I
      usb/hub: allow hubs up to 31 children · 43705251
      inaky@linux.intel.com 提交于
      Current Wireless USB host hardware (Intel i1480 for example) allows up
      to 22 devices to connect, thus bringing up the max number of children
      in the WUSB Host Controller to 22 'fake' ports. Upcoming hardware
      might raise that limit.
      
      Makes almost no difference to go to 31, as the bit arrays are
      byte-aligned (plus an extra bit in general), so 22 bits fit in 4 bytes
      as 31 do.
      
      As well, the only other array that depends on USB_MAXCHILDREN is
      'struct usb_hub->indicator'. By declaring it 'u8' instead of 'enum
      hub_led_mode', we reduce the size of each entry from 4 bytes (in i386)
      to 1, which will add as we when are doubling USB_MAXCHILDREN
      (with 16 the size of that array is 64 bytes, with 31 would be 128; by
      using u8 that goes down to 31 bytes).
      Signed-off-by: NInaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      43705251
    • P
      mmc: Support for high speed SD cards · 7ccd266e
      Pierre Ossman 提交于
      Modern SD cards support a clock speed of 50 MHz. Make sure we test for
      this capability and do the song and dance required to activate it.
      
      Activating high speed support actually modifies the TRAN_SPEED field
      of the CSD. But as the spec says that the cards must report 50 MHz,
      we might as well skip re-reading the CSD.
      Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
      7ccd266e
    • P
      mmc: Add support for mmc v4 wide-bus modes · e45a1bd2
      Philip Langdale 提交于
      This change adds support for the mmc4 4-bit wide-bus mode.
      
      The mmc4 spec defines 8-bit and 4-bit transfer modes. As we do not support
      any 8-bit hardware, this patch only adds support for the 4-bit mode, but
      it can easily be built upon when the time comes.
      
      The 4-bit mode is electrically compatible with SD's 4-bit mode but the
      procedure for turning it on is different. This patch implements only
      the essential parts of the procedure as defined by the spec. Two additional
      steps are recommended but not compulsory. I am documenting them here so
      that there's a record.
      
      1) A bus-test mechanism is implemented using dedicated mmc commands which allow
      for testing the functionality of the data bus at the electrical level. This is
      pretty paranoid and they way the commands work is not compatible with the mmc
      subsystem (they don't set valid CRC values).
      
      2) MMC v4 cards can indicate they would like to draw more than the default
      amount of current in wide-bus modes. We currently will never switch the card
      into a higher draw mode. Supposedly, allowing the card to draw more current
      will let it perform better, but the specs seem to indicate that the card will
      function correctly without the mode change. Empirical testing supports this
      interpretation.
      Signed-off-by: NPhilip Langdale <philipl@overt.org>
      Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
      e45a1bd2
    • P
      [PATCH] mmc: Add support for mmc v4 high speed mode · bce40a36
      Philip Langdale 提交于
      This adds support for the high-speed modes defined by mmc v4
      (assuming the host controller is up to it). On a TI sdhci controller,
      it improves read speed from 1.3MBps to 2.3MBps. The TI controller can
      only go up to 24MHz, but everything helps. Another person has taken
      this basic patch and used it on a Nokia 770 to get a bigger boost
      because that controller can run at 48MHZ.
      Signed-off-by: NPhilip Langdale <philipl@overt.org>
      Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
      bce40a36
  3. 01 12月, 2006 3 次提交