26 Jul, 2014

1 commit

  • Currently when the device secure discard implementation is
    blacklisted (MMC_QUIRK_SEC_ERASE_TRIM_BROKEN quirk is set)
    instead of secure discard we're going to do normal discard,
    which is wrong.

    When the secure discard is known to be broken we should just
    disallow it entirely and not advertise this functionality to
    the user. Fix it.

    Also move mmc_fixup_device() in from of mmc_blk_alloc() so we
    can get quirks set before we attempt to set queue information.

    Signed-off-by: Lukas Czerner
    Acked-by: Jaehoon Chung
    Signed-off-by: Ulf Hansson

    Lukas Czerner
     

09 Apr, 2014

1 commit

  • Pull MMC updates from Chris Ball:
    "MMC highlights for 3.15:

    Core:
    - CONFIG_MMC_UNSAFE_RESUME=y is now default behavior
    - DT bindings for SDHCI UHS, eMMC HS200, high-speed DDR, at 1.8/1.2V
    - Add GPIO descriptor based slot-gpio card detect API

    Drivers:
    - dw_mmc: Refactor SOCFPGA support as a variant inside dw_mmc-pltfm.c
    - mmci: Support HW busy detection on ux500
    - omap: Support MMC_ERASE
    - omap_hsmmc: Support MMC_PM_KEEP_POWER, MMC_PM_WAKE_SDIO_IRQ, (a)cmd23
    - rtsx: Support pre-req/post-req async
    - sdhci: Add support for Realtek RTS5250 controllers
    - sdhci-acpi: Add support for 80860F16, fix 80860F14/SDIO card detect
    - sdhci-msm: Add new driver for Qualcomm SDHCI chipset support
    - sdhci-pxav3: Add support for Marvell Armada 380 and 385 SoCs"

    * tag 'mmc-updates-for-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (102 commits)
    mmc: sdhci-acpi: Intel SDIO has broken card detect
    mmc: sdhci-pxav3: add support for the Armada 38x SDHCI controller
    mmc: sdhci-msm: Add platform_execute_tuning implementation
    mmc: sdhci-msm: Initial support for Qualcomm chipsets
    mmc: sdhci-msm: Qualcomm SDHCI binding documentation
    sdhci: only reprogram retuning timer when flag is set
    mmc: rename ARCH_BCM to ARCH_BCM_MOBILE
    mmc: sdhci: Allow for irq being shared
    mmc: sdhci-acpi: Add device id 80860F16
    mmc: sdhci-acpi: Fix broken card detect for ACPI HID 80860F14
    mmc: slot-gpio: Add GPIO descriptor based CD GPIO API
    mmc: slot-gpio: Split out CD IRQ request into a separate function
    mmc: slot-gpio: Record GPIO descriptors instead of GPIO numbers
    Revert "dts: socfpga: Add support for SD/MMC on the SOCFPGA platform"
    mmc: sdhci-spear: use generic card detection gpio support
    mmc: sdhci-spear: remove support for power gpio
    mmc: sdhci-spear: simplify resource handling
    mmc: sdhci-spear: fix platform_data usage
    mmc: sdhci-spear: fix error handling paths for DT
    mmc: sdhci-bcm-kona: fix build errors when built-in
    ...

    Linus Torvalds
     

23 Feb, 2014

