s390: use ccw_device_get_schid
Let the dasd driver and qdio use ccw_device_get_schid and get rid of other similar functions. Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
9368dac436
commit
287a093323
|
@ -226,9 +226,6 @@ extern int ccw_device_force_console(void);
|
||||||
|
|
||||||
int ccw_device_siosl(struct ccw_device *);
|
int ccw_device_siosl(struct ccw_device *);
|
||||||
|
|
||||||
// FIXME: these have to go
|
|
||||||
extern int _ccw_device_get_subchannel_number(struct ccw_device *);
|
|
||||||
|
|
||||||
extern void ccw_device_get_schid(struct ccw_device *, struct subchannel_id *);
|
extern void ccw_device_get_schid(struct ccw_device *, struct subchannel_id *);
|
||||||
|
|
||||||
extern void *ccw_device_get_chp_desc(struct ccw_device *, int);
|
extern void *ccw_device_get_chp_desc(struct ccw_device *, int);
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
#include <asm/compat.h>
|
#include <asm/compat.h>
|
||||||
#include <asm/ccwdev.h>
|
#include <asm/ccwdev.h>
|
||||||
|
#include <asm/schid.h>
|
||||||
#include <asm/cmb.h>
|
#include <asm/cmb.h>
|
||||||
#include <asm/uaccess.h>
|
#include <asm/uaccess.h>
|
||||||
|
|
||||||
|
@ -308,11 +309,12 @@ static int dasd_ioctl_information(struct dasd_block *block,
|
||||||
unsigned int cmd, void __user *argp)
|
unsigned int cmd, void __user *argp)
|
||||||
{
|
{
|
||||||
struct dasd_information2_t *dasd_info;
|
struct dasd_information2_t *dasd_info;
|
||||||
unsigned long flags;
|
struct subchannel_id sch_id;
|
||||||
int rc;
|
struct ccw_dev_id dev_id;
|
||||||
struct dasd_device *base;
|
struct dasd_device *base;
|
||||||
struct ccw_device *cdev;
|
struct ccw_device *cdev;
|
||||||
struct ccw_dev_id dev_id;
|
unsigned long flags;
|
||||||
|
int rc;
|
||||||
|
|
||||||
base = block->base;
|
base = block->base;
|
||||||
if (!base->discipline || !base->discipline->fill_info)
|
if (!base->discipline || !base->discipline->fill_info)
|
||||||
|
@ -330,9 +332,10 @@ static int dasd_ioctl_information(struct dasd_block *block,
|
||||||
|
|
||||||
cdev = base->cdev;
|
cdev = base->cdev;
|
||||||
ccw_device_get_id(cdev, &dev_id);
|
ccw_device_get_id(cdev, &dev_id);
|
||||||
|
ccw_device_get_schid(cdev, &sch_id);
|
||||||
|
|
||||||
dasd_info->devno = dev_id.devno;
|
dasd_info->devno = dev_id.devno;
|
||||||
dasd_info->schid = _ccw_device_get_subchannel_number(base->cdev);
|
dasd_info->schid = sch_id.sch_no;
|
||||||
dasd_info->cu_type = cdev->id.cu_type;
|
dasd_info->cu_type = cdev->id.cu_type;
|
||||||
dasd_info->cu_model = cdev->id.cu_model;
|
dasd_info->cu_model = cdev->id.cu_model;
|
||||||
dasd_info->dev_type = cdev->id.dev_type;
|
dasd_info->dev_type = cdev->id.dev_type;
|
||||||
|
|
|
@ -2036,16 +2036,6 @@ void ccw_driver_unregister(struct ccw_driver *cdriver)
|
||||||
driver_unregister(&cdriver->driver);
|
driver_unregister(&cdriver->driver);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Helper func for qdio. */
|
|
||||||
struct subchannel_id
|
|
||||||
ccw_device_get_subchannel_id(struct ccw_device *cdev)
|
|
||||||
{
|
|
||||||
struct subchannel *sch;
|
|
||||||
|
|
||||||
sch = to_subchannel(cdev->dev.parent);
|
|
||||||
return sch->schid;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void ccw_device_todo(struct work_struct *work)
|
static void ccw_device_todo(struct work_struct *work)
|
||||||
{
|
{
|
||||||
struct ccw_device_private *priv;
|
struct ccw_device_private *priv;
|
||||||
|
@ -2138,4 +2128,3 @@ EXPORT_SYMBOL(ccw_device_set_offline);
|
||||||
EXPORT_SYMBOL(ccw_driver_register);
|
EXPORT_SYMBOL(ccw_driver_register);
|
||||||
EXPORT_SYMBOL(ccw_driver_unregister);
|
EXPORT_SYMBOL(ccw_driver_unregister);
|
||||||
EXPORT_SYMBOL(get_ccwdev_by_busid);
|
EXPORT_SYMBOL(get_ccwdev_by_busid);
|
||||||
EXPORT_SYMBOL_GPL(ccw_device_get_subchannel_id);
|
|
||||||
|
|
|
@ -142,9 +142,7 @@ int ccw_device_notify(struct ccw_device *, int);
|
||||||
void ccw_device_set_disconnected(struct ccw_device *cdev);
|
void ccw_device_set_disconnected(struct ccw_device *cdev);
|
||||||
void ccw_device_set_notoper(struct ccw_device *cdev);
|
void ccw_device_set_notoper(struct ccw_device *cdev);
|
||||||
|
|
||||||
/* qdio needs this. */
|
|
||||||
void ccw_device_set_timeout(struct ccw_device *, int);
|
void ccw_device_set_timeout(struct ccw_device *, int);
|
||||||
extern struct subchannel_id ccw_device_get_subchannel_id(struct ccw_device *);
|
|
||||||
|
|
||||||
/* Channel measurement facility related */
|
/* Channel measurement facility related */
|
||||||
void retry_set_schib(struct ccw_device *cdev);
|
void retry_set_schib(struct ccw_device *cdev);
|
||||||
|
|
|
@ -755,14 +755,6 @@ int ccw_device_tm_intrg(struct ccw_device *cdev)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(ccw_device_tm_intrg);
|
EXPORT_SYMBOL(ccw_device_tm_intrg);
|
||||||
|
|
||||||
// FIXME: these have to go:
|
|
||||||
|
|
||||||
int
|
|
||||||
_ccw_device_get_subchannel_number(struct ccw_device *cdev)
|
|
||||||
{
|
|
||||||
return cdev->private->schid.sch_no;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ccw_device_get_schid - obtain a subchannel id
|
* ccw_device_get_schid - obtain a subchannel id
|
||||||
* @cdev: device to obtain the id for
|
* @cdev: device to obtain the id for
|
||||||
|
@ -789,5 +781,4 @@ EXPORT_SYMBOL(ccw_device_start_timeout_key);
|
||||||
EXPORT_SYMBOL(ccw_device_start_key);
|
EXPORT_SYMBOL(ccw_device_start_key);
|
||||||
EXPORT_SYMBOL(ccw_device_get_ciw);
|
EXPORT_SYMBOL(ccw_device_get_ciw);
|
||||||
EXPORT_SYMBOL(ccw_device_get_path_mask);
|
EXPORT_SYMBOL(ccw_device_get_path_mask);
|
||||||
EXPORT_SYMBOL(_ccw_device_get_subchannel_number);
|
|
||||||
EXPORT_SYMBOL_GPL(ccw_device_get_chp_desc);
|
EXPORT_SYMBOL_GPL(ccw_device_get_chp_desc);
|
||||||
|
|
|
@ -432,9 +432,8 @@ int qdio_setup_irq(struct qdio_initialize *init_data)
|
||||||
irq_ptr->int_parm = init_data->int_parm;
|
irq_ptr->int_parm = init_data->int_parm;
|
||||||
irq_ptr->nr_input_qs = init_data->no_input_qs;
|
irq_ptr->nr_input_qs = init_data->no_input_qs;
|
||||||
irq_ptr->nr_output_qs = init_data->no_output_qs;
|
irq_ptr->nr_output_qs = init_data->no_output_qs;
|
||||||
|
|
||||||
irq_ptr->schid = ccw_device_get_subchannel_id(init_data->cdev);
|
|
||||||
irq_ptr->cdev = init_data->cdev;
|
irq_ptr->cdev = init_data->cdev;
|
||||||
|
ccw_device_get_schid(irq_ptr->cdev, &irq_ptr->schid);
|
||||||
setup_queues(irq_ptr, init_data);
|
setup_queues(irq_ptr, init_data);
|
||||||
|
|
||||||
setup_qib(irq_ptr, init_data);
|
setup_qib(irq_ptr, init_data);
|
||||||
|
|
Loading…
Reference in New Issue