* Analog Devices ADV7511 HDMI transmitter driver
   *
   * Copyright 2012 Analog Devices Inc.
-  *
-  * Licensed under the GPL-2.
   */
  
 +#include <linux/clk.h>
  #include <linux/device.h>
  #include <linux/gpio/consumer.h>
  #include <linux/module.h>
 
  *
  * Copyright (C) 2012 Samsung Electronics Co., Ltd.
  * Author: Jingoo Han <jg1.han@samsung.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
  */
  
 -#include <linux/module.h>
 -#include <linux/platform_device.h>
 -#include <linux/err.h>
  #include <linux/clk.h>
 +#include <linux/component.h>
 +#include <linux/err.h>
 +#include <linux/gpio/consumer.h>
 +#include <linux/interrupt.h>
  #include <linux/io.h>
  #include <linux/iopoll.h>
 -#include <linux/interrupt.h>
 +#include <linux/module.h>
  #include <linux/of.h>
 -#include <linux/of_gpio.h>
 -#include <linux/gpio.h>
 -#include <linux/component.h>
  #include <linux/phy/phy.h>
 +#include <linux/platform_device.h>
  
 -#include <drm/drmP.h>
 +#include <drm/bridge/analogix_dp.h>
  #include <drm/drm_atomic_helper.h>
  #include <drm/drm_crtc.h>
 +#include <drm/drm_device.h>
  #include <drm/drm_panel.h>
 +#include <drm/drm_print.h>
  #include <drm/drm_probe_helper.h>
  
 -#include <drm/bridge/analogix_dp.h>
 -
  #include "analogix_dp_core.h"
  #include "analogix_dp_reg.h"
  
 
