diff options
Diffstat (limited to 'drivers/s390/char')
| -rw-r--r-- | drivers/s390/char/con3215.c | 8 | ||||
| -rw-r--r-- | drivers/s390/char/raw3270.c | 2 | ||||
| -rw-r--r-- | drivers/s390/char/sclp.c | 4 | ||||
| -rw-r--r-- | drivers/s390/char/tape_34xx.c | 2 | ||||
| -rw-r--r-- | drivers/s390/char/tape_3590.c | 2 | ||||
| -rw-r--r-- | drivers/s390/char/vmur.c | 2 | 
6 files changed, 12 insertions, 8 deletions
diff --git a/drivers/s390/char/con3215.c b/drivers/s390/char/con3215.c index 40084501c31..33b7141a182 100644 --- a/drivers/s390/char/con3215.c +++ b/drivers/s390/char/con3215.c @@ -44,6 +44,7 @@  #define RAW3215_NR_CCWS	    3  #define RAW3215_TIMEOUT	    HZ/10     /* time for delayed output */ +#define RAW3215_FIXED	    1	      /* 3215 console device is not be freed */  #define RAW3215_WORKING	    4	      /* set if a request is being worked on */  #define RAW3215_THROTTLED   8	      /* set if reading is disabled */  #define RAW3215_STOPPED	    16	      /* set if writing is disabled */ @@ -630,7 +631,8 @@ static void raw3215_shutdown(struct raw3215_info *raw)  	DECLARE_WAITQUEUE(wait, current);  	unsigned long flags; -	if (!(raw->port.flags & ASYNC_INITIALIZED)) +	if (!(raw->port.flags & ASYNC_INITIALIZED) || +	    (raw->flags & RAW3215_FIXED))  		return;  	/* Wait for outstanding requests, then free irq */  	spin_lock_irqsave(get_ccwdev_lock(raw->cdev), flags); @@ -805,7 +807,7 @@ static struct ccw_driver raw3215_ccw_driver = {  	.freeze		= &raw3215_pm_stop,  	.thaw		= &raw3215_pm_start,  	.restore	= &raw3215_pm_start, -	.int_class	= IOINT_C15, +	.int_class	= IRQIO_C15,  };  #ifdef CONFIG_TN3215_CONSOLE @@ -927,6 +929,8 @@ static int __init con3215_init(void)  	dev_set_drvdata(&cdev->dev, raw);  	cdev->handler = raw3215_irq; +	raw->flags |= RAW3215_FIXED; +  	/* Request the console irq */  	if (raw3215_startup(raw) != 0) {  		raw3215_free_info(raw); diff --git a/drivers/s390/char/raw3270.c b/drivers/s390/char/raw3270.c index f3b8bb84faf..9a6c140c5f0 100644 --- a/drivers/s390/char/raw3270.c +++ b/drivers/s390/char/raw3270.c @@ -1396,7 +1396,7 @@ static struct ccw_driver raw3270_ccw_driver = {  	.freeze		= &raw3270_pm_stop,  	.thaw		= &raw3270_pm_start,  	.restore	= &raw3270_pm_start, -	.int_class	= IOINT_C70, +	.int_class	= IRQIO_C70,  };  static int diff --git a/drivers/s390/char/sclp.c b/drivers/s390/char/sclp.c index 4fa21f7e230..12c16a65dd2 100644 --- a/drivers/s390/char/sclp.c +++ b/drivers/s390/char/sclp.c @@ -400,7 +400,7 @@ static void sclp_interrupt_handler(struct ext_code ext_code,  	u32 finished_sccb;  	u32 evbuf_pending; -	kstat_cpu(smp_processor_id()).irqs[EXTINT_SCP]++; +	inc_irq_stat(IRQEXT_SCP);  	spin_lock(&sclp_lock);  	finished_sccb = param32 & 0xfffffff8;  	evbuf_pending = param32 & 0x3; @@ -813,7 +813,7 @@ static void sclp_check_handler(struct ext_code ext_code,  {  	u32 finished_sccb; -	kstat_cpu(smp_processor_id()).irqs[EXTINT_SCP]++; +	inc_irq_stat(IRQEXT_SCP);  	finished_sccb = param32 & 0xfffffff8;  	/* Is this the interrupt we are waiting for? */  	if (finished_sccb == 0) diff --git a/drivers/s390/char/tape_34xx.c b/drivers/s390/char/tape_34xx.c index 6ae929c024a..9aa79702b37 100644 --- a/drivers/s390/char/tape_34xx.c +++ b/drivers/s390/char/tape_34xx.c @@ -1193,7 +1193,7 @@ static struct ccw_driver tape_34xx_driver = {  	.set_online = tape_34xx_online,  	.set_offline = tape_generic_offline,  	.freeze = tape_generic_pm_suspend, -	.int_class = IOINT_TAP, +	.int_class = IRQIO_TAP,  };  static int diff --git a/drivers/s390/char/tape_3590.c b/drivers/s390/char/tape_3590.c index 1b0eb49f739..327cb19ad0b 100644 --- a/drivers/s390/char/tape_3590.c +++ b/drivers/s390/char/tape_3590.c @@ -1656,7 +1656,7 @@ static struct ccw_driver tape_3590_driver = {  	.set_offline = tape_generic_offline,  	.set_online = tape_3590_online,  	.freeze = tape_generic_pm_suspend, -	.int_class = IOINT_TAP, +	.int_class = IRQIO_TAP,  };  /* diff --git a/drivers/s390/char/vmur.c b/drivers/s390/char/vmur.c index 73bef0bd394..483f72ba030 100644 --- a/drivers/s390/char/vmur.c +++ b/drivers/s390/char/vmur.c @@ -74,7 +74,7 @@ static struct ccw_driver ur_driver = {  	.set_online	= ur_set_online,  	.set_offline	= ur_set_offline,  	.freeze		= ur_pm_suspend, -	.int_class	= IOINT_VMR, +	.int_class	= IRQIO_VMR,  };  static DEFINE_MUTEX(vmur_mutex);  |