Re: about samsung smdk2440 sd driver questions

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



Geoff,thanks for your reply.
But I still some questions,you said I should give the handle in
the SDSlotEventCallBack.
I just have the driver as dll files,there are no sources.Can you tell
me where should I fix.But the driver I had seen someone used
successful.And now I don't know what's wrong here.
The second question,I debug the detect interrupt
SYSINTR_SDMMC_CARD_DETECT in function OEMInterruptHandler,I found it
can get the interrupt whether the card inserts or removes.In fact,when
it gets the first interrupt and the driver detects the card as insert
and loads the card successfully,after that I found the kernel called
the OEMInterruptDone once
and once,the OEMInterruptDone exports the same string
"SYSINTR_SDMMC_CARD_DETECT OEMInterruptDone" .But when it gets the
second card detect interrupt I can not see it does anything.
Are there anything I forget in the oal about the sdmmc interrupt?


"Geoff 写道:
"
The card detect interrupt SYSINTR_SDMMC_CARD_DETECT occurs whenever a
card is detected. (They named that one rather well). The kernel
schedules the IST associated with that event, which should be in the SD
host controller driver.

The kernel does not call OEMInterruptDone per se, it is called from the
host controller driver via InterruptDone(SYSINTR_SDMMC_CARD_DETECT).

The client driver receives a callback when the card detect events occur,
this callback as registered via

SDCARD_CLIENT_REGISTRATION_INFO pSlotEventCallBack

The callback looks like this:
VOID SDSlotEventCallBack(SD_DEVICE_HANDLE hDevice,
PVOID pContext,

SD_SLOT_EVENT_TYPE SlotEventType,
PVOID pData,

DWORD DataLength)

The slot event type will be "SDCardEjected" for a card removal. The
removal needs to be handled here.

Do you see an interrupt when the card is removed? If not then I would
suggest that that interrupt is not being handled correctly.

Geoff
--

huizi0516@xxxxxxxxx wrote:

There are two qestions:
Can anyone tell me what happen about this(after load the sd continue to
export the string in OEMInterruptDone "SYSINTR_SDMMC_CARD_DETECT
OEMInterruptDone")?
And What should I do to make the drive unload the sd card?
The follows are the code of functions OEMInterruptHandler and
OEMIterruptDone:
(Because of too more code ,I just show about sdmmc code)


.



Relevant Pages

  • Re: em(4) stops forwarding
    ... the card has stopped working several times. ... The interrupt is shared since the machine is a notebook. ... as my USB mouse stopped working - the USB controller is on the same irq. ... So even though the if_em driver has a very fast interrupt ...
    (freebsd-current)
  • Re: em(4) stops forwarding
    ... the card has stopped working several times. ... The interrupt is shared since the machine is a notebook. ... as my USB mouse stopped working - the USB controller is on the same irq. ... So even though the if_em driver has a very fast interrupt ...
    (freebsd-current)
  • Re: CF / PCMCIA interrupt mechanism
    ... The Card Interrupt is different Card Detectinterrupt. ... Card Interrupt is only be used by PCMCIA client Driver directly. ...
    (microsoft.public.windowsce.platbuilder)
  • Re: SMSC Receiver Overruns
    ... OEMInterruptDone to OEMInterruptEnable and see if that helps. ... experience with the serial driver doesn't directly apply. ... I have been struggling with the SMSC LAN91C111 part / driver for a couple ... get fired during the subsequent timer interrupt. ...
    (microsoft.public.windowsce.platbuilder)
  • Re: 2.6.2-rc3: irq#19 - nobody cared - with an au88xx
    ... I've figured out why no one ever submitted the driver: ... The main interrupt handler is in there. ... wrapper returns IRQ_NONE if some blob of code in there decides the card ... send the line "unsubscribe linux-kernel" in ...
    (Linux-Kernel)