16 Nov, 2013

1 commit

  • Pull trivial tree updates from Jiri Kosina:
    "Usual earth-shaking, news-breaking, rocket science pile from
    trivial.git"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (23 commits)
    doc: usb: Fix typo in Documentation/usb/gadget_configs.txt
    doc: add missing files to timers/00-INDEX
    timekeeping: Fix some trivial typos in comments
    mm: Fix some trivial typos in comments
    irq: Fix some trivial typos in comments
    NUMA: fix typos in Kconfig help text
    mm: update 00-INDEX
    doc: Documentation/DMA-attributes.txt fix typo
    DRM: comment: `halve' -> `half'
    Docs: Kconfig: `devlopers' -> `developers'
    doc: typo on word accounting in kprobes.c in mutliple architectures
    treewide: fix "usefull" typo
    treewide: fix "distingush" typo
    mm/Kconfig: Grammar s/an/a/
    kexec: Typo s/the/then/
    Documentation/kvm: Update cpuid documentation for steal time and pv eoi
    treewide: Fix common typo in "identify"
    __page_to_pfn: Fix typo in comment
    Correct some typos for word frequency
    clk: fixed-factor: Fix a trivial typo
    ...

    Linus Torvalds
     

14 Oct, 2013

1 commit

  • Since commit 0998d0631001288a5974afc0b2a5f568bcdecb4d
    (device-core: Ensure drvdata = NULL when no driver is bound),
    the driver core clears the driver data to NULL after device_release
    or on probe failure. Thus, it is not needed to manually clear the
    device driver data to NULL.

    Signed-off-by: Jingoo Han
    Cc: James Bottomley
    Signed-off-by: Jiri Kosina

    Jingoo Han
     

07 Sep, 2013

5 commits

  • UIC attributes can be set with using DME_SET command for
    power mode change. For configuration the link capability
    attributes are used, which is updated after successful
    link startup.

    Signed-off-by: Seungwon Jeon
    Reviewed-by: Subhash Jadavani
    Signed-off-by: Santosh Y
    Signed-off-by: James Bottomley

    Seungwon Jeon
     
  • Setting PA_PWRMode using DME_SET triggers the power mode
    change. And then the result will be given by the HCS.UPMCRS.
    This operation should be done atomically.

    Signed-off-by: Seungwon Jeon
    Reviewed-by: Subhash Jadavani
    Tested-by: Yaniv Gardi
    Signed-off-by: Santosh Y
    Signed-off-by: James Bottomley

    Seungwon Jeon
     
  • Implements to support GET and SET operations of the DME.
    These operations are used to configure the behavior of
    the UNIPRO. Along with basic operation, {Peer/AttrSetType}
    can be mixed.

    Signed-off-by: Seungwon Jeon
    Reviewed-by: Subhash Jadavani
    Tested-by: Yaniv Gardi
    Signed-off-by: Santosh Y
    Signed-off-by: James Bottomley

    Seungwon Jeon
     
  • IACTH(Interrupt aggregation counter threshold) value is allowed
    up to 0x1F and current setting value is the maximum.
    This value is related with NUTRS(max:0x20) of HCI's capability.
    Considering HCI controller doesn't support the maximum, IACTH
    setting should be adjusted with possible value.
    For that, existing 'ufshcd_config_int_aggr' is split into two part
    [reset, configure].

    Signed-off-by: Seungwon Jeon
    Reviewed-by: Subhash Jadavani
    Tested-by: Yaniv Gardi
    Signed-off-by: Santosh Y
    Signed-off-by: James Bottomley

    Seungwon Jeon
     
  • Unlike 'GOOD' and 'CHECK CONDITION', other status values in
    Response UPIU may or may not contain sense data. That is returning
    sense data isn't obvious. So, in this case the Data Segment Length
    field should be checked. If a non-zero value, it means that UPIU
    has Sense Data in the Data Segment area.

    Signed-off-by: Seungwon Jeon
    Reviewed-by: Subhash Jadavani
    Tested-by: Yaniv Gardi
    Signed-off-by: Santosh Y
    Signed-off-by: James Bottomley

    Seungwon Jeon
     

