Philipp Kern: Happy Meal Ethernet
Probably it’s very old, but hey I had a good laugh...
Actually, it is a Sun engineer joke. The 10 Mbps predecessor was a chip called the “Big MAC Ethernet” in this case, it was a mere pun, since MAC stands for Media Access Control, i.e. the Ethernet data-link layer. When they designed the 10/100 Mbps chip later on, they decided to turn the pun into a full-out joke, and they called it the “Happy Meal Ethernet.”
528 static void happy_meal_tcvr_write(struct happy_meal *hp,
529 void __iomem *tregs, int reg,
530 unsigned short value)
531
532 int tries = TCVR_WRITE_TRIES;
533
534 ASD((“happy_meal_tcvr_write: reg=0x%02x value=%04x\n”, reg, value));
535
536 /* Welcome to Sun Microsystems, can I take your order please? */
537 if (!(hp->happy_flags & HFLAG_FENABLE))
538 happy_meal_bb_write(hp, tregs, reg, value);
539 return;
540
541
542 /* Would you like fries with that? */
543 hme_write32(hp, tregs + TCVR_FRAME,
544 (FRAME_WRITE (hp->paddr << 23)
545 ((reg & 0xff) << 18) (value & 0xffff)));
546 while (!(hme_read32(hp, tregs + TCVR_FRAME) & 0x10000) && --tries)
547 udelay(20);
548
549 /* Anything else? */
550 if (!tries)
551 printk(KERN_ERR “happy meal: Aieee, transceiver MIF write bolixed\n”);
552
553 /* Fifty-two cents is your change, have a nice day. */
554
[Taken from drivers/net/sunhme.c in linux-2.6]