22 Jun, 2015

3 commits


15 Jun, 2015

10 commits

  • Some ECs need a little time for waking up before they can accept
    SPI data at a high speed. This is configurable via a DT property
    "google,cros-ec-spi-pre-delay".

    This patch makes the cros_ec_spi driver to cause a delay before
    the beginning of a SPI transaction, to make sure that the EC has
    already woken up, if the property has been defined in the DTS.

    Signed-off-by: Alexandru M Stan
    Reviewed-by: Doug Anderson
    Signed-off-by: Chris Zhong
    Signed-off-by: Javier Martinez Canillas
    Tested-by: Heiko Stuebner
    Acked-by: Lee Jones
    Acked-by: Olof Johansson
    Signed-off-by: Lee Jones

    Alexandru M Stan
     
  • Some ECs need a little time for waking up before they can accept
    SPI data at a high speed. Add a "google,cros-ec-spi-pre-delay"
    property to the DT binding to configure this.

    If this property isn't set, then no delay will be added. However,
    if set it will cause a delay equal to the value passed to it to
    be inserted at the beginning of a transaction.

    Signed-off-by: Alexandru M Stan
    Reviewed-by: Doug Anderson
    Signed-off-by: Chris Zhong
    Signed-off-by: Javier Martinez Canillas
    Tested-by: Heiko Stuebner
    Acked-by: Lee Jones
    Acked-by: Olof Johansson
    Signed-off-by: Lee Jones

    Alexandru M Stan
     
  • Chromebooks can have more than one Embedded Controller so the
    cros_ec device id has to be incremented for each EC registered.

    Add a new structure to represent multiple EC as different char
    devices (e.g: /dev/cros_ec, /dev/cros_pd). It connects to
    cros_ec_device and allows sysfs inferface for cros_pd.

    Also reduce number of allocated objects, make chromeos sysfs
    class object a static and add refcounting to prevent object
    deletion while command is in progress.

    Signed-off-by: Gwendal Grignou
    Reviewed-by: Dmitry Torokhov
    Signed-off-by: Javier Martinez Canillas
    Tested-by: Heiko Stuebner
    Acked-by: Lee Jones
    Acked-by: Olof Johansson
    Signed-off-by: Lee Jones

    Gwendal Grignou
     
  • Add proto v3 support to the SPI, I2C, and LPC.

    Signed-off-by: Stephen Barber
    Signed-off-by: Javier Martinez Canillas
    Tested-by: Heiko Stuebner
    Reviewed-by: Gwendal Grignou
    Tested-by: Gwendal Grignou
    Acked-by: Lee Jones
    Acked-by: Olof Johansson
    Signed-off-by: Lee Jones

    Stephen Barber
     
  • Add support in cros_ec.c to handle EC host command protocol v3.
    For v3+, probe for maximum shared protocol version and max
    request, response, and passthrough sizes. For now, this will
    always fall back to v2, since there is no bus-specific code
    for handling proto v3 packets.

    Signed-off-by: Stephen Barber
    Signed-off-by: Javier Martinez Canillas
    Reviewed-by: Gwendal Grignou
    Tested-by: Gwendal Grignou
    Tested-by: Heiko Stuebner
    Acked-by: Lee Jones
    Acked-by: Olof Johansson
    Signed-off-by: Lee Jones

    Stephen Barber
     
  • The MFD driver should only have the logic to instantiate its child devices
    and setup any shared resources that will be used by the subdevices drivers.

    The cros_ec MFD is more complex than expected since it also has helpers to
    communicate with the EC. So the driver will only get more bigger as other
    protocols are supported in the future. So move the communication protocol
    helpers to its own driver as drivers/platform/chrome/cros_ec_proto.c.

    Suggested-by: Lee Jones
    Signed-off-by: Javier Martinez Canillas
    Tested-by: Heiko Stuebner
    Acked-by: Lee Jones
    Acked-by: Olof Johansson
    Signed-off-by: Lee Jones

    Javier Martinez Canillas
     
  • Update cros_ec_commands.h to the latest version in the EC
    firmware sources and add power domain and passthru commands.

    Also, update lightbar to use new command names.

    Signed-off-by: Stephen Barber
    Reviewed-by: Randall Spangler
    Signed-off-by: Javier Martinez Canillas
    Tested-by: Heiko Stuebner
    Reviewed-by: Gwendal Grignou
    Tested-by: Gwendal Grignou
    Acked-by: Lee Jones
    Acked-by: Olof Johansson
    Signed-off-by: Lee Jones

    Stephen Barber
     
  • Commit 1b84f2a4cd4a ("mfd: cros_ec: Use fixed size arrays to transfer
    data with the EC") modified the struct cros_ec_command fields to not
    use pointers for the input and output buffers and use fixed length
    arrays instead.

    This change was made because the cros_ec ioctl API uses that struct
    cros_ec_command to allow user-space to send commands to the EC and
    to get data from the EC. So using pointers made the API not 64-bit
    safe. Unfortunately this approach was not flexible enough for all
    the use-cases since there may be a need to send larger commands
    on newer versions of the EC command protocol.

    So to avoid to choose a constant length that it may be too big for
    most commands and thus wasting memory and CPU cycles on copy from
    and to user-space or having a size that is too small for some big
    commands, use a zero-length array that is both 64-bit safe and
    flexible. The same buffer is used for both output and input data
    so the maximum of these values should be used to allocate it.

    Suggested-by: Gwendal Grignou
    Signed-off-by: Javier Martinez Canillas
    Tested-by: Heiko Stuebner
    Acked-by: Lee Jones
    Acked-by: Olof Johansson
    Signed-off-by: Lee Jones

    Javier Martinez Canillas
     
  • If the EC device tree node has sub-nodes, try to instantiate them as
    MFD sub-devices. We can configure the EC features provided by the board.

    Signed-off-by: Todd Broch
    Signed-off-by: Javier Martinez Canillas
    Reviewed-by: Gwendal Grignou
    Tested-by: Heiko Stuebner
    Signed-off-by: Lee Jones

    Todd Broch
     
  • Parent and device were pointing to the same device structure.

    Parent is unused, removed.

    Signed-off-by: Gwendal Grignou
    Tested-by: Stephen Barber
    Tested-by: Heiko Stuebner
    Tested-by: Gwendal Grignou
    Reviewed-by: Puthikorn Voravootivat
    Signed-off-by: Javier Martinez Canillas
    Signed-off-by: Lee Jones

    Gwendal Grignou
     

13 May, 2015

6 commits

  • Now that the axp20x-regulators driver supports different variants of the
    AXP family, we can enable regulator support for AXP22X without the risk
    of incorrectly configuring regulators.

    Signed-off-by: Chen-Yu Tsai
    Signed-off-by: Lee Jones

    Chen-Yu Tsai
     
  • Add the list of regulators for AXP22x to the DT bindings.
    This includes the names and supply names.

    Signed-off-by: Chen-Yu Tsai
    Signed-off-by: Lee Jones

    Chen-Yu Tsai
     
  • Add AXP22X regulator definitions and variant id associations.
    This introduces a new "switch" type output for one of the regulators.
    It is a switchable secondary output of one regulator, with the same
    voltage level as the primary output.

    Signed-off-by: Boris BREZILLON
    [wens@csie.org: Moved variant choosing to multi family support patch]
    [wens@csie.org: Add dc-dc work frequency range]
    [wens@csie.org: Add "switch" type output regulator DC1SW]
    Signed-off-by: Chen-Yu Tsai
    Reviewed-by: Mark Brown
    Signed-off-by: Lee Jones

    Boris BREZILLON
     
  • Rework the AXP20X_ macros and probe function to support the several chip
    families, so that each family can define it's own set of regulators.

    Signed-off-by: Boris BREZILLON
    [wens@csie.org: Support different DC-DC work frequency ranges]
    Signed-off-by: Chen-Yu Tsai
    Reviewed-by: Mark Brown
    Signed-off-by: Lee Jones

    Boris BREZILLON
     
  • Add AXP221 to the list of supported devices.

    Also replace any mention of AXP20x in the document with a
    generic "PMIC".

    Signed-off-by: Chen-Yu Tsai
    Signed-off-by: Lee Jones

    Chen-Yu Tsai
     
  • Add support for the AXP22x PMIC devices to the existing AXP20x driver.
    This includes the AXP221 and AXP223, which are identical except for
    the external data bus. Only AXP221 is added for now. AXP223 will be
    added after it's Reduced Serial Bus (RSB) interface is supported.

    AXP22x defines a new set of registers, power supplies and regulators,
    but most of the API is similar to the AXP20x ones.

    A new irq chip definition is used, even though the available interrupts
    on AXP22x is a subset of those on AXP20x. This is done so the interrupt
    numbers match those on the datasheet.

    This patch only enables the interrupts, system power-off function, and PEK
    sub-device. The regulator driver must first support different variants
    before we enable it from the mfd driver.

    Signed-off-by: Boris BREZILLON
    [wens@csie.org: fix interrupts and move regulators to separate patch]
    Signed-off-by: Chen-Yu Tsai
    Signed-off-by: Lee Jones

    Boris BREZILLON
     

04 May, 2015

8 commits

  • Linus Torvalds
     
  • Pull ext4 fixes from Ted Ts'o:
    "Some miscellaneous bug fixes and some final on-disk and ABI changes
    for ext4 encryption which provide better security and performance"

    * tag 'for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
    ext4: fix growing of tiny filesystems
    ext4: move check under lock scope to close a race.
    ext4: fix data corruption caused by unwritten and delayed extents
    ext4 crypto: remove duplicated encryption mode definitions
    ext4 crypto: do not select from EXT4_FS_ENCRYPTION
    ext4 crypto: add padding to filenames before encrypting
    ext4 crypto: simplify and speed up filename encryption

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "One intel fix, one rockchip fix, and a bunch of radeon fixes for some
    regressions from audio rework and vm stability"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    drm/i915/chv: Implement WaDisableShadowRegForCpd
    drm/radeon: fix userptr return value checking (v2)
    drm/radeon: check new address before removing old one
    drm/radeon: reset BOs address after clearing it.
    drm/radeon: fix lockup when BOs aren't part of the VM on release
    drm/radeon: add SI DPM quirk for Sapphire R9 270 Dual-X 2G GDDR5
    drm/radeon: adjust pll when audio is not enabled
    drm/radeon: only enable audio streams if the monitor supports it
    drm/radeon: only mark audio as connected if the monitor supports it (v3)
    drm/radeon/audio: don't enable packets until the end
    drm/radeon: drop dce6_dp_enable
    drm/radeon: fix ordering of AVI packet setup
    drm/radeon: Use drm_calloc_ab for CS relocs
    drm/rockchip: fix error check when getting irq
    MAINTAINERS: add entry for Rockchip drm drivers

    Linus Torvalds
     
  • Just a single intel fix
    * tag 'drm-intel-fixes-2015-04-30' of git://anongit.freedesktop.org/drm-intel:
    drm/i915/chv: Implement WaDisableShadowRegForCpd

    Dave Airlie
     
  • one fix and maintainers update
    * 'drm-next0420' of https://github.com/markyzq/kernel-drm-rockchip:
    drm/rockchip: fix error check when getting irq
    MAINTAINERS: add entry for Rockchip drm drivers

    Dave Airlie
     
  • Pull SCSI fixes from James Bottomley:
    "This is three logical fixes (as 5 patches).

    The 3ware class of drivers were causing an oops with multiqueue by
    tearing down the command mappings after completing the command (where
    the variables in the command used to tear down the mapping were
    no-longer valid). There's also a fix for the qnap iscsi target which
    was choking on us sending it commands that were too long and a fix for
    the reworked aha1542 allocating GFP_KERNEL under a lock"

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    3w-9xxx: fix command completion race
    3w-xxxx: fix command completion race
    3w-sas: fix command completion race
    aha1542: Allocate memory before taking a lock
    SCSI: add 1024 max sectors black list flag

    Linus Torvalds
     
  • Pull slave dmaengine fixes from Vinod Koul:
    "Here are the fixes in dmaengine subsystem for rc2:

    - privatecnt fix for slave dma request API by Christopher

    - warn fix for PM ifdef in usb-dmac by Geert

    - fix hardware dependency for xgene by Jean"

    * 'next' of git://git.infradead.org/users/vkoul/slave-dma:
    dmaengine: increment privatecnt when using dma_get_any_slave_channel
    dmaengine: xgene: Set hardware dependency
    dmaengine: usb-dmac: Protect PM-only functions to kill warning

    Linus Torvalds
     
  • Pull powerpc fixes from Michael Ellerman:
    - build fix for SMP=n in book3s_xics.c
    - fix for Daniel's pci_controller_ops on powernv.
    - revert the TM syscall abort patch for now.
    - CPU affinity fix from Nathan.
    - two EEH fixes from Gavin.
    - fix for CR corruption from Sam.
    - selftest build fix.

    * tag 'powerpc-4.1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux:
    powerpc/powernv: Restore non-volatile CRs after nap
    powerpc/eeh: Delay probing EEH device during hotplug
    powerpc/eeh: Fix race condition in pcibios_set_pcie_reset_state()
    powerpc/pseries: Correct cpu affinity for dlpar added cpus
    selftests/powerpc: Fix the pmu install rule
    Revert "powerpc/tm: Abort syscalls in active transactions"
    powerpc/powernv: Fix early pci_controller_ops loading.
    powerpc/kvm: Fix SMP=n build error in book3s_xics.c

    Linus Torvalds
     

03 May, 2015

3 commits

  • The estimate of necessary transaction credits in ext4_flex_group_add()
    is too pessimistic. It reserves credit for sb, resize inode, and resize
    inode dindirect block for each group added in a flex group although they
    are always the same block and thus it is enough to account them only
    once. Also the number of modified GDT block is overestimated since we
    fit EXT4_DESC_PER_BLOCK(sb) descriptors in one block.

    Make the estimation more precise. That reduces number of requested
    credits enough that we can grow 20 MB filesystem (which has 1 MB
    journal, 79 reserved GDT blocks, and flex group size 16 by default).

    Signed-off-by: Jan Kara
    Signed-off-by: Theodore Ts'o
    Reviewed-by: Eric Sandeen

    Jan Kara
     
  • fallocate() checks that the file is extent-based and returns
    EOPNOTSUPP in case is not. Other tasks can convert from and to
    indirect and extent so it's safe to check only after grabbing
    the inode mutex.

    Signed-off-by: Davide Italiano
    Signed-off-by: Theodore Ts'o
    Cc: stable@vger.kernel.org

    Davide Italiano
     
  • Currently it is possible to lose whole file system block worth of data
    when we hit the specific interaction with unwritten and delayed extents
    in status extent tree.

    The problem is that when we insert delayed extent into extent status
    tree the only way to get rid of it is when we write out delayed buffer.
    However there is a limitation in the extent status tree implementation
    so that when inserting unwritten extent should there be even a single
    delayed block the whole unwritten extent would be marked as delayed.

    At this point, there is no way to get rid of the delayed extents,
    because there are no delayed buffers to write out. So when a we write
    into said unwritten extent we will convert it to written, but it still
    remains delayed.

    When we try to write into that block later ext4_da_map_blocks() will set
    the buffer new and delayed and map it to invalid block which causes
    the rest of the block to be zeroed loosing already written data.

    For now we can fix this by simply not allowing to set delayed status on
    written extent in the extent status tree. Also add WARN_ON() to make
    sure that we notice if this happens in the future.

    This problem can be easily reproduced by running the following xfs_io.

    xfs_io -f -c "pwrite -S 0xaa 4096 2048" \
    -c "falloc 0 131072" \
    -c "pwrite -S 0xbb 65536 2048" \
    -c "fsync" /mnt/test/fff

    echo 3 > /proc/sys/vm/drop_caches
    xfs_io -c "pwrite -S 0xdd 67584 2048" /mnt/test/fff

    This can be theoretically also reproduced by at random by running fsx,
    but it's not very reliable, though on machines with bigger page size
    (like ppc) this can be seen more often (especially xfstest generic/127)

    Signed-off-by: Lukas Czerner
    Signed-off-by: Theodore Ts'o
    Cc: stable@vger.kernel.org

    Lukas Czerner
     

02 May, 2015

10 commits

  • This patch removes duplicated encryption modes which were already in
    ext4.h. They were duplicated from commit 3edc18d and commit f542fb.

    Cc: Theodore Ts'o
    Cc: Michael Halcrow
    Cc: Andreas Dilger
    Signed-off-by: Chanho Park
    Signed-off-by: Theodore Ts'o

    Chanho Park
     
  • This patch adds a tristate EXT4_ENCRYPTION to do the selections
    for EXT4_FS_ENCRYPTION because selecting from a bool causes all
    the selected options to be built-in, even if EXT4 itself is a
    module.

    Signed-off-by: Herbert Xu
    Signed-off-by: Theodore Ts'o

    Herbert Xu
     
  • Pull networking fixes from David Miller:

    1) Receive packet length needs to be adjust by 2 on RX to accomodate
    the two padding bytes in altera_tse driver. From Vlastimil Setka.

    2) If rx frame is dropped due to out of memory in macb driver, we leave
    the receive ring descriptors in an undefined state. From Punnaiah
    Choudary Kalluri

    3) Some netlink subsystems erroneously signal NLM_F_MULTI. That is
    only for dumps. Fix from Nicolas Dichtel.

    4) Fix mis-use of raw rt->rt_pmtu value in ipv4, one must always go via
    the ipv4_mtu() helper. From Herbert Xu.

    5) Fix null deref in bridge netfilter, and miscalculated lengths in
    jump/goto nf_tables verdicts. From Florian Westphal.

    6) Unhash ping sockets properly.

    7) Software implementation of BPF divide did 64/32 rather than 64/64
    bit divide. The JITs got it right. Fix from Alexei Starovoitov.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (30 commits)
    ipv4: Missing sk_nulls_node_init() in ping_unhash().
    net: fec: Fix RGMII-ID mode
    net/mlx4_en: Schedule napi when RX buffers allocation fails
    netxen_nic: use spin_[un]lock_bh around tx_clean_lock
    net/mlx4_core: Fix unaligned accesses
    mlx4_en: Use correct loop cursor in error path.
    cxgb4: Fix MC1 memory offset calculation
    bnx2x: Delay during kdump load
    net: Fix Kernel Panic in bonding driver debugfs file: rlb_hash_table
    net: dsa: Fix scope of eeprom-length property
    net: macb: Fix race condition in driver when Rx frame is dropped
    hv_netvsc: Fix a bug in netvsc_start_xmit()
    altera_tse: Correct rx packet length
    mlx4: Fix tx ring affinity_mask creation
    tipc: fix problem with parallel link synchronization mechanism
    tipc: remove wrong use of NLM_F_MULTI
    bridge/nl: remove wrong use of NLM_F_MULTI
    bridge/mdb: remove wrong use of NLM_F_MULTI
    net: sched: act_connmark: don't zap skb->nfct
    trivial: net: systemport: bcmsysport.h: fix 0x0x prefix
    ...

    Linus Torvalds
     
  • Here the "other side" refers to the guest or host.

    Signed-off-by: Stefan Hajnoczi
    Signed-off-by: Rusty Russell
    Signed-off-by: Linus Torvalds

    Stefan Hajnoczi
     
  • With my job change kernel work will be "own time"; I'm keeping lguest
    and modules (and the virtio standards work), but virtio kernel has to
    go.

    This makes it clear that Michael is in charge. He's good, but having
    me watch over his shoulder won't help.

    Good luck Michael!

    Signed-off-by: Rusty Russell
    Signed-off-by: Linus Torvalds

    Rusty Russell
     
  • Pull Ceph RBD fix from Sage Weil.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
    rbd: end I/O the entire obj_request on error

    Linus Torvalds
     
  • If we don't do that, then the poison value is left in the ->pprev
    backlink.

    This can cause crashes if we do a disconnect, followed by a connect().

    Tested-by: Linus Torvalds
    Reported-by: Wen Xu
    Signed-off-by: David S. Miller

    David S. Miller
     
  • When we end I/O struct request with error, we need to pass
    obj_request->length as @nr_bytes so that the entire obj_request worth
    of bytes is completed. Otherwise block layer ends up confused and we
    trip on

    rbd_assert(more ^ (which == img_request->obj_request_count));

    in rbd_img_obj_callback() due to more being true no matter what. We
    already do it in most cases but we are missing some, in particular
    those where we don't even get a chance to submit any obj_requests, due
    to an early -ENOMEM for example.

    A number of obj_request->xferred assignments seem to be redundant but
    I haven't touched any of obj_request->xferred stuff to keep this small
    and isolated.

    Cc: Alex Elder
    Cc: stable@vger.kernel.org # 3.10+
    Reported-by: Shawn Edwards
    Reviewed-by: Sage Weil
    Signed-off-by: Ilya Dryomov

    Ilya Dryomov
     
  • This obscures the length of the filenames, to decrease the amount of
    information leakage. By default, we pad the filenames to the next 4
    byte boundaries. This costs nothing, since the directory entries are
    aligned to 4 byte boundaries anyway. Filenames can also be padded to
    8, 16, or 32 bytes, which will consume more directory space.

    Change-Id: Ibb7a0fb76d2c48e2061240a709358ff40b14f322
    Signed-off-by: Theodore Ts'o

    Theodore Ts'o
     
  • Avoid using SHA-1 when calculating the user-visible filename when the
    encryption key is available, and avoid decrypting lots of filenames
    when searching for a directory entry in a directory block.

    Change-Id: If4655f144784978ba0305b597bfa1c8d7bb69e63
    Signed-off-by: Theodore Ts'o

    Theodore Ts'o