diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/serial/serial.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/drivers/serial/serial.c b/drivers/serial/serial.c index acb74af963b..5bbf3aeb445 100644 --- a/drivers/serial/serial.c +++ b/drivers/serial/serial.c @@ -97,12 +97,20 @@ serial_initfunc(sh_serial_initialize); void serial_register(struct serial_device *dev) { #ifdef CONFIG_NEEDS_MANUAL_RELOC - dev->start += gd->reloc_off; - dev->setbrg += gd->reloc_off; - dev->getc += gd->reloc_off; - dev->tstc += gd->reloc_off; - dev->putc += gd->reloc_off; - dev->puts += gd->reloc_off; + if (dev->start) + dev->start += gd->reloc_off; + if (dev->stop) + dev->stop += gd->reloc_off; + if (dev->setbrg) + dev->setbrg += gd->reloc_off; + if (dev->getc) + dev->getc += gd->reloc_off; + if (dev->tstc) + dev->tstc += gd->reloc_off; + if (dev->putc) + dev->putc += gd->reloc_off; + if (dev->puts) + dev->puts += gd->reloc_off; #endif dev->next = serial_devices; |