We investigate the problem of precoding optimization in an Amplify-and-forward (AF) Multipleinput-multiple-output (MIMO) relay system. Most reported works on this problem focus chiefly on the design of relay precoder without simultaneously optimizing the direct link. In this paper, we propose a method for joint source/relay precoder design, taking both direct and relay links into account. Our design is based on maximizing the Mutual information (MI) under limited transmission power constraints at the source and relay, respectively. We first formulate a constrained optimization problem before relaxing the original cost function for tractability and derive a MI lower bound which asymptotically approaches the exact expression of MI in an iterative fashion. In contrast to previous strategies, we then prove that the optimal structure of the source and relay precoders jointly convert the MIMO relay channel into a bank of Single-input-singleoutput (SISO) relay channels without having to assume a beamforming structure to simplify the derivation. Specifically, the linear precoding design problem degenerates into power loading among multiple SISO relay channels. Applying standard Lagrange technique results in a scalar convex optimization which can be readily solved by iterative water filling. Numerical examples demonstrate that the proposed scheme, either exploiting partial or full Channel state information (CSI), significantly outperforms the existing methods.