4 commits

  • When sending a stop command at the recovery path, use a R1B response
    when the failing data request are a WRITE. Thus we also care about the
    busy detection completion in this case.

    For a failing READ request, we use a R1 response for the stop command,
    since we don't need to care about busy detection in this case.

    To align behavior between hosts supporting MMC_CAP_WAIT_WHILE_BUSY and
    those who are not, we add a CMD13 polling method for the card's status.

    We also respect whether the host has specified the max_busy_timeout,
    which means we may fallback to CMD13 polling if the timeout is greater
    than what the host are able to support.

    Signed-off-by: Ulf Hansson
    Signed-off-by: Chris Ball

    Ulf Hansson
     
  • Currently for write request we don't trust the hw busy detection to be
    fully handled by host, thus we also poll the card's status until we see
    it's gets out of the busy state.

    Still there are scenarios where it will a benefit to trust the hw busy
    detection done by the host, since no additional polling is needed.
    Let's prepare card_busy_detect() to be able to handle this.

    Signed-off-by: Ulf Hansson
    Signed-off-by: Chris Ball

    Ulf Hansson
     
  • To complete a data write request we poll for the card's status register
    by sending CMD13. The are other scenarios when this polling method are
    needed, which is why we here moves this code to it's own function. No
    functional change.

    Signed-off-by: Ulf Hansson
    Signed-off-by: Chris Ball

    Ulf Hansson
     
  • While using open ended transmission and thus ending the transfer by
    sending a stop command, we shall use R1B only for writes and R1 shall
    be used for reads. Previously R1B were used in both cases.

    Signed-off-by: Ulf Hansson
    Signed-off-by: Chris Ball

    Ulf Hansson
     

18 Feb, 2014

1 commit

  • We must use a 64-bit for this, otherwise overflowed bits get lost, and
    that can result in a lower than intended value set.

    Fixes: 8e0cb8a1f6ac ("ARM: 7797/1: mmc: Use dma_max_pfn(dev) helper for bounce_limit calculations")
    Fixes: 7d35496dd982 ("ARM: 7796/1: scsi: Use dma_max_pfn(dev) helper for bounce_limit calculations")
    Tested-Acked-by: Santosh Shilimkar
    Reviewed-by: Ulf Hansson
    Signed-off-by: Russell King

    Russell King
     

14 Feb, 2014

1 commit


14 Jan, 2014

1 commit

  • Under function mmc_blk_issue_rq, after an MMC discard operation,
    the MMC request data structure may be freed in memory. Later in
    the same function, the check of req->cmd_flags & MMC_REQ_SPECIAL_MASK
    is dangerous and invalid. It causes the MMC host not to be released
    when it should.

    This patch fixes the issue by marking the special request down before
    the discard/flush operation.

    Reported by: Harold (SoonYeal) Yang
    Signed-off-by: Ray Jui
    Reviewed-by: Seungwon Jeon
    Acked-by: Seungwon Jeon
    Cc: stable
    Signed-off-by: Chris Ball

    Ray Jui
     

19 Nov, 2013

1 commit

  • Pull MMC updates from Chris Ball:
    "MMC highlights for 3.13:

    Core:
    - Improve runtime PM support, remove mmc_{suspend,resume}_host().
    - Add MMC_CAP_RUNTIME_RESUME, for delaying MMC resume until we're
    outside of the resume sequence (in runtime_resume) to decrease
    system resume time.

    Drivers:
    - dw_mmc: Support HS200 mode.
    - sdhci-eshdc-imx: Support SD3.0 SDR clock tuning, DDR on IMX6.
    - sdhci-pci: Add support for Intel Clovertrail and Merrifield"

    * tag 'mmc-updates-for-3.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (108 commits)
    mmc: wbsd: Silence compiler warning
    mmc: core: Silence compiler warning in __mmc_switch
    mmc: sh_mmcif: Convert to clk_prepare|unprepare
    mmc: sh_mmcif: Convert to PM macros when defining dev_pm_ops
    mmc: dw_mmc: exynos: Revert the sdr_timing assignment
    mmc: sdhci: Avoid needless loop while handling SDIO interrupts in sdhci_irq
    mmc: core: Add MMC_CAP_RUNTIME_RESUME to resume at runtime_resume
    mmc: core: Improve runtime PM support during suspend/resume for sd/mmc
    mmc: core: Remove redundant mmc_power_up|off at runtime callbacks
    mmc: Don't force card to active state when entering suspend/shutdown
    MIPS: db1235: Don't use MMC_CLKGATE
    mmc: core: Remove deprecated mmc_suspend|resume_host APIs
    mmc: mmci: Move away from using deprecated APIs
    mmc: via-sdmmc: Move away from using deprecated APIs
    mmc: tmio: Move away from using deprecated APIs
    mmc: sh_mmcif: Move away from using deprecated APIs
    mmc: sdricoh_cs: Move away from using deprecated APIs
    mmc: rtsx: Remove redundant suspend and resume callbacks
    mmc: wbsd: Move away from using deprecated APIs
    mmc: pxamci: Remove redundant suspend and resume callbacks
    ...

    Linus Torvalds
     

