Pass the device_t into atkbd_{probe,attach}_unit and get the
controller unit and keyboard unit from there. It will be needed for other things in the future as well...
This commit is contained in:
parent
f0143dac9a
commit
0897438a74
@ -66,7 +66,7 @@ static timeout_t atkbd_timeout;
|
||||
static void atkbd_shutdown_final(void *v);
|
||||
|
||||
int
|
||||
atkbd_probe_unit(int unit, int ctlr, int irq, int flags)
|
||||
atkbd_probe_unit(device_t dev, int irq, int flags)
|
||||
{
|
||||
keyboard_switch_t *sw;
|
||||
int args[2];
|
||||
@ -76,27 +76,29 @@ atkbd_probe_unit(int unit, int ctlr, int irq, int flags)
|
||||
if (sw == NULL)
|
||||
return ENXIO;
|
||||
|
||||
args[0] = ctlr;
|
||||
args[0] = device_get_unit(device_get_parent(dev));
|
||||
args[1] = irq;
|
||||
error = (*sw->probe)(unit, args, flags);
|
||||
error = (*sw->probe)(device_get_unit(dev), args, flags);
|
||||
if (error)
|
||||
return error;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
atkbd_attach_unit(int unit, keyboard_t **kbd, int ctlr, int irq, int flags)
|
||||
atkbd_attach_unit(device_t dev, keyboard_t **kbd, int irq, int flags)
|
||||
{
|
||||
keyboard_switch_t *sw;
|
||||
int args[2];
|
||||
int error;
|
||||
int unit;
|
||||
|
||||
sw = kbd_get_switch(ATKBD_DRIVER_NAME);
|
||||
if (sw == NULL)
|
||||
return ENXIO;
|
||||
|
||||
/* reset, initialize and enable the device */
|
||||
args[0] = ctlr;
|
||||
unit = device_get_unit(dev);
|
||||
args[0] = device_get_unit(device_get_parent(dev));
|
||||
args[1] = irq;
|
||||
*kbd = NULL;
|
||||
error = (*sw->probe)(unit, args, flags);
|
||||
|
@ -104,9 +104,7 @@ atkbdprobe(device_t dev)
|
||||
bus_release_resource(dev, SYS_RES_IRQ, rid, res);
|
||||
|
||||
/* probe the device */
|
||||
return atkbd_probe_unit(device_get_unit(dev),
|
||||
device_get_unit(device_get_parent(dev)),
|
||||
irq, flags);
|
||||
return atkbd_probe_unit(dev, irq, flags);
|
||||
}
|
||||
|
||||
static int
|
||||
@ -124,9 +122,7 @@ atkbdattach(device_t dev)
|
||||
rid = KBDC_RID_KBD;
|
||||
irq = bus_get_resource_start(dev, SYS_RES_IRQ, rid);
|
||||
flags = device_get_flags(dev);
|
||||
error = atkbd_attach_unit(device_get_unit(dev), &kbd,
|
||||
device_get_unit(device_get_parent(dev)),
|
||||
irq, flags);
|
||||
error = atkbd_attach_unit(dev, &kbd, irq, flags);
|
||||
if (error)
|
||||
return error;
|
||||
|
||||
|
@ -39,9 +39,8 @@
|
||||
|
||||
#ifdef _KERNEL
|
||||
|
||||
int atkbd_probe_unit(int unit, int ctlr, int irq, int flags);
|
||||
int atkbd_attach_unit(int unit, keyboard_t **kbd,
|
||||
int ctlr, int irq, int flags);
|
||||
int atkbd_probe_unit(device_t dev, int irq, int flags);
|
||||
int atkbd_attach_unit(device_t dev, keyboard_t **kbd, int irq, int flags);
|
||||
|
||||
#endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user