[PATCH] spi: free children in spi_unregister_master, not siblings

2010-08-30 Thread David Lamparter
introduced by 49dce689ad4ef0fd1f970ef762168e4bd46f69a3 and bad-fixed by
350d0076c5763ca2b88ca05e3889bfa7c1905f21, spi_unregister_master would
previously device_unregister all of the spi master's siblings (instead
of its children). hilarity ensues.

fix it to unregister children.

Signed-off-by: David Lamparter equi...@diac24.net
Cc: Tony Jones to...@suse.de
Cc: Atsushi Nemoto an...@mba.ocn.ne.jp
Cc: David Brownell davi...@pacbell.net
---

siblings were usb endpoint devices in my case, causing a very nice
*boom* when the usb code tried to unregister them after they were gone
already because of spi_unregister_master. went looking for a bug in my
code for 20 hours...

patch is against 2.6.35.4 but there shouldn't be much change in this
file.

 drivers/spi/spi.c |9 +++--
 1 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index b3a1f92..144393c 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -546,11 +546,9 @@ done:
 EXPORT_SYMBOL_GPL(spi_register_master);
 
 
-static int __unregister(struct device *dev, void *master_dev)
+static int __unregister(struct device *dev, void *null)
 {
-   /* note: before about 2.6.14-rc1 this would corrupt memory: */
-   if (dev != master_dev)
-   spi_unregister_device(to_spi_device(dev));
+   spi_unregister_device(to_spi_device(dev));
return 0;
 }
 
@@ -568,8 +566,7 @@ void spi_unregister_master(struct spi_master *master)
 {
int dummy;
 
-   dummy = device_for_each_child(master-dev.parent, master-dev,
-   __unregister);
+   dummy = device_for_each_child(master-dev, NULL, _unregister);
device_unregister(master-dev);
 }
 EXPORT_SYMBOL_GPL(spi_unregister_master);
-- 
1.7.1


--
Sell apps to millions through the Intel(R) Atom(Tm) Developer Program
Be part of this innovative community and reach millions of netbook users 
worldwide. Take advantage of special opportunities to increase revenue and 
speed time-to-market. Join now, and jumpstart your future.
http://p.sf.net/sfu/intel-atom-d2d
___
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general


[SPAM] Организация договорной работы в компании

2010-08-30 Thread Право : договорная работа в компании
Организация договорной работы на предприятии: 
  актуальные вопросы в помощь юристу.
 
 09-10 сентября в Москве

Контактная информация: 
Адрес:  г. Москва, м. Бауманская, ул. Бауманская, д.6, бизнес центр 
Виктория Плаза. 
Телефон: +7 /*495*/ ~ 921 ** 30 ** 17
  
 
В программе обучения: 
1. Понятие договора и сделки в современном гражданском праве. 
  - Понятие и виды сделок, правовой природы действий, не являющихся 
сделками. Особенности их 
оспаривания в арбитражном суде. 
  - Проблемные вопросы двух- и многосторонних договорных обязательств.  
2. Правовое значение документов, сопровождающих договорную работу. 
Правила 
оформления предварительных договоренностей контрагентов. 
  - Основные различия между договором и соглашением, примеры договорных 
моделей, 
предусмотренных законодательством. 
  - Соотношение понятий договора и контракта, отличительные особенности 
государственных 
и муниципальных контрактов по сравнению с общими положениями ГК РФ о 
договоре. 
  - Соотношение понятий протокол о намерениях и предварительный 
договор, их основные 
различия. Требования законодательства к содержанию предварительного 
договора на примере 
конкретных арбитражных решений. 
  - Пределы использования протокола разногласий для документального 
оформления переговоров 
по согласованию условий договора. Последствия подписания договора с 
протоколом разногласий.  
3. Существенные условия договора. 
  - Виды договорных условий, основные группы существенных условий договора, 
их анализ 
применительно к особенностям различных типам гражданско-правовых 
договоров. 
  - Проблемные вопросы установления договорной цены, пределы применения 
принципа свободы 
договора при ее согласовании (обзор судебно-арбитражной практики). 
  - Оспаривание договора по мотиву несогласования существенных условий: 
