Commit Graph

798861 Commits

Author SHA1 Message Date
Alistair Delva
a9b4dabcee ANDROID: GKI: Add 'i2c_mutex' to struct drm_dp_aux
Resolves an abi diff.

Bug: 152417756
Signed-off-by: Alistair Delva <adelva@google.com>
Change-Id: Icb5f818632d770b25ffe60286e30fa5179b72917
2020-04-17 20:26:22 +00:00
Alistair Delva
716aae82b8 ANDROID: GKI: Add 'checksum' to struct drm_connector
Resolves an abi diff.

Bug: 152417756
Signed-off-by: Alistair Delva <adelva@google.com>
Change-Id: Ic6627d056eff40bb79a600d5ffb83ada78319c56
2020-04-17 20:26:13 +00:00
Alistair Delva
c4ea3263ea Revert "BACKPORT: drm: Add HDR source metadata property"
This reverts commit 4ae8f7c45a.

We don't need these drm blob properties on this branch.

Bug: 152417756
Signed-off-by: Alistair Delva <adelva@google.com>
Change-Id: Ib715f4e3b6394091c8b537d4cb534c3b31d7f8c8
2020-04-17 20:26:06 +00:00
Alistair Delva
a295300648 Revert "BACKPORT: drm: Parse HDR metadata info from EDID"
This reverts commit 1e98c11549.

Revert most of this change. We only need the #define.

Bug: 152417756
Signed-off-by: Alistair Delva <adelva@google.com>
Change-Id: I6978ee67314f64e92e22a051f85863c1a440f9f1
2020-04-17 20:25:58 +00:00
Uma Shankar
e62dae58c8 ANDROID: drm: Add DP colorspace property
This patch adds a DP colorspace property, enabling
userspace to switch to various supported colorspaces.
This will help enable BT2020 along with other colorspaces.

v2: Addressed Maarten and Ville's review comments. Enhanced
    the colorspace enum to incorporate both HDMI and DP supported
    colorspaces. Also, added a default option for colorspace.

v3: Split the changes to have separate colorspace property for
DP and HDMI.

v4: Addressed Chris and Ville's review comments, and created a
common colorspace property for DP and HDMI, filtered the list
based on the colorspaces supported by the respective protocol
standard.

v5: Merged the DP handling along with platform colorspace
handling as per Shashank's comments.

v6: Reverted to old design of exposing all colorspaces to
userspace as per Ville's review comment

v7: Fixed sparse warnings, updated the RB from Maarten and Jani's ack.

v8: Addressed Ville's review comments and updated the colorspace
macro definitions.

Signed-off-by: Uma Shankar <uma.shankar@intel.com>
Acked-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://patchwork.kernel.org/patch/10797701/
[adelva: Renamed some enums and added BT.2020 formats]
Bug: 152417756
Signed-off-by: Alistair Delva <adelva@google.com>
Change-Id: I90f3132104d1fe5cbc48b78fbcf80d73add49e1f
2020-04-17 20:25:17 +00:00
Alistair Delva
9ef33e9591 ANDROID: GKI: drm: Initialize display->hdmi when parsing vsdb
When parsing HDMI Forum Vendor-Specific Data Block ensure that
connector->hdmi is also initialized with data from the vsdb. Currently
the code only intializes connector properties.

Bug: 152417756
Change-Id: Iabebd6e0500bfac99c96e27990044737c2870959
Signed-off-by: Alistair Delva <adelva@google.com>
2020-04-17 20:25:10 +00:00
Shashank Babu Chinta Venkata
c2392efab3 ANDROID: drivers: gpu: drm: add support to batch commands
MSM DSI framework has capability to batch commands and
do kickoff once MIPI_DSI_MSG_LASTCOMMAND flag is set. This enables
related commands to be grouped and sent in one dma kickoff.

Signed-off-by: Shashank Babu Chinta Venkata <sbchin@codeaurora.org>
Bug: 139653858
Change-Id: I2742c62a90e9a194848a612eef40a22103bb6596
2020-04-17 20:25:03 +00:00
Will McVicker
ef8eec5d3c ANDROID: ABI: update the qcom whitelist
These changes are based on the new msm serial driver.

Signed-off-by: Will McVicker <willmcvicker@google.com>
Bug: 154153369
Change-Id: Iea008b29fc4ce78496638dbc22b1775ff6036659
2020-04-17 09:58:53 -07:00
Will McVicker
aa006282c8 ANDROID: GKI: ARM64: smp: add vendor field pending_ipi
This is added for ABI compatibility with vendors.

Signed-off-by: Will McVicker <willmcvicker@google.com>
Bug: 140652396
Test: compile
Change-Id: Iac3f7c061db8a807586c565b40502bfc75195277
2020-04-17 09:58:53 -07:00
Will McVicker
4b7a673f59 ANDROID: gki_defconfig: enable msm serial early console
This is used for early console on qcom devices.

Signed-off-by: Will McVicker <willmcvicker@google.com>
Bug: 154153369
Test: compile
Change-Id: Iabf29261f36fd4c41a89491d49548c331ae19a3e
2020-04-17 09:58:48 -07:00
Mukesh Kumar Savaliya
3b328707cf ANDROID: serial: msm_geni_serial_console : Add Earlycon support
This change enables earlyconsole support as static driver for geni
based UART. Kernel space UART console driver will be generic for
console and other usecases of UART.

Bug: 144074026
Test: Earlyconsole logs are fine and switch kernel console is fine.

Change-Id: I34c9910cc8aa9586f842362fae62bc7127bcee5e
Signed-off-by: Mukesh Kumar Savaliya <msavaliy@codeaurora.org>
(cherry picked from commit ac0ec822779819c8d5cdc1d97d44afdefe1d3ece)
Signed-off-by: Will McVicker <willmcvicker@google.com>
2020-04-17 09:36:11 -07:00
Will McVicker
32d475905c ANDROID: GKI: serial: core: export uart_console_device
Needed for a modularized uart console driver.

Change-Id: Ia6e3c3a48e40ef9f9e7266b47498703218ef40d9
Bug: 154153369
Test: compile
Signed-off-by: Will McVicker <willmcvicker@google.com>
2020-04-17 09:36:08 -07:00
Greg Kroah-Hartman
d7a79add37 ANDROID: GKI: update abi definition due to previous changes in the tree
Leaf changes summary: 18 artifacts changed (2 filtered out)
Changed leaf types summary: 12 (2 filtered out) leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 4 Added functions
Removed/Changed/Added variables summary: 0 Removed, 2 Changed, 0 Added variable

4 Added functions:

  [A] 'function thermal_cooling_device* cpufreq_platform_cooling_register(cpufreq_policy*, cpu_cooling_ops*)'
  [A] 'function int gpiod_export(gpio_desc*, bool)'
  [A] 'function void usb_register_atomic_notify(notifier_block*)'
  [A] 'function void usb_unregister_atomic_notify(notifier_block*)'

2 Changed variables:

  [C] 'pglist_data contig_page_data' was changed at nobootmem.c:31:1:
    type of variable changed:
      type size changed from 30208 to 30720 (in bits)
      there are data member changes:
        type 'atomic_long_t[30]' of 'pglist_data::vm_stat' changed:
          type name changed from 'atomic_long_t[30]' to 'atomic_long_t[32]'
          array type size changed from 1920 to 2048
          array type subrange 1 changed length from 30 to 32
        and size changed from 1920 to 2048 (in bits) (by +128 bits)
      1443 impacted interfaces:

  [C] 'const char linux_banner[382]' was changed to 'const char linux_banner[361]' at version.c:45:1:
    type of variable changed:
      type name changed from 'const char[382]' to 'const char[361]'
      array type size changed from 3056 to 2888
      array type subrange 1 changed length from 382 to 361

