Commit Graph

993171 Commits

Author SHA1 Message Date
Kalesh Singh
a19efee97a ANDROID: Re-enable fast mremap and fix UAF with SPF
SPF attempts page faults without taking the mmap lock, but takes the
PTL. If there is a concurrent fast mremap (at PMD/PUD level), this
can lead to a UAF as fast mremap will only take the PTL locks at the
PMD/PUD level. SPF cannot take the PTL locks at the larger subtree
granularity since this introduces much contention in the page fault
paths.

To address the race:
  1) Only try fast mremaps if there are no users of the VMA. Android
     is concerned with this optimization in the context of
     GC stop-the-world pause. So there are no other threads active
     and this should almost always succeed.
  2) Speculative faults detect ongoing fast mremaps and fallback
     to conventional fault handling (taking mmap read lock).

Bug: 263177905
Change-Id: I23917e493ddc8576de19883cac053dfde9982b7f
Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
2023-01-07 01:21:30 +00:00
Kalesh Singh
f610378ca2 Revert "ANDROID: Make SPF aware of fast mremaps"
This reverts commit 206a66b5c4.

Reason for revert: vts_linux_kselftest_arm_64 timeout

Bug: 263479421
Bug: 263177905
Change-Id: I123c56741c982d1539ceebd8bfde2443871aa1de
Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
2023-01-07 01:21:30 +00:00
Bing-Jhong Billy Jheng
03c04a7cba UPSTREAM: io_uring: add missing item types for splice request
Splice is like read/write and should grab current->nsproxy, denoted by
IO_WQ_WORK_FILES as it refers to current->files as well

Change-Id: I94a99fdef5764e7eda5da778b5b52a150b9fe5eb
Signed-off-by: Bing-Jhong Billy Jheng <billy@starlabs.sg>
Reviewed-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 75454b4bbf)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-01-06 09:36:26 +00:00
Kyle Tso
8bd021e7f2 ANDROID: Update the ABI representation
1 function symbol(s) added
  'int extcon_set_property_sync(struct extcon_dev *, unsigned int, unsigned int, union extcon_property_value)'

Bug: 257490462
Change-Id: I616c041604a84ef869fa818f3a0244b80f281656
Signed-off-by: Kyle Tso <kyletso@google.com>
2023-01-05 21:38:59 +00:00
Bian Jin chen
fa957a5de4 ANDROID: GKI: Enable symbols for bcmdhd-pcie
1 function symbol(s) added
  'int netif_set_xps_queue(struct net_device *, const struct cpumask *, u16)'

Bug: 239396464
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Bian Jin chen <kenjc.bian@rock-chips.com>
Change-Id: I7dea5ae556484e15394fe5ec5c3446b7692758eb
2022-12-28 11:42:23 +08:00
Bian Jin chen
f2ea038eda ANDROID: GKI: Enable symbols for pwrseq-simple
4 function symbol(s) added
  'unsigned long int * bitmap_alloc(unsigned int, gfp_t)'
  'int gpiod_set_array_value_cansleep(unsigned int, struct gpio_desc * *, struct gpio_array *, unsigned long int *)'
  'int mmc_pwrseq_register(struct mmc_pwrseq *)'
  'void mmc_pwrseq_unregister(struct mmc_pwrseq *)'