31 Oct, 2013

2 commits

  • DMA bounce limit is the maximum direct DMA'able memory beyond which
    bounce buffers has to be used to perform dma operations. MMC queue layr
    relies on dma_mask but its calculation is based on max_*pfn which
    don't have uniform meaning across architectures. So make use of
    dma_max_pfn() which is expected to return the DMAable maximum pfn
    value across architectures.

    Cc: Chris Ball
    Signed-off-by: Santosh Shilimkar
    Signed-off-by: Russell King

    Santosh Shilimkar
     
  • By adding a card state that records if it is suspended or resumed, we
    can accept asyncronus suspend/resume requests for the mmc and sd
    bus_ops.

    MMC_CAP_AGGRESSIVE_PM, will at request inactivity through the runtime
    bus_ops callbacks, execute a suspend of the the card. In the state were
    this has been done, we can receive a suspend request for the mmc bus,
    which for sd and mmc forced the card to active state by a
    pm_runtime_get_sync. In other words, the card was resumed and then
    immediately suspended again, completely unnecessary.

    Since the suspend/resume bus_ops callbacks for sd and mmc are now
    capable of handling asynchronous requests, we no longer need to force
    the card to active state before executing suspend. Evidently preventing
    the above sequence for MMC_CAP_AGGRESSIVE_PM.

    Signed-off-by: Ulf Hansson
    Signed-off-by: Chris Ball

    Ulf Hansson
     

25 Aug, 2013

3 commits

  • A previous commit (fdfa20c1631210d0) reordered the shutdown sequence
    in mmc_blk_remove_req. However, mmc_cleanup_queue is now called before
    we get the card pointer, and mmc_cleanup_queue sets mq->card to NULL.

    This patch moves the card pointer assignment before mmc_cleanup_queue.

    Signed-off-by: Franck Jullien
    Signed-off-by: Chris Ball

    Franck Jullien
     
  • The usage of strict_strtol() is not preferred, because
    strict_strtol() is obsolete. Thus, kstrtol() should be used.

    Also, both kstrtol() and copy_from_user() can be replaced
    with kstrtol_from_user() to make the code simpler.

    Signed-off-by: Jingoo Han
    Signed-off-by: Chris Ball

    Jingoo Han
     
  • Current MMC driver doesn't handle generic error (bit19 of device
    status) in write sequence. As a result, write data gets lost when
    generic error occurs. For example, a generic error when updating a
    filesystem management information causes a loss of write data and
    corrupts the filesystem. In the worst case, the system will never
    boot.

    This patch includes the following functionality:
    1. To enable error checking for the response of CMD12 and CMD13
    in write command sequence
    2. To retry write sequence when a generic error occurs

    Messages are added for v2 to show what occurs.

    Signed-off-by: KOBAYASHI Yoshitake
    Signed-off-by: Chris Ball

    KOBAYASHI Yoshitake
     

28 Jun, 2013

1 commit

  • Considering shutdown of the card, the responsibility to initate this
    sequence shall be driven from the mmc_bus.

    This patch enables the mmc_bus to handle this sequence properly. A new
    .shutdown callback is added in the mmc_driver struct which is used to
    shutdown the blk device.

    Signed-off-by: Ulf Hansson
    Signed-off-by: Chris Ball

    Ulf Hansson
     

27 Jun, 2013

