diff options
Diffstat (limited to 'drivers/firmware')
-rw-r--r-- | drivers/firmware/edd.c | 7 | ||||
-rw-r--r-- | drivers/firmware/pcdp.c | 6 |
2 files changed, 9 insertions, 4 deletions
diff --git a/drivers/firmware/edd.c b/drivers/firmware/edd.c index 15232271d84..0fb730ee1da 100644 --- a/drivers/firmware/edd.c +++ b/drivers/firmware/edd.c @@ -669,7 +669,7 @@ edd_get_pci_dev(struct edd_device *edev) struct edd_info *info = edd_dev_get_info(edev); if (edd_dev_is_type(edev, "PCI")) { - return pci_find_slot(info->params.interface_path.pci.bus, + return pci_get_bus_and_slot(info->params.interface_path.pci.bus, PCI_DEVFN(info->params.interface_path.pci.slot, info->params.interface_path.pci. function)); @@ -682,9 +682,12 @@ edd_create_symlink_to_pcidev(struct edd_device *edev) { struct pci_dev *pci_dev = edd_get_pci_dev(edev); + int ret; if (!pci_dev) return 1; - return sysfs_create_link(&edev->kobj,&pci_dev->dev.kobj,"pci_dev"); + ret = sysfs_create_link(&edev->kobj,&pci_dev->dev.kobj,"pci_dev"); + pci_dev_put(pci_dev); + return ret; } static inline void diff --git a/drivers/firmware/pcdp.c b/drivers/firmware/pcdp.c index 2b4b76e8bd7..58e9f8e457f 100644 --- a/drivers/firmware/pcdp.c +++ b/drivers/firmware/pcdp.c @@ -15,6 +15,7 @@ #include <linux/console.h> #include <linux/efi.h> #include <linux/serial.h> +#include <linux/serial_8250.h> #include <asm/vga.h> #include "pcdp.h" @@ -27,7 +28,7 @@ setup_serial_console(struct pcdp_uart *uart) char parity; mmio = (uart->addr.space_id == ACPI_ADR_SPACE_SYSTEM_MEMORY); - p += sprintf(p, "console=uart,%s,0x%lx", + p += sprintf(p, "uart8250,%s,0x%lx", mmio ? "mmio" : "io", uart->addr.address); if (uart->baud) { p += sprintf(p, ",%lu", uart->baud); @@ -41,7 +42,8 @@ setup_serial_console(struct pcdp_uart *uart) } } - return early_serial_console_init(options); + add_preferred_console("uart", 8250, &options[9]); + return setup_early_serial8250_console(options); #else return -ENODEV; #endif |