···9292 unsigned int type; /* chip type id */9393 unsigned int config;9494 int (*tuner_callback) (void *dev, int command, int arg);9595+ const char *name;9596};96979798/* standard i2c insmod options */···331330 tuner_warn("Support for tuners in i2c address range 0x64 thru 0x6f\n");332331 tuner_warn("will soon be dropped. This message indicates that your\n");333332 tuner_warn("hardware has a %s tuner at i2c address 0x%02x.\n",334334- t->i2c->name, t->i2c->addr);333333+ t->name, t->i2c->addr);335334 tuner_warn("To ensure continued support for your device, please\n");336335 tuner_warn("send a copy of this message, along with full dmesg\n");337336 tuner_warn("output to v4l-dvb-maintainer@linuxtv.org\n");338337 tuner_warn("Please use subject line: \"obsolete tuner i2c address.\"\n");339338 tuner_warn("driver: %s, addr: 0x%02x, type: %d (%s)\n",340340- t->i2c->adapter->name, t->i2c->addr, t->type, t->i2c->name);339339+ t->i2c->adapter->name, t->i2c->addr, t->type, t->name);341340 tuner_warn("====================== WARNING! ======================\n");342341}343342···471470 if ((NULL == analog_ops->set_params) &&472471 (fe_tuner_ops->set_analog_params)) {473472474474- strlcpy(t->i2c->name, fe_tuner_ops->info.name,475475- sizeof(t->i2c->name));473473+ t->name = fe_tuner_ops->info.name;476474477475 t->fe.analog_demod_priv = t;478476 memcpy(analog_ops, &tuner_core_ops,479477 sizeof(struct analog_demod_ops));480478481479 } else {482482- strlcpy(t->i2c->name, analog_ops->info.name,483483- sizeof(t->i2c->name));480480+ t->name = analog_ops->info.name;484481 }485482486486- tuner_dbg("type set to %s\n", t->i2c->name);483483+ tuner_dbg("type set to %s\n", t->name);487484488485 if (t->mode_mask == T_UNINITIALIZED)489486 t->mode_mask = new_mode_mask;···11141115 if (NULL == t)11151116 return -ENOMEM;11161117 t->i2c = client;11181118+ t->name = "(tuner unset)";11171119 i2c_set_clientdata(client, t);11181120 t->type = UNSET;11191121 t->audmode = V4L2_TUNER_MODE_STEREO;···1272127212731273 list_del(&t->list);12741274 kfree(t);12751275-12761276- /* The probing code has overwritten the device name, restore it so12771277- that reloading the driver will work. Ideally the device name12781278- should not be overwritten in the first place, but for now that12791279- will do. */12801280- strlcpy(client->name, "tuner", I2C_NAME_SIZE);12811275 return 0;12821276}12831277
+2-1
include/linux/mod_devicetable.h
···375375376376struct i2c_device_id {377377 char name[I2C_NAME_SIZE];378378- kernel_ulong_t driver_data; /* Data private to the driver */378378+ kernel_ulong_t driver_data /* Data private to the driver */379379+ __attribute__((aligned(sizeof(kernel_ulong_t))));379380};380381381382