2 commits

  • Inside the routine mmc_blk_ioctl_cmd() the sanitize command is
    identified according to the value of bits 16-23 of the argument.

    but what happens if a different command is sent, and only by
    chance, bits 16-23 contain the value of SANITIZE command ?
    In that case a SANITIZE command will be falsely identified.
    In order to prevent such a case, the condition is expanded and
    now it also checks the opcode itself, and verifies that it is an
    MMC_SWITCH opcode.

    Signed-off-by: Yaniv Gardi
    Signed-off-by: Chris Ball

    Yaniv Gardi
     
  • We had a multi-partition SD-Card with two ext2 file systems. The partition
    table was getting overwritten by a race between the card removal and
    the unmount of the 2nd ext2 partition.

    What was observed:
    1. Suspend/resume would call to remove the device. The clearing
    of the device information is done asynchronously.
    2. A request is made to unmount the file system (this is called
    after the removal has started).
    3. The remapping table was cleared by the asynchronous part of
    the device removal.
    4. A write request to the super block (block 0 of the partition)
    was sent down and instead of being remapped to the partition
    offset, it was remapped to block 0 of the device which is where
    the partition table is located.
    5. Write was queued and written resulting in the overwriting
    of the partition table with the ext2 super block.
    6. The mmc_queue is cleaned up.

    The mmc card device driver used to access SD cards, was calling del_gendisk
    before calling mmc_cleanup-queue. The comment in the mmc_blk_remove_req
    code indicated that it expected del_gendisk to block all further requests
    from being queued but it doesn't. The mmc driver uses the presences of the
    mmc_queue to determine if the request should be queued.

    The fix was to clean up the mmc_queue before the rest of the
    the delete partition code is called.

    This prevents the overwriting of the partition table.

    However, the umount gets an error trying to write the super block.
    The umount should be issued before the device is removed but that
    is not always possible. The umount is still needed to cleanup other
    data structures.

    Addresses the problem described in http://crbug.com/240815

    Signed-off-by: Paul Taysom
    Signed-off-by: Chris Ball

    Paul Taysom
     

27 May, 2013

2 commits

  • Once the mmc blkdevice is being probed, runtime pm will be enabled.
    By using runtime autosuspend, the power save operations can be done
    when request inactivity occurs for a certain time. Right now the
    selected timeout value is set to 3 s. Obviously this value will likely
    need to be configurable somehow since it needs to be trimmed depending
    on the power save algorithm.

    For SD-combo cards, we are still leaving the enablement of runtime PM
    to the SDIO init sequence since it depends on the capabilities of the
    SDIO func driver.

    Moreover, when the blk device is being suspended, we make sure the device
    will be runtime resumed. The reason for doing this is that we want the
    host suspend sequence to be unaware of any runtime power save operations
    done for the card in this phase. Thus it can just handle the suspend as
    the card is fully powered from a runtime perspective.

    Finally, this patch prepares to make it possible to move BKOPS handling
    into the runtime callbacks for the mmc bus_ops. Thus IDLE BKOPS can be
    accomplished.

    Signed-off-by: Ulf Hansson
    Signed-off-by: Chris Ball

    Ulf Hansson
     
  • The sanitize support is added as a user-app ioctl call, and
    was removed from the block-device request, since its purpose is
    to be invoked not via File-System but by a user.

    This feature deletes the unmap memory region of the eMMC card,
    by writing to a specific register in the EXT_CSD.

    unmap region is the memory region that was previously deleted
    (by erase, trim or discard operation).

    In order to avoid timeout when sanitizing large-scale cards,
    the timeout for sanitize operation is 240 seconds.

    Signed-off-by: Yaniv Gardi
    Signed-off-by: Maya Erez
    Signed-off-by: Chris Ball

    Maya Erez
     

07 May, 2013

1 commit


05 May, 2013

