Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 23544
b: refs/heads/master
c: e51c01b
h: refs/heads/master
v: v3
  • Loading branch information
Bjorn Helgaas authored and Linus Torvalds committed Mar 25, 2006
1 parent 9730f10 commit 0ac0358
Show file tree
Hide file tree
Showing 6 changed files with 12 additions and 47 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 5930860296ca438071d3824bf7306ad0dfd33fc1
refs/heads/master: e51c01b08474ea454a965a937fff0407ab6714c7
9 changes: 2 additions & 7 deletions trunk/drivers/dio/dio-driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,22 +71,17 @@ static int dio_device_probe(struct device *dev)
* @drv: the driver structure to register
*
* Adds the driver structure to the list of registered drivers
* Returns the number of DIO devices which were claimed by the driver
* during registration. The driver remains registered even if the
* return value is zero.
* Returns zero or a negative error value.
*/

int dio_register_driver(struct dio_driver *drv)
{
int count = 0;

/* initialize common driver fields */
drv->driver.name = drv->name;
drv->driver.bus = &dio_bus_type;

/* register with core */
count = driver_register(&drv->driver);
return count ? count : 1;
return driver_register(&drv->driver);
}


Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/net/hplance.c
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ static int hplance_close(struct net_device *dev)

int __init hplance_init_module(void)
{
return dio_module_init(&hplance_driver);
return dio_register_driver(&hplance_driver);
}

void __exit hplance_cleanup_module(void)
Expand Down
10 changes: 5 additions & 5 deletions trunk/drivers/serial/8250_hp300.c
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ static struct dio_driver hpdca_driver = {

#endif

static unsigned int num_ports;

extern int hp300_uart_scode;

/* Offset to UART registers from base of DCA */
Expand Down Expand Up @@ -199,14 +201,15 @@ static int __devinit hpdca_init_one(struct dio_dev *d,
out_8(d->resource.start + DIO_VIRADDRBASE + DCA_ID, 0xff);
udelay(100);

num_ports++;

return 0;
}
#endif

static int __init hp300_8250_init(void)
{
static int called = 0;
int num_ports;
#ifdef CONFIG_HPAPCI
int line;
unsigned long base;
Expand All @@ -221,11 +224,8 @@ static int __init hp300_8250_init(void)
if (!MACH_IS_HP300)
return -ENODEV;

num_ports = 0;

#ifdef CONFIG_HPDCA
if (dio_module_init(&hpdca_driver) == 0)
num_ports++;
dio_register_driver(&hpdca_driver);
#endif
#ifdef CONFIG_HPAPCI
if (hp300_model < HP_400) {
Expand Down
4 changes: 3 additions & 1 deletion trunk/drivers/video/hpfb.c
Original file line number Diff line number Diff line change
Expand Up @@ -386,7 +386,9 @@ int __init hpfb_init(void)
if (fb_get_options("hpfb", NULL))
return -ENODEV;

dio_module_init(&hpfb_driver);
err = dio_register_driver(&hpfb_driver);
if (err)
return err;

fs = get_fs();
set_fs(KERNEL_DS);
Expand Down
32 changes: 0 additions & 32 deletions trunk/include/linux/dio.h
Original file line number Diff line number Diff line change
Expand Up @@ -276,37 +276,5 @@ static inline void dio_set_drvdata (struct dio_dev *d, void *data)
dev_set_drvdata(&d->dev, data);
}

/*
* A helper function which helps ensure correct dio_driver
* setup and cleanup for commonly-encountered hotplug/modular cases
*
* This MUST stay in a header, as it checks for -DMODULE
*/
static inline int dio_module_init(struct dio_driver *drv)
{
int rc = dio_register_driver(drv);

if (rc > 0)
return 0;

/* iff CONFIG_HOTPLUG and built into kernel, we should
* leave the driver around for future hotplug events.
* For the module case, a hotplug daemon of some sort
* should load a module in response to an insert event. */
#if defined(CONFIG_HOTPLUG) && !defined(MODULE)
if (rc == 0)
return 0;
#else
if (rc == 0)
rc = -ENODEV;
#endif

/* if we get here, we need to clean up DIO driver instance
* and return some sort of error */
dio_unregister_driver(drv);

return rc;
}

#endif /* __KERNEL__ */
#endif /* ndef _LINUX_DIO_H */

0 comments on commit 0ac0358

Please sign in to comment.