cobra
if ((r = cobra_read_packet(gameport, data)) != cobra->exists) {
cobra->bads++;
if (cobra->exists & r & (1 << i)) {
dev = cobra->dev[i];
struct cobra *cobra = input_get_drvdata(dev);
gameport_start_polling(cobra->gameport);
struct cobra *cobra = input_get_drvdata(dev);
gameport_stop_polling(cobra->gameport);
struct cobra *cobra;
cobra = kzalloc_obj(*cobra);
if (!cobra)
cobra->gameport = gameport;
gameport_set_drvdata(gameport, cobra);
cobra->exists = cobra_read_packet(gameport, data);
if ((cobra->exists >> i) & data[i] & 1) {
cobra->exists &= ~(1 << i);
if (!cobra->exists) {
if (~(cobra->exists >> i) & 1)
cobra->dev[i] = input_dev = input_allocate_device();
snprintf(cobra->phys[i], sizeof(cobra->phys[i]),
input_dev->phys = cobra->phys[i];
input_set_drvdata(input_dev, cobra);
err = input_register_device(cobra->dev[i]);
fail4: input_free_device(cobra->dev[i]);
if (cobra->dev[i])
input_unregister_device(cobra->dev[i]);
kfree(cobra);
struct cobra *cobra = gameport_get_drvdata(gameport);
if ((cobra->exists >> i) & 1)
input_unregister_device(cobra->dev[i]);
kfree(cobra);
struct cobra *cobra = gameport_get_drvdata(gameport);
cobra->reads++;