* Tomi Valkeinen <tomi.valkeinen@xxxxxx> [170124 23:43]: > On 25/01/17 03:57, Tony Lindgren wrote: > > Hi all, > > > > So how do you guys get omapdrm working on n900 with mainline kernel? > > > > It seems to be working fine on omap3-evm if I do: > > > > # modprobe ads7846 > > # modprobe gpio_backlight > > # modprobe panel-sharp-ls037v7dw01 > > # modprobe omapdrm > > > > Having ads7846 loaded somehow enables the LCD.. Then it seems to > > I guess "enables" here means that it makes the LCD HW enabled, but even > without ads7846 everything works from the SW perspective (fb0 is there, > you can run DRM applications, etc)?. Probably some gpio or regulator > used by the touch is also needed by the LCD. Yeah OK it must be some hardware wiring thing. When I rmmod or modprobe ads7846 I don't see any graphics related messages, just ads7846 related messages. > > work better than with omapfb as I don't see any clock issues like > > I used to with omapfb. > > > > I don't quite understand how and why ads7846 enables the LCD.. If > > somebody has clues let me know :) > > > > But then on n900 if I do: > > > > # modprobe tsc2005 > > # modprobe panel_sony_acx565akm > > # modprobe omapdrm > > > > The LCD just stays blank with backlight off as soon as I load > > panel_sony_acx565akm. > > Can you share the kernel logs for both boards? I don't have neither > board, so I probably can't help too much here. Below are the relevant parts for both devices using v4.10-rc5. > Generally speaking, when testing DRM, I recommend compiling "kmstest" > from https://github.com/tomba/kmsxx repository. It'll give you a test > picture on every screen, and with "--flip" it will do page flipping and > shows the fps, which tells that the timings and clocks are ok. In the > EVM's case, kmstest --flip should tell us whether the DSS is working > fine, and it's just the panel that is not enabled. OK thanks that sounds handy. Regards, Tony Working omap3-evm omapdrm output after modprobe: [ 44.081268] of_get_named_gpiod_flags: parsed 'pendown-gpio' property of node '/ocp@68000000/spi@48098000/tsc2046@0[0]' - status (0) [ 44.178619] ads7846 spi1.0: touchscreen, irq 287 [ 44.187286] input: ADS7846 Touchscreen as /devices/platform/68000000.ocp/48098000.spi/spi_master/spi1/spi1.0/input/input0 [ 58.717285] DSS: set fck to 172800000 [ 58.721374] 48050000.dss supply vdda_video not found, using dummy regulator [ 58.729675] DSS: dss_runtime_get [ 58.733245] DSS: dss_restore_context [ 58.737213] OMAP DSS rev 2.0 [ 58.740234] DSS: dss_runtime_put [ 58.743896] DISPC: dispc_runtime_get [ 58.747833] DISPC: fifo(0) threshold (bytes), old 960/1023, new 960/1023 [ 58.754882] DISPC: fifo(1) threshold (bytes), old 960/1023, new 960/1023 [ 58.761993] DISPC: fifo(2) threshold (bytes), old 960/1023, new 960/1023 [ 58.769042] DISPC: dispc_restore_context [ 58.773132] DISPC: dispc_restore_gamma_tables() [ 58.777954] DISPC: fifo(0) threshold (bytes), old 960/1023, new 960/1023 [ 58.785003] DISPC: fifo(1) threshold (bytes), old 960/1023, new 960/1023 [ 58.792083] DISPC: fifo(2) threshold (bytes), old 960/1023, new 960/1023 [ 58.799163] omapdss_dispc 48050400.dispc: OMAP DISPC rev 3.0 [ 58.805084] DISPC: dispc_runtime_put [ 58.808929] DISPC: dispc_save_context [ 58.812835] DISPC: context saved [ 58.816680] omapdss_dss 48050000.dss: bound 48050400.dispc (ops dispc_component_ops [omapdss]) [ 58.830596] DSS: dss_save_context [ 58.834075] DSS: context saved [ 58.858612] display supply envdd not found, using dummy regulator [ 58.865325] panel-sharp-ls037v7dw01 display: GPIO lookup for consumer enable [ 58.872924] panel-sharp-ls037v7dw01 display: using device tree for GPIO lookup [ 58.880706] of_get_named_gpiod_flags: parsed 'enable-gpios' property of node '/display[0]' - status (0) [ 58.890716] panel-sharp-ls037v7dw01 display: GPIO lookup for consumer reset [ 58.898040] panel-sharp-ls037v7dw01 display: using device tree for GPIO lookup [ 58.905700] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/display[0]' - status (0) [ 58.915557] panel-sharp-ls037v7dw01 display: GPIO lookup for consumer mode [ 58.922851] panel-sharp-ls037v7dw01 display: using device tree for GPIO lookup [ 58.930480] of_get_named_gpiod_flags: parsed 'mode-gpios' property of node '/display[0]' - status (0) [ 58.940216] panel-sharp-ls037v7dw01 display: GPIO lookup for consumer mode [ 58.947448] panel-sharp-ls037v7dw01 display: using device tree for GPIO lookup [ 58.955047] of_get_named_gpiod_flags: parsed 'mode-gpios' property of node '/display[1]' - status (0) [ 58.964935] panel-sharp-ls037v7dw01 display: GPIO lookup for consumer mode [ 58.972229] panel-sharp-ls037v7dw01 display: using device tree for GPIO lookup [ 58.979980] of_get_named_gpiod_flags: parsed 'mode-gpios' property of node '/display[2]' - status (0) [ 65.958770] [drm] Initialized [ 66.429595] 48050000.dss supply vdds_dsi not found, using dummy regulator [ 66.442993] omapdrm omapdrm.0: DMM not available, disable DMM support [ 66.451232] DISPC: dispc_runtime_get [ 66.455169] DSS: dss_restore_context [ 66.459014] DSS: context restored [ 66.462646] DISPC: dispc_runtime_put [ 66.466522] DISPC: dispc_save_context [ 66.470428] DISPC: context saved [ 66.474517] DISPC: dispc_runtime_get [ 66.478637] DISPC: dispc_runtime_put [ 66.482421] DISPC: dispc_save_context [ 66.486389] DISPC: context saved [ 66.491210] DISPC: dispc_runtime_get [ 66.495025] DISPC: dispc_runtime_put [ 66.498901] DISPC: dispc_save_context [ 66.502777] DISPC: context saved [ 66.506286] DISPC: dispc_runtime_get [ 66.510070] DISPC: dispc_runtime_put [ 66.513824] DISPC: dispc_save_context [ 66.517761] DISPC: context saved [ 66.521240] DISPC: dispc_runtime_get [ 66.525054] DISPC: dispc_runtime_put [ 66.528869] DISPC: dispc_save_context [ 66.532745] DISPC: context saved [ 66.536224] DISPC: dispc_runtime_get [ 66.540008] DISPC: dispc_runtime_put [ 66.543762] DISPC: dispc_save_context [ 66.547698] DISPC: context saved [ 66.551147] DISPC: dispc_runtime_get [ 66.554931] DISPC: dispc_runtime_put [ 66.558746] DISPC: dispc_save_context [ 66.562652] DISPC: context saved [ 66.566192] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 66.573120] [drm] No driver support for vblank timestamp query. [ 66.581024] DSS: dss_save_context [ 66.584503] DSS: context saved [ 66.601440] DISPC: dispc_runtime_get [ 66.601745] DSS: dss_restore_context [ 66.601776] DSS: context restored [ 66.602020] DISPC: dispc_ovl_setup 0, pa 0x8d900000, pa_uv 0x00000000, sw 480, 0,0, 480x640 -> 480x640, cmode 80, rot 0, mir 0, chan 0 repl 0 [ 66.602020] DISPC: calc_rot(0): scrw 480, 480x640 [ 66.602050] DISPC: offset0 0, offset1 0, row_inc 1, pix_inc 1 [ 66.602050] DISPC: 0,0 480x640 -> 480x640 [ 66.602081] DISPC: dispc_enable_plane 0, 1 [ 66.602081] DISPC: dispc_runtime_get [ 66.602203] DISPC: dispc_runtime_put [ 66.602722] DPI: dpi_set_timings [ 66.603057] DPI: dpi_set_timings [ 66.603088] DISPC: dispc_runtime_get [ 66.603210] DSS: set fck to 57600000 [ 66.603515] DISPC: lck = 57600000 (1) [ 66.603515] DISPC: pck = 19200000 (3) [ 66.605529] DISPC: channel 0 xres 480 yres 640 [ 66.605560] DISPC: pck 19200000 [ 66.605560] DISPC: hsync_len 2 hfp 1 hbp 28 vsw 1 vfp 1 vbp 1 [ 66.605560] DISPC: vsync_level 0 hsync_level 0 data_pclk_edge 1 de_level 1 sync_pclk_edge 0 [ 66.605590] DISPC: hsync 37573Hz, vsync 58Hz [ 66.605651] DISPC: dispc_runtime_get [ 66.605773] DISPC: dispc_runtime_put [ 66.624298] DISPC: dispc_runtime_get [ 66.624298] DISPC: dispc_runtime_put [ 66.686676] DISPC: dispc_runtime_put [ 66.687103] Console: switching to colour frame buffer device 60x40 [ 66.687347] DISPC: dispc_runtime_get [ 66.687408] DISPC: dispc_ovl_setup 0, pa 0x8d900000, pa_uv 0x00000000, sw 480, 0,0, 480x640 -> 480x640, cmode 80, rot 0, mir 0, chan 0 repl 0 [ 66.687438] DISPC: calc_rot(0): scrw 480, 480x640 [ 66.687438] DISPC: offset0 0, offset1 0, row_inc 1, pix_inc 1 [ 66.687438] DISPC: 0,0 480x640 -> 480x640 [ 66.687469] DISPC: dispc_enable_plane 0, 1 [ 66.687469] DISPC: GO LCD [ 66.687591] DISPC: dispc_runtime_get [ 66.687622] DISPC: dispc_runtime_put [ 66.692199] DISPC: dispc_runtime_put [ 66.877899] omapdrm omapdrm.0: fb0: omapdrm frame buffer device [ 66.884979] [drm] Initialized omapdrm 1.0.0 20110917 on minor 0 [ 66.892639] DISPC: dispc_runtime_get [ 66.896636] DISPC: dispc_ovl_setup 0, pa 0x8d900000, pa_uv 0x00000000, sw 480, 0,0, 480x640 -> 480x640, cmode 80, rot 0, mir 0, chan 0 repl 0 [ 66.909973] DISPC: calc_rot(0): scrw 480, 480x640 [ 66.914916] DISPC: offset0 0, offset1 0, row_inc 1, pix_inc 1 [ 66.920989] DISPC: 0,0 480x640 -> 480x640 [ 66.925170] DISPC: dispc_enable_plane 0, 1 [ 66.929504] DISPC: GO LCD [ 66.932312] DISPC: dispc_runtime_get [ 66.936126] DISPC: dispc_runtime_put [ 66.948577] DISPC: dispc_runtime_put [ 82.856170] of_get_named_gpiod_flags: parsed 'gpios' property of node '/backlight[0]' - status (0) [ 142.196838] random: crng init done Blank screen on n900 after modprobe of drm components. LCD backlight stays on after modprobe tsc2005, then LCD goes dark after modprobe panel_sony_acx565akm. LCD backlight stays off after modprobe omapdrm: [ 113.374694] random: crng init done [ 144.217224] tsc2005 spi1.0: GPIO lookup for consumer reset [ 144.223266] tsc2005 spi1.0: using device tree for GPIO lookup [ 144.229492] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/ocp@68000000/spi@48098000/tsc2005@0[0]' - status (0) [ 144.250030] input: TSC2005 touchscreen as /devices/platform/68000000.ocp/48098000.spi/spi_master/spi1/spi1.0/input/input0 [ 151.599609] DSS: set fck to 172800000 [ 151.603759] 48050000.dss supply vdda_video not found, using dummy regulator [ 151.612243] DSS: dss_runtime_get [ 151.615875] DSS: dss_restore_context [ 151.619873] OMAP DSS rev 2.0 [ 151.622894] DSS: dss_runtime_put [ 151.626647] DISPC: dispc_runtime_get [ 151.630645] DISPC: fifo(0) threshold (bytes), old 960/1023, new 960/1023 [ 151.637664] DISPC: fifo(1) threshold (bytes), old 960/1023, new 960/1023 [ 151.644775] DISPC: fifo(2) threshold (bytes), old 960/1023, new 960/1023 [ 151.651885] DISPC: dispc_restore_context [ 151.656005] DISPC: dispc_restore_gamma_tables() [ 151.660858] DISPC: fifo(0) threshold (bytes), old 960/1023, new 960/1023 [ 151.667907] DISPC: fifo(1) threshold (bytes), old 960/1023, new 960/1023 [ 151.674987] DISPC: fifo(2) threshold (bytes), old 960/1023, new 960/1023 [ 151.682098] omapdss_dispc 48050400.dispc: OMAP DISPC rev 3.0 [ 151.688049] DISPC: dispc_runtime_put [ 151.691955] DISPC: dispc_save_context [ 151.695861] DISPC: context saved [ 151.699829] omapdss_dss 48050000.dss: bound 48050400.dispc (ops dispc_component_ops [omapdss]) [ 151.709228] VENC: venc_runtime_get [ 151.712982] DISPC: dispc_runtime_get [ 151.716888] omapdss_venc 48050c00.encoder: OMAP VENC rev 2 [ 151.722747] VENC: venc_runtime_put [ 151.726379] DISPC: dispc_runtime_put [ 151.730194] DISPC: dispc_save_context [ 151.734100] DISPC: context saved [ 151.737945] omapdss_dss 48050000.dss: bound 48050c00.encoder (ops venc_component_ops [omapdss]) [ 151.750549] DSS: dss_save_context [ 151.754058] DSS: context saved [ 151.823486] of_get_named_gpiod_flags: parsed 'reset-gpios' property of node '/ocp@68000000/spi@48098000/acx565akm@2[0]' - status (0) [ 151.847961] acx565akm spi1.2: omapfb: acx565akm rev 8b LCD detected [ 160.276885] [drm] Initialized [ 162.488830] omapdrm omapdrm.0: DMM not available, disable DMM support [ 162.497436] DISPC: dispc_runtime_get [ 162.501586] DSS: dss_restore_context [ 162.505340] DSS: context restored [ 162.509094] DISPC: dispc_runtime_put [ 162.512939] DISPC: dispc_save_context [ 162.516876] DISPC: context saved [ 162.521362] DISPC: dispc_runtime_get [ 162.525512] DISPC: dispc_runtime_put [ 162.529418] DISPC: dispc_save_context [ 162.533294] DISPC: context saved [ 162.538696] DISPC: dispc_runtime_get [ 162.542510] DISPC: dispc_runtime_put [ 162.546295] DISPC: dispc_save_context [ 162.550262] DISPC: context saved [ 162.553741] DISPC: dispc_runtime_get [ 162.557556] DISPC: dispc_runtime_put [ 162.561401] DISPC: dispc_save_context [ 162.565277] DISPC: context saved [ 162.568908] DISPC: dispc_runtime_get [ 162.572723] DISPC: dispc_runtime_put [ 162.576477] DISPC: dispc_save_context [ 162.580444] DISPC: context saved [ 162.583923] DISPC: dispc_runtime_get [ 162.587707] DISPC: dispc_runtime_put [ 162.591552] DISPC: dispc_save_context [ 162.595428] DISPC: context saved [ 162.598968] DISPC: dispc_runtime_get [ 162.602783] DISPC: dispc_runtime_put [ 162.606536] DISPC: dispc_save_context [ 162.610504] DISPC: context saved [ 162.614013] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 162.621032] [drm] No driver support for vblank timestamp query. [ 162.629699] DSS: dss_save_context [ 162.633209] DSS: context saved [ 162.659698] DISPC: dispc_runtime_get [ 162.660125] DSS: dss_restore_context [ 162.660125] DSS: context restored [ 162.660491] DISPC: dispc_ovl_setup 0, pa 0x8e900000, pa_uv 0x00000000, sw 800, 0,0, 800x480 -> 800x480, cmode 80, rot 0, mir 0, chan 0 repl 0 [ 162.660522] DISPC: calc_rot(0): scrw 800, 800x480 [ 162.660522] DISPC: offset0 0, offset1 0, row_inc 1, pix_inc 1 [ 162.660552] DISPC: 0,0 800x480 -> 800x480 [ 162.660552] DISPC: dispc_enable_plane 0, 1 [ 162.660583] DISPC: dispc_runtime_get [ 162.660736] DISPC: dispc_runtime_put [ 162.661865] DISPC: dispc_runtime_get [ 162.662048] DSS: set fck to 72000000 [ 162.662475] DISPC: lck = 72000000 (1) [ 162.662475] DISPC: pck = 24000000 (3) [ 162.662506] DISPC: lck = 72000000 (1) [ 162.662506] DISPC: pck = 24000000 (3) [ 162.664642] DISPC: channel 0 xres 800 yres 480 [ 162.664642] DISPC: pck 24000000 [ 162.664672] DISPC: hsync_len 4 hfp 28 hbp 24 vsw 3 vfp 3 vbp 4 [ 162.664672] DISPC: vsync_level 0 hsync_level 0 data_pclk_edge 1 de_level 1 sync_pclk_edge 1 [ 162.664672] DISPC: hsync 28037Hz, vsync 57Hz [ 162.664794] DISPC: dispc_runtime_get [ 162.664947] DISPC: dispc_runtime_put [ 162.684204] DISPC: dispc_runtime_get [ 162.684234] DISPC: dispc_runtime_put [ 162.749084] DISPC: dispc_runtime_put [ 162.749633] Console: switching to colour frame buffer device 100x30 [ 162.749969] DISPC: dispc_runtime_get [ 162.750030] DISPC: dispc_ovl_setup 0, pa 0x8e900000, pa_uv 0x00000000, sw 800, 0,0, 800x480 -> 800x480, cmode 80, rot 0, mir 0, chan 0 repl 0 [ 162.750061] DISPC: calc_rot(0): scrw 800, 800x480 [ 162.750061] DISPC: offset0 0, offset1 0, row_inc 1, pix_inc 1 [ 162.750091] DISPC: 0,0 800x480 -> 800x480 [ 162.750091] DISPC: dispc_enable_plane 0, 1 [ 162.750122] DISPC: GO LCD [ 162.750274] DISPC: dispc_runtime_get [ 162.750305] DISPC: dispc_runtime_put [ 162.753540] DISPC: dispc_runtime_put [ 162.944549] omapdrm omapdrm.0: fb0: omapdrm frame buffer device [ 162.952056] [drm] Initialized omapdrm 1.0.0 20110917 on minor 0 [ 162.960205] DISPC: dispc_runtime_get [ 162.964080] DISPC: dispc_ovl_setup 0, pa 0x8e900000, pa_uv 0x00000000, sw 800, 0,0, 800x480 -> 800x480, cmode 80, rot 0, mir 0, chan 0 repl 0 [ 162.977630] DISPC: calc_rot(0): scrw 800, 800x480 [ 162.982635] DISPC: offset0 0, offset1 0, row_inc 1, pix_inc 1 [ 162.988739] DISPC: 0,0 800x480 -> 800x480 [ 162.992980] DISPC: dispc_enable_plane 0, 1 [ 162.997283] DISPC: GO LCD [ 163.000152] DISPC: dispc_runtime_get [ 163.003967] DISPC: dispc_runtime_put [ 163.015930] DISPC: dispc_runtime_put -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html