mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
This is the 5.4.291 stable release
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmfSxSAACgkQONu9yGCS aT4xFxAAlZPsz8ZaSZdkyMSpr9lnz1P7Z/ONSc4f2j9dURdLz+HfP1jwQHRzK/jd JDtO9c9eg77/3UjKIyszTeHlaPbyA5bKsNF2zE+UjonSXzRNvsASmZW7Wee770Rf Yt6ZOn2tbDPwRfEsUILhKugNHkoZABSDUj+3FCbPQm5XzaTNeB0ofjWaRxbop5qv +GJnaFKwtu9yOWRIvRCQ5tE9zxW39xt767uuOBmsN1C6YECx5SAtgXXPQrpjCJEL TY09ATSAqbTjxdHDsQGBL1oe2XEXHJmD4hBKY/FysXuq2i+oFxXEavk7Eq6dR34M CoDKbeMXyTL3XnZ6iOzcqsyB/9hWHqRqvkqJI7fOqeJUWydRy7xy3Arf93M3Occ1 nGyJ1k51Wl19TaOE9G4hjWtBwBVx0rPtMIBOuWwBU1KP13R3pbPvUU41GKTEtw78 7ruTFycqRbU3uxYUoyV/XEUqLoWEuPyGk6DRCZy8rls0jLXnRzeKLJ6FxfhwBbrP B/NHcI6yUGwxpIPhwFJxwy+H/0eprxxBKrqldJBK3NkI1IyB2azldHWmdMdJKUiO e7Gxqi2SFOyjTRYb2GSgD25nQMbXyarwyS3vQxDb8XCDuZw2KJCBoD6OCTbtEeMZ pytJMQrM/GM6+tlqAWZqMZaNwStA4FnJzBL17fLmoTIWEpdmy0o= =LuVk -----END PGP SIGNATURE----- Merge 5.4.291 into android11-5.4-lts Changes in 5.4.291 perf cs-etm: Add missing variable in cs_etm__process_queues() udf: Fix use of check_add_overflow() with mixed type arguments overflow: Add __must_check attribute to check_*() helpers overflow: Correct check_shl_overflow() comment overflow: Allow mixed type arguments afs: Fix directory format encoding struct nbd: don't allow reconnect after disconnect partitions: ldm: remove the initial kernel-doc notation drm/etnaviv: Fix page property being used for non writecombine buffers drm/amdgpu: Fix potential NULL pointer dereference in atomctrl_get_smc_sclk_range_table ipmi: ipmb: Add check devm_kasprintf() returned value wifi: rtlwifi: do not complete firmware loading needlessly rtlwifi: rtl8192se Rename RT_TRACE to rtl_dbg wifi: rtlwifi: rtl8192se: rise completion of firmware loading as last step wifi: rtlwifi: usb: fix workqueue leak when probe fails dt-bindings: mmc: controller: clarify the address-cells description rtlwifi: replace usage of found with dedicated list iterator variable wifi: rtlwifi: remove unused timer and related code wifi: rtlwifi: remove unused dualmac control leftovers wifi: rtlwifi: remove unused check_buddy_priv wifi: rtlwifi: fix memory leaks and invalid access at probe error path wifi: rtlwifi: pci: wait for firmware loading before releasing memory cpupower: fix TSC MHz calculation team: prevent adding a device which is already a team device lower regulator: of: Implement the unwind path of of_regulator_match() wifi: wlcore: fix unbalanced pm_runtime calls selftests/harness: Display signed values correctly selftests: harness: fix printing of mismatch values in __EXPECT() clk: analogbits: Fix incorrect calculation of vco rate delta net: let net.core.dev_weight always be non-zero net/mlxfw: Drop hard coded max FW flash image size net: sched: Disallow replacing of child qdisc from one parent to another tools/testing/selftests/bpf/test_tc_tunnel.sh: Fix wait for server bind ASoC: sun4i-spdif: Add clock multiplier settings perf header: Fix one memory leakage in process_bpf_btf() perf header: Fix one memory leakage in process_bpf_prog_info() ktest.pl: Remove unused declarations in run_bisect_test function padata: fix sysfs store callback check perf top: Don't complain about lack of vmlinux when not resolving some kernel samples perf report: Fix misleading help message about --demangle bpf: Send signals asynchronously if !preemptible RDMA/mlx4: Avoid false error about access to uninitialized gids array rdma/cxgb4: Prevent potential integer overflow on 32bit arm64: dts: mediatek: mt8173-evb: Drop regulator-compatible property arm64: dts: mediatek: mt8173-evb: Fix MT6397 PMIC sub-node names ARM: dts: mediatek: mt7623: fix IR nodename fbdev: omapfb: Fix an OF node leak in dss_of_port_get_parent_device() media: rc: iguanair: handle timeouts media: lmedm04: Use GFP_KERNEL for URB allocation/submission. media: lmedm04: Handle errors for lme2510_int_read PCI: endpoint: Destroy the EPC device in devm_pci_epc_destroy() media: mipi-csis: Add check for clk_enable() media: camif-core: Add check for clk_enable() media: uvcvideo: Propagate buf->error to userspace staging: media: imx: fix OF node leak in imx_media_add_of_subdevs() scsi: mpt3sas: Set ioc->manu_pg11.EEDPTagMode directly to 1 scsi: ufs: bsg: Delete bsg_dev when setting up bsg fails ocfs2: mark dquot as inactive if failed to start trans while releasing dquot module: Extend the preempt disabled section in dereference_symbol_descriptor(). dmaengine: ti: edma: fix OF node reference leaks in edma_driver rtc: pcf85063: fix potential OOB write in PCF85063 NVMEM read ubifs: skip dumping tnc tree when zroot is null net: fec: implement TSO descriptor cleanup ipmr: do not call mr_mfc_uses_dev() for unres entries PM: hibernate: Add error handling for syscore_suspend() net: rose: fix timer races against user threads net: davicom: fix UAF in dm9000_drv_remove perf trace: Fix runtime error of index out of bounds vsock: Allow retrying on connect() failure net: sh_eth: Fix missing rtnl lock in suspend/resume path genksyms: fix memory leak when the same symbol is added from source genksyms: fix memory leak when the same symbol is read from *.symref file hexagon: fix using plain integer as NULL pointer warning in cmpxchg hexagon: Fix unbalanced spinlock in die() NFSD: Reset cb_seq_status after NFS4ERR_DELAY ktest.pl: Check kernelrelease return in get_version drivers/card_reader/rtsx_usb: Restore interrupt based detection usb: typec: tcpm: set SRC_SEND_CAPABILITIES timeout to PD_T_SENDER_RESPONSE HID: core: Fix assumption that Resolution Multipliers must be in Logical Collections media: uvcvideo: Fix double free in error path usb: gadget: f_tcm: Don't free command immediately btrfs: output the reason for open_ctree() failure btrfs: fix use-after-free when attempting to join an aborted transaction btrfs: convert BUG_ON in btrfs_reloc_cow_block() to proper error handling sched: Don't try to catch up excess steal time. x86/amd_nb: Restrict init function to AMD-based systems printk: Fix signed integer overflow when defining LOG_BUF_LEN_MAX tun: fix group permission check mmc: core: Respect quirk_max_rate for non-UHS SDIO card wifi: brcmsmac: add gain range check to wlc_phy_iqcal_gainparams_nphy() tomoyo: don't emit warning in tomoyo_write_control() mfd: lpc_ich: Add another Gemini Lake ISA bridge PCI device-id HID: Wacom: Add PCI Wacom device support APEI: GHES: Have GHES honor the panic= setting x86/mm: Don't disable PCID when INVLPG has been fixed by microcode spi-mxs: Fix chipselect glitch nilfs2: move page release outside of nilfs_delete_entry and nilfs_set_link nilfs2: eliminate staggered calls to kunmap in nilfs_rename nilfs2: handle errors that nilfs_prepare_chunk() may return media: uvcvideo: Only save async fh if success media: uvcvideo: Remove dangling pointers sched: sch_cake: add bounds checks to host bulk flow fairness counts kbuild: userprogs: use correct lld when linking through clang tasklet: Introduce new initialization API net: usb: rtl8150: use new tasklet API net: usb: rtl8150: enable basic endpoint checking usb: xhci: Add timeout argument in address_device USB HCD callback usb: xhci: Fix NULL pointer dereference on certain command aborts nvme: handle connectivity loss in nvme_set_queue_count firmware: iscsi_ibft: fix ISCSI_IBFT Kconfig entry gpu: drm_dp_cec: fix broken CEC adapter properties check tg3: Disable tg3 PCIe AER on system reboot udp: gso: do not drop small packets when PMTU reduces net: rose: lock the socket in rose_bind() netem: Update sch->q.qlen before qdisc_tree_reduce_backlog() tun: revert fix group permission check cpufreq: s3c64xx: Fix compilation warning leds: lp8860: Write full EEPROM, not only half of it s390/futex: Fix FUTEX_OP_ANDN implementation m68k: vga: Fix I/O defines binfmt_flat: Fix integer overflow bug on 32 bit systems arm64: dts: rockchip: increase gmac rx_delay on rk3399-puma KVM: Explicitly verify target vCPU is online in kvm_get_vcpu() KVM: s390: vsie: fix some corner-cases when grabbing vsie pages drm/komeda: Add check for komeda_get_layer_fourcc_list() Bluetooth: L2CAP: handle NULL sock pointer in l2cap_sock_alloc clk: qcom: clk-alpha-pll: fix alpha mode configuration clk: qcom: clk-rpmh: prevent integer overflow in recalc_rate perf bench: Fix undefined behavior in cmpworker() of: Correct child specifier used as input of the 2nd nexus node of: Fix of_find_node_opts_by_path() handling of alias+path+options of: reserved-memory: Fix using wrong number of cells to get property 'alignment' HID: hid-sensor-hub: don't use stale platform-data on remove wifi: brcmfmac: fix NULL pointer dereference in brcmf_txfinalize() usb: gadget: f_tcm: Translate error to sense usb: gadget: f_tcm: Decrement command ref count on cleanup usb: gadget: f_tcm: ep_autoconfig with fullspeed endpoint usb: gadget: f_tcm: Don't prepare BOT write request twice soc: qcom: socinfo: Avoid out of bounds read of serial number serial: sh-sci: Drop __initdata macro for port_cfg serial: sh-sci: Do not probe the serial port if its slot in sci_ports[] is in use powerpc/pseries/eeh: Fix get PE state translation kbuild: Move -Wenum-enum-conversion to W=2 soc: qcom: smem_state: fix missing of_node_put in error path media: ov5640: fix get_light_freq on auto media: uvcvideo: Fix event flags in uvc_ctrl_send_events media: uvcvideo: Remove redundant NULL assignment crypto: qce - fix goto jump in error path crypto: qce - unregister previously registered algos in error path nvmem: core: improve range check for nvmem_cell_write() vfio/platform: check the bounds of read/write syscalls ocfs2: fix incorrect CPU endianness conversion causing mount failure ocfs2: handle a symlink read error correctly nilfs2: fix possible int overflows in nilfs_fiemap() NFC: nci: Add bounds checking in nci_hci_create_pipe() mtd: onenand: Fix uninitialized retlen in do_otp_read() misc: fastrpc: Fix registered buffer page address net/ncsi: wait for the last response to Deselect Package before configuring channel ptp: Ensure info->enable callback is always set MIPS: ftrace: Declare ftrace_get_parent_ra_addr() as static ocfs2: check dir i_size in ocfs2_find_entry HID: multitouch: Add NULL check in mt_input_configured ndisc: ndisc_send_redirect() must use dev_get_by_index_rcu() vrf: use RCU protection in l3mdev_l3_out() team: better TEAM_OPTION_TYPE_STRING validation arm64: cacheinfo: Avoid out-of-bounds write to cacheinfo array gpio: bcm-kona: Fix GPIO lock/unlock for banks above bank 0 gpio: bcm-kona: Make sure GPIO bits are unlocked when requesting IRQ gpio: bcm-kona: Add missing newline to dev_err format string xen: remove a confusing comment on auto-translated guest I/O x86/xen: allow larger contiguous memory regions in PV guests media: cxd2841er: fix 64-bit division on gcc-9 vfio/pci: Enable iowrite64 and ioread64 for vfio pci Grab mm lock before grabbing pt lock orangefs: fix a oob in orangefs_debug_write ASoC: Intel: bytcr_rt5640: Add DMI quirk for Vexia Edu Atla 10 tablet 5V batman-adv: fix panic during interface removal usb: roles: set switch registered flag early on usb: gadget: udc: renesas_usb3: Fix compiler warning usb: dwc2: gadget: remove of_node reference upon udc_stop USB: pci-quirks: Fix HCCPARAMS register error for LS7A EHCI USB: quirks: add USB_QUIRK_NO_LPM quirk for Teclast dist USB: Add USB_QUIRK_NO_LPM quirk for sony xperia xz1 smartphone usb: gadget: f_midi: fix MIDI Streaming descriptor lengths USB: hub: Ignore non-compliant devices with too many configs or interfaces USB: cdc-acm: Fill in Renesas R-Car D3 USB Download mode quirk usb: cdc-acm: Check control transfer buffer size before access usb: cdc-acm: Fix handling of oversized fragments USB: serial: option: add MeiG Smart SLM828 USB: serial: option: add Telit Cinterion FN990B compositions USB: serial: option: fix Telit Cinterion FN990A name USB: serial: option: drop MeiG Smart defines can: c_can: fix unbalanced runtime PM disable in error path can: j1939: j1939_sk_send_loop(): fix unable to send messages with data length zero alpha: make stack 16-byte aligned (most cases) serial: 8250: Fix fifo underflow on flush alpha: align stack for page fault and user unaligned trap handlers gpio: stmpe: Check return value of stmpe_reg_read in stmpe_gpio_irq_sync_unlock partitions: mac: fix handling of bogus partition table regmap-irq: Add missing kfree() net: treat possible_net_t net pointer as an RCU one and add read_pnet_rcu() net: add dev_net_rcu() helper ipv4: use RCU protection in rt_is_expired() ipv4: use RCU protection in inet_select_addr() ipv6: use RCU protection in ip6_default_advmss() ndisc: use RCU protection in ndisc_alloc_skb() neighbour: delete redundant judgment statements neighbour: use RCU protection in __neigh_notify() arp: use RCU protection in arp_xmit() openvswitch: use RCU protection in ovs_vport_cmd_fill_info() ndisc: extend RCU protection in ndisc_send_skb() alpha: replace hardcoded stack offsets with autogenerated ones nilfs2: do not output warnings when clearing dirty buffers nilfs2: do not force clear folio if buffer is referenced nilfs2: protect access to buffers with no active references can: ems_pci: move ASIX AX99100 ids to pci_ids.h serial: 8250_pci: add support for ASIX AX99100 parport_pc: add support for ASIX AX99100 x86/i8253: Disable PIT timer 0 when not in use Revert "btrfs: avoid monopolizing a core when activating a swap file" btrfs: avoid monopolizing a core when activating a swap file pps: Fix a use-after-free ima: Fix use-after-free on a dentry's dname.name vlan: introduce vlan_dev_free_egress_priority vlan: move dev_put into vlan_dev_uninit scsi: storvsc: Set correct data length for sending SCSI command without payload driver core: bus: Fix double free in driver API bus_register() crypto: testmgr - fix wrong key length for pkcs1pad crypto: testmgr - Fix wrong test case of RSA crypto: testmgr - fix version number of RSA tests crypto: testmgr - populate RSA CRT parameters in RSA test vectors crypto: testmgr - some more fixes to RSA test vectors mm: update mark_victim tracepoints fields memcg: fix soft lockup in the OOM process usb: dwc3: Increase DWC3 controller halt timeout usb: dwc3: Fix timeout issue during controller enter/exit from halt state usb/gadget: f_midi: convert tasklets to use new tasklet_setup() API usb/gadget: f_midi: Replace tasklet with work USB: gadget: f_midi: f_midi_complete to call queue_work powerpc/64s/mm: Move __real_pte stubs into hash-4k.h powerpc/64s: Rewrite __real_pte() and __rpte_to_hidx() as static inline ALSA: hda/realtek - Add type for ALC287 ALSA: hda/realtek: Fixup ALC225 depop procedure powerpc/code-patching: Fix KASAN hit by not flagging text patching area as VM_ALLOC geneve: Fix use-after-free in geneve_find_dev(). gtp: Suppress list corruption splat in gtp_net_exit_batch_rtnl(). geneve: Suppress list corruption splat in geneve_destroy_tunnels(). net: extract port range fields from fl_flow_key flow_dissector: Fix handling of mixed port and port-range keys flow_dissector: Fix port range key handling in BPF conversion power: supply: da9150-fg: fix potential overflow tee: optee: Fix supplicant wait loop nfp: bpf: Add check for nfp_app_ctrl_msg_alloc() ALSA: hda/conexant: Add quirk for HP ProBook 450 G4 mute LED acct: block access to kernel internal filesystems batman-adv: Ignore neighbor throughput metrics in error case batman-adv: Drop unmanaged ELP metric worker sunrpc: suppress warnings for unused procfs functions net: loopback: Avoid sending IP packets without an Ethernet header net: cadence: macb: Synchronize stats calculations ASoC: es8328: fix route from DAC to output ipvs: Always clear ipvs_property flag in skb_scrub_packet() net: mvpp2: cls: Fixed Non IP flow, with vlan tag flow defination. x86/CPU: Fix warm boot hang regression on AMD SC1100 SoC systems ftrace: Avoid potential division by zero in function_stat_show() perf/core: Fix low freq setting via IOC_PERIOD usbnet: gl620a: fix endpoint checking in genelink_bind() phy: tegra: xusb: reset VBUS & ID OVERRIDE phy: exynos5-usbdrd: fix MPLL_MULTIPLIER and SSC_REFCLKSEL masks in refclk sched/core: Prevent rescheduling when interrupts are disabled pfifo_tail_enqueue: Drop new packet when sch->limit == 0 drop_monitor: fix incorrect initialization order kernel/acct.c: use #elif instead of #end and #elif kernel/acct.c: use dedicated helper to access rlimit values acct: perform last write from workqueue drm/amdgpu: skip BAR resizing if the bios already did it drm/amdgpu: Check extended configuration space register when system uses large bar drm/amdgpu: disable BAR resize on Dell G5 SE Revert "of: reserved-memory: Fix using wrong number of cells to get property 'alignment'" HID: appleir: Fix potential NULL dereference at raw event handle ALSA: hda: intel: Add Dell ALC3271 to power_save denylist ALSA: hda/realtek: update ALC222 depop optimize drm/radeon: Fix rs400_gpu_init for ATI mobility radeon Xpress 200M platform/x86: thinkpad_acpi: Add battery quirk for ThinkPad X131e x86/cacheinfo: Validate CPUID leaf 0x2 EDX output x86/cpu: Validate CPUID leaf 0x2 EDX output x86/cpu: Properly parse CPUID leaf 0x2 TLB descriptor 0x63 wifi: cfg80211: regulatory: improve invalid hints checking wifi: nl80211: reject cooked mode if it is set along with other flags rapidio: add check for rio_add_net() in rio_scan_alloc_net() rapidio: fix an API misues when rio_add_net() fails mm/page_alloc: fix uninitialized variable wifi: iwlwifi: limit printed string from FW file HID: google: fix unused variable warning under !CONFIG_ACPI HID: intel-ish-hid: Fix use-after-free issue in ishtp_hid_remove() net: gso: fix ownership in __udp_gso_segment caif_virtio: fix wrong pointer check in cfv_probe() hwmon: (pmbus) Initialise page count in pmbus_identify() hwmon: (ntc_thermistor) Fix the ncpXXxh103 sensor table hwmon: (ad7314) Validate leading zero bits and return error llc: do not use skb_get() before dev_queue_xmit() hwmon: fix a NULL vs IS_ERR_OR_NULL() check in xgene_hwmon_probe() drm/sched: Fix preprocessor guard be2net: fix sleeping while atomic bugs in be_ndo_bridge_getlink ppp: Fix KMSAN uninit-value warning with bpf vlan: enforce underlying device type net-timestamp: support TCP GSO case for a few missing flags net: ipv6: fix dst ref loop in ila lwtunnel net: ipv6: fix missing dst ref drop in ila lwtunnel gpio: rcar: Fix missing of_node_put() call Revert "drivers/card_reader/rtsx_usb: Restore interrupt based detection" usb: renesas_usbhs: Call clk_put() usb: renesas_usbhs: Use devm_usb_get_phy() usb: quirks: Add DELAY_INIT and NO_LPM for Prolific Mass Storage Card Reader usb: renesas_usbhs: Flush the notify_hotplug_work usb: atm: cxacru: fix a flaw in existing endpoint checks usb: typec: ucsi: increase timeout for PPM reset operations usb: typec: tcpci_rt1711h: Unmask alert interrupts to fix functionality usb: gadget: Set self-powered based on MaxPower and bmAttributes usb: gadget: Fix setting self-powered state on suspend usb: gadget: Check bmAttributes only if configuration is valid xhci: pci: Fix indentation in the PCI device ID definitions Squashfs: check the inode number is not the invalid value of zero intel_th: pci: Add Arrow Lake support intel_th: pci: Add Panther Lake-H support intel_th: pci: Add Panther Lake-P/U support slimbus: messaging: Free transaction ID in delayed interrupt scenario eeprom: digsy_mtc: Make GPIO lookup table match the device Linux 5.4.291 Change-Id: Ica7eab9e6472f50da32bd885ba09d09dbb450ef0 Signed-off-by: Greg Kroah-Hartman <[email protected]>
This commit is contained in:
commit
d6a7c6fab0
304 changed files with 3051 additions and 1668 deletions
|
|
@ -301,6 +301,7 @@ static inline int is_omap1510_8250(struct uart_8250_port *pt)
|
|||
|
||||
#ifdef CONFIG_SERIAL_8250_DMA
|
||||
extern int serial8250_tx_dma(struct uart_8250_port *);
|
||||
extern void serial8250_tx_dma_flush(struct uart_8250_port *);
|
||||
extern int serial8250_rx_dma(struct uart_8250_port *);
|
||||
extern void serial8250_rx_dma_flush(struct uart_8250_port *);
|
||||
extern int serial8250_request_dma(struct uart_8250_port *);
|
||||
|
|
@ -317,6 +318,7 @@ static inline int serial8250_tx_dma(struct uart_8250_port *p)
|
|||
{
|
||||
return -1;
|
||||
}
|
||||
static inline void serial8250_tx_dma_flush(struct uart_8250_port *p) { }
|
||||
static inline int serial8250_rx_dma(struct uart_8250_port *p)
|
||||
{
|
||||
return -1;
|
||||
|
|
|
|||
|
|
@ -126,6 +126,22 @@ err:
|
|||
return ret;
|
||||
}
|
||||
|
||||
void serial8250_tx_dma_flush(struct uart_8250_port *p)
|
||||
{
|
||||
struct uart_8250_dma *dma = p->dma;
|
||||
|
||||
if (!dma->tx_running)
|
||||
return;
|
||||
|
||||
/*
|
||||
* kfifo_reset() has been called by the serial core, avoid
|
||||
* advancing and underflowing in __dma_tx_complete().
|
||||
*/
|
||||
dma->tx_size = 0;
|
||||
|
||||
dmaengine_terminate_async(dma->rxchan);
|
||||
}
|
||||
|
||||
int serial8250_rx_dma(struct uart_8250_port *p)
|
||||
{
|
||||
struct uart_8250_dma *dma = p->dma;
|
||||
|
|
|
|||
|
|
@ -67,6 +67,8 @@ static const struct pci_device_id pci_use_msi[] = {
|
|||
0xA000, 0x1000) },
|
||||
{ PCI_DEVICE_SUB(PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9922,
|
||||
0xA000, 0x1000) },
|
||||
{ PCI_DEVICE_SUB(PCI_VENDOR_ID_ASIX, PCI_DEVICE_ID_ASIX_AX99100,
|
||||
0xA000, 0x1000) },
|
||||
{ PCI_DEVICE_SUB(PCI_VENDOR_ID_HP_3PAR, PCI_DEVICE_ID_HPE_PCI_SERIAL,
|
||||
PCI_ANY_ID, PCI_ANY_ID) },
|
||||
{ }
|
||||
|
|
@ -5776,6 +5778,14 @@ static const struct pci_device_id serial_pci_tbl[] = {
|
|||
{ PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9865,
|
||||
0xA000, 0x3004,
|
||||
0, 0, pbn_b0_bt_4_115200 },
|
||||
|
||||
/*
|
||||
* ASIX AX99100 PCIe to Multi I/O Controller
|
||||
*/
|
||||
{ PCI_VENDOR_ID_ASIX, PCI_DEVICE_ID_ASIX_AX99100,
|
||||
0xA000, 0x1000,
|
||||
0, 0, pbn_b0_1_115200 },
|
||||
|
||||
/* Intel CE4100 */
|
||||
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_CE4100_UART,
|
||||
PCI_ANY_ID, PCI_ANY_ID, 0, 0,
|
||||
|
|
|
|||
|
|
@ -2473,6 +2473,14 @@ static unsigned int npcm_get_divisor(struct uart_8250_port *up,
|
|||
return DIV_ROUND_CLOSEST(port->uartclk, 16 * baud + 2) - 2;
|
||||
}
|
||||
|
||||
static void serial8250_flush_buffer(struct uart_port *port)
|
||||
{
|
||||
struct uart_8250_port *up = up_to_u8250p(port);
|
||||
|
||||
if (up->dma)
|
||||
serial8250_tx_dma_flush(up);
|
||||
}
|
||||
|
||||
static unsigned int serial8250_do_get_divisor(struct uart_port *port,
|
||||
unsigned int baud,
|
||||
unsigned int *frac)
|
||||
|
|
@ -3124,6 +3132,7 @@ static const struct uart_ops serial8250_pops = {
|
|||
.break_ctl = serial8250_break_ctl,
|
||||
.startup = serial8250_startup,
|
||||
.shutdown = serial8250_shutdown,
|
||||
.flush_buffer = serial8250_flush_buffer,
|
||||
.set_termios = serial8250_set_termios,
|
||||
.set_ldisc = serial8250_set_ldisc,
|
||||
.pm = serial8250_pm,
|
||||
|
|
|
|||
|
|
@ -166,6 +166,7 @@ struct sci_port {
|
|||
static struct sci_port sci_ports[SCI_NPORTS];
|
||||
static unsigned long sci_ports_in_use;
|
||||
static struct uart_driver sci_uart_driver;
|
||||
static bool sci_uart_earlycon;
|
||||
|
||||
static inline struct sci_port *
|
||||
to_sci_port(struct uart_port *uart)
|
||||
|
|
@ -3345,6 +3346,7 @@ static int sci_probe_single(struct platform_device *dev,
|
|||
static int sci_probe(struct platform_device *dev)
|
||||
{
|
||||
struct plat_sci_port *p;
|
||||
struct resource *res;
|
||||
struct sci_port *sp;
|
||||
unsigned int dev_id;
|
||||
int ret;
|
||||
|
|
@ -3372,6 +3374,26 @@ static int sci_probe(struct platform_device *dev)
|
|||
}
|
||||
|
||||
sp = &sci_ports[dev_id];
|
||||
|
||||
/*
|
||||
* In case:
|
||||
* - the probed port alias is zero (as the one used by earlycon), and
|
||||
* - the earlycon is still active (e.g., "earlycon keep_bootcon" in
|
||||
* bootargs)
|
||||
*
|
||||
* defer the probe of this serial. This is a debug scenario and the user
|
||||
* must be aware of it.
|
||||
*
|
||||
* Except when the probed port is the same as the earlycon port.
|
||||
*/
|
||||
|
||||
res = platform_get_resource(dev, IORESOURCE_MEM, 0);
|
||||
if (!res)
|
||||
return -ENODEV;
|
||||
|
||||
if (sci_uart_earlycon && sp == &sci_ports[0] && sp->port.mapbase != res->start)
|
||||
return dev_err_probe(&dev->dev, -EBUSY, "sci_port[0] is used by earlycon!\n");
|
||||
|
||||
platform_set_drvdata(dev, sp);
|
||||
|
||||
ret = sci_probe_single(dev, dev_id, p, sp);
|
||||
|
|
@ -3455,7 +3477,7 @@ early_platform_init_buffer("earlyprintk", &sci_driver,
|
|||
early_serial_buf, ARRAY_SIZE(early_serial_buf));
|
||||
#endif
|
||||
#ifdef CONFIG_SERIAL_SH_SCI_EARLYCON
|
||||
static struct plat_sci_port port_cfg __initdata;
|
||||
static struct plat_sci_port port_cfg;
|
||||
|
||||
static int __init early_console_setup(struct earlycon_device *device,
|
||||
int type)
|
||||
|
|
@ -3470,6 +3492,7 @@ static int __init early_console_setup(struct earlycon_device *device,
|
|||
port_cfg.type = type;
|
||||
sci_ports[0].cfg = &port_cfg;
|
||||
sci_ports[0].params = sci_probe_regmap(&port_cfg);
|
||||
sci_uart_earlycon = true;
|
||||
port_cfg.scscr = sci_serial_in(&sci_ports[0].port, SCSCR);
|
||||
sci_serial_out(&sci_ports[0].port, SCSCR,
|
||||
SCSCR_RE | SCSCR_TE | port_cfg.scscr);
|
||||
|
|
|
|||
Loading…
Reference in a new issue