[flash_ctrl] Fix leaky permission

Permission control was criscrossing between rd/prog/erase/bk_erase
Fix so that each is qualified with the related request.
diff --git a/hw/ip/flash_ctrl/rtl/flash_mp.sv b/hw/ip/flash_ctrl/rtl/flash_mp.sv
index 75d0e9c..011dd49 100644
--- a/hw/ip/flash_ctrl/rtl/flash_mp.sv
+++ b/hw/ip/flash_ctrl/rtl/flash_mp.sv
@@ -88,15 +88,15 @@
     end
   end
 
-  assign final_rd_en = |rd_en;
-  assign final_prog_en = |prog_en;
-  assign final_pg_erase_en = |pg_erase_en;
-  assign final_bk_erase_en = |bk_erase_en;
+  assign final_rd_en = rd_i & |rd_en;
+  assign final_prog_en = prog_i & |prog_en;
+  assign final_pg_erase_en = pg_erase_i & |pg_erase_en;
+  assign final_bk_erase_en = bk_erase_i & |bk_erase_en;
 
-  assign rd_o = req_i & rd_i & final_rd_en;
-  assign prog_o = req_i & prog_i & final_prog_en;
-  assign pg_erase_o = req_i & pg_erase_i & final_pg_erase_en;
-  assign bk_erase_o = req_i & bk_erase_i & final_bk_erase_en;
+  assign rd_o = req_i & final_rd_en;
+  assign prog_o = req_i & final_prog_en;
+  assign pg_erase_o = req_i & final_pg_erase_en;
+  assign bk_erase_o = req_i & final_bk_erase_en;
   assign req_o = rd_o | prog_o | pg_erase_o | bk_erase_o;
 
   logic txn_err;