'enum cpuhp_state at cpuhotplug.h:25:1' changed:
  type size hasn't changed
  9 enumerator insertions:
    'cpuhp_state::CPUHP_HYP_CORE_CTL_ISOLATION_DEAD' value '45'
    'cpuhp_state::CPUHP_CORE_CTL_ISOLATION_DEAD' value '46'
    'cpuhp_state::CPUHP_QCOM_CPUFREQ_PREPARE' value '52'
    'cpuhp_state::CPUHP_AP_EDAC_PMU_STARTING' value '94'
    'cpuhp_state::CPUHP_AP_QCOM_CPUFREQ_STARTING' value '121'
    'cpuhp_state::CPUHP_AP_QCOM_SLEEP_STARTING' value '122'
    'cpuhp_state::CPUHP_AP_ARM_SAVE_RESTORE_CORESIGHT4_STARTING' value '134'
    'cpuhp_state::CPUHP_AP_ARM_MM_CORESIGHT4_STARTING' value '135'
    'cpuhp_state::CPUHP_AP_NOTIFY_PERF_ONLINE' value '172'
  107 enumerator changes:
  4 impacted interfaces:
    function void __cpuhp_remove_state(cpuhp_state, bool)
    function int __cpuhp_setup_state(cpuhp_state, const char*, bool, void ()*, void ()*, bool)
    function int __cpuhp_state_add_instance(cpuhp_state, hlist_node*, bool)
    function int __cpuhp_state_remove_instance(cpuhp_state, hlist_node*, bool)

'enum node_stat_item at mmzone.h:158:1' changed:
  type size hasn't changed
  2 enumerator insertions:
    'node_stat_item::NR_ION_HEAP' value '30'
    'node_stat_item::NR_ION_HEAP_POOL' value '31'
  1 enumerator change:
    'node_stat_item::NR_VM_NODE_STAT_ITEMS' from value '30' to '32' at mmzone.h:158:1
  one impacted interface:
    function void mod_node_page_state(pglist_data*, node_stat_item, long int)

'enum snd_jack_types at jack.h:52:1' changed:
  type size hasn't changed
  5 enumerator insertions:
    'snd_jack_types::SND_JACK_OC_HPHL' value '64'
    'snd_jack_types::SND_JACK_OC_HPHR' value '128'
    'snd_jack_types::SND_JACK_UNSUPPORTED' value '256'
    'snd_jack_types::SND_JACK_MICROPHONE2' value '512'
    'snd_jack_types::SND_JACK_ANC_HEADPHONE' value '515'
  6 enumerator changes:
    'snd_jack_types::SND_JACK_BTN_5' from value '512' to '1024' at jack.h:52:1
    'snd_jack_types::SND_JACK_BTN_4' from value '1024' to '2048' at jack.h:52:1
    'snd_jack_types::SND_JACK_BTN_3' from value '2048' to '4096' at jack.h:52:1
    'snd_jack_types::SND_JACK_BTN_2' from value '4096' to '8192' at jack.h:52:1
    'snd_jack_types::SND_JACK_BTN_1' from value '8192' to '16384' at jack.h:52:1
    'snd_jack_types::SND_JACK_BTN_0' from value '16384' to '32768' at jack.h:52:1
  one impacted interface:
    function int snd_jack_set_key(snd_jack*, snd_jack_types, int)
'struct lruvec_stat at memcontrol.h:110:1' changed:
  type size changed from 1920 to 2048 (in bits)
  there are data member changes:
    type 'long int[30]' of 'lruvec_stat::count' changed:
      type name changed from 'long int[30]' to 'long int[32]'
      array type size changed from 1920 to 2048
      array type subrange 1 changed length from 30 to 32
    and size changed from 1920 to 2048 (in bits) (by +128 bits)
  1439 impacted interfaces:

'struct mem_cgroup at memcontrol.h:197:1' changed:
  type size hasn't changed
  there are data member changes:
    type 'atomic_long_t[36]' of 'mem_cgroup::stat' changed:
      type name changed from 'atomic_long_t[36]' to 'atomic_long_t[38]'
      array type size changed from 2304 to 2432
      array type subrange 1 changed length from 36 to 38
    and size changed from 2304 to 2432 (in bits) (by +128 bits)
    'atomic_long_t mem_cgroup::events[54]' offset changed from 12544 to 12672 (in bits) (by +128 bits)
    'atomic_long_t mem_cgroup::memory_events[7]' offset changed from 16000 to 16128 (in bits) (by +128 bits)
    'unsigned long int mem_cgroup::socket_pressure' offset changed from 16448 to 16576 (in bits) (by +128 bits)
    'bool mem_cgroup::tcpmem_active' offset changed from 16512 to 16640 (in bits) (by +128 bits)
    'int mem_cgroup::tcpmem_pressure' offset changed from 16544 to 16672 (in bits) (by +128 bits)
    'int mem_cgroup::kmemcg_id' offset changed from 16576 to 16704 (in bits) (by +128 bits)
    'memcg_kmem_state mem_cgroup::kmem_state' offset changed from 16608 to 16736 (in bits) (by +128 bits)
    'list_head mem_cgroup::kmem_caches' offset changed from 16640 to 16768 (in bits) (by +128 bits)
    'int mem_cgroup::last_scanned_node' offset changed from 16768 to 16896 (in bits) (by +128 bits)
    'list_head mem_cgroup::cgwb_list' offset changed from 16832 to 16960 (in bits) (by +128 bits)
    'wb_domain mem_cgroup::cgwb_domain' offset changed from 16960 to 17088 (in bits) (by +128 bits)
    'list_head mem_cgroup::event_list' offset changed from 17920 to 18048 (in bits) (by +128 bits)
    'spinlock_t mem_cgroup::event_list_lock' offset changed from 18048 to 18176 (in bits) (by +128 bits)
    'mem_cgroup_per_node* mem_cgroup::nodeinfo[]' offset changed from 18112 to 18240 (in bits) (by +128 bits)
  1439 impacted interfaces:

'struct mem_cgroup_per_node at memcontrol.h:126:1' changed:
  type size changed from 5824 to 5952 (in bits)
  there are data member changes:
    type 'atomic_long_t[30]' of 'mem_cgroup_per_node::lruvec_stat' changed:
      type name changed from 'atomic_long_t[30]' to 'atomic_long_t[32]'
      array type size changed from 1920 to 2048
      array type subrange 1 changed length from 30 to 32
    and size changed from 1920 to 2048 (in bits) (by +128 bits)
    'unsigned long int mem_cgroup_per_node::lru_zone_size[2][5]' offset changed from 3072 to 3200 (in bits) (by +128 bits)
    'mem_cgroup_reclaim_iter mem_cgroup_per_node::iter[13]' offset changed from 3712 to 3840 (in bits) (by +128 bits)
    'memcg_shrinker_map* mem_cgroup_per_node::shrinker_map' offset changed from 5376 to 5504 (in bits) (by +128 bits)
    'rb_node mem_cgroup_per_node::tree_node' offset changed from 5440 to 5568 (in bits) (by +128 bits)
    'unsigned long int mem_cgroup_per_node::usage_in_excess' offset changed from 5632 to 5760 (in bits) (by +128 bits)
    'bool mem_cgroup_per_node::on_tree' offset changed from 5696 to 5824 (in bits) (by +128 bits)
    'bool mem_cgroup_per_node::congested' offset changed from 5704 to 5832 (in bits) (by +128 bits)
    'mem_cgroup* mem_cgroup_per_node::memcg' offset changed from 5760 to 5888 (in bits) (by +128 bits)
  1439 impacted interfaces:

