Re: [PATCH] Input: drivers/joystick: use parallel port device model

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jul 31, 2015 at 11:04:26PM +0530, Sudip Mukherjee wrote:
> On Fri, Jul 31, 2015 at 09:54:27AM -0700, Dmitry Torokhov wrote:
> > On Fri, Jul 31, 2015 at 03:45:25PM +0530, Sudip Mukherjee wrote:
> > > On Thu, Jul 30, 2015 at 09:53:23AM -0700, Dmitry Torokhov wrote:
> > > > Hi Sudip,
> > > Hi Dmitry,
> > > > 
> > > > On Thu, Jul 30, 2015 at 07:36:34PM +0530, Sudip Mukherjee wrote:
> > > > > Modify db9 driver to use the new Parallel Port device model.
> > > > > 
> > > > > Signed-off-by: Sudip Mukherjee <sudip@xxxxxxxxxxxxxxx>
> > > > > ---
> > > > > 
> > > > > It will generate a checkpatch warning about long line but I have not
> > > > > changed it as it was only 2 char more and for 2 char it is more readable
> > > > > now.
> > > > 
> > > > You can also write it as
> > > > 
> > > > 	if (!have_dev)
> > > > 		return -ENODEV;
> > > > 
> > > > 	return parport_register_driver(...);
> > > sure.
> > > > 
> > > > 
> > > > Could you please tell me how you tested this change? With these devices
> > > > becoming exceedingly rare just compile-tested changes may introduce
> > > > regressions that are not easily noticed.
> > > I dont have the device. It was just tested with module loading,
> > > unloading, bind and unbind and checking that it is getting attached
> > > properly. Also checked that with lp loaded, this driver fails to load.
> > > Since the modification is only in the init, exit and probe
> > > section so that should not affect the working of the driver. After the
> > > driver loads and gets access to the parport and binds to it then these
> > > sections have done their part. After that the db9_open and other old
> > > functions will be responsible and since I have not touched those
> > > functions so theoretically there should not be any regressions.
> > > > 
> > > <snip>
> > > > > 
> > > > > +
> > > > > +	for (i = 0; i < DB9_MAX_PORTS; i++) {
> > > > > +		if (db9_cfg[i].nargs == 0 ||
> > > > > +		    db9_cfg[i].args[DB9_ARG_PARPORT] < 0)
> > > > > +			continue;
> > > > > +
> > > > > +		if (db9_cfg[i].nargs < 2) {
> > > > > +			pr_warn("db9.c: Device type must be specified.\n");
> > > > > +			return;
> > > > > +		}
> > > > > +
> > > > > +		if (db9_cfg[i].args[DB9_ARG_PARPORT] == pp->number)
> > > > > +			break;
> > > > > +	}
> > > > > +
> > > > > +	if (i == DB9_MAX_PORTS) {
> > > > > +		pr_debug("Not using parport%d.\n", pp->number);
> > > > > +		return;
> > > > > +	}
> > > > 
> > > > Why do we validate module options in attach() instead of how we did this
> > > > in module init function? By doing this here we losing the ability to
> > > > abort module loading when parameters are invalid.
> > > It is there in the module_init. The same check was added here also.
> > > we can remove the check for db9_cfg[i].nargs < 2 from here.
> > > But the other one will be required to check for the port to which we
> > > need to register.
> > > > 
> > > > > +
> > > <snip>
> > > > >  
> > > > > -	parport_put_port(pp);
> > > > > -	return db9;
> > > > > +	db9_base[i] = db9;
> > > > 
> > > > Instead of using static array maybe store db9 in pardevice's private
> > > > pointer? Given that we are using parport exclusively on detach we can
> > > > just get the first pardevice and get db9 from it.
> > > Well, yes... Actually I wanted to do this with the minimum possible code
> > > change so that any chance of regression can be avoided. This should not
> > > have any problem, but I am a bit hesitant as this can not be tested on
> > > real hardware. If you confirm then I will make it this way in v2.
> > > By any chance, do you have the hardware?
> > 
> > No, unfortunately I do not.
> > 
> > Since neither of us can test the change what is the benefit of doing the
> > conversion? What will be gained by doing it? Are there plans for parport
> > subsystem to remove the old style initialization?
> Yes, that is the plan. Well, if you are not comfortable with introducing
> attach and detach functions then this can be done in another way where
> there will be very minimum change in the code. But I will prefer to have
> attach and detach then it can take advantage of the hotplug feature.
> Adding Greg in To: list for his comments.

Converting to the "new" api is the end goal here, no need to keep the
old one around anymore.

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux