@@ -323,6 +323,7 @@ static irqreturn_t quicki2c_irq_thread_handler(int irq, void *dev_id)
323
323
* quicki2c_dev_init - Initialize QuickI2C device
324
324
* @pdev: Pointer to the THC PCI device
325
325
* @mem_addr: The Pointer of MMIO memory address
326
+ * @ddata: Point to quicki2c_ddata structure
326
327
*
327
328
* Alloc quicki2c_device structure and initialized THC device,
328
329
* then configure THC to HIDI2C mode.
@@ -332,7 +333,8 @@ static irqreturn_t quicki2c_irq_thread_handler(int irq, void *dev_id)
332
333
* Return: Pointer to the quicki2c_device structure if success
333
334
* or NULL on failure.
334
335
*/
335
- static struct quicki2c_device * quicki2c_dev_init (struct pci_dev * pdev , void __iomem * mem_addr )
336
+ static struct quicki2c_device * quicki2c_dev_init (struct pci_dev * pdev , void __iomem * mem_addr ,
337
+ const struct quicki2c_ddata * ddata )
336
338
{
337
339
struct device * dev = & pdev -> dev ;
338
340
struct quicki2c_device * qcdev ;
@@ -346,6 +348,7 @@ static struct quicki2c_device *quicki2c_dev_init(struct pci_dev *pdev, void __io
346
348
qcdev -> dev = dev ;
347
349
qcdev -> mem_addr = mem_addr ;
348
350
qcdev -> state = QUICKI2C_DISABLED ;
351
+ qcdev -> ddata = ddata ;
349
352
350
353
init_waitqueue_head (& qcdev -> reset_ack_wq );
351
354
@@ -529,9 +532,9 @@ static int quicki2c_alloc_report_buf(struct quicki2c_device *qcdev)
529
532
*
530
533
* Return 0 if success or error code on failure.
531
534
*/
532
- static int quicki2c_probe (struct pci_dev * pdev ,
533
- const struct pci_device_id * id )
535
+ static int quicki2c_probe (struct pci_dev * pdev , const struct pci_device_id * id )
534
536
{
537
+ const struct quicki2c_ddata * ddata = (const struct quicki2c_ddata * )id -> driver_data ;
535
538
struct quicki2c_device * qcdev ;
536
539
void __iomem * mem_addr ;
537
540
int ret ;
@@ -569,7 +572,7 @@ static int quicki2c_probe(struct pci_dev *pdev,
569
572
570
573
pdev -> irq = pci_irq_vector (pdev , 0 );
571
574
572
- qcdev = quicki2c_dev_init (pdev , mem_addr );
575
+ qcdev = quicki2c_dev_init (pdev , mem_addr , ddata );
573
576
if (IS_ERR (qcdev )) {
574
577
dev_err_once (& pdev -> dev , "QuickI2C device init failed\n" );
575
578
ret = PTR_ERR (qcdev );
@@ -919,13 +922,13 @@ static const struct dev_pm_ops quicki2c_pm_ops = {
919
922
};
920
923
921
924
static const struct pci_device_id quicki2c_pci_tbl [] = {
922
- {PCI_VDEVICE (INTEL , THC_LNL_DEVICE_ID_I2C_PORT1 ), },
923
- {PCI_VDEVICE (INTEL , THC_LNL_DEVICE_ID_I2C_PORT2 ), },
924
- {PCI_VDEVICE (INTEL , THC_PTL_H_DEVICE_ID_I2C_PORT1 ), },
925
- {PCI_VDEVICE (INTEL , THC_PTL_H_DEVICE_ID_I2C_PORT2 ), },
926
- {PCI_VDEVICE (INTEL , THC_PTL_U_DEVICE_ID_I2C_PORT1 ), },
927
- {PCI_VDEVICE (INTEL , THC_PTL_U_DEVICE_ID_I2C_PORT2 ), },
928
- {}
925
+ { PCI_DEVICE_DATA (INTEL , THC_LNL_DEVICE_ID_I2C_PORT1 , NULL ) },
926
+ { PCI_DEVICE_DATA (INTEL , THC_LNL_DEVICE_ID_I2C_PORT2 , NULL ) },
927
+ { PCI_DEVICE_DATA (INTEL , THC_PTL_H_DEVICE_ID_I2C_PORT1 , NULL ) },
928
+ { PCI_DEVICE_DATA (INTEL , THC_PTL_H_DEVICE_ID_I2C_PORT2 , NULL ) },
929
+ { PCI_DEVICE_DATA (INTEL , THC_PTL_U_DEVICE_ID_I2C_PORT1 , NULL ) },
930
+ { PCI_DEVICE_DATA (INTEL , THC_PTL_U_DEVICE_ID_I2C_PORT2 , NULL ) },
931
+ { }
929
932
};
930
933
MODULE_DEVICE_TABLE (pci , quicki2c_pci_tbl );
931
934
0 commit comments