Tôi bị mắc kẹt trong 3 ngày qua tại một điểm.
Tôi đang làm việc trên trình điều khiển thiết bị eink với chipset Qualcomm msm8960.
Scenario:
Trong tệp: kernel / arch / arm / mach-msm / device-8960.c
Tôi không thể xác minh use of spidm_channels" and "spidm_crci"
và các mục tương ứng. (Msm8960 pro) (được sao chép từ một số mã tham chiếu) Làm thế nào để xác minh xem các giá trị tương ứng start and end
có đúng không ?? Tôi có datasheet cho msm nhưng không thể tìm thấy bất kỳ tài liệu tham khảo nào.
Tôi đã thêm đoạn mã sau để tạo tài nguyên gsbi mới trong tệp dưới dạng:
static struct resource resources_qup_spi_gsbi9[] = {
{
.name = "spi_base",
.start = MSM_GSBI9_QUP_PHYS,
.end = MSM_GSBI9_QUP_PHYS + SZ_4K - 1,
.flags = IORESOURCE_MEM,
},
{
.name = "gsbi_base",
.start = MSM_GSBI9_PHYS,
.end = MSM_GSBI9_PHYS + 4 - 1,
.flags = IORESOURCE_MEM,
},
{
.name = "spi_irq_in",
.start = GSBI9_QUP_IRQ,
.end = GSBI9_QUP_IRQ,
.flags = IORESOURCE_IRQ,
},
{
.name = "spidm_channels",
.start = 3,
.end = 4,
.flags = IORESOURCE_DMA,
},
{
.name = "spidm_crci",
.start = 12,
.end = 13,
.flags = IORESOURCE_DMA,
},
};
Lý do cho sự nghi ngờ này là do hoạt động DMA của chúng tôi không thành công với lỗi: từ nhật ký:
<6>[ 0.764932] wait_for_ready: I/F Ready.^M
<7>[ 0.765176] s1d13522_ spi9.0: setup mode 0, 16 bits/w, 51200000 Hz max --> 0^M
<3>[ 1.756630] spi_qsd spi_qsd.9: msm_spi_process_transfer: SPI transaction timeout^M
và sau đó nếu chúng ta cố gắng thực hiện một thao tác DMA khác, nó sẽ báo lỗi sau:
<3>[ 6.773355] s1d13522if_cmd: wait_for_ready: I/F busy bit stuck^M
<7>[ 6.775400] s1d13522_ spi9.0: setup mode 0, 16 bits/w, 51200000 Hz max --> 0^M
<4>[ 6.775583] ------------[ cut here ]------------^M
<4>[ 6.775614] WARNING: at /home/anshul_10605816/hip_mirror_2330_code/kernel /lib/list_debug.c:32 __list_add+0x58/0x78()^M
<4>[ 6.775644] list_add corruption. prev->next should be next (c0d5124c), but was 00100100. (prev=edf643b8).^M
<4>[ 6.775675] Modules linked in:^M
<4>[ 6.775766] [<c00149b8>] (unwind_backtrace+0x0/0x11c) from [<c007c818>] (warn_slowpath_common+0x4c/0x64)^M
<4>[ 6.775827] [<c007c818>] (warn_slowpath_common+0x4c/0x64) from [<c007c8b0>] (warn_slowpath_fmt+0x2c/0x3c)^M
<4>[ 6.775888] [<c007c8b0>] (warn_slowpath_fmt+0x2c/0x3c) from [<c02a9538>] (__list_add+0x58/0x78)^M
<4>[ 6.775919] [<c02a9538>] (__list_add+0x58/0x78) from [<c001e3d4>] (start_ready_cmd+0x84/0x13c)^M
<4>[ 6.775980] [<c001e3d4>] (start_ready_cmd+0x84/0x13c) from [<c001e704>] (msm_dmov_enqueue_cmd_ext_work+0x148/0x284)^M
<4>[ 6.776041] [<c001e704>] (msm_dmov_enqueue_cmd_ext_work+0x148/0x284) from [<c0094e0c>] (process_one_work+0x27c/0x484)^M
<4>[ 6.776072] [<c0094e0c>] (process_one_work+0x27c/0x484) from [<c0095224>] (worker_thread+0x210/0x3b0)^M
<4>[ 6.776133] [<c0095224>] (worker_thread+0x210/0x3b0) from [<c00990c0>] (kthread+0x80/0x8c)^M
<4>[ 6.776194] [<c00990c0>] (kthread+0x80/0x8c) from [<c000f108>] (kernel_thread_exit+0x0/0x8)^M
<4>[ 6.776224] ---[ end trace da227214a82491b8 ]---^M
<3>[ 11.766732] spi_qsd spi_qsd.9: msm_spi_process_transfer: SPI transaction timeout^M
Bất cứ sự giúp đỡ nào cũng được đánh giá cao.
Nếu có thêm thông tin mã được yêu cầu xin vui lòng cho tôi biết.