23 Mar, 2013

2 commits

  • Basically all drivers can have sdhci_ops struct const, but almost none do.
    This patch constifies all sdhci_ops struct declarations where possible.

    The patch was auto-generated with the following coccinelle semantic patch:

    //
    @r1@
    identifier ops;
    identifier fld;
    @@
    ops.fld = ...;

    @disable optional_qualifier@
    identifier ops != r1.ops;
    @@
    static
    +const
    struct sdhci_ops ops = { ... };
    //

    Signed-off-by: Lars-Peter Clausen
    Acked-by: Shawn Guo
    Signed-off-by: Chris Ball

    Lars-Peter Clausen
     
  • The sdhci_pltfm_data struct is never modified within the sdhci_pltfm
    module. So make the pdata parameter to sdhci_pltfm_init and
    sdhci_pltfm_register const. This allows drivers to declare their
    sdhci_pltfm_data struct as const.

    This patch also makes the sdhci_pltfm_data declarations const where
    possible.

    Signed-off-by: Lars-Peter Clausen
    Acked-by: Shawn Guo
    Signed-off-by: Chris Ball

    Lars-Peter Clausen
     

12 Dec, 2012

1 commit

  • Pull driver core updates from Greg Kroah-Hartman:
    "Here's the large driver core updates for 3.8-rc1.

    The biggest thing here is the various __dev* marking removals. This
    is going to be a pain for the merge with different subsystem trees, I
    know, but all of the patches included here have been ACKed by their
    various subsystem maintainers, as they wanted them to go through here.

    If this is too much of a pain, I can pull all of them out of this tree
    and just send you one with the other fixes/updates and then, after
    3.8-rc1 is out, do the rest of the removals to ensure we catch them
    all, it's up to you. The merges should all be trivial, and Stephen
    has been doing them all in linux-next for a few weeks now quite
    easily.

    Other than the __dev* marking removals, there's nothing major here,
    some firmware loading updates and other minor things in the driver
    core.

    All of these have (much to Stephen's annoyance), been in linux-next
    for a while.

    Signed-off-by: Greg Kroah-Hartman "

    Fixed up trivial conflicts in drivers/gpio/gpio-{em,stmpe}.c due to gpio
    update.

    * tag 'driver-core-3.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (93 commits)
    modpost.c: Stop checking __dev* section mismatches
    init.h: Remove __dev* sections from the kernel
    acpi: remove use of __devinit
    PCI: Remove __dev* markings
    PCI: Always build setup-bus when PCI is enabled
    PCI: Move pci_uevent into pci-driver.c
    PCI: Remove CONFIG_HOTPLUG ifdefs
    unicore32/PCI: Remove CONFIG_HOTPLUG ifdefs
    sh/PCI: Remove CONFIG_HOTPLUG ifdefs
    powerpc/PCI: Remove CONFIG_HOTPLUG ifdefs
    mips/PCI: Remove CONFIG_HOTPLUG ifdefs
    microblaze/PCI: Remove CONFIG_HOTPLUG ifdefs
    dma: remove use of __devinit
    dma: remove use of __devexit_p
    firewire: remove use of __devinitdata
    firewire: remove use of __devinit
    leds: remove use of __devexit
    leds: remove use of __devinit
    leds: remove use of __devexit_p
    mmc: remove use of __devexit
    ...

    Linus Torvalds
     

07 Dec, 2012

2 commits

  • A-003500: False ADMA Error might be reported when ADMA is used for
    multiple block read command with Stop at Block Gap. If PROCTL[SABGREQ]
    is set when the particular block's data is received by the System side
    logic before entire block (with CRC) data is received by the SD side
    logic, and also if ADMA descriptor line is fetched at the same time,
    then DMA engine might report false ADMA error. eSDHC might not be able
    to Continue (PROCTL[CREQ]=1) after Stop at Block Gap.
    This issue will impact the eSDHC IP VVN2.3.

    Signed-off-by: Haijun Zhang
    Signed-off-by: Jerry Huang
    Acked-by: Anton Vorontsov
    Signed-off-by: Chris Ball

    Haijun Zhang
     
  • The IP versions older than 2.3 didn't support commands with busy
    response which expect the TC bit set. But after the VVN2.3, eSDHC
    IP has supported it.

    Signed-off-by: Jerry Huang
    Signed-off-by: Chris Ball

    Jerry Huang
     

29 Nov, 2012

3 commits

  • CONFIG_HOTPLUG is going away as an option so __devexit is no
    longer needed.

    Signed-off-by: Bill Pemberton
    Cc: Manuel Lauss
    Cc: Chris Ball
    Cc: "Michał Mirosław"
    Cc: Jarkko Lavinen
    Cc: Venkatraman S
    Cc: Viresh Kumar
    Cc: Ian Molton
    Cc: Bruce Chang
    Cc: Harald Welte
    Cc: Pierre Ossman
    Acked-by: Guennadi Liakhovetski
    Signed-off-by: Greg Kroah-Hartman

    Bill Pemberton
     
  • CONFIG_HOTPLUG is going away as an option so __devinit is no longer
    needed.

    Signed-off-by: Bill Pemberton
    Cc: Chris Ball
    Cc: Manuel Lauss
    Cc: "Michał Mirosław"
    Cc: Jarkko Lavinen
    Cc: Venkatraman S
    Cc: Ian Molton
    Cc: Bruce Chang
    Cc: Harald Welte
    Cc: Pierre Ossman
    Acked-by: Ludovic Desroches
    Acked-by: Viresh Kumar
    Acked-by: Guennadi Liakhovetski
    Signed-off-by: Greg Kroah-Hartman

    Bill Pemberton
     
  • CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer
    needed.

    Signed-off-by: Bill Pemberton
    Cc: Chris Ball
    Cc: "Michał Mirosław"
    Cc: Jarkko Lavinen
    Cc: Venkatraman S
    Cc: Ian Molton
    Cc: Bruce Chang
    Cc: Harald Welte
    Cc: Pierre Ossman
    Acked-by: Viresh Kumar
    Acked-by: Guennadi Liakhovetski
    Signed-off-by: Greg Kroah-Hartman

    Bill Pemberton
     

08 Nov, 2012

1 commit

  • CMD23 causes lots of errors in kernel on some freescale SoCs
    (P1020, P1021, P1022, P1024, P1025 and P4080) when MMC card used,
    which is because these controllers does not support CMD23,
    even on the SoCs which declares CMD23 is supported.
    Therefore, we'll not use CMD23.

    Signed-off-by: Jerry Huang
    Signed-off-by: Shaohui Xie
    Acked-by: Anton Vorontsov
    Signed-off-by: Chris Ball

    Jerry Huang
     

05 Sep, 2012

1 commit

  • The register of eSDHC Host Controller Capabilities is not compatible with
    standard SDHC register, and eSDHC cannot support End Attribute in NOP ADMA
    descriptor. With this patch eSDHC can works in ADMA mode and performance
    can be improved.

    Signed-off-by: Jerry Huang
    Signed-off-by: Pan Jiafei
    Signed-off-by: Jason Jin
    Acked-by: Anton Vorontsov
    Signed-off-by: Chris Ball

    Jerry Huang
     

26 Mar, 2012

2 commits

  • SD card read was failing (data crc error) on some cards at
    maximum possible frequency on P1010 (CCB frequency set to 400MHz).
    Some clock deviations are also observed at this frequency.
    Hence reduced the mmc clock freq.

    Signed-off-by: Priyanka Jain
    Singed-off-by: Jerry Huang
    Acked-by: Anton Vorontsov
    Signed-off-by: Chris Ball

    Jerry Huang
     
  • For FSL ESDHC controllers, when entering sleep the controller will power off,
    therefore the registers will lose their values, and the driver should save
    the value of registers during suspend and write them back during resume.

    Signed-off-by: Jerry Huang
    Signed-off-by: Jiang Yutang
    Acked-by: Anton Vorontsov
    Signed-off-by: Chris Ball

    Jerry Huang
     

12 Feb, 2012

1 commit

  • When eSDHC module is enabled on P5020/P3041/P2041/P1010 with eSDHC
    version 2.3, there is following errors:

    mmc0: Timeout waiting for hardware interrupt.
    mmc0: error -110 whilst initialising SD card
    mmc0: Unexpected interrupt 0x02000000.
    mmc0: Timeout waiting for hardware interrupt.
    mmc0: error -110 whilst initialising SD card
    mmc0: Unexpected interrupt 0x02000000.

    It is because eSDHC controller has different bit setting for PROCTL
    register at 0x28 comparing SD specification.
    This patch sets DMAS bits correctly for byte operation and does not
    change the default value of other field of PROCTL register.

    For other FSL chips, such as MPC8536/P2020, PROCTL[DMAS]
    bits are reserved and even if they are set to wrong bits, it will not
    take effective.

    Signed-off-by: Roy Zang
    Acked-by: Anton Vorontsov
    Signed-off-by: Chris Ball

    Roy Zang
     

12 Jan, 2012

1 commit

  • This patch converts the drivers in drivers/mmc/host/* to use the
    module_platform_driver() macro which makes the code smaller and a bit
    simpler.

    Signed-off-by: Axel Lin
    Acked-by: "Michał Mirosław"
    Acked-by: David Brown
    Acked-by: Viresh Kumar
    Acked-by: Guennadi Liakhovetski
    Acked-by: Sascha Hauer
    Acked-by: Wolfram Sang
    Acked-by: Anton Vorontsov
    Signed-off-by: Chris Ball

    Axel Lin
     

20 Dec, 2011

1 commit


27 Oct, 2011

2 commits


21 Jul, 2011

3 commits

  • There are a couple of problems left from the sdhci pltfm and OF
    consolidation changes.

    * When building more than one sdhci-pltfm based drivers in the same
    image, linker will give multiple definition error on the sdhci-pltfm
    helper functions. For example right now, building sdhci-of-esdhc
    and sdhci-of-hlwd together is a valid combination from Kconfig view.

    * With the current build method, there is error with building the
    drivers as module, but module installation fails with modprobe.

    The patch fixes above problems by changing sdhci-pltfm into a module.
    To avoid EXPORT_SYMBOL on so many big endian IO accessors, it moves
    these accessors into sdhci-pltfm.h as the 'static inline' functions.
    As a result, sdhci.h needs to be included in sdhci-pltfm.h, and in
    turn can be removed from individual drivers which already include
    sdhci-pltfm.h.

    Signed-off-by: Shawn Guo
    Signed-off-by: Chris Ball

    Shawn Guo
     
  • The patch turns the sdhci-of-core common stuff into helper functions
    added into sdhci-pltfm.c, and makes sdhci-of device drviers self
    registered using the same pair of .probe and .remove used by
    sdhci-pltfm device drivers.

    As a result, sdhci-of-core.c and sdhci-of.h can be eliminated with
    those common things merged into sdhci-pltfm.c and sdhci-pltfm.h
    respectively.

    Signed-off-by: Shawn Guo
    Acked-by: Anton Vorontsov
    Reviewed-by: Wolfram Sang
    Signed-off-by: Chris Ball

    Shawn Guo
     
  • The patch migrates the use of sdhci_of_host and sdhci_of_data to
    sdhci_pltfm_host and sdhci_pltfm_data, so that the former pair can
    be eliminated.

    Signed-off-by: Shawn Guo
    Reviewed-by: Grant Likely
    Reviewed-by: Wolfram Sang
    Acked-by: Anton Vorontsov
    Signed-off-by: Chris Ball

    Shawn Guo
     

25 Mar, 2011

1 commit


18 Mar, 2011

1 commit


23 Oct, 2010

1 commit


28 May, 2010

1 commit

  • Unfortunately some architectures #define their read{b,w,l} and
    write{b,w,l} I/O accessors which makes the SDHCI I/O accessor functions of
    the same names subject to preprocessing. This leads to the following
    compiler error,

    In file included from drivers/mmc/host/sdhci.c:26:
    drivers/mmc/host/sdhci.h:318:35: error: macro "writel" passed 3 arguments, but takes just 2

    Rename the SDHCI I/O functions so that CONFIG_MMC_SDHCI_IO_ACCESSORS can
    be enabled for architectures that implement their read{b,w,l} and
    write{b,w,l} functions with macros.

    Signed-off-by: Matt Fleming
    Cc: Zhangfei Gao
    Acked-by: Anton Vorontsov
    Acked-by: Wolfram Sang
    Acked-by: Ben Dooks
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matt Fleming
     

18 Dec, 2009

1 commit