'struct mem_cgroup_stat_cpu at memcontrol.h:97:1' changed:
  type size changed from 6016 to 6144 (in bits)
  there are data member changes:
    type 'long int[36]' of 'mem_cgroup_stat_cpu::count' changed:
      type name changed from 'long int[36]' to 'long int[38]'
      array type size changed from 2304 to 2432
      array type subrange 1 changed length from 36 to 38
    and size changed from 2304 to 2432 (in bits) (by +128 bits)
    'unsigned long int mem_cgroup_stat_cpu::events[54]' offset changed from 2304 to 2432 (in bits) (by +128 bits)
    'unsigned long int mem_cgroup_stat_cpu::nr_page_events' offset changed from 5760 to 5888 (in bits) (by +128 bits)
    'unsigned long int mem_cgroup_stat_cpu::targets[3]' offset changed from 5824 to 5952 (in bits) (by +128 bits)
  1439 impacted interfaces:

'struct per_cpu_nodestat at mmzone.h:302:1' changed:
  type size changed from 248 to 264 (in bits)
  there are data member changes:
    type 's8[30]' of 'per_cpu_nodestat::vm_node_stat_diff' changed:
      type name changed from 's8[30]' to 's8[32]'
      array type size changed from 240 to 256
      array type subrange 1 changed length from 30 to 32
    and size changed from 240 to 256 (in bits) (by +16 bits)
  1443 impacted interfaces:

'struct pglist_data at mmzone.h:635:1' changed:
  details were reported earlier

'struct snd_soc_card at soc.h:1057:1' changed:
  type size changed from 6272 to 6528 (in bits)
  1 data member insertion:
    'mutex snd_soc_card::dapm_power_mutex', at offset 1792 (in bits) at soc.h:1070:1
  there are data member changes:
    'bool snd_soc_card::instantiated' offset changed from 1792 to 2048 (in bits) (by +256 bits)
    'bool snd_soc_card::topology_shortname_created' offset changed from 1800 to 2056 (in bits) (by +256 bits)
    'void ()* snd_soc_card::probe' offset changed from 1856 to 2112 (in bits) (by +256 bits)
    'void ()* snd_soc_card::late_probe' offset changed from 1920 to 2176 (in bits) (by +256 bits)
    'void ()* snd_soc_card::remove' offset changed from 1984 to 2240 (in bits) (by +256 bits)
    'void ()* snd_soc_card::suspend_pre' offset changed from 2048 to 2304 (in bits) (by +256 bits)
    'void ()* snd_soc_card::suspend_post' offset changed from 2112 to 2368 (in bits) (by +256 bits)
    'void ()* snd_soc_card::resume_pre' offset changed from 2176 to 2432 (in bits) (by +256 bits)
    'void ()* snd_soc_card::resume_post' offset changed from 2240 to 2496 (in bits) (by +256 bits)
    'void ()* snd_soc_card::set_bias_level' offset changed from 2304 to 2560 (in bits) (by +256 bits)
    'void ()* snd_soc_card::set_bias_level_post' offset changed from 2368 to 2624 (in bits) (by +256 bits)
    'void ()* snd_soc_card::add_dai_link' offset changed from 2432 to 2688 (in bits) (by +256 bits)
    'void ()* snd_soc_card::remove_dai_link' offset changed from 2496 to 2752 (in bits) (by +256 bits)
    'long int snd_soc_card::pmdown_time' offset changed from 2560 to 2816 (in bits) (by +256 bits)
    'snd_soc_dai_link* snd_soc_card::dai_link' offset changed from 2624 to 2880 (in bits) (by +256 bits)
    'int snd_soc_card::num_links' offset changed from 2688 to 2944 (in bits) (by +256 bits)
    'list_head snd_soc_card::dai_link_list' offset changed from 2752 to 3008 (in bits) (by +256 bits)
    'int snd_soc_card::num_dai_links' offset changed from 2880 to 3136 (in bits) (by +256 bits)
    'list_head snd_soc_card::rtd_list' offset changed from 2944 to 3200 (in bits) (by +256 bits)
    'int snd_soc_card::num_rtd' offset changed from 3072 to 3328 (in bits) (by +256 bits)
    'snd_soc_codec_conf* snd_soc_card::codec_conf' offset changed from 3136 to 3392 (in bits) (by +256 bits)
    'int snd_soc_card::num_configs' offset changed from 3200 to 3456 (in bits) (by +256 bits)
    'snd_soc_aux_dev* snd_soc_card::aux_dev' offset changed from 3264 to 3520 (in bits) (by +256 bits)
    'int snd_soc_card::num_aux_devs' offset changed from 3328 to 3584 (in bits) (by +256 bits)
    'list_head snd_soc_card::aux_comp_list' offset changed from 3392 to 3648 (in bits) (by +256 bits)
    'const snd_kcontrol_new* snd_soc_card::controls' offset changed from 3520 to 3776 (in bits) (by +256 bits)
    'int snd_soc_card::num_controls' offset changed from 3584 to 3840 (in bits) (by +256 bits)
    'const snd_soc_dapm_widget* snd_soc_card::dapm_widgets' offset changed from 3648 to 3904 (in bits) (by +256 bits)
    'int snd_soc_card::num_dapm_widgets' offset changed from 3712 to 3968 (in bits) (by +256 bits)
    'const snd_soc_dapm_route* snd_soc_card::dapm_routes' offset changed from 3776 to 4032 (in bits) (by +256 bits)
    'int snd_soc_card::num_dapm_routes' offset changed from 3840 to 4096 (in bits) (by +256 bits)
    'const snd_soc_dapm_widget* snd_soc_card::of_dapm_widgets' offset changed from 3904 to 4160 (in bits) (by +256 bits)
    'int snd_soc_card::num_of_dapm_widgets' offset changed from 3968 to 4224 (in bits) (by +256 bits)
    'const snd_soc_dapm_route* snd_soc_card::of_dapm_routes' offset changed from 4032 to 4288 (in bits) (by +256 bits)
    'int snd_soc_card::num_of_dapm_routes' offset changed from 4096 to 4352 (in bits) (by +256 bits)
    'bool snd_soc_card::fully_routed' offset changed from 4128 to 4384 (in bits) (by +256 bits)
    'work_struct snd_soc_card::deferred_resume_work' offset changed from 4160 to 4416 (in bits) (by +256 bits)
    'list_head snd_soc_card::component_dev_list' offset changed from 4416 to 4672 (in bits) (by +256 bits)
    'list_head snd_soc_card::widgets' offset changed from 4544 to 4800 (in bits) (by +256 bits)
    'list_head snd_soc_card::paths' offset changed from 4672 to 4928 (in bits) (by +256 bits)
    'list_head snd_soc_card::dapm_list' offset changed from 4800 to 5056 (in bits) (by +256 bits)
    'list_head snd_soc_card::dapm_dirty' offset changed from 4928 to 5184 (in bits) (by +256 bits)
    'list_head snd_soc_card::dobj_list' offset changed from 5056 to 5312 (in bits) (by +256 bits)
    'snd_soc_dapm_context snd_soc_card::dapm' offset changed from 5184 to 5440 (in bits) (by +256 bits)
    'snd_soc_dapm_stats snd_soc_card::dapm_stats' offset changed from 5952 to 6208 (in bits) (by +256 bits)
    'snd_soc_dapm_update* snd_soc_card::update' offset changed from 6080 to 6336 (in bits) (by +256 bits)
    'u32 snd_soc_card::pop_time' offset changed from 6144 to 6400 (in bits) (by +256 bits)
    'void* snd_soc_card::drvdata' offset changed from 6208 to 6464 (in bits) (by +256 bits)
  35 impacted interfaces:
    function int devm_snd_soc_register_card(device*, snd_soc_card*)
    function int devm_snd_soc_register_component(device*, const snd_soc_component_driver*, snd_soc_dai_driver*, int)
    function int snd_soc_add_component_controls(snd_soc_component*, const snd_kcontrol_new*, unsigned int)
    function void snd_soc_card_change_online_state(snd_soc_card*, int)
    function snd_kcontrol* snd_soc_card_get_kcontrol(snd_soc_card*, const char*)
    function int snd_soc_card_jack_new(snd_soc_card*, const char*, int, snd_soc_jack*, snd_soc_jack_pin*, unsigned int)
    function int snd_soc_component_disable_pin(snd_soc_component*, const char*)
    function int snd_soc_component_force_enable_pin(snd_soc_component*, const char*)
    function void snd_soc_component_init_regmap(snd_soc_component*, regmap*)
    function unsigned int snd_soc_component_read32(snd_soc_component*, unsigned int)
    function int snd_soc_component_set_sysclk(snd_soc_component*, int, int, unsigned int, int)
    function int snd_soc_component_update_bits(snd_soc_component*, unsigned int, unsigned int, unsigned int)
    function int snd_soc_component_write(snd_soc_component*, unsigned int, unsigned int)
    function int snd_soc_dai_get_channel_map(snd_soc_dai*, unsigned int*, unsigned int*, unsigned int*, unsigned int*)
    function int snd_soc_dai_set_channel_map(snd_soc_dai*, unsigned int, unsigned int*, unsigned int, unsigned int*)
    function int snd_soc_dai_set_fmt(snd_soc_dai*, unsigned int)
    function int snd_soc_dai_set_pll(snd_soc_dai*, int, int, unsigned int, unsigned int)
    function int snd_soc_dai_set_sysclk(snd_soc_dai*, int, unsigned int, int)
    function int snd_soc_dai_set_tdm_slot(snd_soc_dai*, unsigned int, unsigned int, int, int)
    function int snd_soc_dapm_add_routes(snd_soc_dapm_context*, const snd_soc_dapm_route*, int)
    function int snd_soc_dapm_ignore_suspend(snd_soc_dapm_context*, const char*)
    function snd_soc_dapm_widget* snd_soc_dapm_kcontrol_widget(snd_kcontrol*)
    function int snd_soc_dapm_mixer_update_power(snd_soc_dapm_context*, snd_kcontrol*, int, snd_soc_dapm_update*)
    function int snd_soc_dapm_mux_update_power(snd_soc_dapm_context*, snd_kcontrol*, int, soc_enum*, snd_soc_dapm_update*)
    function int snd_soc_dapm_new_controls(snd_soc_dapm_context*, const snd_soc_dapm_widget*, int)
    function int snd_soc_dapm_new_widgets(snd_soc_card*)
    function int snd_soc_dapm_sync(snd_soc_dapm_context*)
    function void snd_soc_jack_report(snd_soc_jack*, int, int)
    function int snd_soc_of_get_dai_link_codecs(device*, device_node*, snd_soc_dai_link*)
    function int snd_soc_of_parse_audio_routing(snd_soc_card*, const char*)
    function int snd_soc_of_parse_card_name(snd_soc_card*, const char*)
    function int snd_soc_register_component(device*, const snd_soc_component_driver*, snd_soc_dai_driver*, int)
    function snd_soc_component* snd_soc_rtdcom_lookup(snd_soc_pcm_runtime*, const char*)
    function int snd_soc_unregister_card(snd_soc_card*)
    function snd_soc_component* soc_find_component(const device_node*, const char*)

