12 Nov, 2016

1 commit

  • The newly introduced soc_pcmcia_regulator_set() function sometimes
    returns without setting its return code, as shown by this warning:

    drivers/pcmcia/soc_common.c: In function 'soc_pcmcia_regulator_set':
    drivers/pcmcia/soc_common.c:112:5: error: 'ret' may be used uninitialized in this function [-Werror=maybe-uninitialized]

    This changes it to propagate the regulator_disable() result instead.

    Fixes: ac61b6001a63 ("pcmcia: soc_common: add support for Vcc and Vpp regulators")
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Linus Torvalds

    Arnd Bergmann
     

22 Sep, 2016

12 commits


12 Sep, 2016

6 commits

  • On lubbock board, the probe of the driver crashes by dereferencing very
    early a platform_data structure which is not set, in
    pxa2xx_configure_sockets().

    The stack fixed is :
    [ 0.244353] SA1111 Microprocessor Companion Chip: silicon revision 1, metal revision 1
    [ 0.256321] sa1111 sa1111: Providing IRQ336-390
    [ 0.340899] clocksource: Switched to clocksource oscr0
    [ 0.472263] Unable to handle kernel NULL pointer dereference at virtual address 00000004
    [ 0.480469] pgd = c0004000
    [ 0.483432] [00000004] *pgd=00000000
    [ 0.487105] Internal error: Oops: f5 [#1] ARM
    [ 0.491497] Modules linked in:
    [ 0.494650] CPU: 0 PID: 1 Comm: swapper Not tainted 4.8.0-rc3-00080-g1aaa68426f0c-dirty #2068
    [ 0.503229] Hardware name: Intel DBPXA250 Development Platform (aka Lubbock)
    [ 0.510344] task: c3e42000 task.stack: c3e44000
    [ 0.514984] PC is at pxa2xx_configure_sockets+0x4/0x24 (drivers/pcmcia/pxa2xx_base.c:227)
    [ 0.520193] LR is at pcmcia_lubbock_init+0x1c/0x38
    [ 0.525079] pc : [] lr : [] psr: a0000053
    [ 0.525079] sp : c3e45e70 ip : 100019ff fp : 00000000
    [ 0.536651] r10: c0828900 r9 : c0434838 r8 : 00000000
    [ 0.541953] r7 : c0820700 r6 : c0857b30 r5 : c3ec1400 r4 : c0820758
    [ 0.548549] r3 : 00000000 r2 : 0000000c r1 : c3c09c40 r0 : c3ec1400
    [ 0.555154] Flags: NzCv IRQs on FIQs off Mode SVC_32 ISA ARM Segment none
    [ 0.562450] Control: 0000397f Table: a0004000 DAC: 00000053
    [ 0.568257] Process swapper (pid: 1, stack limit = 0xc3e44190)
    [ 0.574154] Stack: (0xc3e45e70 to 0xc3e46000)
    [ 0.578610] 5e60: c4849800 00000000 c3ec1400 c024769c
    [ 0.586928] 5e80: 00000000 c3ec140c c3c0ee0c c3ec1400 c3ec1434 c020c410 c3ec1400 c3ec1434
    [ 0.595244] 5ea0: c0820700 c080b408 c0828900 c020c5f8 00000000 c0820700 c020c578 c020ac5c
    [ 0.603560] 5ec0: c3e687cc c3e71e10 c0820700 00000000 c3c02de0 c020bae4 c03c62f7 c03c62f7
    [ 0.611872] 5ee0: c3e68780 c0820700 c042e034 00000000 c043c440 c020cdec c080b408 00000005
    [ 0.620188] 5f00: c042e034 c00096c0 c0034440 c01c730c 20000053 ffffffff 00000000 00000000
    [ 0.628502] 5f20: 00000000 c3ffcb87 c3ffcb90 c00346ac c3e66ba0 c03f7914 00000092 00000005
    [ 0.636811] 5f40: 00000005 c03f847c 00000091 c03f847c 00000000 00000005 c0434828 00000005
    [ 0.645125] 5f60: c043482c 00000092 c043c440 c0828900 c0434838 c0418d2c 00000005 00000005
    [ 0.653430] 5f80: 00000000 c041858c 00000000 c032e9f0 00000000 00000000 00000000 00000000
    [ 0.661729] 5fa0: 00000000 c032e9f8 00000000 c000f0f0 00000000 00000000 00000000 00000000
    [ 0.670020] 5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    [ 0.678311] 5fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
    [ 0.686673] (pxa2xx_configure_sockets) from pcmcia_lubbock_init (/drivers/pcmcia/sa1111_lubbock.c:161)
    [ 0.696026] (pcmcia_lubbock_init) from pcmcia_probe (/drivers/pcmcia/sa1111_generic.c:213)
    [ 0.704358] (pcmcia_probe) from driver_probe_device (/drivers/base/dd.c:378 /drivers/base/dd.c:499)
    [ 0.712848] (driver_probe_device) from __driver_attach (/./include/linux/device.h:983 /drivers/base/dd.c:733)
    [ 0.721414] (__driver_attach) from bus_for_each_dev (/drivers/base/bus.c:313)
    [ 0.729723] (bus_for_each_dev) from bus_add_driver (/drivers/base/bus.c:708)
    [ 0.738036] (bus_add_driver) from driver_register (/drivers/base/driver.c:169)
    [ 0.746185] (driver_register) from do_one_initcall (/init/main.c:778)
    [ 0.754561] (do_one_initcall) from kernel_init_freeable (/init/main.c:843 /init/main.c:851 /init/main.c:869 /init/main.c:1016)
    [ 0.763409] (kernel_init_freeable) from kernel_init (/init/main.c:944)
    [ 0.771660] (kernel_init) from ret_from_fork (/arch/arm/kernel/entry-common.S:119)
    [ 0.779347] Code: c03c6305 c03c631e c03c632e e5903048 (e993000c)
    All code
    ========
    0: c03c6305 eorsgt r6, ip, r5, lsl #6
    4: c03c631e eorsgt r6, ip, lr, lsl r3
    8: c03c632e eorsgt r6, ip, lr, lsr #6
    c: e5903048 ldr r3, [r0, #72] ; 0x48
    10:* e993000c ldmib r3, {r2, r3}
    Signed-off-by: Russell King

    Robert Jarzmik
     
  • When testing Lubbock, it was noticed that the sa1111 pcmcia driver bound
    but was not functional due to no sockets being registered. This is
    because the return code from the lowlevel board initialisation was not
    being propagated out of the probe function. Fix this.

    Tested-by: Robert Jarzmik
    Signed-off-by: Russell King

    Russell King
     
  • SS_STSCHG should be set for an IO card when the BVD1 signal is asserted
    low, not high.

    Signed-off-by: Russell King

    Russell King
     
  • Add units to the timing information, so we know that the numbers are
    nanoseconds. The output changes from:

    I/O : 165 (172)
    attribute: 300 (316)
    common : 300 (316)

    to:

    I/O : 165ns (172ns)
    attribute: 300ns (316ns)
    common : 300ns (316ns)

    Signed-off-by: Russell King

    Russell King
     
  • Fix the reporting of the currently programmed timing information. These
    entries have been showing zero due to the clock rate being a factor of
    1000 too big. With this change, we go from:

    I/O : 165 (0)
    attribute: 300 (0)
    common : 300 (0)

    to:

    I/O : 165 (172)
    attribute: 300 (316)
    common : 300 (316)

    Signed-off-by: Russell King

    Russell King
     
  • PCMCIA suspend/resume no longer works since the commit mentioned below,
    as the callbacks are no longer made. Convert the driver to the new
    dev_pm_ops, which restores the suspend/resume functionality. Tested on
    the arm arch Assabet platform.

    Fixes: aa8e54b559479 ("PM / sleep: Go direct_complete if driver has no callbacks")
    Signed-off-by: Russell King

    Russell King
     

01 May, 2016

1 commit


30 Mar, 2016

1 commit

  • remove the usage of removed irq_to_gpio() function. On pre-DB1200
    boards, pass the actual carddetect GPIO number instead of the IRQ,
    because we need the gpio to actually test card status (inserted or
    not) and can get the irq number with gpio_to_irq() instead.

    Tested on DB1300 and DB1500, this patch fixes PCMCIA on the DB1500,
    which used irq_to_gpio().

    Fixes: 832f5dacfa0b ("MIPS: Remove all the uses of custom gpio.h")
    Signed-off-by: Manuel Lauss
    Acked-by: Arnd Bergmann
    Reviewed-by: Linus Walleij
    Cc: linux-pcmcia@lists.infradead.org
    Cc: Linux-MIPS
    Cc: stable@vger.kernel.org # v4.3+
    Patchwork: https://patchwork.linux-mips.org/patch/12747/
    Signed-off-by: Ralf Baechle

    Manuel Lauss
     

16 Feb, 2016

1 commit

  • Most arches have an asm/gpio.h that merely includes linux/gpio.h. The
    others select ARCH_HAVE_CUSTOM_GPIO_H, and when that's selected,
    linux/gpio.h includes asm/gpio.h.

    Therefore, code should include linux/gpio.h instead of including asm/gpio.h
    directly.

    Remove includes of asm/gpio.h, adding an include of linux/gpio.h when
    necessary.

    This is a follow-on to 7563bbf89d06 ("gpiolib/arches: Centralise
    bolierplate asm/gpio.h").

    Signed-off-by: Bjorn Helgaas
    Acked-by: Thomas Gleixner
    Acked-by: Arnd Bergmann
    Acked-by: Alexandre Courbot
    Signed-off-by: Linus Walleij

    Bjorn Helgaas
     

05 Oct, 2015

1 commit


03 Sep, 2015

6 commits


08 Jul, 2015

2 commits


03 Jul, 2015

1 commit

  • Pull implicit module.h fixes from Paul Gortmaker:
    "Fix up implicit users that will break later.

    The files changed here are simply modular source files that are
    implicitly relying on being present. We fix them up now,
    so that we can decouple some of the module related init code from the
    core init code in the future.

    The addition of the module.h include to several files here is also a
    no-op from a code generation point of view, else there would already
    be compile issues with these files today.

    There may be lots more implicit includes of in tree, but
    these are the ones that extensive build test coverage has shown that
    must be fixed in order to avoid build breakage fallout for the pending
    module.h init.h code relocation we desire to complete"

    * tag 'module-implicit-v4.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
    frv: add module.h to mb93090-mb00/flash.c to avoid compile fail
    drivers/cpufreq: include for modular exynos-cpufreq.c code
    drivers/staging: include for modular android tegra_ion code
    crypto/asymmetric_keys: pkcs7_key_type needs module.h
    sh: mach-highlander/psw.c is tristate and should use module.h
    drivers/regulator: include for modular max77802 code
    drivers/pcmcia: include for modular xxs1500_ss code
    drivers/hsi: include for modular omap_ssi code
    drivers/gpu: include for modular rockchip code
    drivers/gpio: include for modular crystalcove code
    drivers/clk: include for clk-max77xxx modular code

    Linus Torvalds
     

27 Jun, 2015

2 commits

  • Pull char/misc driver updates from Greg KH:
    "Here's the big char/misc driver pull request for 4.2-rc1.

    Lots of mei, extcon, coresight, uio, mic, and other driver updates in
    here. Full details in the shortlog. All of these have been in
    linux-next for some time with no reported problems"

    * tag 'char-misc-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (176 commits)
    mei: me: wait for power gating exit confirmation
    mei: reset flow control on the last client disconnection
    MAINTAINERS: mei: add mei_cl_bus.h to maintained file list
    misc: sram: sort and clean up included headers
    misc: sram: move reserved block logic out of probe function
    misc: sram: add private struct device and virt_base members
    misc: sram: report correct SRAM pool size
    misc: sram: bump error message level on unclean driver unbinding
    misc: sram: fix device node reference leak on error
    misc: sram: fix enabled clock leak on error path
    misc: mic: Fix reported static checker warning
    misc: mic: Fix randconfig build error by including errno.h
    uio: pruss: Drop depends on ARCH_DAVINCI_DA850 from config
    uio: pruss: Add CONFIG_HAS_IOMEM dependence
    uio: pruss: Include
    extcon: Redefine the unique id of supported external connectors without 'enum extcon' type
    char:xilinx_hwicap:buffer_icap - change 1/0 to true/false for bool type variable in function buffer_icap_set_configuration().
    Drivers: hv: vmbus: Allocate ring buffer memory in NUMA aware fashion
    parport: check exclusive access before register
    w1: use correct lock on error in w1_seq_show()
    ...

    Linus Torvalds
     
  • Pull ARM SoC cleanups from Kevin Hilman:
    "A relatively small setup of cleanups this time around, and similar to
    last time the bulk of it is removal of legacy board support:

    - OMAP: removal of legacy (non-DT) booting for several platforms

    - i.MX: remove some legacy board files"

    * tag 'armsoc-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (36 commits)
    ARM: fix EFM32 build breakage caused by cpu_resume_arm
    ARM: 8389/1: Add cpu_resume_arm() for firmwares that resume in ARM state
    ARM: v7 setup function should invalidate L1 cache
    mach-omap2: Remove use of deprecated marco, PTR_RET in devices.c
    ARM: OMAP2+: Remove calls to deprecacted marco,PTR_RET in the files,fb.c and pmu.c
    ARM: OMAP2+: Constify irq_domain_ops
    ARM: OMAP2+: use symbolic defines for console loglevels instead of numbers
    ARM: at91: remove useless Makefile.boot
    ARM: at91: remove at91rm9200_sdramc.h
    ARM: at91: remove mach/at91_ramc.h and mach/at91rm9200_mc.h
    ARM: at91/pm: use the atmel-mc syscon defines
    pcmcia: at91_cf: Use syscon to configure the MC/smc
    ARM: at91: declare the at91rm9200 memory controller as a syscon
    mfd: syscon: Add Atmel MC (Memory Controller) registers definition
    ARM: at91: drop sam9_smc.c
    ata: at91: use syscon to configure the smc
    ARM: ux500: delete static resource defines
    ARM: ux500: rename ux500_map_io
    ARM: ux500: look up PRCMU resource from DT
    ARM: ux500: kill off L2CC static map
    ...

    Linus Torvalds
     

17 Jun, 2015

1 commit


16 Jun, 2015

1 commit

  • Patch 1c6c9b1d9d25 caused a regression for rsrc_nonstatic: It relies
    on pccard_validate_cis() to determine whether an iomem resource can
    be used for PCMCIA cards. This override, however, lead invalid iomem
    resources to be accepted -- and lead to a fake CIS being used instead
    of the original CIS.

    To fix this issue, move the override for anonymous cards to the one
    place where it is needed -- when adding a PCMCIA device.

    Signed-off-by: Dominik Brodowski

    Dominik Brodowski
     

15 Jun, 2015

1 commit

  • There are some resource leaks in yenta_probe() and _close(). I fixed
    the following issues with some code cleanups. Thanks to Dominik's
    suggestions.

    On the error path in yenta_probe():
    - a requested irq is not released
    - yenta_free_resources() and pci_set_drvdata(dev, NULL) are not called

    In yenta_close():
    - kfree(sock) is not called
    - sock->base is always set to non-NULL when yenta_close() is called,
    therefore the check in yenta_close() is not necessary.

    Signed-off-by: Takeshi Yoshimura
    Signed-off-by: Dominik Brodowski

    Takeshi Yoshimura
     

14 Jun, 2015

1 commit

  • Disable write buffering on the Toshiba ToPIC95 if it is enabled by
    somebody (it is not supposed to be a power-on default according to
    the datasheet). On the ToPIC95, practically no 32-bit Cardbus card
    will work under heavy load without locking up the whole system if
    this is left enabled. I tried about a dozen. It does not affect
    16-bit cards. This is similar to the O2 bugs in early controller
    revisions it seems.

    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=55961
    Cc:
    Signed-off-by: Ryan C. Underwood
    Signed-off-by: Dominik Brodowski

    Ryan Underwood
     

30 May, 2015

2 commits

  • Reduce object size a little by using dev_
    calls instead of dev_printk(KERN_.

    Other miscellanea:

    o Coalesce formats
    o Realign arguments
    o Use pr_cont instead of naked printk
    reorder test to use "%s\n"

    Signed-off-by: Joe Perches
    Signed-off-by: Dominik Brodowski

    Joe Perches
     
  • The Linux kernel coding style guidelines suggest not using typedefs
    for structure and enum types. This patch gets rid of the typedefs for
    vrc4171_slot_t, vrc4171_slotb_t and vrc4171_socket_t. Also, the names
    of the enums and the struct are changed to drop the _t, to make the
    name look less typedef-like.

    The following Coccinelle semantic patch detects the cases for struct type:

    @tn@
    identifier i;
    type td;
    @@

    -typedef
    struct i { ... }
    -td
    ;

    @@
    type tn.td;
    identifier tn.i;
    @@

    -td
    + struct i

    Signed-off-by: Himangi Saraogi
    Acked-by: Julia Lawall
    Signed-off-by: Dominik Brodowski

    Himangi Saraogi