This is the 4.9.94 stable release
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAlrQ7X0ACgkQONu9yGCS aT55dg//aJocT4ijqWgBR9o9yZU9h7o1Ux0gKDBm3BPueuYnP56Z2u2ynqy0tqGo pS65r6tGNepwuxdBPjHhu3HdZMKE2pgJJoFxqzLuMQ5oF3WeGZVCcvWUtlg7tOHT +CapEXNKTwoc7ZsIa5ho5lvxvqs5TeFWQ5wHpqXQaYNA4N2fDb2X0f3GcY8XAQez XpfLIv7e1yaFImQ1vLqN8YkPsi6uqiRQcssckCsnmo9mNtvSL3iSFX+Sbem8DsWo 06/tp5U7U5maAaLSKwXE1GmCu/ENS5V7o+JgaiI2D+xjlQXEZwItgJ9Z8s1LOkIC YuaXBBNg+xCnXS39pyJOIIT5a+2BZBAaRzkFUG0dsuYJxboIQjjj50ex6jjeKIQS Uenm656VWvCV8gPPQs803UAuyZOOpvQ1iuIFh4omfatyoTHWbmpeGmPA34t+jDzB MolvtV45SgUGtmJO4klFjRQyLlyQySs1CQCYHwcA5e5CAbhZPxOaa00kWm9gDSkQ ARoR5w1QU/rq4Z+5GdFHLhtyoHdCtYWKB2AnZPJE6mqkSRVvxWsfIyvavt4gA3fD T0A4OMiElxAMKMxaxywud4xIbZdZewEJ82o8ObydzhqYj7s9Y3dzoutSxgbAmRA0 tfVwYnDlLCYXWBUQ5TSEfbSmYBZlQrvOoFTiR3OISk6Gmtu4DLY= =rgib -----END PGP SIGNATURE----- Merge 4.9.94 into android-4.9 Changes in 4.9.94 qed: Fix overriding of supported autoneg value. cfg80211: make RATE_INFO_BW_20 the default md/raid5: make use of spin_lock_irq over local_irq_disable + spin_lock rtc: snvs: fix an incorrect check of return value x86/asm: Don't use RBP as a temporary register in csum_partial_copy_generic() x86/mm/kaslr: Use the _ASM_MUL macro for multiplication to work around Clang incompatibility ovl: persistent inode numbers for upper hardlinks NFSv4.1: RECLAIM_COMPLETE must handle NFS4ERR_CONN_NOT_BOUND_TO_SESSION x86/boot: Declare error() as noreturn IB/srpt: Fix abort handling IB/srpt: Avoid that aborting a command triggers a kernel warning af_key: Fix slab-out-of-bounds in pfkey_compile_policy. mac80211: bail out from prep_connection() if a reconfig is ongoing bna: Avoid reading past end of buffer qlge: Avoid reading past end of buffer ubi: fastmap: Fix slab corruption ipmi_ssif: unlock on allocation failure net: cdc_ncm: Fix TX zero padding net: ethernet: ti: cpsw: adjust cpsw fifos depth for fullduplex flow control lockd: fix lockd shutdown race drivers/misc/vmw_vmci/vmci_queue_pair.c: fix a couple integer overflow tests pidns: disable pid allocation if pid_ns_prepare_proc() is failed in alloc_pid() s390: move _text symbol to address higher than zero net/mlx4_en: Avoid adding steering rules with invalid ring qed: Correct doorbell configuration for !4Kb pages NFSv4.1: Work around a Linux server bug... CIFS: silence lockdep splat in cifs_relock_file() perf/callchain: Force USER_DS when invoking perf_callchain_user() blk-mq: NVMe 512B/4K+T10 DIF/DIX format returns I/O error on dd with split op net: qca_spi: Fix alignment issues in rx path netxen_nic: set rcode to the return status from the call to netxen_issue_cmd mdio: mux: Correct mdio_mux_init error path issues Input: elan_i2c - check if device is there before really probing Input: elantech - force relative mode on a certain module KVM: PPC: Book3S PR: Check copy_to/from_user return values irqchip/mbigen: Fix the clear register offset calculation vmxnet3: ensure that adapter is in proper state during force_close mm, vmstat: Remove spurious WARN() during zoneinfo print SMB2: Fix share type handling bus: brcmstb_gisb: Use register offsets with writes too bus: brcmstb_gisb: correct support for 64-bit address output PowerCap: Fix an error code in powercap_register_zone() iio: pressure: zpa2326: report interrupted case as failure ARM: dts: imx53-qsrb: Pulldown PMIC IRQ pin staging: wlan-ng: prism2mgmt.c: fixed a double endian conversion before calling hfa384x_drvr_setconfig16, also fixes relative sparse warning clk: renesas: rcar-gen2: Fix PLL0 on R-Car V2H and E2 x86/tsc: Provide 'tsc=unstable' boot parameter powerpc/modules: If mprofile-kernel is enabled add it to vermagic ARM: dts: imx6qdl-wandboard: Fix audio channel swap i2c: mux: reg: put away the parent i2c adapter on probe failure arm64: perf: Ignore exclude_hv when kernel is running in HYP mdio: mux: fix device_node_continue.cocci warnings ipv6: avoid dad-failures for addresses with NODAD async_tx: Fix DMA_PREP_FENCE usage in do_async_gen_syndrome() KVM: arm: Restore banked registers and physical timer access on hyp_panic() KVM: arm64: Restore host physical timer access on hyp_panic() usb: dwc3: keystone: check return value btrfs: fix incorrect error return ret being passed to mapping_set_error ata: libahci: properly propagate return value of platform_get_irq() ipmr: vrf: Find VIFs using the actual device uio: fix incorrect memory leak cleanup neighbour: update neigh timestamps iff update is effective arp: honour gratuitous ARP _replies_ ARM: dts: rockchip: fix rk322x i2s1 pinctrl error usb: chipidea: properly handle host or gadget initialization failure pxa_camera: fix module remove codepath for v4l2 clock USB: ene_usb6250: fix first command execution net: x25: fix one potential use-after-free issue USB: ene_usb6250: fix SCSI residue overwriting serial: 8250: omap: Disable DMA for console UART serial: sh-sci: Fix race condition causing garbage during shutdown net/wan/fsl_ucc_hdlc: fix unitialized variable warnings net/wan/fsl_ucc_hdlc: fix incorrect memory allocation fsl/qe: add bit description for SYNL register for GUMR sh_eth: Use platform device for printing before register_netdev() mlxsw: spectrum: Avoid possible NULL pointer dereference scsi: csiostor: fix use after free in csio_hw_use_fwconfig() powerpc/mm: Fix virt_addr_valid() etc. on 64-bit hash ath5k: fix memory leak on buf on failed eeprom read selftests/powerpc: Fix TM resched DSCR test with some compilers xfrm: fix state migration copy replay sequence numbers ASoC: simple-card: fix mic jack initialization iio: hi8435: avoid garbage event at first enable iio: hi8435: cleanup reset gpio iio: light: rpr0521 poweroff for probe fails ext4: handle the rest of ext4_mb_load_buddy() ENOMEM errors md-cluster: fix potential lock issue in add_new_disk ARM: davinci: da8xx: Create DSP device only when assigned memory ray_cs: Avoid reading past end of buffer net/wan/fsl_ucc_hdlc: fix muram allocation error leds: pca955x: Correct I2C Functionality perf/core: Fix error handling in perf_event_alloc() sched/numa: Use down_read_trylock() for the mmap_sem gpio: crystalcove: Do not write regular gpio registers for virtual GPIOs net/mlx5: Tolerate irq_set_affinity_hint() failures selinux: do not check open permission on sockets block: fix an error code in add_partition() mlx5: fix bug reading rss_hash_type from CQE net: ieee802154: fix net_device reference release too early libceph: NULL deref on crush_decode() error path perf report: Fix off-by-one for non-activation frames netfilter: ctnetlink: fix incorrect nf_ct_put during hash resize pNFS/flexfiles: missing error code in ff_layout_alloc_lseg() ASoC: rsnd: SSI PIO adjust to 24bit mode scsi: bnx2fc: fix race condition in bnx2fc_get_host_stats() fix race in drivers/char/random.c:get_reg() ext4: fix off-by-one on max nr_pages in ext4_find_unwritten_pgoff() ARM64: PCI: Fix struct acpi_pci_root_ops allocation failure path tcp: better validation of received ack sequences net: move somaxconn init from sysctl code Input: elan_i2c - clear INT before resetting controller bonding: Don't update slave->link until ready to commit cpuhotplug: Link lock stacks for hotplug callbacks PCI/msi: fix the pci_alloc_irq_vectors_affinity stub KVM: X86: Fix preempt the preemption timer cancel KVM: nVMX: Fix handling of lmsw instruction net: llc: add lock_sock in llc_ui_bind to avoid a race condition drm/msm: Take the mutex before calling msm_gem_new_impl i40iw: Fix sequence number for the first partial FPDU i40iw: Correct Q1/XF object count equation ARM: dts: ls1021a: add "fsl,ls1021a-esdhc" compatible string to esdhc node thermal: power_allocator: fix one race condition issue for thermal_instances list perf probe: Add warning message if there is unexpected event name l2tp: fix missing print session offset info rds; Reset rs->rs_bound_addr in rds_add_bound() failure path ACPI / video: Default lcd_only to true on Win8-ready and newer machines net/mlx4_en: Change default QoS settings VFS: close race between getcwd() and d_move() PM / devfreq: Fix potential NULL pointer dereference in governor_store hwmon: (ina2xx) Make calibration register value fixed media: videobuf2-core: don't go out of the buffer range ASoC: Intel: Skylake: Disable clock gating during firmware and library download ASoC: Intel: cht_bsw_rt5645: Analog Mic support scsi: libiscsi: Allow sd_shutdown on bad transport scsi: mpt3sas: Proper handling of set/clear of "ATA command pending" flag. irqchip/gic-v3: Fix the driver probe() fail due to disabled GICC entry ACPI: EC: Fix debugfs_create_*() usage mac80211: Fix setting TX power on monitor interfaces vfb: fix video mode and line_length being set when loaded gpio: label descriptors using the device name IB/rdmavt: Allocate CQ memory on the correct node blk-mq: fix race between updating nr_hw_queues and switching io sched backlight: tdo24m: Fix the SPI CS between transfers pinctrl: baytrail: Enable glitch filter for GPIOs used as interrupts ASoC: Intel: sst: Fix the return value of 'sst_send_byte_stream_mrfld()' rt2x00: do not pause queue unconditionally on error path wl1251: check return from call to wl1251_acx_arp_ip_filter hdlcdrv: Fix divide by zero in hdlcdrv_ioctl x86/efi: Disable runtime services on kexec kernel if booted with efi=old_map netfilter: conntrack: don't call iter for non-confirmed conntracks HID: i2c: Call acpi_device_fix_up_power for ACPI-enumerated devices ovl: filter trusted xattr for non-admin powerpc/[booke|4xx]: Don't clobber TCR[WP] when setting TCR[DIE] dmaengine: imx-sdma: Handle return value of clk_prepare_enable backlight: Report error on failure arm64: futex: Fix undefined behaviour with FUTEX_OP_OPARG_SHIFT usage net/mlx5: avoid build warning for uniprocessor cxgb4: FW upgrade fixes cxgb4: Fix netdev_features flag rtc: m41t80: fix SQW dividers override when setting a date i40evf: fix merge error in older patch rtc: opal: Handle disabled TPO in opal_get_tpo_time() rtc: interface: Validate alarm-time before handling rollover SUNRPC: ensure correct error is reported by xs_tcp_setup_socket() net: freescale: fix potential null pointer dereference clk: at91: fix clk-generated parenting drm/sun4i: Ignore the generic connectors for components dt-bindings: display: sun4i: Add allwinner,tcon-channel property mtd: nand: gpmi: Fix gpmi_nand_init() error path mtd: nand: check ecc->total sanity in nand_scan_tail KVM: SVM: do not zero out segment attributes if segment is unusable or not present clk: scpi: fix return type of __scpi_dvfs_round_rate clk: Fix __set_clk_rates error print-string powerpc/spufs: Fix coredump of SPU contexts drm/amdkfd: NULL dereference involving create_process() ath10k: add BMI parameters to fix calibration from DT/pre-cal perf trace: Add mmap alias for s390 qlcnic: Fix a sleep-in-atomic bug in qlcnic_82xx_hw_write_wx_2M and qlcnic_82xx_hw_read_wx_2M arm64: kernel: restrict /dev/mem read() calls to linear region mISDN: Fix a sleep-in-atomic bug net: phy: micrel: Restore led_mode and clk_sel on resume RDMA/iw_cxgb4: Avoid touch after free error in ARP failure handlers RDMA/hfi1: fix array termination by appending NULL to attr array drm/omap: fix tiled buffer stride calculations powerpc/8xx: fix mpc8xx_get_irq() return on no irq cxgb4: fix incorrect cim_la output for T6 Fix serial console on SNI RM400 machines bio-integrity: Do not allocate integrity context for bio w/o data ip6_tunnel: fix traffic class routing for tunnels skbuff: return -EMSGSIZE in skb_to_sgvec to prevent overflow macsec: check return value of skb_to_sgvec always sit: reload iphdr in ipip6_rcv net/mlx4: Fix the check in attaching steering rules net/mlx4: Check if Granular QoS per VF has been enabled before updating QP qos_vport perf header: Set proper module name when build-id event found perf report: Ensure the perf DSO mapping matches what libdw sees iwlwifi: mvm: fix firmware debug restart recording watchdog: f71808e_wdt: Add F71868 support iwlwifi: mvm: Fix command queue number on d0i3 flow iwlwifi: tt: move ucode_loaded check under mutex iwlwifi: pcie: only use d0i3 in suspend/resume if system_pm is set to d0i3 iwlwifi: fix min API version for 7265D, 3168, 8000 and 8265 tags: honor COMPILED_SOURCE with apart output directory ARM: dts: qcom: ipq4019: fix i2c_0 node e1000e: fix race condition around skb_tstamp_tx() igb: fix race condition with PTP_TX_IN_PROGRESS bits cxl: Unlock on error in probe cx25840: fix unchecked return values mceusb: sporadic RX truncation corruption fix net: phy: avoid genphy_aneg_done() for PHYs without clause 22 support ARM: imx: Add MXC_CPU_IMX6ULL and cpu_is_imx6ull nvme-pci: fix multiple ctrl removal scheduling nvme: fix hang in remove path KVM: nVMX: Update vmcs12->guest_linear_address on nested VM-exit e1000e: Undo e1000e_pm_freeze if __e1000_shutdown fails perf/core: Correct event creation with PERF_FORMAT_GROUP sched/deadline: Use the revised wakeup rule for suspending constrained dl tasks MIPS: mm: fixed mappings: correct initialisation MIPS: mm: adjust PKMAP location MIPS: kprobes: flush_insn_slot should flush only if probe initialised ARM: dts: armadillo800eva: Split LCD mux and gpio Fix loop device flush before configure v3 net: emac: fix reset timeout with AR8035 phy perf tools: Decompress kernel module when reading DSO data perf tests: Decompress kernel module before objdump skbuff: only inherit relevant tx_flags xen: avoid type warning in xchg_xen_ulong X.509: Fix error code in x509_cert_parse() pinctrl: meson-gxbb: remove non-existing pin GPIOX_22 coresight: Fix reference count for software sources coresight: tmc: Configure DMA mask appropriately stmmac: fix ptp header for GMAC3 hw timestamp geneve: add missing rx stats accounting crypto: omap-sham - buffer handling fixes for hashing later crypto: omap-sham - fix closing of hash with separate finalize call bnx2x: Allow vfs to disable txvlan offload sctp: fix recursive locking warning in sctp_do_peeloff net: fec: Add a fec_enet_clear_ethtool_stats() stub for CONFIG_M5272 sparc64: ldc abort during vds iso boot iio: magnetometer: st_magn_spi: fix spi_device_id table net: ena: fix rare uncompleted admin command false alarm net: ena: fix race condition between submit and completion admin command net: ena: add missing return when ena_com_get_io_handlers() fails net: ena: add missing unmap bars on device removal net: ena: disable admin msix while working in polling mode clk: meson: meson8b: add compatibles for Meson8 and Meson8m2 Bluetooth: Send HCI Set Event Mask Page 2 command only when needed cpuidle: dt: Add missing 'of_node_put()' ACPICA: OSL: Add support to exclude stdarg.h ACPICA: Events: Add runtime stub support for event APIs ACPICA: Disassembler: Abort on an invalid/unknown AML opcode s390/dasd: fix hanging safe offline vxlan: dont migrate permanent fdb entries during learn hsr: fix incorrect warning selftests: kselftest_harness: Fix compile warning drm/vc4: Fix resource leak in 'vc4_get_hang_state_ioctl()' in error handling path bcache: stop writeback thread after detaching bcache: segregate flash only volume write streams scsi: libsas: fix memory leak in sas_smp_get_phy_events() scsi: libsas: fix error when getting phy events scsi: libsas: initialize sas_phy status according to response of DISCOVER blk-mq: fix kernel oops in blk_mq_tag_idle() tty: n_gsm: Allow ADM response in addition to UA for control dlci EDAC, mv64x60: Fix an error handling path cxgb4vf: Fix SGE FL buffer initialization logic for 64K pages sdhci: Advertise 2.0v supply on SDIO host controller Input: goodix - disable IRQs while suspended mtd: mtd_oobtest: Handle bitflips during reads perf tools: Fix copyfile_offset update of output offset ipsec: check return value of skb_to_sgvec always rxrpc: check return value of skb_to_sgvec always virtio_net: check return value of skb_to_sgvec always virtio_net: check return value of skb_to_sgvec in one more location random: use lockless method of accessing and updating f->reg_idx clk: at91: fix clk-generated compilation arp: fix arp_filter on l3slave devices ipv6: the entire IPv6 header chain must fit the first fragment net: fix possible out-of-bound read in skb_network_protocol() net/ipv6: Fix route leaking between VRFs net/ipv6: Increment OUTxxx counters after netfilter hook netlink: make sure nladdr has correct size in netlink_connect() net/sched: fix NULL dereference in the error path of tcf_bpf_init() pptp: remove a buggy dst release in pptp_connect() r8169: fix setting driver_data after register_netdev sctp: do not leak kernel memory to user space sctp: sctp_sockaddr_af must check minimal addr length for AF_INET6 sky2: Increase D3 delay to sky2 stops working after suspend vhost: correctly remove wait queue during poll failure vlan: also check phy_driver ts_info for vlan's real device bonding: fix the err path for dev hwaddr sync in bond_enslave bonding: move dev_mc_sync after master_upper_dev_link in bond_enslave bonding: process the err returned by dev_set_allmulti properly in bond_enslave net: fool proof dev_valid_name() ip_tunnel: better validate user provided tunnel names ipv6: sit: better validate user provided tunnel names ip6_gre: better validate user provided tunnel names ip6_tunnel: better validate user provided tunnel names vti6: better validate user provided tunnel names net/mlx5e: Sync netdev vxlan ports at open net/sched: fix NULL dereference in the error path of tunnel_key_init() net/sched: fix NULL dereference on the error path of tcf_skbmod_init() net/mlx4_en: Fix mixed PFC and Global pause user control requests vhost: validate log when IOTLB is enabled route: check sysctl_fib_multipath_use_neigh earlier than hash team: move dev_mc_sync after master_upper_dev_link in team_port_add vhost_net: add missing lock nesting notation net/mlx4_core: Fix memory leak while delete slave's resources strparser: Fix sign of err codes net sched actions: fix dumping which requires several messages to user space vrf: Fix use after free and double free in vrf_finish_output Revert "xhci: plat: Register shutdown for xhci_plat" Linux 4.9.94 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
commit
8683408f8e
311 changed files with 2420 additions and 916 deletions
|
|
@ -1,11 +1,14 @@
|
||||||
* Amlogic Meson8b Clock and Reset Unit
|
* Amlogic Meson8, Meson8b and Meson8m2 Clock and Reset Unit
|
||||||
|
|
||||||
The Amlogic Meson8b clock controller generates and supplies clock to various
|
The Amlogic Meson8 / Meson8b / Meson8m2 clock controller generates and
|
||||||
controllers within the SoC.
|
supplies clock to various controllers within the SoC.
|
||||||
|
|
||||||
Required Properties:
|
Required Properties:
|
||||||
|
|
||||||
- compatible: should be "amlogic,meson8b-clkc"
|
- compatible: must be one of:
|
||||||
|
- "amlogic,meson8-clkc" for Meson8 (S802) SoCs
|
||||||
|
- "amlogic,meson8b-clkc" for Meson8 (S805) SoCs
|
||||||
|
- "amlogic,meson8m2-clkc" for Meson8m2 (S812) SoCs
|
||||||
- reg: it must be composed by two tuples:
|
- reg: it must be composed by two tuples:
|
||||||
0) physical base address of the xtal register and length of memory
|
0) physical base address of the xtal register and length of memory
|
||||||
mapped region.
|
mapped region.
|
||||||
|
|
|
||||||
|
|
@ -47,10 +47,13 @@ Required properties:
|
||||||
Documentation/devicetree/bindings/media/video-interfaces.txt. The
|
Documentation/devicetree/bindings/media/video-interfaces.txt. The
|
||||||
first port should be the input endpoint, the second one the output
|
first port should be the input endpoint, the second one the output
|
||||||
|
|
||||||
The output should have two endpoints. The first is the block
|
The output may have multiple endpoints. The TCON has two channels,
|
||||||
connected to the TCON channel 0 (usually a panel or a bridge), the
|
usually with the first channel being used for the panels interfaces
|
||||||
second the block connected to the TCON channel 1 (usually the TV
|
(RGB, LVDS, etc.), and the second being used for the outputs that
|
||||||
encoder)
|
require another controller (TV Encoder, HDMI, etc.). The endpoints
|
||||||
|
will take an extra property, allwinner,tcon-channel, to specify the
|
||||||
|
channel the endpoint is associated to. If that property is not
|
||||||
|
present, the endpoint number will be used as the channel number.
|
||||||
|
|
||||||
On SoCs other than the A33, there is one more clock required:
|
On SoCs other than the A33, there is one more clock required:
|
||||||
- 'tcon-ch1': The clock driving the TCON channel 1
|
- 'tcon-ch1': The clock driving the TCON channel 1
|
||||||
|
|
|
||||||
2
Makefile
2
Makefile
|
|
@ -1,6 +1,6 @@
|
||||||
VERSION = 4
|
VERSION = 4
|
||||||
PATCHLEVEL = 9
|
PATCHLEVEL = 9
|
||||||
SUBLEVEL = 93
|
SUBLEVEL = 94
|
||||||
EXTRAVERSION =
|
EXTRAVERSION =
|
||||||
NAME = Roaring Lionus
|
NAME = Roaring Lionus
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
imx53-qsrb {
|
imx53-qsrb {
|
||||||
pinctrl_pmic: pmicgrp {
|
pinctrl_pmic: pmicgrp {
|
||||||
fsl,pins = <
|
fsl,pins = <
|
||||||
MX53_PAD_CSI0_DAT5__GPIO5_23 0x1e4 /* IRQ */
|
MX53_PAD_CSI0_DAT5__GPIO5_23 0x1c4 /* IRQ */
|
||||||
>;
|
>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -88,6 +88,7 @@
|
||||||
clocks = <&clks IMX6QDL_CLK_CKO>;
|
clocks = <&clks IMX6QDL_CLK_CKO>;
|
||||||
VDDA-supply = <®_2p5v>;
|
VDDA-supply = <®_2p5v>;
|
||||||
VDDIO-supply = <®_3p3v>;
|
VDDIO-supply = <®_3p3v>;
|
||||||
|
lrclk-strength = <3>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -146,7 +146,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
esdhc: esdhc@1560000 {
|
esdhc: esdhc@1560000 {
|
||||||
compatible = "fsl,esdhc";
|
compatible = "fsl,ls1021a-esdhc", "fsl,esdhc";
|
||||||
reg = <0x0 0x1560000 0x0 0x10000>;
|
reg = <0x0 0x1560000 0x0 0x10000>;
|
||||||
interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
clock-frequency = <0>;
|
clock-frequency = <0>;
|
||||||
|
|
|
||||||
|
|
@ -154,10 +154,10 @@
|
||||||
|
|
||||||
i2c_0: i2c@78b7000 {
|
i2c_0: i2c@78b7000 {
|
||||||
compatible = "qcom,i2c-qup-v2.2.1";
|
compatible = "qcom,i2c-qup-v2.2.1";
|
||||||
reg = <0x78b7000 0x6000>;
|
reg = <0x78b7000 0x600>;
|
||||||
interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
clocks = <&gcc GCC_BLSP1_AHB_CLK>,
|
clocks = <&gcc GCC_BLSP1_AHB_CLK>,
|
||||||
<&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
|
<&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>;
|
||||||
clock-names = "iface", "core";
|
clock-names = "iface", "core";
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
|
|
||||||
|
|
@ -266,7 +266,9 @@
|
||||||
lcd0_pins: lcd0 {
|
lcd0_pins: lcd0 {
|
||||||
groups = "lcd0_data24_0", "lcd0_lclk_1", "lcd0_sync";
|
groups = "lcd0_data24_0", "lcd0_lclk_1", "lcd0_sync";
|
||||||
function = "lcd0";
|
function = "lcd0";
|
||||||
|
};
|
||||||
|
|
||||||
|
lcd0_mux {
|
||||||
/* DBGMD/LCDC0/FSIA MUX */
|
/* DBGMD/LCDC0/FSIA MUX */
|
||||||
gpio-hog;
|
gpio-hog;
|
||||||
gpios = <176 0>;
|
gpios = <176 0>;
|
||||||
|
|
|
||||||
|
|
@ -617,9 +617,9 @@
|
||||||
<0 12 RK_FUNC_1 &pcfg_pull_none>,
|
<0 12 RK_FUNC_1 &pcfg_pull_none>,
|
||||||
<0 13 RK_FUNC_1 &pcfg_pull_none>,
|
<0 13 RK_FUNC_1 &pcfg_pull_none>,
|
||||||
<0 14 RK_FUNC_1 &pcfg_pull_none>,
|
<0 14 RK_FUNC_1 &pcfg_pull_none>,
|
||||||
<1 2 RK_FUNC_1 &pcfg_pull_none>,
|
<1 2 RK_FUNC_2 &pcfg_pull_none>,
|
||||||
<1 4 RK_FUNC_1 &pcfg_pull_none>,
|
<1 4 RK_FUNC_2 &pcfg_pull_none>,
|
||||||
<1 5 RK_FUNC_1 &pcfg_pull_none>;
|
<1 5 RK_FUNC_2 &pcfg_pull_none>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ static inline int xen_irqs_disabled(struct pt_regs *regs)
|
||||||
return raw_irqs_disabled_flags(regs->ARM_cpsr);
|
return raw_irqs_disabled_flags(regs->ARM_cpsr);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define xchg_xen_ulong(ptr, val) atomic64_xchg(container_of((ptr), \
|
#define xchg_xen_ulong(ptr, val) atomic64_xchg(container_of((long long*)(ptr),\
|
||||||
atomic64_t, \
|
atomic64_t, \
|
||||||
counter), (val))
|
counter), (val))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -237,8 +237,10 @@ void __hyp_text __noreturn __hyp_panic(int cause)
|
||||||
|
|
||||||
vcpu = (struct kvm_vcpu *)read_sysreg(HTPIDR);
|
vcpu = (struct kvm_vcpu *)read_sysreg(HTPIDR);
|
||||||
host_ctxt = kern_hyp_va(vcpu->arch.host_cpu_context);
|
host_ctxt = kern_hyp_va(vcpu->arch.host_cpu_context);
|
||||||
|
__timer_save_state(vcpu);
|
||||||
__deactivate_traps(vcpu);
|
__deactivate_traps(vcpu);
|
||||||
__deactivate_vm(vcpu);
|
__deactivate_vm(vcpu);
|
||||||
|
__banked_restore_state(host_ctxt);
|
||||||
__sysreg_restore_state(host_ctxt);
|
__sysreg_restore_state(host_ctxt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -821,6 +821,8 @@ static struct platform_device da8xx_dsp = {
|
||||||
.resource = da8xx_rproc_resources,
|
.resource = da8xx_rproc_resources,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static bool rproc_mem_inited __initdata;
|
||||||
|
|
||||||
#if IS_ENABLED(CONFIG_DA8XX_REMOTEPROC)
|
#if IS_ENABLED(CONFIG_DA8XX_REMOTEPROC)
|
||||||
|
|
||||||
static phys_addr_t rproc_base __initdata;
|
static phys_addr_t rproc_base __initdata;
|
||||||
|
|
@ -859,6 +861,8 @@ void __init da8xx_rproc_reserve_cma(void)
|
||||||
ret = dma_declare_contiguous(&da8xx_dsp.dev, rproc_size, rproc_base, 0);
|
ret = dma_declare_contiguous(&da8xx_dsp.dev, rproc_size, rproc_base, 0);
|
||||||
if (ret)
|
if (ret)
|
||||||
pr_err("%s: dma_declare_contiguous failed %d\n", __func__, ret);
|
pr_err("%s: dma_declare_contiguous failed %d\n", __func__, ret);
|
||||||
|
else
|
||||||
|
rproc_mem_inited = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
@ -873,6 +877,12 @@ int __init da8xx_register_rproc(void)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
if (!rproc_mem_inited) {
|
||||||
|
pr_warn("%s: memory not reserved for DSP, not registering DSP device\n",
|
||||||
|
__func__);
|
||||||
|
return -ENOMEM;
|
||||||
|
}
|
||||||
|
|
||||||
ret = platform_device_register(&da8xx_dsp);
|
ret = platform_device_register(&da8xx_dsp);
|
||||||
if (ret)
|
if (ret)
|
||||||
pr_err("%s: can't register DSP device: %d\n", __func__, ret);
|
pr_err("%s: can't register DSP device: %d\n", __func__, ret);
|
||||||
|
|
|
||||||
|
|
@ -131,6 +131,9 @@ struct device * __init imx_soc_device_init(void)
|
||||||
case MXC_CPU_IMX6UL:
|
case MXC_CPU_IMX6UL:
|
||||||
soc_id = "i.MX6UL";
|
soc_id = "i.MX6UL";
|
||||||
break;
|
break;
|
||||||
|
case MXC_CPU_IMX6ULL:
|
||||||
|
soc_id = "i.MX6ULL";
|
||||||
|
break;
|
||||||
case MXC_CPU_IMX7D:
|
case MXC_CPU_IMX7D:
|
||||||
soc_id = "i.MX7D";
|
soc_id = "i.MX7D";
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@
|
||||||
#define MXC_CPU_IMX6SX 0x62
|
#define MXC_CPU_IMX6SX 0x62
|
||||||
#define MXC_CPU_IMX6Q 0x63
|
#define MXC_CPU_IMX6Q 0x63
|
||||||
#define MXC_CPU_IMX6UL 0x64
|
#define MXC_CPU_IMX6UL 0x64
|
||||||
|
#define MXC_CPU_IMX6ULL 0x65
|
||||||
#define MXC_CPU_IMX7D 0x72
|
#define MXC_CPU_IMX7D 0x72
|
||||||
|
|
||||||
#define IMX_DDR_TYPE_LPDDR2 1
|
#define IMX_DDR_TYPE_LPDDR2 1
|
||||||
|
|
@ -73,6 +74,11 @@ static inline bool cpu_is_imx6ul(void)
|
||||||
return __mxc_cpu_type == MXC_CPU_IMX6UL;
|
return __mxc_cpu_type == MXC_CPU_IMX6UL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool cpu_is_imx6ull(void)
|
||||||
|
{
|
||||||
|
return __mxc_cpu_type == MXC_CPU_IMX6ULL;
|
||||||
|
}
|
||||||
|
|
||||||
static inline bool cpu_is_imx6q(void)
|
static inline bool cpu_is_imx6q(void)
|
||||||
{
|
{
|
||||||
return __mxc_cpu_type == MXC_CPU_IMX6Q;
|
return __mxc_cpu_type == MXC_CPU_IMX6Q;
|
||||||
|
|
|
||||||
|
|
@ -48,16 +48,16 @@ do { \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
static inline int
|
static inline int
|
||||||
futex_atomic_op_inuser (int encoded_op, u32 __user *uaddr)
|
futex_atomic_op_inuser(unsigned int encoded_op, u32 __user *uaddr)
|
||||||
{
|
{
|
||||||
int op = (encoded_op >> 28) & 7;
|
int op = (encoded_op >> 28) & 7;
|
||||||
int cmp = (encoded_op >> 24) & 15;
|
int cmp = (encoded_op >> 24) & 15;
|
||||||
int oparg = (encoded_op << 8) >> 20;
|
int oparg = (int)(encoded_op << 8) >> 20;
|
||||||
int cmparg = (encoded_op << 20) >> 20;
|
int cmparg = (int)(encoded_op << 20) >> 20;
|
||||||
int oldval = 0, ret, tmp;
|
int oldval = 0, ret, tmp;
|
||||||
|
|
||||||
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
|
||||||
oparg = 1 << oparg;
|
oparg = 1U << (oparg & 0x1f);
|
||||||
|
|
||||||
if (!access_ok(VERIFY_WRITE, uaddr, sizeof(u32)))
|
if (!access_ok(VERIFY_WRITE, uaddr, sizeof(u32)))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
|
|
||||||
|
|
@ -175,8 +175,10 @@ struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
root_ops = kzalloc_node(sizeof(*root_ops), GFP_KERNEL, node);
|
root_ops = kzalloc_node(sizeof(*root_ops), GFP_KERNEL, node);
|
||||||
if (!root_ops)
|
if (!root_ops) {
|
||||||
|
kfree(ri);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
ri->cfg = pci_acpi_setup_ecam_mapping(root);
|
ri->cfg = pci_acpi_setup_ecam_mapping(root);
|
||||||
if (!ri->cfg) {
|
if (!ri->cfg) {
|
||||||
|
|
|
||||||
|
|
@ -871,15 +871,24 @@ static int armv8pmu_set_event_filter(struct hw_perf_event *event,
|
||||||
|
|
||||||
if (attr->exclude_idle)
|
if (attr->exclude_idle)
|
||||||
return -EPERM;
|
return -EPERM;
|
||||||
if (is_kernel_in_hyp_mode() &&
|
|
||||||
attr->exclude_kernel != attr->exclude_hv)
|
/*
|
||||||
return -EINVAL;
|
* If we're running in hyp mode, then we *are* the hypervisor.
|
||||||
|
* Therefore we ignore exclude_hv in this configuration, since
|
||||||
|
* there's no hypervisor to sample anyway. This is consistent
|
||||||
|
* with other architectures (x86 and Power).
|
||||||
|
*/
|
||||||
|
if (is_kernel_in_hyp_mode()) {
|
||||||
|
if (!attr->exclude_kernel)
|
||||||
|
config_base |= ARMV8_PMU_INCLUDE_EL2;
|
||||||
|
} else {
|
||||||
|
if (attr->exclude_kernel)
|
||||||
|
config_base |= ARMV8_PMU_EXCLUDE_EL1;
|
||||||
|
if (!attr->exclude_hv)
|
||||||
|
config_base |= ARMV8_PMU_INCLUDE_EL2;
|
||||||
|
}
|
||||||
if (attr->exclude_user)
|
if (attr->exclude_user)
|
||||||
config_base |= ARMV8_PMU_EXCLUDE_EL0;
|
config_base |= ARMV8_PMU_EXCLUDE_EL0;
|
||||||
if (!is_kernel_in_hyp_mode() && attr->exclude_kernel)
|
|
||||||
config_base |= ARMV8_PMU_EXCLUDE_EL1;
|
|
||||||
if (!attr->exclude_hv)
|
|
||||||
config_base |= ARMV8_PMU_INCLUDE_EL2;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Install the filter into config_base as this is used to
|
* Install the filter into config_base as this is used to
|
||||||
|
|
|
||||||
|
|
@ -404,6 +404,7 @@ void __hyp_text __noreturn __hyp_panic(void)
|
||||||
|
|
||||||
vcpu = (struct kvm_vcpu *)read_sysreg(tpidr_el2);
|
vcpu = (struct kvm_vcpu *)read_sysreg(tpidr_el2);
|
||||||
host_ctxt = kern_hyp_va(vcpu->arch.host_cpu_context);
|
host_ctxt = kern_hyp_va(vcpu->arch.host_cpu_context);
|
||||||
|
__timer_save_state(vcpu);
|
||||||
__deactivate_traps(vcpu);
|
__deactivate_traps(vcpu);
|
||||||
__deactivate_vm(vcpu);
|
__deactivate_vm(vcpu);
|
||||||
__sysreg_restore_host_state(host_ctxt);
|
__sysreg_restore_host_state(host_ctxt);
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
#include <linux/elf.h>
|
#include <linux/elf.h>
|
||||||
#include <linux/fs.h>
|
#include <linux/fs.h>
|
||||||
|
#include <linux/memblock.h>
|
||||||
#include <linux/mm.h>
|
#include <linux/mm.h>
|
||||||
#include <linux/mman.h>
|
#include <linux/mman.h>
|
||||||
#include <linux/export.h>
|
#include <linux/export.h>
|
||||||
|
|
@ -102,12 +103,18 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
|
||||||
*/
|
*/
|
||||||
int valid_phys_addr_range(phys_addr_t addr, size_t size)
|
int valid_phys_addr_range(phys_addr_t addr, size_t size)
|
||||||
{
|
{
|
||||||
if (addr < PHYS_OFFSET)
|
/*
|
||||||
return 0;
|
* Check whether addr is covered by a memory region without the
|
||||||
if (addr + size > __pa(high_memory - 1) + 1)
|
* MEMBLOCK_NOMAP attribute, and whether that region covers the
|
||||||
return 0;
|
* entire range. In theory, this could lead to false negatives
|
||||||
|
* if the range is covered by distinct but adjacent memory regions
|
||||||
return 1;
|
* that only differ in other attributes. However, few of such
|
||||||
|
* attributes have been defined, and it is debatable whether it
|
||||||
|
* follows that /dev/mem read() calls should be able traverse
|
||||||
|
* such boundaries.
|
||||||
|
*/
|
||||||
|
return memblock_is_region_memory(addr, size) &&
|
||||||
|
memblock_is_map_memory(addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,8 @@ typedef union mips_instruction kprobe_opcode_t;
|
||||||
|
|
||||||
#define flush_insn_slot(p) \
|
#define flush_insn_slot(p) \
|
||||||
do { \
|
do { \
|
||||||
flush_icache_range((unsigned long)p->addr, \
|
if (p->addr) \
|
||||||
|
flush_icache_range((unsigned long)p->addr, \
|
||||||
(unsigned long)p->addr + \
|
(unsigned long)p->addr + \
|
||||||
(MAX_INSN_SIZE * sizeof(kprobe_opcode_t))); \
|
(MAX_INSN_SIZE * sizeof(kprobe_opcode_t))); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue