[Armadillo:02472] Re: armadillo-500でPHSカードのドライバが割り当てられない
nakai
email@hidden
2007年 11月 28日 (水) 14:32:39 JST
nakaiです。
> ■エラー内容
> drivers/serial/8250.c: In function 'serial8250_handle_port':
> drivers/serial/8250.c:1331: error: 'regs' undeclared (first
> use in this function )
> drivers/serial/8250.c:1331: error: (Each undeclared
> identifier is reported only once
> drivers/serial/8250.c:1331: error: for each function it appears in.)
> make[3]: *** [drivers/serial/8250.o] エラー 1
> make[2]: *** [drivers/serial] エラー 2
> make[1]: *** [drivers] エラー 2
> make[1]: ディレクトリ '/home/atmark/linux-2.6.18-12-at0' から出ます
このエラーは、i.mx31のBSPからバックポートしたときにチェック漏れで
潜在的にあったバグのようです。
オリジナルソースからのdiffは以下となります。
CONFIG_ARCH_MXCに関する部分は外してもよさそうですね。検討してみます。
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
index 758c229..040211a 100644
--- a/drivers/serial/8250.c
+++ b/drivers/serial/8250.c
@@ -1313,7 +1313,11 @@ static unsigned int check_modem_status(struct uart_8250_port *up)
* This handles the interrupt from one port.
*/
static inline void
+#ifdef CONFIG_ARCH_MXC
+serial8250_handle_port(struct uart_8250_port *up, unsigned int iir)
+#else
serial8250_handle_port(struct uart_8250_port *up, struct pt_regs *regs)
+#endif
{
unsigned int status;
@@ -1326,7 +1330,11 @@ serial8250_handle_port(struct uart_8250_port *up, struct pt_regs *regs)
if (status & UART_LSR_DR)
receive_chars(up, &status, regs);
check_modem_status(up);
+#ifdef CONFIG_ARCH_MXC
+ if ((status & UART_LSR_THRE) || ((iir & UART_IIR_ID) == UART_IIR_THRI))
+#else
if (status & UART_LSR_THRE)
+#endif
transmit_chars(up);
spin_unlock(&up->port.lock);
@@ -1365,8 +1373,11 @@ static irqreturn_t serial8250_interrupt(int irq, void *dev_id, struct pt_regs *r
iir = serial_in(up, UART_IIR);
if (!(iir & UART_IIR_NO_INT)) {
+#ifdef CONFIG_ARCH_MXC
+ serial8250_handle_port(up, iir);
+#else
serial8250_handle_port(up, regs);
-
+#endif
handled = 1;
end = NULL;
@@ -1465,8 +1476,11 @@ static void serial8250_timeout(unsigned long data)
iir = serial_in(up, UART_IIR);
if (!(iir & UART_IIR_NO_INT))
+#ifdef CONFIG_ARCH_MXC
+ serial8250_handle_port(up, iir);
+#else
serial8250_handle_port(up, NULL);
-
+#endif
timeout = up->port.timeout;
timeout = timeout > 6 ? (timeout / 2 - 2) : 1;
mod_timer(&up->timer, jiffies + timeout);
@@ -1544,7 +1558,9 @@ static int serial8250_startup(struct uart_port *port)
{
struct uart_8250_port *up = (struct uart_8250_port *)port;
unsigned long flags;
+#ifndef CONFIG_SERIAL_8250_DONT_TEST_BUG_TXEN
unsigned char lsr, iir;
+#endif
int retval;
up->capabilities = uart_config[up->port.type].flags;
@@ -1649,6 +1665,7 @@ static int serial8250_startup(struct uart_port *port)
serial8250_set_mctrl(&up->port, up->port.mctrl);
+#ifndef CONFIG_SERIAL_8250_DONT_TEST_BUG_TXEN
/*
* Do a quick test to see if we receive an
* interrupt when we enable the TX irq.
@@ -1664,7 +1681,9 @@ static int serial8250_startup(struct uart_port *port)
pr_debug("ttyS%d - enabling bad tx status workarounds\n",
port->line);
}
- } else {
+ } else
+#endif
+ {
up->bugs &= ~UART_BUG_TXEN;
}
> -----Original Message-----
> From: email@hidden
> [mailto:email@hidden] On Behalf Of 赤坂 亮
> Sent: Wednesday, November 28, 2007 1:52 PM
> To: Armadillo series general discussion list
> Subject: [Armadillo:02469] Re: armadillo-500でPHSカードのドライバが割り当てられない
>
> お世話になっております。
> 赤坂と申します。
>
> 自己レスですが、無事インストールでき、serial_csモジュールをドライバと
> して認識させることができました。
>
> 以前質問させて頂きました下記エラーを解消することにより解決致しました。
>
> ■エラー内容
> drivers/serial/8250.c: In function 'serial8250_handle_port':
> drivers/serial/8250.c:1331: error: 'regs' undeclared (first
> use in this function )
> drivers/serial/8250.c:1331: error: (Each undeclared
> identifier is reported only once
> drivers/serial/8250.c:1331: error: for each function it appears in.)
> make[3]: *** [drivers/serial/8250.o] エラー 1
> make[2]: *** [drivers/serial] エラー 2
> make[1]: *** [drivers] エラー 2
> make[1]: ディレクトリ '/home/atmark/linux-2.6.18-12-at0' から出ます
>
> 8250.c内にある
> serial8250_handle_port(struct uart_8250_port *up, unsigned int iir)
> を
> serial8250_handle_port(struct uart_8250_port *up, struct
> pt_regs *regs,unsigned int iir)
> に変更し、コンパイルさせたところ無事コンパイルでき、serial_csモジュール
> を追加することができました。
>
> その後は、armadilloにてinsmodでモジュールをインストールし、PHSカードを
> 挿したところドライバを認識してくれました。
>
> 以上、よろしくお願い致します。
>
> ----------------------- Original Message -----------------------
> From: 赤坂 亮 <email@hidden>
> To: email@hidden
> Cc:
> Date: Mon, 26 Nov 2007 21:47:17 +0900
> Subject: [Armadillo:02463] armadillo-500でPHSカードのドライバが割り当てられない
> ----
>
> >お世話になっております。
> >赤坂と申します。
> >
> >armadillo-500で開発を行っており、現在、PHSカードを使用し、ダイヤルアップ接続
> >を試みております。
> >
> >当方の環境は以下の通りです。
> > ・atmark-dist Ver :atmark-dist-20071018
> > ・kernel Var :linux-2.6.18-at2
> > ・PHSカード :AX420S
> >
> >PHSカードを使用する際、serial_cs.oのドライバを使用するかと思うのですが、
> >カーネルでPCMCIAの追加設定を行ってもarmadillo上には存在しませんでした。
> >
> >serial_cs.oドライバをarmadillo上にインストールし使用する方法について、
> >情報をお持ちの方はいらっしゃいますでしょうか?
> >
> >ご教授の程よろしくお願い申し上げます。
> >
> >赤坂 亮(Ryo Akasaka)
> >
> >
> >
> >_______________________________________________
> >armadillo mailing list
> >email@hidden
> >http://lists.atmark-techno.com/mailman/listinfo/armadillo
> >
>
> ***********************************************************
> 北都システム株式会社
> 第2技術本部 第1システム開発部
> 赤坂 亮(Ryo Akasaka)
>
> 〒222-0033
> 横浜市港北区新横浜3丁目18-14 住生新横浜第2ビル
> Tel 045-470-2773 FAX 045-470-2774
> E-Mail : email@hidden
> ***********************************************************
>
>
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/mailman/listinfo/armadillo
armadillo メーリングリストの案内