Merge 5.8-rc7 into char-misc-next
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 27 Jul 2020 09:49:37 +0000 (11:49 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 27 Jul 2020 09:49:37 +0000 (11:49 +0200)
This should resolve the merge/build issues reported when trying to
create linux-next.

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
14 files changed:
1  2 
MAINTAINERS
drivers/fpga/dfl-afu-main.c
drivers/fpga/dfl-pci.c
drivers/interconnect/core.c
drivers/misc/habanalabs/common/debugfs.c
drivers/misc/habanalabs/common/device.c
drivers/misc/habanalabs/common/firmware_if.c
drivers/misc/habanalabs/common/habanalabs.h
drivers/misc/habanalabs/common/habanalabs_drv.c
drivers/misc/habanalabs/common/hwmon.c
drivers/misc/habanalabs/common/sysfs.c
drivers/misc/habanalabs/gaudi/gaudi.c
drivers/misc/habanalabs/goya/goya.c
include/asm-generic/vmlinux.lds.h

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
index 4a1a52608fc0963f29acb6140cd396e652fd130f,637a9d608707f51e30226e121fad16019659a2bb..78fbff646f99a6b9387c5762c5c040fa56beea63
@@@ -1766,7 -1823,9 +1772,7 @@@ static void gaudi_init_golden_registers
  
        gaudi_init_hbm_cred(hdev);
  
-       gaudi_disable_clock_gating(hdev);
 -      gaudi_init_rate_limiter(hdev);
 -
+       hdev->asic_funcs->disable_clock_gating(hdev);
  
        for (tpc_id = 0, tpc_offset = 0;
                                tpc_id < TPC_NUMBER_OF_ENGINES;
@@@ -5166,50 -5275,41 +5211,51 @@@ static int gaudi_extract_ecc_info(struc
                hdev->asic_funcs->disable_clock_gating(hdev);
        }
  
 -      switch (num_mem_regs) {
 -      case 1:
 -              dev_err(hdev->dev,
 -                      "%s ECC indication: 0x%08x\n",
 -                      block_name, RREG32(block_address));
 -              break;
 -      case 2:
 -              dev_err(hdev->dev,
 -                      "%s ECC indication: 0x%08x 0x%08x\n",
 -                      block_name,
 -                      RREG32(block_address), RREG32(block_address + 4));
 -              break;
 -      case 3:
 -              dev_err(hdev->dev,
 -                      "%s ECC indication: 0x%08x 0x%08x 0x%08x\n",
 -                      block_name,
 -                      RREG32(block_address), RREG32(block_address + 4),
 -                      RREG32(block_address + 8));
 -              break;
 -      case 4:
 -              dev_err(hdev->dev,
 -                      "%s ECC indication: 0x%08x 0x%08x 0x%08x 0x%08x\n",
 -                      block_name,
 -                      RREG32(block_address), RREG32(block_address + 4),
 -                      RREG32(block_address + 8), RREG32(block_address + 0xc));
 -              break;
 -      default:
 -              break;
 +      /* Set invalid wrapper index */
 +      *memory_wrapper_idx = 0xFF;
 +
 +      /* Iterate through memory wrappers, a single bit must be set */
 +      for (i = 0 ; i > num_mem_regs ; i++) {
 +              err_addr += i * 4;
 +              err_word = RREG32(err_addr);
 +              if (err_word) {
 +                      err_bit = __ffs(err_word);
 +                      *memory_wrapper_idx = err_bit + (32 * i);
 +                      break;
 +              }
 +      }
  
 +      if (*memory_wrapper_idx == 0xFF) {
 +              dev_err(hdev->dev, "ECC error information cannot be found\n");
 +              rc = -EINVAL;
 +              goto enable_clk_gate;
        }
  
 -      if (disable_clock_gating) {
 +      WREG32(params->block_address + GAUDI_ECC_MEM_SEL_OFFSET,
 +                      *memory_wrapper_idx);
 +
 +      *ecc_address =
 +              RREG32(params->block_address + GAUDI_ECC_ADDRESS_OFFSET);
 +      *ecc_syndrom =
 +              RREG32(params->block_address + GAUDI_ECC_SYNDROME_OFFSET);
 +
 +      /* Clear error indication */
 +      reg = RREG32(params->block_address + GAUDI_ECC_MEM_INFO_CLR_OFFSET);
 +      if (params->derr)
 +              reg |= FIELD_PREP(GAUDI_ECC_MEM_INFO_CLR_DERR_MASK, 1);
 +      else
 +              reg |= FIELD_PREP(GAUDI_ECC_MEM_INFO_CLR_SERR_MASK, 1);
 +
 +      WREG32(params->block_address + GAUDI_ECC_MEM_INFO_CLR_OFFSET, reg);
 +
 +enable_clk_gate:
 +      if (params->disable_clock_gating) {
-               hdev->asic_funcs->enable_clock_gating(hdev);
+               hdev->asic_funcs->set_clock_gating(hdev);
++
                mutex_unlock(&gaudi->clk_gate_mutex);
        }
 +
 +      return rc;
  }
  
  static void gaudi_handle_qman_err_generic(struct hl_device *hdev,
Simple merge
Simple merge