26 Aug, 2013

9 commits

  • devm_ioremap_resource does sanity checks on the given resource. No need to
    duplicate this in the driver.

    Signed-off-by: Wolfram Sang
    Signed-off-by: Santosh Y
    Signed-off-by: James Bottomley

    Wolfram Sang
     
  • There is a error message within devm_ioremap_resource
    already, so remove the dev_err call to avoid redundant
    error message.

    Signed-off-by: Wei Yongjun
    Signed-off-by: Santosh Y
    Signed-off-by: James Bottomley

    Wei Yongjun
     
  • scsi_remove_host() sends SYNCHRONIZE CACHE commands for write cache
    enabled scsi disk devices. So stopping controller working shouldn't
    be done before scsi_remove_host().

    Signed-off-by: Akinobu Mita
    Signed-off-by: Santosh Y
    Signed-off-by: James Bottomley

    Akinobu Mita
     
  • When removing the UFS driver, disable_irq() is called and the IRQ is
    not enabled again. Unfortunately, the IRQ is requested with IRQF_SHARED
    and it can be shared among several devices. So disabling the IRQ in
    this way is just breaking other devices which are sharing the IRQ.

    Signed-off-by: Akinobu Mita
    Signed-off-by: Santosh Y
    Signed-off-by: James Bottomley

    Akinobu Mita
     
  • Before commit 2953f850c3b80bdca004967c83733365d8aa0aa2 ("[SCSI] ufs:
    use devres functions for ufshcd"), UFSHCI register was ioremapped by
    each glue-driver (ufshcd-pltfrm and ufshcd-pci) during probing and it
    was iounmapped by core-driver during removing driver. The commit
    converted ufshcd-pltfrm to use devres functions, but it didn't convert
    ufshcd-pci.

    Therefore, the change causes ufshcd-pci driver not to iounmap UFSHCI
    register region during removing driver. This fixes it by converting
    ufshcd-pci to use devres functions.

    Signed-off-by: Akinobu Mita
    Signed-off-by: Santosh Y
    Signed-off-by: James Bottomley

    Akinobu Mita
     
  • Add runtime PM helpers to suspend/resume UFS controller at runtime.
    Enable runtime PM by default for pci and platform drivers as the
    initialized hardware can suspend if it is not used after bootup.

    Signed-off-by: Sujit Reddy Thumma
    Signed-off-by: Santosh Y
    Signed-off-by: James Bottomley

    Sujit Reddy Thumma
     
  • Background operations in the UFS device can be disabled by
    the host to reduce the response latency of transfer requests.
    Add support for enabling/disabling the background operations
    during runtime suspend/resume of the device.

    If the device is in critical need of BKOPS it will raise an
    URGENT_BKOPS exception which should be handled by the host to
    make sure the device performs as expected.

    During bootup, the BKOPS is enabled in the device by default.
    The disable of BKOPS is supported only when the driver supports
    runtime suspend/resume operations as the runtime PM framework
    provides a way to determine the device idleness and hence BKOPS
    can be managed effectively. During runtime resume the BKOPS is
    disabled to reduce latency and during runtime suspend the BKOPS
    is enabled to allow device to carry out idle time BKOPS.

    In some cases where the BKOPS is disabled during runtime resume
    and due to continuous data transfers the runtime suspend is not
    triggered, the BKOPS is enabled when the device raises a level-2
    exception (outstanding operations - performance impact).

    Signed-off-by: Sujit Reddy Thumma
    Signed-off-by: Santosh Y
    Signed-off-by: James Bottomley

    Sujit Reddy Thumma
     
  • Allow UFS device to complete its initialization and accept
    SCSI commands by setting fDeviceInit flag. The device may take
    time for this operation and hence the host should poll until
    fDeviceInit flag is toggled to zero. This step is mandated by
    UFS device specification for device initialization completion.

    Signed-off-by: Dolev Raviv
    Signed-off-by: Sujit Reddy Thumma
    Signed-off-by: Santosh Y
    Signed-off-by: James Bottomley

    Dolev Raviv
     
  • As part of device initialization sequence, sending NOP OUT UPIU and
    waiting for NOP IN UPIU response is mandatory. This confirms that the
    device UFS Transport (UTP) layer is functional and the host can configure
    the device with further commands. Add support for sending NOP OUT UPIU to
    check the device connection path and test whether the UTP layer on the
    device side is functional during initialization.

    A tag is acquired from the SCSI tag map space in order to send the device
    management command. When the tag is acquired by internal command the scsi
    command is rejected with host busy flag in order to requeue the request.
    To avoid frequent collisions between internal commands and scsi commands
    the device management command tag is allocated in the opposite direction
    w.r.t block layer tag allocation.

    Signed-off-by: Sujit Reddy Thumma
    Signed-off-by: Dolev Raviv
    Signed-off-by: Santosh Y
    Signed-off-by: James Bottomley

    Sujit Reddy Thumma
     

29 Jun, 2013

9 commits


05 Jun, 2013

2 commits

  • If NO_DMA=y:

    drivers/built-in.o: In function `ufshcd_transfer_req_compl':
    drivers/scsi/ufs/ufshcd.c:1182: undefined reference to `scsi_dma_unmap'
    drivers/built-in.o: In function `ufshcd_map_sg':
    drivers/scsi/ufs/ufshcd.c:377: undefined reference to `scsi_dma_map'
    drivers/built-in.o: In function `ufshcd_do_reset':
    drivers/scsi/ufs/ufshcd.c:912: undefined reference to `scsi_dma_unmap'
    drivers/built-in.o: In function `ufshcd_memory_alloc':
    drivers/scsi/ufs/ufshcd.c:565: undefined reference to `dma_alloc_coherent'
    drivers/built-in.o: In function `ufshcd_free_hba_memory':
    drivers/scsi/ufs/ufshcd.c:185: undefined reference to `dma_free_coherent'
    drivers/scsi/ufs/ufshcd.c:192: undefined reference to `dma_free_coherent'
    drivers/scsi/ufs/ufshcd.c:199: undefined reference to `dma_free_coherent'
    drivers/scsi/ufs/ufshcd.c:185: undefined reference to `dma_free_coherent'
    drivers/scsi/ufs/ufshcd.c:192: undefined reference to `dma_free_coherent'
    drivers/built-in.o:drivers/scsi/ufs/ufshcd.c:199: more undefined references to `dma_free_coherent' follow
    drivers/built-in.o: In function `ufshcd_abort':
    drivers/scsi/ufs/ufshcd.c:1498: undefined reference to `scsi_dma_unmap'
    drivers/built-in.o: In function `ufshcd_device_reset':
    drivers/scsi/ufs/ufshcd.c:1436: undefined reference to `scsi_dma_unmap'

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Santosh Y
    Signed-off-by: James Bottomley

    Geert Uytterhoeven
     
  • Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
    driver is bound) removes the need to set driver data field to
    NULL.

    Signed-off-by: Sachin Kamat
    Signed-off-by: Santosh Y
    Signed-off-by: James Bottomley

    Sachin Kamat
     

03 May, 2013

2 commits

  • This patch corrects the expected data transfer size of the
    command UPIU. The current implementation of cmd->transfersize
    is wrong as it probably equal to sector size. With this
    implementation the transfer size is updated correctly

    Reported-by: KOBAYASHI Yoshitake
    Reviewed-by: Arnd Bergmann
    Reviewed-by: Namjae Jeon
    Reviewed-by: Subhash Jadavani
    Tested-by: Maya Erez
    Signed-off-by: Santosh Yaraganavi
    Signed-off-by: Vinayak Holikatti
    Signed-off-by: James Bottomley

    Vinayak Holikatti
     
  • This patch adds Platform glue driver for ufshcd.

    Reviewed-by: Arnd Bergmann
    Reviewed-by: Namjae Jeon
    Reviewed-by: Subhash Jadavani
    Reviewed-by: Sujit Reddy Thumma
    Tested-by: Maya Erez
    Signed-off-by: Vinayak Holikatti
    Signed-off-by: Santosh Yaraganavi
    Signed-off-by: James Bottomley

    Vinayak Holikatti
     

26 Feb, 2013

2 commits

  • This patch separates PCI code from ufshcd.c and makes it as a
    core driver module and adds a new file ufshcd-pci.c as PCI glue
    driver.

    [jejb: strip __devinit and devexit_p()]
    Reviewed-by: Arnd Bergmann
    Reviewed-by: Namjae Jeon
    Reviewed-by: Subhash Jadavani
    Tested-by: Maya Erez
    Signed-off-by: Vinayak Holikatti
    Signed-off-by: Santosh Yaraganavi
    Signed-off-by: James Bottomley

    Vinayak Holikatti
     
  • This patch segregates the PCI specific code in ufshcd.c to make it
    ready for splitting into core ufs driver and PCI glue driver. Also
    copyright header modification to remove extra warranty disclaim.

    Reviewed-by: Arnd Bergmann
    Reviewed-by: Namjae Jeon
    Reviewed-by: Subhash Jadavani
    Tested-by: Maya Erez
    Signed-off-by: Vinayak Holikatti
    Signed-off-by: Santosh Yaraganavi
    Signed-off-by: James Bottomley

    Vinayak Holikatti
     

04 Jan, 2013

1 commit

  • CONFIG_HOTPLUG is going away as an option. As a result, the __dev*
    markings need to be removed.

    This change removes the use of __devinit, __devexit_p, __devinitdata,
    __devinitconst, and __devexit from these drivers.

    Based on patches originally written by Bill Pemberton, but redone by me
    in order to handle some of the coding style issues better, by hand.

    Cc: Bill Pemberton
    Cc: Adam Radford
    Cc: "James E.J. Bottomley"
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

20 Jul, 2012

3 commits


23 May, 2012

1 commit


10 May, 2012

2 commits

  • UTP Transfer request list base registers UTRLBA and UTRLBAU
    must be assigned, lower-32 and upper-32 bits of UTRLD list
    physical base addresses respectively.

    Currently UTRLBAU is being assigned lower-32 bits of UTRLD
    physical base address. This will cause an issue with
    controllers that can support 64-bit addressing.

    This patch correctly assigns upper-32 bits of UTRLD physical
    base address to UTRLBAU.

    Reported-by: Rene De Jong
    Signed-off-by: Santosh Yaraganavi
    Reviewed-by: Vinayak Holikatti
    Signed-off-by: James Bottomley

    Santosh Yaraganavi
     
  • While interpreting the result of UTP task completion status,
    by using boolean &&, the evaluation would fail when the
    UPIU_TASK_MANAGEMENT_FUNC_SUCCEEDED was received.

    Either UPIU_TASK_MANAGEMENT_FUNC_COMPL or
    UPIU_TASK_MANAGEMENT_FUNC_SUCCEEDED should be
    considered as a success result.

    Reported-by: Joe Perches
    Signed-off-by: Venkatraman S
    Reviewed-by: Namjae Jeon
    Acked-by: Santosh Y
    Signed-off-by: James Bottomley

    Venkatraman S
     

27 Mar, 2012

1 commit

  • This patch adds support for Universal Flash Storage(UFS)
    host controllers. The UFS host controller driver
    includes host controller initialization method.

    The Initialization process involves following steps:
    - Initiate UFS Host Controller initialization process by writing
    to Host controller enable register
    - Configure UFS Host controller registers with host memory space
    datastructure offsets.
    - Unipro link startup procedure
    - Check for connected device
    - Configure UFS host controller to process requests
    - Enable required interrupts
    - Configure interrupt aggregation

    [jejb: fix warnings in 32 bit compile]
    Signed-off-by: Santosh Yaraganavi
    Signed-off-by: Vinayak Holikatti
    Reviewed-by: Arnd Bergmann
    Reviewed-by: Vishak G
    Reviewed-by: Girish K S
    Reviewed-by: Namjae Jeon
    Signed-off-by: James Bottomley

    Santosh Yaraganavi