'struct task_struct at sched.h:635:1' changed:
  type size changed from 27648 to 28672 (in bits)
  2 data member insertions:
    'mm_event_task task_struct::mm_event[7]', at offset 15936 (in bits) at sched.h:976:1
    'unsigned long int task_struct::next_period', at offset 16832 (in bits) at sched.h:977:1
  there are data member changes:
    'void* task_struct::journal_info' offset changed from 15936 to 16896 (in bits) (by +960 bits)
    'bio_list* task_struct::bio_list' offset changed from 16000 to 16960 (in bits) (by +960 bits)
    'blk_plug* task_struct::plug' offset changed from 16064 to 17024 (in bits) (by +960 bits)
    'reclaim_state* task_struct::reclaim_state' offset changed from 16128 to 17088 (in bits) (by +960 bits)
    'backing_dev_info* task_struct::backing_dev_info' offset changed from 16192 to 17152 (in bits) (by +960 bits)
    'io_context* task_struct::io_context' offset changed from 16256 to 17216 (in bits) (by +960 bits)
    'unsigned long int task_struct::ptrace_message' offset changed from 16320 to 17280 (in bits) (by +960 bits)
    'siginfo_t* task_struct::last_siginfo' offset changed from 16384 to 17344 (in bits) (by +960 bits)
    'task_io_accounting task_struct::ioac' offset changed from 16448 to 17408 (in bits) (by +960 bits)
    'unsigned int task_struct::psi_flags' offset changed from 16960 to 17920 (in bits) (by +960 bits)
    'u64 task_struct::acct_rss_mem1' offset changed from 17024 to 17984 (in bits) (by +960 bits)
    'u64 task_struct::acct_vm_mem1' offset changed from 17088 to 18048 (in bits) (by +960 bits)
    'u64 task_struct::acct_timexpd' offset changed from 17152 to 18112 (in bits) (by +960 bits)
    'nodemask_t task_struct::mems_allowed' offset changed from 17216 to 18176 (in bits) (by +960 bits)
    'seqcount_t task_struct::mems_allowed_seq' offset changed from 17280 to 18240 (in bits) (by +960 bits)
    'int task_struct::cpuset_mem_spread_rotor' offset changed from 17312 to 18272 (in bits) (by +960 bits)
    'int task_struct::cpuset_slab_spread_rotor' offset changed from 17344 to 18304 (in bits) (by +960 bits)
    'css_set* task_struct::cgroups' offset changed from 17408 to 18368 (in bits) (by +960 bits)
    'list_head task_struct::cg_list' offset changed from 17472 to 18432 (in bits) (by +960 bits)
    'robust_list_head* task_struct::robust_list' offset changed from 17600 to 18560 (in bits) (by +960 bits)
    'compat_robust_list_head* task_struct::compat_robust_list' offset changed from 17664 to 18624 (in bits) (by +960 bits)
    'list_head task_struct::pi_state_list' offset changed from 17728 to 18688 (in bits) (by +960 bits)
    'futex_pi_state* task_struct::pi_state_cache' offset changed from 17856 to 18816 (in bits) (by +960 bits)
    'perf_event_context* task_struct::perf_event_ctxp[2]' offset changed from 17920 to 18880 (in bits) (by +960 bits)
    'mutex task_struct::perf_event_mutex' offset changed from 18048 to 19008 (in bits) (by +960 bits)
    'list_head task_struct::perf_event_list' offset changed from 18304 to 19264 (in bits) (by +960 bits)
    'callback_head task_struct::rcu' offset changed from 18432 to 19392 (in bits) (by +960 bits)
    'tlbflush_unmap_batch task_struct::tlb_ubc' offset changed from 18432 to 19392 (in bits) (by +960 bits)
    'pipe_inode_info* task_struct::splice_pipe' offset changed from 18560 to 19520 (in bits) (by +960 bits)
    'page_frag task_struct::task_frag' offset changed from 18624 to 19584 (in bits) (by +960 bits)
    'int task_struct::nr_dirtied' offset changed from 18752 to 19712 (in bits) (by +960 bits)
    'int task_struct::nr_dirtied_pause' offset changed from 18784 to 19744 (in bits) (by +960 bits)
    'unsigned long int task_struct::dirty_paused_when' offset changed from 18816 to 19776 (in bits) (by +960 bits)
    'u64 task_struct::timer_slack_ns' offset changed from 18880 to 19840 (in bits) (by +960 bits)
    'u64 task_struct::default_timer_slack_ns' offset changed from 18944 to 19904 (in bits) (by +960 bits)
    'unsigned long int task_struct::trace' offset changed from 19008 to 19968 (in bits) (by +960 bits)
    'unsigned long int task_struct::trace_recursion' offset changed from 19072 to 20032 (in bits) (by +960 bits)
    'mem_cgroup* task_struct::memcg_in_oom' offset changed from 19136 to 20096 (in bits) (by +960 bits)
    'gfp_t task_struct::memcg_oom_gfp_mask' offset changed from 19200 to 20160 (in bits) (by +960 bits)
    'int task_struct::memcg_oom_order' offset changed from 19232 to 20192 (in bits) (by +960 bits)
    'unsigned int task_struct::memcg_nr_pages_over_high' offset changed from 19264 to 20224 (in bits) (by +960 bits)
    'mem_cgroup* task_struct::active_memcg' offset changed from 19328 to 20288 (in bits) (by +960 bits)
    'request_queue* task_struct::throttle_queue' offset changed from 19392 to 20352 (in bits) (by +960 bits)
    'uprobe_task* task_struct::utask' offset changed from 19456 to 20416 (in bits) (by +960 bits)
    'int task_struct::pagefault_disabled' offset changed from 19520 to 20480 (in bits) (by +960 bits)
    'task_struct* task_struct::oom_reaper_list' offset changed from 19584 to 20544 (in bits) (by +960 bits)
    'vm_struct* task_struct::stack_vm_area' offset changed from 19648 to 20608 (in bits) (by +960 bits)
    'atomic_t task_struct::stack_refcount' offset changed from 19712 to 20672 (in bits) (by +960 bits)
    'void* task_struct::security' offset changed from 19776 to 20736 (in bits) (by +960 bits)
    'thread_struct task_struct::thread' offset changed from 19840 to 20864 (in bits) (by +1024 bits)
  1576 impacted interfaces:

