When Kayin gave his korbon of flax to Hashem, Hashem berated him sharply. Kayin became jealous of Hevel whose korbon had been accepted and he killed him. After he was punished, he did teshuva and Hashem forgave him. Then Adam saw what had happened and he sang ‘Mizmor Shir L’yom Hashabbos” why did he do it now? And why did Hashem berate Kayin so sharply for giving only flax?
To understand all this, you have to understand why Adam ate from the Eitz Hadas. Everything in the world belonged to Adam. Was it really just that he couldn’t resist the only thing that was forbidden to him? No. Adam was on a much higher level than that. Adam felt inadequate. Hashem had created him and gave him the entire world. And Adam had nothing to give in return. The nachash told him that by eating from the Eitz Hadas, he’d be an equal with Hashem. And this is what Adam wanted. To be able to give back to Hashem. Which is why he ate from it.
When Kayin and Hevel brought korbonot to Hashem, Kayin gave a small korbon, and Hevel brought an ostentatious one. Hevel brought a huge gorgeous gift to show how little he was compared to Hashem. But Kayin’s gift was so small that it was more like a gesture. You give a gesture to someone who is your equal. And that was why Hashem was so sharp with him-for putting himself on equal terms with Hashem. That was the significance of Adam’s sin-he too thought he could be on equal ground with Hashem. And that’s why when he saw that Hashem had accepted Kayin’s teshuva, he sang Shir.