1 commit

  • Pull MMC update from Chris Ball:
    "MMC highlights for 3.10:

    Core:
    - Introduce MMC_CAP2_NO_PRESCAN_POWERUP to allow skipping
    mmc_power_up() at boot/initialization time if it's already
    happened, for performance (faster boot time) reasons.
    - Fix a bit width test failure that resulted in old eMMC cards being
    put into 1-bit mode when 4-bit mode was available.
    - Expose fwrev/hwrev for MMCv4 parts.
    - Improve card removal logic in the case where the card's removed
    slowly; we were missing card removal events if the card retained
    contact with the slot pads for long enough to reply to a CMD13
    while being removed.

    Drivers:
    - davinci_mmc: Support using PIO instead of DMA.
    - dw_mmc: Add support for Exynos4412.
    - mxcmmc: DT support, use slot-gpio API.
    - mxs-mmc: Add broken-cd/cd-inverted/non-removable DT property
    support.
    - sdhci-sirf: New sdhci-pltfm driver for CSR SiRF SoCs:
    SiRFprimaII: unicore ARM Cortex-A9
    SiRFatlas6: unicore ARM Cortex-A9
    SiRFmarco: dual core ARM Cortex-A9 SMP
    - sdhci-tegra: Add support for Tegra114 platforms, use
    mmc_of_parse()"

    * tag 'mmc-updates-for-3.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (66 commits)
    mmc: sdhci-tegra: fix MODULE_DEVICE_TABLE
    mmc: core: fix init controller performance regression, updated patch
    mmc: mxcmmc: enable DMA support on mpc512x
    mmc: mxcmmc: constify mxcmci_devtype
    mmc: mxcmmc: use slot-gpio API for write-protect detection
    mmc: mxcmmc: add mpc512x SDHC support
    mmc: mxcmmc: fix race conditions for host->req and host->data access
    mmc: mxcmmc: DT support
    mmc: dw_mmc: let device core setup the default pin configuration
    mmc: mxs-mmc: add broken-cd property
    mmc: mxs-mmc: add non-removable property
    mmc: mxs-mmc: add cd-inverted property
    mmc: core: call pm_runtime_put_noidle in pm_runtime_get_sync failed case
    mmc: mxcmmc: Fix bug when card is present during boot
    mmc: core: fix performance regression initializing MMC host controllers
    Revert "mmc: core: wait while adding MMC host to ensure root mounts successfully"
    mmc: atmel-mci: pio hang on block errors
    mmc: core: Fix bit width test failing on old eMMC cards
    mmc: dw_mmc: Use pr_info instead of printk
    mmc: dw_mmc: Check return value of regulator_enable
    ...

    Linus Torvalds
     

23 Mar, 2013

1 commit

  • For normal request mmc_blk_issue_rq is called twice with asynchronous
    transfer(cur and prev). Host's claim and release can be done in each
    mmc_blk_issue_rq. However, Special request is currently excluded in
    asynchronous transfer. After special request is finished, if there is
    no new request, mmc_release_host won't be called in mmc_blk_issue_rq.
    The problem is founded during mmc_suspend.

    [] (__schedule+0x0/0x78c) from [] (schedule+0x38/0x78)
    [] (schedule+0x0/0x78) from [] (__mmc_claim_host+0xac/0x1b4)
    [] (__mmc_claim_host+0x0/0x1b4) from [] (mmc_suspend+0x28/0x9c)
    [] (mmc_suspend+0x0/0x9c) from [] (mmc_suspend_host+0xb4/0x194)
    ...

    Reported-by: Johan Rudholm
    Signed-off-by: Seungwon Jeon
    Tested-by: Johan Rudholm
    Signed-off-by: Chris Ball

    Seungwon Jeon
     

19 Mar, 2013

1 commit

  • It allows for cleaning up on a considerable amount of places. They did
    port_get, hangup, kref_put. Now the only thing needed is to call
    tty_port_tty_hangup which does exactly that. And they can also decide
    whether to consider CLOCAL or completely ignore that.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Greg Kroah-Hartman

    Jiri Slaby
     

27 Feb, 2013

