File tree Expand file tree Collapse file tree 7 files changed +1462
-2
lines changed Expand file tree Collapse file tree 7 files changed +1462
-2
lines changed Original file line number Diff line number Diff line change @@ -8,6 +8,7 @@ intel_vpu-y := \
8
8
ivpu_fw_log.o \
9
9
ivpu_gem.o \
10
10
ivpu_hw_37xx.o \
11
+ ivpu_hw_40xx.o \
11
12
ivpu_ipc.o \
12
13
ivpu_job.o \
13
14
ivpu_jsm_msg.o \
Original file line number Diff line number Diff line change @@ -501,8 +501,13 @@ static int ivpu_dev_init(struct ivpu_device *vdev)
501
501
if (!vdev -> pm )
502
502
return - ENOMEM ;
503
503
504
- vdev -> hw -> ops = & ivpu_hw_37xx_ops ;
505
- vdev -> hw -> dma_bits = 38 ;
504
+ if (ivpu_hw_gen (vdev ) >= IVPU_HW_40XX ) {
505
+ vdev -> hw -> ops = & ivpu_hw_40xx_ops ;
506
+ vdev -> hw -> dma_bits = 48 ;
507
+ } else {
508
+ vdev -> hw -> ops = & ivpu_hw_37xx_ops ;
509
+ vdev -> hw -> dma_bits = 38 ;
510
+ }
506
511
507
512
vdev -> platform = IVPU_PLATFORM_INVALID ;
508
513
vdev -> context_xa_limit .min = IVPU_USER_CONTEXT_MIN_SSID ;
@@ -629,6 +634,7 @@ static void ivpu_dev_fini(struct ivpu_device *vdev)
629
634
630
635
static struct pci_device_id ivpu_pci_ids [] = {
631
636
{ PCI_DEVICE (PCI_VENDOR_ID_INTEL , PCI_DEVICE_ID_MTL ) },
637
+ { PCI_DEVICE (PCI_VENDOR_ID_INTEL , PCI_DEVICE_ID_LNL ) },
632
638
{ }
633
639
};
634
640
MODULE_DEVICE_TABLE (pci , ivpu_pci_ids );
Original file line number Diff line number Diff line change 23
23
#define DRIVER_DATE "20230117"
24
24
25
25
#define PCI_DEVICE_ID_MTL 0x7d1d
26
+ #define PCI_DEVICE_ID_LNL 0x643e
26
27
27
28
#define IVPU_HW_37XX 37
29
+ #define IVPU_HW_40XX 40
28
30
29
31
#define IVPU_GLOBAL_CONTEXT_MMU_SSID 0
30
32
/* SSID 1 is used by the VPU to represent invalid context */
@@ -78,6 +80,7 @@ struct ivpu_wa_table {
78
80
bool clear_runtime_mem ;
79
81
bool d3hot_after_power_off ;
80
82
bool interrupt_clear_with_0 ;
83
+ bool disable_clock_relinquish ;
81
84
};
82
85
83
86
struct ivpu_hw_info ;
@@ -163,6 +166,8 @@ static inline int ivpu_hw_gen(struct ivpu_device *vdev)
163
166
switch (ivpu_device_id (vdev )) {
164
167
case PCI_DEVICE_ID_MTL :
165
168
return IVPU_HW_37XX ;
169
+ case PCI_DEVICE_ID_LNL :
170
+ return IVPU_HW_40XX ;
166
171
default :
167
172
ivpu_err (vdev , "Unknown VPU device\n" );
168
173
return 0 ;
Original file line number Diff line number Diff line change @@ -51,6 +51,8 @@ static struct {
51
51
{ IVPU_HW_37XX , "vpu_37xx.bin" },
52
52
{ IVPU_HW_37XX , "mtl_vpu.bin" },
53
53
{ IVPU_HW_37XX , "intel/vpu/vpu_37xx_v0.0.bin" },
54
+ { IVPU_HW_40XX , "vpu_40xx.bin" },
55
+ { IVPU_HW_40XX , "intel/vpu/vpu_40xx_v0.0.bin" },
54
56
};
55
57
56
58
static int ivpu_fw_request (struct ivpu_device * vdev )
Original file line number Diff line number Diff line change @@ -60,6 +60,7 @@ struct ivpu_hw_info {
60
60
};
61
61
62
62
extern const struct ivpu_hw_ops ivpu_hw_37xx_ops ;
63
+ extern const struct ivpu_hw_ops ivpu_hw_40xx_ops ;
63
64
64
65
static inline int ivpu_hw_info_init (struct ivpu_device * vdev )
65
66
{
You can’t perform that action at this time.
0 commit comments