Ben, can you check the error handling in init_pmz() when pmz_register() register fails? It tries to iounmap ->control_reg, but I dont see how that can happen. Also, pmz_init_port() returns always 0, so pmz_probe() doesnt need to check for non-null.