i2c: nvidia-gpu: Supply CCGx driver the fw build info
authorAjay Gupta <ajayg@nvidia.com>
Tue, 23 Apr 2019 14:21:46 +0000 (17:21 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Apr 2019 09:03:53 +0000 (11:03 +0200)
Adding device property "ccgx,firmware-build" for the CCGx
device, so the CCGx driver knows which firmware binary to
use for a specific vendor.

Suggested-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Ajay Gupta <ajayg@nvidia.com>
Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/i2c/busses/i2c-nvidia-gpu.c

index 4e67d5e..1c8f708 100644 (file)
@@ -253,6 +253,12 @@ static const struct pci_device_id gpu_i2c_ids[] = {
 };
 MODULE_DEVICE_TABLE(pci, gpu_i2c_ids);
 
+static const struct property_entry ccgx_props[] = {
+       /* Use FW built for NVIDIA (nv) only */
+       PROPERTY_ENTRY_U16("ccgx,firmware-build", ('n' << 8) | 'v'),
+       { }
+};
+
 static int gpu_populate_client(struct gpu_i2c_dev *i2cd, int irq)
 {
        struct i2c_client *ccgx_client;
@@ -267,6 +273,7 @@ static int gpu_populate_client(struct gpu_i2c_dev *i2cd, int irq)
                sizeof(i2cd->gpu_ccgx_ucsi->type));
        i2cd->gpu_ccgx_ucsi->addr = 0x8;
        i2cd->gpu_ccgx_ucsi->irq = irq;
+       i2cd->gpu_ccgx_ucsi->properties = ccgx_props;
        ccgx_client = i2c_new_device(&i2cd->adapter, i2cd->gpu_ccgx_ucsi);
        if (!ccgx_client)
                return -ENODEV;