Hi everybody, The following patch gets rid of the unidentified card warning for my hardware: diff --git a/src/rhd_id.c b/src/rhd_id.c index eca6549..793aaff 100644 --- a/src/rhd_id.c +++ b/src/rhd_id.c @@ -884,6 +884,7 @@ rhdCards[] = /* 0x958E : RV630 : ATI Radeon HD 2600 LE */ { 0x95c5, 0x1787, 0x2252, "PowerColor HD 3450", RHD_CARD_FLAG_HPDOFF, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, { 0x9610, 0x105B, 0x0E0F, "Foxconn A7GM-S (RS780)", RHD_CARD_FLAG_HPDOFF, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, + { 0x9614, 0x1043, 0x834D, "Integrated ATI Radeon HD 3300 DDR2", RHD_CARD_FLAG_NONE, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, { 0, 0, 0, NULL, 0, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY } /* KEEP THIS: End marker. */ }; If someone can point me to a description of the flags and connector/dev info, I can try to figure those out for my card. cheers, Xolotl -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org
2009/6/7 Xolotl Loki
Hi everybody,
The following patch gets rid of the unidentified card warning for my hardware:
diff --git a/src/rhd_id.c b/src/rhd_id.c index eca6549..793aaff 100644 --- a/src/rhd_id.c +++ b/src/rhd_id.c @@ -884,6 +884,7 @@ rhdCards[] = /* 0x958E : RV630 : ATI Radeon HD 2600 LE */ { 0x95c5, 0x1787, 0x2252, "PowerColor HD 3450", RHD_CARD_FLAG_HPDOFF, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, { 0x9610, 0x105B, 0x0E0F, "Foxconn A7GM-S (RS780)", RHD_CARD_FLAG_HPDOFF, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, + { 0x9614, 0x1043, 0x834D, "Integrated ATI Radeon HD 3300 DDR2", RHD_CARD_FLAG_NONE, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY }, { 0, 0, 0, NULL, 0, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY } /* KEEP THIS: End marker. */ };
If someone can point me to a description of the flags and connector/dev info, I can try to figure those out for my card.
What happens without this patch? Is chipset detected wrong? Is that "unidentified card" a warning at all? Are you sure that? For me it's just: (--) RADEONHD(0): Detected an M82 on an unidentified card This message doesn't mean "hey, there is problem, your card is unidentified". It's something like "we succesfully detected chipset of your card" -- Rafał Miłecki -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org
What happens without this patch? Is chipset detected wrong?
Nothing, it just seemed like an obvious place to start hacking. Do you discourage superfluous additions to the rhdCards array? There are 3 other elements with RHD_CARD_FLAG_NONE, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY cheers, Xolotl -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org
2009/6/7 Xolotl Loki
What happens without this patch? Is chipset detected wrong?
Nothing, it just seemed like an obvious place to start hacking.
The table in the driver is for storing quirks that are needed for certain cards. The "warning" that occurs even for cards that are fine is due to the implementation of the detection code; the existing method cannot tell apart unsupported cards from ones that simply don't need quirks. If you would like to get rid of the superfluous warning, the better option is to refactor the detection code such that the distinction can actually be made. -- Yang Zhao http://yangman.ca -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org
If you would like to get rid of the superfluous warning, the better option is to refactor the detection code such that the distinction can actually be made.
Sounds like a plan. Currently, RHDPreInit calls RHDCardIdentify, which prints the warning and returns NULL for any card not found in the quirks table. RHDPreInit doesn't do a lot with the rhdPtr->Card; in general, the code just tries to use AtomBIOS if there are no quirks defined. Perhaps it would be more useful to put a specific warning whenever AtomBIOS fails while rhdPtr->Card == NULL. That should give us the benefit of alerting users when a quirks table entry would have been useful, while getting rid of the mostly unnecessary warning in RHDCardIdentify. For example: if (!RHDConnectorsInit(rhdPtr, rhdPtr->Card)) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Card information has invalid connector information\n"); goto error1; } Changes to: if (!RHDConnectorsInit(rhdPtr, rhdPtr->Card)) { if (rhdPtr->Card) xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Card information has invalid connector information\n"); else { unsigned int deviceID, subVendorID, subDeviceID; #if XSERVER_LIBPCIACCESS deviceID = (unsigned int) rhdPtr->PciInfo->device_id; subVendorID = (unsigned int)rhdPtr->PciInfo->subvendor_id; subDeviceID = (unsigned int)rhdPtr->PciInfo->subdevice_id; #else deviceID = rhdPtr->PciInfo->chipType; subVendorID = rhdPtr->PciInfo->subsysVendor; subDeviceID = rhdPtr->PciInfo->subsysCard; #endif xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Unable to detect correct connector information for unknown card: 0x%04X:0x%04X:0x%04X.\n", deviceID, subVendorID, subDeviceID); } goto error1; } cheers, -- ᛏᚠᛖᚾᚱᛁᛊᚢᛚᚠᚱᛏ ᛏᚢᛚᚠᛊᛚᛖᛁᚠᚨᚱᛏ -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org
On Jun 08, 09 22:00:55 -0700, Xolotl Loki wrote:
If you would like to get rid of the superfluous warning, the better option is to refactor the detection code such that the distinction can actually be made. Perhaps it would be more useful to put a specific warning whenever AtomBIOS fails while rhdPtr->Card == NULL. That should give us the benefit of alerting users when a quirks table entry would have been useful, while getting rid of the mostly unnecessary warning in RHDCardIdentify.
For example:
if (!RHDConnectorsInit(rhdPtr, rhdPtr->Card)) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Card information has invalid connector information\n"); goto error1; }
Changes to:
if (!RHDConnectorsInit(rhdPtr, rhdPtr->Card)) { if (rhdPtr->Card) xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Card information has invalid connector information\n"); else { unsigned int deviceID, subVendorID, subDeviceID;
#if XSERVER_LIBPCIACCESS deviceID = (unsigned int) rhdPtr->PciInfo->device_id; subVendorID = (unsigned int)rhdPtr->PciInfo->subvendor_id; subDeviceID = (unsigned int)rhdPtr->PciInfo->subdevice_id; #else deviceID = rhdPtr->PciInfo->chipType; subVendorID = rhdPtr->PciInfo->subsysVendor; subDeviceID = rhdPtr->PciInfo->subsysCard; #endif
xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Unable to detect correct connector information for unknown card: 0x%04X:0x%04X:0x%04X.\n", deviceID, subVendorID, subDeviceID); }
goto error1; }
Sounds reasonable - but you have to refactor the Warning if no quirks
table entry is found as well. And this probably needs some testing.
Matthias
--
Matthias Hopf
On Jun 07, 09 00:46:02 -0700, Xolotl Loki wrote:
Nothing, it just seemed like an obvious place to start hacking.
Indeed it seems to be :-) Seriously, at some point of time we wanted to add a card database - that has ceased for the moment, and the table is a quirks table only.
Do you discourage superfluous additions to the rhdCards array? There are 3 other elements with RHD_CARD_FLAG_NONE, ID_CONNECTORINFO_EMPTY, DEVINFO_EMPTY
Indeed, this is superfluous. OTOH I'm unsure whether we should remove
them or not (so we don't get any false regression warnings).
Thanks
Matthias
--
Matthias Hopf
participants (4)
-
Matthias Hopf
-
Rafał Miłecki
-
Xolotl Loki
-
Yang Zhao