On Sun 26 Jul 23:16 PDT 2015, Archit Taneja wrote: > From: Lars-Peter Clausen <lars@xxxxxxxxxx> > [..] > diff --git a/drivers/gpu/drm/i2c/adv7511.c b/drivers/gpu/drm/i2c/adv7511.c [..] > > +static const struct of_device_id adv7511_of_ids[] = { > + { .compatible = "adi,adv7511", .data = (void *) ADV7511 }, > + { .compatible = "adi,adv7511w", .data = (void *) ADV7511 }, > + { .compatible = "adi,adv7513", .data = (void *) ADV7511 }, > + { .compatible = "adi,adv7533", .data = (void *) ADV7533 }, > + { } > +}; > +MODULE_DEVICE_TABLE(of, adv7511_of_ids); Please leave this at the bottom. > + > static int adv7511_probe(struct i2c_client *i2c, const struct i2c_device_id *id) > { > struct adv7511_link_config link_config; > @@ -871,9 +938,22 @@ static int adv7511_probe(struct i2c_client *i2c, const struct i2c_device_id *id) > adv7511->powered = false; > adv7511->status = connector_status_disconnected; > > - ret = adv7511_parse_dt(dev->of_node, &link_config); > - if (ret) > - return ret; > + if (dev->of_node) { > + const struct of_device_id *of_id; > + > + of_id = of_match_node(adv7511_of_ids, dev->of_node); If you use of_device_get_match_data() instead you don't need to move the of_device_id table. > + adv7511->type = (enum adv7511_type) of_id->data; > + } else { > + adv7511->type = id->driver_data; > + } > + [..] > > static const struct i2c_device_id adv7511_i2c_ids[] = { > - { "adv7511", 0 }, > - { "adv7511w", 0 }, > - { "adv7513", 0 }, > + { "adv7511", ADV7511 }, > + { "adv7511w", ADV7511 }, > + { "adv7513", ADV7511 }, > + { "adv7533", ADV7533 }, > { } > }; > MODULE_DEVICE_TABLE(i2c, adv7511_i2c_ids); > > -static const struct of_device_id adv7511_of_ids[] = { > - { .compatible = "adi,adv7511", }, > - { .compatible = "adi,adv7511w", }, > - { .compatible = "adi,adv7513", }, > - { } > -}; > -MODULE_DEVICE_TABLE(of, adv7511_of_ids); > - Regards, Bjorn _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel