1. 27 4月, 2015 1 次提交
  2. 15 4月, 2015 1 次提交
  3. 13 4月, 2015 1 次提交
  4. 12 4月, 2015 1 次提交
  5. 11 4月, 2015 9 次提交
    • F
      dmaengine: cppi41: add missing bitfields · ffeb13aa
      Felipe Balbi 提交于
      Add missing directions, residue_granularity,
      srd_addr_widths and dst_addr_widths bitfields.
      
      Without those we will see a kernel WARN()
      when loading musb on am335x devices.
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      Signed-off-by: NVinod Koul <vinod.koul@intel.com>
      ffeb13aa
    • C
      ipmi_ssif: Use interruptible completion for waiting in the thread · d0acf734
      Corey Minyard 提交于
      The code was using an normal completion, but that caused stuck
      task errors after a while.  Use an interruptible one to avoid that.
      Signed-off-by: NCorey Minyard <cminyard@mvista.com>
      d0acf734
    • A
      ipmi/powernv: Fix minor locking bug · ad1ed2a9
      Alistair Popple 提交于
      If ipmi_powernv_recv(...) is called without a current message it
      prints a warning and returns. However it fails to release the message
      lock causing the system to dead lock during any subsequent IPMI
      operations.
      
      This error path should never normally be taken unless there are bugs
      elsewhere in the system.
      Signed-off-by: NAlistair Popple <alistair@popple.id.au>
      Signed-off-by: NCorey Minyard <cminyard@mvista.com>
      ad1ed2a9
    • C
      ipmi: Handle BMCs that don't allow clearing the rcv irq bit · 1e7d6a45
      Corey Minyard 提交于
      Some BMCs don't let you clear the receive irq bit in the global
      enables.  This is kind of silly, but they give an error if you
      try to clear it.  Compensate for this by detecting the situation
      and working around it.
      Signed-off-by: NCorey Minyard <cminyard@mvista.com>
      Tested-by: NThomas D <whissi@whissi.de>
      Reviewed-by: NThomas D <whissi@whissi.de>
      1e7d6a45
    • S
      HID: sensor: Custom and Generic sensor support · 4a7de051
      Srinivas Pandruvada 提交于
      HID Sensor Spec defines two usage ids for custom sensors
      
      	HID_USAGE_SENSOR_TYPE_OTHER_CUSTOM (0x09, 0xE1)
      	HID_USAGE_SENSOR_TYPE_OTHER_GENERIC(0x09, 0xE2)
      
      	In addition the standard also defines usage ids for custom fields.
      The purpose of these sensors is to extend the functionality or provide a way to
      obfuscate the data being communicated by a sensor. Without knowing the mapping
      between the data and its encapsulated form, it is difficult for an driver to
      determine what data is being communicated by the sensor.  This allows some
      differentiating use cases, where vendor can provide applications.  Since these
      can't be represented by standard sensor interfaces like IIO, we present these
      as fields with
      
      - type (input/output)
      - units
      - min/max
      - get/set value
      
      In addition an dev interface to transfer report events. Details about this
      interface is described in /Documentation/hid/hid-sensor.txt.  Manufacturers
      should not use these ids for any standard sensors, otherwise the the
      product/vendor id can be added to black list.
      Signed-off-by: NSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
      Reviewed-by: NJonathan Cameron <jic23@kernel.org>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      4a7de051
    • M
      iscsi target: fix oops when adding reject pdu · b815fc12
      Mike Christie 提交于
      This fixes a oops due to a double list add when adding a reject PDU for
      iscsit_allocate_iovecs allocation failures. The cmd has already been
      added to the conn_cmd_list in iscsit_setup_scsi_cmd, so this has us call
      iscsit_reject_cmd.
      
      Note that for ERL0 the reject PDU is not actually sent, so this patch
      is not completely tested. Just verified we do not oops. The problem is the
      add reject functions return -1 which is returned all the way up to
      iscsi_target_rx_thread which for ERL0 will drop the connection.
      Signed-off-by: NMike Christie <michaelc@cs.wisc.edu>
      Cc: <stable@vger.kernel.org> # v3.10+
      Signed-off-by: NNicholas Bellinger <nab@linux-iscsi.org>
      b815fc12
    • M
      spi: bcm2835: enabling polling mode for transfers shorter than 30us · 704f32d4
      Martin Sperl 提交于
      In cases of short transfer times the CPU is spending lots of time
      in the interrupt handler and scheduler to reschedule the worker thread.
      
      Measurements show that we have times where it takes 29.32us to between
      the last clock change and the time that the worker-thread is running again
      returning from wait_for_completion_timeout().
      
      During this time the interrupt-handler is running calling complete()
      and then also the scheduler is rescheduling the worker thread.
      
      This time can vary depending on how much of the code is still in
      CPU-caches, when there is a burst of spi transfers the subsequent delays
      are in the order of 25us, so the value of 30us seems reasonable.
      
      With polling the whole transfer of 4 bytes at 10MHz finishes after 6.16us
      (CS down to up) with the real transfer (clock running) taking 3.56us.
      So the efficiency has much improved and is also freeing CPU cycles,
      reducing interrupts and context switches.
      
      Because of the above 30us seems to be a reasonable limit for polling.
      Signed-off-by: NMartin Sperl <kernel@martin.sperl.org>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      704f32d4
    • M
      spi: bcm2835: transform native-cs to gpio-cs on first spi_setup · a30a555d
      Martin Sperl 提交于
      Transforms the bcm-2835 native SPI-chip select to their gpio-cs equivalent.
      
      This allows for some support of some optimizations that are not
      possible due to HW-gliches on the CS line - especially filling
      the FIFO before enabling SPI interrupts (by writing to CS register)
      while the transfer is already in progress (See commit: e3a2be30)
      
      This patch also works arround some issues in bcm2835-pinctrl which does not
      set the value when setting the GPIO as output - it just sets up output and
      (typically) leaves the GPIO as low.  When a fix for this is merged then this
      gpio_set_value can get removed from bcm2835_spi_setup.
      Signed-off-by: NMartin Sperl <kernel@martin.sperl.org>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      a30a555d
    • M
      regulator: max8660: Handle empty regulator data · c0cf5a59
      Markus Pargmann 提交于
      It is not necessary to have regulator init data for a regulator. This
      patch removes the necessity of this data and handles a NULL pointer
      properly.
      Signed-off-by: NMarkus Pargmann <mpa@pengutronix.de>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      c0cf5a59
  6. 10 4月, 2015 17 次提交
  7. 09 4月, 2015 10 次提交
    • 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