'struct vb2_queue at videobuf2-core.h:509:1' changed:
  type size changed from 4480 to 6528 (in bits)
  there are data member changes:
    type 'vb2_buffer*[32]' of 'vb2_queue::bufs' changed:
      type name changed from 'vb2_buffer*[32]' to 'vb2_buffer*[64]'
      array type size changed from 2048 to 4096
      array type subrange 1 changed length from 32 to 64
    and size changed from 2048 to 4096 (in bits) (by +2048 bits)
    'unsigned int vb2_queue::num_buffers' offset changed from 3648 to 5696 (in bits) (by +2048 bits)
    'list_head vb2_queue::queued_list' offset changed from 3712 to 5760 (in bits) (by +2048 bits)
    'unsigned int vb2_queue::queued_count' offset changed from 3840 to 5888 (in bits) (by +2048 bits)
    'atomic_t vb2_queue::owned_by_drv_count' offset changed from 3872 to 5920 (in bits) (by +2048 bits)
    'list_head vb2_queue::done_list' offset changed from 3904 to 5952 (in bits) (by +2048 bits)
    'spinlock_t vb2_queue::done_lock' offset changed from 4032 to 6080 (in bits) (by +2048 bits)
    'wait_queue_head_t vb2_queue::done_wq' offset changed from 4096 to 6144 (in bits) (by +2048 bits)
    'vb2_fileio_data* vb2_queue::fileio' offset changed from 4352 to 6400 (in bits) (by +2048 bits)
    'vb2_threadio_data* vb2_queue::threadio' offset changed from 4416 to 6464 (in bits) (by +2048 bits)
  11 impacted interfaces:
    function void vb2_buffer_done(vb2_buffer*, vb2_buffer_state)
    function int vb2_dqbuf(vb2_queue*, v4l2_buffer*, bool)
    function void vb2_ops_wait_finish(vb2_queue*)
    function void vb2_ops_wait_prepare(vb2_queue*)
    function void* vb2_plane_vaddr(vb2_buffer*, unsigned int)
    function int vb2_qbuf(vb2_queue*, v4l2_buffer*)
    function int vb2_queue_init(vb2_queue*)
    function void vb2_queue_release(vb2_queue*)
    function int vb2_reqbufs(vb2_queue*, v4l2_requestbuffers*)
    function int vb2_streamoff(vb2_queue*, v4l2_buf_type)
    function int vb2_streamon(vb2_queue*, v4l2_buf_type)

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I6cdab914de16705a40fec93379ba697d0d6566db
2020-04-17 15:06:36 +02:00
Quentin Perret
ae733f893d ANDROID: build.config.allmodconfig: Re-enable XFS_FS
It appears that the clang version we were using when we first introduced
build.config.allmodconfig had issues with XFS_FS, so 884416f517
("ANDROID: create build.configs for allmodconfig") made sure to disable
it.

Now that ACK uses an updated clang, attempt to re-enable that option.

Bug: 140224784
Bug: 140490203
Test: allmodconfig build for x86_64 and arm64
Fixes: 884416f517 ("ANDROID: create build.configs for allmodconfig")
Signed-off-by: Quentin Perret <qperret@google.com>
Change-Id: Iffdaaedb67162515af3b60ec62efd8f947ce17f2
[nc: Also drop comment, unlike the android-mainline version]
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2020-04-17 08:41:31 +00:00
Saravana Kannan
43152c5b4f FROMGIT: of: property: Add device link support for extcon
Add support for creating device links out of more DT properties.

Cc: MyungJoo Ham <myungjoo.ham@samsung.com>
Cc: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Saravana Kannan <saravanak@google.com>
Signed-off-by: Rob Herring <robh@kernel.org>
(cherry picked from commit 78056e701c
 git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next)
Signed-off-by: Saravana Kannan <saravanak@google.com>
Change-Id: I65ca9efd8d8dde2c366dd7ec99e4e7d03f3735e7
2020-04-17 06:44:16 +00:00
Suren Baghdasaryan
bb45ae8608 ANDROID: GKI: arm64: gki_defconfig: enable CONFIG_MM_EVENT_STAT
Enable mm_event configuration.

Bug: 149182139
Test: build and boot
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: I0f47cc7ec0413c52e2d5e7ef1f0d69a14e4151c2
2020-04-17 06:43:35 +00:00
Minchan Kim
14ede71790 ANDROID: GKI: add fields from per-process mm event tracking feature
mm_event feature exports mm_event_count function and adds new fields
in the task_struct. Fix ABI diffs by adding the necessary padding.

Bug: 80168800
Bug: 116825053
Bug: 153442668
Test: boot
Change-Id: I4e69c994f47402766481c58ab5ec2071180964b8
Signed-off-by: Minchan Kim <minchan@google.com>
(cherry picked from commit 04ff5ec537a5f9f546dcb32257d8fbc1f4d9ca2d)
Signed-off-by: Martin Liu <liumartin@google.com>
[surenb: cherry picked and trimmed the original patch to include only
necessary changes to resolve ABI diff for task_struct and
mm_event_count, changed enum mm_event_type to contain the final
members]

