1. 15 4月, 2015 1 次提交
  2. 13 4月, 2015 1 次提交
  3. 12 4月, 2015 1 次提交
  4. 11 4月, 2015 8 次提交
  5. 10 4月, 2015 16 次提交
  6. 09 4月, 2015 13 次提交
    • G
      hwmon: (it87) Use feature macros on sio_data · f83a9cb6
      Guenter Roeck 提交于
      Feature macros work on sio_data as well, so use them there.
      Reviewed-by: NJean Delvare <jdelvare@suse.de>
      Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
      f83a9cb6
    • F
      mmc: sdhci-esdhc-imx: Call mmc_of_parse() · 8d86e4fc
      Fabio Estevam 提交于
      Currently it is not possible to use 'mmc-pwrseq-simple' property with this
      driver because mmc_of_parse() is never called.
      
      mmc_of_parse() calls mmc_pwrseq_alloc() that manages MMC power sequence and
      allows passing GPIOs in the devicetree to properly power/reset the Wifi
      chipset.
      
      When using mmc_of_parse() we no longer need to have custom code to request
      card-detect and write-protect pins, as this can now be handled by the mmc
      core.
      
      Tested on a imx6sl-warp board where BT/Wifi is functional and also on a
      imx6q-sabresd.
      Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      8d86e4fc
    • D
      mmc: dw_mmc: Add locking around cmd11 timer · 49ba0302
      Doug Anderson 提交于
      It is possible for the cmd11 interrupt to fire and delete the
      cmd11_timer before the cmd11_timer was actually setup.  Let's fix this
      race by adding a few spinlocks.  Note that the race wasn't seen in
      practice without adding some printk statements, but it still seems
      wise to fix.
      
      Fixes: 5c935165 ("mmc: dw_mmc: Add a timeout for sending CMD11")
      Signed-off-by: NDoug Anderson <dianders@chromium.org>
      Signed-off-by: NJaehoon Chung <jh80.chung@samsung.com>
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      49ba0302
    • D
      mmc: dw_mmc: Add a return in an unexpected cmd11 timeout · fd674198
      Doug Anderson 提交于
      If we get an unexpected cmd11 timeout we shouldn't actually treat it
      as a timeout (not that we really expect to get an unexpected cmd11
      timeout, but still).
      
      Fixes: 5c935165 ("mmc: dw_mmc: Add a timeout for sending CMD11")
      Reported-by: NJaehoon Chung <jh80.chung@samsung.com>
      Signed-off-by: NDoug Anderson <dianders@chromium.org>
      Signed-off-by: NJaehoon Chung <jh80.chung@samsung.com>
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      fd674198
    • D
      mmc: dw_mmc: Increase cmd11 timeout to 500ms · 8886a6fd
      Doug Anderson 提交于
      Although the cmd11 interrupt should come within 2ms, that's a very
      short time.  Let's increase the timeout to be really sure that we
      don't get an accidnetal timeout.  One case in particular this is
      useful is if you've got a serial console and printk in just the right
      places.  Under that scenario I've seen delays of up to 130ms before
      the interrupt fired.
      
      CMD11 is only sent during card insertion, so this extra timeout
      shouldn't be terrible.
      
      Fixes: 5c935165 ("mmc: dw_mmc: Add a timeout for sending CMD11")
      Signed-off-by: NDoug Anderson <dianders@chromium.org>
      Signed-off-by: NJaehoon Chung <jh80.chung@samsung.com>
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      8886a6fd
    • B
      mmc: dw_mmc: fix fifo ordering in big endian · 76184ac1
      Ben Dooks 提交于
      The dw_mmc driver changes to make the IO accesors endian agnostic did not
      take into account the fifo accesses do not need to be swapped. To fix this
      add a mmci_fifo_read/write wrapper to allow these to be passed through the
      IO without being swapped.
      
      Since these are now specific functions, it would be easier just to store
      the pointer to the fifo registers in the host block instead of the offset
      to them. So change the host->data_offset to host->fifo_reg (which also
      means we catch all the places this is read or written).
      Signed-off-by: NBen Dooks <ben.dooks@codethink.co.uk>
      Signed-off-by: NJaehoon Chung <jh80.chung@samsung.com>
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      76184ac1
    • B
      mmc: dw_mmc: change idmac descriptor files to __le32 · 6687c42f
      Ben Dooks 提交于
      The dw_mmc driver does not take into account the processor may be in
      big endian when writing the descriptors. Change the descriptors for
      the 32bit IDMA to use __le32 and ensure they are suitably swapped
      before writing.
      
      Note, this has not been tested as the socfpga driver does not try to
      use idma.
      Signed-off-by: NBen Dooks <ben.dooks@codethink.co.uk>
      Signed-off-by: NJaehoon Chung <jh80.chung@samsung.com>
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      6687c42f
    • B
      mmc: dw_mmc: make IO accessors endian agnostic · a2f17680
      Ben Dooks 提交于
      The dw_mmc driver does not use endian agnostic IO accessors, so fix
      the use of __raw reads and writes to be the relaxed versions.
      
      This fixes the dw_mmc driver initialisation on Altera socfpga in big endian.
      Signed-off-by: NBen Dooks <ben.dooks@codethink.co.uk>
      Signed-off-by: NJaehoon Chung <jh80.chung@samsung.com>
      Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
      a2f17680
    • G
      hwmon: (ibmpowernv) Fix build error seen for some configurations · 8416915c
      Guenter Roeck 提交于
      Fix
      drivers/hwmon/ibmpowernv.c: In function 'get_logical_cpu':
      drivers/hwmon/ibmpowernv.c:121:3:
      	error: implicit declaration of function 'get_hard_smp_processor_id'
      
      seen for some configurations, possibly if SMP is not configured.
      
      Fixes: 3df2f59f ("hwmon: (ibmpowernv) pretty print labels")
      Cc: Cédric Le Goater <clg@fr.ibm.com>
      Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
      8416915c
    • N
      hwmon: (gpio-fan) Move the thermal registration after registration is complete · e76ea261
      Nishanth Menon 提交于
      Thermal framework may already be ready and cooling policies might
      already be functional when we are attempting to register gpio fan as
      a cooling device. This can be reproduced by changing probe order in
      which registration of various modules are done in a system. In such
      a case, kernel generates an oops since the data structures are not
      completely populated with the wrong assumption that thermal framework
      is not yet ready. Fix this by reordering the thermal framework
      registration to occur after hwmon registration of the fan is complete.
      
      Example kernel oops:
      [  149.005828] Unable to handle kernel NULL pointer dereference at virtual address 0000008c
      [  149.014369] pgd = ecf48000
      [  149.017204] [0000008c] *pgd=ac065831, *pte=00000000, *ppte=00000000
      [  149.023820] Internal error: Oops: 17 [#1] SMP ARM
      [  149.028745] Modules linked in: gpio_fan(+) cpufreq_dt ipv6 evdev leds_gpio led_class omap_wdt phy_omap_usb2 rtc_palmas palmas_pwrbutton tmp102 ti_soc_thermal dwc3_omap thermal_sys extcon rtc_omap rtc_ds1307 hwmon
      [  149.048629] CPU: 1 PID: 1183 Comm: modprobe Not tainted 4.0.0-rc7-next-20150407-00002-g7a82da074c99 #3
      [  149.058383] Hardware name: Generic DRA74X (Flattened Device Tree)
      [  149.064763] task: edec1240 ti: ec0e0000 task.ti: ec0e0000
      [  149.070421] PC is at dev_driver_string+0x0/0x38
      [  149.075165] LR is at __dev_printk+0x24/0x70
      [  149.079540] pc : [<c03d6cd0>]    lr : [<c03d72c4>]    psr: 20000013
      [  149.079540] sp : ec0e1c28  ip : edec1240  fp : 00000000
      [  149.091568] r10: edf3eee0  r9 : 00000000  r8 : ffffffff
      [  149.097040] r7 : edf3eea0  r6 : 00000034  r5 : 00000010  r4 : ec0e1c44
      [  149.103871] r3 : ec0e1c4c  r2 : ec0e1c44  r1 : c079d800  r0 : 00000010
      [  149.110709] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
      [  149.118182] Control: 10c5387d  Table: acf4806a  DAC: 00000015
      [  149.124198] Process modprobe (pid: 1183, stack limit = 0xec0e0218)
      [  149.130673] Stack: (0xec0e1c28 to 0xec0e2000)
      [  149.135235] 1c20:                   60000013 c05e2ae0 00000000 edf3ec00 ec934a10 c03d73d4
      ...
      [  149.392230] 1fe0: befe1888 befe1878 00019418 b6ea08f0 80000010 00000003 00000000 00000000
      [  149.400798] [<c03d6cd0>] (dev_driver_string) from [<c03d72c4>] (__dev_printk+0x24/0x70)
      [  149.409193] [<c03d72c4>] (__dev_printk) from [<c03d73d4>] (dev_warn+0x34/0x48)
      [  149.416767] [<c03d73d4>] (dev_warn) from [<bf0f54fc>] (get_fan_speed_index+0x94/0xa4 [gpio_fan])
      [  149.425980] [<bf0f54fc>] (get_fan_speed_index [gpio_fan]) from [<bf0f5524>] (gpio_fan_get_cur_state+0x18/0x30 [gpio_fan])
      [  149.437476] [<bf0f5524>] (gpio_fan_get_cur_state [gpio_fan]) from [<bf02767c>] (thermal_zone_trip_update+0xe8/0x2a4 [thermal_sys])
      [  149.449794] [<bf02767c>] (thermal_zone_trip_update [thermal_sys]) from [<bf027844>] (step_wise_throttle+0xc/0x74 [thermal_sys])
      [  149.461832] [<bf027844>] (step_wise_throttle [thermal_sys]) from [<bf024ff4>] (handle_thermal_trip+0x5c/0x188 [thermal_sys])
      [  149.473603] [<bf024ff4>] (handle_thermal_trip [thermal_sys]) from [<bf0256c4>] (thermal_zone_device_update+0x94/0x108 [thermal_sys])
      [  149.486104] [<bf0256c4>] (thermal_zone_device_update [thermal_sys]) from [<bf026470>] (__thermal_cooling_device_register+0x2e8/0x374 [thermal_sys])
      [  149.499956] [<bf026470>] (__thermal_cooling_device_register [thermal_sys]) from [<bf0f58e4>] (gpio_fan_probe+0x350/0x4d0 [gpio_fan])
      [  149.512438] [<bf0f58e4>] (gpio_fan_probe [gpio_fan]) from [<c03db8a0>] (platform_drv_probe+0x48/0x98)
      [  149.522109] [<c03db8a0>] (platform_drv_probe) from [<c03da30c>] (driver_probe_device+0x1b0/0x26c)
      [  149.531399] [<c03da30c>] (driver_probe_device) from [<c03da45c>] (__driver_attach+0x94/0x98)
      [  149.540238] [<c03da45c>] (__driver_attach) from [<c03d8bb0>] (bus_for_each_dev+0x54/0x88)
      [  149.548814] [<c03d8bb0>] (bus_for_each_dev) from [<c03d9a34>] (bus_add_driver+0xdc/0x1d4)
      [  149.557381] [<c03d9a34>] (bus_add_driver) from [<c03dac30>] (driver_register+0x78/0xf4)
      [  149.565765] [<c03dac30>] (driver_register) from [<c0009784>] (do_one_initcall+0x80/0x1d8)
      [  149.574340] [<c0009784>] (do_one_initcall) from [<c00c2278>] (do_init_module+0x5c/0x1b8)
      [  149.582833] [<c00c2278>] (do_init_module) from [<c00c3bbc>] (load_module+0x1720/0x1dcc)
      [  149.591212] [<c00c3bbc>] (load_module) from [<c00c43d0>] (SyS_finit_module+0x68/0x6c)
      [  149.599418] [<c00c43d0>] (SyS_finit_module) from [<c000f3c0>] (ret_fast_syscall+0x0/0x4c)
      [  149.607994] Code: 15830000 e1a00006 e28dd008 e8bd8070 (e590307c)
      
      Cc: Eduardo Valentin <edubezval@gmail.com>
      Fixes: b5cf88e4 ("(gpio-fan): Add thermal control hooks")
      Signed-off-by: NNishanth Menon <nm@ti.com>
      Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
      e76ea261
    • M
      irqchip: GICv3: Add support for irq_[get, set]_irqchip_state() · b594c6e2
      Marc Zyngier 提交于
      Add the required hooks for the internal state of an interrupt
      to be exposed to other subsystems.
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
      Cc: Stephen Boyd <sboyd@codeaurora.org>
      Cc: Phong Vo <pvo@apm.com>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Tin Huynh <tnhuynh@apm.com>
      Cc: Y Vo <yvo@apm.com>
      Cc: Toan Le <toanle@apm.com>
      Cc: Bjorn Andersson <bjorn@kryo.se>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Link: http://lkml.kernel.org/r/1426676484-21812-4-git-send-email-marc.zyngier@arm.comSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      b594c6e2
    • M
      irqchip: GIC: Add support for irq_[get, set]_irqchip_state() · 56717807
      Marc Zyngier 提交于
      Add the required hooks for the internal state of an interrupt
      to be exposed to other subsystems.
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
      Cc: Stephen Boyd <sboyd@codeaurora.org>
      Cc: Phong Vo <pvo@apm.com>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Tin Huynh <tnhuynh@apm.com>
      Cc: Y Vo <yvo@apm.com>
      Cc: Toan Le <toanle@apm.com>
      Cc: Bjorn Andersson <bjorn@kryo.se>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Link: http://lkml.kernel.org/r/1426676484-21812-3-git-send-email-marc.zyngier@arm.comSigned-off-by: NThomas Gleixner <tglx@linutronix.de>
      56717807
    • A
      PCI/ACPI: Optimize device state transition delays · e33caa82
      Aaron Lu 提交于
      The PCI "ACPI additions for FW latency optimizations" ECN (link below)
      defines two functions in the PCI _DSM:
      
        Function 8, "Reset Delay," applies to the entire hierarchy below a PCI
        host bridge.  If it returns one, the OS may assume that all devices in
        the hierarchy have already completed power-on reset delays.
      
        Function 9, "Device Readiness Durations," applies only to the object
        where it is located.  It returns delay durations required after various
        events if the device requires less time than the spec requires.  Delays
        from this function take precedence over the Reset Delay function.
      
      Add support for Reset Delay and part of Device Readiness Durations.
      
      [bhelgaas: changelog, comments]
      Link: https://www.pcisig.com/specifications/conventional/pci_firmware/ECN_fw_latency_optimization_final.pdfSigned-off-by: NAaron Lu <aaron.lu@intel.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      e33caa82