Profitez de l'été pour ranger votre maison
Clementina frog, le spécialiste du rangement et des bagages vous propose une sélection de produits de qualité à tout petits prix ! (http://ocfm42.com/y5nn2hn222cjq2d5go/index0.html) (http://ocfm42.com/dnn5hhgn2nqoc0y5oq/index1.html) (http://ocfm42.com/srn4xh5h2hrjillaqj/index2.html) (http://ocfm42.com/l4nruhyg2giordsajg/index3.html) (http://ocfm42.com/nrmhx1lillpjgqlmaq/index4.html) C´est l´été, mettez l´hiver au placard ! Découvrez vite notre sélection de produits de rangement et économisez jusqu´à -50% sur toute la gamme !! Retrouvez nos solutions ludiques et pratiques en cliquant ci-dessous ! (http://ocfm42.com/44muu1mqlv3o1gsmio/index5.html) (http://ocfm42.com/w5m321j0lmfjhcdh3g/index6.html) (http://ocfm42.com/znmeh1zwl1oom1yhhj/index7.html) (http://ocfm42.com/u52v0mwt2ttjshdymo/index8.html) (http://ocfm42.com/en2aimq424sotiyypq/index9.html) -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ spi-devel-general mailing list spi-devel-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/spi-devel-general
Re: [PATCHv3 2/3] drivers: spi: Add qspi flash controller
On Monday 08 July 2013 08:02 PM, Felipe Balbi wrote: Hi, On Mon, Jul 08, 2013 at 07:12:59PM +0530, Sourav Poddar wrote: +static inline unsigned long dra7xxx_readl(struct dra7xxx_qspi *qspi, +unsigned long reg) +{ +return readl(qspi-base + reg); +} + +static inline void dra7xxx_writel(struct dra7xxx_qspi *qspi, +unsigned long val, unsigned long reg) +{ +writel(val, qspi-base + reg); +} + +static inline unsigned long dra7xxx_readl_data(struct dra7xxx_qspi *qspi, +unsigned long reg, int wlen) +{ +switch (wlen) { +case 8: +return readw(qspi-base + reg); +break; +case 16: +return readb(qspi-base + reg); +break; +case 32: +return readl(qspi-base + reg); +break; +default: +return -1; return -EINVAL ? or some other error code ? +} +} + +static inline void dra7xxx_writel_data(struct dra7xxx_qspi *qspi, +unsigned long val, unsigned long reg, int wlen) +{ +switch (wlen) { +case 8: +writew(val, qspi-base + reg); +break; +case 16: +writeb(val, qspi-base + reg); +break; +case 32: +writeb(val, qspi-base + reg); +break; +default: +dev_dbg(qspi-dev, word lenght out of range); +break; +} +} + +static int dra7xxx_qspi_setup(struct spi_device *spi) +{ +struct dra7xxx_qspi *qspi = spi_master_get_devdata(spi-master); +int clk_div = 0; +u32 clk_ctrl_reg, clk_rate; + +clk_rate = clk_get_rate(qspi-fclk); + +if (!qspi-spi_max_frequency) { +dev_err(qspi-dev, spi max frequency not defined\n); +return -1; same here +} else this needs to have curly braces too, per CodingStyle +clk_div = (clk_rate / qspi-spi_max_frequency) - 1; + +dev_dbg(qspi-dev, %s: hz: %d, clock divider %d\n, __func__, +qspi-spi_max_frequency, clk_div); + +pm_runtime_get_sync(qspi-dev); + +clk_ctrl_reg = dra7xxx_readl(qspi, QSPI_SPI_CLOCK_CNTRL_REG); + +clk_ctrl_reg= ~QSPI_CLK_EN; + +/* disable SCLK */ +dra7xxx_writel(qspi, clk_ctrl_reg, QSPI_SPI_CLOCK_CNTRL_REG); + +if (clk_div 0) { +dev_dbg(qspi-dev, %s: clock divider 0, using /1 divider\n, +__func__); +clk_div = 1; +} + +if (clk_div QSPI_CLK_DIV_MAX) { +dev_dbg(qspi-dev, %s: clock divider%d , using /%d divider\n, +__func__, QSPI_CLK_DIV_MAX, QSPI_CLK_DIV_MAX + 1); +clk_div = QSPI_CLK_DIV_MAX; +} + +/* enable SCLK */ +dra7xxx_writel(qspi, QSPI_CLK_EN | clk_div, QSPI_SPI_CLOCK_CNTRL_REG); + +pm_runtime_mark_last_busy(qspi-dev); +pm_runtime_put_autosuspend(qspi-dev); + +return 0; +} + +static int dra7xxx_qspi_prepare_xfer(struct spi_master *master) +{ +struct dra7xxx_qspi *qspi = spi_master_get_devdata(master); + +pm_runtime_get_sync(qspi-dev); not going to check return value ? +return 0; +} + +static int dra7xxx_qspi_unprepare_xfer(struct spi_master *master) +{ +struct dra7xxx_qspi *qspi = spi_master_get_devdata(master); + +pm_runtime_mark_last_busy(qspi-dev); +pm_runtime_put_autosuspend(qspi-dev); what about on these two ? Just realised this, pm_runtime_mark_last_busy does not need a check, it returns nothing. +return 0; +} + +static int qspi_write_msg(struct dra7xxx_qspi *qspi, struct spi_transfer *t) +{ +const u8 *txbuf; +int wlen, count; + +count = t-len; +txbuf = t-tx_buf; +wlen = t-bits_per_word; + +while (count--) { +dev_dbg(qspi-dev, tx cmd %08x dc %08x data %02x\n, +qspi-cmd | QSPI_WR_SNGL, qspi-dc, *txbuf); +dra7xxx_writel(qspi, QSPI_WC_INT_EN, QSPI_INTR_ENABLE_SET_REG); you should enable the interrupt as the last step. Also, why aren't you using frame interrupt ? +dra7xxx_writel_data(qspi, *txbuf++, QSPI_SPI_DATA_REG, wlen); +dra7xxx_writel(qspi, qspi-dc, QSPI_SPI_DC_REG); +dra7xxx_writel(qspi, qspi-cmd | QSPI_WR_SNGL, +QSPI_SPI_CMD_REG); +wait_for_completion(qspi-word_complete); +} + +return 0; +} + +static int qspi_read_msg(struct dra7xxx_qspi *qspi, struct spi_transfer *t) +{ +u8 *rxbuf; +int wlen, count; + +count = t-len; +rxbuf = t-rx_buf; +wlen = t-bits_per_word; + +while (count--) { +dev_dbg(qspi-dev, rx cmd %08x dc %08x\n, +qspi-cmd | QSPI_RD_SNGL, qspi-dc); +dra7xxx_writel(qspi, QSPI_WC_INT_EN, QSPI_INTR_ENABLE_SET_REG); ditto +dra7xxx_writel(qspi, qspi-dc, QSPI_SPI_DC_REG); +dra7xxx_writel(qspi, qspi-cmd | QSPI_RD_SNGL, +
2eme demarque la maison de valerie
Si le message ne s'affiche pas correctement merci de suivre ce lien: http://news.teradoo.com/re?l=Bqgpp82I7gfk57dIhj02orh6Iu=http%3A%2F%2Fnews.teradoo.com%2Fpublic%2Fread_message.jsp%3Ftsp%3D1373554168620%26custid%3D16444%26uid%3D16231069273%26sig%3DOLNDPDLNJIBCAGKJ%26mid%3D1600193522s=BAHNCPMKCIIINOOF 2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie2eme demarque la maison de valérie Si vous ne souhaitez plus recevoir de newsletter de notre part, veuillez accéder à la page: http://news.teradoo.com/public/unsubscribe.jsp?gid=1600034637uid=16231069273mid=1600193522sig=COHFILJALOCBPEON -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ spi-devel-general mailing list spi-devel-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/spi-devel-general
[SPAM] It is one to watch
Full details inside! Our New WILD Sub-Penny Alert Releases Breaking News! Company Name: Biostem US 9-Day Target: 1.45 Traded as: HA IR Last Trade: .185 Trade Date: July, 11 This Company rocking today! Are you ready? New Play Tomorrow Morning! -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ spi-devel-general mailing list spi-devel-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/spi-devel-general
[PATCH] MAINTAINERS: Remove Grant Likely
Unfortunately, I'm no longer to spend the time needed on maintainership. It is time for me to step aside and pass maintainership to other engineers. I'm not disappearing from Linux development, but it would be irresponsible for me to hold onto a job that I am unable to do. GPIO and SPI are in good hands with Linus and Mark. Rob Herring has a really good grasp on the DT core code, and in the last week there have been several volunteers to create and maintain a DT bindings tree. You can expect to see an email about that hit the list shortly. Signed-off-by: Grant Likely grant.lik...@linaro.org --- MAINTAINERS | 8 1 file changed, 8 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index 250dc97..339fcdd 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3564,10 +3564,8 @@ F: drivers/isdn/gigaset/ F: include/uapi/linux/gigaset_dev.h GPIO SUBSYSTEM -M: Grant Likely grant.lik...@linaro.org M: Linus Walleij linus.wall...@linaro.org S: Maintained -T: git git://git.secretlab.ca/git/linux-2.6.git F: Documentation/gpio.txt F: drivers/gpio/ F: include/linux/gpio* @@ -4411,8 +4409,6 @@ F:drivers/irqchip/ IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY) M: Benjamin Herrenschmidt b...@kernel.crashing.org -M: Grant Likely grant.lik...@linaro.org -T: git git://git.secretlab.ca/git/linux-2.6.git irqdomain/next S: Maintained F: Documentation/IRQ-domain.txt F: include/linux/irqdomain.h @@ -5945,11 +5941,8 @@ F: Documentation/i2c/busses/i2c-ocores F: drivers/i2c/busses/i2c-ocores.c OPEN FIRMWARE AND FLATTENED DEVICE TREE -M: Grant Likely grant.lik...@linaro.org M: Rob Herring rob.herr...@calxeda.com L: devicetree-disc...@lists.ozlabs.org (moderated for non-subscribers) -W: http://fdt.secretlab.ca -T: git git://git.secretlab.ca/git/linux-2.6.git S: Maintained F: Documentation/devicetree F: drivers/of @@ -7623,7 +7616,6 @@ F:drivers/clk/spear/ SPI SUBSYSTEM M: Mark Brown broo...@kernel.org -M: Grant Likely grant.lik...@linaro.org L: spi-devel-general@lists.sourceforge.net T: git git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git Q: http://patchwork.kernel.org/project/spi-devel-general/list/ -- 1.8.1.2 -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ spi-devel-general mailing list spi-devel-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/spi-devel-general
[SPAM] 15.99 euro/mois Appels illimités, SMS illimités et 1 GO
Pour visualiser correctement ce message, acc=C3=A9dez =C3=A0 la version en= ligne, ou signaler comme ind=C3=A9sirable Avec le code NEEZZ : payez 14,99= =E2=82=AC/mois pendant un an =EF=BF=BD offre valable uniquement jusqu'au 14= juillet 23h59... Si vous ne souhaitez plus recevoir nos emails, veuillez s= uivre ce lien. Si vous n''arrivez pas =C3=A0 vous d=C3=A9sabonner, merci d'= '=C3=A9crire =C3=A0 s...@zaloo.fr -- See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk ___ spi-devel-general mailing list spi-devel-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/spi-devel-general