Bug: 149182139
Test: build and boot
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: Iacdba61298ba15fc71b46e0323b4160f174300b7
2020-04-17 06:43:14 +00:00
Suren Baghdasaryan
c69ff7a87b ANDROID: GKI: fix ABI diffs caused by ION heap and pool vmstat additions
New nr_ion_heap and nr_ion_heap_pool fields in vmstat file cause ABI
differences. Fix them by adding the fields.

Bug: 110330255
Bug: 130198686
Bug: 153442668
Test: boot
Signed-off-by: Minchan Kim <minchan@google.com>
(cherry picked from commit 8f76a3ed2a76492deba9edebc990cac3b32f78be)
Signed-off-by: Martin Liu <liumartin@google.com>
[surenb: cherry picked and trimmed the original patch to include only
necessary changes to resolve ABI diff for node_stat_item enum]

Bug: 149182139
Test: build and boot
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Change-Id: I82b43bd3d94b950bd266aa53a3794182604a52d0
2020-04-17 06:43:05 +00:00
Aaro Koskinen
4a853c72f4 UPSTREAM: GKI: panic/reboot: allow specifying reboot_mode for panic only
Allow specifying reboot_mode for panic only.  This is needed on systems
where ramoops is used to store panic logs, and user wants to use warm
reset to preserve those, while still having cold reset on normal
reboots.

Link: http://lkml.kernel.org/r/20190322004735.27702-1-aaro.koskinen@iki.fi
Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
(cherry picked from commit b287a25a71)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154175554
Change-Id: Id1075f4d97eddb818aa495903a7643958e6c73d6
2020-04-17 05:00:40 +00:00
Saravana Kannan
efea5004c8 ANDROID: GKI: of: property: Add device link support for phys property
This makes sure that phy consumer devices don't unnecessarily try to
probe before phys supplier devices

Bug: 153389865
Signed-off-by: Saravana Kannan <saravanak@google.com>
Change-Id: I59623500f0697d60ffd79640d6a7bd0c27787a3c
2020-04-17 04:31:20 +00:00
Jack Pham
bf3e2f74b2 ANDROID: GKI: usb: phy: Fix ABI diff for usb_otg_state
This is a partial cherry-pick of the original commit.

Signed-off-by: Mayank Rana <mrana@codeaurora.org>
Signed-off-by: Jack Pham <jackp@codeaurora.org>
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
Bug: 154275330
(cherry picked from commit 62523500193e11a8837d4c76ef4a42be2ca4ea0f)
Signed-off-by: Saravana Kannan <saravanak@google.com>
Change-Id: Ibd407f59deab4b5bd655a71f938f79cffe1a5021
2020-04-17 04:31:10 +00:00
Udipto Goswami
a34e2697fd ANDROID: GKI: usb: phy: Fix ABI diff due to usb_phy.drive_dp_pulse
This is a partial cherry-pick of just the header changes.

change-Id: Ib1e18a8d40301c553efe0919e11c89ad87d9cfca
Signed-off-by: Udipto Goswami <ugoswami@codeaurora.org>
Bug: 154275330
(cherry picked from commit b1caa8095292da59320a24ee5e9f470af2d0aad4)
Signed-off-by: Saravana Kannan <saravanak@google.com>
2020-04-17 04:30:57 +00:00
Hemant Kumar
7edd303073 ANDROID: GKI: usb: phy: Fix ABI diff for usb_phy_type and usb_phy.reset
This is a partial cherry-pick of just the header changes.

Change-Id: I9f349baa5878f7f2a696dc52f048ead54a831c05
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
Bug: 154275330
(cherry picked from commit 5a5e9243e049f05dfa9610a77c4f43c4eddddc64)
Signed-off-by: Saravana Kannan <saravanak@google.com>
2020-04-17 04:30:46 +00:00
Will McVicker
42abc3fc10 ANDROID: gki_defconfig: enable CONFIG_GPIO_SYSFS
Needed for vendors. Do not add to android-5.4+

Change-Id: I3d5df20bab8504938b4b6c958c75e04490ddf543
Signed-off-by: Will McVicker <willmcvicker@google.com>
Signed-off-by: Saravana Kannan <saravanak@google.com>
Bug: 154267716
Test: compile
2020-04-17 04:30:39 +00:00
Mark Salyzyn
a6a25a9d07 ANDROID: GKI: qcom: Fix compile issue when setting msm_lmh_dcvs as a module
Partial cherry picked from commit 5cb59eb5283f6f5a900c3c4971f7efbd83b7e43a
("qcom: Fix compile issue when setting msm_lmh_dcvs as a module")
adjusted: kernel/trace/power-traces.c
 skipped: drivers/thermal/qcom/lmh_dbg.h
          drivers/thermal/qcom/msm_lmh_dcvs.c

Export the trace symbol -- clock_set_rate -- for the msm_lmh_dcvs
driver.

Signed-off-by: Will McVicker <willmcvicker@google.com>
Change-Id: Ic68bc07997d73ba55f9ba7deff7dc7eef320e4bf
(cherry picked from commit 5cb59eb5283f6f5a900c3c4971f7efbd83b7e43a)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154153737
2020-04-17 03:24:20 +00:00
Lina Iyer
e92e4035e0 ANDROID: GKI: drivers: cpu_cooling: allow platform freq mitigation
Allow platform drivers to register with CPU cooling with their frequency
mitigation functions. This allows the platform drivers to provide the
callbacks to get the current ceil limit and to set the floor and ceil
limits for the cpu.

Change-Id: I47960b002bf1bce1cd588de2892de46793a95562
Signed-off-by: Lina Iyer <ilina@codeaurora.org>
(cherry picked from commit 986fde1710c194bede83bf62eb542e6f05af3886)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154153737
2020-04-17 03:23:39 +00:00
Banajit Goswami
7560c37851 ANDROID: GKI: ASoC: Add locking in DAPM widget power update
While playback and capture is done concurrently the dapm widget
data is accessed parallelly which results in data corruption and
kernel panic. Fix this problem by serializing the stream event
operation by adding lock

dapm_seq_run will invoke dapm power sequence for pre-sorted list
of widgets to be powered up. Kernel panic issue is observed
during stability runs with the above sequence caused by null
pointer dereference in dapm_seq_run_coalesced. Fix kernel panic
issue by checking for valid snd_soc_dapm_context pointer in
dapm_seq_run before invoking dapm_seq_run_coalesced

Widget list in dapm is getting corrupted during concurrent
use cases where dapm_power_widget is accessed. This corruption
is resulting in kernel crash in dapm. Fix the issue by adding
protection in dapm_power_widgets API.

This change also squashes the below changes-

(1)
ASoC: dapm: fix race condition in dapm

Dirty widget list can be accessed by multiple paths
in dapm framework. Dirty list is protected by dapm mutex.
Since dapm_force_enable_pin function accesses the dirty
list, protect it using the dapm mutex.

(2)
soc-dapm: Fix double mutex lock

dapm_mutex lock is acquired from soc_dapm_force_enable_pin_unlocked
function which will cause double lock because the same mutex is
acquired in soc_dapm_force_enable_pin(). Fix this issue by removing
dapm_mutex acquire from soc_dapm_force_enable_pin_unlocked function.

CRs-Fixed: 388785
Test: build
Bug: 151372815
Change-Id: I49d19860277726cf3152e104ab40627fd56c021c
Signed-off-by: Sriranjan Srikantam <cssrika@codeaurora.org>
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
(cherry picked from commit 853ed7c58fd03dd1b024f30a20f69a8df06cceed)
Signed-off-by: Hridya Valsaraju <hridya@google.com>
2020-04-17 00:42:47 +00:00
Sudheer Papothi
eac5d88e91 ANDROID: GKI: ASoC: jack: Fix buttons enum value
Microphone2 and SND_JACK_BTN_5 enum are same, resulting
in SND_JACK_BTN_5 event getting triggered when ANC headset
is plugged into the device.
Use unique values in sound jack type enum.

