From 6290d929264f3d3a75be0e71a3a36b4d3edcdd31 Mon Sep 17 00:00:00 2001 From: Mahantesh Kumbar Date: Thu, 25 Jul 2019 15:46:59 +0530 Subject: [PATCH] gpu: nvgpu: PCIE table update for TU104-QS -Added PCIE device info for TU104-QS chip & marked as FUSA SKU using device flag -is_fusa_sku flag will be set if device flag has FUSA SKU flag set & this will be checked in driver to execute functionality specific to FUSA SKU JIRA NVGPU-3727 Change-Id: I49ea357133ce0b9bbf52dae72afcf8139ab01346 Signed-off-by: Mahantesh Kumbar Reviewed-on: https://git-master.nvidia.com/r/2161163 GVS: Gerrit_Virtual_Submit Reviewed-by: Deepak Nibade Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/include/nvgpu/gk20a.h | 1 + drivers/gpu/nvgpu/os/linux/pci.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/drivers/gpu/nvgpu/include/nvgpu/gk20a.h b/drivers/gpu/nvgpu/include/nvgpu/gk20a.h index 6d21603c6..f5ea52671 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/gk20a.h +++ b/drivers/gpu/nvgpu/include/nvgpu/gk20a.h @@ -2173,6 +2173,7 @@ struct gk20a { u16 pci_subsystem_vendor_id, pci_subsystem_device_id; u16 pci_class; u8 pci_revision; + bool is_fusa_sku; /* * PCI power management: i2c device index, port and address for diff --git a/drivers/gpu/nvgpu/os/linux/pci.c b/drivers/gpu/nvgpu/os/linux/pci.c index 7beaf8876..c2b686cee 100644 --- a/drivers/gpu/nvgpu/os/linux/pci.c +++ b/drivers/gpu/nvgpu/os/linux/pci.c @@ -158,6 +158,7 @@ static struct gk20a_platform nvgpu_pci_device[] = { #define PCI_DEVICE_FLAGS(driver_data) ((driver_data) & 0xFFFF0000U) #define PCI_DEVICE_F_INTERNAL_CHIP_SKU BIT(31) +#define PCI_DEVICE_F_FUSA_CHIP_SKU BIT(30) static struct pci_device_id nvgpu_pci_table[] = { { @@ -202,6 +203,20 @@ static struct pci_device_id nvgpu_pci_table[] = { .class_mask = 0xff << 16, .driver_data = 1 | PCI_DEVICE_F_INTERNAL_CHIP_SKU, }, + { + /* TU104-QS SKU*/ + PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, 0x1ebc), + .class = PCI_BASE_CLASS_DISPLAY << 16, + .class_mask = 0xff << 16, + .driver_data = 1 | PCI_DEVICE_F_FUSA_CHIP_SKU, + }, + { + /* TU104-QS SKU*/ + PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, 0x1efc), + .class = PCI_BASE_CLASS_DISPLAY << 16, + .class_mask = 0xff << 16, + .driver_data = 1 | PCI_DEVICE_F_FUSA_CHIP_SKU, + }, {} }; @@ -453,6 +468,10 @@ static int nvgpu_pci_probe(struct pci_dev *pdev, nvgpu_err(g, "replace board, or use at your own risks"); } + if ((device_flags & PCI_DEVICE_F_FUSA_CHIP_SKU) != 0U) { + g->is_fusa_sku = true; + } + g->ina3221_dcb_index = platform->ina3221_dcb_index; g->ina3221_i2c_address = platform->ina3221_i2c_address; g->ina3221_i2c_port = platform->ina3221_i2c_port;