1 commit

  • Pull MMC update from Chris Ball:
    "MMC highlights for 3.9:

    Core:
    - Support for packed commands in eMMC 4.5. (This requires a host
    capability to be turned on. It increases write throughput by 20%+,
    but may also increase average write latency; more testing needed.)
    - Add DT bindings for capability flags.
    - Add mmc_of_parse() for shared DT parsing between drivers.

    Drivers:
    - android-goldfish: New MMC driver for the Android Goldfish emulator.
    - mvsdio: Add DT bindings, pinctrl, use slot-gpio for card detection.
    - omap_hsmmc: Fix boot hangs with RPMB partitions.
    - sdhci-bcm2835: New driver for controller used by Raspberry Pi.
    - sdhci-esdhc-imx: Add 8-bit data, auto CMD23 support, use slot-gpio.
    - sh_mmcif: Add support for eMMC DDR, bundled MMCIF IRQs.
    - tmio_mmc: Add DT bindings, support for vccq regulator"

    * tag 'mmc-updates-for-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (92 commits)
    mmc: tegra: assume CONFIG_OF, remove platform data
    mmc: add DT bindings for more MMC capability flags
    mmc: tmio: add support for the VccQ regulator
    mmc: tmio: remove unused and deprecated symbols
    mmc: sh_mobile_sdhi: use managed resource allocations
    mmc: sh_mobile_sdhi: remove unused .pdata field
    mmc: tmio-mmc: parse device-tree bindings
    mmc: tmio-mmc: define device-tree bindings
    mmc: sh_mmcif: use mmc_of_parse() to parse standard MMC DT bindings
    mmc: (cosmetic) remove "extern" from function declarations
    mmc: provide a standard MMC device-tree binding parser centrally
    mmc: detailed definition of CD and WP MMC line polarities in DT
    mmc: sdhi, tmio: only check flags in tmio-mmc driver proper
    mmc: sdhci: Fix parameter of sdhci_do_start_signal_voltage_switch()
    mmc: sdhci: check voltage range only on regulators aware of voltage value
    mmc: bcm2835: set SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK
    mmc: support packed write command for eMMC4.5 devices
    mmc: add packed command feature of eMMC4.5
    mmc: rtsx: remove driving adjustment
    mmc: use regulator_can_change_voltage() instead of regulator_count_voltages
    ...

    Linus Torvalds
     

25 Feb, 2013

2 commits

  • This patch supports packed write command of eMMC4.5 devices. Several
    writes can be grouped in packed command and all data of the individual
    commands can be sent in a single transfer on the bus. Large amounts of
    data in one transfer rather than several data of small size are
    effective for eMMC write internally. As a result, packed command help
    write throughput be improved. The following tables show the results
    of packed write.

    Type A:
    test none | packed
    iozone 25.8 | 31
    tiotest 27.6 | 31.2
    lmdd 31.2 | 35.4

    Type B:
    test none | packed
    iozone 44.1 | 51.1
    tiotest 47.9 | 52.5
    lmdd 51.6 | 59.2

    Type C:
    test none | packed
    iozone 19.5 | 32
    tiotest 19.9 | 34.5
    lmdd 22.8 | 40.7

    Signed-off-by: Seungwon Jeon
    Reviewed-by: Maya Erez
    Reviewed-by: Namjae Jeon
    Signed-off-by: Chris Ball

    Seungwon Jeon
     
  • It's not necessary to start a new request while error handling if
    the card was removed.

    Signed-off-by: Seungwon Jeon
    Acked-by: Jaehoon Chung
    Tested-by: Konstantin Dorfman
    Signed-off-by: Chris Ball

    Seungwon Jeon
     

12 Feb, 2013

2 commits

  • When current request is running on the bus and if next request fetched
    by mmcqd is NULL, mmc context (mmcqd thread) gets blocked until the
    current request completes. This means that if new request comes in while
    the mmcqd thread is blocked, this new request can not be prepared in
    parallel to current ongoing request. This may result in delaying the new
    request execution and increase it's latency.

    This change allows to wake up the MMC thread on new request arrival.
    Now once the MMC thread is woken up, a new request can be fetched and
    prepared in parallel to the current running request which means this new
    request can be started immediately after the current running request
    completes.

    With this change read throughput is improved by 16%.

    Signed-off-by: Konstantin Dorfman
    Reviewed-by: Seungwon Jeon
    Signed-off-by: Chris Ball

    Konstantin Dorfman
     
  • Unlike normal r/w request, special requests(discard, flush)
    is finished with a one-time issue_fn. Request change to
    mqrq_prev makes unnecessary call.

    Signed-off-by: Seungwon Jeon
    Reviewed-by: Konstantin Dorfman
    Signed-off-by: Chris Ball

    Seungwon Jeon
     