Test: build
Bug: 151372815
Change-Id: I668e50afcad11b1f62f511f4241f79bad858c7d2
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
(cherry picked from commit ce59edee66bf7ce6ea7d0baee51c2cbd18685521)
Signed-off-by: Hridya Valsaraju <hridya@google.com>
2020-04-17 00:42:38 +00:00
Banajit Goswami
98a387cdfe ANDROID: GKI: ALSA: jack: Add support to report second microphone
ALSA jack framework currently supports reporting only
one single microphone. Add support to report presence of
the second microphone to userspace.

Test: build
Bug: 149430094
Change-Id: I72d16892f2fa563c026bf90d847d9365dcf2233a
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Signed-off-by: Meng Wang <mwang@codeaurora.org>
(cherry picked from commit b071d2a1b2a52b1f13ae14769e473f1ee4f66702)
Signed-off-by: Hridya Valsaraju <hridya@google.com>
2020-04-17 00:42:31 +00:00
Banajit Goswami
3d8c1bbf03 ANDROID: GKI: ALSA: jack: Update supported jack switch types
Change adds support for jack switch types supported
by platform.

This change also squashes the below changes-

include: increase allowed SW INPUT device ID from 15 to 32

Increase the Input device SW ID from 15 to 32. This is needed
to accommodate more input devices.

Test: build
Bug: 149430094
Change-Id: If77f8b37b4db72ada2b5d8a3095265eef90ab62b
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Signed-off-by: Meng Wang <mwang@codeaurora.org>
(cherry picked from commit 3e70a3037a39604d697282be829845a63dce191d)
Signed-off-by: Hridya Valsaraju <hridya@google.com>
2020-04-17 00:42:23 +00:00
Sudheer Papothi
3dce7164d2 ANDROID: GKI: ALSA: jack: update jack types
Change updates the jack types that will be supported
by the platforms.

Test: build
Bug: 151372815
Change-Id: I948c6ffe4cc2cadd710242637c625006715ff7cc
Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org>
Signed-off-by: Sudheer Papothi <spapothi@codeaurora.org>
Signed-off-by: Meng Wang <mwang@codeaurora.org>
(cherry picked from commit e7fcc54d6dd81ea5d24ac01202ace1738026a3ba)
Signed-off-by: Hridya Valsaraju <hridya@google.com>
2020-04-17 00:42:13 +00:00
Hridya Valsaraju
02f88aaaac ANDROID: GKI: Export symbols arm_cpuidle_suspend, cpuidle_dev and cpuidle_register_governor
Exports:
  arm_cpuidle_suspend
  cpuidle_dev
  cpuidle_register_governor

Bug: 140652396
Test: build

Signed-off-by: Hridya Valsaraju <hridya@google.com>
Change-Id: Ia2f90c97763b5c7b047d36ab4c6f2a974fa02ccb
(cherry picked from commit 3571655e5e02f13df7006cb9a90f0081a48536b9)
Signed-off-by: Will McVicker <willmcvicker@google.com>
2020-04-16 16:53:39 -07:00
Manu Gautam
639d56b96d ANDROID: GKI: usb: hcd: Add USB atomic notifier callback for HC died error
Add support for USB atomic notifier callbacks when host controller
drivers reports death of controller on some fatal error.
Current implementation doesn't help to recover from this condition.
Controller platform drivers can register for this callback and take
necessary steps to reset and add hcd again.

Bug: 152001148
Test: Builds

Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
(cherry picked from commit b31fc5d2047a5f62e3044e4862994fa07fcaf959)
Signed-off-by: Sandeep Patil <sspatil@google.com>
Change-Id: Ie9064e669424096fee8c35cddccab29faf60cc6b
Signed-off-by: Will McVicker <willmcvicker@google.com>
2020-04-16 16:53:39 -07:00
Maheshwar Ajja
fbfc98114a ANDROID: media: increase video max frame number
Few userspace clients and drivers need more frames and
hence increase video max frame number from 32 to 64.

Bug: 143356419
Change-Id: Ib5394b7b71d75177234333dae23ec30fea01450f
Signed-off-by: Maheshwar Ajja <majja@codeaurora.org>
(cherry picked from commit e81694723a)
Bug: 154168148
Signed-off-by: Connor O'Brien <connoro@google.com>
2020-04-16 23:00:21 +00:00
Srinivas Kandagatla
434446e794 BACKPORT: nvmem: core: add NVMEM_SYSFS Kconfig
Many nvmem providers are not very keen on having default sysfs
nvmem entry, as most of the usecases for them are inside kernel
itself. And in some cases read/writes to some areas in nvmem are
restricted and trapped at secure monitor level, so accessing them
from userspace would result in board reboots.

This patch adds new NVMEM_SYSFS Kconfig to make binary sysfs entry
an optional one. This provision will give more flexibility to users.
This patch also moves existing sysfs code to a new file so that its
not compiled in when its not really required.

Bug: 154188491
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Reviewed-by: Gaurav Kohli <gkohli@codeaurora.org>
Tested-by: Gaurav Kohli <gkohli@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit ae0c2d7255)
Signed-off-by: Will McVicker <willmcvicker@google.com>
[willmcvicker: resolved trivial merge conflicts]
Change-Id: I648edb8d43fc7c2437c415b999c41657a6d11554
2020-04-16 12:19:27 -07:00
Bartosz Golaszewski
e96a106255 UPSTREAM: nvmem: add support for cell info
Add new structs and routines allowing users to define nvmem cells from
machine code. This global list of entries is parsed when a provider
is registered and cells are associated with the relevant nvmem_device
struct.

A possible improvement for the future is to allow users to register
cell tables after the nvmem provider has been registered by updating
the cell list at each call to nvmem_(add|del)_cell_table().

Bug: 154188491
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit b985f4cba6)
Signed-off-by: Will McVicker <willmcvicker@google.com>
[willmcvicker: fix trivial merge conflicts]
Change-Id: I4070c4c5d12aa9f555e55ec1f5edccee6395ca7b
2020-04-16 12:19:27 -07:00
Bartosz Golaszewski
ea3f6572ec UPSTREAM: nvmem: remove the global cell list
Nvmem subsystem keeps a global list of cells that, for non-DT systems,
can only be referenced by cell name, which makes it impossible to have
more than one nvmem device with cells named the same.

This patch makes every nvmem device the owner of the list of its cells.
This effectively removes the support for non-DT systems, but it will
be reintroduced following a different approach in subsequent patches.

This isn't a problem as support for board files in nvmem is currently
broken anyway: any user that would try to get an nvmem cell from the
global cell list would remove the cell after the calling
nvmem_cell_put(). This can cause anything from a subsequent user not
being able to get the cell to double free errors if more users hold
reference to the same cell at the same time.

Fortunately there are no such users which allows us to rework this part.

Bug: 154188491
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit c7235ee3f4)
Signed-off-by: Will McVicker <willmcvicker@google.com>
[willmcvicker: fix trivial merge conflicts]
Change-Id: Ibedab956757f5eb94c3c6ff3a1476121624a9234
2020-04-16 12:19:26 -07:00
Bartosz Golaszewski
38697b7c72 UPSTREAM: nvmem: use kref
Use kref for reference counting. Use an approach similar to the one
seen in the common clock subsystem: don't actually destroy the nvmem
device until the last user puts it. This way we can get rid of the
users check from nvmem_unregister().