процессуальные 
особенности. Соотношение незаключенного договора и недействительного 
договора.  
4. Возникновение договорных отношений на основе акцепта оферты. Форма 
договора. 
  - Разграничение договоров на консенсуальные, реальные и требующие 
государственной 
регистрации: практические последствия их оформления. 
  - Практические примеры действий и документов, являющихся офертой и 
акцептом. 
  - Анализ документов, служащих доказательством заключения договора, и 
документов, не 
свидетельствующих о наличии договорных отношений. Заключение договора 
по переписке. 
  - Письменная форма договора и правила ее соблюдения, допустимость 
факсимильных договоров 
в арбитражном споре.  
5. Особенности заключения договора по результатам торгов. 
  - Виды торгов, урегулированные законом и выработанные практикой. Их 
отличительные 
особенности и сфера практического применения. Обзор действующего 
законодательства, 
определяющего специфику торгов (рекламные, земельные, государственные, 
ипотечные, 
конкурсные, публичные торги). 
  - Основные процедурные ошибки проведения торгов, примеры оспаривания 
результатов торгов, 
обзор судебно-арбитражной практики.
  - Отличительные особенности торгов при размещении государственного и 
муниципального заказа, 
анализ типичных арбитражных дел о признании торгов недействительными.  
6. Заключение договора от имени организации. 
  - Правовое значение подписи уполномоченного лица и печати организации. 
Сфера применения 
аналогов подписи в процессе оформления договорных отношений (обзор 
арбитражных дел). 
  - Определение лица, уполномоченного заключать договоры от имени 
организации: полномочия 
поверенного и правила их оформления, правовой статус исполняющего 
обязанности.
  - Основные способы ограничения компетенции уполномоченного лица. Примеры 
типичных 
ошибок. 
  - Последствия заключения договора с превышением полномочий, обзор 
арбитражных решений, 
связанных с применением ст. ст. 183, 174 ГК РФ.  
7. Ответственность за нарушение условий договора. 
  - Основные элементы состава договорного правонарушения, подлежащие 
доказыванию 
потерпевшим (истцом). Сложные вопросы доказывания причинно-следственной 
связи, а также 
размера убытков. 
  - Проблемные моменты взыскания убытков в виде реального ущерба и 
упущенной выгоды (обзор 
судебно-арбитражной практики). 
  - Неустойка - как наиболее распространенная штрафная санкция за нарушение 
договора. Виды 
неустойки, правила ее определения. Судебно-арбитражная практика 
применения ст. 333 ГК РФ о 
снижении размера неустойки. 
  - Практика применения процентов за пользования чужими денежными 
средствами, соотношение 
процентов с другими мерами договорной ответственности. 
Стоимость участия: 17 500 

Re: [PATCH] spi: free children in spi_unregister_master, not siblings

2010-08-30 Thread David Lamparter
introduced by 49dce689ad4ef0fd1f970ef762168e4bd46f69a3 and bad-fixed by
350d0076c5763ca2b88ca05e3889bfa7c1905f21, spi_unregister_master would
previously device_unregister all of the spi master's siblings (instead
of its children). hilarity ensues.

fix it to unregister children.

Signed-off-by: David Lamparter equi...@diac24.net
Cc: Tony Jones to...@suse.de
Cc: Atsushi Nemoto an...@mba.ocn.ne.jp
Cc: David Brownell dbrown...@users.sourceforge.net
Cc: Grant Likely grant.lik...@secretlab.ca
---

Hi Grant,

please see attached patch :)

(reply from David Brownell went off-list because I accidentally Cc'ed an
old e-mail address of him. moving this to on-list thread.)

-David L.

On Mon, Aug 30, 2010 at 11:58:37AM +0200, David Lamparter wrote:
 siblings were usb endpoint devices in my case, causing a very nice
 *boom* when the usb code tried to unregister them after they were gone
 already because of spi_unregister_master. went looking for a bug in my
 code for 20 hours...
 
 patch is against 2.6.35.4 but there shouldn't be much change in this
 file.
 
On Mon, Aug 30, 2010 at 10:08:12AM -0700, David Brownell wrote:
 Bug since 2007?  OUch!
 
 
 At a real quick review, it looked right; but
 I couldn't test.
 
 Please send this patch also to Grant Likely.

 drivers/spi/spi.c |9 +++--
 1 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index b3a1f92..144393c 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -546,11 +546,9 @@ done:
 EXPORT_SYMBOL_GPL(spi_register_master);
 
 