19 Jan, 2013

1 commit

  • The option allows you to remove TTY and compile without errors. This
    saves space on systems that won't support TTY interfaces anyway.
    bloat-o-meter output is below.

    The bulk of this patch consists of Kconfig changes adding "depends on
    TTY" to various serial devices and similar drivers that require the TTY
    layer. Ideally, these dependencies would occur on a common intermediate
    symbol such as SERIO, but most drivers "select SERIO" rather than
    "depends on SERIO", and "select" does not respect dependencies.

    bloat-o-meter output comparing our previous minimal to new minimal by
    removing TTY. The list is filtered to not show removed entries with awk
    '$3 != "-"' as the list was very long.

    add/remove: 0/226 grow/shrink: 2/14 up/down: 6/-35356 (-35350)
    function old new delta
    chr_dev_init 166 170 +4
    allow_signal 80 82 +2
    static.__warned 143 142 -1
    disallow_signal 63 62 -1
    __set_special_pids 95 94 -1
    unregister_console 126 121 -5
    start_kernel 546 541 -5
    register_console 593 588 -5
    copy_from_user 45 40 -5
    sys_setsid 128 120 -8
    sys_vhangup 32 19 -13
    do_exit 1543 1526 -17
    bitmap_zero 60 40 -20
    arch_local_irq_save 137 117 -20
    release_task 674 652 -22
    static.spin_unlock_irqrestore 308 260 -48

    Signed-off-by: Joe Millenbach
    Reviewed-by: Jamey Sharp
    Reviewed-by: Josh Triplett
    Signed-off-by: Greg Kroah-Hartman

    Joe Millenbach
     

16 Jan, 2013

2 commits

  • Now, we start converting tty buffer functions to actually use
    tty_port. This will allow us to get rid of the need of tty in many
    call sites. Only tty_port will needed and hence no more
    tty_port_tty_get in those paths.

    Now, the one where most of tty_port_tty_get gets removed:
    tty_flip_buffer_push.

    IOW we also closed all the races in drivers not using tty_port_tty_get
    at all yet.

    Also we move tty_flip_buffer_push declaration from include/linux/tty.h
    to include/linux/tty_flip.h to all others while we are changing it
    anyway.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Greg Kroah-Hartman

    Jiri Slaby
     
  • Now, we start converting tty buffer functions to actually use
    tty_port. This will allow us to get rid of the need of tty in many
    call sites. Only tty_port will needed and hence no more
    tty_port_tty_get in those paths.

    tty_insert_flip_char is the next one to proceed. This one is used all
    over the code, so the patch is huge.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Greg Kroah-Hartman

    Jiri Slaby
     

12 Dec, 2012