Bug: 239396464
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Bian Jin chen <kenjc.bian@rock-chips.com>
Change-Id: I7021822c754002e6247f0088399c9fc6987ea468
2022-12-28 11:16:05 +08:00
John Stultz
61a9c903fe FROMLIST: pstore: Make sure CONFIG_PSTORE_PMSG selects CONFIG_RT_MUTEXES
In commit [in -next: 76d62f24db] ("pstore: Switch pmsg_lock to an rt_mutex
to avoid priority inversion") I changed a lock to an rt_mutex.

However, its possible that CONFIG_RT_MUTEXES is not enabled,
which then results in a build failure, as the 0day bot detected:
  https://lore.kernel.org/linux-mm/202212211244.TwzWZD3H-lkp@intel.com/

Thus this patch changes CONFIG_PSTORE_PMSG to select
CONFIG_RT_MUTEXES, which ensures the build will not fail.

Cc: Wei Wang <wvw@google.com>
Cc: Midas Chien<midaschieh@google.com>
Cc: Connor O'Brien <connoro@google.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Anton Vorontsov <anton@enomsg.org>
Cc: Colin Cross <ccross@android.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: kernel test robot <lkp@intel.com>
Cc: kernel-team@android.com
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: John Stultz <jstultz@google.com>
Link: https://lore.kernel.org/lkml/20221221051855.15761-1-jstultz@google.com/
Change-Id: I56ef91f302aa9ed1be3858c03b72a79543a329e5
[jstultz: Tweaked commit message to avoid catching presubmit checks
 referencing shas that haven't landed upstream yet]
Fixes: 943836e729 ("FROMGIT: pstore: Switch pmsg_lock to an rt_mutex to avoid priority inversion")
Signed-off-by: John Stultz <jstultz@google.com>
2022-12-23 06:38:31 +00:00
Bian Jin chen
75ec0fe20f ANDROID: GKI: rockchip: Add symbols for HDMIRX and Ethernet
54 function symbol(s) added
  'int __bitmap_and(unsigned long int *, const unsigned long int *, const unsigned long int *, unsigned int)'
  'struct dentry * debugfs_rename(struct dentry *, struct dentry *, struct dentry *, const char *)'
  'int device_get_phy_mode(struct device *)'
  'struct net_device * devm_alloc_etherdev_mqs(struct device *, int, unsigned int, unsigned int)'
  'void dql_completed(struct dql *, unsigned int)'
  'void dql_reset(struct dql *)'
  'void ethtool_convert_legacy_u32_to_link_mode(unsigned long int *, u32)'
  'bool ethtool_convert_link_mode_to_legacy_u32(u32 *, const unsigned long int *)'
  'int flow_block_cb_setup_simple(struct flow_block_offload *, struct list_head *, flow_setup_cb_t *, void *, void *, bool)'
  'void flow_rule_match_basic(const struct flow_rule *, struct flow_match_basic *)'
  'void flow_rule_match_ipv4_addrs(const struct flow_rule *, struct flow_match_ipv4_addrs *)'
  'void flow_rule_match_ports(const struct flow_rule *, struct flow_match_ports *)'
  'int kvm_arch_ptp_get_crosststamp(u64 *, struct timespec64 *, struct clocksource * *)'
  'bool kvm_arm_hyp_service_available(u32)'
  'struct phy_device * mdiobus_get_phy(struct mii_bus *, int)'
  'void netdev_alert(const struct net_device *, const char *, ...)'
  'void netdev_rss_key_fill(void *, size_t)'
  'void * of_get_mac_address(struct device_node *)'
  'int of_get_phy_mode(struct device_node *, phy_interface_t *)'
  'int of_mdiobus_register(struct mii_bus *, struct device_node *)'
  'bool of_phy_is_fixed_link(struct device_node *)'
  'struct page * page_pool_alloc_pages(struct page_pool *, gfp_t)'
  'struct page_pool * page_pool_create(const struct page_pool_params *)'
  'void page_pool_destroy(struct page_pool *)'
  'void page_pool_put_page(struct page_pool *, struct page *, unsigned int, bool)'
  'void page_pool_release_page(struct page_pool *, struct page *)'
  'int phy_init_eee(struct phy_device *, bool)'
  'int phylink_connect_phy(struct phylink *, struct phy_device *)'
  'struct phylink * phylink_create(struct phylink_config *, struct fwnode_handle *, phy_interface_t, const struct phylink_mac_ops *)'
  'void phylink_destroy(struct phylink *)'
  'void phylink_disconnect_phy(struct phylink *)'
  'int phylink_ethtool_get_eee(struct phylink *, struct ethtool_eee *)'
  'void phylink_ethtool_get_pauseparam(struct phylink *, struct ethtool_pauseparam *)'
  'void phylink_ethtool_get_wol(struct phylink *, struct ethtool_wolinfo *)'
  'int phylink_ethtool_ksettings_get(struct phylink *, struct ethtool_link_ksettings *)'
  'int phylink_ethtool_ksettings_set(struct phylink *, const struct ethtool_link_ksettings *)'
  'int phylink_ethtool_nway_reset(struct phylink *)'
  'int phylink_ethtool_set_eee(struct phylink *, struct ethtool_eee *)'
  'int phylink_ethtool_set_pauseparam(struct phylink *, struct ethtool_pauseparam *)'
  'int phylink_ethtool_set_wol(struct phylink *, struct ethtool_wolinfo *)'
  'int phylink_get_eee_err(struct phylink *)'
  'void phylink_mac_change(struct phylink *, bool)'
  'int phylink_mii_ioctl(struct phylink *, struct ifreq *, int)'
  'int phylink_of_phy_connect(struct phylink *, struct device_node *, u32)'
  'void phylink_set_port_modes(unsigned long int *)'
  'int phylink_speed_down(struct phylink *, bool)'
  'int phylink_speed_up(struct phylink *)'
  'void phylink_start(struct phylink *)'
  'void phylink_stop(struct phylink *)'
  'int platform_get_irq_byname_optional(struct platform_device *, const char *)'
  'int posix_clock_register(struct posix_clock *, struct device *)'
  'void posix_clock_unregister(struct posix_clock *)'
  'bool v4l2_find_dv_timings_cap(struct v4l2_dv_timings *, const struct v4l2_dv_timings_cap *, unsigned int, v4l2_check_dv_timings_fnc *, void *)'
  'int v4l2_src_change_event_subscribe(struct v4l2_fh *, const struct v4l2_event_subscription *)'

1 variable symbol(s) added
  'const struct vb2_mem_ops vb2_dma_contig_memops'

Bug: 239396464
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Bian Jin chen <kenjc.bian@rock-chips.com>
Change-Id: Iabbed3d2d885b731c40374a548e40ea3f967d555
2022-12-22 18:05:25 +08:00
Bian Jin chen
d7137d26a6 ANDROID: GKI: Enable symbols for sensordev and hid
9 function symbol(s) added
  'int __hid_request(struct hid_device *, struct hid_report *, int)'
  'void class_remove_file_ns(struct class *, const struct class_attribute *, void *)'
  'int clk_hw_set_parent(struct clk_hw *, struct clk_hw *)'
  'void hid_hw_close(struct hid_device *)'
  'int hid_hw_open(struct hid_device *)'
  'void hid_hw_stop(struct hid_device *)'
  'int hid_report_raw_event(struct hid_device *, int, u8 *, u32, int)'
  'struct hid_report * hid_validate_values(struct hid_device *, unsigned int, unsigned int, unsigned int, unsigned int)'
  'int input_ff_create_memless(struct input_dev *, void *, int(*)(struct input_dev *, void *, struct ff_effect *))'

1 variable symbol(s) added
  'struct hid_ll_driver usb_hid_driver'

Bug: 239396464
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Bian Jin chen <kenjc.bian@rock-chips.com>
Change-Id: I332619efca6d5e6428794ec27b7433e55b7c6cad
2022-12-22 17:33:14 +08:00
John Stultz
943836e729 FROMGIT: pstore: Switch pmsg_lock to an rt_mutex to avoid priority inversion
Wei Wang reported seeing priority inversion caused latencies
caused by contention on pmsg_lock, and suggested it be switched
to a rt_mutex.

I was initially hesitant this would help, as the tasks in that
trace all seemed to be SCHED_NORMAL, so the benefit would be
limited to only nice boosting.

However, another similar issue was raised where the priority
inversion was seen did involve a blocked RT task so it is clear
this would be helpful in that case.

Cc: Wei Wang <wvw@google.com>
Cc: Midas Chien<midaschieh@google.com>
Cc: Connor O'Brien <connoro@google.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Anton Vorontsov <anton@enomsg.org>
Cc: Colin Cross <ccross@android.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: kernel-team@android.com
Fixes: 9d5438f462 ("pstore: Add pmsg - user-space accessible pstore object")
Reported-by: Wei Wang <wvw@google.com>
Signed-off-by: John Stultz <jstultz@google.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20221214231834.3711880-1-jstultz@google.com
Bug: 244348789
Bug: 261039801
(cherry picked from commit 76d62f24db
 https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/pstore)
Change-Id: I1ee429420f299eb65b84625f46763fe5a76d058f
Signed-off-by: John Stultz <jstultz@google.com>
2022-12-21 20:46:05 +00:00
Bian Jin chen
7c5b72200f ANDROID: GKI: Enable symbols for wifi
17 function symbol(s) added
  'char * iwe_stream_add_event(struct iw_request_info *, char *, char *, struct iw_event *, int)'
  'char * iwe_stream_add_point(struct iw_request_info *, char *, char *, struct iw_event *, char *)'
  'char * iwe_stream_add_value(struct iw_request_info *, char *, char *, char *, struct iw_event *, int)'
  'int mmc_sw_reset(struct mmc_host *)'
  'bool rfkill_set_hw_state(struct rfkill *, bool)'
  'bool rfkill_set_sw_state(struct rfkill *, bool)'
  'void sched_set_fifo_low(struct task_struct *)'
  'u8 sdio_readb(struct sdio_func *, unsigned int, int *)'
  'u32 sdio_readl(struct sdio_func *, unsigned int, int *)'
  'u16 sdio_readw(struct sdio_func *, unsigned int, int *)'
  'void sdio_retune_crc_disable(struct sdio_func *)'
  'void sdio_retune_crc_enable(struct sdio_func *)'
  'void sdio_retune_hold_now(struct sdio_func *)'
  'void sdio_retune_release(struct sdio_func *)'
  'void sdio_writeb(struct sdio_func *, u8, unsigned int, int *)'
  'void sdio_writel(struct sdio_func *, u32, unsigned int, int *)'
  'void sdio_writew(struct sdio_func *, u16, unsigned int, int *)'

Bug: 239396464
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Bian Jin chen <kenjc.bian@rock-chips.com>
Change-Id: I9b904964e2751638bdca927699defbcdbbba3792
2022-12-21 19:06:05 +00:00
Bian Jin chen
f721f7b66e ANDROID: Enable symbols for sound and serial
22 function symbol(s) added
  'bool clk_is_match(const struct clk *, const struct clk *)'
  'bool of_device_is_big_endian(const struct device_node *)'
  'unsigned long int round_jiffies_relative(unsigned long int)'
  'void serial8250_clear_and_reinit_fifos(struct uart_8250_port *)'
  'void serial8250_do_pm(struct uart_port *, unsigned int, unsigned int)'
  'void serial8250_do_set_divisor(struct uart_port *, unsigned int, unsigned int, unsigned int)'
  'void serial8250_do_set_ldisc(struct uart_port *, struct ktermios *)'
  'void serial8250_do_set_termios(struct uart_port *, struct ktermios *, struct ktermios *)'
  'struct uart_8250_port * serial8250_get_port(int)'
  'int serial8250_handle_irq(struct uart_port *, unsigned int)'
  'int serial8250_register_8250_port(struct uart_8250_port *)'
  'void serial8250_resume_port(int)'
  'void serial8250_suspend_port(int)'
  'void serial8250_unregister_port(int)'
  'void serial8250_update_uartclk(struct uart_port *, unsigned int)'
  'int snd_pcm_stop_xrun(struct snd_pcm_substream *)'
  'void snd_soc_component_exit_regmap(struct snd_soc_component *)'
  'int snd_soc_dapm_force_bias_level(struct snd_soc_dapm_context *, enum snd_soc_bias_level)'
  'int snd_soc_dapm_new_widgets(struct snd_soc_card *)'
  'int snd_soc_get_dai_name(struct of_phandle_args *, const char * *)'
  'int snd_soc_jack_add_zones(struct snd_soc_jack *, int, struct snd_soc_jack_zone *)'
  'int snd_soc_jack_get_type(struct snd_soc_jack *, int)'

Bug: 239396464
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Bian Jin chen <kenjc.bian@rock-chips.com>
Change-Id: Ic3d6f701cf8a0ec2a3937899fce7089dc777a642
2022-12-21 19:06:05 +00:00
Kalesh Singh
206a66b5c4 ANDROID: Make SPF aware of fast mremaps
SPF attempts page faults without taking the mmap lock, but takes the
PTL. If there is a concurrent fast mremap (at PMD/PUD level), this
can lead to a UAF as fast mremap will only take the PTL locks at the
PMD/PUD level. SPF cannot take the PTL locks at the larger subtree
granularity since this introduces much contention in the page fault
paths.

To address the race:
  1) Fast mremaps wait until there are no users of the VMA.
  2) Speculative faults detect ongoing fast mremaps and fallback
    to conventional fault handling (taking mmap read lock).

Since this race condition is very rare the performance impact is
negligible.

Bug: 263177905
Change-Id: If9755aa4261337fe180e3093a3cefaae8ac9ff1a
Signed-off-by: Kalesh Singh <kaleshsingh@google.com>
2022-12-20 09:55:41 -08:00
Farid Chahla
3cd617a48a ANDROID: GKI: enable mulitcolor-led
To enable newer version of DualSense driver, i.e. hid-playstation, we
need to set LEDS_CLASS_MULTICOLOR to "y".

Bug: 260685629
Change-Id: I52b0b1b6a061457e009b62a6bd6b66a91c8c37a2
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-19 19:50:48 +00:00
Roderick Colenbrander
2e557218f8 UPSTREAM: HID: playstation: support updated DualSense rumble mode.
Newer DualSense firmware supports a revised classic rumble mode,
which feels more similar to rumble as supported on previous PlayStation
controllers. It has been made the default on PlayStation and non-PlayStation
devices now (e.g. iOS and Windows). Default to this new mode when
supported.

Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Link: https://lore.kernel.org/r/20221010212313.78275-4-roderick.colenbrander@sony.com

Bug: 260685629
(cherry picked from commit 9fecab247e)
Change-Id: Icd330111a4d1b1e76a04cd11c623d0982ce3d66f
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-19 19:50:48 +00:00
Roderick Colenbrander
e32df322f1 UPSTREAM: HID: playstation: add initial DualSense Edge controller support
Provide initial support for the DualSense Edge controller. The brings
support up to the level of the original DualSense, but won't yet provide
support for new features (e.g. reprogrammable buttons).

Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
CC: stable@vger.kernel.org
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Link: https://lore.kernel.org/r/20221010212313.78275-3-roderick.colenbrander@sony.com