-static int __unregister(struct device *dev, void *master_dev)
+static int __unregister(struct device *dev, void *null)
 {
-   /* note: before about 2.6.14-rc1 this would corrupt memory: */
-   if (dev != master_dev)
-   spi_unregister_device(to_spi_device(dev));
+   spi_unregister_device(to_spi_device(dev));
return 0;
 }
 
@@ -568,8 +566,7 @@ void spi_unregister_master(struct spi_master *master)
 {
int dummy;
 
-   dummy = device_for_each_child(master-dev.parent, master-dev,
-   __unregister);
+   dummy = device_for_each_child(master-dev, NULL, _unregister);
device_unregister(master-dev);
 }
 EXPORT_SYMBOL_GPL(spi_unregister_master);
-- 
1.7.1


--
This SF.net Dev2Dev email is sponsored by:

Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
___
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general


Re: [PATCH] spi: free children in spi_unregister_master, not siblings

2010-08-30 Thread David Lamparter
introduced by 49dce689ad4ef0fd1f970ef762168e4bd46f69a3 and bad-fixed by
350d0076c5763ca2b88ca05e3889bfa7c1905f21, spi_unregister_master would
previously device_unregister all of the spi master's siblings (instead
of its children). hilarity ensues.

fix it to unregister children.

Signed-off-by: David Lamparter equi...@diac24.net
Cc: Tony Jones to...@suse.de
Cc: Atsushi Nemoto an...@mba.ocn.ne.jp
Cc: David Brownell dbrown...@users.sourceforge.net
Cc: Grant Likely grant.lik...@secretlab.ca
---

Great, I'm sending around a wrong version which doesn't even
compile...

 + dummy = device_for_each_child(master-dev, NULL, _unregister);
needs to be
 + dummy = device_for_each_child(master-dev, NULL, __unregister);
really.


Sorry,
-David

On Mon, Aug 30, 2010 at 11:39:49PM +0200, David Lamparter wrote:
 Hi Grant,
 
 please see attached patch :)
 
 (reply from David Brownell went off-list because I accidentally Cc'ed an
 old e-mail address of him. moving this to on-list thread.)
 
 -David L.
 
 On Mon, Aug 30, 2010 at 11:58:37AM +0200, David Lamparter wrote:
  siblings were usb endpoint devices in my case, causing a very nice
  *boom* when the usb code tried to unregister them after they were gone
  already because of spi_unregister_master. went looking for a bug in my
  code for 20 hours...
  
  patch is against 2.6.35.4 but there shouldn't be much change in this
  file.
  
 On Mon, Aug 30, 2010 at 10:08:12AM -0700, David Brownell wrote:
  Bug since 2007?  OUch!
  
  
  At a real quick review, it looked right; but
  I couldn't test.
  
  Please send this patch also to Grant Likely.


 drivers/spi/spi.c |9 +++--
 1 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index b3a1f92..1a61fa8 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -546,11 +546,9 @@ done:
 EXPORT_SYMBOL_GPL(spi_register_master);
 
 
-static int __unregister(struct device *dev, void *master_dev)
+static int __unregister(struct device *dev, void *null)
 {
-   /* note: before about 2.6.14-rc1 this would corrupt memory: */
-   if (dev != master_dev)
-   spi_unregister_device(to_spi_device(dev));
+   spi_unregister_device(to_spi_device(dev));
return 0;
 }
 
@@ -568,8 +566,7 @@ void spi_unregister_master(struct spi_master *master)
 {
int dummy;
 
-   dummy = device_for_each_child(master-dev.parent, master-dev,
-   __unregister);
+   dummy = device_for_each_child(master-dev, NULL, __unregister);
device_unregister(master-dev);
 }
 EXPORT_SYMBOL_GPL(spi_unregister_master);
-- 
1.7.1


--
This SF.net Dev2Dev email is sponsored by:

Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
___
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general


Re: Low SPI data throughput on Phytec 3250 board? (amba-pl022.c deployed on Phytec 3250 board.)