1 commit

  • Pull TTY/Serial merge from Greg Kroah-Hartman:
    "Here's the big tty/serial tree set of changes for 3.8-rc1.

    Contained in here is a bunch more reworks of the tty port layer from
    Jiri and bugfixes from Alan, along with a number of other tty and
    serial driver updates by the various driver authors.

    Also, Jiri has been coerced^Wconvinced to be the co-maintainer of the
    TTY layer, which is much appreciated by me.

    All of these have been in the linux-next tree for a while.

    Signed-off-by: Greg Kroah-Hartman "

    Fixed up some trivial conflicts in the staging tree, due to the fwserial
    driver having come in both ways (but fixed up a bit in the serial tree),
    and the ioctl handling in the dgrp driver having been done slightly
    differently (staging tree got that one right, and removed both
    TIOCGSOFTCAR and TIOCSSOFTCAR).

    * tag 'tty-3.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (146 commits)
    staging: sb105x: fix potential NULL pointer dereference in mp_chars_in_buffer()
    staging/fwserial: Remove superfluous free
    staging/fwserial: Use WARN_ONCE when port table is corrupted
    staging/fwserial: Destruct embedded tty_port on teardown
    staging/fwserial: Fix build breakage when !CONFIG_BUG
    staging: fwserial: Add TTY-over-Firewire serial driver
    drivers/tty/serial/serial_core.c: clean up HIGH_BITS_OFFSET usage
    staging: dgrp: dgrp_tty.c: Audit the return values of get/put_user()
    staging: dgrp: dgrp_tty.c: Remove the TIOCSSOFTCAR ioctl handler from dgrp driver
    serial: ifx6x60: Add modem power off function in the platform reboot process
    serial: mxs-auart: unmap the scatter list before we copy the data
    serial: mxs-auart: disable the Receive Timeout Interrupt when DMA is enabled
    serial: max310x: Setup missing "can_sleep" field for GPIO
    tty/serial: fix ifx6x60.c declaration warning
    serial: samsung: add devicetree properties for non-Exynos SoCs
    serial: samsung: fix potential soft lockup during uart write
    tty: vt: Remove redundant null check before kfree.
    tty/8250 Add check for pci_ioremap_bar failure
    tty/8250 Add support for Commtech's Fastcom Async-335 and Fastcom Async-PCIe cards
    tty/8250 Add XR17D15x devices to the exar_handle_irq override
    ...

    Linus Torvalds
     

07 Dec, 2012

4 commits

  • RPMB partition is accessing though /dev/block/mmcXrpmb device
    User callers can read and write entire data frame(s) as defined
    by JEDEC Standard JESD84-A441, using standard IOCTL interface.

    Signed-off-by: Alex Macro
    Signed-off-by: Loic Pallardy
    Reviewed-by: Namjae Jeon
    Acked-by: Linus Walleij
    Acked-by: Krishna Konda
    Signed-off-by: Chris Ball

    Loic Pallardy
     
  • Do not scan rpmb partitions for "soft" partitions, since the rpmb
    partition contains protected data. Silences the following message
    during boot:

    mmcblkXRPMB: unknown partition table

    Signed-off-by: Johan Rudholm
    Reviewed-by: Namjae Jeon
    Acked-by: Linus Walleij
    Acked-by: Krishna Konda
    Signed-off-by: Chris Ball

    Loic Pallardy
     
  • There are infinite loops in the mmc code that can be caused by bad
    hardware. The code will loop forever if the device never comes back
    from program mode, R1_STATE_PRG, and it is not ready for data,
    R1_READY_FOR_DATA.

    A long timeout is added to prevent the code from looping forever.
    The timeout will occur if the device never comes back from program
    state or the device never becomes ready for data.

    It's not clear whether the timeout will do more than log a pr_err()
    and then start a fresh hang all over again. We may need to extend
    this patch later to perform some kind of reset of the device (is
    that possible?) or rejection of new I/O to the device.

    Signed-off-by: Trey Ramsay
    Signed-off-by: Chris Ball

    Trey Ramsay
     
  • In case both 'req' and 'mq->mqrq_prev->req' are null, there is no request
    to be processed. That means there is no need to switch buffer.
    Switching buffer is required only after finishing 'issue_fn'.

    Signed-off-by: Seungwon Jeon
    Reviewed-by: Per Forlin
    Tested-by: Johan Rudholm
    Signed-off-by: Chris Ball

    Seungwon Jeon
     

16 Nov, 2012

2 commits

  • After commit "TTY: move tty buffers to tty_port", the tty buffers are
    not freed in some drivers. This is because tty_port_destructor is not
    called whenever a tty_port is freed. This was an assumption I counted
    with but was unfortunately untrue. So fix the drivers to fulfil this
    assumption.

    Here it is enough to switch to refcounting in tty_port.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Greg Kroah-Hartman

    Jiri Slaby
     
  • tty from struct sdio_uart_port is unused. Proper refcounted tty in
    tty_port->tty is used instead. So remove the member from that
    structure.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Greg Kroah-Hartman

    Jiri Slaby
     

17 Sep, 2012

1 commit