Index: uspace/drv/bus/isa/isa.c
===================================================================
--- uspace/drv/bus/isa/isa.c	(revision 646849b3f81f70632a7c09814cd3044cd829bde3)
+++ uspace/drv/bus/isa/isa.c	(revision 443695ef37d4e47d223158ab3b07f84e2d5df943)
@@ -76,4 +76,5 @@
 typedef struct {
 	fibril_mutex_t mutex;
+	bool pci_isa_bridge;
 	uint16_t pci_vendor_id;
 	uint16_t pci_device_id;
@@ -92,4 +93,5 @@
 	hw_resource_list_t hw_resources;
 	link_t bus_link;
+	isa_bus_t *bus;
 } isa_fun_t;
 
@@ -204,4 +206,18 @@
 }
 
+static errno_t isa_fun_get_flags(ddf_fun_t *fnode, hw_res_flags_t *rflags)
+{
+	isa_fun_t *fun = isa_fun(fnode);
+	hw_res_flags_t flags;
+
+	flags = 0;
+	if (fun->bus->pci_isa_bridge)
+		flags |= hwf_isa_bridge;
+
+	ddf_msg(LVL_NOTE, "isa_fun_get_flags: returning 0x%x", flags);
+	*rflags = flags;
+	return EOK;
+}
+
 static hw_res_ops_t isa_fun_hw_res_ops = {
 	.get_resource_list = isa_fun_get_resources,
@@ -211,4 +227,5 @@
 	.dma_channel_setup = isa_fun_setup_dma,
 	.dma_channel_remain = isa_fun_remain_dma,
+	.get_flags = isa_fun_get_flags
 };
 
@@ -264,4 +281,5 @@
 	fibril_mutex_initialize(&fun->mutex);
 	fun->hw_resources.resources = fun->resources;
+	fun->bus = isa;
 
 	fun->fnode = fnode;
@@ -743,8 +761,12 @@
 	if (rc != EOK) {
 		ddf_msg(LVL_NOTE, "Cannot read PCI config. Assuming ISA classic.");
+		isa->pci_isa_bridge = false;
 		isa->pci_vendor_id = 0;
 		isa->pci_device_id = 0;
 		isa->pci_class = BASE_CLASS_BRIDGE;
 		isa->pci_subclass = SUB_CLASS_BRIDGE_ISA;
+	} else {
+		ddf_msg(LVL_NOTE, "ISA Bridge");
+		isa->pci_isa_bridge = true;
 	}
 
