Re: [Openipmi-developer] [PATCH v1 3/4] drm/ls2kbmc: Add support for Loongson-2K BMC display
Brought to you by:
cminyard
|
From: Thomas Z. <tzi...@su...> - 2025-01-06 14:10:38
|
Hi, Thanks for the info. Am 06.01.25 um 08:03 schrieb Binbin Zhou: [...] >> Could you point to the exact call that fails within simpledrm? > If we use simpledrm directly, the following error occurs: > > [ 8.289823] simple-framebuffer simple-framebuffer.0: [drm] *ERROR* > could not acquire memory range [mem 0xe0031200000-0xe00315fffff flags > 0x200]: -16 > [ 8.312681] simple-framebuffer simple-framebuffer.0: probe with > driver simple-framebuffer failed with error -16 > > The reason for the failure: overlapping resources. > > https://elixir.bootlin.com/linux/v6.12.6/source/drivers/video/aperture.c#L175 This error means that there's already an instance of simpledrm bound to the BMC framebuffer. So you already have a working display and some graphics under Linux without the new driver, right? If so, why do you need a new driver that does exactly the same as simpledrm? Best regards Thomas >>> Because although we register the driver in platform form, its memory >>> belongs to pci space and we can see the corresponding pci probe and >>> resource allocation in Patch-1. >> I don't understand. Graphics memory is often located on the PCI bus. >> What is so special about this one? >> >>> Therefore, we need to use aperture_remove_conflicting_pci_devices(). >> So there is already a device that represents the graphics card? That's >> what you'd remove here? If you only add that MFD device, who owns the >> framebuffer? If it's the PCI device from patch 1 ("ls2k-bmc"), why does >> aperture_remove_conflicting_pci_devices() not remove that device? I'm >> somewhat confused, because the logic in your driver mostly looks like it >> binds to a pre-configured framebuffer, but some of the code doesn't. > Perhaps the use of aperture_remove_conflicting_pci_devices() is wrong, > as there is only one display device for the LS2K BMC and there will be > no phase conflict. > > When I tried to use that API before, it was partly due to the error > above, and partly because I referenced that other display drivers via > pci_driver.probe() would have it, just in case I used it, which was > probably the wrong choice. > > The resources for pci bar0 are as follows: > BAR0: e0030000000/SZ_32M > > 0x0 0x600000 0xf00001c 16M 32M > +----+--------------+--------+-----------+---+-----------------+ > | 2M | simpldrm | | IPMI | | video env | > +-----------------------------------------------------------------+ > > The mfd driver registers the ls2kbmc-framebuffer and ls2k-ipmi-si > devices according to the resource allocation shown above. At the same > time, the ls2kbmc drm is bound to the pre-configured “simpldrm” > resource in the above figure, which is passed through the > ls2kbmc-framebuffer driver. In addition, the resolution is read from > “video env” for the time being, and the resolution adaption is planned > to be added later. > >> Best regards Thomas >> >>> Also, since we are using BMC display, the display will be disconnected >>> when BMC reset, at this time we need to push the display data (crtc, >>> connector, etc.) manually as shown in Patch-4. >>> >>> Probably it's not the most suitable way to implement it. >>> >>>> Best regards >>>> Thomas >>>> >>>>> + }, >>>>> + .probe = ls2kbmc_probe, >>>>> + .remove = ls2kbmc_remove, >>>>> +}; >>>>> + >>>>> +module_platform_driver(ls2kbmc_platform_driver); >>>>> + >>>>> +MODULE_DESCRIPTION("DRM driver for Loongson-2K BMC"); >>>>> +MODULE_LICENSE("GPL"); >>>> -- >>>> -- >>>> Thomas Zimmermann >>>> Graphics Driver Developer >>>> SUSE Software Solutions Germany GmbH >>>> Frankenstrasse 146, 90461 Nuernberg, Germany >>>> GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman >>>> HRB 36809 (AG Nuernberg) >>>> >> -- >> -- >> Thomas Zimmermann >> Graphics Driver Developer >> SUSE Software Solutions Germany GmbH >> Frankenstrasse 146, 90461 Nuernberg, Germany >> GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman >> HRB 36809 (AG Nuernberg) >> > > -- > Thanks. > Binbin -- -- Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Frankenstrasse 146, 90461 Nuernberg, Germany GF: Ivo Totev, Andrew Myers, Andrew McDonald, Boudien Moerman HRB 36809 (AG Nuernberg) |