Farsi is the 'Arabized' equivalent of Parsi. Since there is no /p/ sound in Arabic language, the Arabs replaced /p/ of Parsi with /f/ after they invaded Iran. Parsi refers to Persia and means 'of Persia' or 'of Iran', the English version of which is Persian, while 'Farsi' conveys no message about the background of Iran (known as Persia in history). In this regard, 'Persian' is equal to 'Iranian'.
Today, the Iranians use the term Farsi for their language only. The English equivalent of 'Farsi' is 'Persian' (the language of Persia). Persian can be used for all Iran-related items and has a broader meaning while Farsi fails to do so.
In short, Persian language is the official language in Iran. The Iranians call this language 'Farsi'.
I hope this definition is clear enough and is a good answer to 'Persian or Farsi?' discussions.