{"push_id":1026226946,"size":14,"distinct_size":0,"ref":"refs/heads/stable/cm-13.0-ZNH0E","head":"4f3fb4c12c44154ecce2cd70f4521b6fb224a807","before":"3e127ab4bad318b412e2fc9fc43e77386effac25","commits":[{"sha":"167742e3d4adb679243adf487f774b2850de7ebb","author":{"email":"9ce5770b3bb4b2a1d59be2d97e34379cd192299f@cyngn.com","name":"Steve Kondik"},"message":"video: mdss: LiveDisplay driver\n\n * Provide a simple color temperature adjustment interface via MDSS PCC.\n * Provide hardware integration support for CABC, SRE, and CE.\n\nChange-Id: I4ed1f3876767dd6bedccaf0bbf61af7d36730ca0\n\nvideo: mdss: Add new features and improve LiveDisplay\n\n * Add support for auto contrast optimization.\n * Add preset support.\n * Presets are arbitrary sets of DSI commands (defined in the DT) which\n   can be used for implementing device-specific modes.\n * This adds the \"preset\" and \"num_presets\" sysfs nodes.\n * The preset at position zero is always applied.\n * Completely reworked the way we send commands to the hardware. Now we\n   create a single DSI command buffer and send the whole thing at once.\n\nChange-Id: I9b986593cf42b65a3360dae474d8318406b48204\n\nvideo: mdss: Cache LiveDisplay RGB settings when display off\n\n * We should avoid waking up the hardware if not necessary-\n   but unfortunately even if we do, we might not get a valid\n   result when querying for the current PCC settings.\n * Get rid of this code and keep track of the desired values\n   ourselves, and reapply it during wakeup.\n\nChange-Id: I1d42842af0d044e241dcc5b9266be0db4f84800b\n\nvideo: mdss: Fix dual-DSI issue in LiveDisplay\n\n * The second controller won't have it's own framebuffer, so don't\n   dereference a NULL pointer.\n\nChange-Id: I0d0c1475882eb65c8d5bc69c9ac3776b5d60339f\n\nvideo: mdss: Implement PCC combining for LiveDisplay\n\n * If we send calibration data via ioctl, we want to make sure\n   it's preserved when applying RGB offsets via LiveDisplay.\n * Add support for combining the values, using the calibrated\n   PCC value as a scaling factor.\n\nChange-Id: I33a5678a858f5e1c609709b4e7e901c792fd2590\n\nvideo: mdss: Simplify PCC combiner\n\n * Just combine the values instead of trying to scale things.\n\nChange-Id: I5e5b94ad117ec4c01d49fc38b1d967817de76825\n\nvideo: mdss: Simplify PCC combiner even more\n\n * We shouldn't return zero from this.\n\nChange-Id: I181a878d442e55e930c1a9532c40c84c3a9b1361\n\nvideo: mdss: Fix issues when setting a channel to zero\n\nChange-Id: Idfaca981712abbf5bfeee9404525d8776bff1cb9","distinct":false,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_lge_bullhead/commits/167742e3d4adb679243adf487f774b2850de7ebb"},{"sha":"dc6f1aa4de03143bdb0bbaa99d5bd8f95ef0f002","author":{"email":"20b1b82ea87150022f6495522a9f5e355ea8b305@gmail.com","name":"Arianna Avanzini"},"message":"block: cgroups, kconfig, build bits for BFQ-v7r8-3.10.8+\n\nUpdate Kconfig.iosched and do the related Makefile changes to include\nkernel configuration options for BFQ. Also add the bfqio controller\nto the cgroups subsystem.\n\nSigned-off-by: Paolo Valente <paolo.valente@unimore.it>\nSigned-off-by: Arianna Avanzini <avanzini.arianna@gmail.com>\n\nblock: introduce the BFQ-v7r8 I/O sched for 3.10.8+\n\nAdd the BFQ-v7r8 I/O scheduler to 3.10.8+.\nThe general structure is borrowed from CFQ, as much of the code for\nhandling I/O contexts Over time, several useful features have been\nported from CFQ as well (details in the changelog in README.BFQ). A\n(bfq_)queue is associated to each task doing I/O on a device, and each\ntime a scheduling decision has to be made a queue is selected and served\nuntil it expires.\n\n    - Slices are given in the service domain: tasks are assigned\n      budgets, measured in number of sectors. Once got the disk, a task\n      must however consume its assigned budget within a configurable\n      maximum time (by default, the maximum possible value of the\n      budgets is automatically computed to comply with this timeout).\n      This allows the desired latency vs \"throughput boosting\" tradeoff\n      to be set.\n\n    - Budgets are scheduled according to a variant of WF2Q+, implemented\n      using an augmented rb-tree to take eligibility into account while\n      preserving an O(log N) overall complexity.\n\n    - A low-latency tunable is provided; if enabled, both interactive\n      and soft real-time applications are guaranteed a very low latency.\n\n    - Latency guarantees are preserved also in the presence of NCQ.\n\n    - Also with flash-based devices, a high throughput is achieved\n      while still preserving latency guarantees.\n\n    - BFQ features Early Queue Merge (EQM), a sort of fusion of the\n      cooperating-queue-merging and the preemption mechanisms present\n      in CFQ. EQM is in fact a unified mechanism that tries to get a\n      sequential read pattern, and hence a high throughput, with any\n      set of processes performing interleaved I/O over a contiguous\n      sequence of sectors.\n\n    - BFQ supports full hierarchical scheduling, exporting a cgroups\n      interface.  Since each node has a full scheduler, each group can\n      be assigned its own weight.\n\n    - If the cgroups interface is not used, only I/O priorities can be\n      assigned to processes, with ioprio values mapped to weights\n      with the relation weight = IOPRIO_BE_NR - ioprio.\n\n    - ioprio classes are served in strict priority order, i.e., lower\n      priority queues are not served as long as there are higher\n      priority queues.  Among queues in the same class the bandwidth is\n      distributed in proportion to the weight of each queue. A very\n      thin extra bandwidth is however guaranteed to the Idle class, to\n      prevent it from starving.\n\nSigned-off-by: Paolo Valente <paolo.valente@unimore.it>\nSigned-off-by: Arianna Avanzini <avanzini.arianna@gmail.com>\n\nblock, bfq: add Early Queue Merge (EQM) to BFQ-v7r8 for 3.10.8+\n\nA set of processes may happen  to  perform interleaved reads, i.e.,requests\nwhose union would give rise to a  sequential read  pattern.  There are two\ntypical  cases: in the first  case,   processes  read  fixed-size chunks of\ndata at a fixed distance from each other, while in the second case processes\nmay read variable-size chunks at  variable distances. The latter case occurs\nfor  example with  QEMU, which  splits the  I/O generated  by the  guest into\nmultiple chunks,  and lets these chunks  be served by a  pool of cooperating\nprocesses,  iteratively  assigning  the  next  chunk of  I/O  to  the first\navailable  process. CFQ  uses actual  queue merging  for the  first type of\nrocesses, whereas it  uses preemption to get a sequential  read pattern out\nof the read requests  performed by the second type of  processes. In the end\nit uses  two different  mechanisms to  achieve the  same goal: boosting the\nthroughput with interleaved I/O.\n\nThis patch introduces  Early Queue Merge (EQM), a unified mechanism to get a\nsequential  read pattern  with both  types of  processes. The  main idea is\nchecking newly arrived requests against the next request of the active queue\nboth in case of actual request insert and in case of request merge. By doing\nso, both the types of processes can be handled by just merging their queues.\nEQM is  then simpler and  more compact than the  pair of mechanisms used in\nCFQ.\n\nFinally, EQM  also preserves the  typical low-latency properties of BFQ, by\nproperly restoring the weight-raising state of  a queue when it gets back to\na non-merged state.\n\nChange-Id: I1f0f8c86e6d9f0153d539dd8e2c2b266dbcc8668\nSigned-off-by: Mauro Andreolini <mauro.andreolini@unimore.it>\nSigned-off-by: Arianna Avanzini <avanzini.arianna@gmail.com>\nSigned-off-by: Paolo Valente <paolo.valente@unimore.it>","distinct":false,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_lge_bullhead/commits/dc6f1aa4de03143bdb0bbaa99d5bd8f95ef0f002"},{"sha":"784b8b0baa407e213ed23a4cd1a570677b4433d2","author":{"email":"9ce5770b3bb4b2a1d59be2d97e34379cd192299f@cyngn.com","name":"Steve Kondik"},"message":"bullhead: Add defconfig for CM\n\nChange-Id: I7b29e6d6d2fdf9f27843de0eaafe44c457e9fa1e","distinct":false,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_lge_bullhead/commits/784b8b0baa407e213ed23a4cd1a570677b4433d2"},{"sha":"0ed344e954d4d7fb307cfae223cba72d52fd9465","author":{"email":"8e0ab2b207da89850486c138d22ac5705fdd3cd9@cyanogenmod.com","name":"Abhisek Devkota"},"message":"Merge tag 'android-6.0.1_r0.7' of https://android.googlesource.com/kernel/msm into HEAD\n\nAndroid 6.0.1 Release 0.7","distinct":false,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_lge_bullhead/commits/0ed344e954d4d7fb307cfae223cba72d52fd9465"},{"sha":"d19b943a59b0e1b654d2eb9bd852b336b461b0a0","author":{"email":"a22090b983de3fc53c0a5f6bcc15e7a7ab541ec8@gmail.com","name":"atl4ntis"},"message":"Bullhead kernel: implement always on rgb led support\n\nLike good old brother, N5X needs this patch aswell for charging led fx.\n\nOriginal commit for Hammerhead by sam3000 slightly modified for Bullhead.\n\nOriginal msg:\n\n    When offms is set to 0, configure a single point\n    duty cycle at the desired led brightness.\n\nSigned-off-by: atl4ntis <nope>\n\nChange-Id: I93b61af52ee2f695035e7f5d78814251c8d1da8d","distinct":false,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_lge_bullhead/commits/d19b943a59b0e1b654d2eb9bd852b336b461b0a0"},{"sha":"e1b8c23518e2caeae4a1e66bb75290e79a7d053c","author":{"email":"a8e70ce470c554a6f43803df5187177f222204a8@perception-point.io","name":"Yevgeny Pats"},"message":"KEYS: Fix keyring ref leak in join_session_keyring()\n\nIf a thread is asked to join as a session keyring the keyring that's already\nset as its session, we leak a keyring reference.\n\nThis can be tested with the following program:\n\n\t#include <stddef.h>\n\t#include <stdio.h>\n\t#include <sys/types.h>\n\t#include <keyutils.h>\n\n\tint main(int argc, const char *argv[])\n\t{\n\t\tint i = 0;\n\t\tkey_serial_t serial;\n\n\t\tserial = keyctl(KEYCTL_JOIN_SESSION_KEYRING,\n\t\t\t\t\"leaked-keyring\");\n\t\tif (serial < 0) {\n\t\t\tperror(\"keyctl\");\n\t\t\treturn -1;\n\t\t}\n\n\t\tif (keyctl(KEYCTL_SETPERM, serial,\n\t\t\t   KEY_POS_ALL | KEY_USR_ALL) < 0) {\n\t\t\tperror(\"keyctl\");\n\t\t\treturn -1;\n\t\t}\n\n\t\tfor (i = 0; i < 100; i++) {\n\t\t\tserial = keyctl(KEYCTL_JOIN_SESSION_KEYRING,\n\t\t\t\t\t\"leaked-keyring\");\n\t\t\tif (serial < 0) {\n\t\t\t\tperror(\"keyctl\");\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t}\n\nIf, after the program has run, there something like the following line in\n/proc/keys:\n\n3f3d898f I--Q---   100 perm 3f3f0000     0     0 keyring   leaked-keyring: empty\n\nwith a usage count of 100 * the number of times the program has been run,\nthen the kernel is malfunctioning.  If leaked-keyring has zero usages or\nhas been garbage collected, then the problem is fixed.\n\nChange-Id: I1d2f5d8b9873adc160cd466f3d0079f332b4d94f\nReported-by: Yevgeny Pats <yevgeny@perception-point.io>\nSigned-off-by: David Howells <dhowells@redhat.com>","distinct":false,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_lge_bullhead/commits/e1b8c23518e2caeae4a1e66bb75290e79a7d053c"},{"sha":"c5d769daa5d7e9d9a40d1d778e9f4fec387987d3","author":{"email":"445b8d823fc5a4cfc64903b6f3425bb27997ad62@codeaurora.org","name":"Chaithanya Krishna Bacharaju"},"message":"ALSA: compress: Add support to send codec specific data\n\nCodec specific  metadata is sent only for first stream in gapless\nplayback. This causes incorrect configuration to be set for second\nstream and distortions are observed due to framedrops in adsp.\nAdd support to send codec specific format during start of\nnext stream in gapless using set_next_track_param.\n\nChange-Id: Ieec6b2afedec156e47873efcad9b3571160b0a29\nSigned-off-by: Chaithanya Krishna Bacharaju <chaithan@codeaurora.org>\n\nASoC: msm: qdsp6v2: Handle additional codec specific metadata\n\nCodec specific  metadata is sent only for first stream in gapless\nplayback. This causes incorrect configuration to be set for second\nstream and distortions are observed due to framedrops in adsp.\nAdd support to send codec specific format during start of\nnext stream in gapless.\nAdd bit rate to wma codec data structure as it can vary between\nstreams in gapless.\n\nChange-Id: I39f34ea1addff720612fe3e06257e7d75889e574\nSigned-off-by: Chaithanya Krishna Bacharaju <chaithan@codeaurora.org>\nSigned-off-by: Fred Oh <fred@codeaurora.org>\nSigned-off-by: Alexy Joseph <alexyj@codeaurora.org>","distinct":false,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_lge_bullhead/commits/c5d769daa5d7e9d9a40d1d778e9f4fec387987d3"},{"sha":"5d397135b7c316f6aed5f1119847cf73f9cbc105","author":{"email":"445b8d823fc5a4cfc64903b6f3425bb27997ad62@codeaurora.org","name":"Chaithanya Krishna Bacharaju"},"message":"ASoC: qdsp6v2: Squashed upstream audio offload improvements\n\nSoC: msm: qdsp6v2: Enable gapless for pcm offload\n\nEnable gapless for PCM offload format playback.\n\nSigned-off-by: Chaithanya Krishna Bacharaju <chaithan@codeaurora.org>\n\nASoC: msm: qdsp6v2: fix incomplete playback issue for non-gapless formats\n\nFix data loss on auto switching of playback to next clip\nwhen current playback format is not having gapless support\nin compressed driver.\nMedia playback complete event is sent to framework on completion\nof partial drain, this is supposed to be before actual renderer\nEOS by duration equal to value of PARTIAL_DRAIN_ACK_EARLY_BY_MSEC,\nbut due to uninitialized frame size for non-gapless formats this\nduration calculated is inaccurate and sometimes triggers drain\ncompletion too early, leading to premature teardown of playback\nsession.\nFix this by disabling gapless on formats not having valid gapless\nparameters.\nRecalculate partial drain delay based on flac min block size\nto avoid incorrect drain delay for FLAC format.\n\nSigned-off-by: Dhananjay Kumar <dhakumar@codeaurora.org>\n\nASoC: msm: qdsp6v2: move frame info to be per session based\n\nWhen audio stream manager returns READ_DONE event, the payload\nwhich comes with the event contains size of captured audio data\nand offset indicating where the data starts in the buffer.\nBefore this change, size and offset information is stored in\nglobal variable which can be shared by all capture sessions.\nIf the offset is overwritten by another session with larger value,\nbuffer can be indexed beyond actual size of buffer when copying\ncaptured data into user-space buffer. Move the structure as part\nof per session private data to prevent overwriting.\n\nSigned-off-by: Patrick Lai <plai@codeaurora.org>\nSigned-off-by: Banajit Goswami <bgoswami@codeaurora.org>\n\nASoC: msm: qdsp6v2: make frame info to static array\n\nFrame info which track size of captured data and offset is dyanmically\nallocated data. Some crashes are reported due to frame info is used after\nfree. Error type is null pointer dereference. Total size of frame info is\nrelatively small and it is part of msm_audio which is dynamically\nallocated structure. No need to allocate and track it separately.\n\nSigned-off-by: Fred Oh <fred@codeaurora.org>\n\nASoC: msm: qdsp6v2: Track no wait commands\n\nAdd a command queue for no wait commands. Use queue\nto track all active no wait commands and remove\nthem from the queue when they have correctly\nreturned. If a queue is not used, a wait command\ncould be improperly recognized as a no wait\ncommand and cause a timeout.\n\nSigned-off-by: Ben Romberger <bromberg@codeaurora.org>\n\nASoC: msm: qdsp6v2: Check memory before re-mapping cal block\n\nCheck that the memory was correctly allocated\nfor the calibration block before re-mapping\nthe calibration block to the ADSP.\n\nSigned-off-by: Ben Romberger <bromberg@codeaurora.org>\n\nASoC: msm: qdsp6v2: Initialize ASM no wait spinlock\n\nInitialize spinlock for the no wait queue. The\nspin_lock_init function is now called for the\nspinlock on init for the audio client structure.\n\nSigned-off-by: Ben Romberger <bromberg@codeaurora.org>\n\nASoC: msm: Interrupt events in compress free\n\nInterrupt any wait events during free of the compress driver\nand move spinlock unlock to after the ASM client is freed.\n\nSigned-off-by: Ben Romberger <bromberg@codeaurora.org>\n\nASoC: msm: qdsp6v2: Prevent ASM callback when client freed\n\nSet EOS flag in compress driver for partial drain\nand reorder ASM client free function to prevent\ncallback from being signaled after ASM client is\nfreed.\n\nSigned-off-by: Ben Romberger <bromberg@codeaurora.org>\n\nASoC: msm: qdsp6v2: Move asm list init before apr registration\n\nMove list init for no wait que before apr registration.\nIf apr registration fails asm free client will free\nthe no wait que.\n\nSigned-off-by: Ben Romberger <bromberg@codeaurora.org>\n\nASoC: msm: qdsp6v2: add error handling on write done during partial drain\n\n If there is any error on write done event during parital drain,\n compress driver does not return from partial drain and playback\n does not move to next clip.\n Add error handling in compress driver to return from partial\n drain on write done error.\n\nSigned-off-by: Preetam Singh Ranawat <apranawat@codeaurora.org>\n\nASoC: msm: qdsp6v2: add more supported sampling rates\n\nSome of sampling rates are missed. More sampling rates are supported.\n\nSigned-off-by: Fred Oh <fred@codeaurora.org>\n\nASoC: msm: fix indefinite wait in compress drain\n\nIn compressed driver streams might get stopped while\nioctl drain is started but not completed, since buffers\nare drained in multiple stages when gapless mode is\nenabled.\nCheck stream state before issuing wait commands to\nprevent waiting for drain ack on stopped streams.\n\nSigned-off-by: Dhananjay Kumar <dhakumar@codeaurora.org>\n\nALSA: compress: fix an integer overflow check\n\nI previously added an integer overflow check here but looking at it now,\nit's still buggy.\n\nThe bug happens in snd_compr_allocate_buffer().  We multiply\n\".fragments\" and \".fragment_size\" and that doesn't overflow but then we\nsave it in an unsigned int so it truncates the high bits away and we\nallocate a smaller than expected size.\n\nChange-Id: I3910bcdc732763d9208e765d6ca69853a0cddeda\nFixes: b35cc8225845 ('ALSA: compress_core: integer overflow in snd_compr_allocate_buffer()')\nSigned-off-by: Dan Carpenter <dan.carpenter@oracle.com>\nSigned-off-by: Takashi Iwai <tiwai@suse.de>","distinct":false,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_lge_bullhead/commits/5d397135b7c316f6aed5f1119847cf73f9cbc105"},{"sha":"d61a16f4375e1581caaaf04d028e4f7a429f76ef","author":{"email":"3dbfe6c2a1a74e6ec1022b403f8602f0fdaefdaf@cyngn.com","name":"Pat Erley"},"message":"hid: Add driver for FiiO USB DAC\n\nThe FiiO E18 USB DAC generates multiple key presses immediately\nafter being plugged in, but doesn't generate all of the corresponding\nkey up events.  Handle this peculiarity by only passing events that\nwe have seen both a keypress and release for.\n\nCYNGNOS-697\nChange-Id: I654f55ac7376a82551e1c7eeadb8f9f3a6d474d3\n(cherry picked from commit 0a7d1cb54af43dd19d38843fbb5c846cbd133498)\n(cherry picked from commit 6ecfcb9fae2aeb7d0f16ecee126dbcff4316f937)","distinct":false,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_lge_bullhead/commits/d61a16f4375e1581caaaf04d028e4f7a429f76ef"},{"sha":"5fbc4628ad3e6f7a3660d31d73c6d8351a3023d7","author":{"email":"3dbfe6c2a1a74e6ec1022b403f8602f0fdaefdaf@cyngn.com","name":"Pat Erley"},"message":"bullhead: Enable FiiO HID Quirk\n\nChange-Id: I425a67e28812b0e92c717494a67a51638c238db8\n(cherry picked from commit 31caddf510a944e42e9d22c45961b2f1c95edf5a)","distinct":false,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_lge_bullhead/commits/5fbc4628ad3e6f7a3660d31d73c6d8351a3023d7"},{"sha":"ae84c3e3d8405c1c4039380960d929f4328bb909","author":{"email":"0898c4e5c8d849879fa65e9f23cfa9cb45bd5a93@codeaurora.org","name":"Phani Kumar Uppalapati"},"message":"ASoC: wcd9330: Adjust HPH bias current to 3.5uA\n\nAdjust headphone bias current from 2.5uA to 3.5uA\nso as to give more headroom to audio signal on the\nheadphone path and also to avoid signal clipping.\n\nChange-Id: Ifeba769aaef274444379d0cf7d20e4e6320c3f23\nSigned-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>","distinct":false,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_lge_bullhead/commits/ae84c3e3d8405c1c4039380960d929f4328bb909"},{"sha":"1ba583ed160a015b73553155df6da2385e247925","author":{"email":"0d64e6254b9cf0bc0c6dad27d3fe1f48d006ea48@codeaurora.org","name":"Yandong Yang"},"message":"ASoC: wcd9330: Correct HPH turn on and shutdown sequences\n\n  There is glitch on BUCK_OUT and NCP_VNEG when doing HPH shutdown\nsequences. The root cause is NCP is not turned off before Class H\nblock disabled.\n  For HPH turnon sequences, make sure NCP turn on happens after Class\nH block enabled.\n  For HPH shutdown sequences, make sure NCP turn off happens before\nClass H block disabled. Ensure the clock is disabled after turning\noff the class-H controller\n\nCRs-Fixed: 890588\nChange-Id: I880806c0a7284aa22c9d78286efbed73544b2356\nSigned-off-by: Walter Yang <yandongy@codeaurora.org>","distinct":false,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_lge_bullhead/commits/1ba583ed160a015b73553155df6da2385e247925"},{"sha":"9491f3249f6847db38c39069dd3f6965c6740992","author":{"email":"9ce5770b3bb4b2a1d59be2d97e34379cd192299f@cyngn.com","name":"Steve Kondik"},"message":"Revert \"ASoC: wcd9330: Update compander configuration for RX1 interpolator\"\n\n * This patch causes audible click and pop when touch sounds are enabled\n   and the volume is low. The next patch fixes it correctly.\n\nThis reverts commit 7e7ed566ed173462f9329c0f885571eec7a7eab4.\n\nChange-Id: Ifdbebe56bbe78ae7c9d879d5579bef4593db7fa9","distinct":false,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_lge_bullhead/commits/9491f3249f6847db38c39069dd3f6965c6740992"},{"sha":"4f3fb4c12c44154ecce2cd70f4521b6fb224a807","author":{"email":"795e0eb8119a959d6b8618248838274c8a113b8c@codeaurora.org","name":"Roberto Granados Dorado"},"message":"ASoC: wcd9330: Disable compander in HPH when EAR is enabled\n\nRX1 is shared between EAR and HPH; when HPH is enabled,\ncompander is also enabled which causes noise in EAR.\nThis change disables compander when EAR path is enabled\nand avoids enabling compander if EAR is already enabled.\n\nChange-Id: Ic57dbc9e74bbed4a32f024b83dd333beb84b7c5f\nSigned-off-by: Roberto Granados Dorado <robertog@codeaurora.org>\nSigned-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>","distinct":false,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_lge_bullhead/commits/4f3fb4c12c44154ecce2cd70f4521b6fb224a807"}]}