+ // SPDX-License-Identifier: GPL-2.0-or-later
  /*
   * Copyright (C) 2016 Laurent Pinchart <laurent.pinchart@ideasonboard.com>
-  *
-  * This program is free software; you can redistribute it and/or
-  * modify it under the terms of the GNU General Public License as
-  * published by the Free Software Foundation; either version 2 of
-  * the License, or (at your option) any later version.
   */
  
 -#include <drm/drmP.h>
 -#include <drm/drm_bridge.h>
 -#include <drm/drm_panel.h>
 -
  #include <linux/gpio/consumer.h>
 +#include <linux/module.h>
 +#include <linux/of.h>
  #include <linux/of_graph.h>
 +#include <linux/platform_device.h>
 +
 +#include <drm/drm_bridge.h>
 +#include <drm/drm_panel.h>
  
  struct lvds_encoder {
        struct drm_bridge bridge;
 
  /*
   * Copyright (C) 2016 Laurent Pinchart <laurent.pinchart@ideasonboard.com>
   * Copyright (C) 2017 Broadcom
-  *
-  * This program is free software; you can redistribute it and/or
-  * modify it under the terms of the GNU General Public License as
-  * published by the Free Software Foundation; either version 2 of
-  * the License, or (at your option) any later version.
   */
  
 -#include <drm/drmP.h>
 -#include <drm/drm_panel.h>
  #include <drm/drm_atomic_helper.h>
  #include <drm/drm_connector.h>
  #include <drm/drm_encoder.h>
 
   * Copyright (C) 2013-2015 Mentor Graphics Inc.
   * Copyright (C) 2011-2013 Freescale Semiconductor, Inc.
   * Copyright (C) 2010, Guennadi Liakhovetski <g.liakhovetski@gmx.de>
-  *
-  * This program is free software; you can redistribute it and/or modify
-  * it under the terms of the GNU General Public License as published by
-  * the Free Software Foundation; either version 2 of the License, or
-  * (at your option) any later version.
-  *
   */
 -#include <linux/module.h>
 -#include <linux/irq.h>
 +#include <linux/clk.h>
  #include <linux/delay.h>
  #include <linux/err.h>
 -#include <linux/clk.h>
  #include <linux/hdmi.h>
 +#include <linux/irq.h>
 +#include <linux/module.h>
  #include <linux/mutex.h>
  #include <linux/of_device.h>
 +#include <linux/pinctrl/consumer.h>
  #include <linux/regmap.h>
 +#include <linux/dma-mapping.h>
  #include <linux/spinlock.h>
  
 -#include <drm/drm_of.h>
 -#include <drm/drmP.h>
 +#include <media/cec-notifier.h>
 +
 +#include <uapi/linux/media-bus-format.h>
 +#include <uapi/linux/videodev2.h>
 +
 +#include <drm/bridge/dw_hdmi.h>
  #include <drm/drm_atomic_helper.h>
  #include <drm/drm_edid.h>
  #include <drm/drm_encoder_slave.h>
 
   * Based on Samsung Exynos code
   *
   * Copyright (c) 2011 Samsung Electronics Co., Ltd.
-  *
-  * This program is free software; you can redistribute it and/or
-  * modify it under the terms of the GNU General Public License
-  * as published by the Free Software Foundation; either version 2
-  * of the License, or (at your option) any later version.
-  * This program is distributed in the hope that it will be useful,
-  * but WITHOUT ANY WARRANTY; without even the implied warranty of
-  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  * GNU General Public License for more details.
   */
  
 -#include <linux/mm.h>
 -#include <linux/slab.h>
 -#include <linux/mutex.h>
 -#include <linux/export.h>
  #include <linux/dma-buf.h>
  #include <linux/dma-mapping.h>
 +#include <linux/export.h>
 +#include <linux/mm.h>
 +#include <linux/mutex.h>
 +#include <linux/slab.h>
  
 -#include <drm/drmP.h>
  #include <drm/drm.h>
 +#include <drm/drm_device.h>
 +#include <drm/drm_drv.h>
  #include <drm/drm_gem_cma_helper.h>
  #include <drm/drm_vma_manager.h>
  
 
+ // SPDX-License-Identifier: GPL-2.0-or-later
  /*
   * Copyright © 2017 Keith Packard <keithp@keithp.com>
-  *
-  * This program is free software; you can redistribute it and/or modify
-  * it under the terms of the GNU General Public License as published by
-  * the Free Software Foundation, either version 2 of the License, or
-  * (at your option) any later version.
-  *
-  * This program is distributed in the hope that it will be useful, but
-  * WITHOUT ANY WARRANTY; without even the implied warranty of
-  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-  * General Public License for more details.
   */
 +#include <linux/file.h>
 +#include <linux/uaccess.h>
  
 -#include <drm/drmP.h>
 -#include "drm_internal.h"
 -#include "drm_legacy.h"
 -#include "drm_crtc_internal.h"
 -#include <drm/drm_lease.h>
  #include <drm/drm_auth.h>
  #include <drm/drm_crtc_helper.h>
 +#include <drm/drm_drv.h>
 +#include <drm/drm_file.h>
 +#include <drm/drm_lease.h>
 +#include <drm/drm_print.h>
 +
 +#include "drm_crtc_internal.h"
 +#include "drm_internal.h"
 +#include "drm_legacy.h"
  
  #define drm_for_each_lessee(lessee, lessor) \
        list_for_each_entry((lessee), &(lessor)->lessees, lessee_list)
 
+ // SPDX-License-Identifier: GPL-2.0-or-later
  /*
   * Copyright (C) 2016 Noralf Trønnes
-  *
-  * This program is free software; you can redistribute it and/or modify
-  * it under the terms of the GNU General Public License as published by
-  * the Free Software Foundation; either version 2 of the License, or
-  * (at your option) any later version.
   */
  
 -#include <drm/drmP.h>
 +#include <linux/module.h>
 +#include <linux/slab.h>
 +
  #include <drm/drm_atomic.h>
  #include <drm/drm_atomic_helper.h>
  #include <drm/drm_plane_helper.h>
 
+ /* SPDX-License-Identifier: GPL-2.0-only */
  /*
   * Copyright © 2011 Intel Corporation
-  *
-  * This program is free software; you can redistribute it and/or modify it
-  * under the terms and conditions of the GNU General Public License,
-  * version 2, as published by the Free Software Foundation.
-  *
-  * This program is distributed in the hope it will be useful, but WITHOUT
-  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-  * more details.
-  *
-  * You should have received a copy of the GNU General Public License along with
-  * this program; if not, write to the Free Software Foundation, Inc., 
-  * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
   */
  
 +struct drm_crtc;
 +struct drm_device;
 +struct psb_intel_mode_device;
 +
  extern const struct drm_crtc_helper_funcs cdv_intel_helper_funcs;
  extern const struct drm_crtc_funcs cdv_intel_crtc_funcs;
  extern const struct gma_clock_funcs cdv_clock_funcs;
 
   * Copyright (c) 2007-2011, Intel Corporation.
   * All Rights Reserved.
   *
-  * This program is free software; you can redistribute it and/or modify it
-  * under the terms and conditions of the GNU General Public License,
-  * version 2, as published by the Free Software Foundation.
-  *
-  * This program is distributed in the hope it will be useful, but WITHOUT
-  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-  * more details.
-  *
-  * You should have received a copy of the GNU General Public License along with
-  * this program; if not, write to the Free Software Foundation, Inc.,
-  * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
-  *
   **************************************************************************/
  
 -#include <linux/module.h>
 -#include <linux/kernel.h>
 +#include <linux/console.h>
 +#include <linux/delay.h>
  #include <linux/errno.h>
 -#include <linux/string.h>
 -#include <linux/pfn_t.h>
 +#include <linux/init.h>
 +#include <linux/kernel.h>
  #include <linux/mm.h>
 -#include <linux/tty.h>
 +#include <linux/module.h>
 +#include <linux/pfn_t.h>
  #include <linux/slab.h>
 -#include <linux/delay.h>
 -#include <linux/init.h>
 -#include <linux/console.h>
 +#include <linux/string.h>
 +#include <linux/tty.h>
  
 -#include <drm/drmP.h>
  #include <drm/drm.h>
  #include <drm/drm_crtc.h>
  #include <drm/drm_fb_helper.h>
 
   * Copyright (c) 2011, Intel Corporation.
   * All Rights Reserved.
   *
-  * This program is free software; you can redistribute it and/or modify it
-  * under the terms and conditions of the GNU General Public License,
-  * version 2, as published by the Free Software Foundation.
-  *
-  * This program is distributed in the hope it will be useful, but WITHOUT
-  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-  * more details.
-  *
   **************************************************************************/
  
 -#include <drm/drmP.h>
  #include "psb_drv.h"
  
  void gma_get_core_freq(struct drm_device *dev)
 
  /*
   * Copyright (c) 2006 Intel Corporation
   *
-  * This program is free software; you can redistribute it and/or modify it
-  * under the terms and conditions of the GNU General Public License,
-  * version 2, as published by the Free Software Foundation.
-  *
-  * This program is distributed in the hope it will be useful, but WITHOUT
-  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-  * more details.
-  *
-  * You should have received a copy of the GNU General Public License along with
-  * this program; if not, write to the Free Software Foundation, Inc.,
-  * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
-  *
   * Authors:
   *    Eric Anholt <eric@anholt.net>
-  *
   */
 -#include <drm/drmP.h>
  #include <drm/drm.h>
 -#include <drm/gma_drm.h>
 +#include <drm/drm_dp_helper.h>
 +
 +#include "intel_bios.h"
  #include "psb_drv.h"
  #include "psb_intel_drv.h"
  #include "psb_intel_reg.h"
 
   * Copyright (c) 2011, Intel Corporation.
   * All Rights Reserved.
   *
-  * This program is free software; you can redistribute it and/or modify it
-  * under the terms and conditions of the GNU General Public License,
-  * version 2, as published by the Free Software Foundation.
-  *
-  * This program is distributed in the hope it will be useful, but WITHOUT
-  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-  * more details.
-  *
-  * You should have received a copy of the GNU General Public License along with
-  * this program; if not, write to the Free Software Foundation, Inc.,
-  * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
-  *
   **************************************************************************/
  
 -#include "psb_drv.h"
 -#include "mid_bios.h"
 -#include "mdfld_output.h"
 -#include "mdfld_dsi_output.h"
 -#include "tc35876x-dsi-lvds.h"
 +#include <linux/delay.h>
  
  #include <asm/intel_scu_ipc.h>
  
 
   * Copyright (c) 2011, Intel Corporation.
   * All Rights Reserved.
   *
-  * This program is free software; you can redistribute it and/or modify it
-  * under the terms and conditions of the GNU General Public License,
-  * version 2, as published by the Free Software Foundation.
-  *
-  * This program is distributed in the hope it will be useful, but WITHOUT
-  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-  * more details.
-  *
-  * You should have received a copy of the GNU General Public License along with
-  * this program; if not, write to the Free Software Foundation, Inc.,
-  * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
-  *
   **************************************************************************/
 +struct drm_device;
  
  extern int mid_chip_setup(struct drm_device *dev);
  
 
  /**************************************************************************
   * Copyright (c) 2007, Intel Corporation.
   *
-  * This program is free software; you can redistribute it and/or modify it
-  * under the terms and conditions of the GNU General Public License,
-  * version 2, as published by the Free Software Foundation.
-  *
-  * This program is distributed in the hope it will be useful, but WITHOUT
-  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-  * more details.
-  *
-  * You should have received a copy of the GNU General Public License along with
-  * this program; if not, write to the Free Software Foundation, Inc.,
-  * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
-  *
   **************************************************************************/
 -#include <drm/drmP.h>
 +
 +#include <linux/highmem.h>
 +
 +#include "mmu.h"
  #include "psb_drv.h"
  #include "psb_reg.h"
 -#include "mmu.h"
  
  /*
   * Code for the SGX MMU:
 
   * Copyright (c) 2007-2011, Intel Corporation.
   * All Rights Reserved.
   *
-  * This program is free software; you can redistribute it and/or modify it
-  * under the terms and conditions of the GNU General Public License,
-  * version 2, as published by the Free Software Foundation.
-  *
-  * This program is distributed in the hope it will be useful, but WITHOUT
-  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-  * more details.
-  *
-  * You should have received a copy of the GNU General Public License along with
-  * this program; if not, write to the Free Software Foundation, Inc.,
-  * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
-  *
   **************************************************************************/
  
 +struct psb_intel_mode_device;
 +
  /* MID device specific descriptors */
  
  struct oaktrail_timing_info {
 
+ // SPDX-License-Identifier: GPL-2.0-only
  /*
   * Copyright © 2009 Intel Corporation
-  *
-  * This program is free software; you can redistribute it and/or modify it
-  * under the terms and conditions of the GNU General Public License,
-  * version 2, as published by the Free Software Foundation.
-  *
-  * This program is distributed in the hope it will be useful, but WITHOUT
-  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-  * more details.
-  *
-  * You should have received a copy of the GNU General Public License along with
-  * this program; if not, write to the Free Software Foundation, Inc.,
-  * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
   */
  
 +#include <linux/delay.h>
  #include <linux/i2c.h>
  #include <linux/pm_runtime.h>
  
 
   * Copyright (c) 2008, Tungsten Graphics, Inc. Cedar Park, TX., USA.
   * All Rights Reserved.
   *
-  * This program is free software; you can redistribute it and/or modify it
-  * under the terms and conditions of the GNU General Public License,
-  * version 2, as published by the Free Software Foundation.
-  *
-  * This program is distributed in the hope it will be useful, but WITHOUT
-  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-  * more details.
-  *
-  * You should have received a copy of the GNU General Public License along with
-  * this program; if not, write to the Free Software Foundation, Inc.,
-  * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
-  *
   **************************************************************************/
  
 -#include <drm/drmP.h>
 +#include <linux/cpu.h>
 +#include <linux/module.h>
 +#include <linux/notifier.h>
 +#include <linux/pm_runtime.h>
 +#include <linux/spinlock.h>
 +
 +#include <asm/set_memory.h>
 +
 +#include <acpi/video.h>
 +
  #include <drm/drm.h>
 -#include "psb_drv.h"
 +#include <drm/drm_drv.h>
 +#include <drm/drm_file.h>
 +#include <drm/drm_ioctl.h>
 +#include <drm/drm_irq.h>
 +#include <drm/drm_pci.h>
 +#include <drm/drm_pciids.h>
 +#include <drm/drm_vblank.h>
 +
  #include "framebuffer.h"
 -#include "psb_reg.h"
 -#include "psb_intel_reg.h"
  #include "intel_bios.h"
  #include "mid_bios.h"
 -#include <drm/drm_pciids.h>
  #include "power.h"
 -#include <linux/cpu.h>
 -#include <linux/notifier.h>
 -#include <linux/spinlock.h>
 -#include <linux/pm_runtime.h>
 -#include <acpi/video.h>
 -#include <linux/module.h>
 -#include <asm/set_memory.h>
 +#include "psb_drv.h"
 +#include "psb_intel_reg.h"
 +#include "psb_reg.h"
  
  static struct drm_driver driver;
  static int psb_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent);
 
   * develop this driver.
   *
   **************************************************************************/
- /*
-  */
  
 -#include <drm/drmP.h>
 +#include <drm/drm_vblank.h>
 +
 +#include "mdfld_output.h"
 +#include "power.h"
  #include "psb_drv.h"
 -#include "psb_reg.h"
  #include "psb_intel_reg.h"
 -#include "power.h"
  #include "psb_irq.h"
 -#include "mdfld_output.h"
 +#include "psb_reg.h"
  
  /*
   * inline functions
 
        WA_SET_BIT_MASKED(GEN8_ROW_CHICKEN, DISABLE_EARLY_EOT);
  }
  
 -static void icl_ctx_workarounds_init(struct intel_engine_cs *engine)
 +static void icl_ctx_workarounds_init(struct intel_engine_cs *engine,
 +                                   struct i915_wa_list *wal)
  {
        struct drm_i915_private *i915 = engine->i915;
 -      struct i915_wa_list *wal = &engine->ctx_wa_list;
 +
++      /* WaDisableBankHangMode:icl */
++      wa_write(wal,
++               GEN8_L3CNTLREG,
++               intel_uncore_read(engine->uncore, GEN8_L3CNTLREG) |
++               GEN8_ERRDETBCTRL);
+ 
        /* WaDisableBankHangMode:icl */
        wa_write(wal,
                 GEN8_L3CNTLREG,
 
+ /* SPDX-License-Identifier: GPL-2.0-only */
  /*
   * Copyright 2010 Matt Turner.
 - * Copyright 2012 Red Hat 
 + * Copyright 2012 Red Hat
   *
-  * This file is subject to the terms and conditions of the GNU General
-  * Public License version 2. See the file COPYING in the main
-  * directory of this archive for more details.
-  *
   * Authors: Matthew Garrett
   *        Matt Turner
   *        Dave Airlie