Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9b27adbc authored by Jens Taprogge's avatar Jens Taprogge Committed by Greg Kroah-Hartman
Browse files

Staging: ipack/bridges/tpci200: Remove side effects of tpci200_{request,free}_irq.



Use the __tpci200_{set,clear}_mask routines to access control
register.  Do not overwrite flags unrelated to interrupt handling.

Signed-off-by: default avatarJens Taprogge <jens.taprogge@taprogge.org>
Signed-off-by: default avatarSamuel Iglesias Gonsalvez <siglesias@igalia.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 0118681b
Loading
Loading
Loading
Loading
+6 −25
Original line number Diff line number Diff line
@@ -278,37 +278,18 @@ static int tpci200_register(struct tpci200_board *tpci200)
static int __tpci200_request_irq(struct tpci200_board *tpci200,
				 struct ipack_device *dev)
{
	unsigned short slot_ctrl;

	/* Set the default parameters of the slot
	 * INT0 enabled, level sensitive
	 * INT1 enabled, level sensitive
	 * error interrupt disabled
	 * timeout interrupt disabled
	 * recover time disabled
	 * clock rate 8 MHz
	 */
	slot_ctrl = TPCI200_INT0_EN | TPCI200_INT1_EN;
	writew(slot_ctrl, &tpci200->info->interface_regs->control[dev->slot]);

	__tpci200_set_mask(
			&tpci200->info->interface_regs->control[dev->slot],
			TPCI200_INT0_EN | TPCI200_INT1_EN);
	return 0;
}

static void __tpci200_free_irq(struct tpci200_board *tpci200,
			       struct ipack_device *dev)
{
	unsigned short slot_ctrl;

	/* Set the default parameters of the slot
	 * INT0 disabled, level sensitive
	 * INT1 disabled, level sensitive
	 * error interrupt disabled
	 * timeout interrupt disabled
	 * recover time disabled
	 * clock rate 8 MHz
	 */
	slot_ctrl = 0;
	writew(slot_ctrl, &tpci200->info->interface_regs->control[dev->slot]);
	__tpci200_clear_mask(
			&tpci200->info->interface_regs->control[dev->slot],
			TPCI200_INT0_EN | TPCI200_INT1_EN);
}

static int tpci200_free_irq(struct ipack_device *dev)