Bug: 260685629
(cherry picked from commit b8a968efab)
Change-Id: I5b95de806e823085d1144f016d8cfd76e4a933ef
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-19 19:50:48 +00:00
Roderick Colenbrander
2a22248b45 UPSTREAM: HID: playstation: stop DualSense output work on remove.
Ensure we don't schedule any new output work on removal and wait
for any existing work to complete. If we don't do this e.g. rumble
work can get queued during deletion and we trigger a kernel crash.

Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
CC: stable@vger.kernel.org
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Link: https://lore.kernel.org/r/20221010212313.78275-2-roderick.colenbrander@sony.com

Bug: 260685629
(cherry picked from commit 182934a1e9)
Change-Id: I40cadfde5765cdabf45def929860258d6019bf10
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-19 19:50:48 +00:00
Greg Kroah-Hartman
255a81bcd1 UPSTREAM: HID: playstation: convert to use dev_groups
There is no need for a driver to individually add/create device groups,
the driver core will do it automatically for you.  Convert the
hid-playstation driver to use the dev_groups pointer instead of manually
calling the driver core to create the group and have it be cleaned up
later on by the devm core.

Cc: Roderick Colenbrander <roderick.colenbrander@sony.com>
Cc: Jiri Kosina <jikos@kernel.org>
Cc: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Cc: linux-input@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

Bug: 260685629
(cherry picked from commit b4a9af9be6)
Change-Id: I516a1b0ef7f4f8545e0c1b9485b49879dd7a3136
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-19 19:50:48 +00:00
Jiri Kosina
8621c4accd UPSTREAM: HID: playstation: fix return from dualsense_player_led_set_brightness()
brightness_set_blocking() callback expects function returning int. This fixes
the follwoing build failure:

drivers/hid/hid-playstation.c: In function ‘dualsense_player_led_set_brightness’:
drivers/hid/hid-playstation.c:885:1: error: no return statement in function returning non-void [-Werror=return-type]
 }
 ^

Signed-off-by: Jiri Kosina <jkosina@suse.cz>

Bug: 260685629
(cherry picked from commit 3c92cb4cb6)
Change-Id: Id16b960826a26ac22c1a14572444f9af29689ed6
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-19 19:50:48 +00:00
Roderick Colenbrander
409da497ab UPSTREAM: HID: playstation: expose DualSense player LEDs through LED class.
The DualSense player LEDs were so far not adjustable from user-space.
This patch exposes each LED individually through the LED class. Each
LED uses the new 'player' function resulting in a name like:
'inputX:white:player-1' for the first LED.

Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

Bug: 260685629
(cherry picked from commit 8c0ab553b0)
Change-Id: I49c699a99b0b8a7bb7980560e3ea7a12faf646aa
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-19 19:50:48 +00:00
Roderick Colenbrander
295a9c7f91 UPSTREAM: leds: add new LED_FUNCTION_PLAYER for player LEDs for game controllers.
Player LEDs are commonly found on game controllers from Nintendo and Sony
to indicate a player ID across a number of LEDs. For example, "Player 2"
might be indicated as "-x--" on a device with 4 LEDs where "x" means on.

This patch introduces LED_FUNCTION_PLAYER1-5 defines to properly indicate
player LEDs from the kernel. Until now there was no good standard, which
resulted in inconsistent behavior across xpad, hid-sony, hid-wiimote and
other drivers. Moving forward new drivers should use LED_FUNCTION_PLAYERx.

Note: management of Player IDs is left to user space, though a kernel
driver may pick a default value.

Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

Bug: 260685629
(cherry picked from commit 61177c088a)
Change-Id: Ie1de4d66304bb25fc2c9fcdb1ec9b7589ad9e7ac
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-19 19:50:48 +00:00
Roderick Colenbrander
c3336b229d UPSTREAM: HID: playstation: expose DualSense lightbar through a multi-color LED.
The DualSense lightbar has so far been supported, but it was not yet
adjustable from user space. This patch exposes it through a multi-color
LED.

Signed-off-by: Roderick Colenbrander <roderick.colenbrander@sony.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>

Bug: 260685629
(cherry picked from commit fc97b4d6a1)
Change-Id: I48204113da804b13ad5bed2f651a5826ab5a86f7
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-19 19:50:48 +00:00
Pavel Machek
39563d2066 UPSTREAM: Documentation: leds: standartizing LED names
We have a list of valid functions, but LED names in sysfs are still
far from being consistent. Create list of "well known" LED names so we
nudge people towards using same LED names (except color) for same
functionality.

Signed-off-by: Pavel Machek <pavel@ucw.cz>

Bug: 260685629
(cherry picked from commit 09f1273064)
Change-Id: Iea12a9c230d6cd072b0f4fd4e0c616348173dd53
Signed-off-by: Farid Chahla <farid.chahla@sony.com>
2022-12-19 19:50:48 +00:00
Bian Jin chen
ceff5c1670 ANDROID: GKI: Add symbols for crypto
23 function symbol(s) added
  'void __crypto_xor(u8 *, const u8 *, const u8 *, unsigned int)'
  'int ce_aes_expandkey(struct crypto_aes_ctx *, const u8 *, unsigned int)'
  'int crypto_ahash_digest(struct ahash_request *)'
  'int crypto_ahash_final(struct ahash_request *)'
  'struct crypto_ahash * crypto_alloc_ahash(const char *, u32, u32)'
  'struct crypto_akcipher * crypto_alloc_akcipher(const char *, u32, u32)'
  'struct crypto_async_request * crypto_dequeue_request(struct crypto_queue *)'
  'int crypto_enqueue_request(struct crypto_queue *, struct crypto_async_request *)'
  'void crypto_inc(u8 *, unsigned int)'
  'void crypto_init_queue(struct crypto_queue *, unsigned int)'
  'int crypto_register_akcipher(struct akcipher_alg *)'
  'int crypto_sha1_finup(struct shash_desc *, const u8 *, unsigned int, u8 *)'
  'int crypto_sha1_update(struct shash_desc *, const u8 *, unsigned int)'
  'void crypto_unregister_ahash(struct ahash_alg *)'
  'void crypto_unregister_akcipher(struct akcipher_alg *)'
  'void crypto_unregister_algs(struct crypto_alg *, int)'
  'void crypto_unregister_skcipher(struct skcipher_alg *)'
  'void gf128mul_lle(be128 *, const be128 *)'
  'int rsa_parse_priv_key(struct rsa_key *, void *, unsigned int)'
  'int rsa_parse_pub_key(struct rsa_key *, void *, unsigned int)'
  'struct scatterlist * sg_last(struct scatterlist *, unsigned int)'
  'int sg_nents(struct scatterlist *)'
  'size_t sg_pcopy_to_buffer(struct scatterlist *, unsigned int, void *, size_t, off_t)'

Bug: 239396464
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Bian Jin chen <kenjc.bian@rock-chips.com>
Change-Id: I6ead1bad2e1fb4935a9e044e54f7c6a25a314dfa
2022-12-17 12:08:39 +08:00
Eric Biggers
dc01503266 ANDROID: fips140: add dump_jitterentropy command to fips140_lab_util
For the entropy analysis, we must provide some output from the Jitter
RNG: a large amount of output from one instance, and a smaller amount of
output from each of a certain number of instances.

The original plan was to use a build of the userspace jitterentropy
library that matches the kernel's jitterentropy_rng as closely as
possible.  However, it's now being requested that the output be gotten
from the kernel instead.

Now that fips140_lab_util depends on AF_ALG anyway, it's straightforward
to dump output from jitterentropy_rng instances using AF_ALG.
Therefore, add a command dump_jitterentropy which supports this.

Bug: 188620248
Change-Id: I78eb26250e88f2fc28fc44aa201acbe5b84df8bb
Signed-off-by: Eric Biggers <ebiggers@google.com>
2022-12-16 19:01:49 +00:00
Bian Jin chen
6ab4ce67b5 ANDROID: GKI: Add symbols for misc driver
27 function symbol(s) added
  '__arm_smccc_hvc'
  'void bitmap_free(const unsigned long int *)'
  'unsigned long int * bitmap_zalloc(unsigned int, gfp_t)'
  'struct device * class_find_device(struct class *, struct device *, void *, int(*)(struct device *, void *))'
  'struct iio_channel * devm_iio_channel_get(struct device *, const char *)'
  'unsigned long int gen_pool_best_fit(unsigned long int *, unsigned long int, unsigned long int, unsigned int, void *, struct gen_pool *, unsigned long int)'
  'void gen_pool_set_algo(struct gen_pool *, genpool_algo_t, void *)'
  'phys_addr_t gen_pool_virt_to_phys(struct gen_pool *, unsigned long int)'
  'int get_kernel_pages(const struct kvec *, int, int, struct page * *)'
  'int i2c_bit_add_numbered_bus(struct i2c_adapter *)'
  'void iio_channel_release_all(struct iio_channel *)'
  'int iio_get_channel_type(struct iio_channel *, enum iio_chan_type *)'
  'int iio_read_channel_processed(struct iio_channel *, int *)'
  'int iio_update_buffers(struct iio_dev *, struct iio_buffer *, struct iio_buffer *)'
  'void input_set_poll_interval(struct input_dev *, unsigned int)'
  'int input_setup_polling(struct input_dev *, void(*)(struct input_dev *))'
  'int irq_domain_xlate_onetwocell(struct irq_domain *, struct device_node *, const u32 *, unsigned int, unsigned long int *, unsigned int *)'
  'int irq_set_chip(unsigned int, struct irq_chip *)'
  'int irq_set_parent(int, int)'
  'int led_classdev_flash_register_ext(struct device *, struct led_classdev_flash *, struct led_init_data *)'
  'void led_classdev_flash_unregister(struct led_classdev_flash *)'
  'void led_set_brightness_nosleep(struct led_classdev *, enum led_brightness)'
  'int led_trigger_register(struct led_trigger *)'
  'void led_trigger_unregister(struct led_trigger *)'
  'struct pinctrl_gpio_range * pinctrl_find_gpio_range_from_pin(struct pinctrl_dev *, unsigned int)'
  'unsigned int swiotlb_max_segment()'
  'void unpin_user_pages(struct page * *, unsigned long int)'

