This is a subject which has plagued family researchers for years, and it is one that frankly has also bewildered me. However, knowing that the Cannons originated in North Carolina and eventually ended up in Lincoln County, Tennessee supplies us with enough information to make an intelligent guess at who his father was. In both the 1820 and 1830 Census of Lincoln County, Tennessee, it appears that William Cannon was the only Cannon with a household which included a young male corresponding to the appropriate age of Johnson Riley Cannon. Moreover, in the 1850 Census of Lincoln County, Tennessee, we find a "William Cannon" age 70 living with "Laura" 19, and "Christianna" 16 (This age corresponds to the person of the same name in the 1820/1830 Censuses. He was also living in close proximity to someone named "Elsworth Cannon" age 37. Our Riley was also living with his wife and children in Lincoln County in the 1850 Census.
This also corresponds to information from four different family genealogies posted at the FamilySearch website. One of the entries identified Laura and Christianna as children of this William. Another of the entries identified Johnson R. as his son, and the same one identified a Charles Cannon (1800) as an older brother of his. This would make sense of the naming of our Riley and Nancy Carter Cannon's sons: Charles (after his big brother), William (after his father), Eli (after Nancy's father), and John (after Johnson himself). Three of these genealogies list a Martin/Marton/Martina BARTON as his wife, while the remaining entry lists Nancy Little as his wife. Finally, we do find a William Cannon in the 1800 Census of Salisbury, Guilford County, North Carolina who corresponds to the age of our William. Hence, I believe it is safe to conclude that this carries our Cannon ancestry back one more generation to the 18th Century.