转载自:http://www.aichengxu.com/android/2476070.htm

最近有个项目不支持SD卡热插拔,且出现SD卡不识别的问题,需要去掉代码里面的SD卡热插拔功能。相关修改代码如下,主要是删除gpio代表的irq。

kernel/arch/arm/boot/dts/msm8909_x37_g101/msm8909-qrd-skuc.dtsi

&sdc2_cd_on {       /delete-property/  bias-pull-up;       bias-pull-down;};&sdc2_cd_off {       /delete-property/  bias-disable;       bias-pull-down;};&sdhc_2 {       qcom,nonhotplug;       qcom,no-1p8v;       qcom,vdd-always-on;       qcom,vdd-lpm-sup;       qcom,vdd-current-level = <4000 400000>;       /delete-property/ cd-gpios;};
kernel/arch/arm/boot/dts/msm8909_x37_g101/msm8909-qrd.dtsi

&sdhc_2 {        #address-cells = <0>;       interrupt-parent = <&sdhc_2>;       interrupts = <0 1 2>;       #interrupt-cells = <1>;       interrupt-map-mask = <0xffffffff>;       interrupt-map = <0 &intc 0 125 0                        1 &intc 0 221 0>;       interrupt-names = "hc_irq", "pwr_irq";       /delete-property/ cd-gpios;       vdd-supply = <&pm8909_l11>;
   
因为我的板子是没有连cd-gpio的,去掉了cd-gpio还是可以支持热插拔,不清楚为什么。。。
一开始修改上面后,可以识别到T卡了,在dev/block/下有mmcblk1p1节点,但是手机上看不到,应该是文件系统没有挂在上去。
后面修改了device/qcom/msm8909_512下的fstab.qcom文件里的/devices/soc.0/7864900.sdhci/mmc_host*        /storage/sdcard1   vfat    nosuid,nodev         wait,voldmanaged=sdcard1:auto,noemulatedsd,encryptable=footer这个后就可以了。
代码中检测SD卡的文件是:kernel/drivers/mmc/core  core.c  sd.c  mmc_attach_sd()函数。

更多相关文章

  1. 解决用Android Studio开发项目如何放置assets文件夹
  2. Android代码设置EditText只输入数字、字母
  3. [Android][Audio] audio_policy.conf文件分析
  4. android手机开机动画相关代码解析
  5. Android 代码混淆及第三方jar包不被混淆
  6. android 在代码中获取SHA1值
  7. Android下的文件访问权限
  8. Android 读取raw下的txt文件
  9. Android中的文件的读取方法

随机推荐

  1. Android(安卓)通过AudioTrack播放CAF音频
  2. Android:证书生成与应用
  3. 获取Android设备电池信息
  4. android基本架构
  5. Android(安卓)Activity间的过渡动画
  6. android之发送短信的方法研究
  7. Android(安卓)SDK Manager无法更新的解决
  8. Android(安卓)开发环境入门
  9. Android中文API(131) —— GpsStatus
  10. 关于android 多媒体数据库