1 variable symbol(s) added
  'unsigned long int avenrun[3]'

Bug: 239396464
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Bian Jin chen <kenjc.bian@rock-chips.com>
Change-Id: I531260b6e0dc7784f2abe079dfbaf13932dc1d0e
2022-12-16 18:39:48 +00:00
Eric Biggers
76938a48b3 UPSTREAM: crypto: algboss - compile out test-related code when tests disabled
When CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is set, the code in algboss.c
that handles CRYPTO_MSG_ALG_REGISTER is unnecessary, so make it be
compiled out.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Bug: 256875295
(cherry picked from commit 441cb1b730)
Change-Id: I11ebf60e1915ad5d13bd16a26d6c2c0944b4c401
Signed-off-by: Eric Biggers <ebiggers@google.com>
2022-12-15 19:16:27 +00:00
Eric Biggers
4294518a56 UPSTREAM: crypto: api - compile out crypto_boot_test_finished when tests disabled
The crypto_boot_test_finished static key is unnecessary when self-tests
are disabled in the kconfig, so optimize it out accordingly, along with
the entirety of crypto_start_tests().  This mainly avoids the overhead
of an unnecessary static_branch_enable() on every boot.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Bug: 256875295
(cherry picked from commit 06bd9c967e)
Change-Id: I68eff9772dc219a8786bf410cb4e946052ea7811
Signed-off-by: Eric Biggers <ebiggers@google.com>
2022-12-15 19:16:27 +00:00
Eric Biggers
1301367224 UPSTREAM: crypto: algboss - optimize registration of internal algorithms
Since algboss always skips testing of algorithms with the
CRYPTO_ALG_INTERNAL flag, there is no need to go through the dance of
creating the test kthread, which creates a lot of overhead.  Instead, we
can just directly finish the algorithm registration, like is now done
when self-tests are disabled entirely.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Bug: 256875295
(cherry picked from commit 9cadd73ade)
Change-Id: I10f814cd6903d41265f69297d8568b43ec30012e
Signed-off-by: Eric Biggers <ebiggers@google.com>
2022-12-15 19:16:27 +00:00
Eric Biggers
83685e1c4a BACKPORT: crypto: api - optimize algorithm registration when self-tests disabled
Currently, registering an algorithm with the crypto API always causes a
notification to be posted to the "cryptomgr", which then creates a
kthread to self-test the algorithm.  However, if self-tests are disabled
in the kconfig (as is the default option), then this kthread just
notifies waiters that the algorithm has been tested, then exits.

This causes a significant amount of overhead, especially in the kthread
creation and destruction, which is not necessary at all.  For example,
in a quick test I found that booting a "minimum" x86_64 kernel with all
the crypto options enabled (except for the self-tests) takes about 400ms
until PID 1 can start.  Of that, a full 13ms is spent just doing this
pointless dance, involving a kthread being created, run, and destroyed
over 200 times.  That's over 3% of the entire kernel start time.

Fix this by just skipping the creation of the test larval and the
posting of the registration notification entirely, when self-tests are
disabled.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Bug: 256875295
(cherry picked from commit a7008584ab)
(Resolved trivial conflict due to missing upstream commit d6097b8d5d)
Change-Id: Ia6be068618e9286c1be01415a6766ba2fa94fc0d
Signed-off-by: Eric Biggers <ebiggers@google.com>
2022-12-15 19:16:27 +00:00
Herbert Xu
50d30af868 UPSTREAM: crypto: api - Fix boot-up crash when crypto manager is disabled
When the crypto manager is disabled, we need to explicitly set
the crypto algorithms' tested status so that they can be used.

Fixes: cad439fc04 ("crypto: api - Do not create test larvals if...")
Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Reported-by: Ido Schimmel <idosch@idosch.org>
Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Tested-by: Ido Schimmel <idosch@nvidia.com>
Tested-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Bug: 256875295
(cherry picked from commit beaaaa37c6)
Change-Id: I6cb42580e4774fbfd075497468b488be3447b7a9
Signed-off-by: Eric Biggers <ebiggers@google.com>
2022-12-15 19:16:27 +00:00
Herbert Xu
c10b51f9ed UPSTREAM: crypto: api - Do not create test larvals if manager is disabled
The delayed boot-time testing patch created a dependency loop
between api.c and algapi.c because it added a crypto_alg_tested
call to the former when the crypto manager is disabled.

We could instead avoid creating the test larvals if the crypto
manager is disabled.  This avoids the dependency loop as well
as saving some unnecessary work, albeit in a very unlikely case.

Reported-by: Nathan Chancellor <nathan@kernel.org>
Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
Reported-by: kernel test robot <lkp@intel.com>
Fixes: adad556efc ("crypto: api - Fix built-in testing dependency failures")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Bug: 256875295
(cherry picked from commit cad439fc04)
Change-Id: I4e0e0b2022dc060fc1d84744e04beae411165ad0
Signed-off-by: Eric Biggers <ebiggers@google.com>
2022-12-15 19:16:27 +00:00
Herbert Xu
ccb916e15f UPSTREAM: crypto: api - Export crypto_boot_test_finished
We need to export crypto_boot_test_finished in case api.c is
built-in while algapi.c is built as a module.

Fixes: adad556efc ("crypto: api - Fix built-in testing dependency failures")
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Tested-by: Stephen Rothwell <sfr@canb.auug.org.au> # ppc32 build
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Bug: 256875295
(cherry picked from commit e42dff467e)
Change-Id: Iefc190f29539084e7c84e23120e861de2e0b9351
Signed-off-by: Eric Biggers <ebiggers@google.com>
2022-12-15 19:16:27 +00:00
Herbert Xu
46d85d752a UPSTREAM: crypto: api - Fix built-in testing dependency failures
When complex algorithms that depend on other algorithms are built
into the kernel, the order of registration must be done such that
the underlying algorithms are ready before the ones on top are
registered.  As otherwise they would fail during the self-test
which is required during registration.

In the past we have used subsystem initialisation ordering to
guarantee this.  The number of such precedence levels are limited
and they may cause ripple effects in other subsystems.

This patch solves this problem by delaying all self-tests during
boot-up for built-in algorithms.  They will be tested either when
something else in the kernel requests for them, or when we have
finished registering all built-in algorithms, whichever comes
earlier.

Reported-by: Vladis Dronov <vdronov@redhat.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Bug: 256875295
(cherry picked from commit adad556efc)
Change-Id: I9cb048ffe0ce7e471cc6e71904f1b2c462b57be4
Signed-off-by: Eric Biggers <ebiggers@google.com>
2022-12-15 19:16:27 +00:00
Bian Jin chen
f2470c29a5 ANDROID: GKI: Enable multimedia
11 function symbol(s) added
  'unsigned long int alloc_iova_fast(struct iova_domain *, unsigned long int, unsigned long int, bool)'
  'int devfreq_remove_governor(struct devfreq_governor *)'
  'int device_match_name(struct device *, void *)'
  'bool disable_hardirq(unsigned int)'
  'int drm_gem_dumb_destroy(struct drm_file *, struct drm_device *, uint32_t)'
  'int drm_gem_handle_delete(struct drm_file *, u32)'
  'void free_iova_fast(struct iova_domain *, unsigned long int, unsigned long int)'
  'void iommu_detach_group(struct iommu_domain *, struct iommu_group *)'
  'int iommu_dma_reserve_iova(struct device *, dma_addr_t, u64)'
  'struct platform_device * of_device_alloc(struct device_node *, const char *, struct device *)'
  'int vm_insert_page(struct vm_area_struct *, unsigned long int, struct page *)'