2010-08-30 Thread Quentin YANG
This post is closed.
Problem is resolved by turning off SPI Debug message.

In 2.6.34 Kernel config: (X:\lpc3250\ltib-qs\rpm\BUILD\linux-2.6.34\.config)

Change from
CONFIG_SPI_DEBUG=y
to:
# CONFIG_SPI_DEBUG is not set

After this, in #dmesg, we won't see those spi debugging message:

..
ssp-pl022 dev:ssp1: readwriter, rx: c3e0e006, rxend: c3e0e0dc, tx:
0016, txend: 00dc
ssp-pl022 dev:ssp1: readwriter, rx: c3e0e01a, rxend: c3e0e0dc, tx:
002a, txend: 00dc
ssp-pl022 dev:ssp1: readwriter, rx: c3e0e02e, rxend: c3e0e0dc, tx:
003e, txend: 00dc
ssp-pl022 dev:ssp1: readwriter, rx: c3e0e042, rxend: c3e0e0dc, tx:
0052, txend: 00dc
ssp-pl022 dev:ssp1: readwriter, rx: c3e0e056, rxend: c3e0e0dc, tx:
0066, txend: 00dc
ssp-pl022 dev:ssp1: readwriter, rx: c3e0e06a, rxend: c3e0e0dc, tx:
007a, txend: 00dc
ssp-pl022 dev:ssp1: readwriter, rx: c3e0e07e, rxend: c3e0e0dc, tx:
008e, txend: 00dc
ssp-pl022 dev:ssp1: readwriter, rx: c3e0e092, rxend: c3e0e0dc, tx:
00a2, txend: 00dc
ssp-pl022 dev:ssp1: readwriter, rx: c3e0e0a6, rxend: c3e0e0dc, tx:
00b6, txend: 00dc
ssp-pl022 dev:ssp1: readwriter, rx: c3e0e0ba, rxend: c3e0e0dc, tx:
00ca, txend: 00dc
..

However, we can get full 'spi data throughput'.


Regards,
Quentin



On Mon, Aug 30, 2010 at 11:50 AM, Quentin YANG quentinyan...@gmail.com wrote:
 Hi,

 I am using transfer()  function in spidev_test.c to verify the data
 throughput on phytec LPC3250 board.
 2KBytes SPI message is sent out to SPI Slave device.

 There is a big delay (80us or so) after every 11 words transmission (
 20 us or so, which is reasonable at 8MHz SPI Clock).
  I am wondering where is this significant delay coming from???  ==
 It largely reduced the SPI data througput.
 It does not look like 'Linux Kernel Context switch'.

 See attached Timing Info on Scope.  (TimingOnScope.txt)


 SPI board setting is as follows (8MHZ spi clock, 16bit data size,
 interrupt transfer)

 static struct pl022_config_chip spi1_chip_info = {
     .lbm            = LOOPBACK_DISABLED,
     .com_mode        = INTERRUPT_TRANSFER,
     .iface            = SSP_INTERFACE_MOTOROLA_SPI,
     .hierarchy        = SSP_MASTER,
     .slave_tx_disable    = 0,
     .endian_tx        = SSP_TX_LSB,
     .endian_rx        = SSP_RX_LSB,
     .data_size        = SSP_DATA_BITS_16,  //SSP_DATA_BITS_8,
     .rx_lev_trig        = SSP_RX_4_OR_MORE_ELEM,
     .tx_lev_trig        = SSP_TX_4_OR_MORE_EMPTY_LOC,
     .clk_phase        = SSP_CLK_FIRST_EDGE,   //SSP_CLK_SECOND_EDGE,
     .clk_pol        = SSP_CLK_POL_IDLE_LOW,
     .ctrl_len        = SSP_BITS_8,
     .wait_state        = SSP_MWIRE_WAIT_ZERO,
     .duplex            = SSP_MICROWIRE_CHANNEL_FULL_DUPLEX,
     .cs_control        = phy3250_spi1_cs_set,
 };


 Kernel (2.6.34) is using default 100ms context switch. ' CONFIG_HZ=100. '

 Any help is appreciated.


 Regards,
 Quentin


--
This SF.net Dev2Dev email is sponsored by:

Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
___
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general