siliconmotion(4)

πŸ“¦
version 1.7.10 Β· 2 versions
, in debian trixie, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0

πŸ’– siliconmotion β€” the Silicon Motion video driver, explained by your fav Unix bestie πŸ’–

okay so this is a page from the Kernel Interfaces Manual, and the star of the show is siliconmotion(4) β€” yes, a manual page, section 4, we love a driver doc moment. grab a snack, we're going in πŸ“


✨ NAME ✨

siliconmotion β€” the Silicon Motion video driver, bestie. that's the whole vibe.


πŸŽ€ SYNOPSIS πŸŽ€

this is how you actually summon it inside your config file:

Section "Device"
  Identifier "devname"
  Driver "siliconmotion"
  ...
  [ Option "optionname" ["optionvalue"]]
EndSection

like, that's it. that's the whole ritual. Identifier "devname", Driver "siliconmotion", and then whatever options your heart desires. πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

so siliconmotion is an Xorg driver for video cards built on Silicon Motion chips. and listen β€” this driver is fully accelerated, no cap. it supports these framebuffer depths:

  • 8
  • 16
  • 24

and about visuals? all visual types are supported at depth 8, and TrueColor visuals are supported for the other depths. periodt. πŸ’œ


πŸ‘‘ SUPPORTED HARDWARE πŸ‘‘

the siliconmotion driver handles PCI and AGP video cards based on these Silicon Motion chips, and honestly, look at this lineup:

  • Lynx β€” SM910
  • LynxE β€” SM810
  • Lynx3D β€” SM820
  • LynxEM β€” SM710
  • LynxEM+ β€” SM712
  • Lynx3DM β€” SM720
  • Cougar3DR β€” SM731
  • MSOC β€” SM501,SM502

that's the whole roster, every single one. 🌈


🌸 CONFIGURATION DETAILS 🌸

first things first: for the general config lore, go read xorg.conf(5). this section? it only covers what's specific to this driver, iykyk.

also super important: when the server parses option names, it does not care about case or whitespace. so "lynxe" and "LynxE" are literally equivalent. slay, honestly.

Multihead mode configuration goes through the RandR1.2 interface β€” peep xorg.conf(5) and xrandr(1) for the full tea. and heads up: hardware accelerated screen rotation and framebuffer resizing are only supported with the EXA acceleration architecture (check the AccelMethod option down below πŸ‘‡).

the driver auto-detects the chipset type all by itself, but if you're feeling main character energy, you can optionally specify one of these ChipSet names in the "Device" section of the config file, and it will override the auto-detection:

"lynx", "lynxe", "lynx3d", "lynxem", "lynxem+", "lynx3dm",
"cougar3dr", "msoc".

πŸ–±οΈ the Cursor Options

  • Option "HWCursor" "boolean" β€” turn the hardware cursor on or off. Default: on.
  • Option "SWCursor" "boolean" β€” the inverse of "HWCursor", literally just the opposite girlie. Default: off.

🌟 the display Options

  • Option "VideoKey" "integer" β€” sets the video color key. Default: a little off full blue.
  • Option "ByteSwap" "boolean" β€” turns on byte swapping for capturing using the SMI demo board. Default: off.
  • Option "Interlaced" "boolean" β€” turns on interlaced video capturing. Default: off.
  • Option "UseBIOS" "boolean" β€” uses the BIOS to set the modes. this one's for custom panel timings. Default: off for SM72x and SM5xx, otherwise on.
  • Option "Dualhead" "boolean" β€” enables dualhead mode. real talk though: currently not all chips are supported, and hardware video overlay (XV) support may have some limitations. Default: off.
  • Option "PanelSize" "widthxheight" β€” overrides the LCD panel dimension autodetection. you're the boss now. πŸ’…
  • Option "UseFBDev" "boolean" β€” doesn't actually program the hardware mode registers, just leaves them as set by the operating system. Only available on MSOC chips. Default: off.
  • Option "CSCVideo" "boolean" β€” CSC video uses color space conversion to render video directly to the framebuffer, without using an overlay. Only available on MSOC chips. Default: on.

🧠 the video memory Options

  • Option "mclk" "integer" β€” sets the memory clock. ⚠️ you MUST specify the units. for example, 50Mhz is the same as 50000Khz or 50000000Hz. on MSOC chips this is the main clock source for all functional blocks β€” the 2D engine, GPIO, Video Engine, and DMA Engine. on MSOC chips this option is only used for debugging purposes. Default: probe the memory clock value, and use it at server start.
  • Option "mxclk" "integer" β€” also sets the memory clock, and yep, you must specify the units again. for example 50Mhz is the same as 50000Khz or 50000000Hz. this is the clock source for the local SDRAM controller. Only available on MSOC chips and used only for debugging purposes. Default: probe the memory clock value, and use it at server start.

πŸ”₯ the acceleration and graphics engine Options

  • Option "NoAccel" β€” disables acceleration. super useful for figuring out whether the driver is having problems with drawing and acceleration routines. this is literally the first option to try if your server runs but you're seeing graphic corruption on the screen 😭. using it decreases performance, because it uses software emulation for drawing operations that the video driver could accelerate with hardware. Default: acceleration is enabled.
  • Option "AccelMethod" "string" β€” picks between the available acceleration architectures. valid options are XAA and EXA. XAA is the traditional acceleration architecture and support for it is very stable. EXA is a newer acceleration architecture with better performance for the Render and Composite extensions, but the rendering code for it is newer and possibly unstable πŸ’€. The default is XAA.

🚌 the PCI bus Options

  • Option "PciBurst" "boolean" β€” enables PCI burst mode. this should work on all but a few broken PCI chipsets, and it increases performance. Default: on.
  • Option "PciRetry" "boolean" β€” allows the driver to rely on PCI Retry to program the registers. ⚠️ PciBurst must be enabled for this to work. this increases performance, especially for small fills/blits, because the driver doesn't have to poll the card before sending it commands to make sure it's ready. it should work on most recent PCI chipsets. Default: the value of the PciBurst option.

🫢 SEE ALSO 🫢

Xorg(1), xorg.conf(5), Xserver(1), X(7)

go read those too, bestie, knowledge is free ✨


πŸ’Œ SUPPORT πŸ’Œ

need help with this driver, or with Xorg in general? check the web site at http://www.x.org/. if you find a problem with Xorg, or you've got a question the FAQ doesn't answer, please use the bug report form on the web site, or send mail to xorg@lists.freedesktop.org.

and when you're reporting problems with the driver, send as much detail as possible πŸ™ β€” including:

  • chipset type
  • a server output log
  • operating system specifics

the more tea you give, the faster it gets fixed. 🧚


πŸ’– AUTHORS πŸ’–

Kevin Brosius, Matt Grossman, Harald Koenig, Sebastien Marineau, Mark Vojkovich, Frido Garritsen, Corvin Zahn.

absolute icons, every single one. πŸ‘‘


and that's a wrap!! this page came to you from X Version 11, part of xf86-video-siliconmotion 1.7.10 β€” yes, the siliconmotion(4) era, we stan. thanks for reading the whole thing, you're literally the main character πŸ’…βœ¨πŸŒΈπŸ¦‹