/* This differs from __parport_ip32_frob_control() in that it only allows to change the value of DCR_STROBE, DCR_AUTOFD, DCR_nINIT, and DCR_SELECT.  */
static unsigned char parport_ip32_frob_control(struct parport *p, unsigned char mask, unsigned char val)
/* This differs from __parport_ip32_frob_control() in that it only allows to change the value of DCR_STROBE, DCR_AUTOFD, DCR_nINIT, and DCR_SELECT.  */
static unsigned char parport_ip32_frob_control(struct parport *p, unsigned char mask, unsigned char val)
{
	const unsigned int wm =
		DCR_STROBE | DCR_AUTOFD | DCR_nINIT | DCR_SELECT;
	CHECK_EXTRA_BITS(p, mask, wm);
	CHECK_EXTRA_BITS(p, val, wm);
	__parport_ip32_frob_control(p, mask & wm, val & wm);
	return parport_ip32_read_control(p);
}