Bug: 239396464
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Bian Jin chen <kenjc.bian@rock-chips.com>
Change-Id: I5dc79849a31303134a66fffd9e072d6311632dd8
2022-12-15 17:39:11 +08:00
Bian Jin chen
ef563b9a2f ANDROID: : GKI: Enable symbols for camera
37 function symbol(s) added
  'int __media_device_register(struct media_device *, struct module *)'
  'int __v4l2_ctrl_handler_setup(struct v4l2_ctrl_handler *)'
  'int __v4l2_ctrl_modify_range(struct v4l2_ctrl *, s64, s64, u64, s64)'
  'int __v4l2_ctrl_s_ctrl(struct v4l2_ctrl *, s32)'
  'int __v4l2_ctrl_s_ctrl_int64(struct v4l2_ctrl *, s64)'
  'ssize_t iio_read_const_attr(struct device *, struct device_attribute *, char *)'
  'void media_device_cleanup(struct media_device *)'
  'void media_device_init(struct media_device *)'
  'void media_device_unregister(struct media_device *)'
  'int media_entity_setup_link(struct media_link *, u32)'
  'void media_graph_walk_cleanup(struct media_graph *)'
  'int media_graph_walk_init(struct media_graph *, struct media_device *)'
  'struct media_entity * media_graph_walk_next(struct media_graph *)'
  'void media_graph_walk_start(struct media_graph *, struct media_entity *)'
  'int media_pipeline_start(struct media_entity *, struct media_pipeline *)'
  'void media_pipeline_stop(struct media_entity *)'
  'int v4l2_async_notifier_register(struct v4l2_device *, struct v4l2_async_notifier *)'
  'void v4l2_async_unregister_subdev(struct v4l2_subdev *)'
  's64 v4l2_ctrl_g_ctrl_int64(struct v4l2_ctrl *)'
  'struct v4l2_ctrl * v4l2_ctrl_new_int_menu(struct v4l2_ctrl_handler *, const struct v4l2_ctrl_ops *, u32, u8, u8, const s64 *)'
  'struct v4l2_ctrl * v4l2_ctrl_new_std_menu_items(struct v4l2_ctrl_handler *, const struct v4l2_ctrl_ops *, u32, u8, u64, u8, const char * const *)'
  'int v4l2_ctrl_subdev_log_status(struct v4l2_subdev *)'
  'int v4l2_ctrl_subdev_subscribe_event(struct v4l2_subdev *, struct v4l2_fh *, struct v4l2_event_subscription *)'
  'int v4l2_enum_dv_timings_cap(struct v4l2_enum_dv_timings *, const struct v4l2_dv_timings_cap *, v4l2_check_dv_timings_fnc *, void *)'
  'void v4l2_event_queue(struct video_device *, const struct v4l2_event *)'
  'int v4l2_event_subdev_unsubscribe(struct v4l2_subdev *, struct v4l2_fh *, struct v4l2_event_subscription *)'
  'int v4l2_event_subscribe(struct v4l2_fh *, const struct v4l2_event_subscription *, unsigned int, const struct v4l2_subscribed_event_ops *)'
  'bool v4l2_match_dv_timings(const struct v4l2_dv_timings *, const struct v4l2_dv_timings *, unsigned int, bool)'
  'int v4l2_pipeline_link_notify(struct media_link *, u32, unsigned int)'
  'int v4l2_pipeline_pm_get(struct media_entity *)'
  'void v4l2_pipeline_pm_put(struct media_entity *)'
  'void v4l2_print_dv_timings(const char *, const char *, const struct v4l2_dv_timings *, bool)'
  'int v4l2_src_change_event_subdev_subscribe(struct v4l2_subdev *, struct v4l2_fh *, struct v4l2_event_subscription *)'
  'int v4l2_subdev_link_validate(struct media_link *)'
  'void v4l2_subdev_notify_event(struct v4l2_subdev *, const struct v4l2_event *)'
  'bool v4l2_valid_dv_timings(const struct v4l2_dv_timings *, const struct v4l2_dv_timings_cap *, v4l2_check_dv_timings_fnc *, void *)'
  'int vb2_ioctl_prepare_buf(struct file *, void *, struct v4l2_buffer *)'

1 variable symbol(s) added
  'const char * v4l2_type_names[15]'

Bug: 239396464
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Bian Jin chen <kenjc.bian@rock-chips.com>
Change-Id: Ibcedeab5b59ca85611d1930c02497f0860dc4446
2022-12-14 19:35:45 +00:00
Bian Jin chen
fcf367d4f3 ANDROID: : GKI: Add symbols for rockchip phy
31 function symbol(s) added
  'int devm_extcon_register_notifier(struct device *, struct extcon_dev *, unsigned int, struct notifier_block *)'
  'int extcon_sync(struct extcon_dev *, unsigned int)'
  'bool fwnode_device_is_available(const struct fwnode_handle *)'
  'struct fwnode_handle * fwnode_graph_get_next_endpoint(const struct fwnode_handle *, struct fwnode_handle *)'
  'struct fwnode_handle * fwnode_graph_get_port_parent(const struct fwnode_handle *)'
  'struct fwnode_handle * fwnode_graph_get_remote_endpoint(const struct fwnode_handle *)'
  'struct fwnode_handle * fwnode_graph_get_remote_port_parent(const struct fwnode_handle *)'
  'int fwnode_graph_parse_endpoint(const struct fwnode_handle *, struct fwnode_endpoint *)'
  'int fwnode_property_get_reference_args(const struct fwnode_handle *, const char *, const char *, unsigned int, unsigned int, struct fwnode_reference_args *)'
  'int fwnode_property_read_u64_array(const struct fwnode_handle *, const char *, u64 *, size_t)'
  'int media_create_pad_link(struct media_entity *, u16, struct media_entity *, u16, u32)'
  'int media_entity_pads_init(struct media_entity *, u16, struct media_pad *)'
  'struct media_pad * media_entity_remote_pad(const struct media_pad *)'
  'struct platform_device * of_platform_device_create(struct device_node *, const char *, struct device *)'
  'enum usb_dr_mode of_usb_get_dr_mode_by_phy(struct device_node *, int)'
  'int phy_mipi_dphy_config_validate(struct phy_configure_opts_mipi_dphy *)'
  'void * typec_mux_get_drvdata(struct typec_mux *)'
  'struct typec_mux * typec_mux_register(struct device *, const struct typec_mux_desc *)'
  'void typec_mux_unregister(struct typec_mux *)'
  'int usb_add_phy(struct usb_phy *, enum usb_phy_type)'
  'enum usb_device_speed usb_get_maximum_speed(struct device *)'
  'struct v4l2_async_subdev * v4l2_async_notifier_add_fwnode_subdev(struct v4l2_async_notifier *, struct fwnode_handle *, unsigned int)'
  'int v4l2_async_notifier_add_subdev(struct v4l2_async_notifier *, struct v4l2_async_subdev *)'
  'void v4l2_async_notifier_cleanup(struct v4l2_async_notifier *)'
  'void v4l2_async_notifier_init(struct v4l2_async_notifier *)'
  'void v4l2_async_notifier_unregister(struct v4l2_async_notifier *)'
  'int v4l2_async_register_subdev(struct v4l2_subdev *)'
  'int v4l2_async_subdev_notifier_register(struct v4l2_subdev *, struct v4l2_async_notifier *)'
  'struct v4l2_ctrl * v4l2_ctrl_find(struct v4l2_ctrl_handler *, u32)'
  's32 v4l2_ctrl_g_ctrl(struct v4l2_ctrl *)'
  'int v4l2_querymenu(struct v4l2_ctrl_handler *, struct v4l2_querymenu *)'

Bug: 239396464
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Bian Jin chen <kenjc.bian@rock-chips.com>
Change-Id: I10283a87163750a8dfb9c25830698ee0cbf151da
2022-12-14 19:35:45 +00:00
Bian Jin chen
9078255b0a ANDROID: : GKI: Add symbols for dwc pcie controller
14 function symbol(s) added
  'void debugfs_create_devm_seqfile(struct device *, const char *, struct dentry *, int(*)(struct seq_file *, void *))'
  'struct pci_host_bridge * devm_pci_alloc_host_bridge(struct device *, size_t)'
  'void * devm_pci_remap_cfg_resource(struct device *, struct resource *)'
  'u16 dw_pcie_find_ext_capability(struct dw_pcie *, u8)'
  'int dw_pcie_link_up(struct dw_pcie *)'
  'u32 dw_pcie_read_dbi(struct dw_pcie *, u32, size_t)'
  'void dw_pcie_write_dbi(struct dw_pcie *, u32, size_t, u32)'
  'int of_pci_get_max_link_speed(struct device_node *)'
  'int pci_disable_link_state(struct pci_dev *, int)'
  'int pci_host_probe(struct pci_host_bridge *)'
  'void pci_remove_root_bus(struct pci_bus *)'
  'void pci_stop_root_bus(struct pci_bus *)'
  'int pcie_capability_clear_and_set_word(struct pci_dev *, int, u16, u16)'
  'int regulator_get_current_limit(struct regulator *)'

1 variable symbol(s) added
  'struct irq_chip dummy_irq_chip'

Bug: 239396464
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Bian Jin chen <kenjc.bian@rock-chips.com>
Change-Id: I6394ebfe65ee352af0d049be9963e49dddd92eb1
2022-12-14 19:35:45 +00:00
Bian Jin chen
c85c26ba19 ANDROID: : GKI: Enable symbols for display interface
50 function symbol(s) added
  'struct backlight_device * backlight_device_register(const char *, struct device *, void *, const struct backlight_ops *, const struct backlight_properties *)'
  'void cec_fill_conn_info_from_drm(struct cec_connector_info *, const struct drm_connector *)'
  'struct cec_notifier * cec_notifier_cec_adap_register(struct device *, const char *, struct cec_adapter *)'
  'void cec_notifier_cec_adap_unregister(struct cec_notifier *, struct cec_adapter *)'
  'struct cec_notifier * cec_notifier_conn_register(struct device *, const char *, const struct cec_connector_info *)'
  'void cec_notifier_conn_unregister(struct cec_notifier *)'
  'void cec_notifier_set_phys_addr(struct cec_notifier *, u16)'
  'void cec_notifier_set_phys_addr_from_edid(struct cec_notifier *, const struct edid *)'
  'void cec_queue_pin_hpd_event(struct cec_adapter *, bool, ktime_t)'
  'struct phy * devm_of_phy_get(struct device *, struct device_node *, const char *)'
  'struct phy * devm_of_phy_get_by_index(struct device *, struct device_node *, int)'
  'struct phy * devm_phy_optional_get(struct device *, const char *)'
  'void devm_remove_action(struct device *, void(*)(void *), void *)'
  'struct edid * drm_bridge_get_edid(struct drm_bridge *, struct drm_connector *)'
  'int drm_connector_attach_max_bpc_property(struct drm_connector *, int, int)'
  'enum hdmi_quantization_range drm_default_rgb_quant_range(const struct drm_display_mode *)'
  'int drm_dp_get_phy_test_pattern(struct drm_dp_aux *, struct drm_dp_phy_test_params *)'
  'int drm_dp_read_desc(struct drm_dp_aux *, struct drm_dp_desc *, bool)'
  'int drm_dp_read_dpcd_caps(struct drm_dp_aux *, u8 *)'
  'int drm_dp_read_sink_count(struct drm_dp_aux *)'
  'int drm_dp_set_phy_test_pattern(struct drm_dp_aux *, struct drm_dp_phy_test_params *, u8)'
  'int drm_dp_start_crc(struct drm_dp_aux *, struct drm_crtc *)'
  'int drm_dp_stop_crc(struct drm_dp_aux *)'
  'void drm_hdmi_avi_infoframe_quant_range(struct hdmi_avi_infoframe *, const struct drm_connector *, const struct drm_display_mode *, enum hdmi_quantization_range)'
  'int drm_hdmi_infoframe_set_hdr_metadata(struct hdmi_drm_infoframe *, const struct drm_connector_state *)'
  'int drm_hdmi_vendor_infoframe_from_display_mode(struct hdmi_vendor_infoframe *, const struct drm_connector *, const struct drm_display_mode *)'
  'u8 drm_match_cea_mode(const struct drm_display_mode *)'
  'int drm_mode_create_hdmi_colorspace_property(struct drm_connector *)'
  'bool drm_mode_is_420(const struct drm_display_info *, const struct drm_display_mode *)'
  'bool drm_mode_is_420_also(const struct drm_display_info *, const struct drm_display_mode *)'
  'bool drm_mode_is_420_only(const struct drm_display_info *, const struct drm_display_mode *)'
  'int drm_of_encoder_active_endpoint(struct device_node *, struct drm_encoder *, struct of_endpoint *)'
  'void drm_panel_bridge_remove(struct drm_bridge *)'
  'void drm_property_destroy(struct drm_device *, struct drm_property *)'
  'int drm_property_replace_global_blob(struct drm_device *, struct drm_property_blob * *, size_t, void *, struct drm_mode_object *, struct drm_property *)'
  'ssize_t drm_scdc_read(struct i2c_adapter *, u8, void *, size_t)'
  'bool drm_scdc_set_high_tmds_clock_ratio(struct i2c_adapter *, bool)'
  'bool drm_scdc_set_scrambling(struct i2c_adapter *, bool)'
  'ssize_t drm_scdc_write(struct i2c_adapter *, u8, void *, size_t)'
  'ssize_t hdmi_avi_infoframe_pack_only(const struct hdmi_avi_infoframe *, void *, size_t)'
  'ssize_t hdmi_drm_infoframe_pack(struct hdmi_drm_infoframe *, void *, size_t)'
  'ssize_t hdmi_vendor_infoframe_pack(struct hdmi_vendor_infoframe *, void *, size_t)'
  'struct iio_channel * iio_channel_get(struct device *, const char *)'
  'bool mipi_dsi_packet_format_is_short(u8)'
  'int phy_mipi_dphy_get_default_config(unsigned long int, unsigned int, unsigned int, struct phy_configure_opts_mipi_dphy *)'
  'void pwm_free(struct pwm_device *)'
  'struct pwm_device * pwm_request(int, const char *)'
  'int report_iommu_fault(struct iommu_domain *, struct device *, unsigned long int, int)'
  'void sha1_init(__u32 *)'
  'void sha1_transform(__u32 *, const char *, __u32 *)'

Bug: 239396464
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Bian Jin chen <kenjc.bian@rock-chips.com>
Change-Id: Ie5ced38ed41c74d3d2684ff80d49b3429acfcae5
2022-12-14 19:35:45 +00:00
Lee Jones
2bf2370001 UPSTREAM: drm/amdgpu: temporarily disable broken Clang builds due to blown stack-frame
commit 6f6cb17143 upstream.

Patch series "Fix a bunch of allmodconfig errors", v2.

Since b339ec9c22 ("kbuild: Only default to -Werror if COMPILE_TEST")
WERROR now defaults to COMPILE_TEST meaning that it's enabled for
allmodconfig builds.  This leads to some interesting build failures when
using Clang, each resolved in this set.

With this set applied, I am able to obtain a successful allmodconfig Arm
build.

This patch (of 2):

calculate_bandwidth() is presently broken on all !(X86_64 || SPARC64 ||
ARM64) architectures built with Clang (all released versions), whereby the
stack frame gets blown up to well over 5k.  This would cause an immediate
kernel panic on most architectures.  We'll revert this when the following
bug report has been resolved:
https://github.com/llvm/llvm-project/issues/41896.

Bug: 261962742
Link: https://lkml.kernel.org/r/20221125120750.3537134-1-lee@kernel.org
Link: https://lkml.kernel.org/r/20221125120750.3537134-2-lee@kernel.org
Signed-off-by: Lee Jones <lee@kernel.org>
Suggested-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: David Airlie <airlied@gmail.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Cc: Lee Jones <lee@kernel.org>
Cc: Leo Li <sunpeng.li@amd.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Nathan Chancellor <nathan@kernel.org>
Cc: Nick Desaulniers <ndesaulniers@google.com>
Cc: "Pan, Xinhui" <Xinhui.Pan@amd.com>
Cc: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Tom Rix <trix@redhat.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Iaa42b18cdcf9fe23d740c036371bd7950d431e14
Signed-off-by: Lee Jones <joneslee@google.com>
2022-12-14 08:01:23 +00:00
Lee Jones
c6580e1530 BACKPORT: Kconfig.debug: provide a little extra FRAME_WARN leeway when KASAN is enabled
[ Upstream commit 152fe65f30 ]

When enabled, KASAN enlarges function's stack-frames.  Pushing quite a few
over the current threshold.  This can mainly be seen on 32-bit
architectures where the present limit (when !GCC) is a lowly 1024-Bytes.

Bug: 261962742
Link: https://lkml.kernel.org/r/20221125120750.3537134-3-lee@kernel.org
Signed-off-by: Lee Jones <lee@kernel.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: "Christian König" <christian.koenig@amd.com>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: David Airlie <airlied@gmail.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Cc: Leo Li <sunpeng.li@amd.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Nathan Chancellor <nathan@kernel.org>
Cc: Nick Desaulniers <ndesaulniers@google.com>
Cc: "Pan, Xinhui" <Xinhui.Pan@amd.com>
Cc: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Tom Rix <trix@redhat.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Change-Id: I505a5187220b426fe49c0f15bf1704198082f63d
Signed-off-by: Lee Jones <joneslee@google.com>
2022-12-14 08:01:23 +00:00
Sabrina Dubroca
cc8b1052e8 UPSTREAM: esp: limit skb_page_frag_refill use to a single page
[ Upstream commit 5bd8baab08 ]

Commit ebe48d368e ("esp: Fix possible buffer overflow in ESP
transformation") tried to fix skb_page_frag_refill usage in ESP by
capping allocsize to 32k, but that doesn't completely solve the issue,
as skb_page_frag_refill may return a single page. If that happens, we
will write out of bounds, despite the check introduced in the previous
patch.

This patch forces COW in cases where we would end up calling
skb_page_frag_refill with a size larger than a page (first in
esp_output_head with tailen, then in esp_output_tail with
skb->data_len).

Fixes: cac2661c53 ("esp4: Avoid skb_cow_data whenever possible")
Fixes: 03e2a30f6a ("esp6: Avoid skb_cow_data whenever possible")
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit c075c3ea03)
[ resolves a merge conflict mistake in 5.10.113 as pointed out by
  Daniel that was noticed by watching the compiler warnings.]
Reported-by: Daniel Micay <danielmicay@gmail.com>
Bug: 261841282
Reported-by: Robin Peng <robinpeng@google.com>
Reported-by: Sabrina Dubroca <sd@queasysnail.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ic0c3b752b552a20aa35a9b262ee356e56b264695
2022-12-13 18:25:10 +00:00
Paul Lawrence
27e8affcfa ANDROID: fuse-bpf: Add /sys/fs flags for fuse-bpf version
Note that this is specific for the non-upstreamed version

Bug: 202785178
Test: cat /sys/fs/fuse/fuse_bpf_major_version
Change-Id: I68f9ca56778874975428839dfc1fd8f48b11bd75
Signed-off-by: Paul Lawrence <paullawrence@google.com>
2022-12-13 18:06:17 +00:00
Leo Chen
dbf356e587 ANDROID: Update the ABI representation
4 function symbol(s) added
  'void drm_atomic_bridge_chain_post_disable(struct drm_bridge *, struct drm_atomic_state *)'
  'void drm_atomic_helper_calc_timestamping_constants(struct drm_atomic_state *)'
  'void drm_atomic_helper_update_legacy_modeset_state(struct drm_device *, struct drm_atomic_state *)'
  'bool drm_dev_has_vblank(const struct drm_device *)'

