(unsigned long) pcct_tbl + sizeof(struct acpi_table_pcct));
    
        for (i = 0; i < count; i++) {
 ++             struct acpi_generic_address *db_reg;
 ++             struct acpi_pcct_hw_reduced *pcct_ss;
                pcc_mbox_channels[i].con_priv = pcct_entry;
-               pcct_entry = (struct acpi_subtable_header *)
-                       ((unsigned long) pcct_entry + pcct_entry->length);
 ++ 
 ++             /* If doorbell is in system memory cache the virt address */
 ++             pcct_ss = (struct acpi_pcct_hw_reduced *)pcct_entry;
 ++             db_reg = &pcct_ss->doorbell_register;
 ++             if (db_reg->space_id == ACPI_ADR_SPACE_SYSTEM_MEMORY)
 ++                     pcc_doorbell_vaddr[i] = acpi_os_ioremap(db_reg->address,
 ++                                                     db_reg->bit_width/8);
+               pcct_entry = (struct acpi_subtable_header *)
+                       ((unsigned long) pcct_entry + pcct_entry->length);
        }
    
        pcc_mbox_ctrl.num_chans = count;