The singer told the crowd about his medical condition as he finished his set at British Summer Time Hyde Park.
He said he had found a donor and would perform three more shows before the operation in September, saying: "I'm all good, I'm all good."
Fans greeted the news with a loud, supportive cheer, applauding the 69-year-old singer as he left the stage.
He had just finished playing the song Superstition when he told the crowd he wanted to prevent "rumours" spreading about his health.