Bug: 255678834
Change-Id: I871b9a4ee778a42df20bbde767815f3ae2cb4364
Signed-off-by: Leo Chen <yinchiuan@google.com>
2022-12-13 09:18:24 +00:00
Bian Jin chen
4972310624 ANDROID: GKI: rockchip: Enable symbols for drm peripheral
21 function symbol(s) added
  'int compat_only_sysfs_link_entry_to_kobj(struct kobject *, struct kobject *, const char *, const char *)'
  'u32 * drm_atomic_helper_bridge_propagate_bus_fmt(struct drm_bridge *, struct drm_bridge_state *, struct drm_crtc_state *, struct drm_connector_state *, u32, unsigned int *)'
  'enum drm_connector_status drm_bridge_detect(struct drm_bridge *)'
  'int drm_bridge_get_modes(struct drm_bridge *, struct drm_connector *)'
  'bool drm_kms_helper_is_poll_worker()'
  'int drm_of_find_panel_or_bridge(const struct device_node *, int, int, struct drm_panel * *, struct drm_bridge * *)'
  'int extcon_set_state(struct extcon_dev *, unsigned int, bool)'
  'int param_get_bool(char *, const struct kernel_param *)'
  'int param_set_bool(const char *, const struct kernel_param *)'
  'int pinctrl_generic_add_group(struct pinctrl_dev *, const char *, int *, int, void *)'
  'struct group_desc * pinctrl_generic_get_group(struct pinctrl_dev *, unsigned int)'
  'int pinctrl_generic_get_group_count(struct pinctrl_dev *)'
  'const char * pinctrl_generic_get_group_name(struct pinctrl_dev *, unsigned int)'
  'int pinctrl_generic_get_group_pins(struct pinctrl_dev *, unsigned int, const unsigned int * *, unsigned int *)'
  'int pinmux_generic_add_function(struct pinctrl_dev *, const char *, const char * *, const unsigned int, void *)'
  'struct function_desc * pinmux_generic_get_function(struct pinctrl_dev *, unsigned int)'
  'int pinmux_generic_get_function_count(struct pinctrl_dev *)'
  'int pinmux_generic_get_function_groups(struct pinctrl_dev *, unsigned int, const char * const * *, unsigned int * const)'
  'const char * pinmux_generic_get_function_name(struct pinctrl_dev *, unsigned int)'
  'int power_supply_is_system_supplied()'
  'int snd_pcm_stop(struct snd_pcm_substream *, snd_pcm_state_t)'

1 variable symbol(s) added
  'struct workqueue_struct * pm_wq'

Bug: 239396464
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Bian Jin chen <kenjc.bian@rock-chips.com>
Change-Id: I36c954316c7d55b901a01341812d9500fe026a3a
2022-12-09 07:25:27 +00:00
Lee Jones
0e3339114a UPSTREAM: bpf: Ensure correct locking around vulnerable function find_vpid()
[ Upstream commit 83c10cc362 ]

The documentation for find_vpid() clearly states:

  "Must be called with the tasklist_lock or rcu_read_lock() held."

Presently we do neither for find_vpid() instance in bpf_task_fd_query().
Add proper rcu_read_lock/unlock() to fix the issue.

Bug: 232939090
Fixes: 41bdc4b40e ("bpf: introduce bpf subcommand BPF_TASK_FD_QUERY")
Signed-off-by: Lee Jones <lee@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Yonghong Song <yhs@fb.com>
Link: https://lore.kernel.org/bpf/20220912133855.1218900-1-lee@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I517b52d97a22b92be1a479279067ddb7b84efbba
2022-12-08 11:26:25 +00:00
Kever Yang
68b77eae46 ANDROID: GKI: rockchip: Enable symbols for usbnet and serial
58 symbol(s) added
  'int __mdiobus_register(struct mii_bus *, struct module *)'
  'struct tty_driver * __tty_alloc_driver(unsigned int, struct module *, unsigned long int)'
  'struct net_device * __vlan_find_dev_deep_rcu(struct net_device *, __be16, u16)'
  'int cdc_ncm_bind_common(struct usbnet *, struct usb_interface *, u8, int)'
  'int cdc_ncm_change_mtu(struct net_device *, int)'
  'struct sk_buff * cdc_ncm_fill_tx_frame(struct usbnet *, struct sk_buff *, __le32)'
  'int cdc_ncm_rx_verify_ndp16(struct sk_buff *, int)'
  'int cdc_ncm_rx_verify_nth16(struct cdc_ncm_ctx *, struct sk_buff *)'
  'u8 cdc_ncm_select_altsetting(struct usb_interface *)'
  'void cdc_ncm_unbind(struct usbnet *, struct usb_interface *)'
  'int cdc_parse_cdc_header(struct usb_cdc_parsed_header *, struct usb_interface *, u8 *, int)'
  'u16 crc16(u16, const u8 *, size_t)'
  'int driver_attach(struct device_driver *)'
  'int genphy_read_status(struct phy_device *)'
  'void in6_dev_finish_destroy(struct inet6_dev *)'
  'const struct ipv6_stub * ipv6_stub'
  'struct mii_bus * mdiobus_alloc_size(size_t)'
  'void mdiobus_free(struct mii_bus *)'
  'void mdiobus_unregister(struct mii_bus *)'
  'void phy_attached_info(struct phy_device *)'
  'int phy_connect_direct(struct net_device *, struct phy_device *, void(*)(struct net_device *), phy_interface_t)'
  'void phy_disconnect(struct phy_device *)'
  'int phy_ethtool_get_link_ksettings(struct net_device *, struct ethtool_link_ksettings *)'
  'int phy_ethtool_nway_reset(struct net_device *)'
  'int phy_ethtool_set_link_ksettings(struct net_device *, const struct ethtool_link_ksettings *)'
  'struct phy_device * phy_find_first(struct mii_bus *)'
  'void phy_get_pause(struct phy_device *, bool *, bool *)'
  'int phy_init_hw(struct phy_device *)'
  'int phy_mii_ioctl(struct phy_device *, struct ifreq *, int)'
  'void phy_print_status(struct phy_device *)'
  'void phy_start(struct phy_device *)'
  'void phy_stop(struct phy_device *)'
  'void put_tty_driver(struct tty_driver *)'
  'void tty_ldisc_deref(struct tty_ldisc *)'
  'struct tty_ldisc * tty_ldisc_ref(struct tty_struct *)'
  'void tty_port_close(struct tty_port *, struct tty_struct *, struct file *)'
  'void tty_port_destroy(struct tty_port *)'
  'void tty_port_hangup(struct tty_port *)'
  'void tty_port_init(struct tty_port *)'
  'int tty_port_open(struct tty_port *, struct tty_struct *, struct file *)'
  'struct device * tty_port_register_device(struct tty_port *, struct tty_driver *, unsigned int, struct device *)'
  'void tty_port_tty_wakeup(struct tty_port *)'
  'int tty_register_driver(struct tty_driver *)'
  'void tty_set_operations(struct tty_driver *, const struct tty_operations *)'
  'int tty_standard_install(struct tty_driver *, struct tty_struct *)'
  'struct ktermios tty_std_termios'
  'void tty_termios_copy_hw(struct ktermios *, struct ktermios *)'
  'void tty_unregister_device(struct tty_driver *, unsigned int)'
  'int tty_unregister_driver(struct tty_driver *)'
  'void tty_vhangup(struct tty_struct *)'
  'void usb_autopm_get_interface_no_resume(struct usb_interface *)'
  'void usb_kill_urb(struct urb *)'
  'int usb_match_one_id(struct usb_interface *, const struct usb_device_id *)'
  'void usb_poison_urb(struct urb *)'
  'ssize_t usb_show_dynids(struct usb_dynids *, char *)'
  'ssize_t usb_store_new_id(struct usb_dynids *, const struct usb_device_id *, struct device_driver *, const char *, size_t)'
  'void usb_unpoison_urb(struct urb *)'
  'void usbnet_defer_kevent(struct usbnet *, int)'