Bug: 154188491
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit c1de7f43bd)
Signed-off-by: Will McVicker <willmcvicker@google.com>
Change-Id: I4c05a0614255d72163b79526324e41dd4b0100ef
2020-04-16 12:19:26 -07:00
Bartosz Golaszewski
8c9e954cea UPSTREAM: nvmem: use list_for_each_entry_safe in nvmem_device_remove_all_cells()
Use the provided helper for iterating over list entries without having
to use the list_entry() macro.

Bug: 154188491
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 1852183e14)
Signed-off-by: Will McVicker <willmcvicker@google.com>
Change-Id: Ied3a7cd16d39e1adf977a4f0ca9c3ce23ca080ef
2020-04-16 12:19:26 -07:00
Bartosz Golaszewski
9320809c47 UPSTREAM: nvmem: provide nvmem_dev_name()
Kernel users don't have any means of checking the names of nvmem
devices. Add a routine that returns the name of the nvmem provider.

This will be useful for future nvmem notifier subscribers - otherwise
they can't check what device is being added/removed.

Bug: 154188491
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit d7b9fd1669)
Signed-off-by: Will McVicker <willmcvicker@google.com>
Change-Id: Iecea6bb4844e87eadd4225b08c789a58029438d9
2020-04-16 12:19:26 -07:00
Hridya Valsaraju
390c6fd825 ANDROID: GKI: Bulk ABI update
Leaf changes summary: 16 artifacts changed
Changed leaf types summary: 12 leaf types changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 4 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

4 Added functions:

  [A] 'function int drm_mode_create_colorspace_property(drm_connector*)'
  [A] 'function int drm_panel_notifier_call_chain(drm_panel*, unsigned long int, void*)'
  [A] 'function int drm_panel_notifier_register(drm_panel*, notifier_block*)'
  [A] 'function int drm_panel_notifier_unregister(drm_panel*, notifier_block*)'

Test: build
Bug: 149430094
Change-Id: Ibde0fae0cb05a33280091a082567c2b0d32f2f8e
Signed-off-by: Hridya Valsaraju <hridya@google.com>
2020-04-16 19:14:23 +00:00
Mark Salyzyn
d14afb1c8a ANDROID: GKI: cpuhotplug: adding hotplug enums for vendor code
Needed to align the enum lists with vendor expectations.

(cherry picked from various)
Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 154120209
Change-Id: I71fe27297db4352ef9f4b87db978dc2d6e8e0bc8
2020-04-16 18:12:07 +00:00
Paul Lawrence
298fe8e641 ANDROID: Incremental fs: Fix create_file performance
incfs only syncs at createfile time. This was making createfile take
a very long time. It also appears to offer little actual value -
whether we flush or no, if the device crashes the header will be
partial.

Bug: 15356649
Test: incfs_test passes, createfile takes less than half the time
Change-Id: I8f1fa138226868ebfb4a6a41254444af453070c8
Signed-off-by: Paul Lawrence <paullawrence@google.com>
(cherry picked from commit 4cc78c93ad)
2020-04-16 18:01:12 +00:00
Nathan Chancellor
2ca600cbe0 ANDROID: build.config.common: Add BUILDTOOLS_PREBUILT_BIN
This was added to build.config.common in all of the other branches but
not this one during the build.config refactor. Without this, it is
possible to get different build results across host environments.

Change-Id: Ie72dd902adfa4b3d8fed8bfbadf13a78cf55f1fa
Fixes: f04f84fdeb ("ANDROID: refactor build.config files to remove duplication")
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2020-04-16 18:00:31 +00:00
Masahiro Yamada
9cd9f31cf2 UPSTREAM: kheaders: include only headers into kheaders_data.tar.xz
Currently, kheaders_data.tar.xz contains some build scripts as well as
headers. None of them is needed in the header archive.

For ARCH=x86, this commit excludes the following from the archive:

  arch/x86/include/asm/Kbuild
  arch/x86/include/uapi/asm/Kbuild
  include/asm-generic/Kbuild
  include/config/auto.conf
  include/config/kernel.release
  include/config/tristate.conf
  include/uapi/asm-generic/Kbuild
  include/uapi/Kbuild
  kernel/gen_kheaders.sh

This change is actually motivated for the planned header compile-testing
because it will generate more build artifacts, which should not be
included in the archive.

Change-Id: I688e041842740216cace0373ca9f358bc7704809
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Joel Fernandes (Google) <joel@joelfernandes.org>
(cherry picked from commit 7199ff7d74)
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2020-04-16 18:00:25 +00:00
Masahiro Yamada
667cbc0e2a UPSTREAM: kheaders: remove meaningless -R option of 'ls'
The -R option of 'ls' is supposed to be used for directories.

   -R, --recursive
          list subdirectories recursively

Since 'find ... -type f' only matches to regular files, we do not
expect directories passed to the 'ls' command here.

Giving -R is harmless at least, but unneeded.

Change-Id: I73588f18e40824ccecc4149fbc467015b5c5e142
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Joel Fernandes (Google) <joel@joelfernandes.org>
(cherry picked from commit b60b7c2ea9)
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
2020-04-16 18:00:19 +00:00
David Keitel
9924682211 ANDROID: GKI: of: platform: initialize of_reserved_mem
Initialize reserved memory as part of of_platform_device_create_pdata.

Change-Id: I6bb6ba8279af6771cb61087405cb915f4a0602b3
Signed-off-by: David Keitel <dkeitel@codeaurora.org>
Signed-off-by: Rishabh Bhatnagar <rishabhb@codeaurora.org>
Bug: 147914088
(cherry picked from commit cb68ecf31b744d35c2f7cd5a1a2c2eae7e40ce8c)
Signed-off-by: Saravana Kannan <saravanak@google.com>
2020-04-16 04:17:36 +00:00
Shashank Babu Chinta Venkata
3c8a7d12de ANDROID: driver: gpu: drm: add notifier for panel related events
Add support for notfier of panel blank/unblank events.
This allows external drivers such as touch, backlight
drivers etc to subscribe to panel related events.

Signed-off-by: Shashank Babu Chinta Venkata <sbchin@codeaurora.org>
Bug: 139653858
Change-Id: I3ac644c1c931b959a511ee4a999a417a4b7bdcd1
2020-04-16 00:20:17 +00:00
Shashank Babu Chinta Venkata
580ab00497 ANDROID: include: drm: support unicasting mipi cmds to dsi ctrls
Add support into the drm_mipi_dsi framework to support
unicasting DCS commands to specific DSI controls within a panel.
This is required for partial update where region of interest
spans only on one controller in a dual controller configuration.
Also, Some display panel have the requirement of waiting for certain
duration before dsi host can read back the response from panel during
a DCS read command. This change adds the support to store
the delay required in dsi message structure.

Signed-off-by: Shashank Babu Chinta Venkata <sbchin@codeaurora.org>
Bug: 139653858
Change-Id: I3a99437441410a2514f9486d08ae3ba68670769e
2020-04-16 00:20:09 +00:00
Shashank Babu Chinta Venkata
d4d0146ef6 ANDROID: include: drm: increase DRM max property count to 64
Increase drm property count from 24 to 64 to make
room for custom properties of drm plane and drm
crtc objects.

Signed-off-by: Shashank Babu Chinta Venkata <sbchin@codeaurora.org>
Bug: 139653858
Change-Id: I3e42c1fc684d7d7cea828fc35b96673bdef598f4
2020-04-16 00:19:48 +00:00