要写的内容好像有点标题党的意思。
早上收到邮件让我在860x_irq里打log看是不是插下充电器时会收到中断。结果最后还是发生了一次没有收到中断的情况。这个问题有点纠结啊。具体是啥也没有必要写了。估计应该是硬件有缺陷。
上午服务器买了三块硬盘,做了一个raid5,我把硬盘扩展到分区上去了。三个300G的,做个raid后变600G,幸好上次修改服务器的时候把/work工作分区做成了lvm,这次扩展起来方便多了。pvcreate,vgextend,lvresize.都很顺利,分区下有很多重要的数据,生怕弄坏了,几个项目经理又要砍我了。于是我把分区给umount掉了,然后做resize2fs,不让我resize,说是设备在忙,百思不得其解,差一点就把服务器给重启了,后来我试着把分区挂上,用online mode扩展,发现可以。但是扩展600G确实有点慢啊,大概一分钟10G的速度吧。不过还好,最后终于弄好了,捏了一把汗啊。
下午看了一下8607的interrupt registers的设置。用三个interrupt registers,0x[3-5],每一位用一个mask设置一个中断。每一个都是8位的。这样也有24个中断了。这个是用I2C来读写的。看到写registers的时候有点疑惑,写I2C的时候bulk_write,一次搞了3个bytes。然后在前面加了1个byte的reg地址,组成了一个I2C的传输格式,然后用i2c_message_send搞出去。我当时很傻B地想,一次搞3个进去,一个8位的寄存器情何以堪啊。后来看了看spec,又问了一下同事,他说这个可以给一个地址,按地址往后面的寄存器依次写,这个看来是比较给力啊,有些才支持,这个我不太确定。但是在这里,用了两个bulk_write,