Bug: 239396464
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Bian Jin chen <kenjc.bian@rock-chips.com>
Change-Id: I5345c645595ce8fcab37afc51a5c16d7208f2bfb
2022-12-07 08:22:24 +08:00
Kever Yang
6c6cc97632 ANDROID: GKI: rockchip: Enable symbols for USB and type-c
45 symbol(s) added
  'int __typec_altmode_register_driver(struct typec_altmode_driver *, struct module *)'
  'void debugfs_create_regset32(const char *, umode_t, struct dentry *, struct debugfs_regset32 *)'
  'int default_wake_function(struct wait_queue_entry *, unsigned int, int, void *)'
  'void * devm_platform_get_and_ioremap_resource(struct platform_device *, unsigned int, struct resource * *)'
  'struct extcon_dev * extcon_get_extcon_dev(const char *)'
  'struct fwnode_handle * fwnode_create_software_node(const struct property_entry *, const struct fwnode_handle *)'
  'struct fwnode_handle * fwnode_find_reference(const struct fwnode_handle *, const char *, unsigned int)'
  'unsigned int mii_check_media(struct mii_if_info *, unsigned int, unsigned int)'
  'int mii_link_ok(struct mii_if_info *)'
  'int phy_reset(struct phy *)'
  'struct tcpm_port * tcpm_register_port(struct device *, struct tcpc_dev *)'
  'void tcpm_tcpc_reset(struct tcpm_port *)'
  'void tcpm_unregister_port(struct tcpm_port *)'
  'struct typec_port * typec_altmode2port(struct typec_altmode *)'
  'int typec_altmode_enter(struct typec_altmode *, u32 *)'
  'int typec_altmode_exit(struct typec_altmode *)'
  'const struct typec_altmode * typec_altmode_get_partner(struct typec_altmode *)'
  'int typec_altmode_notify(struct typec_altmode *, unsigned long int, void *)'
  'void typec_altmode_unregister_driver(struct typec_altmode_driver *)'
  'int typec_altmode_vdm(struct typec_altmode *, const u32, const u32 *, int)'
  'int typec_get_negotiated_svdm_version(struct typec_port *)'
  'int usb_add_gadget_udc(struct device *, struct usb_gadget *)'
  'void usb_del_gadget_udc(struct usb_gadget *)'
  'void usb_deregister_dev(struct usb_interface *, struct usb_class_driver *)'
  'void usb_ep_set_maxpacket_limit(struct usb_ep *, unsigned int)'
  'int usb_find_common_endpoints(struct usb_host_interface *, struct usb_endpoint_descriptor * *, struct usb_endpoint_descriptor * *, struct usb_endpoint_descriptor * *, struct usb_endpoint_descriptor * *)'
  'struct usb_interface * usb_find_interface(struct usb_driver *, int)'
  'void usb_gadget_giveback_request(struct usb_ep *, struct usb_request *)'
  'int usb_gadget_map_request(struct usb_gadget *, struct usb_request *, int)'
  'void usb_gadget_unmap_request(struct usb_gadget *, struct usb_request *, int)'
  'enum usb_dr_mode usb_get_dr_mode(struct device *)'
  'struct usb_interface * usb_get_intf(struct usb_interface *)'
  'int usb_hcd_map_urb_for_dma(struct usb_hcd *, struct urb *, gfp_t)'
  'void usb_hcd_unmap_urb_for_dma(struct usb_hcd *, struct urb *)'
  'int usb_hub_clear_tt_buffer(struct urb *)'
  'void usb_phy_set_charger_current(struct usb_phy *, unsigned int)'
  'void usb_poison_anchored_urbs(struct usb_anchor *)'
  'void usb_put_intf(struct usb_interface *)'
  'int usb_register_dev(struct usb_interface *, struct usb_class_driver *)'
  'unsigned int usb_wakeup_enabled_descendants(struct usb_device *)'
  'int usbnet_change_mtu(struct net_device *, int)'
  'void usbnet_get_drvinfo(struct net_device *, struct ethtool_drvinfo *)'
  'u32 usbnet_get_link(struct net_device *)'
  'int usbnet_get_link_ksettings(struct net_device *, struct ethtool_link_ksettings *)'
  'int usbnet_set_link_ksettings(struct net_device *, const struct ethtool_link_ksettings *)'

Bug: 239396464
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Bian Jin chen <kenjc.bian@rock-chips.com>
Change-Id: I43ee73d1171d69c2b722709b5d087b6eb2bca88b
2022-12-07 08:22:22 +08:00
Kever Yang
824ee512f4 ANDROID: GKI: rockchip: Enable symbols for mmc
14 symbol(s) added
  'int clk_get_phase(struct clk *)'
  'int clk_set_phase(struct clk *, int)'
  'u64 dma_get_required_mask(struct device *)'
  'void sdhci_adma_write_desc(struct sdhci_host *, void * *, dma_addr_t, int, unsigned int)'
  'void sdhci_dumpregs(struct sdhci_host *)'
  'int sdhci_execute_tuning(struct mmc_host *, u32)'
  'unsigned int sdhci_pltfm_clk_get_max_clock(struct sdhci_host *)'
  'int sdhci_pltfm_unregister(struct platform_device *)'
  'void sdhci_request(struct mmc_host *, struct mmc_request *)'
  'int sdhci_resume_host(struct sdhci_host *)'
  'void sdhci_set_clock(struct sdhci_host *, unsigned int)'
  'void sdhci_set_power_and_bus_voltage(struct sdhci_host *, unsigned char, unsigned short int)'
  'void sdhci_set_uhs_signaling(struct sdhci_host *, unsigned int)'
  'int sdhci_suspend_host(struct sdhci_host *)'

Bug: 239396464
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Bian Jin chen <kenjc.bian@rock-chips.com>
Change-Id: I09408f84b0a07b23cdb5557deda449b8e774229d
2022-12-07 08:22:22 +08:00
Kever Yang
884dddd59b ANDROID: GKI: rockchip: Enable symbols for drm module
51 symbol(s) added
  'void __drm_atomic_helper_connector_reset(struct drm_connector *, struct drm_connector_state *)'
  'int __drm_atomic_helper_disable_plane(struct drm_plane *, struct drm_plane_state *)'
  'void __drm_atomic_helper_plane_reset(struct drm_plane *, struct drm_plane_state *)'
  'int __platform_register_drivers(struct platform_driver * const *, unsigned int, struct module *)'
  'void * __vmalloc(unsigned long int, gfp_t)'
  'struct drm_bridge_state * drm_atomic_get_new_bridge_state(struct drm_atomic_state *, struct drm_bridge *)'
  'void drm_atomic_helper_wait_for_vblanks(struct drm_device *, struct drm_atomic_state *)'
  'int drm_atomic_set_mode_for_crtc(struct drm_crtc_state *, const struct drm_display_mode *)'
  'void drm_bus_flags_from_videomode(const struct videomode *, u32 *)'
  'void drm_connector_list_update(struct drm_connector *)'
  'struct drm_crtc * drm_crtc_from_index(struct drm_device *, int)'
  'int drm_display_info_set_bus_formats(struct drm_display_info *, const u32 *, unsigned int)'
  'void drm_display_mode_from_videomode(const struct videomode *, struct drm_display_mode *)'
  'int drm_event_reserve_init_locked(struct drm_device *, struct drm_file *, struct drm_pending_event *, struct drm_event *)'
  'uint64_t drm_format_info_min_pitch(const struct drm_format_info *, int, unsigned int)'
  'void drm_framebuffer_cleanup(struct drm_framebuffer *)'
  'struct dma_buf * drm_gem_dmabuf_export(struct drm_device *, struct dma_buf_export_info *)'
  'int drm_gem_dmabuf_get_uuid(struct dma_buf *, uuid_t *)'
  'int drm_gem_dumb_map_offset(struct drm_file *, struct drm_device *, u32, u64 *)'
  'int drm_gem_fb_afbc_init(struct drm_device *, const struct drm_mode_fb_cmd2 *, struct drm_afbc_framebuffer *)'
  'int drm_gem_fb_init_with_funcs(struct drm_device *, struct drm_framebuffer *, struct drm_file *, const struct drm_mode_fb_cmd2 *, const struct drm_framebuffer_funcs *)'
  'void drm_kms_helper_poll_enable(struct drm_device *)'
  'int drm_mm_reserve_node(struct drm_mm *, struct drm_mm_node *)'
  'struct drm_display_mode * drm_mode_create(struct drm_device *)'
  'int drm_mode_create_tv_properties(struct drm_device *, unsigned int, const char * const *)'
  'int drm_mode_crtc_set_gamma_size(struct drm_crtc *, int)'
  'void drm_mode_prune_invalid(struct drm_device *, struct list_head *, bool)'
  'void drm_mode_set_crtcinfo(struct drm_display_mode *, int)'
  'void drm_mode_set_name(struct drm_display_mode *)'
  'void drm_mode_sort(struct list_head *)'
  'enum drm_mode_status drm_mode_validate_driver(struct drm_device *, const struct drm_display_mode *)'
  'enum drm_mode_status drm_mode_validate_size(const struct drm_display_mode *, int, int)'
  'enum drm_mode_status drm_mode_validate_ycbcr420(const struct drm_display_mode *, struct drm_connector *)'
  'uint32_t drm_of_crtc_port_mask(struct drm_device *, struct device_node *)'
  'int drm_panel_of_backlight(struct drm_panel *)'
  'unsigned long int drm_prime_get_contiguous_size(struct sg_table *)'
  'bool drm_probe_ddc(struct i2c_adapter *)'
  'struct drm_property * drm_property_create_object(struct drm_device *, u32, const char *, uint32_t)'
  'void drm_self_refresh_helper_cleanup(struct drm_crtc *)'
  'int drm_self_refresh_helper_init(struct drm_crtc *)'
  'int memblock_free(phys_addr_t, phys_addr_t)'
  'int mipi_dsi_dcs_get_display_brightness(struct mipi_dsi_device *, u16 *)'
  'ssize_t mipi_dsi_generic_write(struct mipi_dsi_device *, void *, size_t)'
  'int of_drm_get_panel_orientation(const struct device_node *, enum drm_panel_orientation *)'
  'int of_get_display_timing(const struct device_node *, const char *, struct display_timing *)'
  'int of_get_drm_display_mode(struct device_node *, struct drm_display_mode *, u32 *, int)'
  'struct i2c_adapter * of_get_i2c_adapter_by_node(struct device_node *)'
  'struct device_node * of_graph_get_port_by_id(struct device_node *, u32)'
  'struct device_node * of_graph_get_remote_port(const struct device_node *)'
  'void platform_unregister_drivers(struct platform_driver * const *, unsigned int)'
  'void videomode_from_timing(const struct display_timing *, struct videomode *)'

Bug: 239396464
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Signed-off-by: Bian Jin chen <kenjc.bian@rock-chips.com>
Change-Id: I214d4137a92f2cff5d0b2c1c16fca8277756e62f
2022-12-07 08:22:22 +08:00